Contact us. We are happy to talk about your needs and prepare an offer.
IT systems integration
The IT systems integration may be necessary both for data exchange between systems in one company and for communication between different companies systems. Integration needs apply equally to small, medium, and large organizations. If you need to exchange data between different systems, you've come to the right place, because at ImpiCode we will help you solve even the most complex integration problems.
What is IT systems integration?
Generally speaking, IT systems integration is a process that enables data exchange between different systems. It gives them functional cooperation, facilitating communication between individual departments or company processes. The integration of IT systems allows different systems to use each other's resources such as files, data, and information.
Many entrepreneurs are surprised when they find out how time-consuming and complicated is the process of IT systems integration is. The reason is simple - some systems operate data in very different ways and it is not always possible, let alone easy, to translate information from the language of one application into the language of another. Of course, it all depends on the company’s software and on the size of the planned data exchange. Sometimes system integration will require merely simple and quick work, but on the other hand, it may be difficult to extract data from one system (and sometimes from either). When it comes to system integration developers have to spend a lot of time understanding how data is organized and what it means to the system's users.
What to consider before starting integration?
In our practice, we have encountered many different situations and we approach each project individually. There are several key issues in integration that should be discussed thoroughly with the client before work commences. The most important questions are:
- How many systems will exchange data? Only two or maybe more? Will there be a need for additional exchange partners in the future even if we are currently considering only two?
- Who manages the integrated systems? Are they all under the control of the company or are some of them functionally located with clients/suppliers or in other institutions?
- Should data exchange be automatic or on-demand? If automatic, is it necessary to operate in real-time, or can it be or should it be implemented at larger time intervals? Perhaps data exchange is to be triggered by some action of another system or a human operator?
- What will be the direction of the data flow? Is it only from system A to system B or in both directions?
- What about data conflicts? Does the data in one system conflict with the data in another system? If so, which system has an authoritative role? Should the resolution be left to human operation?
- Do all the systems in the integration project provide some form of data exchange interface? Is there an API, or will it be necessary to connect directly to an external database or implement some form of file sharing? Is the API documented and is the documentation up-to-date, or will it need to be "figured out"?
These are just a few of the most important issues that will help determine the scope of the integration project.
Is the integration of two IT systems always possible?
If both systems provide an API or other data exchange mechanism, then integration is practically always possible.
Problems arise when one of the systems does not provide an API and also (more or less intentionally) hinders other forms of data exchange. However, even in such cases, the exchange of data in one form or another is almost always possible, although, from experience, sometimes the implementation of a connector between such a system can be very time-consuming.
It is worth mentioning that if the authors of some systems don’t desire integration, it may turn out that after the update, data exchange may stop working. But fortunately, such situations are extremely rare.
When should IT systems be integrated?
Enterprises integrate IT systems mainly to improve the efficiency and quality of work because it reduces the costs of maintaining many systems. It is a great solution for companies that work on many non-integrated systems and loses a lot of time manually re-entering the same data, information, or files into all systems. Thanks to automatic integration, you can avoid rewriting data and unwanted errors that occur when you enter the same data repeatedly, e.g. a typo in the customer's contact details. If your company's employees spend a lot of time working in the "copy-paste" mode, you might want to consider integration.
How the integration of IT systems work?
The process of IT systems integration can be quite a simple task, but in some cases, it can be also a serious project. Sometimes only one of the systems requires modifications to enabled integration (e.g. creating functions that operate the other system's API). Sometimes because of technical or licensing reasons, various systems may not want to integrate with others. It then becomes necessary to prepare a collector, i.e. an additional application that connects to each of the integrated systems and provides data exchange through a centralized repository.
There are two basic types of IT systems integration - one-way and two-way. In the first one, one system only sends while the other only receives data. On the other hand, two-way integration assumes that the systems complement each other's data resources
The integration of IT systems works primarily through various types of APIs, i.e. software modules created specifically to enable data exchange and its control. This ensures that any new record added by the API will have the correct format and will be properly processed. This solution is the simplest because the API provides the maintenance of the communication standard and will not allow data to be sent if it does not meet the predefined standards. Usually, APIs support widely adopted standards and data exchange protocols (most often XML, JSON, webservice, http / https, SOAP, REST), making integration even easier.
In the absence of an API, integration is still possible, even by directly accessing the database. However, this solution is more complicated. It requires much more knowledge about the system and its operation as well as its permission model, which generally requires more work. It sometimes happens that adding something that is one record in the source system forces the creation of several records in different tables in the target system. So the developer must implement something that would normally be handled by the API module. Furthermore, the API ensures that data exchange will work regardless of how the system changes (e.g. due to updates). Direct connection to the database does not provide this security and may require that the updating of one system forces the update of the integration software module, as well.
There are cases where it is not possible to communicate via API or through databases. In such a situation, an exchange through files may be a solution. It can be a "manual" exchange (by downloading a file from one system and sending it to another), but it can also be automated if one of the systems can read files from a network drive or another server.
In extreme cases when the problem cannot be solved by API, database, or file transfer, reverse engineering techniques may be employed.
The cost of IT systems integration
Depending on the method of integration and the volume of the data exchange, the costs of IT systems integration can vary widely. API integration is usually simple and troublefree. However, in the case of direct connections to the database, it can be more expensive or complicated. The cost of integration depends most on:
- the number of systems entailed in the integration,
- the volume of exchanged data,
- the directionality of data exchange (one-way or two-way),
- the protocol for solving data conflicts between systems,
- the data exchange mechanism (API, database, other solutions),
- the extent of system documentation (including API),
- frequency of data exchange (real-time or synchronization at longer intervals).
Challenges with system integration
A large part of the problems associated with the integration of IT systems does not result from technical issues, but from the system management issues and potentially desired changes. For example, one of the systems may be updated after some delay, which may affect its operation. The API, itself, may also be updated. With such change, it may also be necessary to change the integration solution
When formulating an integration plan bear in mind that the update of each system has to take into account the integrator's operation. When it comes to one's own internal systems, this is usually not a big problem. Unfortunately, external suppliers or system operators frequently decide to update - and experience shows that sometimes this happens without warning. In such a situation, one should take into account that the exchange of data between systems will stop working until the integration solution is, likewise, updated. This involves additional costs or downtime at work. That is where technical support should get involved.
Another issue is that the integration via our inhouse IT resources (if we have them) is not always possible. Many companies face challenges in finding existing employees with the skills needed for a specific integration project. Furthermore, engaging an employee in only one project is not always profitable. Therefore, a good solution might be to use an external supplier who will assume the responsibility.
If you consider the integration of IT systems or want to learn more about the process - contact us through the form