Background:
It seems that the IT buzzword hobbiests have left the certain crazes of yesteryear, and moved on with Platform as a Service (PaaS). One aspect of cloud computer that has taken off is Software as a Service (SaaS). It’s allowing organizations to deploy their software services to a third party host or provider, responsible for traditional maintenance.
I just read this O’Reilly article. It describes some cloud applications and immediately goes into Stax. Essentially, Stax is a Platform as a Service. Much like Force.com, you can write applications locally (I used the force.com plugin for Eclipse) and deploy/synchronize it in the clouds. Pretty convenient. Stax is cool because it combines two technologies: Java and Amazon’s EC2 technologies. As of the time of this writing, MySQL is the backend of choice and Apache Tomcat is the J2EE container.
Business Value:
Traditional means of development usually requires a developer to be the organization’s site, using a standard issued computer, developing locally, testing and deploying to an unstable or a QA server in the same network. Modern acceptance of technologies, such as VPN, allowed developers to do their development outside of their cubicles, but one problem still arise. That problem is that if an organization wants to add another developer to their development team, that organization cannot easily and elastically set up a platform for that new resource. The corallary is true as well when it comes to reducing or transfering a developer to another team. This is even more problematic when teams and developers are dispersed across different locale.
Elastic conventions should be preferred over configuration (much like the design pattern) when it comes to the developer’s entire environment. Test driven development and code coverage (much like force.com), should be integrated with every platform’s API. The elastic model for development should simplify code synchronization issues and merges. I think cloud based frameworks and platforms will mature such that requirements to testing, to implementation, to integration testing, to deployment, to user acceptance testing, release management can become not only simplified and better streamlined, but can become almost autonomous and asynchronous for large complex projects spanning across locale’s.
Up Next:
The next part of this series will cover the implementation details of Platform as a Service, starting with force.com’s implementation. I know force.com is not java based (although Apex is a cool derivative). But the documentation is pretty outstanding and the tutorials are easy to follow.
References:
- O’Reilly Article – Java in the Cloud
- Stax