How did software integration come about ?
As computer systems grew and developed, they also grew apart. Thus, solutions from different vendors could no longer communicate with each other.
As a result, the elements of a company's IT stack were connected only by the fact that they belonged to the same company.
A solution had to be found to organize this environment and avoid repetition of tasks.
Concept of software integration
The notion of software integration finds its essence in the connection and unification of different types of software components of a computer "macro-system".
In the classic software development process, it occurs after the coding and unit test execution phase : it is an inevitable step in the software life cycle.
During this stage, the different modules of the software are integrated at successive levels in accordance with the specifications of the integration tests.
For example, we can test :
- that the modules linked to a usage relationship work correctly together ;
- that a task, or a specific functionality works correctly using the modules on which it relies ;
- that several functionalities, more or less linked by multitasking or successive mechanisms in the nominal use of the software tool, work correctly ;
- that once all the functionalities are grouped together, the software works in a global way.
The software integration test specification document describes the tests and test cases to be performed during the software integration phase. The Test report document transcribes their results.
Software integration : why ?
Nowadays, many companies in various fields rely on increasingly complex information systems.
As these macro-systems are themselves composed of sub-systems, each specific application involved not only meets a precise functional need, but may require information managed by other ancillary applications that are also part of these systems.
In addition, it can also produce a quantity of information necessary for the proper functioning of the other applications making up the system. This is the main reason why the software integration of data sources has become an essential and indispensable step.
This step also addresses a wide range of data source issues :
- legacy software using obsolete databases and other technologies
- diverse, disparate data sources, sometimes on different platforms
- data structure that can be modified over time and sometimes in a format that can become difficult to interpret or ambiguous
Connecting data, applications, APIs, and devices increases efficiency, productivity, and business agility, among other things.
Thus, IT integration represents a key aspect of the transformation of a company and its adaptation to the evolution of the market, adding considerable value : by connecting the different functions of several subsystems, it is strongly possible to offer new functionalities.
The field of software integration has some limitations :
- Software integration solutions are generally proprietary solutions, insofar as the protocol used for message exchange and transport, the application access connectors and the data formats used are still largely specific and proprietary. This requires in some cases the use of other technologies for reasons of performance and quality of service.
- Current software integration solutions are infrastructures built without a strategic vision. They are essentially based on technologies, and are not sufficient to have an optimal and efficient integration of applications.
- The proposed integration solutions are essentially based on mechanisms for interconnecting applications at the technical and syntactic levels (mapping mechanisms or syntactic transformations), but they do not, for the moment, adequately address the problem of semantic integration.
- Current software integration solutions suffer from a lack of adaptability, which is a fundamental and necessary principle especially in certain cases related to organizational, technical and functional changes.
Current software integration solutions suffer from a lack of services for business process modeling and integration.
Methodologies : what architecture should be adopted ?
Integration architectures are the foundation for the implementation of different integration technologies.
There are two basic types of integration architectures : the Hub-and-Spoke architecture and the bus architecture.
All other architectures are hybrid forms combining the two basic forms hub-and-spoke and bus, such as the multi-hub architecture for example :
- Hub-and-spoke architecture : this is the centralized model for software integration solutions. It corresponds to a star pattern that consists of deploying in a single focal point. It allows to encapsulate the interaction logic of the application, minimizing the communication dependencies between applications to pass information and treatments between them.
- Bus architecture : this is the decentralized model of Integration solutions. It consists of distributing the set of services of the infrastructure on nodes, which are the connection points to an application that allow the process automation logic and the applications to be encapsulated.
- Multi-hub architecture : this model combines the two Hub-and-Spoke approaches and the bus approach, thus highlighting the subdivision of the information system into several information blocks, generally resulting from an upstream urbanization approach. Intra-blocks integration is performed according to the hub-and-spoke typology, while inter-blocksis generally performed according to a bus typology.
The different levels of integration
The integration can concern one or more levels of the information system and the company's applications. We note :
- Integration at the data level : integration at this level is achieved by migrating data from one database to another without the need to introduce changes to the logic of the company's applications.
- Integration at the treatments level : allows applications to share the functionalities offered by other heterogeneous and independent applications through the invocation of the services they expose. The simplest mechanism to achieve this type of integration is the use of APIs (Application Programming Interface), or web services.
- Integration at the process level : allows the sharing of business logic, as well as the integration of new applications across existing applications. This allows you to create a new interface or integrate a new application. This approach is generally based on the implementation of an orchestration engine, or a workflow engine, in order to link and integrate the applications in a common process.
- Integration by presentation (user interfaces) : this approach, also called screen-scrapping, allows to link the integration logic in the user interface. The integration at this level is done by developing a common (shared) interface to expose the different applications.
If you have a specific need, check our technical assistance offer !
Editing : Jaccepte Mbana & Sophie Berbey.
To go further, here are some sources on the subject of integration :