As RIA technologies maturing, there are increasing needs for the integration between RIAs and server side technologies. X2O Framework from We Are Mammoth is one such integration solution for Flex. InfoQ spoke with Ka Wai Cheung, a partner of the We Are Mammoth, to learn how X2O Framework fits into Flex based RIA development.
InfoQ: What is the X2O framework?
Cheung: X2O is a web-based data modeling platform for Adobe Flex applications. It lets you rapidly build database-driven Flex applications without any server side programming or setup.
With it, you don’t need to create your own database, build stored procedures, write server-side code, or even integrate your AS3 code to data services. All of this is generated by X2O.
Instead, you create a data model, configure as much (or as little) as you’d like, and generate the framework. You get the code and tools you need to start building your Flex app right away. Specifically, you get a secure CMS to manage your data, an AS3 SWC file of classes tailored to your data model, and full documentation. X2O creates value objects that contain basic CRUD methods, relationships, and more customized load methods based on how you configured your X2O project.
Because it’s all done over the Web, there is no installation. Simply drop a generated SWC library into your Flex project and you’re ready to go. You can modify your data model and regenerate as many times as you need, making X2O an incredibly agile platform.
InfoQ: Why X2O framework created and what the gap X2O is trying to fill?
Cheung: One of the main problems with Flex RIA development is that it requires a wide breadth of knowledge. You need someone intimate with databases, with a server-side language (like PHP, Ruby, C#, and so forth), with client-server integration (remoting, web services, or SOAP), and then, of course, with writing AS3/MXML and building against an architecture like MVC/Cairngorm.
X2O streamlines the entire Flex development process by handling all the tedious server-side programming and integration that would normally take several developers days and weeks to build by hand. This lets a Flex developer concentrate solely on Flex, while still having full control over how data is structured.
Essentially, X2O lets Flex developers play on the same playing field as server-side developers without having to be familiar with any of those languages.
In addition, X2O is entirely web-based. There’s no installation or setup, besides your Flex development environment. If there is a secondary gap to fill, it would be that X2O merges rapid Flex development with cloud programming.
There is clearly a need for simpler client-server integration with Flex. The WebORB for Rails plugin listed here is interesting – but what makes X2O even more unique is that you don’t have to work with any server-side code or do any integration. X2O developers only need to code in the Flex environment to push/pull data while still having full control of their data model.
InfoQ: What the X2O architecture looks like at the server side?
Cheung: The server-side portions of an X2O project are never exposed to the developer since it’s all running behind the scenes remotely. However, in a nutshell, X2O generates a database, stored procedures, a data-access layer and web service layer. The SWC file (which is what a developer would download and drop into a Flex project) integrates directly with the web services layer. The developer simply calls methods on the value objects within the SWC file and the rest is already programmed. We also encrypt all requests and responses between client/server.
As I mentioned earlier, a secure CMS and documentation are also generated – and those run as separate websites on the server.
InfoQ: How and what technologies are used to develop X2O?
Cheung: The X2O infrastructure is built in .NET. So, we’re using SQL Server 2005 and .NET 2.0 right now. We’re also generating ASDocs through the open source Flex framework.
InfoQ: What is the typical use case of using X2O?
Cheung: X2O is a viable option for any database-driven Flex application. At my company, We Are Mammoth, we’ve used X2O for the last two years developing everything from microsites with static content to data-heavy interactive applications with a lot of business logic.
Also, we’ve found X2O extremely useful for prototyping. Typically, prototyping in Flex is inefficient because, when you start developing a “real” version, most of the prototype is throw-away code. With X2O, you can develop a data model in minutes and integrate with real, managed data into Flex right away. This makes the transition from prototype to a real application seamless.
InfoQ: Is it free and what is the release plan?
Cheung: X2O is currently in a public beta and is free during beta. During this time, we’re allowing developers to sign up and create up to two free projects to get familiar with how X2O works.
We are planning an upcoming full release of X2O in 2009, which will likely have a free version (just like beta) and tiered paid versions. The paid versions will differ in project limits, and functionality (one example is deploying development and live versions of the framework).