RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2
Project

Aton: Creation of an integration bus based on Open Source

Customers: Aton Investment company

Product: Apache Kafka

Project date: 2016/03  - 2017/09

Content

Why there was a need to implement an integration bus?

That [1]

  • Integration between systems are constructed by the principle everyone with everyone.
  • Different formats and technologies of integration are used.
  • It is difficult to implement plans for implementation of new products and systems.

Objectives

  • Simplification of an integration layer in systems.
  • Flexible architecture.
  • Reuse of services.

Creation of an integration bus based on Open Source

Why Open Source:

  • Cost of the solution.
  • Fast start.
  • Flexibility in the choice of a product.
  • Big community.
  • Wide functionality.
  • Open source code.

Technology stack - the Transport layer of RabbitMQ, Apache Kafka Integration logic - ServiceMix

RabbitMQ

Image:RabbitMQ + Атон.gif

Advantages

  • Is ideal for interaction with information systems.
  • Asynchronous exchange.
  • Multiplatform client (Java, .Net, Python, etc.).
  • High performance.
  • Fault tolerance (cluster, replication).

Kafka

Image:Kafka + Атон.gif

Advantages

  • Is ideal for the publication of information.
  • Messages are not removed from a topic, and are stored during lifetime.
  • Well copes with large volumes of data.
  • Fault tolerance (cluster, replication).

Apache ServiceMix

Principal components:

  • Karaf – OSGi a container.
  • Apache Cxf – web/rest services.
  • Drools is business rules.
  • ActiveMQ is message exchange.
  • Transformation is conversion of messages (for example, xslt).
  • Quartz – a task scheduler.
  • MyBatis – SQL a mapper.
  • Set of adapters.
  • Camel is the integration engine.

Integration architecture in Aton

  • The main method of exchange between systems and the bus – RabbitMQ.
  • The main interchange format between systems and the bus – XML.
  • Also other technologies for systems which do not support RabbitMQ and XML are used.

Example 1. Remote opening of the account

Example 2. Market data

Types of market data:

  • Handbook data on securities.
  • Real time these (quotations):
  • On average 50 messages per second.
  • In dive of 2000 - 3000 messages per second.

Are used for:

  • Constructions of diagrams.
  • Displays of the current price.
  • Calculation of different dokhodnost and indicators in the client's portfolio.
  • Profitability calculation mutual fund.
  • Data mappings on securities.

Operation mode:

  • Request – the answer (handbook data and quotations).
  • Subscription to changes (quotations).

Testing and monitoring

Car tests:

  • Tests are started after installation of updates and according to the schedule each hour.
  • Work in a real environment, without affecting normal functioning of a system.
  • Result in the form of web of the page and mailing by mail in case of errors.

Logging of messages:

  • Messages register in a DB.
  • It is possible to monitor passing of the message on the bus.
  • Web the interface for viewing.

Main integration services:

  • Market data on securities.
  • Services for receiving / change of data from the accounting systems (clients, accounts, transactions, etc.)

Notes

  1. byloiz presentations "Creation of an integration bus based on Open Source" Perepelkin Vadim Head of department of architecture and application integration, 2017