A.G.Udaya Shamendra is currently a second year undergraduate(Bachelor of Computer Science) at University of Colombo School of Computing(UCSC), Sri Lanka. He has interests in Java, 2D graphic designing (do out sourcing projects), Web designing, Web development (PHP, HTML...etc), Web Security, FOSS, C# (and some Microsoft technologies), Google Technologies (GWave, android...etc), Adobe Technologies and Networking. He likes blogging (Technology via Technology), movies, painting and poem writing. Udaya is a Manager of Adobe- Sri Lanka User Group (A-SLUG) and is involved with Mozilla Firefox Campus Rep programs and GTUG (Google Technology User Group), Sri Lanka.
 

Adobe BlazeDs

08/29/2010 10:12 pm By Udaya Shamendra | Articles: 21

BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe® Flex™ and Adobe AIR™ applications for more responsive rich Internet application (RIA) experiences. Right on schedule, openSuSE 11.3 was released 15 July.

Adobe Open Source

BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe® Flex™ and Adobe AIR™ applications for more responsive rich Internet application (RIA) experiences. Right on schedule, openSuSE 11.3 was released 15 July.

The evolution to more engaging RIAs has created the need for better data connectivity options. Remoting simplifies the reuse of existing server logic automatically marshalling calls between the Flash client and the Java methods on the server. In addition, the use of a AMF binary data transfer format increases performance, allowing applications to load data up to 10 times faster than with text-based formats such as XML or SOAP.

Previously available only as part of Adobe LiveCycle® Data Services ES, Adobe is contributing the proven BlazeDS technologies to the community under the LGPL v3. BlazeDS gives the rapidly growing Adobe developer community free access to the powerful remoting and messaging technologies developed by Adobe.

 

Reasons to Adopt BlazeDS

The following are the top reasons to adopt BlazeDS:

  1. Easily connect Flex and Adobe AIR™ applications built using Flex and Ajax to existing Java server logic
  2. High performance data transfer for more responsive applications
  3. Real-time server push over standard HTTP
  4. Full pub/sub messaging that extends existing messaging infrastructure
  5. Free and Open source

Adobe has published the AMF binary data protocol specification, on which the BlazeDS remoting and messaging implementation implementation is based, and is committed to partnering with the community to make this protocol available for every major server platform.

 

Blaze DS example

Messaging Service example

The Messaging Service lets client applications send and receive messages from other clients. In this example, create a Flex application that sends and receives messages from the same BlazeDS destination.

Define the messaging destination in WEB-INF/flex/messaging-config.xml, as the following example shows:

 

<destination id="MessagingDestination" channels="my-amf-poll"/>

 

Define the my-amf-poll channel in WEB-INF/flex/services-config.xml, as the following example shows:

 

<channel-definition id="my-amf-poll"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpoll"
class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>1</polling-interval-seconds>
</properties>
</channel-definition>

 

This channel definition creates a polling channel with a polling interval of 1 second. Therefore, the client sends a poll message to the server every second to request new messages. Use a polling channel because it is the easiest way for the client to receive updates. Other options include polling with piggybacking, long-polling, and streaming.

The following Flex client application uses the Producer component to send a message to the destination, and the Consumer component to receive messages sent to the destination. To send the message, the Producer first creates an instance of the AsyncMessage class and then sets its body property to the message. Then, it calls the Producer.send() method to send it. To receive messages, the Consumer first calls the Consumer.subscribe() method to subscribe to messages sent to a specific destination.

<?xml version="1.0"?>
<!-- intro\intro_messaging.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%"
creationComplete="consumer.subscribe();">

<mx:Script>
<![CDATA[
import mx.messaging.events.MessageFaultEvent;
import mx.messaging.events.MessageEvent;
import mx.messaging.messages.AsyncMessage;
import mx.messaging.Producer;
import mx.messaging.Consumer;

// Send the message in response to a Button click.
private function sendMessage():void {
var msg:AsyncMessage = new AsyncMessage();
msg.body = "Foo";
producer.send(msg);
}

// Handle the received message.
private function messageHandler(event:MessageEvent):void {
ta.text += "Consumer received message: "+ event.message.body + "\n";
}

// Handle a message fault.
private function faultHandler(event:MessageFaultEvent):void {
ta.text += "Received fault: " + event.faultString + "\n";
}
]]>
</mx:Script>

<mx:Producer id="producer"
destination="MessagingDestination"
fault="faultHandler(event);"/>

<mx:Consumer id="consumer"
destination="MessagingDestination"
fault="faultHandler(event);"
message="messageHandler(event);"/>

<mx:Button label="Send" click="sendMessage();"/>
<mx:TextArea id="ta" width="100%" height="100%"/>
</mx:Application>

Compile the client application into a SWF file by using Flex Builder or the mxmlc compiler, and then deploy it to your web application.

 

Adobe BlazeDS

This video shows a demonstration of the integration ofAdobe Flex and Adobe BlazeDS

 

Previous Article

Share/Save
No votes yet

Post new comment