Developing applications

Overview

Device Integration Platform was designed to run arbitrary vertical IoT applications in addition to the generic functionality coming with Device Integration Platform. Tenants can subscribe to applications to get

  • Extensions to the Device Integration Platform user interface.
  • Entirely new user interfaces.
  • Branding of the Device Integration Platform user interface.
  • New server-side business logic.

This section introduces the basic concepts around applications in Device Integration Platform.

Applications and subscriptions

Applications are registered in Device Integration Platform either as "own" applications or "market" applications.

"Own" applications are only available to users of a particular tenant and are registered by the tenant's administrator. Own applications are used, for example, during application development when you do not yet want to make a particular application version available for a wide audience. They are also used for functionality that is proprietary for an enterprise, for example, interactions with in-house IT systems.

"Market" applications are available to all tenants of Device Integration Platform. Subscribing a tenant to a market application makes the application available to the tenant. To certify an application as market application, please contact us.

Applications are identified by a so-called application key, which is included into requests that an application makes. The application key enables Device Integration Platform to associate a request with a particular application and to distinguish the request from other requests coming from devices.

An application can be any combination of

  • A complete, standalone user interface application, regardless if based on the Device Integration Platform UI framework (see below) or any other web components of your choice.
  • A set of user interface plugins.
  • A set of statements in Device Integration Platform Event Language.

User interface applications appear in the application switcher widget on the top right of Device Integration Platform, so that users can navigate between the subscribed applications. They can be hosted on an external web site, in which case the application switcher just directs the user to that web site.

App switcher

Device Integration Platform applications

The Device Integration Platform user interface itself is built around a framework based on AngularJS and Bootstrap, the currently most modern HTML5 web application frameworks. It is designed in a modular fashion around a set of plugins that can be dynamically enabled and disabled even by end users. Users can create their own configurations of the Device Integration Platform user interface with just functionality they need for their particular purpose. For this purpose, the administration application contains a plugin editor -- which is itself a plugin.

Plugin editor

Plugins

If the functionality provided by the Device Integration Platform user interface does not cover your use case, you can extend it with own plugins. Extension points for plugins are:

  • Add search functionality.
  • Contribute menu items to the navigation bar on the left.
  • Add views or "tabs" to devices.
  • Add menu items to the drop-down menu of a device.
  • Add widgets.
  • Modify the branding

This is illustrated below:

Extension points for plugins

For more information on developing plugins, please visit the Plugin Developer's Guide.

Hosting

To host your own HTML5 and JavaScript web applications through Device Integration Platform, visit "Own applications" in the Device Integration Platform administration application and click "Add new".

List of own applications

There are two types of applications that can be configured:

  • Type "Hosted": The applications are served from a repository such as Bitbucket or Github to a user-defined path and are visible in the application switcher.
  • Type "External": The applications are completely external and are just shown in the application switcher.

Assume that you are developing a web application using Bitbucket as code repository. In this case, exposing the application through Device Integration Platform can be done as follows:

  • Enter the name of the application. This is shown in the application switcher at the top left of the screen.
  • Optionally, enter an application key. This is used to distinguish your application from other applications in case you want to publish your application to other companies.
  • Select "Hosted" as type.
  • Select the URL that is used to make your application available to users.
  • Enter the URL to your repository. In case of Bitbucket, the URL has the structure shown below.
  • If your repository is private, enter the username and password of a Bitbucket user that is permitted to access the repository. Currently, basic authentication is the only supported authentication method (i.e., straight Bitbucket username and password, not any of the OpenID providers).
  • Save the application.
https://bitbucket.org///raw//[path inside repository]

Now the application shows up in the application switcher. You can also click on the link in the list of own applications to verify if the configuration was successful.

Configuring a new application

The above procedure helps you to publish your M2M application much faster to your end users. If you are satisfied with your application, publishing is just a matter of releasing your code in version control -- deployment is handled automatically.