There could be a significant number of IT systems that are used to support business function within a given enterprise. These IT systems can be heterogeneous in nature and many do not necessarily provide a high degree of cohesion in the way they interact with one another. This leads to the high maintenance cost of IT infrastructure and general difficulty in bridging gaps between different business processes.
The first step in addressing these challenges is to perform Business Function and IT infrastructure analysis of a given enterprise to identify which IT Systems are responsible for supporting specific business functions and identifying what are the integration requirements between these business functions. After the initial analysis stage, you can proceed to the next stage, which is building a portfolio of services that would represent these business functions as provided by IT systems that you have identified.
Services may greatly help in addressing business and system integration challenges by providing consistent and homogeneous representation of business functions across a number of heterogeneous IT systems. One of the main goals of service design is to present business functionality to the service consumer in a way that disguises the underling service implementation. The process of building a portfolio of services basically means that you need define service contracts and interfaces for business functions implemented by each IT system.
Once you have built a portfolio of services to represent business functions of your enterprise, you may abstract from the specifics of each service its underlying implementation. because these services have helped you solve the technical hurdle of different IT systems being based on heterogenous technologies.
However, now you need to start thinking about how these services will interact. One way of making services interact is to make them invoke each other directly, known as the Point-to-Point integration approach. This would create a network of service interactions that can potentially expand in complexity. Although direct service interactions are quite simple and easy to build initially, with time this could present a maintenance problem, because a modification applied to a specific service may lead to cascading modifications spreading to other service(s) that are dependent on the changed service.
The number of potentially affected dependencies tends to grow exponentially, increasing the cost of any modification. Another issue with the Point-to-Point integration is monitoring, because of a lack of centralized way of collecting and presenting information about different interactions. This limits the ability of the enterprise to present a holistic business view across several business processes.
Point-to-Point integration does lead to significant code duplication, as many different services have to perform data transformations repeatedly to manage different data formats used by other services with which they interact.