For the past 9 months or so, I’ve been exploring the SAP HANA Cloud Platform (SAP HCP) and seeing what it has to offer as a PaaS solution. Now that I’ve had a chance to collect my thoughts, I thought I’d write a quick blog to share my findings. This is by no means meant to be a sales pitch, but rather a simple commentary on my findings. I hope you’ll find it useful.
Some Background Information
In the interest of full disclosure (and to better understand where I’m coming from), let me briefly describe my background. I’m an independent consultant who’s been working in the SAP space for 13 years. During that time, I’ve bounced back-and-forth between ABAP-based solutions and Java-based solutions. When SAP introduced NetWeaver, I was very excited about the prospects of developing business applications using Java technology. Since that time, I’ve found myself more and more disillusioned about the Java-based solutions at SAP which, to be quite honest, paled in comparison to ABAP-based solutions. Indeed, it became hard to be a Java evangelist when customers started ranting about legitimate shortcomings with the AS Java and the products hosted on it (e.g. SAP NetWeaver Portal).
In more recent years, I’ve found myself doing some Java-based development outside of the SAP space using Amazon and Google’s cloud platforms. I was very impressed with these platforms and the functionality they provided.
So, when SAP first started talking about their own PaaS offering, I was both intrigued and skeptical at the same time. I certainly hoped for the best here but, as a relative late entrant into the PaaS landscape, I braced for the worst: a simple port of the AS Java into the cloud and little more. What I ended up finding is an open and well-designed solution that’s a breath of fresh air for Java developers working in and around SAP. If you’ve had a poor experience with SAP-based Java offerings before, I’d submit that you’d probably scarcely even recognize the SAP HCP. In the sections that follow, I’ll hit on some of the highlights of what I think SAP got right with the SAP HCP.
Perhaps the most welcome aspect of the SAP HCP to me is its openness. From its core APIs to the Eclipse-based development tools, you’ll find that SAP utilized open standards and technologies across the board. Gone are the proprietary deployment descriptors, painful NetWeaver Development Studio installations, and all of the SAP-specific nuances of Java-based application development. This also extends to software logistics as there’s no longer a dependency on the SAP NWDI and SAP-proprietary build tools. Now, customers can choose their preferred revision control system (e.g. Git), implement automated builds with Maven/Ant, and even move towards continuous integration with tools like Jenkins.
What this means for many organizations is that you can engage pre-existing or external Java resources for SAP HCP development and there really won’t be much of a learning curve. The technology is freely accessible, and using the SAP HCP SDK, a developer can begin dabbling in SAP HCP development on their local machine in a matter of minutes. This is not to mention the fact that developers can also create a free developer account on the cloud to try this out on a (mostly) real-world cloud environment.
As evidenced by the plethora of “Create an SAP HCP application in 5 minutes”-type tutorials here on the SAP SCN, the SAP HCP is a very easy platform to develop on. Using the Java EE 6 Web Profile, developers can jump right in and begin creating Web applications using classic Servlet/JSP/EJB/JPA technology in a matter of minutes. Or, if they prefer to develop using one of the infinite Web frameworks out there (e.g. Spring), they can drop those frameworks in and work from there. Deployment is streamlined using the Eclipse WTP, and the online account cockpit is very intuitive and easy to use.
The latter point is, in my mind, a huge advantage over other cloud platforms. For example, if you’ve ever tried to set up an Amazon EC2/AWS Elastic Beanstalk instance for Java development, you’ll note that there are many more steps required to set up the OS, provision resources, install application servers, and so on. With the SAP HCP, all of these tedious details are abstracted such that instance provisioning is almost turnkey.
3) Access to HANA and In-Memory Technology
In many respects, this is one of the key areas where SAP has set themselves apart from the competition. No other PaaS offering can really boast such tight integration with an in-memory database such as SAP HANA. The raw speed and power of HANA also goes a long way towards evening out application performance for companies that are on the fence about deploying applications to the cloud.
4) More than Just Another Java Platform
As a corollary to point #3, we should point out that SAP HCP does more than just provide JDBC-based access to SAP HANA. Developers have the capability to build applications from scratch using native HANA technologies just as they would develop such applications on-premise. This means that developers can tap into rich APIs such as the Predictive Analysis Library (PAL), quickly develop OData services for consumption from SAPUI5 applications (which can also be deployed on the SAP HCP), and more. Over time, the list of libraries and APIs will only continue to grow and expand.
5) Useful Services for Accessing Resources
Aside from the core application foundation, the SAP HCP provides a number of useful services which make it easy to implement persistence, store unstructured data, and even access services deployed on-premise. These services make what would normally be highly-complex development tasks remarkably easy in my opinion. For example, in the old days, the prospects of exposing an RFC/BAPI to an external Web application was a logistical (and political) nightmare. When I compare that experience with that of setting up the SAP HANA Cloud Connector and securely exposing an RFC function, it’s pretty remarkable how much easier things are with the SAP HCP.
As an added bonus, the instrumentation layer of these services is generally provided in the form of industry standard APIs. For example, Java developers can access the Persistence Service using either the JPA or JDBC API. To call a BAPI, you use the JCo API. This is yet another example of openness in the platform.
6) Integration with Mobile Technologies
Besides being a general-purpose PaaS, SAP HCP also does a good job of integrating with other related technologies such as the SAP Mobile Platform (SMP), Gateway, and so on. As these products continue to meld together, I envision the SAP HCP as becoming the glue that unifies cloud solutions with data that remains on-premise.
All in all, I think that the future for the SAP HCP could be pretty bright if SAP continues to follow through with their cloud strategy and begins developing commercial applications on the platform. SuccessFactors extension development is a good start, but there has to be more I think for customers to feel the incentive to adopt the platform on a widespread scale. At this point, all the tools are in place; customers just need to have a reason to jump on board.
As a developer who’s come to enjoy developing on the platform, I’m very hopeful that the platform takes off. If nothing else, the next several years should be interesting to say the least.