SAP's OSGi-Based Java PaaS Achieves Java Enterprise Edition 6 Web Profile Compatibility
SAP AG announced on the 16th December that its NetWeaver Cloud product, a Java-based platform-as-a-service, has achieved Java EE 6 Web Profile Compatibility.
NetWeaver Cloud runs on top of OSGi using Eclipse Virgo as the OSGi container. The product includes an Eclipse-based SDK for building, testing, and deploying applications in the cloud, and a web-based console to monitor and control applications and virtual infrastructure.
"We developed this technology together with the open source community in the Eclipse Virgo project," Björn Goerke, executive vice president, Technology & Innovation Platform Core at SAP, said in a statement. "This achievement is a result of SAP's ongoing engagement in open source communities and our commitment to open standards. Our strategy is to support and enable new technologies—first in the cloud—and then make them available to our on-premise customers."
The platform itself is provided as-a-Service from SAP, and the vendor told InfoQ it has no immediate plans to provide it on-premise. The runtime does however include a cloud connectivity service which can be used to establish an SSL tunnel between the SAP NetWeaver Cloud and on-premise systems. Other run-time services include:
- Persistence via JDBC, JPA 2.0, and EclipseLink using Sybase ASE and the vendor's HANA in-memory database platform
- Enterprise content management via the Apache Chemistry Open Content Management Interoperability Service (CMIS)
- Identity federation
SAP is aiming to build a marketplace and partner ecosystem over time around NetWeaver Cloud, much like Salesforce.com has done with its Force.com platform, and the product is integrated with SAP Store.
InfoQ spoke to Matthias Steiner, Cloud Platform Evangelist at SAP, and Krasimir Semerdzhiev, who works for SAP as a Cloud Platform expert, to find out more about the product.
How important are open standards in the PaaS space?
For a PaaS offering to be successful – standards are a key aspect! Our observations so far are that the majority of solutions that get ported to the cloud are either already running on a server somewhere on-premise or are reusing large portions of already existing solutions/libraries. In that context, the two primary stacks used are Java EE and Spring. On our side – we support both. Furthermore, a standards-based PaaS greatly lowers the entry barrier for people new to the platform, as they can just use the frameworks and libraries they already know without having to familiarize with proprietary technologies. This also greatly improves the time to market. Finally, open standards and open source are vital to prevent vendor lock-in, which is very important for companies considering adopting cloud computing. Enterprises are not only concerned about how to get started with cloud computing, they are also concerned about staying in control of their data and having the possibility to move to other providers/platforms if the need arises over time.
What can developers do? Is it only the Java EE 6 Web profile?
In contrast to other offerings, SAP NetWeaver Cloud offers unrestricted Java support. We don't blacklist or prohibit packages, thus we are not limiting Java language or the standard packages in any way. We've seen people implementing many different scenarios, ranging from global partner-enablement solutions, portal aggregation sites, and business process fragments to simply playing around to check what's possible. The Java EE 6 Web Profile is the basis for our platform. On top of this, we offer many value-adding services ranging from mobility, cloud and on-premise integration, analytics and so forth. We have free perpetual developer accounts which are available through the Cloud Developer Center. Yet, besides the technical capabilities, we want to provide an holistic platform, which also implies the monetization of applications developed by solution providers. For this purpose we offer the opportunity to become NW Cloud certified (www.sapcloudappspartnercenter.com) and to sell solutions to the broader SAP customer base via the SAP Store.
What is HANA?
HANA is SAP's new in-memory technology database that supports both row and column store capabilities to allow running OLAP and OLTP scenarios in a single database. It's engineered from the ground-up optimized for parallelization, which allows for real-time data processing and sub-second analytics over billions of records at a time. Whether it's a real-time analysis over the 7+ billion planet Earth inhabitants or on-the-fly overview of the power consumption of all apartments in downtown New York – it doesn’t technically matter.
Is it only useful for people who integrate with SAP as the back end, or can it be useful as a standalone PaaS offering?
Both! We want to provide a platform for a wide variety of scenarios. Of course, backend integration capabilities are very interesting for our current customer base, yet with SAP NW Cloud we certainly aim to bring new people to our ecosystem. Due to the fact that we are based on open standards, any Java-based scenario will run on top of our platform. Through the SAP Store, solution providers get immediate access to our established customer base to sell their applications to.
What made SAP decide to base its PaaS on top of OSGi?
It's a long multi-year story. Back then we saw the need for a standards-based, modular, scalable yet lightweight container to be used for application development inside and outside of SAP. We opted for OSGi as it provides us with all of these characteristics. We use OSGi as the basis of all the platform building blocks, working primarily with Declarative Services (DS). In addition, it gives us good overview of the module dependencies, better predictability for the impact of a change, standard provisioning mechanism, etc.
What made SAP choose Virgo as the OSGi container?
In the early days of the project we ran on plain Eclipse Equinox. OSGi seemed to be the best approach – so it was a conscious decision. After evaluating the scalability and flexibility of the different runtimes out there, we ended up developing infrastructure for log aggregation, better tracing, bundle troubleshooting, etc. We then realized we weren't the only ones working on these challenges. We closely followed the initial contributions to Virgo in Eclipse by SpringSource and decided we wanted to join forces and get involved from the very beginning. At that time there were no real alternatives offering the simplicity of Tomcat and the ability to manage large modular software projects based on OSGi. The initial discussions with the project committers were very promising and constructive and we quickly managed to align around priorities and the way forward. That's how we've got to the current state where SAP is one of the major contributors behind the Eclipse Virgo project, which is powering many pieces of the SAP NetWeaver Cloud infrastructure and applications. We're really happy with the choice we've made, as we ultimately believe that collaborating with other parties via open source projects is the way innovation and future partnerships are forged. No surprise - we're already able to see the benefits of that as different tool vendors went forward integrating with the Eclipse Virgo. As a result, the subsequent integration with NetWeaver Cloud has become way easier to achieve.
How are objects persisted in the database?
SAP NetWeaver Cloud offers a number of storage options. One of those is unstructured storage, for keeping files and documents with additional meta-data. In parallel to that we also offer relational persistence based on SAP HANA and MaxDB. Sybase ASE is close to being released as well. All of those are consumed through a persistence service, which allows developers to use either plain JDBC or JPA to store data in a database.
The corresponding schema in the database is automatically created, secured and provisioned to the application. Think of it as DB-as-a-service; the developers do not need to worry about it at all. All they need to do is define a reference to a datasource in their web.xml (or annotate that accordingly). Again, we've stuck to well established standards to make it as simple and unobtrusive as possible for application developers.
A free developer edition of SAP NetWeaver Cloud for developing cloud applications is available from the SAP NW Cloud Developer Center, which also provides further information via forums, blogs and tutorials.