Service bus
CMDBuild is a web enterprise system, implemented in SOA architecture (Service Oriented Architecture) and designed to grant interoperability solutions.
In the most efficient implementations, an architecture like this is supported by a BUS Service (or ESB, Enterprise Service Bus), a software infrastructure (middleware) for the interoperability among applications and systems through standard services for coordination, security, messaging, routing and transformations.
The CMDBuild Service Bus includes:
- Management of data flows and messages: receipt, routing, elaboration, sending
- Distributed management of the charge: related to some batch processes
- Input/output modules: with features of coordination among data sending / receiving / sync processes
- Error and notification management
- "Webhook" features: for the subscription of a notification service in case of certain events in the CMDB
- Supporting the "chat" service: for the communication among CMDBuild users
The CMDBuild Service BUS is designed with a plugin architecture, where standard basic components available for everybody, standard advanced components supplied with the subscription and custom components can coexist.
Bus descriptor
CMDBuild Service Bus behavior is defined through objects, called Bus descriptors, that describes data flow and the transformation and elaboration logic.
Each descriptor includes:
- A schema that describes components corresponding to execution steps and other resources
- A YAML script including custom code and/or calls to CMDBuild API or other services

There is the possibility of performing the following operations:
- Add a new deadline generation rule
- Do searches among inserted rules
- Edit the selected bus descriptor
- Delete the selected bus descriptor
- Disable the selected bus descriptor (i.e., set the status as non-active)
Each bus descriptor needs some parameters to be compiled (metadata), as mentioned.
General properties
The following information is required:
- Name: bus descriptor name
- Description: bus descriptor description
- Active: it states whether the bus descriptor is active and can be used

Parameters
You can specify a list of parameters as follows:
- Key: parameter key given to the bus descriptor (in order to parameterize its behavior)
- Value: value given to the Bus descriptor
The following additional parameter is also required:
- Disabled elements: You are required to state any components of the Bus descriptor you want to disable in order to debug or for other needs

Configuration
The following information is required:
- YAML code: Bus descriptor body, YAML format
- File: file including the Bus descriptor body, in YAML format, an alternative to the previous one

Configurations
The function allows to set all configuration parameters of the CMDBuild Service Bus.
At the moment you can only enable or disable the Service Bus.
