Using an Enterprise Integration Competency Center to Drive Success with Enterprise SOA and Web Services
By Chris Rollyson, nVISIA
The Opportunity and the Challenge
In 2005, several technology developments are converging to enable global enterprises to achieve uncommon returns from their IT investments. Maturing technology and emerging standards are enabling "tightly coupled" integration to give way to n-tier, "loosely coupled" integration using Web services and service-oriented architectures (SOA). These approaches to enterprise software can lead to software that natively interoperates, diminishing the need for "integration" over time, which allows IT to support more rapid business agility and directly drives competitiveness. This article will briefly discuss the role of a competency center, and how it can facilitate the growth of enterprise-level SOA.
The challenge for IT and business leaders is to think differently about some of their software development approaches and to invest in aggressive skills development for their developers and architects. "Distributed" applications are significantly more complex than more traditional applications. The former are comprised of "components" or "services" that can be shared and reused with other applications. This sharing and reuse, when it is done properly using standards-based technologies like Web services and SOA, gets easier to do over time, as more services and components are available to share and developers get accustomed to the new software.
Enterprise Application Integration
Enterprise application integration (EAI) refers to "application-centric" software development in which applications are built to requirements that subsequently change. New requirements dictate sharing information or functionality with other (usually) similarly built applications, and this requires a separate effort to design communication links between the applications.
In 2005, most enterprise architects and developers still have an application-centric orientation. SOA and Web services lead to network-centric applications that are built to interoperate. Building these applications requires a change in mindset for software development organizations. The EAI Competency Center can bridge the transition between old and new integration approaches, which must coexist for years in most organizations. It is carefully staffed by a combination of architects, developers, analysts and consultants who mitigate risk while mentoring enterprise developers in the new technology and approach. Organizations rotate their IT professional through the EAI Competency Center to drive their skill development and hands-on experience.
The EAI Competency Center
As described in the "Roadmap for the Enterprise Rollout of Service-oriented Architecture" (see http://www.technologyexecutivesclub.com/Articles/artRoadmapforSOA.htm), most organizations begin using SOA and Web services for EAI-like activities as they learn new tools, processes and technologies during Stages I and II. The EAI Competency Center (EAICC) is often a company's central node for adopting SOA, Web services and like technologies as a strategy for enterprise application integration. nVISIA's experience with guiding enterprises in designing, developing and growing EAICCs reflects two major patterns:
· The top-down approach in which the company builds the EAICC to support a larger enterprise architecture initiative
· The bottom-up approach in which the EAICC is launched after one or two successful distributed applications that have demonstrated a significant level of reuse and agility; IT wants to repeat the success with other projects
Most enterprises have experienced staff that have worked with consultants while using software best practices (i.e. J2EE), mentoring and knowledge transfer. To launch the EAICC, the company usually staffs the center with a focused consultant team and their own resources, with explicit roles and responsibilities defined for each. In most cases, the effort should have a business champion and CIO or similar level support. In virtually every case, the key goal is to develop client software professionals' competence in using J2EE for EAI, and client architects and developers are constantly rotated through the center to transfer knowledge. Best practice is also to explicitly mentor architects in mentoring and training as well as architecture and J2EE best practices.
Typical EAI Competency Center Goals and Achievements
· Creating an organizational focus on adopting distributed computing and sharing success with relevant application teams.
· Creating common guidelines and processes to help application development teams control requirements changes and manage the expectations of their project sponsors.
· Promoting business/IT alignment by enhancing collaboration between IT and business units, which leads to better IT performance and higher sponsor satisfaction.
· Building reference applications, frameworks and components that provide immediate ROI while being designed for aggressive reuse.
· Measuring the return on investment of major software components and applications.
· Developing client professionals knowledge of the issues, tools and techniques involved in EAI solutions. Therefore, they are more aware of previously developed integration points than are members of specific application groups, and this facilitates reuse.
· Actively leveraging talented and skilled client professionals across all application areas.
· The EAICC's explicit purpose is developing high-quality, reusable integration interfaces, and success (as measured by quality, efficiency and reuse) is far more likely than when integration is left to teams whose primary goal is developing single applications.
Critical Success Factors
· Successful EAI Competency Center launches need management buy-in to the EAICC charter. Depending on budgeting models, applications may be spending more money to do things the right way with regard to integration and management support is crucial in resolving the issues that arise from this conflict.
· The EAI Team should prepare and maintain a "City Plan" showing systems and integration points. This is actually one of the more complex artifacts we have developed at major clients, and it is invaluable for putting integration points into perspective and associating them with the business processes that they enable or improve.
· A lightweight, flexible development process is critical for success. The EAI portion of application-focused projects tends to be small in terms of effort, once the EAI team has developed and deployed fundamental frameworks and tools.
· A high-value artifact of EAI teams is an explicit process that helps control requirements changes on application projects. It manages the expectations of the application development teams while not imposing much overhead.
· Standards in the Web services arena are constantly changing. A well-layered architecture on both client and server is essential in providing a point of leverage for changing implementations of common architectural mechanisms, such as those for reliability, security and transactionality.
· Defined measurements for success, both quantitative and qualitative. These are driven by the business champion and IT.
· Testing is critical. This includes both volume testing to ensure that capacity thresholds are understood and regression testing to ensure that changes to services will be backward compatible.
· A strategy for versioning Web service interfaces is critical. Existing application integrations must continue to function through future rollouts of upgraded service functionality.
As the EAICC initiative progresses, the EAICC team develops a formal charter that is recognized within the enterprise IT organization and by business units' applications groups. They establish productive working relationships with the applications groups. Enterprise integration does not live up to expectations if this collaborative relationship is not built. Together, the EAI team and the applications groups establish key processes for creating, managing and maintaining reusable software as services. They begin to develop useful models for measuring the value of reuse. Above all, perhaps, they build a robust, flexible infrastructure for creating, managing and maintaining service-oriented software