Practical Use Cases for SAP HCP: Part 1 – Extending Your On-Premise Landscape
Despite its positioning as the cornerstone of the next-generation SAP cloud landscape, the SAP HANA Cloud Platform (HCP) remains something of a mystery for many SAP customers. For some, the use of the term “HANA” leads them to think that the HCP is just yet another deployment option for HANA. Others tune out when they hear the term “cloud” since their business has no intentions of moving to the cloud anytime soon. Whatever the reasons(s), HCP is, in my opinion, one of the best-kept secrets in the SAP technology portfolio.
In this blog series, I’ll attempt to put the record straight by demonstrating some practical use cases for using the SAP HCP. I’ll start by demonstrating how the HCP can open up an on-premise SAP landscape. As you’ll see, this can lead to some very compelling application scenarios. So, without further ado, let’s get started.
There’s (Not) an App For That?
In early 2009, Apple launched a catchy advertising campaign which touted the comprehensive nature of its online app store. The now familiar tagline made it clear that, no matter what you need, “there’s an app for that”. While this may be true for certain types of consumer-grade applications, the same cannot be said for apps in the enterprise space. Here, even in late 2015, many large corporations still don’t offer many apps to their customers and/or suppliers. Sure, they have a website and a specialized app here and there but, in general, the overall offering is pretty limited.
This void is not for lack of trying on the part of most forward-thinking organizations. Indeed, most organizations would like very much to offer a better, simpler experience for their customers. Furthermore, they see the potential cost savings in providing more self-service type offerings for customers/suppliers. The major obstacle getting in their way is complexity. When you get right down to it, exposing sensitive business data for public consumption can be very complicated. Setting aside the obvious security risks, other things to consider here include user on-boarding, branding/theming (after all, we can’t get away with cheap Dynpro-esque screen layouts in a customer-facing environment), and logistics coordination (e.g. the operations team sets up a reverse proxy in a DMZ, the network security team opens up the firewall, etc.).
Realistically, these complications are real and aren’t going away any time soon. However, as we’ll soon see, the SAP HCP provides a holistic service offering which greatly shortens the complexity curve. With this foundation in place, developers can turn their attention towards innovation – and there’s a lot of opportunities here. In the SAP space in particular, it’s been estimated that roughly 75% of all the world’s business transactions touch an SAP system at one point or another. To a large degree, much of this data never sees the light of day. Instead, it’s locked away in SAP system databases and/or business warehouses.
To put this into perspective, let’s consider a simple use case based on sales order processing. Within an SAP CRM or ERP system, users have access to lots of information concerning the status of an order. However, aside from maybe a system-generated status email here and there, this information is not normally accessible to the end customer. Instead, customers frequently have to pick up the phone and call to figure out where their order is. This leads to customer dissatisfaction and more work for the sales support staff. With just a simple app (mobile-enabled or otherwise), a lot of frustration could be avoided.
Besides the more obvious extension scenarios like the one described above, there’s also a unique opportunity for organizations to begin to put their data to use to build innovative apps that have never really existed before. After all, it’s been argued these days that a customer’s most valuable asset is their data. A classic example of this is Netflix with their recommendations service. Here, by combining data with some sophisticated algorithms, they’re able to predict films that customers might like. In the enterprise space, we’re seeing similar predictive functionality showing up in areas such as CRM where data’s being used to predict buyer behavior and tailor marketing accordingly. The possibilities are endless and with SAP HCP, these scenarios are more accessible than you might think.
Establishing a Secure Tunnel between the On-Premise Landscape and the HCP Account Tenant
So if we’re going to build applications like this on top of the SAP HCP, the first thing we have to do is figure out how securely connect our HCP account tenant with the on-premise SAP landscape. For this, we can employ the use of a specialized component called the SAP HANA Cloud Connector. As you can see in the figure below, this lightweight server component gets installed somewhere in the customer on-premise landscape, establishing a secure SSL VPN tunnel outward from the on-premise landscape to the HCP tenant account in the cloud. For this, no holes have to be punched in the firewall or anything like that – just a simple installation of the connector (it takes about 10 minutes) and you’re up and running.
On the HCP side of the house, access to the on-premise landscape is brokered through a specialized service called the Connectivity Service. This service abstracts access to on-premise systems via a service API called the Destinations API. Using this API, developers can obtain proxied connections to backend systems through configured destinations defined in the HCP Cockpit as shown below. These destinations specify the relevant parameters for the connection (e.g. virtual host/port, authentication mechanisms, and so forth), making it simple for developers to obtain a connection programmatically without having to worry about lower-level technical details.
The connections obtained via the Connectivity Service can be used to connect to other Internet-based systems (e.g. other cloud solutions) or on-premise systems. In the latter case, the connection is naturally brokered through the aforementioned Cloud Connector component which is installed on-premise. Here, via the Cloud Connector admin console, we can throttle the connection such that only selected services of selected systems are exposed as part of a “white list”. For example, if we wanted to implement the sales order status app described above, we would use access control to limit access to the one-off BAPI function we plan to call.
For detailed information about how to install and configure the SAP HANA Cloud Connector and how to use it in conjunction with the Connectivity Service, check out https://help.hana.ondemand.com -> SAP HANA Cloud Platform -> Services –> Connectivity Service.
What’s Can we Do with the Connectivity Service?
Now that you have a general sense for what the Connectivity Service is all about, let’s take a deeper look at what we can use it for. At present time, the Connectivity Service offers support for three different communication protocols: HTTP(s), RFC, and MAIL (SMTP & POP). This implies that we can use this service to:
- Call RFC/BAPI Functions on a backend SAP Business Suite system (regardless of release level). Within a Java application deployed on the HCP account, we can use SAP’s Java Connector (JCo) component to process the function and parse the results.
- Using HTTP destinations, we can invoke REST/OData services that might be exposed in the on-premise landscape. Such services would normally be hosted on an SAP Gateway system, but any RESTful service is in play here.
- Send and receive mail messages.
In most extension scenarios, it makes sense to access the on-premise data via OData services and HTTP destinations. This gives the HCP application developer the most flexibility since HTTP destinations can be consumed from all three of the current HCP programming models; Java, Native HANA, and HTML5 apps. For many customers, the HTML5 application option will be of particular interest since it allows them to apply basically the same concepts used to develop on-premise SAPUI5/Fiori apps. Indeed, using the SAP Web IDE, it’s absurdly easy to create a Fiori-style application on top of these services. And, aside from a bit of configuration on the application’s deployment descriptor, you’d never know that the data’s coming from on-premise.
Hopefully this blog post helped you to see how easy it is to get data out of an on-premise landscape using the HCP Connectivity Service. Once we set this up, the process of creating web applications on top of this data is fairly straightforward. However, this barely scratches the surface of what we could accomplish with the HCP. In my next blog post, we’ll take a look at how we can use HCP Mobile Services (HCPms) to rapidly create enterprise-quality mobile applications.