Code Monkey home page Code Monkey logo

microservices's Introduction

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

Microservices

Table of Content

Introduction

This repository contains all developing tasks considering the finalisation of the Open Integration Hub prototype, including the core components "Integration Services" and "Data Hub". Additionally, this repository includes the development of the microservices and the primary purpose is to develop the platform prototype as the basis for further use.

Contribution

Contribution Guidelines

Before you contribute please read 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.

Contact

When looking for further information or support, please contact: [email protected].

Content

The following illustration shows how the microservices are aggregated within the workgroups:

Microservice Workgroups

Folders

  • ManagementServices: Contains all concepts for management services such as logging and monitoring, reporting and analytics
  • MessageProcessing: Includes all descriptions regarding message processing, communication router, scheduler and the resource coordinator
  • OihAPIs: Describes the Open Integration Hub REST-APIs i.e. integration framework api and smart data framework api, which allows corresponding managing of the OIH platform
  • Protocols: Collection of all taken protocols
  • RepositoryManagement: Contains all repository service concepts such as Integration Component- and Content Repository
  • SecureAccessControl: Includes microservices to manage secure access. This includes the Identity-, User- and Secure-Key-Management

Documents

  • CONTRIBUTING: Contains the contribution guideline
  • DataHub: Describes the concept of the smart data framework, using adapters/ transformer and a smart data framework adapter
  • InfrastructureAndTechnologies: Lists the technologies used in the OIH and the motivation behind them
  • IntegrationServices: Includes an overview of the intergration framework services as well as a short description for each microservice. It describes the integration into the kubernetes environment with message oriented middleware as the basis for communication
  • MicroserviceDescriptionTemplate: Gives a brief overview of what a microservice description should look like
  • MicroserviceOverview: Table of all integration framework microservices with their company in charge and the official deadline
  • TestingTools: Table of possible testing tools with their main feautures

Open Integration Hub Microservices

Integration Hub Microservices

Integration Component (Adapter) Repository

The integration components are lightweight and stand-alone Docker images that include everything needed to run the component, including the component's code, a runtime, libraries and dependencies. The component images are stored in an integration component repository (s. RepositoryManagement/Integration Component Repository).

Scheduler and Resource Coordinator

There are two ways to trigger a flow execution: to poll changes periodically or to receive notifications through webhooks. The majority of integration flows poll perform polling as the most of APIs out there don't support webhooks. The polling is performed periodically with the help of the Scheduler.

Because Integration Hub is a multi-tenant environment, it is theoretically possible that some tenants cause starvation of others through an unfair usage of shared resources. The Resource Coordinator enforces every tenant to comply with the defined policies on resource sharing.

Please read more details on scheduler and resource coordinator (s. MessageProcessing/SchedulerResourceCoordinator).

Communication Router

In contrast to polling a flow can be started by an external event. Modern APIs provide support for webhooks in order to avoid wasting of resources when polling. The external system can be configured with a webhook url to be called upon changes in the external system. The Communication Router is used to expose externally-reachable URLs for integration flows that can be used to implement webhook-triggered flows. These URLS may be registered in external systems to sent notifications to. See more details on communication router (s. MessageProcessing/CommunicationRouter).

Logging & Monitoring

Integration Hub micro-services and integration flows are running in a Kubernetes cluster. Read details on cluster-level logging architectures (s. ManagementServices/LoggingMonitoring).

Message Oriented Middleware

All the communication between steps of an integration flow in runtime is happening through a message broker. Two steps of an integration flow are separate Docker container isolated from each other. They are connected through a messaging queue than provides them a reliable and asynchronous communication protocol. See more details on message oriented middleware (s. MessageProcessing/MessageOrientedMiddleware).

Secure-Key-Management

An integration flow defines how data flow between various external systems and how these data are transformed between steps of that flow. However an integration flow does not define how to connect to these external systems. An integration can be considered as a clonable template that must not contain any sensible user data, such as API credentials. The API credentials are stored in the secure-key-management (s. SecureAccessControl/SecureKeyManagement).

Identity and Access Management

Identity and Access Management (short: IAM) is one of the core components in OIH which is needed to provide a secure authentication and authorization of users/clients. The IAM Service can be configured to use JWT tokens with HMAC or RSA. It has also support for OpenId Connect. (s. IAM Concept)

Integration Content Repository

All connected solutions to the Open Integration Hub and the work they are doing there are represented by an "integration flow". These flows have to be stored, retrieved, updated and deleted. The Integration Content Repository will provide these functionabilities.

/RepositoryManagement/IntegrationContentRepository

Workgroup

Information

  • Each workgroup has at least one status call every two weeks
  • Every Committer must attend the status call
  • The governance model defines the workgroup members' roles into managers, committers or contributors

Member

OIH APIs

Member Name GitHub Alias Company Role
Igor Drobiazko drobiazko Elastic.io Manager
Selim Achmerzaev sachmerz Basaas Committer
Philipp Hoegner philecs Cloud Ecosystem Committer
Pavel Nedelko pnedelko Elastic.io Contributor

Secure Access Control

Member Name GitHub Alias Company Role
Selim Achmerzaev sachmerz Basaas Manager
Igor Drobiazko drobiazko Elastic.io Committer
Philipp Hoegner philecs Cloud Ecosystem Committer
Lutz Ashauer lashauer StoneOne Contributor
Falk Voigt falkvoigt Basaas Contributor
Hans Eggert heggert Basaas Contributor
Pavel Nedelko pnedelko Elastic.io Contributor

Repository Management

Member Name GitHub Alias Company Role
Igor Drobiazko drobiazko Elastic.io Manager
Selim Achmerzaev sachmerz Basaas Committer
Hansjörg Schmidt hschmidthh Wice Committer
Philipp Hoegner philecs Cloud Ecosystem Committer
Lutz Ashauer lashauer StoneOne Contributor
Susanne Braun brausu Fraunhofer IESE Contributor
Shterion Yanev spyanev Wice Contributor
Pavel Nedelko pnedelko Elastic.io Contributor

Message Processing

Member Name GitHub Alias Company Role
Igor Drobiazko drobiazko Elastic.io Manager
Selim Achmerzaev sachmerz Basaas Committer
Philipp Hoegner philecs Cloud Ecosystem Committer
Susanne Braun brausu Fraunhofer IESE Contributor
Shterion Yanev spyanev Wice Contributor
Hansjörg Schmidt hschmidthh Wice Contributor
Pavel Nedelko pnedelko Elastic.io Contributor

Management Services

Member Name GitHub Alias Company Role
Selim Achmerzaev sachmerz Basaas Manager
Igor Drobiazko drobiazko Elastic.io Committer
Philipp Hoegner philecs Cloud Ecosystem Committer
Lutz Ashauer lashauer StoneOne Contributor
Shterion Yanev spyanev Wice Contributor
Pavel Nedelko pnedelko Elastic.io Contributor
Falk Voigt falkvoigt Basaas Contributor
Hans Eggert heggert Basaas Contributor

Wording

Within the project different terms and abbreviations are frequently used. All terms and abbrevations are explained within the glossary and our list of abbrevations.

Contribution

Before you contribute, please read the contribution guideline.

microservices's People

Contributors

philecs avatar falkvoigt avatar dennisces avatar hschmidthh avatar sachmerz avatar

Watchers

Mario Scheliga avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.