Thus this journey will go about building up a brand new BlazeDS Java project from the ground up and it will not use the blazeds. Personally, I find using a war file as a blank template a bad practice. You should know how all the pieces fit together, and if you need to distribute a template war file to get everything to work correctly, then your solution is probably too complex in the first place. In a development world that is moving toward convention over configuration, it seems that BlazeDS is a blast from the past. Hopefully in future iterations, we'll see the BlazeDS folks use more Java annotations to configure some of this stuff. I realize that I said that we wouldn't be using the BlazeDS turnkey system, but we will use bits and pieces of it to build up our own project.
|Published (Last):||7 July 2019|
|PDF File Size:||19.76 Mb|
|ePub File Size:||9.96 Mb|
|Price:||Free* [*Free Regsitration Required]|
This item in japanese. This item in chinese. Jun 01, 11 min read. James Ward. Shashank Tiwari. Applications that run on the desktop with Adobe AIR or in the browser with Flash Player usually connect to a server when they need to load or manipulate data.
Developers building these applications with tools like Adobe Flex and Flash CS3 have a variety of options for enabling their applications to communicate with servers.
The servers themselves can be running Java, ColdFusion,. Net, PHP, Ruby or any number of other server-side technologies. Regardless of the server-side technology in place, some sort of network communication is needed when the client-side application running in Flash Player or Adobe AIR needs to communicate with the server.
Usually this communication happens over HTTP - the same protocol used by the web browser to load web pages and applications. But differences in how data is passed over HTTP can dramatically reduce application performance as well as developer productivity. This method is simple and fairly easy to set up. Every server technology can easily speak XML since it is a text-based protocol. XML is perfect when protocol transparency is necessary. This allows any developer using any technology to easily interact with Flickr by sending simple text-based requests to Flickr.
Flickr then responds with simple XML, which makes it easy for developers to easily parse and use the data. One downside to text-based protocols like XML is that the additional layer of data abstraction is usually cumbersome to write and maintain. In addition, this data abstraction layer consumes resources on the server-side and client-side when the data is serialized and deserialized see Figure 1.
Figure 1. AMF reduces the layers for marshalling data over the wire. For some time, Flash Player has supported a transport protocol that alleviates the unnecessary bottlenecks associated with text-based protocols and provides developers a simpler method of communicating with servers.
Applications using AMF can eliminate an unnecessary data abstraction layer and communicate more efficiently with servers. Over the past few years numerous open source projects emerged to provide AMF implementations similar to an old Macromedia product called Flash Remoting.
When Flex 1. In December , Adobe made two significant announcements which allow everyone to begin taking advantage of AMF. The first announcement is that the specification for AMF is now publicly available. Publishing the specification allows other projects to implement AMF based on the specification rather than reverse engineering the protocol. Net, Ruby, etc. BlazeDS includes a Java implementation of AMF which is used for remotely communicating with server-side Java objects as well as for passing messages between clients.
Developers can use the messaging system to easily send messages from the client to the server or from the server to client. Because the remoting and messaging technologies use AMF over HTTP they gain the performance benefits of AMF as well as the simplicity of not having to deal with an additional data abstraction layer.
To get started, simply deploy the blazeds-samples. That is all you need to do to efficiently make remote requests to your back-end Java objects and utilize the messaging system with BlazeDS!
Let's walk through those steps in more detail using Eclipse and Flex Builder. You will need the following software installed:. When the user enters text in the TextInput box, the change event causes the RemoteObject to make a request to the server. The server then makes a request to the Java Class specified in the remoting destination configuration. In this example, the POJO's return value is simply the name string passed to it appended to "hello, ".
When the object returns a value, that value is serialized into AMF and returned to the Flex application. The RemoteObject library then sets the ro. In this case ro. The result can also be obtained through a result event on the RemoteObject.
BlazeDS also supports passing typed Java objects back and forth. Explanation: The Producer object allows Flex applications to send messages into the message system. There is also a Java API not used in this example which allows messages to be sent into the message system on the server. With a custom adapter or the out-of-the-box JMS adapter you can also connect the message system to other messaging systems, however by default the message system runs standalone.
When the user clicks the send button a new message is created using an anonymous object to set the msg property on the body of the message to the value in the TextInput. Because, the message type is an AsyncMessage, that class must be imported.
The Consumer object allows Flex applications to listen for messages. When the application has initialized, it subscribes to the message system. Then when a message is received the event handler on the Consumer takes the chat message out of the body of the message and appends it to the TextArea.
Today he primarily uses Flex to build beautiful front-ends for Java based back-ends. Prior to working at Adobe, James built a rich marketing and customer service portal for Pillar Data Systems. Shashank Tiwari is the Chief Technologist at Saven Technologies, a Chicago based company that provides cutting edge technology driven business solutions for banking and financial service companies.
Shashank is a prolific developer, author and speaker who is active in the JCP as an expert group member on the following JSRs - , , , and He is a popular blogger on the O'Reilly Network. These days he is busy building web 2. More information about him can be obtained at www. Join a community of over , senior developers.
View an example. You need to Register an InfoQ account or Login or login to post comments. But there's so much more behind being registered. Your message is awaiting moderation. Thank you for participating in the discussion. Nice Article for Blaze ds starters. I have already taken an initial look at Blaze DS, but I am not sure if Blaze ds supports server push, if yes please provide some links or examples. Thanks Siva. My Blog: soa2world.
You can have a look at BlazeDS documentation. Hi Bruno, You might want to look into the dpHibernate project. You could also just use a Spring or Pojo layer between Hibernate and Blaze. Screwed up the dpHibernate link. Here it is: code. Hi James, Well, my opinion is not neutral : I already worked on the subject cf.
Regards Bruno. Hmm there seems to be a problem, There is no direct Java Producer provided by Blase ds, which can simply produce the messages and send them all clients subscribed, only JMSproducer is provided which may not be of "Great use", I think the only other way of doing this is via MessageBroker.
Let me know if there is any direct way of creating a producer on the Java side Server. Siva Prasanna Kumar. Any plans on having Hibernate lazy loading supported?
Until that, if you use hibernate and BlazeDS your must eagerly load all attributes and objects, which is a tremendous waste of bandwidth and local resources.
Not a problem with blaze ds, it happens when you try to serialize persistent objects and send them because you've bought into the persistent objects are same as POJO's myth. You have to decide what data you need on the other side and send it accordingly. You need to be careful about performance of AMF I suspect it is much faster than XML Jimmy, can you elaborate on your comment please?
Nicely detailed. Thank you very much for the article. I got the "testHelloWorld" to work, but what I really need to do is to do a remote call to a class that's in a deployed WAR file on the server. Can you please point me to somewhere that explains how to do it? I have Adobe Builder plugin for Eclipse, version 4.
Is your profile up-to-date? Please take a moment to review and update. Like Print Bookmarks. Jun 01, 11 min read by James Ward Shashank Tiwari.
You must verify the integrity of the downloaded files using signatures downloaded from this page. Please review the release notes before installing or compiling this testing suite. The Apache Flex team is pleased to offer this release, available as of the 31th of March We welcome feedback and contributions to it from the wider Apache Flex community. Please be aware of the dependencies listed in the section below. They are required in order to compile BlazeDS.
Oh no! Some styles failed to load. 😵