Nowadays, the IT market is made of thousands apps with even more software options. Organizations are using different kind of apps with distinct sets up which evolves really fast for different purposes. In addition, the apps are developed according to technical standards that are constantly evolving. This context makes the communication between apps difficult. Though, the more these systems can “talk” to each other, the more efficient the business will be. That’s why we are working on BL.Exchange, an interoperability solution to create seamless integrations and helps software to work together.
BL.Exchange enables communication (or allows the exchange of data) between heterogeneous applications, developed in different languages, with different frameworks, for different sectors. To do so, the solution will take the position of mediator. It receives data from source applications and transmits it to other applications that need to consume these data. It can process the information exchanged through it, such as translation from one data format to another, it’s performed so that the data can be understood by the target applications, which create a collaborative relationship between them and make them work together.
We can illustrate it by saying it is the cargo ship, the port and the contract with the logistics company, though it is not the content of the containers, nor the contract between the customer and the supplier.
For instance, when Berger-Levrault acquires a new subsidiary, It must integrate its information system to be able to communicate with our existing applications and those of our clients. As a result, it may be necessary to create new exchange flows and update existing ones, which may result in a loss of visibility. Moreover, this requires considerable development time and thus reduces the reactivity in case of breakdowns. The main objective of BL.Exchange is to provide a flexible and scalable interoperability platform allowing to create new exchange flows between different applications, with a lower development effort.
Our final goals
Our objective through this project is to create a solution:
- Low-code / no code, easy to implement;
- Cloud based, to manage infrastructure and code;
- Monitorable;
- Authenticated and secure;
- Reliable and scalable;
- Business agnostic;
- Extensible: Data Format validations; On-the-fly data transformation; Enable Service composition;
- Reusable, using Catalog of connectors; Catalog of streams templates;
- Decoupled: Asynchronous and event-oriented; Routing / multiplexing; Outsourced connectors.
BL.Exchange characteristics
BL.Exchange emphasizes the separation between business applications and the mechanisms that manage communication. Thus, BL.Exchange is completely decoupled from the business logic, which guarantees its technical, functional and managerial independence from business applications. We can therefore create new exchange flows to take into account the changing interoperability needs of a business application without changing the other applications.
To achieve our goals, BL.Exchange is based on Spring Cloud Data Flow (SCDF) as core technology.
SCDF is a cloud native data framework open source. It unifies flow and batch processing, and defines best practices for distributed and batch data process. Its technology allows developers to create, orchestrate, and refactor data pipelines with a single programming model for common use cases such as data ingestion, real-time analysis, and import/export of data. SCDF comes with over 60 prebuilt applications, a wide list of connectors for common interoperability situations, it is polyglot and works with application developed in different languages, it secures authentications using OAuth2 and OpenID Connect, and it offers the possibility to bind in any message broker (RabbitMQ, Apache Kafka, Kafka Streams, Amazon Kinesis, Google Pub/Sub, Solace PubSub+, Azure Event Hubs, or RocketMQ).
To set up a new exchange flow, the user can proceed in three different ways:
- use a domain-specific language to specify how to connect the outputs and inputs of pre-built applications and how to deploy them,
- use a dashboard that offers a graphical editor to build data pipelines in an interactive way,
- use a separate shell that makes it easy to work with a the REST API exposed by SCDF from the command line.
This low code vision is the main added value of our interoperability solution with what already exists on the market.
Project’s roadmap
We’re currently deploying sandbox infrastructure on AWS and pursuing experiments on different scenarios.
Then we’ll recover errors, improve its authentication security and test its limits before deploying it and testing it on real use cases.
Finally, in the long term we wish to achieve syndication of services; IoT message platform (high frequency low volume); Dynamic Service discovery; Predictive upscaling; Connector code generator; Semantic analysis; Interoperability between front and back-end.
To go further
BL.Exchange is built as an event oriented architecture for apps to communicate, which means asynchronous communication, so software can still process while the solution is running.
Find below several representation of BL.Exchange architecture. The first representation is about the context of our interoperability solution.
BL.Exchange context’s refers to State of the Art for Interoperability. Conceptual Design & Framework to address Interoperability issues and it needs to be instantiated in context of products.