Client
ACTICO
Industry
Insurance & Finance
Technologies
Java 17, Spring Boot, Apache Jersey, OkHttp, REST, Open Api 3, OAuth, JUnit, Jenkins, SonarQube, Bitbucket, Jira, Confluence
About the project
The platform that ACTICO uses to provide automation and decisioning to customers has three major components: a modeler, a model hub, and an execution server.
The Modeler is a client application for designing and creating a model for a specific problem that the client wants to address. The model consists of a flow chart with execution and decision nodes, but each node is fully empowered by processes that can be executed in a programming language, such as Java. Dependency libraries can be added as required, and thus the capabilities of the model are very powerful and virtually unlimited.
The Model Hub is a web application where the models are being published once they are created, and their versioning is managed.
The Execution Server is a web application where the models published in a model hub can be scheduled for execution. The server accepts execution requests for models registered with the execution server, with inputs as specified in the model, and upon the model execution the resulting output is returned back by the server.
Upon model registration with an execution server, the server automatically creates SOAP endpoints that a client can use to execute the provided model. However, as the industry standards have evolved in time and more modern technologies have matured, more and more ACTICO clients are requesting
that the endpoints to be also available through newer technologies, such as REST and Open API, to allow integration with their modern environments.
The ACTICO team is already fully booked with handling maintenance on multiple clients having complex issues that may naturally arise with the use of models that allow endless scenarios, and therefore ACTICO has reached out to us for the implementation of this new feature of creating the Open API execution server endpoints.
Challenges
System integration
- Seamless integration into a complex and well-established structure, using proprietary interfaces only.
- Adding new features in an existing complex ecosystem.
Automated endpoint generation
- Creating the REST endpoints for dynamically serving the Open API specification thatdescribes a model structure.
Automated endpoint testing
- Ensuring integration testing on endpoint generation.
- Ensuring end-to-end testing, including generation of the client process based on the provided Open API specification, execution of the generated client, and results validation.
Steep learning curve
- Becoming productive in a timely manner while working on an unfamiliar large source code base.
Solution
The solution was designed and implemented as a new module in the Execution Server.
System integration
- A set of services were created for providing the model details, by the means of accessing system proprietary interfaces.
Automated endpoint generation
- The new module was created as a REST API interface that receives the identification of a module and produces the Open API specification for it.
- The access to REST interface was restricted to authorized users only.
- The produced Open API specification contains security access requirements as configured in the Execution Server, such as Basic Authentication or Open ID Connect Authentication.
Automated endpoint testing
- The tests are performed on a test instance of the Execution Server.
- The integration tests use a predefined Open API specification to generate a Java client, build the client, and execute it on the Execution Server. The response is checked to be valid.
- The end-to-end tests obtain the live Open API specification from the Execution Server through the REST API interface. The specification is then used to generate a Java client, build the client, and execute it on the Execution Server. The response is checked to be valid.
Steep learning curve
- Experience and perseverance are key in getting up to speed with a large and unfamiliar source code base.
Technologies used
Results
The team integrated successfully and managed to implement new features and the appropriate suite of integration tests and end-to-end tests, ensuring a smooth transition from SOAP endpoints to REST API endpoints for the clients using the ACTICO platform.
Perspective
This system highlights our commitment to client satisfaction and our ability to adapt to complex challenges. It represents a model of designing, implementing, testing and delivering of new features packaged as a new module in a complex architecture.