Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Design Choices and is LiveCycle needed? best practices for using RTMP/AMF over HTTP/XML communicatio

Avatar

Former Community Member
Hi,

I am new to flex/RIA. I am exploring different design choices especially in client server communication. On client side we will be using Flash based RIA (using Actions scripts).

There will be some simple forms (like for login, registration, payments etc) and some simple reports including with several graphs and charts. Each chart might have 1000 to 1500 data points etc. There are not video or audio content as such. On server side we have Servlets, java API and some EJBs to provide the business logic and real time prices/content (price update is usually every 10 seconds) /data. Some of the content will be static as well.



I have following questions in my mind. Is it worth it to use RTMP/AMF channels for the followings?



1. For simple forms processing (Mapping Actions scripts classes to Java classes). Like to display/retrieve/update data for/from registration forms.

a. If yes, why? Am I going to be stuck with LCDS? Is it worth it? What could be the cons for heavy usage/traffic scenarios

b. If not what are the alternates? Should I create the web services? Or only servlets are sufficient (ie. Only HTTP+Java based server side with no LCDS+RTMP+AMF)? All forms need to communicate on secure channel.

2. For pushing the real time prices/content which we may need to update every 15 seconds on user interface using graphs and charts. Can I do it with some standard J2EE/JMS way with RIA (Flex) on front-end? i.e. Flash application will keep pulling data from some topic. Data can be updated after few secs or few minutes which cant be predicted.

3. Are there any scalability issues for using RTMP? What happens if concurrent users increase 10 times within a year?

4. What are the real advantages of using RTMP/AMF instead of simple HTTP/HTTPS probably using xml based objects

5. Do I need to use LCDS if I am using AMF only on client side? Basically I mean if I am sending an object in form of xml from a servlet. Can some technology in Flash (probably AMF) in client side map it an Action script object?

6. What are the primary advantages of using LCDS in a system? Is there any alternate solutions? Can I use some standard solutions for data push technologies?



I would like that my server side implementation can be used by multiple types of clients e.g. RIA browser based, mobile based, third party software (any technology) etc.



I appreciate if you can kindly refer me to some reading materials which can help me deciding the above. If this is not the right place to post this message then please do refer me to the place where I can post such questions.



Thanks and Kind regards,

Jalal
2 Replies

Avatar

Former Community Member
Hi,

Please any body answer me.

Kind regards,

Jalal

Avatar

Former Community Member
Hi Jalal,



Let me see if I can help with some of your questions



1. Yes, you can use LCDS for simple forms processing. Any time you want to

move data between the Flex client and the server, LCDS (or its free Open

source cousin BlazeDS) is going to help. I would expect you would use the

mx:RemoteObject MXML tag to invoke server side code, passing it the form

data input by the application user.



2. If you need to push near real-time data, LCDS gives you the RTMP channel

which can scale quite nicely. You can then use the mx:Consumer MXML tag to

subscribe the clients to the messages, which can come from almost anywhere,

include JMS topics or queues.



3. RTMP (included in LCDS) is the best option for scaling to tens of

thousands of users and the LCDS servers can be clustered to proved better

scaling.



4. The AMF3 protocol used over the RTMP channels performs much faster than

simple XML over HTTP. See this blog posting for some tests:

http://www.jamesward.org/census/.



5. If you are sending a Flex application XML, then I would recommend using

the E4X API to work with the XML. This is a pretty nice and powerful way to

work with XML. If you want Actionscript objects (and probably better

performance), then using AMF serialization to Actionscript objects is the

way to go.



6. Primary advantages? There are many, but mainly you can avoid thinking

about the plumbing and concentrate on solving your application and business

logic problems.



Hope this helps you a little



--

Tom Jordahl

Adobe