|By Srinivasan Sundara Rajan||
|December 5, 2010 08:15 AM EST||
Windows Azure and PaaS for the .NET World
Ever since the beginning of this century a comparison between the platform capabilities of Java EE (Java Enterprise Edition) and Microsoft .NET has been a common discussion when choosing an enterprise platforms.
With the advent of Cloud, Microsoft has taken a lead with the Windows Azure PaaS (Platform as a Service).
Many key decision makers for cloud enablement now have questions on how good an equivalent the Java EE platform could be.
Windows Azure Stack
From a platform perspective Windows Azure provides a complete list of options that are available to.NET developers in a ‘On Premise' setup, which includes:
- Full support for .NET framework and languages like C#, Visual Basic
- Web development using ASP.NET
- Distributed processing using WCF (Windows Communication Framework)
- Enterprise database support with SQL Azure
- Data access services using ADO.NET and LINQ
- Rich Internet Application support using Silverlight
Above all is out-of-the box support from .NET IDE VisualStudio, which provides customized templates for the development and deployment of applications to cloud.
Windows Azure acts as a robust PaaS in the sense that with the support from Visual Studio we could develop, configure and publish a package from an end-to-end perspective to the Azure platform.
Java EE PaaS Options
The Java counterpart of the .NET platform, referred to earlier as J2EE, is now called Java EE and it offers several enterprise class features for multi-tiered enterprise development. Java Platform, Enterprise Edition (Java EE) 6 is the industry standard for enterprise Java computing. Utilize the new, lightweight Java EE 6 Web Profile to create next-generation web applications, and the full power of the Java EE 6 platform for enterprise applications. Developers will benefit from productivity improvements with more annotations, more POJOs, simplified packaging, and less XML configuration. The following are some of the PaaS offering for Java EE in Cloud.
1. Google App Engine for Java
Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast development and deployment; simple administration, with no need to worry about hardware, patches or backups; and effortless scalability.
Google App Engine provides a PaaS environment for both Java EE and Python. The following features are supported especially for Java EE:
- The Java environment provides a Java 6 JVM, a Java Servlets interface, and support for standard interfaces to the App Engine scalable datastore and services, such as JDO, JPA, JavaMail, and JCache.
- Much like Visual Studio for Azure, Google App Engine for the Java EE Platform is supported by the Eclipse IDE for simplified development and deployment of Java EE applications.
Unsupported Features in Google App Engine:
- Enterprise JavaBeans (EJB) is not supported as part of the Google Apps Engine
- A UI development framework like JSF (JavaServer Faces) is not directly supported
- Other Java EE standards like JMS (Messaging Service) and Web Service Specifications
2. Makara (Red Hat) PaaS Platform
The Makara Cloud Application Platform is the first intelligent auto-scaling solution for applications in the cloud that doesn't require templates to be tweaked or scripts to be written and maintained. Create rich, collaborative Custom Cloud 2 apps fast without buying hardware or installing software. Force.com provide a complete platform with a simplified programming model.
The Makara Platform enables organizations to deploy, manage, monitor and scale their Java and LAMP applications on both public and private clouds, such as Amazon EC2 and VMware-based Clouds, without any modifications.
Currently supported software components include:
Much like the Google App Engine, enterprise Java EE features such as JMS and EJB are not available in the Makara platform and also the reference implementations and case studies have yet to evolve.
SalesForce is a leading provider of the SaaS platform for customer relationship management on Cloud. They also have a PaaS offering Force.com that give developers a platform to create rich, collaborative Custom Cloud 2 apps fast without buying hardware or installing software. Force.com provides a complete platform with a simplified programming model.
The development platform of Force.com, called Apex, is ‘Java Like' but not truly Java.
With Force.com, you get a full enterprise application development stack including a complete user interface to your data, comprehensive reporting and analytic capabilities, a flexible security and sharing model, and workflow and approvals - all available and integrated from the start. You can even leverage extended features such as built-in internationalization, full support for mobile devices, and integration with existing systems.
Some of the pros that makes it convenient for Java EE developers are :
- Eclipse-based IDE
- Syntax similar to Java EE
- Web services support
- Standard MVC design
- HTML and other web technologies such as AJAX and CSS
From a classic perspective, Force.com is not a Java EE platform but the similarities are enough for it to be considered as a PaaS choice by Java EE developers.
4. Amazon EC2 + IBM Stack
This is not a PaaS offering but rather a customized IaaS offering. However, for the sake of choice for Java EE on Cloud, this is still a strong contender.
Amazon EC2 presents a true virtual computing environment that allows you to use web service interfaces to launch instances with a variety of operating systems, load them with your custom application environment, manage your network's access permissions, and run your image using as many or few systems as you desire.
Amazon EC2 enables partners and customers to build and customize Amazon Machine Images (AMIs) with software based on their needs. IBM and Amazon Web Services have teamed up to provide the ability to use Amazon EC2 to run several IBM platform technologies such as WebSphere Application Server, which provides a Java EE platform.
Java EE PaaS offerings are evolving and we'll see more players in the future. However, due to full support from the Azure platform, .NET as a PaaS is fully mature. But the above mentioned Java EE PaaS will support developer needs.
- Java EE 7 and Cloud Computing
- Cloud Computing Reference Architecture – Review of the Big Three
- Windows Azure vs VMware vFabric
- PaaS: .NET vs Java EE
- Using Amazon Elastic MapReduce in the Automotive Industry
- Five Factors to Influence Cloud Adoption – The Pros and Cons
- Dynamic Scaling and Elasticity - Windows Azure vs Amazon EC2
- Cloud Analytics - The Big Four Offerings
- Enterprise Java EE PaaS - OpenShift vs Google App Engine for Java
- Challenges and Solutions for the Health Care Industry in Cloud Computing