/openintegrationhub

Open Integration Hub

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Sublime's custom image

The revolution in data synchronization — the Open Integration Hub enables simple data synchronization between any software applications and thus accelerates digitalisation.

Visit the official Open Integration Hub homepage

Introduction

CircleCI License

The purpose of the Open Integration Hub is to enhance businesses by simplifying integration. Traditional integration means development and maintenance of multiple connections. Open Integration Hub requires only a single connection to the framework.

OIH Plattform

Standalone platform that is based on a microservice architecure. For a reference implentation please visit the services folder. There is also the possibility to self implement the plattform and use different technologies. If you want to do so please visit the lib folder. There you will find "daos" that can be used to add your own functionality (e.g. queues manager). In the following a short description of the services is provided.

Usage

Postman

A demo postman environment and collection can be found within the docs folder. This collection provides possibilities to easily explore the functionalities of the Open Integration Hub. It interacts with a central testing plattform provided by Cloud Ecosystem that is hosted on GCP.

For further information on how to use the collection (e.g. autorization, needed parameters etc.) please see the OIH Postman Guide.

Local Installation

In addition to setting the OIH up on cloud infrastrucure it is possible to install and run it locally. Find a detailed guide on how to install und use it within the minikube folder.

Services

Audit Log

The OIH audit-Log serves to receive, store, and return logging information about important user actions and system events. Other OIH Microservices can generate audit messages and pass them on to the Audit Log via the message and event bus or a simple HTTP POST request. For further information see: audit-log service, audit-log docs and API Documentation.

Component-Orchestrator

The component-orchestrator orchestrates flow lifecycle. It creates queues in RabbitMQ and manages Docker containers (deploy/stop/remove) for each flow node whenever a flow is created, stopped or removed. For further information see: component orchestrator service.

Component-Repository

The component-repository stores information about integration components. For further information see: component-repository service and API Documentation.

Flow-Respository

The flow-repository is responsible for storing, retrieving and updating the OIH integration flows. For further information see: flow-repository, flow-repository docs and API Documentation.

IAM

The iam (Identity and Access Management) provides token or OpenID-Connect based Authentication, Authorization and User management as a service. For further information see: iam service, iam docs and API Documentation.

Meta-Data-Repository

The meta-data-repository is responsible for storing domains and their master data models. The models stored within this service are consulted for different tasks such as data validation. The meta models are also used by the transformer to map the incoming data onto the Open Integration Hub standard. For further information see: meta-data-repository service, meta-data-repository docs and API Documentation.

Scheduler

The scheduler service schedules integration flows for execution. For further information see: scheduler.

Secret-Service

This secret-service is used to store and access securely client/user credentials. For further information see: secret-service and API Documentation.

Webhooks

The webhooks service receives http calls and passes messages to execution. For further information see: webhooks.

Service-Collaboration

The service collaboration is based on the event collaboration concept. We use RabbitMQ as our broker which supports several protocols. A published event is received by several interested services. There may exist several running instances of a service at the same time but the event must only be sent to one instance of each service that is interested. A queue will be created for each kind of service.

For further information on service collabortion in OIH and further examples please see: service collaboration overview.

Docs

To find additional high level information about the architecture of the Open Integration Hub and functionalities of the microservices please visit the documentation.

Contribution

Before you contribute please have a look at our contribution guidelines.

Code of Conduct

To see how members of the community are expected to behave, please read the code of conduct. We apply the code of conduct defined by the Contributor Covenant, which is used across many open source projects, such as NodeJS, Atom and Kubernetes.