360Flex: OzoneLayer, Hamachi, social insects, and more

February 25, 2007 on 2:53 am | In Flex, Programming | 2 Comments

I’m speaking in 10 days or so at 360Flex in San Jose, and I’m getting pretty pumped about it — I’m looking forward to being both an attendee and a presenter on this trip. It’ll be a nice, small conference with a lot of people that have interesting stuff to say.

I’ve been working feverishly all day on one of my presentations: Model Driven Integrations. (In this case the word “feverishly” is all too appropriate since I came down with a flu-like bug yesterday.) This talk is going to cover an integration approach that generates many related assets in a project from a single central model description file — it cranks out ActionScript classes and interfaces, WSDL, Java, UML models, even Excel spreadsheets. I will be showcasing the use of Hamachi, an open-source toolkit written by my colleague Nate Abramson. A brilliant meta-take on code generation, Hamachi can be described as a model-driven code generator generator (not a typo!).

It’s cool enough to see how easy this makes client/server integration, but I wanted to do something a little more exotic, so I’ve extended this concept to client/client integration. I’ve been prototyping a library called OzoneLayer, which transparently replicates data and actions among a set of connected clients. Every OzoneLayer object exposes a strongly typed AS interface with only application semantics — no networking operations. Once it becomes referenced in an OzoneLayer object graph, its state is automatically replicated across the set of peers; any further method calls and property changes are propagated to every remote copy, making development of multiuser apps and games a snap. Hamachi generates the boilerplate aspect of these objects. I made use of SharedObjects under the hood to do serialization and broadcasting, so I used the Red5 server to provide server-side SharedObject support at a low, low price.

My other presentation is on using Ant with Flex. Dammit, Captain, I’m not a release engineer, but I will be distilling the best of what I’ve seen people do with Ant and Flex. More utilitarian, perhaps, but some stuff that can save folks a lot of time, like organization of large multi-project builds, or how to run flexunit tests from the command line.

2 Comments

Entries and comments feeds. Valid XHTML and CSS.
All content copyright (c) 2006-2007 Joseph Berkovitz. All Rights Reserved.