Skip to Content

<— Part I

4. Exposing and Consuming Data with OData

4.1 Exposing and Consuming Data – Architecture

In the traditional architecture you have the database layer, the application server layer, and a client layer.

Classic-SAP-Architecture1.png

In HANA Extended Application Services architecture the application server is shrunk down, meaning the XS really stands for “extra small” and it runs inside the database itself.

SAP-HANA-XS-Architecture-I.png

We use more code pushdown so we are able to put more data-intensive logic deeply down inside the database itself. We put most of our business logic down in the database layer. UI rendering has been moved out to the client. As client devices have gotten more powerful, even phones and tablets we can do the complete UI rendering even on the client side. XS application server layer does the service enablement.

The client device makes an HTTP connection to the HANA server.

SAP-HANA-XS-Architecture-II.png

Inside the HANA server we have three processes involved at the operating system level. The first process is called the ICM, which stands for Internet Communication Manager. And this is the Web server itself. Then the Web server communicates to the XS Engine process. At the lowest level inside of HANA, we have the index server process. The index server is if you would think of HANA the database itself and you had to classify it down to one operating system process, the index server would be the most important of those operating system processes. It’s the main core of HANA, of the database itself.

4.2 SAPUI5

SAPUI5 is SAP’s UI development kit for building HTML5–based applications.

SAPUI5.png

SAPUI5 is a combination of open standards, some third-party open source libraries, and some SAP self-created technology. Some of the technologies we use inside of SAPUI5:

  • HTML5 is sort of an umbrella term, it means extensions to the JavaScript language
  • jQuery is very common, very popular open source JavaScript-based UI library
  • CSS3 is for the style and layout
  • OData is like ODBC for the Web. It is an open and easily consumable way of accessing data and business logic over HTTP using standard HTTP concepts.
  • Open Ajax is used for inoperability, it is an open standard for when you have multiply widgets and parts in a page coming from different servers or applications to be able to exchange data and events within that page using client-side JavaScript.
  • LESS is used for themes
  • D3.js is used for data-driven documents (charts and graphs)
  • ARIA is for accessibility
  • SAPUI5 Development Toolkit for HTML5 (SAPUI5 SDK). See SAP Note 1747308 Installation Guide UI development toolkit for HTML5 (SAPUI5).

SAPUI5 is used heavily in the analytics when we need to display charts and graphs, collaborations and feeds.

Positioning-of-SAPUI5-Technology.png

SAPUI5 is a new addition to SAP’s UI strategy and the traditional Web Dynpro technology is still used in the business suite, particularly for the expert users. SAPUI5 is the only technology that SAP delivers for HANA native applications.

4.3 Creating a User Interface with SAPUI5

A simple little “Hello World” application is built using SAPUI5 development tools.

4.4 OData Services

OData defines an open but very easy-to-consume standard for interopting with data over the Web. Whereas Web services use SOAP as the body format, OData on the other hand embraces REST-based architecture. This is lighter weight, HTTP-based, and uses the HTTP verbs as the actions in an OData service. OData Data Model describes data with Entity Data Model (EDM).

OData-Basics.png

OData Data Model defines which entities are used in a a service and what are the relationships between those entities. OData protocol is the communication protocol and it supports CREATE, READ, UPDATE, and DELETE operations by using the HTTP verbs. OData client libraries are prebuilt libraries that help with the consumption of OData services. OData Services exposes an end point that allows access to data in the SAP HANA database. It allows an external system or any external client or system that can speak HTTP to call the service or consume the data that is part of the OData service model.

4.5 Creating a Simple OData Service

An OData service definition is built.

4.6 Creating a Complex OData Service

Associations between entities are built.

4.7 Calling an OData Service from the User Interface

A user interface is created that consumes and presents OData service.

5. Exposing and Consuming Data with Server-Side JavaScript

5.1 Server-Side JavaScript (XSJS)

On the server side, our programming language for all procedural logic is JavaScript. We have seen how we can use SQLScript as the main programming language for data-intensive logic down in the database. But it is designed—-although it has some imperative logic features-—it is primary designed for data-intensive operations. Server-side JavaScript is very well suited to lightweight procedural logic. JavaScript is a very open, very widely known programming language.

5.2 Creating an XSJS Service

A simple server-side JavaScript service is created.

Custom-Logic-Functions-and-Variables.png

5.3 Extending the XSJS Service

More functionality is added in the server-side JavaScript service.

5.4 Calling XSJS from the UI

A user interface is built using SAPUI5 that consumes custom XSJS services.

5.5 Debugging XS JavaScript

The debug perspective has Debug view, Breakpoints view, Variables view, Source-code view, and Outline view.

Debug-Perspective.png

6. SAP HANA Advanced Development Options

6.1 Lifecycle Management

Lifecycle Management manages software releases, enforces version control, manage product development, monitors software packages, and manages application packages.

Lifecycle-Management-Overview.png

SUM for SAP HANA is your software update manager. This is the tool that helps you import whole new support packages and revisions into your HANA system, but also to take additional software packages and install them into SAP HANA.

6.2 SAP HANA UI Integration Services

SAP HANA UI Integration Services is an additional UI development tool.

SAP-HANA-UI-Integration-Services.png

It is a higher-level user interface design tool. It’s even something that maybe you don’t have to do yourself as a designer, but could give it to functional person or a business process expert. They only have to drag and drop widgets and arrange them in a screen as they want them. This tool does not replace SAPUI5.

Reference

openSAP. (2013, December 12). Introduction to Software Development on SAP HANA. Retrieved from https://open.sap.com/course/hana1-1.

Additional Resources

SAP HANA Developer Guide

SAP HANA SQL and System Views Reference

<— Part I

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply