Service and Message Bus

Qr code Description automatically generated

General Description

The T6.4 Services and Message Bus represents the communication layer of the ZDMP Platform. It provides the following main functions:

  • It acts as the central endpoint to all ZDMP APIs and allows the convenient management of the APIs through a WebUI. Thereby it automatically updates an API’s service endpoint when installing a component on the platform and automatically manages user authentication and authorisation for the APIs

  • It provides ZDMP Assets with a message bus – a standardised communication interface to exchange messages, events, and data. This message bus implements a publish/subscribe messaging concept which allows the connected components to broadcast (publish) information on specific topics and to listen for certain events and topics (subscribe). Supported messaging protocols are MQTT and AMQP

  • It provides an Enterprise Service Bus as an alternative way to integrate ZDMP Assets into the platform if the preferred integration method via REST interfaces and AMPQ/MQTT messaging is not feasible. Connecting a ZDMP Asset to the Enterprise Service Bus requires the implementation of a custom connector

Resource Location
Source Code Link
Latest Release Link
X Open API Spec Link
Video Link
Further Guidance API Management
Related Datasets None
Additional Links Use of MQTT QoS
Generation date of this content 01 November 2021

Screenshots

The following images are illustrative screen shots of the component:

Component Author(s)

Company Name ZDMP Acronym Website Logo
Software AG SAG www.softwareag.com

Commercial Information

Resource Location
IPR Link

Services and Message Bus

API Management

Price [For determination at end of project]
Licence [For determination at end of project]
Privacy Policy [For determination at end of project]
Volume license [For determination at end of project]

Architecture Diagram

The following diagram shows the position of this component in the ZDMP architecture:

Figure 1: Position of Component in ZDMP Architecture

Benefits

The benefits are:

  • Central place for managing all APIs of the whole platform

  • Manage internal and external access of the APIs

  • Securely expose APIs to external developers, partners, and other consumers for use in building their own applications on their desired platforms

  • Monitor the API usage to enable further business models, eg pay per use models

  • Create APIs, define and activate policies, create applications, and consume APIs

Features

This component consists of two modules: The Services API Management and the Message Bus. Their features are listed below.

Services API Management

The Services API Management offers the following features:

  • API Management for all ZDMP Assets:

    • WebUI for managing APIs

    • API Mock-up functionality for testing or for creating API stubs

    • Versioning of APIs

    • Import/Export of APIs in OpenAPI, Swagger, or RAML format

  • Automatically manages user authentication and authorisation through the Secure Authentication/Authorisation component

  • (WIP) Automatic endpoint management for components installed in the Application Run-time component

  • API usage statistics

Message Bus

The Message Bus subcomponent provides the following features:

  • Publish / Subscribe messaging functionality

  • Secure TLS-based communication

  • Supported Messaging Protocols:

  • MQTT

  • AMQP

System Requirements

The T6.4 Service and Message Bus has the following requirements:

  • 2 CPUs

  • 8 GB RAM

  • 64 GB disk space

  • Docker / Docker Compose

Associated ZDMP services

Required

Optional

  • All other ZDMP components and zApps

Installation

The Services and Message Bus component can be installed via docker-compose:

  1. Download the latest docker-compose file from ZDMP’s GitLab

  2. Set the vm.max_map_count kernel parameter on the host system to at least 262144 by executing the following command using root privileges: sysctl -w vm.max_map_count=262144
    Note: To persist this setting through a reboot of the host system, add vm.max_map_count=262144 to the /etc/sysctl.conf

  3. Install and start the component by executing the following command:
    docker-compose up -d

How to use

Instructions on how to use the Services and Message Bus modules are given below. Please note that the IP addresses and ports shown below refer to the T6.4 Service and Message Bus component installed on the ZDMP reference platform. If the component is installed in a users own environment, these parameters need to be adjusted accordingly. In this case, specify the ports in the docker-compose file, while the IP address of the component depends on each local docker environment.

Services API Management

The Services API Management provides centralised access to all ZDMP components through REST APIs. It automatically manages user authentication and authorisation for these APIs through ZDMP’s Secure Authentication and Authorisation component.

Further information about the available ZDMP components and their REST APIs can be obtained through the Services API Management WebUI and the documentation pages of the corresponding ZDMP components:

The available set of endpoints depends on the specific ZDMP installation and the installed components. A list of the currently available endpoints is available through the following link: http://192.168.100.100:30215/apis

To get access to a REST endpoint, an authentication token must be passed along with the API call by using the “Bearer” Header Prefix. This access token can be requested from the T5.2 Secure Authentication and Authorisation component. Please refer to the T5.2 Secure Authentication and Authorisation Documentation for detailed instructions on how to request this token.

  • Services API Management Web UI: The Services API Management Web UI is a management tool for ZDMP Administrators. It provides full access to all management features implemented by the ZDMP Services API Management. This includes, for example, the Management of ZDMP APIs and other (external) APIs, the configuration of security policies, and other advanced settings. The Services API Management Web UI can be accessed through the following URL: http://192.168.100.100:31065

The default admin credentials are:

  • Username: Administrator

  • Password: manage

Further instructions on how to use the Services API Management via the web interface can be found in the official webMethods API Gateway user’s guide.

  • Services API Management REST API: In addition to the Web UI, the Services API Management subcomponent provides a set of REST endpoints for the administration of ZDMP component APIs. These endpoints allow eg to add, update, delete, and (de-)activate APIs on-the-fly during run-time. This can be useful for ZDMP components that need to dynamically maintain APIs or for ZDMP Administrators that wish to perform some management tasks without accessing the Web UI.

For all a full list of available endpoints and their descriptions please refer to the Open API specification of the Service and Message Bus component.

Message Bus

The Message Bus allows ZDMP components and zApps to exchange information by using the Publish / Subscribe Messaging concept in combination with the messaging protocols MQTT and AMQP.

  • Using the Message Bus: The Message Bus can be used in combination with any MQTT or AMQP library of the user’s choice such as RabbitMQ or Eclipse Paho. The Message Bus is available at IP address 192.168.100.100 and uses the following ports:
Protocol Port
MQTT WebSocket 30214
MQTT 30205
AMQP 30206

The connections are secured using TLS. The required CA certificate is available here. Additionally, a valid user account is necessary to access the Message Bus. These accounts need to be configured in the Message Bus Web UI.

  • Message Bus Web UI: The Message Bus Web UI is a management tool for ZDMP Administrators. It provides full access to all management features implemented by the Message Bus subcomponent. This includes, for example, the creation of new user accounts and the configuration of exchanges and queues. The Message Bus Web UI can be accessed through the following URL: http://192.168.100.100:30201

The default admin credentials are:

• Username: ZDMP

• Password: ZDMP2020!

  • Available topics: Most ZDMP components have a main topic for publishing and receiving messages. For further details about these topics and the information published on them, message payloads, and available subtopics, please refer to the documentation of the corresponding ZDMP component.
Last modified November 4, 2021