SWX – A Great Idea

Aral Balkan has come up with a new way to get server side data from the server and into Flash. This is a very unique method that has great application. You are probably wondering why we need another format to do Flash and server side communication. We have LoadVars(gotta love the .txt files), XML, Remoting(Macromedia Flash Remoting, AMFPHP, WebORB, etc…), JSON, SOAP, XML-RPC, Flash Media Server, Red5, and PHPObject. Some have asked this same question.
When I look at Aral‘s latest project two reasons come to mind of why this is not only a good idea but a great idea.
  1. Mobile Devices.
  2. Data stored on the user computer/device in the form of a swf for local access later.
Some other benefits that Aral states are :

  • It’s simpler to use. (loadMovie(); is pretty easy)
  • Data is deserialized twice only as opposed to four times.
  • You don’t have to learn a new API and can reuse your existing knowledge.
  • It is useful in mobile applications with limited processing power
  • The final downloadable bundles of SWX will contain everything you need to get up and running (you don’t need to buy or download additional tools).

I would really like to focus on the first two items because these have huge implications around what is now possible for mobile devices and for persistent data.

Mobile Devices

The Flash community has been in desperate need of a slim client that doesn’t require huge XML files and can be accessed using just Flash. SWX uses the loadMovie(); command, which we all know has been around since, “Availability: ActionScript 1.0; Flash Player 3″. How easy is that. All you have to do is load a swf into the mobile device and you automatically have all of your data. You access it just like a regular Flash object.

SWX isn’t bogged down by parsing XML and freezing the player while it does so. It is able to be used without heavy load on the processor or large files that have to be parsed. Aral has this to say, “SWX, by design, is the least processor intensive method possible since it is SWF bytecode and that’s as native as you get in Flash.”

Locally Stored Data

Storing Data in a swf is a great concept. It allows the main swf to read and access data from the server without the server load and multiple pings back and forth. I would love to see this concept explored further. It is like an intermediary data base on the users computer. I would imagine that with a little ingenuity and Aral Balkan like genius there could be a way to check if the file is loaded onto the users computer already and if so check a SharedObject for the reference to the local file and only access that swf. This would entirely alleviate the need for a connection after the first time the data is passed into the SWX. Obviously, this has many ramifications, but I would love to see it explored more.

Summary

Great concept, great implementation, and a great way to be more accessible for mobile devices. This is just the solution needed for getting a heavy data app to perform well on mobile devices. I am very excited to see the future of it.

SWX is a great idea.

Flash Remoting Server works locally but stopped working on the server

In the latest and greatest project that we are doing we are using Flash Remoting for the communication between the application and the server. We downloaded the Flash Remoting Trial Version and it seemed to work great on all local machines and across local machines and went very well. As soon as we put Flash Remoting on the server everything decided to stop working. There is a technote that says we may have to buy Flash Remoting it in order to get it working on the server. The same technote
I know that many of you are saying why are you trying to use Flash Remoting instead of AMFPHP? This is a very valid question since AMFPHP has always worked in the past. The answer is simple we have an fantastic .NET programmer. AMFPHP doesn’t work with .NET so we decided to use Flash Remoting.

After over 5 hours on the phone yesterday and an hour and a half today I asked the adobe support agent, “So there is no way to get support for this?” The Adobe rep replied, “That is correct”. He then directed me to a page that I might possibly get help from
adobe.com/support/portal which resulted in the following page

Adobe Support Page for Flash Remoting

Finally, after 2 days, more than 7 hours total, 2 hours 36 minutes on hold, 11 transfers, 5 departments, 2 disconnects and 1 404 page error. I got a received a call this morning from Jim Schley at Adobe. I was very happy to hear from Jim and he actually assigned an engineer to me that should be calling back to help solve the problem. He even gave me his personal line so that I could call him back directly if needed. (No I won’t post this number)
Thank you Jim for caring enough to find a solution to my problem and not passing the buck to someone else. I look forward to hearing from your engineer.

Here are the numbers that I called or was transfered to for support:
(800)833-6687 Adobe General Support (These guys were not helpful at all in regards to Flash Remoting)
(888)649-2990 Adobe Pre-Sales Support (These guys also didn’t know or were “not trained for this sort of thing”)
(888)715-4687 Adobe Download Support (This isn’t even Adobe. They were baffled when I was transfered because they only host the download site and support getting the zip files onto your desktop)
(866)335-2256 Adobe Enterprise Server Support(They couldn’t help me but actually spent the time creating a ticket that resulted in the call from Jim Schley)

So the end result is that I look forward to a call from Jim’s engineer that should be able to help with the problem. I will let you know the result.

If you are also having issues with Flash Remoting then these links may be helpful alternatives to the Remoting service.

AMFPHP I can vouch for this one. It is great. Plus it is Free. I highly suggest that you use this. This is only for PHP.

WebORB I haven’t used this yet but plan on installing this as a backup in case. WebORB is a platform enabling development, deployment and runtime execution of Rich Internet Applications. The product facilitates connectivity between rich clients created with Flex, Flash or AJAX and server-side applications developed with .NET, Java, Ruby on Rails, PHP or XML Web Services.

StarWolf I can not vouch for this at all. I don’t even know if it works but it is out there so I thought I would list it.

PHPObject Flash Remoting for PHP. Looks promising haven’t used it.

OpenAMF – Flash Remoting for J2EE. Again, looks promising haven’t used it.

RubyAMF – Flash Remoting for Ruby, Seems to be gainging popularity.
Good luck and I hope that you have some successful Flash Remoting.