Data Bus Development For Governmental Corporation
Azati built a data bus that helps to integrate the product for document generation into the business workflow of governmental corporation to optimize processes of internal document management.
One of our partners hired Azati to help a governmental corporation from the energy sector to optimize document management.
The end Customer wanted Azati to help with the integration of a third-party application. With this app users can convert hundreds of their frequently used and standardized documents into several interactive templates to reduce the time for creation, processing, transfer, and delivery of the basic documents that have similar structure.
Furthermore, the application enables users to eliminate errors in document construction, reduce the time of closing a deal and increase the overall efficiency of the company’s document workflow.
The main project idea was to organize the data exchange between two components: SAP ERP and the document generation system. The primary task of Azati was to develop the bus for data transfer between these components and implement the correct business logic for efficient data processing workflow.
In other words, our developers had to create a technical solution that allows converting the incoming message into a format corresponding to the next step of data processing, taking into account the various data transmission methods (incoming data proceed via SOAP protocol while the outgoing via HTTP). Most often, data conversion occurred from XML format to JSON extended by the rest of the meta-information required for the HTTP request.
While developing the solution our engineers faced several challenges. Let’s have a closer look.
01. Challenge: Lack of experience
Azati has never worked with the document management software the Customer wanted us to integrate. That’s why this project became a new experience for our engineers.
A lot of time was spent to figure out how the existing solutions work, plan and design all the business logic according to all the nuances protocols required.
02. Challenge: Inaccurate web
Usually, the information described in the WSDL (Web Services Description Language) documentation ensures that certain web services will work in a predefined way. However, our team had to tune the application several times since the Customer constantly revised the documentation.
Also, due to an insufficient description of the meta-information that should have been included in the documentation, the framework could not correctly process the incoming data, which forced our team to write additional configurations manually.
03. Challenge: Miscommunication
The third issue was related to the fact that three different teams developed the project: Azati, the team responsible for the document management application and the customer team. There were communication issues between these two parties – document management application team and the customer team. Since each of them had their solutions and it was challenging to reconcile on some issues.
To accelerate the process, both teams conducted meetings once per week and discussed the results and technical solutions developed during the sprint.
The development process consisted of three main phases:
Stage 1: Planning
During the first stage, our team studied the necessary documentation and organized workflow. After doing that, it became possible to move directly to the development phase itself.
Stage 2: The creation of web-service
First of all, to create a full-fledged web service, our team discovered the capabilities of Apache Camel Frameworks. After all, we successfully built SOAP web services with Apache CXF.
Stage 3: Data processing algorithm development
During this phase, the team developed processing algorithms that convert data to the required format. After successful processing, the data is sent to the next step of the workflow – internal customer’s products and systems.
Azati developed a standalone application powered by Apache Camel Framework that acts like middleware and a data bus between two enterprise systems. The solution receives data from the SAP ERP system, converts it from XML to JSON, adds extra meta-information and sends results as the HTTP request to the document generation API.
This is how data is transferred and processedbetween main components:
- SAP ERP system sends a request (message) to the data bus
- Data bus forwards the received message to the document generation system
- The request is processed in the Document generation system
- According to the processing result, the system sends a message with the processing result back to the data bus.
- Data bus forwards the received message to SAP ERP
Integration bus technical scheme
The following integration scenarios were
implemented and released:
- Create/Update contract category
- Delete contract category
- Create/Update contract draft
- Contract update
- Delete contract
- Receiving a contract document
To improve security measures, our engineers added authentication. Briefly, if the authentication configuration is turned on in the settings, it will be required to set the login and password in the request header.
Moreover, Azati has created advanced error validation that allows response to any incorrect request with an error description and its potential reasons.
Azati finished the project in late March 2021. After successful deployment, the Customer started to integrate the data bus with their applications and internal systems. Right now, our engineers are actively maintaining the solution, resolving minor issues, and releasing updates.
Featured case studies:
The customer asked Azati to audit the existing solution in terms of general performance to create a roadmap of future improvements. Our team also increased application performance and delivered several new features.
At Azati Labs, our engineers developed an AI-powered prototype of a tool that can spot a stock market trend. Online trading applications may use this information to calculate the actual stock market price change.
Azati designed and developed a semantic search engine powered by machine learning. It extracts the actual meaning from the search query and looks for the most relevant results across huge scientific datasets.
Azati helped a well-known software integrator to eliminate legacy code, rebuild a complex web application, and fix the majority of mission-critical bugs.
Azati helped a European startup to create a custom logistics platform. It helps shippers to track goods in a real-time, as well as guarantees that the buyer will receive the product in a perfect condition.