What Is Enterprise Application Integration Information Technology Essay
We are living in a world of rapid technological change. Organizations are demanding more functionality from integrated applications; new computing techniques to reuse and repurpose legacy data, and quicker deployment of technology to suit rapidly changing structures and business focus. And some of these drivers actually contain contradictions which must be simpler, but it has to be compliant with a raft of complex requirements; organizations want it quickly. They want it designed to meet the future to be competitive in the market, but with taking into consideration valuable data that have been accumulated in the past. Some fundamentally new ways of thinking about technology are emerging to manage this complex set of requirements using existing technologies but putting them together quite differently. There is a high competition between organizations worldwide, technology and business process together must be integrated so as to compete in such a market. (Thomas Gulledge, 2006)
This paper will discuss the difference between Enterprise Application Integration and Service Oriented Architecture. And will clarify many misconceptions between them. This paper is compromised of three main sections. The first section gives an overview of enterprise application integration. The second section gives an overview on service oriented architecture and web-services. Finally the last section discussing the relationship between enterprise application integration and service oriented architecture.
Enterprise Application Integration (EAI):
What is EAI?
Supply chain management applications (for managing inventory and shipping), customer relationship management applications (for managing current and potential customers), business intelligence applications (for finding patterns from existing data from operations), and other types of applications (for managing data such as human resources data, health care, internal communications, etc) typically cannot communicate with one another in order to share data or business rules throughout a company. Enterprise application integration (EAI) is the process of linking such applications within a single organization together in order to simplify and automate business processes to the greatest extent possible, while at the same time avoiding having to make sweeping changes to the existing applications or data structures (Wilfried Limahieu, et al., 2003).
Enterprise application integration (EAI) is defined by Linthicum (1999) ” EAI is the unrestricted sharing of data and business processes among any connected applications and data source in the enterprise”, However researchers have different perspective on defining it as some suggested inter-organizational Application Integration as the highest level of EAI and others suggested it as a part of external and internal Application Integration, so It can be considered as two types intra and inter-organizational AI. It is considered as a framework that is formed of a collection of technologies and services forming a middleware allowing the integration of different systems across the enterprise such as legacy systems, enterprise resource planning systems, and best-of-breed business. It is considered as a business computing term for the plans, methods, and tools aimed at modernizing, consolidating, and coordinating the computer applications in an enterprise (Bouchaib Bahli and Fei Ji, 2007). It usually comes in the form of middleware connecting such kind of applications that are usually running on different systems and databases making a difficulty of communicating and sharing information within the enterprise. One large challenge of EAI is that the various systems that need to be linked together often reside on different operating systems, use different database solutions and different computer languages, and in some cases are legacy systems that are no longer supported by the vendor who originally created them (Mrinos Themistocleous, et al., 2001)
EAI uses and purposes:
EAI serves different purposes throughout an enterprise that allows organizations to be more flexible and responsive to market demands improving their efficiency, some of these uses are data integration, vendor independence and common facade. (Mrinos Themistocleous, et al., 2001)
2.2.1. Data integration:
Data Integration is also well known as Enterprise Information Integration (EII) which is considered as the integration of information used for viewing all the data within the organization and representing them. Its goal is to get data from various data sources to appear to a system user as a single unified data source. It ensures that information in multiple systems is kept consistent. It works by providing homogenous data representations to a range of wide data sources, By providing a ‘front end’ tool by which users can access data from many different databases, the software can greatly increase the efficiency of business processes that rely on these disparate databases.
2.2.2. Process Integration:
Full benefit will be extracted from computer systems, only by making resources available to every single process and user within an enterprise. Unfortunately, the development of department specific systems has encouraged applications becoming more isolated and available only to a small portion of the enterprise; this kind of isolation is called ‘islands of automation’.
EAI software offers the opportunity to make a connection and removing the gap between these applications. Whereas data integration standardizes data across an enterprise, process integration standardizes access to the technology and resources. It is finally considered as the linking of business processes across applications.
2.2.3 Vendor independence:
As mentioned EAI software is designed for allowing integration of new applications. By extracting rules and business policies from current data and applications and implementing them in the EAI system, it becomes possible to apply these rules to new applications added in the future with little disruption, that even if one of the business applications is replaced with a different vendor’s application, the business rules do not have to be re-implemented.
2.2.4 Common facade:
An EAI system offers a complete front-end solution, a front-end for a cluster of applications, providing a single consistent access interface to these applications. Single interface helps in reducing the complexity of many business processes throughout and enterprise, Moreover will remove the necessity of training users to operate a range of different applications, so a small basic training can be sufficient for allowing users to operate the EAI interface in a professional manner.
Barriers to effective EAI and implementation pitfalls:
EAI projects suffers from a nearly 70% of failure. These failures was not due to a software problem nor a technical one, however almost were due to management issues. According to EAI Industry Consortium workshop there are seven main pitfalls that were taken by companies using EAI systems explaining solutions to each problem.( Gian Trotta, ebizQ, 2003; Marinos Themistocleous, 2004)
Change is constant:
EAI require changes frequently in different components, spreading across value chains into companies as an integrated business process. Budgeting in the end of a particular project gets companies into trouble when service level and many requirements increase after deployment, that’s the reason companies should create a post project investment that allows more than for basic maintenance.
EAI skills are rare:
The market suffers from a lack in persons that have skills considering EAI complex parallel processing and data combinations which can distract programmers and other staff who are used to a straight line approach. Moreover organizations that prefer the third party vendor route must be aware of its drawbacks. In addition, local language, Knowledge transfer and issue contingencies should be considered.
Standards are never universal:
Sometimes vendors deviate from inconsistent specifications and from different standards bodies such as those for Web services. On top of that, these standards bodies often have quite a heavy involvement from vendors, and vendors might be deciding to pursue their own agendas. Since standards can’t guarantee interoperability, companies should budget for testing and validation, though relying on standards.
Thinking of EAI as a tool as opposed to a system:
Other critical organizational issue which was not realized till companies experienced it was a failure to realize that EAI can sometimes be difficult to control and sometimes affects other projects and service levels throughout and beyond the enterprise. It requires a set of tools and some procedures to deal with things such as security, capacity, change management and monitoring. Here comes roles and responsibilities, in which business analysts are responsible for defining the flows, IT people are the ones responsible for the actual execution and EAI administrators who interface with both business and IT staff, and finally Competence Centers are highly recommended.
Treating interfaces as a science as opposed to an art:
IT staff prefers solving problems using analytic solutions and inaccurate definitions to solve business unit requirements; however EAI is about linking those business components together while maintaining the value of business data. That’s the reason why building some kind of negotiation process that everybody agrees with would be a plus. That will help in resolving issues with the business departments. Without taking that into account time will be lost, deadlines will be exceeded and finally the service delivered will lack in quality considering business needs.
Discarding details along the way:
Within an organization as its EAI system expands, information that may seem unimportant today may become important. As an example operational requirements often differ beyond the project development stage. Keeping a record of definitions, structures, interfaces and flows, and gathering statistics would decrease lots of effort later on when it is needed. Companies must look at such kind of information at a much higher level, that one day they might need it. EAI implementation should be extensible and modular to be flexible for future changes.
Unclear accountability and protectionism:
Lots of companies suffers from unclear accountability as business driven integration has a need to cross corporate boundaries, engage partners, and even touch customers. As an example when there is a run time issue, it has to be addressed in some kind of coordinated fashion combining both business and IT skills. Moreover applications whose data is being integrated sometimes belong to different departments that have cultural, technical and political reasons for preventing their data to be shared with other departments. It makes it so difficult considering internal corporate politics which could take months trying to resolve simple questions like “Where does the help desk report?”
Benefits and advantages of EAI:
Imagine a company having many systems each serving a certain department and not connected nor integrated together, such a company will fall apart and will not be able to compete in the business any more as lack of communication leads to inefficiencies, EAI is the soluble glue needed for modular relationships that allow organizations to be flexible and responsive to market demands, that’s the reason an integration is required (Thomas Pushmann and Rainer Alt, 2004).
EAI benefits can be categorized into four groups operational, managerial, strategic, and technical. The operational benefit is that it increases productivity, improves planning in supply chain management and quick response to change. Shifting to the managerial benefit it results into more organized business process, increases the performance, improves data quality, and supports decision making. EAI strategic benefit would be that it increases collaboration between partners, achieves return on investment (ROI) and customer satisfaction. And finally the forth and last category which is the technical benefits in which it reduces the redundancy of tasks and data, having an integrated process, increases flexibility, and reduces development risks. It also allows organizations to do business more effectively. (Marinos Themistocleous, 2004)
It allows diverse systems to connect with one another quickly to share data, communicate, and processes the information silos that plague many businesses. EAI solutions provide a way to connect the systems of collaborators, partners, and others for as long as necessary, decoupling when the relationship ends. EAI is the soluble glue for the modular corporation. It not only integrate various enterprise applications it also provides better customers and supplier services applications, and aid in promoting organizational goals. There are many cited advantages of implementing EAI, including an increased operational performance, a higher customer satisfaction. Moreover, EAI is not only about an ad hoc response to business needs, but also about gaining competitive advantage and strategic use of information technology (Themistocleous and Irani,
Finally EAI is the unrestricted sharing of data and business processes throughout the networked applications or data sources in an organization. It provides real time information access among systems, helps raise organizational efficiency, and maintains information integrity across multiple systems. It is facilitates the integration problems that ERP systems failed to solve and facilitates market and economical growth.(Bouchaib Bahli and Fei Ji, 2007)
Drawbacks and disadvantages of EAI:
However, given all the benefits of EAI, many companies hesitate to adopt
EAI technology. High initial development costs, especially for small and mid-sized businesses, require a fair amount of up front business design, which many managers are not able to envision or not willing to invest in.
One drawback of EAI is that the various systems that need to be linked together often reside on different operating systems, use different database solutions and different computer languages, and sometimes there are legacy systems that are outdated and no longer supported by the vendor. In some cases, such systems are dubbed because they consist of components that have been jammed together in a way that makes it very hard to modify them in any way. In addition that EAI costs a lot, it introduces changes to organizations and the way of doing their business. Moreover it is more likely to be implemented in large organizations than in companies. Finally most EAI projects usually start off as point to point efforts, quickly becoming unmanageable as the number of applications increase. .(Marinos Themistocleous, 2004).
Service Oriented Architecture (SOA):
.What is SOA?:
Service Oriented Architecture (SOA) can be decomposed as follows; an architecture style as a combination of distinctive features in which architecture is performed, supporting service orientation which is a way of thinking in terms of services and its outcomes. In which a service in SOA is a reusable component for using in a business process, it is a logical representation of a repeatable business activity that has a specified outcome and may be composed of other services. (Mark Colan, 2004; Barbara Reed, 2008)
SOA is defined differently, however the Organization for the Advancement of Structured Information Standards (OASIS) an IT industry standards body defined as follows:” A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations”. Others defined SOA as “An architectural design principle that describes a set of guidelines, principles and techniques by which business processes, information and technology assets can be effectively (re) organized and (re) deployed to support and enable strategic plans and productivity levels that are required by competitive business environments. (Rense M. Balk, 2006,2008).
It is a set of design principles used during the phases of systems development and integration in computing. A system that is a SOA based will be integrated and can be used within multiple systems across many business domains. It is considered as a type of architecture that integrates different disparate applications for a web based environment using multiple implementation platforms. Service-orientation requires loose coupling of services with operating systems, and other technologies that underlie applications. SOA separates functions into distinct units, or services, which developers make accessible over a network in order to allow users to combine and reuse them in the production of applications. It is an architectural concept in which all functions, or services, are defined using a description language usually Extensible Markup Language (XML) and where their interfaces are discoverable over a network. The interface is defined in a neutral manner that is independent of the hardware platform, the operating system, and the programming language in which the service is implemented. These services communicate together using loose coupling without effecting other ones. (Jean-Louis MarÃ©chaux,2006)
Properties and principles of a Service Oriented Architecture:
A Service Oriented Architecture is a style of architecture that embodies the following principles and elements:
Services loose coupling:
Services should be able to interact without the need for tight dependencies, in which a service requester should be loosely coupled to a service provider. This means that the service requester has no knowledge of the technical details of the provider’s implementation, such as the programming language and deployment platform. The service requester operates by sending a request message and a response one. The loose coupling allows the internal structure of requester or provider components to change, without impacting the other, provided that the message schema stays the same. (Sefan Linders, 2008; Mark Colan 2004; Rense M. Balk, 2006-2008)
Services are autonomous:
Services have control over the logic they encapsulate and do not depend on other services. Allowing the service to take care of its processing making it independent from other ones. Service autonomy is a primary consideration when deciding how application logic should be divided up into services (Rense M. Balk, 2006-2008; Sefan Linders, 2008)
Standardized and well-defined Service Contract:
Services adhere to a communications agreement, as defined collectively by one or more service-description documents it provides information on the service end point, the operations of the service, and the messages supported by each operation. This information is needed for a service requester to connect to a service provider and invoke the service. A service should have a well-defined interface that is mentioned and described in a service contract or its service definition. (Sefan Linders, 2008; Rense M. Balk, 2006-2008)
Services internal structure is hidden:
The only part of a service that is visible to the users is what is only needed. The underlying logic of the service is invisible and irrelevant to service requesters. Components using the service should not know or care about the implementation logic of a service, but just want the expected result to be returned. (Sefan Linders, 2008)
In order to efficiently use a Service Oriented Architecture and to overcome problems, the architecture must meet the following requirements: (Edward Tuggle, Jr.,et al ,2003)
Analyzing and considering the existing assets. Some times the existing systems are totally neglected; however it still has a great value. Existing system must be integrated and taken into consideration, in which overtime they will be replaced
Support all required types of integration including User Interaction providing a single and interactive user experience, Application Connectivity facilitating communications, Information Integration for sharing enterprise data, being able to add new applications and services, and Process Integration.
Interoperability among different systems and programming languages that provides the basis for integration between applications on different platforms through a communication protocol.
Allowing the implementation of new computing models such as Grid computing and on-demand computing.
Allowing the migration of assets and incremental implementations for the production of incremental ROI. Lots of integration projects have failed due to cost and unmanageable implementation schedules.
Include a development environment that will be built around a standard component framework, promote better reuse of modules and systems, allow legacy assets to be migrated to the framework, and allow for the timely implementation of new technologies.
Understanding web services:
A misconception is that web services is a synonym of SOA; however web services are based on open standards that are independent from any implementation platform, it is a set of technologies including The Simple Object Access Protocol (SOAP), The Universal Description, Discovery, and Integration (UDDI) and Extensible Markup Language (XML) (Mark Colan, 2004). A suitable technology is needed for the implementation of a SOA that can support the principles of service-orientation and there is no technology has been more suitable and successful in implementing SOA than web services. Other technologies can be employed as well for implementing an SOA, All major vendor platforms currently support the creation of service-oriented solutions with the understanding that the SOA support provided is based on the use of web services. The web services framework consists of a collection of technologies that apply to the use of services. (A.D. Phippen, et al.,2004; Sefan Linders, 2008). SOA presents the big picture of what can be made with Web services. Web services specifications define the details needed to implement services and interact with them (Mark Colan, 2004) .
In a web service approach, each SOA block can play one or both of two rules a service provider which creates a web service and possibly publishes its interface and access information to the service registry. Secondly a service consumer or web service client which locates entries in the broker registry using various find operations and then binds to the service provider in order to invoke one of its web services (Edward Tuggle, Jr. et al., 2003)
A question may arise for the reason of using SOA? Some of the key benefits are as follows:
The principles that were discussed drive the opportunities for reuse of services. As an example autonomy and loose coupling of services results in independency of services, this broadens the applicability of its reusable functionality; hiding underlying logic adapts reusability, because service requesters are presented a generic public interface; A well-defined service promotes reuse also, because it allows service requestors to search and discover reusable services .Service orientation promotes the design of reusable services; Creating a library of services that support reuse, provides increased opportunities for leveraging existing application logic. When new application logic is built, the time for designing, developing, testing, and deploying the application can be reduced when the required logic is available in existing services, enabling composition of services, rather than developing all application logic from scratch (Sefan Linders, 2008).
Using communication standards such as web services on the design of services it can result in the creation of solutions that consist of inherently interoperable services in which the functionality of services becomes independent of the implementation platform. Meaning that services can communicate using the same protocol even though it resides on different platforms. Theoretically, when all services are designed according to the same standards, an access to any service is applicable from a service requester from any device, using any operating system, in any programming language. When application logic is represented by standardized services, creating interaction between them requires less effort since the communication proceeds using the same protocol. SOA can therefore significantly reduce the efforts of application integration over other methods. The benefit of interoperability does not only apply to services that are built from scratch, but also applies to legacy systems (Apostolos Malatras, et al. 2008; Sefan Linders, 2008).
Agility and adaptability:
Agility of an organization is the speed to which an organization copes to changes in an environment. Through the opportunities for both reusability and integration, SOA can increase the ability of the organization to cope with changes. Agility of an organization depends in part on the agility of the application logic that supports the business processes of the organization. An IT environment that is standardized, interoperable and reusable services establishes a more adaptive organization, in which automation solutions can be delivered faster, with less effort involved (Sefan Linders, 2008).
EAI and SOA Relationship:
4.1. Evolution or revolution:
Some misbelieves is that EAI is a thing of past and SOA is the new thing that is replacing it, this is just like if a person says “transportation is a thing of past now road is here”. SOA is more like EAI than a lot of software vendors would have believe. In fact, in many vendors’ offerings, especially the ones labeled ESB (Enterprise Service Bus) have changed very little from their EAI roots. Simply adding web services support to a product that already supports multiple protocols is not a radical improvement. SOA most likely includes messaging particularly for legacy integration. EAI also implements loose coupling though message queues and or publish subscribe messaging (Greg Deller, 2008).
Many of the best practices of EAI apply directly to SOA. EAI concept of interfaces is a message publisher and subscriber. There are four types of EAI where integration projects fall; information portals, data replication, shared business function and service-oriented architecture; in which when there are enough useful services available in a company, new applications can be built by reusing already existing services only (Robert Thullner, 2008; P. Joshi, H.Singh and A.D. Phippen 2004).
Companies that were doing a good job with EAI will have an easier time with SOA. They have untangled the spaghetti bowl of interfaces and now service enabling them will be much simpler. Those who struggled or failed with EAI now have another chance with our newly relabeled technology. But simply slapping a web service in front of a tangle of interfaces and decades worth of dirty data will not realize the promise of SOA. There is still a lot of heavy lifting to do and a need for a well defined approach and a set of best practices. (Robert Thullner, 2008)
A SOA web services and EAI:
An assumption that web services are the tools for building EAI could be made.. Integration can be done with web services, but it is a very heavyweight approach. There are many standards that is developed which should build the fundament for a widespread acceptance and usage of web services. The standards are UDDI for the registry component, WSDL for describing interfaces of services, and SOAP protocol communication between services. Many other standards have been developed around these principles supporting web services growth, they are usually referred as WS- standards. A WS- standard could be messaging (SOAP, WS-Addressing), description and discovery (UDDI, WSDL), reliability (WSReliable Messaging), transactions (WS Coordination), security (WS-Security), business processes (BPEL) and management (WSManageability) . Those WS-* standards would cover all topics which are needed for an EAI solution, BPEL can be used to build business processes and for management of the EAI solution management standards can be used. SOAP can be used for messaging and can be extended by WS-Reliably Messaging to ensure that a message gets delivered. Web services standards are all based on XML and when implementing an EAI solution a lot of XML configuration files have to be written to get a working solution. The three main standards SOAP, WSDL and UDDI have been accepted by all vendors. All other standards have been developed to solve a specific problem in the web services domain. As soon as standards are broadly accepted by all major vendors of EAI solutions the web service technology can be a reasonable and effective approach for EAI solutions (Greg Deller, 2008; Robert Thullner, 2008).
While going through the literature there are to many limitations and gaps. This is mainly because researches do not focus on EAI and SOA, in which there are lots of misconceptions present due to the lack of research on them.
Some of the limitations are that SOA is a confusing term to managers, because technologists do not share a common understanding of service-oriented concepts. If technologists present the concepts from different perspectives, then confusion persists. In fact, SOA is not well understood by managers, and the business benefits are even less understood. For that reason, companies are slowly investing in SOA mitigating risk through pilot projects and being very cautious. Moreover experience in SOA and EAI is rare and as a result the academic research on them. Moreover according to Sefan Linders (2008), none of the identified benefits of SOA were based on empirical findings.
In this paper, we examined the difference between enterprise application integration and service oriented architecture. In the first section of the paper, Enterprise application integration is generally discussed with its benefits, drawbacks to an organization, and its barriers including the rare skills and thinking of EAI as a tool opposed to a system. In the second section service oriented architecture was examined discussing its principles and requirements for preventing future problems. Afterwards the concept of web services was explained followed by SOA benefits. Finally the relationship between both EAI and SOA was discussed explaining how can both work together.Order Now