cited. Lean Integration Using Open Source Based Infrastructure and an Integration Competency Center Approach Author

In this paper a set of successful Enterprise Application Integration projects are analyzed andcommon characteristics are identified. These characteristics are then distilled into a set of keysucces ...


Introduction
This paper describes a set of key success factors identified as common denominators in several studied Enterprise Application Integration (EAI) projects.The possibility to enable successful and maintainable EAI should be of crucial interest for basically all of todays businesses.Wether we talk about Service Oriented Architecture (SOA) or EAI we see an increased need for successful EAI both in a business as well as Business to Business (B2B) perspective.In this paper we address key success factors we would classify as being part of the traditional software engineering discipline (Pressman, 1992;Brooks Jr, 1987) adapted to the special case of integration/service development.Gu and Lago (2009, p. 5) defines this specific subdiscipline of software engineering as Service-Oriented system engingeering (SOSE): "…addresses systematic, disciplined and quantifiable approaches to develop service-oriented systems.A common concept shared among these approaches is software being used as a service for consumption." The ultimate goal of service technologies is an IT infrastructure consisting of cooperating services where application components are assembled with little effort into a network of services that can be loosely coupled to create dynamic business processes and agile applications that span organizations and computing platforms (Leymann, 2005).Working with service development and service maintenance does however place new demands on businesses regarding organization, skills and methodology (Papazoglou et al., 2007;Rosen et al., 2008).

Integration Competency Center
An Integration Competency Center (ICC) can be defined as a management, coordination and operational team, responsible for assisting other projects with their EAI needs throughout the whole organization (Schmidt, 2009;Informatica Inc., 2005;Stelzer, 2010).The team will be responsible for development and government of specific integrations offered as consumable services to the organization.The ICC will also possess the key knowledge required for the effective development of successful maintainable integrations between oftentimes disparate business areas.One of the keys to effective development is the ability to (re)use existing services (Christiansson and Christiansson, 2006;Hohpe and Easy, 2007;Rosen et al., 2008).ICC provides the direction, control, optimization, consistency and long-term focus that successful and maintainable integration projects require (Jotham and Toivanen, 2010;Schmidt and Lyle, 2010).

Enterprise Application Integration
Enterprise Application Integration (EAI) is a business need to enable heterogenous applications, in one business or between several businesses, to communicate and exchange data to achieve business objectives (Cummins, 2002;Land and Crnkovic, 2004).The requirements for these integrations are that they need to be built in a seamless reliable fashion irrespective of platform and geographical location of these applications.EAI can be viewed as messages passed between heteogenous applications where messages are delivered, accepted, rejected, transformed translated and routed in accordance with requirements defined in business processes.Usually messages transportation is asynchronous but if a business need requires it it can be synchronous as well.There are two basic architectures to achieve EAI, 1) hub/spoke and 2) bus architecture.Both of these can be used to develop integrations oftentimes the integrations are referred to as services.Such a service can be viewed as a part of a SOA (Goel, 2007;Rosen et al., 2008).In our experience EAI is one of the major driving forces to implement a SOA in a business.In our experience the SOA approach does not need to reach further into the IT infrastructure to be successful, in fact we would argue that taking the larger leap and restructuring the whole infrastructure to SOA is attached with larger risks and the potential of failure is dramatically increased.1. Hub/Spoke architecture uses a centralized broker a so called "Hub" and adapters the "Spokes" which connect applications to the Hub.Spokes connect to applications and convert application data format to a message which the Hub understands and vice versa.The Hub brokers all messages and takes care of content transformation/translation of the incoming messages into formats that the receiving application understands.The Hub is also responsible for the routing of the messages, i.e. making sure the message is delivered to the correct Spoke.2. Bus architecture uses a central messaging backbone a so called "Bus" for message propagation.Applications publish messages to the bus using adapters.These messages are routed to subscribing applications using the Bus.See Figure 1 for an example of a Bus architecture.Stelzer (2010, p. 16)  We classify this research as mainly action research where the authors also are active participators in the actual projects, this implies that we as researchers also affect the outcome of the projects and thereby indirectly affect the outcome we base our conclusions on, the possible effects this can have on the viability in our conclusions is further elaborated in the section called "Methodology" below.During the projects we have actively kept a journal noting the day to day activities performed and by analyzing these entries using a Grounded Theory inspired approach (further elaborated below) together with findings from fellow researchers we believe the foundation for our findings is solid and viable even though action research can biase the empiricism used.The used empirical material is collected during the period august 2008 to october 2010.

The Challenge
Todays businesses find themselves in a situation where several disparate demands forces them to invest in Enterprise Application Integration (nowadays oftentimes disguised as a SOA strategy).Below we present a non exhaustive set of reasons we encounter in our discussions with businesses.The majority of businesses have existing legacy applications, developed in different eras using different architectures and technologies.When new needs evolve the businesses usually can not afford to write them off or replace them with new applications, because they are mission critical.Besides the existing applications and new integration needs for them businesses will also need to introduce new applications from time to time.New applications are usually based on new architectures, which differ significantly from architectures used by existing legacy applications.These new applications also have to be integrated with existing applications; and existing applications have to be integrated with each other to fulfill the information availability and accessibility goals.Another demand is the increased need to make inter-business integration or "business-to-business" (B2B) integrations.Where the actual integration project needs to, besides handling the ordinary ordeals of EAI, also handle stakeholders from different businesses.To the above mentioned ordinary ordeals for integration projects we would like to highlight problems like the lack or outdated documentation of legacy applications.The fact that oftentimes only a few staff members possess competence and knowledge regardin´g legacy applications.The older the application the fewer possess knowledge.Oftentimes only a few staff members possess knowledge regarding the oftentimes unique infrastructure created from the use of different technologies from different eras being mixed in a very specific blend based on the legacy applications once acquired.

Communications of the IBIMA 4
We can see that integrating applications is a difficult task, maybe even one of the most difficult tasks facing the software development community.After seeing several very successful EAI projects and noticing they all have a series of common characteristics, we decided to document them in this paper, calling them "key success factors".These findings should be of value for a large audience including stakeholders in ongoing or planned EAI projects.

Methodology
We have used a straight forward approach to our empirical studies, using action research as defined in The SAGE handbook of action research: Participative inquiry and practice (Reason and Bradbury, 2008).We believe that the following quotation describes our research approach (Reason and Bradbury, 2008, p. 4) "..action research is a participatory process concerned with developing practical knowing in the pursuit of worthwhile human purposes.It seeks to bring together action and reflection, theory and practice, in participation with others, in the pursuit of practical solutions to issues of pressing concerns to people..." We have paid close attention to as many as possible of the drawbacks in using action research as research methodology but would also like to state that it is very well suited for gaining access and insight into "real world projects" that is the foundation for this paper.During the action research process we used a journal approach to keep track of insights and knowledge gained.This journal have then been analyzed during the writing phase this paper represents.We have used a slightly modified version of the original Grounded Theory approach Glaser (1978) when analyzing the Journal.Basically Grounded Theory can be defined as: "...grounded theory methods are a set of flexible analytic guidelines that enable researchers to focus their data collection and to build inductive middlerange theories through successive levels of data analysis and conceptual development." The approach we have used when analyzing the journal can very shortly be described as a three step process: Step 1 Open coding, by analysing the terms used in the journal, common categories or patterns are identified.
Step 2 Axial coding identified common categories are related to eachother in conceptual graphs.
Step 3 Selective coding, main categories are selected and the other minor categories are related to them in conceptual graphs.This approach to Grounded Theory is called Multi Grounded Theory (Goldkuhl and Cronholm, 2003).
An alternative research method we used to a lesser extent can be called "participant observation", as described by Seaman (1999, p. 5): "...research that involves social interaction between the researcher and informants in the milieu of the latter, during which data are systematically and unobtrusively collected.The idea is to capture firsthand behaviors and interactions that might not be noticed otherwise.Although the name is misleading, participant observation does not necessarily imply that the observer is engaged in the activity being observed, only that the observer is visibly present and is collecting data with the knowledge of those being observed." The Key Success Factors

Using Common Canonical Formats for Data Exchange
The integration of existing applications and data is probably one of the more complex and challenging tasks facing enterprise IT organizations (Rosen, Lublinsky, Smith, and Balcer, 2008).To be able to integrate and exchange data between heterogenous systems the organization needs to have an enterprise-wide, common semantic model.This common semantic model can be used to identify and specify necessary data transformations for integrating heterogeneous applications.To setup an enterprise common semantic data model, the organization needs tools to enable semantic as well as syntactical transformations between data representation in existing applications and the enterprise-wide common semantic model.
The introduction of a canonical information format where each information provider and consumer is responsible for normalizing the information into a canonical format prior to providing the information will enable a common semantic data model (Patrick, 2005;Chen, 2003).This will however introduce new requirements on existing applications.Due to the fact that few applications are delivered with source code this can only be handled in the form of adapters and wrappers doing the transformations outside of the actual applications.This conveys the need to govern each adapter and wrapper as unique artifacts leading to an added strain on Operations staff and software maintenance.The inclusion of an Enterprise Service Bus (ESB) (presented in next section) has the potential to remedy this well known issue with EAI.The transformations and required logic are not separate entities but rather part of services contained within the realm of the ESB.
The creation and usage of a canonical information formats for heterogeneous applications, in combination with using an ESB centric approach to integration is one of the identified success factors.Another success factor is to use the eXtensible Markup Language (XML) for defining canonical formats.This does not imply that all heterogenous applications need to provide or process XML formatted data but rather it is a requirement when creating a canonical information format, performed by the services deployed to the ESB.XML consists of a set of rules for defining and representing information as XML documents where information structures are indicated by explicit markup.The markup vocabulary and the structures specified for a particular domain create an XML application, a formal language for representing a common semantic data model.Power (2005, p. 34) claims that XML offers a flexible way to exchange information: "The advantage that XML offers is a flexible standard for the exchange of information between trading partners via the internet." One important note regarding an enterprise-wide common semantic information model is that just introducing a homogenous way of data representation (e.g., XML) does not imply common semantics.The notion of "customer" can have many different semantics, connotations, constraints, and assumptions in each participating system.Resolving semantic differences between systems proves to be a particularly difficult and time-consuming task because it involves significant business and technical decisions (Hohpe and Woolf, 2003).To reach common semantics we need to introduce one enterprise-wide common semantic information model defined with homogenous canonical information formats.

Using Open Source and Enterprise Service Bus
There are several well defined advantages in using open source based software, but also a set of disadvantages (Ven et al., 2008;Wheeler, 2007;Lakhani and Von Hippel, 2003).In our experience, an open source approach to developing and governing an ESB infrastructure has proven advantageous in several ways.First, the rapid turn-around time on feature requests and bug fixes has encouraged early adoption and the growth of a community that both provides feedback and now supports itself, in addition to several large scale companies backing up the projects.Second, the lack of a licensing fee encourages the use of open source software in organizations seeking numerous deployments.Finally, the reuse of existing open source components allows the development teams to focus their efforts on improving the aspects of the integration solutions rather than the underlying mechanisms that make it possible.This in combination with the obvious promotion of open standards usages enables for a flexible and highly reusable architecture with a potentially high population of stakeholders.We have found similar experiences from other projects with similar circumstances like for instance Bortis (2008).

Figure 1: An Enterprise Service Bus with Flexible and Extendable Ways of Connecting Applications
An extension of the basic EAI strategies is the introduction of an ESB or an ESB-centric integration approach, using the previously mentioned Bus approach to EAI.Using an ESB can provide the flexibility to allow data transformations and other services to be "plugged" into the bus and then be reused by any number of different services and application components (Patrick, 2005).An ESB is an enterprise-wide extendable middleware infrastructure providing virtualization and management of service interactions, including support for the communication, mediation, transformation, and integration technologies required by services (Rosen, Lublinsky, Smith, and Balcer, 2008).This is illustrated in Figure 1 where the black boxes represent existing and future applications, blue boxes represent ESB connectivity adapters.The red wavy lines indicates implemented integrations deployed to (plugged into) the ESB.

Using Enterprise Integration Patterns
Unlike most other engineering disciplines IT development and software engineering is still characterized by the lack of a precise vocabulary (Hohpe and Easy, 2007).While computer science has established solid theoretical foundations, designing complex software systems tends to be a much less structured activity than designing buildings or machines (Hohpe and Easy, 2007;Pressman, 1992).Patterns constitutes one way of handling the lack of precise vocabulary by establishing a common language in terms of "patterns" for common used abstractions regarding designing and development of software artifacts.Since patterns are not meant to be precise definitions and do not have to map into an overarching meta-model, they can also be "soft" around the edges, conveying knowledge without necessarily being regarded as specifications (Hohpe and Easy, 2007).Software developers tend to start with a blank slate and are oftentimes constrained by very few factors beyond the language syntax.In such an environment patterns can aid the designer as opposed to prescribing and forcing a generic solution based on required specifications.Design patterns can be helpful if they represent field-tested solutions to common design problem.This means that for an individual situation we only need to identify which pattern to use and the quality of the solution will be "guaranteed" through the previous real life usage.Furthermore patterns can assist IT development by organizing design intelligence into standardized and labeled recipes/descriptions.By introducing and consistently reusing the same set of patterns we increase our possibility to ensure consistency in how systems are designed and built.Patterns are however not something to be enforced or made mandatory when doing design but rather flexible and optional tools to be used.
A specific type of patterns are defined as "Enterprise Integration Patterns" these patterns are part of the foundation for several ESB solutions, with maybe the Apache Camel project as the leading example (Apache Foundation, 2012).EAI needs to provide efficient, reliable, and secure data exchange between multiple enterprise applications, and enterprise integration patterns distill a set of best practices for accomplishing this.According to Hohpe and Woolf (2003) the patterns are targeted at providing solutions for the constraints of developing integration solutions where the limited amount of control the integration developers typically have over the participating applications is a fact.Another constraint is the lack of interoperability between "standardscompliant" products.We have identified the use of selected enterprise integration patterns together with an ESB-centric integration approach to be one of our key success factors.

Establishing Integration Competency Centers
According to Wikipedia the term Integration Competency Center and its acronym ICC was initially defined by Roy Schulte of Gartner (Wikipedia Foundation, 2012).The ICC is an enterprise shared service for performing systematic application integration.Introducing an ICC will always require an initial organizational effort but will once its done (correctly) lead to reduced integration costs.An ICC can accomplish this by enforcing standards, using standardized and well defined processes, and driving software and data reuse throughout all integration projects.The result can lead to less development effort, reduced need for extensive testing, and lower support costs.
The introduction of an ICC will be a step in creating an adaptive enterprise to allow the business to rapidly change as the market changes.The ICC does this by allowing individual applications to be loosely coupled so that they can change independently yet still be tightly integrated to enable efficient business processes (Informatica Inc., 2005).In our empirical studies we also identified that including lean principles into the day to day tasks of the ICC to be another success factor.Lean Integration can be summarized as a set of principles similar to Lean manufacturing and Lean software development (Schmidt and Lyle, 2010).The first principle eliminate waste is targeted to the obvious task of always scrutinizing every activity to make sure that it adds value to the deliverable at hand and otherwise reject the activity.The next principle is to sustain knowledge one of the big challenges with IT development in general and integration in particular is the demands on knowledge and skills it imposes on the practitioners.This can be met by working with elaborate individual competence enhancement plans, defined processes and requirements for documentation, throughout all phases of the integration development projects, and through a standardized and centralized information hub (e.g.integration wiki) to place central documentation for easy access and usage.The following three principles plan for change, deliver fast and empower the team are included in the set of processes and methodologies we have seen incorporated into the ICCs covered in the empirical studies.The major part is done through the use of Scrum as a project management method.Scrum is an iterative, incremental methodology for project management often seen in agile software development.Although Scrum was intended for management of software development projects, it is used to run both software maintenance teams, and general project/program management approaches (Schwaber and Corporation, 2004).
In our empirical studies we have identified Scrum as the preferred methodology to run and manage the day to day operations of ICCs including development and governance Communications of the IBIMA 8 of integrations.Another key success factor is that the ICC's all include a standardized set of tools for enhancing both quality and speed in delivering integrations.These tools include support for thorough testing, continuos integration, intelligent handling of software builds and source code versioning.One interesting note is that the entire tool suites is built with pure open source products.

Conclusions
EAI is a challenging and crucial task that the majority of todays businesses needs to handle.One could probably claim that the level of success can, at least for some businesses, be measured in conjunction with their success in EAI.We have participated in several successful EAI projects for over a two year period and have during this time identified a set of common characteristics.
These common characteristics are: 1. Using Common Canonical formats for data exchange.Through the use of canonical formats and a uniform way of defining them (XML) we create the basis for enabling common semantics within a business.This is crucial for successful EAI.
2. Using open source and ESB for EAI infrastructure.The use of open source have several benefits beside the obvious of no licensing costs.We have also found that an ESB-centric approach to EAI provides several of the needed characteristics for creating maintainable EAI.
3. Using enterprise integration patterns.In all studied EAI projects a common denominator is the use of Enterprise Integration patterns.This is even observable in the inner workings of several open source based ESB solutions where several enterprise integration patterns are included as major parts of the ESB basic functionality.
4. Establishing ICCs, an ICC provides the benefits of increased quality through controlled processes and standardized tooling operated by competent and experienced staff using best practices.We also notice cost savings through reusability, faster development and easier maintenance.