Accessibility

Flex Article

 

Introduction to the Flex Message Service


Adobe Flex

Sean Neville

Brightcove

Adobe Flex

Seth Hodgson

Adobe

Table of Contents

Comments
Created:
27 June 2006
User Level:
Beginner

Important note: Effective with the release of Adobe LiveCycle ES, the Adobe Flex Data Services 2 server product has been rebranded as a Solution Component of LiveCycle ES. This article was written based on Flex Data Services but will likely work as is with LiveCycle Data Services ES. Any articles referring to or using ColdFusion and Flex Data Services are not compatible with LiveCycle Data Services ES. To learn about the new capabilities of LiveCycle Data Services ES, see the tutorials in the LiveCycle Developer Center and read about Adobe LiveCycle Data Services ES.

At the heart of Adobe Flex Data Services 2 is a message bus: a hub that routes messages back and forth between services and clients. Understanding this message bus is understanding the core architecture of Flex Data Services.

One specific service is the Flex Message Service, which surfaces the basic messaging functionality of the message bus in the form of a publish-subscribe API for Flex clients. The Message Service adds durability and clustering features to the basic message functionality. The Message Service enables Flex and Flash clients to use publish-subscribe messaging to integrate with enterprise back ends that use message-oriented middleware (MOM), including Java Message Service (JMS) systems. The Message Service also defines the infrastructure behaviors for the Flex Data Service, which adds data-oriented features to the Flash platform as a subclass of the publish-subscribe Message Service.

This article illustrates the basic asynchronous publish-subscribe pattern and how it forms the architectural spine of Flex Data Services. An application usage example illustrates the architecture in action both with and without a JMS back end, and leads to discussions of the channel and endpoint constructs, which encapsulate protocol and network behaviors. This article also explains message destination clustering and touches briefly on how to extend the service with custom channels and custom service adapters.

Requirements

To make the most of this article, you need to install the following software:

Important note: Effective with the release of Adobe LiveCycle ES, the Adobe Flex Data Services 2 server product has been rebranded as a Solution Component of LiveCycle ES. This article was written based on Flex Data Services but will likely work as is with LiveCycle Data Services ES. Any articles referring to or using ColdFusion and Flex Data Services are not compatible with LiveCycle Data Services ES. To learn about the new capabilities of LiveCycle Data Services ES, see the tutorials in the LiveCycle Developer Center and read about Adobe LiveCycle Data Services ES.

Flex Builder 2 (SDK Included)

Flex Data Services 2

Prerequisite knowledge

Basic familiarity with Flex development. General familiarity with JMS a plus but not required.

About the authors

Sean Neville used to be a principal scientist at Adobe and one of the creators of Flex at Macromedia. He also served as architect of Flash Remoting and JRun, and represented Macromedia on the Java Community Process Executive Committee. He now extends the Flash platform through Brightcove, a company at the forefront of broadband television.

Seth Hodgson is a computer scientist on the Flex Data Services development team. Prior to this dream job, he worked on the web frameworks and applications that ran macromedia.com, along with a healthy dose of enterprise application integration.