Preferred Web Development Architecture
Recently I had a chance to spend time with the Alpha version of Macromedia's Flex 2 builder plugin inside of Eclipse. I am impressed with the capabilities and how it fits into the web development platform choices I prefer, and those I am pointing towards. I put together a summary of my preferred web development architecture at present, and the structure I am planning on using in the future. Obviously I am not using Flex 2 in any sort of a production environment currently, as it is only in the Alpha stage, but I've seen enough to believe in its capability for rich internet application development. One aspect I have always struggled with is, while Flash is a very powerful client-side presentation technology, the ability to maintain code in Flash and rapidly develop client side interfaces is not always there, at least from my understanding and experience. However, from what I've seen so far with Flex 2, I think Flex 2 working inside of the newly designated Flash "platform" goes a long way towards enabling developers to use it to more rapidly develop RIA's and I am excited to see what unfolds. In the meantime, I will be exploring the technology as I point towards using it inside of Eclipse to generate rich interfaces for web applications built on an architecture of ColdFusion, JRun4, and mySQL. The following is a description of these platform technologies together with a figure that shows a schematic of how they work together.
Web Development Platforms:
Through MXML and Actionscript developers can create rich, custom application portals. The ColdFusion Adapter enables data access for those who choose to remain solely in the FLEX platform.
Client-side technologies like MM's FLEX and FLASH enable the opportunity to control rich interfaces that are lightweight and limitless in terms of how they can be designed to interact with client machines and data sources.
ColdFusion components and server-side CFML code can be developed using the CFEclipse plugin, while the FLEX 2 builder can likewise be utilized in the open-sourse Eclipse IDE, which allows for robust interaction with datasources, as the capability to build unit testing into the application as it is being developed.
Any relational database can be used in conjunction with this development architecture, but the mySQL database is a very capable, and scalable open-source technology.
CVS integrated with Eclipse is an efficient choice for version control within this development architecture, tracking code and datasource progression.
Server-Side Architecture:
Macromedia's JRun4 application server is a capable application server which can handle a load demand for a large percentage of internet and intranet applications. Because ColdFusion is a fully compliant J2EE platform, it can be used interchangeably with other J2EE compliant web application servers such as IBM WebSphere and BEA Weblogic.
The ColdFusion 7.1 Administrator enables developers to perform load balancing and clustering for their ColdFusion applications using the JRun4 app server adminstration tools.
ColdFusion components can be converted into webservices by taking a ColdFusion component and setting it's access property to "remote". The ColdFusion MX Web Services platform is based off of Apache Axis SOAP -- an inherently robust implementation provided by virtue of the
ColdFusion platform.
Consumed by Servers and Clients:
The development platform choices described in this figure result in applications that are built on a rock solid foundation, are scalable, and have the capability to provide rich and intuitive user interfaces:
- ColdFusion compiles down into robust, secure, and efficient java byte code
- ColdFusion components can be readily converted into Web Services based off of the solid Apache Axis SOAP
- Interaction with datasources can be performed via secure ColdFusion CFC's or CFML code, inside and outside of the Flash platform through FLEX.
- the options for rapidly developing rich interfaces are improved while working with the FLEX 2 builder via the Eclipse IDE. Rather than developing customized Flash interfaces which may be time-consuming and at times difficult to maintain and trace throughout the development lifecycle, FLEX gives a developer or development team a client-side presentation technology that enables rapid rich interface development inside the Eclipse framework providing traceability.
- Besides rich interfaces, consumers in the form of end-user client pc's and servers consuming web-services are provided with more robust and maintainable applications via the development platform outlined.