I'm delighted to be invited by the team at Flash Magazine, upon reviewing my Reality J2EE book last month, to have myself and members of the iteration::two team contribute a regular column to this magazine. As the team on the magazine have mentioned several times before, one of the great things about Macromedia Flash, is the diversity of people that use it as a tool in their everyday job. In the last 18 months, the diversity of life in the Flash community has led to sighting of a peculiar beast indeed - the enterprise software developer !
As you are reading this column, we are now able to talk about the recently announced Macromedia Flash MX 2004. Much discussion centres around the release, for the first time, of 2 different versions of the tool - MX 2004 and MX 2004 Professional. The Professional version of Flash MX 2004 heralds a further step in the direction that Macromedia first took with the release of Flash MX, Flash Remoting MX, JRun 4 and Cold Fusion MX - the use of Flash as a presentation tier technology and the integration of Flash with server-side technologies such as J2EE, Coldfusion and .NET, towards the development of Rich Internet Applications.
What Are Rich Internet Applications ?
Macromedia themselves have written a great deal recently about the Rich Internet Application promise, so we will spend little time evangelising here. At our own consultancy, we describe Rich Internet Applications as "the best of the desktop, meets the best of the Web". A Rich Internet Application is a software application with all the behaviour, feature, responsiveness, intuitiveness and experience of a desktop software application, fused with the ease and cost of deployment and the enterprise capabalities of a web application delivered over the Internet. It's about user experience, and as Macromedia have been keen to remind us, "Experience Matters".
At iteration::two, we've coined the term "Enterprise RIA", to describe Rich Internet Applications of the scale and complexity you'd expect to find in a large, transactional web application, such as online banking, reservation systems or large commerce sites for example.
As soon as we discuss an Enterprise RIA, the gravity of our software problem weighs on us immediately. In order to deliver an application of such scale and complexity, we are clearly not going to be able to start with a blank canvas and evolve our way towards a design, adding a few frames to our application for our Actionscript code, and calling a few webservices or passing a few bits of XML back and forth.
On the contrary, if we are going to approach the development of Rich Internet Applications, or indeed Enterprise RIAs, then we can't just code them, we must engineer them.
What it means to engineer a Rich Internet Application, the challenges we must address, and the tools, technologies, methods and techniques that will allow us to solve them, will be the focus of this column.
What Things Might We Address in RIA Development ?
By definition, Enterprise Software Development embraces a number of disparate and interconnected technologies. An Enterprise RIA team may comprise Graphic Designers, User Interface Designers, Flash Developers, Software Engineers (Java Developers for instance) as well as Database Administrators. In many projects, several hats may be worn by the same person, but as we move towards enterprise RIA development, it is both unlikely and undesirable that one or two people will be wearing all those hats.
We must come to grips with the new features of Flash MX 2004, such as Web Services, Data Connectors, Data Binding, and learn how to develop software on the client using ActionScript 2.0. ActionScript 2.0 is the closest yet that ActionScript has come to a full object-oriented implementation, and this places a whole new set of challenges and possibilities for the RIA developer. It is imperative that teams learn to embrace Object Oriented development techniques, to build ever more complex applications with Flash MX.
To pass data between the client and the server, we must consider technologies such as Flash Remoting MX, as well as the new features of Flash MX 2004 Professional such as Web Service support, Web Service Connectors, XML connectors and RDBMS connectors, which allow the integration of server-side capability with a Flash presentation tier.
Building large software systems such as an Enterprise RIA, requires that we pay more attention to engineering disciplines such as source code packaging, source code control, and testing. Furthermore, we must consider embracing Software Engineering practices such as Design Patterns, Refactoring, Test Driven Development and Continuous Integration, alongside other engineering practices that ensure that no matter how complex an application becomes, it remains stable, maintainable and most importantly, has a measurable quality.
Macromedia are clearly focussed on the RIA proposition; Flash Remoting MX gave a taste of what was to come, and Flash MX 2004 Professional gives a further glimpse of the roadmap ahead, that includes forthcoming projects such as Macromedia Central and Macromedia Royale.
In this column, we'll endeavour to feature all of these tools, technologies, practices and methods.
Why Should I Read This Column
If you're excited by the prospect of Rich Internet Applications, and the technologies that make them possible, then we invite you to join us, as we explore both technical and business facets of RIA development.
We'll follow closely on the technologies and announcements in the development community, related to RIA development. Along the way, we'll also share as much of our expertise from within iteration::two, where day-in and day-out, our development teams are rolling out Enterprise RIA projects into production environments, facing up to the challenges that each of you will face in your own developments.
We'll explore the tools and the technologies, and we'll do our best to "lift one corner, so that you might lift the other three".
If you are an RIA developer, of if you are trying to migrate to RIA development either from the server-side of the fence (as most of our team did) or from the client-side of the fence, we'd like to share as much as we can to help you on your way.
If there's anything you'd like us to cover, or if you have any suggestions for future columns that you'd like either myself, or one of the iteration::two team to write, then drop us an email at engineeringRIA@iterationtwo.com, and we'll do our best to cover your suggestion.
Rich Internet Application development is an exciting route for Flash application developers. We look forward to walking that route alongside readers of Flash Magazine.
About The Author
Steven Webster is Technical Director of iteration::two, a Scottish Software Consultancy focused on delivering pervasive, interactive applications using agile development methods. As a founder of iteration::two, Steven is recognized as a Software Engineer with a strong understanding of J2EE Design, Architecture, and development methodologies, working at the forefront of mobile application development and rich-client development using Flash MX and J2EE. Steven is the author of Reality J2EE - Architecting for Flash MX, available from Macromedia Press.
An evening with sendAndLoad, PHP and LiveDocs
The Power of Arrays - Array Fundamentals