CAS Software Architecture and Reverse Engineering, 2006 EAI Architecture Elements of Style by Magdin Stoica McMaster University March 28, 2006
CAS Software Architecture and Reverse Engineering, Outline What is Enterprise Application Integration (EAI)? Why do we need EAI? What are the elements of an EAI solution? What is the architecture of an EAI solution? Are there different ways to architect an EAI solution? Why do we need architecture styles? Defining an EAI architecture style How do we represent EAI architectures? How should we represent EAI architectures?
CAS Software Architecture and Reverse Engineering, EAI Explained Enterprise automation islands Data and the EAI journey from liability to asset Confidence Availability Control Visibility Analytical support Scalability Connected enterprises and business to business integration (B2Bi)
CAS Software Architecture and Reverse Engineering, EAI Solution – A layered approach Data Integration Business Process Automation Presentation Services Data availability Confidence Control Visibility Analytical support Scalability
CAS Software Architecture and Reverse Engineering, EAI Software Architectures Point-to-Point Message Bus Hub and Spoke Database Hub ERP Hub Message Broker Process Broker Hybrid Architectures: Hub & Spoke with Message Bus Service Oriented EAI architecture
CAS Software Architecture and Reverse Engineering, Point-to-Point Architecture Payroll CRM Accounting Inventory Management Web Portal Payroll 1 connection3 connections6 connections10 connections Inventory Management CRM
CAS Software Architecture and Reverse Engineering, Message Bus Architecture Payroll CRM Accounting Inventory Management Web Portal Publish & Subscribe
CAS Software Architecture and Reverse Engineering, Hub & Spoke Architecture Payroll CRM Accounting Inventory Management Web Portal HUB
CAS Software Architecture and Reverse Engineering, Hub & Spoke Architecture – Database Hub Payroll CRM Accounting Inventory Management Web Portal Database
CAS Software Architecture and Reverse Engineering, Hub & Spoke Architecture – ERP Hub Payroll CRM Accounting Inventory Management Web Portal ERP
CAS Software Architecture and Reverse Engineering, Hub & Spoke Architecture – Message Broker Payroll CRM Accounting Inventory Management Web Portal Message Broker
CAS Software Architecture and Reverse Engineering, Hub & Spoke Architecture – Process Broker Payroll CRM Accounting Inventory Management Web Portal Process Broker
CAS Software Architecture and Reverse Engineering, An Inside Look at HUB
CAS Software Architecture and Reverse Engineering, Hybrid Architecture – Hub with Message Bus HUB Payroll CRM Accounting Inventory Management Web Portal
CAS Software Architecture and Reverse Engineering, EAI Architecture Style EAI architecture styles are hierarchical Components End Point: Database End Point, Application End Point, Web End Point HUB: Message Broker, Process Broker, ERP, Database Document Transaction Monitor Connectors Call (Push) Poll (Pull) Notification (Indirect Call) Message Queue Message Bus Constraints End-Points can only be connected with the hub (Hub & Spoke) End-Points can only be connected with the message bus (Message Bus)
CAS Software Architecture and Reverse Engineering, Documenting EAI Architecture Styles Documenting through UML OMG standardized UML4EAI metamodel and the EAI UML profile Regular UML tools can be used for designing EAI solutions Does not support the notion of architecture styles Does not support all components and connectors Basic support for hierarchical styles An enhanced MOF metamodel for EAI architecture styles An enhanced UML profile for EAI architecture styles Documenting through ACME Strong support for architecture styles and system families Lack of tools and industry support No specific EAI architecture styles defined Define EAI architecture style in ACME
CAS Software Architecture and Reverse Engineering, Summary EAI architectures are mature and exhibit clear elements of style EAI architecture styles make for a great case in hierarchical architecture styles EAI architecture styles are not formally defined EAI architectures can be described through UML tools using UML4EAI or… …in ADLs once EAI architecture styles are defined in ACME
CAS Software Architecture and Reverse Engineering, REFERENCES 1. Devin Spackman, Mark Speaker, Enterprise Integration Solutions, Microsoft Press, ISBN: David S. Frankel, Model Driven Architecture: Applying MDA to Enterprise Computing, Wiley Publishing Inc., ISBN: S. Radhakrishnan, Integrating Enterprise Applications Backgrounder, /developer/asmo-na/eng/ htmhttp:// /developer/asmo-na/eng/ htm 4. Paul Johannesson, Erik Perjons, Design Principles for Process Modelling in Enterprise Application Integration, Information Systems 26 (2001) , Elsevier Science Ltd. 5. Wolfgang Emmerich, Ernst Ellmer, Henry Fieglein, TIGRA – An Architectural Style for Enterprise Application Integration, Proceedings of the 23rd International Conference on Software Engineering, July Francisca Losavio, Dinarle Ortega, Maria Pérez: Comparison of EAI Frameworks, Journal of Object Technology, vol. 4, no. 4, May-June 2005, pp issue_2005_05/article1http:// 7. Microsoft, MSDN, Patterns and Practices, Integration Topologies, url=/library /en- us/dnpag/html/implmessagebroker.asp url
CAS Software Architecture and Reverse Engineering, REFERENCES 8. OMG Group, UML Profile and Interchange Models for Enterprise Application Integration (EAI) Specification, March 2004, OMG Group, Flow Composition Model Specification, February 2004, bin/doc?formal/ bin/doc?formal/ David Garlan, Mary Shaw, An Introduction to Software Architecture, CMU Software Engineering Institute Technical Report CMU/SEI-94-TR-21, ESC-TR David Garlan, Robert T. Monroe, David Wile, Acme: Architectural Descriptions of Component- Based Systems, Foundations of component-based systems, 2000, Cambridge University Press, pp