Enterprise system integration is the bringing together of heterogeneous components within an enterprise for them to collaborate to realise and contribute to business goals.
Broadly, models of integration can be distinguished into those that affect physical integration (e.g. hardware), application integration (interoperability of applications across heterogeneous platforms) and business integration, with the view of process integration. (Panetto and Cecil, 2013 )
Volkoff et al. (2005) identifies degrees of which integration is achieved such as Total, Unification and Federated and can further categorized into types of integration i.e. data, context and process integration. This research also mentions how the relationship and dependencies between integrating participants also typifies integration.
Key technologies centre around the concept of interoperability of Enterprise information systems (EIS), where co-ordination and communication play pivotal roles. Analysis of systems, modelling, architecture, compatibility, co-ordination, communication and systems’ interdependences are also key concerns.
Designs and implementation of loosely coupled systems are idealised through collaborative technologies such as APIs, Web services and other distributed, platform-agnostic technologies such as CORBA/RPC etc.
Architecture such as Service Orientated Architectures (SOA) and Model-driven development exemplify the need to model “reusable actives are services”. (Jardim-Goncalves et al., 2013 )
Data modelling technologies such as UML and organisational modelling technologies such as UEML/QVT/MOF coupled with network design help provide visibility during analysis of integration projects.
Application integration technologies usually centre around common services such as shared databases and standardised data and include technologies such as JEE/.NET that are used to implement interoperable designs such as web services, standard data format exchange (using XML, WSDL etc) and services across distributed processing environments.
The overarching benefits of integration usually is the standardization of work and data, operational efficiencies and reduced cost. This can be seen through the convergence of functionality, unification of best practises, higher data accuracy, better collaboration between participants and reduction in manual integration effort and overall process time. (Volkoff et al., 2005)
This research also indicates that difficulties usually stem from the degree of dissimilarity between integrating participants and centre around interoperability issues around compatibility differences in format of data, semantics and business processes. These differences can include social implications around orientation towards different integration goals, and the impact the integration has on the organisation at large, including inter-personal orientation and the effect that personal workarounds (in the face of integration) has on downstream systems.
Other difficulties include the cost of integration, the impact that a break in the chain of inter-connected services have on functionality downstream and the lack of consistencies between models from different environments.
Other issues cited are increased interdependence/coupling on system on each other, the increased rigidity of integrated processes and the consequences that a break in the flow has on downstream participants and processes.
An interesting observation is that while interoperability results in compatibility, it’s not necessarily the other way around, nor is a maximum level of interoperability necessarily an optimal one. (Jardim-Goncalves et al., 2013)
In my experience, and as taught in this module, analysis, design and architecture play key roles in integration projects. Particularly the need and emphasis on analysis and architecture such as the need to synchronise analysis models with implementation models when change occurs (e.g. MDD) and how Software engineering also strives for similar goals to integration – common, shared data and reuse of functionality. (Joannou, 2007)