Design Choices and is LiveCycle needed? best practices for using RTMP/AMF over HTTP/XML communicatio
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,
Please any body answer me.
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
4. The AMF3 protocol used over the RTMP channels performs much faster than
simple XML over HTTP. See this blog posting for some tests: