Java is the top programming language of choice used to develop enterprise and business applications these days.
But enterprise applications are hardly green field and ground up. Rather they are more into evolutionary nature, reusing existing IT assets, aiming to leverage best of breed technologies to the maximum benefit. In short, it is about spending least amount of money and effort and gain the maximum benefit.
The advent of cloud computing, has made many cloud venders to claim support for Java on the cloud. On one hand, we have the design, development and testing of the applications. On the other hand, there is the need to be able to easily deploy, mange and maintain those applications in production. Then there is yet another angle, where it is ideal if we can deploy the existing applications as they are into the cloud.
Java application design, development and unit testing, and sometimes even integration testing, are best done on premise. We do not want the engineering team to face the network latency bottlenecks when they are in high gear to meet the release timelines.
On the other hand, staging and production deployments can leverage the cloud.
Existing Java Web Applications on to the Cloud
The most common form of enterprise business applications are Web applications, often backed up by a database (the so popular MVC applications). It is ideal if we could have the traditional Java Web applications in a cloud setup to benefit from the elastic auto scaling capabilities. It is a fact that most Web applications would have occasional or seasonal peaks and it is at that time, that the applications has to perform the best – but unfortunately, it is when the traditional applications break, without being able to scale.
The good news is that, with the Applications Server as a Service, you can deploy the exiting war files, in other words, Java Web applications, on to the cloud. The advantage is that, with just a click and upload of the war file, you can enter the cloud era. And it will auto scale, be deployed multi tenanted, billed & metered for usage and be able to monitor with platform monitoring tool. Your WebApp is running on a Java PaaS.
Java Web Services on the Cloud
Web services, implemented as Apache Axis2, based on JAX-WS APIs are popular forms in Java. Another form of Java Web services is to reuse existing applications developed as Spring applications or plain old Java application and expose them as a service. All these forms of Java Web services can easily be deployed, managed and monitored with an Application Server. But it is an added advantage if you can use the same application server as a service. Like in the case of Web applications, you can use the Application Server as a Service to deploy existing Java Web services into the cloud and leverage the cloud advantages offered by the Java PaaS.
Data on the Cloud
It is an advantage to be able to deploy the existing Web applications or Web services as they are and reap the benefits on the cloud. However, what if we want to develop the next new application on the cloud, and where would my data be? Well, you can have the data on the cloud, created, managed, billed metered and monitored on the cloud. The Data as a Service allows you to create the database on the cloud, then use that database as the data store for the applications deployed on premise or on the cloud.
If you want to be all cloud, one of the options you have is to have the database on the cloud with Data as a Service and develop and deploy a Web application that uses that database on to the Application Server as a Service. You can have the travel logistics application or the team allocations application on the cloud with this model.
Comments