Business application platform with embedded business intelligence server

A system is provided in which at least one first server comprises at least one data processor executing a business application platform providing various business applications for access by at least one remote client. In addition, at least one second server comprises at least one data processor executing an embedded business intelligence server (EBIS). The EBIS provides an interface to the platform to at least one business intelligence applications providing business intelligence functionality. With such a system, a unified interface can be rendered on the at least one remote client concurrently provides functionality from the platform and the at least one business intelligence client. Related apparatus, systems, techniques and articles are also described.

TECHNICAL FIELD

The subject matter described herein relates to a business application platform such as an Advanced Business Application Programming (ABAP) platform that includes an embedded business intelligence server providing business intelligence functionality.

BACKGROUND

Applications providing analysis of large data volumes are typically not optimized for visualization of data to the end user. For an integrated solution, application-specific coding is required that provides for acquiring the data and transforming the data into an adequate representation. An alternative is to use a separate business intelligence server having a different interface; however, such an arrangement introduces additional system landscape complexity and, therefore, the total cost of ownership.

SUMMARY

In a first aspect, a system includes at least one first server and at least one second server. The at least one first server comprises at least one data processor executing a business application platform providing various business applications for access by at least one remote client. The at least one second server comprises at least one data processor executing an embedded business intelligence server (EBIS). The EBIS provides an interface to the platform to at least one business intelligence applications providing business intelligence functionality. With such a system, a unified interface can be rendered on the at least one remote client concurrently provides functionality from the platform and the at least one business intelligence client.

In an interrelated aspect, one or more business application are executed on a business application platform. In addition, one or more business intelligence client applications providing business intelligence functionality are executed via an EBIS that provides an interface to the platform so that the business intelligence applications can be executed concurrently with the business applications. The executing one or more business applications and the executing one or more business intelligence applications can be displayed concurrently in a unified interface at the client.

The platform can be an advanced business application programming (ABAP) platform. A real-time analytics platform can be coupled to the platform to provide real-time analytics to the client. The real-time analytics platform can include an in-memory columnar data store. The platform can communicate with the remote client(s) via representational state transfer (RESTful) services and/or using JAVASCRIPT.

In addition, user can be authenticated by the platform on behalf of the EBIS. For example, authentication requests can be dispatched to the platform and, in response, the platform can issue, for each request, a reentrance ticket to open a connection to the platform within a pre-defined period of time. In addition, the reentrance ticket can be handed to the EBIS to establish a remote functional call (RFC) connection to the platform during a lifetime of a corresponding session.

Computer program products are also described that comprise non-transitory computer readable media storing instructions, which when executed one or more data processor of one or more computing systems, causes at least one data processor to perform operations herein. Similarly, computer systems are also described that may include one or more data processors and a memory coupled to the one or more data processors. The memory may temporarily or permanently store instructions that cause at least one processor to perform one or more of the operations described herein. In addition, methods can be implemented by one or more data processors either within a single computing system or distributed among two or more computing systems.

The subject matter described herein provides many advantages. For example, the current subject matter provides a business application and analytics platform with an embedded business intelligence server that, in turn, provides enhanced usability and functionality for end-users. In particular, the current subject matter can be used to provide a single integrated solution to create and run applications that combine transactional and analytical aspects.

DETAILED DESCRIPTION

The embedded business intelligence server (EBIS) as described herein can be used with applications to combine the processing of detailed, transactional data (e.g., single record read/write scenarios) with analytics. This, in turn, can provide the user with an overview on an entire set of transactional data records created or a subset of the transactional data records (e.g., all transactional data records created by this user, all transactional data records created by the company this year, etc.). Not only can such applications display the aggregated data to the user, but an “insight-to-action” loop can be enabled by which the user may draw a conclusion from the provided analytics, which again can trigger the creation or modification of single, detailed transactional data records.

FIG. 1is a diagram100illustrating a system architecture for implementing an embedded business intelligence server (EBIS). A client110can communicate with an instance of an application platform120via HTTP (for example, using RESTful web services and/or HTML/JavaScript). The platform120can be encoded in Advanced Business Application Programming (ABAP) language, and therefore may be an ABAP platform. The application platform120, in turn, can communicate with an instance of an embedded business intelligence server (EBIS)140via HTTP and/or via remote function calls (RFC). In addition, the application platform120can also communicate with a real-time analytics platform160(e.g., SAP HANA platform) via RFC.

The application platform120can comprise an Internet Communication Manager module122which provides an interface via which the client110can communicate with the application platform120as well as the EBIS140. A query module124can interface with the EBIS140, providing a mechanism for defining queries (e.g., by selecting and combining characteristics and key figures or reusable structures in a query, etc.) which can be executed using a business information warehouse (BW) analytical engine126that interacts transiently with the EBIS140via a transient operational data provider (ODP)132. The application platform120can also include a definition implementation module128for persisting and managing application definitions specified by business intelligence applications such as Crystal Reports, Zen, etc. The definition implementation module128can be implemented as a TLOGO ABAP implementation module. The application platform120also includes a core platform services module130that can communicate with a platform services module148of the EBIS140via platform service adaptors154in the EBIS140.

The EBIS140can be an embeddable business intelligence server using a Java-based business intelligence service (e.g., a Java virtual machine (JVM), etc) container comprising a lean Java server (LJS) (a tomcat-based servlet container), the core of EBIS, and business intelligence clients. In particular, EBIS140can comprise a REST Binding Repository142and a Proxy Repository146that can provide platform service APIs to allow for the consumption of such APIs for the services which the EBIS140provides to its consumers and business intelligence clients sitting within the EBIS140(e.g., identity/access/authorization, management, repository, etc.). A Repository Adaptor152can provide an RFC-based API that exposes the application platform120via RFC.

A business intelligence (BI) client runtimes module144can provide various business intelligence services including applications for reporting, document rendering, and printing (e.g. Crystal Report), applications providing analysis and design for dashboards (e.g. ZEN-SAP Business Objects Analysis) or other analytical applications such as those for ad-hoc reporting, data exploration, and statistical analysis. Other tools/applications can be integrated via the BI client runtimes module144to provide, for example, Eclipse design time functionality (however, other design time environments can be used) and browser-based runtime business intelligence functionality. A platform services module148can provide service provider interfaces to be implemented for each platform into which the EBIS140is embedded. Platform service adaptors154can provide an implementation of the EBIS platform service APIs for consuming platform services implemented in the application platform120. In addition, a business intelligence consumer services module (BICS)150can provide a business intelligence API for data access and additionally has an RFC interface to the application platform120.

The real-time analytics platform160can be an SAP HANA platform that stores data in a columnar fashion in a column store164. The application platform120access a column store164(providing in-memory database functionality) via a column store engine162which can be coupled to the transient operational data provider132of the EBIS140.

With HANA implementations, an ABAP EBIS integration can be built based on data models built in HANA and exposed on the one hand via a platform for transactional processing to work with single entities/records and create, update, read and delete them and on the other hand transiently via an infrastructure such as the SAP BW Operational Data Provider (ODP) infrastructure to work and analyze aggregated data using HANA analytical views and corresponding SAP BW OLAP cubes processed in the SAP BW Analytical Engine. As an Application Server (AS) ABAP delivery contains the software component SAP_BW, the core functionality of the SAP_BW can be included. Specifically, (Data) Warehouse Management, Analytical Engine, the corresponding APIs for client access (BI Consumer Services, BICS) can be included, allowing applications to consume analytical data and combine them with their transactional user interface, and to consume this data in the business intelligence clients that may be part of the EBIS140.

Users/identities can be completely managed via a user management module (not shown) of the application platform120. For authentication/authorization, the corresponding requests can be dispatched to the application platform120. The application platform120can issue a reentrance ticket which can be used, for example, within 2 minutes, to open a connection to the application platform120. This ticket can be handed over to the EBIS140to establish an RFC connection to the application platform120which can then be kept open for the lifetime of the session on the lean Java server (LJS).

FIG. 2is a data flow diagram illustrating data flow among the client110(e.g., web browser, etc.), the EBIS140, and the application platform120as part of authentication. The client110, such as a web browser, requests, at205, an EBIS resource1from EBIS140(via HTTP). At this point, the EBIS140creates a new session (jsessionid). If no JCo/RFC connection or reentrance ticket is detected, at210, the request can be redirected back to the client110indicating that the EBIS Authorization Internet Connection Framework (ICF) Handler should be polled. Thereafter, the client110, at215, requests the EBIS Authorization ICF Handler from the application platform120(via HTTP). The application platform120then creates a reentrance ticket and, at220, redirects EBIS resource1with a reentrance ticket to the client110. The client110then requests, at225, the EBIS resource1(via HTTP) from the EBIS140. The EBIS140then, at230, uses the reentrance ticket to establish a JCo/RFC connection with the application platform120(which later, at235, confirms such connection). The EBIS140, at240, then provides data responsive to the EBIS resource1request to the client110. The client110, later, at245, sends an EBIS resource2request to the EBIS140. The EBIS140, at250, finds a JcO/RFC session attached to the jsessionID, so that at255, the user can be authenticated. Thereafter, at260, the EBIS140provides data responsive to the EBIS resource2request.

The following describes how the different types of users of the EBIS140—an end user, a developer of EBIS content, and an ABAP administrator—are exposed to the EBIS140.

The end user is that should not be able to distinguish, on a web browser, that a certain part of the application is provided by the EBIS140and certain parts of the application are directly served via the application platform120. For example, the end user can receive a browser-based, HTML page in a user interface, and the end user should not be able to distinguish which parts of the HTML page rendered in the browser UI are from the EBIS140and which parts of the HTML page rendered in the browser UI are from the application platform120. In particular, the HTML page can be a UI5 HMTL page. Thus, the end user should experience a smooth UI integration of HTML UIs with the HTML that is generated by EBIS140.

The end user can call an application via a URL and is presented with a logon screen provided by the application platform120. After successful logon, an application is displayed (see the screenshot300ofFIG. 3) which can comprise a mix of facilities to process transactional, single-record updates (e.g. creation of sales orders) and facilities to display analytical content (e.g. an overview of all sales orders the end user is responsible for shown per sales region and month). Additionally, the application can provide links that open a new browser window that is filled by “full screen” analytical user interfaces (e.g. a UI that allow modification of the above sales order overview, and drill down by sales region and month as well as modification of this view to display sales over product groups and customer segments and the like).

When using a single-record update functionalities of the application, the analytical parts in the UI can be refreshed immediately to provide the user with direct feedback based on the results of the interaction with the system. This invites the user to then further analyze the aggregated data, derive further findings and again create further single-record updates (i.e., the “insight-to-action” workflow).

Furthermore, it is possible for the user to navigate from an analytical UI or UI building-block to a transactional screen such as the screenshot200ofFIG. 2(e.g., in drilling down sales orders per customer in a chart, the user can click on a bar visualizing sales for a customer and navigating to the customer master data of the selected customer).

To make the above seamless for the user, common UI elements like buttons, dropdowns, etc. can be visualized exactly the same regardless of their origin, be it a transactional UI or a UI building-block rendered by EBIS140. Furthermore, all the settings an end user makes can be reflected in both transactional as well as analytical screen parts (e.g., logon language date/time/currency formatting options, branding changes, etc.).

The developer can install the application platform120, such an ABAP platform in Eclipse, the real-time analytics platform160such as HANA tools, and SAP UI5 tools. Additionally, the developer can install Eclipse-based EBIS clients, such as Crystal Reports Designer and ZEN Designer, which may all run in one Eclipse instance, which can be installed and updated in the same way, and allow navigation between the environments. Additionally, the developer can install BEx Query Designer which comes as part of the BEx tools optional components of SAP GUI.

Assuming that content (e.g, tables/views, attribute/analytical/calculation views) already exists in the column store164, the developer can install a query such as a BEx Query using BEx Query Designer on top of this content. Next, the developer can switch to a business intelligence application such as Crystal Reports Designer or ZEN Designer, pick the query as a data source for the report or dashboard and design the report or dashboard using these tools. The report can then be saved using a transport system such as an ABAP transport system. For example, initially on $TMP (temporary, local package in ABAP) and then using a BW-specific transaction (BW administrator workbench) it is assigned to a “real” development package and put on an existing or newly created transport request. Lastly, the developer can preview the report including live data in the browser by pressing the preview button in a business application such as Crystal Reports Designer or ZEN Designer.

The developer can open the UI5 application in the application platform120, such as ABAP in Eclipse. Either there can be a generic UI5 control to embed business intelligence contents (for example, one could think of a Web Dynpro-based UI building block for EBIS) or the developer can use native HTML5 capabilities to do the embedding. In either case, during runtime, a URL can be created that points to the EBIS140and specifies the application type (e.g., Crystal or ZEN) and report/dashboard to be executed. Additionally, there can be a published JavaScript API that allows modification of the business intelligence contents on the browser side (for layout purposes, e.g. show/hide the Crystal Reports toolbar and for data manipulation, filter the view of the report/dashboard according to some criteria, etc.). Additionally, there can be a JavaScript-based eventing mechanism to allow the propagation of changes within the business intelligence component (like the changing of a filter criteria) to the “outside” UI5 application so that it can react accordingly.

From an administrator's viewpoint, the EBIS140can be a separate component that is configured to connect to the application platform140. After installation of the EBIS140, some post-installation configuration might still be necessary to finalize the initial setup. This is especially true to configure how HTTP requests are dispatched to the EBIS140, e.g., via an alias in ICF that allows configuring the request routing, manually setting up and configuring a SAP Web Dispatcher as reverse proxy on front of the servers of the application platform120and the EBIS140.

The integration of the EBIS140can be mainly enabled by integrating the EBIS component into a SDK that enables a joint start/stop of the EBIS140along with the application platform120. Also, the SDK can provide a facility for availability monitoring so that the EBIS140can show up in a management console of the application platform120into which it is integrated. Lastly, the SDK can enable compliance with ITSAM product standard requirements such as trace file access and collection.

FIG. 5is a process flow diagram500in which, at510, one or more business applications are executed on a business application platform. In addition, at520, one or more business intelligence client applications providing business intelligence functionality are executed via an embedded business intelligence server (EBIS). The EBIS provides an interface to the business application platform so that the business intelligence applications can be executed concurrently with the business applications. A unified interface at the client concurrently displays, at520, the executing one or more business applications and the executing one or more business intelligence applications.

While the current subject matter describes the use of an ABAP platform with EBIS, it will be appreciated that other types of platforms can integrate EBIS having similar functionality/architecture as an ABAP platform. In addition, references herein to the application platform140and the EBIS140can relate to both the underlying platform/servers executing such functionality as well as instances of same.

Although a few variations have been described in detail above, other modifications are possible. For example, the logic flow depicted in the accompanying figures and described herein do not require the particular order shown, or sequential order, to achieve desirable results. Other embodiments may be within the scope of the following claims.