Explaining the Client Architecture

Objective

After completing this lesson, you will be able to explain the architecture of the SAP Service and Asset Manager client

Asset Manager Client

The Asset Manager client application is a native mobile application on iOS and Android built on Mobile Development Kit (MDK) and SAP Business Technology Platform SDKs.

The application is based on Mobile Development Kit (MDK) client platform, which is a metadata-based client. The application's UI and behavior are defined as metadata, which is interpreted and rendered by the MDK client at runtime.

The following figure shows the detailed architecture of the Asset Manager client application. The following sections describe each aspect of this architecture in detail.

Diagram of a client app architecture. The app is described in the following text.

The client is composed of several components, which are described in the following sections:

Client Application
The client app is an MDK client, which is essentially a "player" that interprets and renders UI based on metadata (App Definitions) defined.
Application Definitions
The app definitions are the metadata that Asset Manager app is defined as and consists of UI elements (Pages and Controls), behavior, and user interactions (Actions) and business logic (Rules). The metadata is in JSON format and MDK provides a WYSIWYG editor for defining the metadata. The metadata, during deployment, gets packed into a single JavaScript file that gets loaded into the client when app is launched.
MDK Framework
MDK framework consists of components that run on JavaScript engine on the mobile device, as well a native OS component that interfaces with the native modules.
  • Metadata Engine: The metadata interpreter engine runs in JavaScript and interprets the metadata during runtime into native UI elements. It uses NativeScrtipt, an open-source cross-platform app development framework, to render UI elements on screens or Pages. It also runs the application business logic defined in terms of "Rules" in the JS engine. This allows the app to have the same definitions in iOS and Android, making MDK a cross-platform SDK.

  • MDK native wrappers: The MDK native wrappers are used to consume native components such as UI controls, offline OData database access, OData services, and other foundation APIs from BTP SDK. The MDK client uses UI elements from:

    • SAP Business Technology Platform (BTP) Fiori SDK for the native controls such as Object Table, Object Header, Section tables, Object Cells, or Form Cells.

    • Custom controls such as Map control, Hierarchy control, Dynamic forms, and so on, that are available from the Asset Manager application.

    • NativeScript for controls such as Pages, ActionBar, or Buttons.

    • iOS or Android native platform for any other basic UI controls as needed.

  • Bridge provides the interface necessary for MDK native and JS modules to interact.

SAP Business Technology Platform SDK

The SAP Business Technology Platform (BTP) SDK is based on the native iOS and Android platform SDK, and provides foundation components, UI components, and OData service components necessary for developing native mobile applications on SAP Business Technology Platform. These are described as follows:

  • SAP Foundation includes general-purpose components that integrate with both device and SAP Business Technology Platform mobile service for development and operations features and capabilities, such as authentication, connectivity, caching, security, diagnostics and so on.

  • SAP Fiori includes reusable UI components based on Fiori design guidelines.

  • SAP OData includes the APIs necessary for accessing OData services from the back end. It also supports offline OData services that provide access to an offline store (database) which enables data persistence and transaction management.

NativeScript {N}

NativeScript is a JavaScript based cross-platform app development platform that allows one to build native iOS and Android apps. The application's business logic runs on JavaScript engine available from the underlying native platform. The application defines UI in the form of NativeScript components, which it translates into native platform UI widgets at runtime. These can be defined in JS code or XML.

The MDK client/player adds a metadata interpreter layer on top of {N} to abstract out the JS and XML code required by {N} engine.

Log in to track your progress & complete quizzes