Adobe FDS2 - US$20K
Looking through the Adobe website I came across the pricing structure for the Flex Data Services 2 framework, the enterprise edition costing $20K per CPU. A budget that would be un-achievable to most, and even in a high-load website, you will most likely have to setup a clustered environment, meaning that you will most likely be up for more than one licence. Ouch!
So where does that leave us? We can consider the other technologies that are available, including XML and WebServices. Both work in plain text XML which works like a dream for small data transfer, but you quickly consider the amount of formatting and XML document places around the data and often the formatting takes up a lot of the file size, bloating it out. (This may be remedied slightly through GZip compression over HTTP, but I need to investigate…).
So if we still want Flash Remoting without the price tag where do we turn? - Open Source
Quoting a recent article I read I have often heard people claim “Companies do not invest into open source technologies” which I think is pretty wrong. A quote obtained from a recent article with Rasmum Lerdorf (a developer of open source technologies - PHP) when asked about ‘The Open Source movement is still portrayed by many as “anarchistic” and some kind of “threat to society”‘ :
As far as being mainstream, the product of this “movement” is most definitely mainstream. The “movement” built the Internet as we know it today. It built the TCP/IP stacks used in most of the operating systems people use (yes, even Windows). It built the most popular Web server in the world, along with the DNS and MTA systems that make the Internet tick. Heck, if you go back a bit, it built the entire industry. The first operating systems were all open source, because that was the only sane way to do things. You could not sell someone a big mainframe without providing the source to the brains of the thing. It was only later on that the concept of not providing the source code was introduced.
But I guess your real question is what I think of Microsoft’s attempt to convince the world that large groups of people collaborating to solve problems somehow threatens the very fabric of the society we live in. And I don’t think there are “many” people making this claim, as it is complete crap — I would like to think that the world is a good place and not full of people who would propagate such a ridiculous idea. Let’s put an end to all meetings of large groups of people while we are at it. They might be evil anarchists out to destroy the world.
In the end, mainstream acceptance is not the goal. The goal for most people who work on free software and open source projects is the technology itself. It is building a tool that solves the problem. It is not about ideology for most of us, and as such, mainstream acceptance only involves mainstream use of the technology. This has been achieved on many fronts already, with many more still to come.
Getting past the whole Corporate versus Community conversation and moving on;
PHP as a thin layer provides great database layering, with a nice framework AMF-PHP which could handle basic output to flex. This framework works great, but still has around 40-50ms class instantiation cost per request (which may be considered pretty low, and can be tuned with APC). Making the move to a JEE environment means that we can handle database queries through a JDBC environment, bringing JDBC equivalent database into PHP means more overhead, and unless you go that path it makes it more difficult to make your whole project scalable. But discussing PHP and JEE performance is not the point of this article, we are talking about alternatives.
OpenAMF is a JEE alternate to the Flash Data Services offered by Adobe. I found a nice little introduction to openAMF with this article. Although a slightly bloated introduction regarding JEE, PHP and ActionScript it is still relevant to conversations we have been starting on this blog, such as “Where does PHP really sit?”
One of the cumbersome of using Java is the relatively complex setup of Java applications, with different steps based on the container. J2EE helps on this, exposing a more standard framework to follow for web developers. Also Java is not a common shared hosting offer, and this make sense because the power of java and his multithread run shines in big applications or when a lot of traffic is expected, due also to the live of servlets in memory. Usually little-medium applications fits fine in more straightforward languages like PHP. So freelancers developers not involved in big corporations are not usually faced to Java, and it’s a shame, because it’s a great language. But the grow of ActionScript from AS1 to AS2 force coders to write in a more Java-like (or should say OOP-like) way, so Java seems more familiar to them. And AS3 will reinforce this being a really truly class based language (in fact, not compatible with previous versions of the Flash Player) All of this make the jump to Java less heavy for actionscript coders, at least with Java in relationship with Flash.
Being Java a wide field, probably Flash developers will be faced first in data exchange with Java. This could be done in many faces, in example name/value pairs could be solved with some jsp file, but the really power of data exchange is exposed trough Flash Remoting. Even java can map ActionScript classes to Java classes whit out problem, something that arises as a problem in the first implementations of other Remoting libraries like amfphp (last versions solve this) Also since the gateway runs as a servlet, is really fast in doing his work (except the first time of course).
You can read more about AMF-PHP here for using PHP or take a look at JEE alternative OpenAMF.






Just as quickly as I learned about these options I found the the AMF specification has changed.
OpenAMF and AMF-PHP currently only support AMF0 specification. AMF3 is used by Adobe for Flex2 - they did not setup backwards compatibility.
So where to from here? FDS2? the only option?
Well no- there are people already implementing AMF3 specification, namely the Red5 server, and it has got me excited!
Comment by Cameron Manderson — November 8, 2006 @ 9:54 pm
WebOrb supports AMF3. http://www.themidnightcoders.com/
Comment by David Backeus — November 8, 2006 @ 10:28 pm
Thanks for that, good link
I notice the WebORB licence is GPL (like AMF-PHP), and it doesn’t support AMF3 in Java (Not sure why not?).
Looks like PHP may suit this role again for AMF3 content-
Comment by Cameron Manderson — November 9, 2006 @ 12:13 pm
For other AMF3 implementations look at this link: http://www.osflash.org/amf3/implementations
Comment by Cameron Manderson — November 9, 2006 @ 12:22 pm
There does appear to be backwards compatibility for the AMF0 protocol. See
http://www.oscartrelles.com/archives/as3_flash_remoting_example
Comment by Stephen Crowley — October 30, 2007 @ 2:34 pm