Choosing an application integration strategy Anko Duizer Class-A Overview • • • • • • • • • Why integration? What is integration? Challenges Common scenario’s Which technologies does Microsoft offer? Messaging Design considerations A different viewpoint: The Ring(s) The Matrix Why? • Enterprises are typically comprised of hundreds applications – Custom built, acquired by a third party, legacy systems • Reasons – Creating a single, big application to run a complete business is impossible – Flexibility to select “the best” – Use a collaborative partner model Those who can not remember the past are condemned to repeat it! The current situation A F B C E D What? • Connecting – Computer systems – Companies – People Application integration is the secure and orchestrated sharing of processes and/ or data between applications Integration scenarios • • • • • • Information portals Data replication Shared business functions Service-oriented architectures Distributed business processes Business-to-business integration Basic challenges • • • • • Networks are unreliable Networks are slow Any two applications are different Change is inevitable Organizational problems Integration approaches • • • • • • Simple association Central hub The big database approach Message bus Service integration Hybrid Simple association Application Application BO BO Data UI BO Endpoint Data UI BO Endpoint Central hub Application Application BO BO Data UI Data UI BO BO Endpoint Endpoint ERP System The big database approach Application Application BO BO UI UI BO BO Data Message bus Application Application BO BO Data UI Data UI BO BO Endpoint Endpoint Message bus Service integration (1) Application Application BO BO Data UI Data UI BO BO Endpoint Endpoint Service Service integration (2) Application Endpoint Service Service Service Service Endpoint Endpoint Endpoint Application Application Application Microsoft technology • • • • • • BizTalk Server 2004 Web Services MSMQ DTS Indigo (not available yet) SQL Service Broker (not available yet) BizTalk Server 2004 development operation management orchestration services orchestration designer action administration pipeline designer tracking biztalk editor tracking port messaging services monitoring biztalk mapper config Business rules messaging management applications Web Services proxy listener XML over HTTP Application Browser Component Internet Host Client Page HTTP request .NET COM EJB Perl … Host proxy MSMQ Sender Receiver msg msg msg msg Queue DTS Source Transforms Destination OLE DB ODBC Fixed field ASCII delimited ActiveX Script Copy Trim String … Custom OLE DB ODBC Fixed field ASCII delimited Repl. publication In Out DTS Data Pump Indigo Service Port Channel Service Message Channel Service Channel Service SQL service broker SQL Server object Description Message Type Defines valid messages for exchange between services Contract Specifies type of messages and their direction in a conversation, initiator or target Queue Stores messages before sending and after receipt as result set Service Program The part of a service broker application that reads messages from a queue and processes them. Service Addressable endpoint for service communication msg msg msg msg Queue Message type Contract Service Service program Messaging • • • • Loosely coupled Communicating asynchronously Reliable Makes the messaging responsible for transferring data from one application to another Sync or async? time Process A blocked Process B time Process A Process B Basic messaging concepts Endpoint Application Channel Application Endpoint Message Translation Routing Messaging patterns Y 1) 3) 2) • Request / Reply • No Response required • System makes request and gets response X EAI X Y • Needs ability to cache response from multiple requests to respond to one message Y • Fire and Forget EAI X EAI A B C Y A EAI X EAI X B C 4A/B) XREF • Multiple Applications needed to satisfy request • 4A: XREF Look-up • 4B: XREF Update X EAI 5) 6A) • Publish Subscribe • Needs data from Z to be • A, B and C subscribe to message able to update Y Z The message is the message! Main design considerations • Timing/ Latency • Identification – Industry keys, Internal keys, Chained keys & Matching algorithms • Sharing entities, activities, processes and utilities • Designing endpoints • Message transformation Main design considerations • • • • • Routing Security System management ACID Transactions Service-oriented architectures Shared data ownership E-Commerce Inventory E-Commerce Choosing To EAI or to ETL? Data (ETL) Messages (EAI) Data Transformation Services BizTalk Server 2004 Unit of modeling “Package” – an XML definition of “workflow” and data flow Schema that capture structure/ Contracts that capture behavior Unit of interaction “Synchronous” DTS pipeline for data movement Asynchronous message passing Instancing DTS Service controls instances Weak/opaque URI-based references Extensibility Scripts, SQL, custom components Intermediaries and message routing Platform Databases Multiple Evaluation criteria Criterion Description Latency How quickly is the data to be transferred? Transformation Complexity of the transformation Scope Application, organization or partner? Volume Quantity of exchange by a transfer Intrusion Effort Degree of change to existing applications in order to effect transfer Effort required to build and maintain the solution Organization Which solution fits best with the organization? The Ring(s) 1. Application 2. Enterprise 3. Collaborative partners 4. Everybody else The Matrix BizTalk SSB Near real time Near Real time Near real real time time Batch Transformation High High N/A N/A High Scope Enterprise & partners App. App. App. App. & Enterprise Volume Medium Medium Low Medium High Intrusion Medium Low High High Low Effort High Medium High Medium Medium Organization tbd tbd tbd tbd tbd Latency Indigo MSMQ DTS The Matrix - Reloaded Indigo Environment Any WS-* Application compliant Any distributed application MSMQ SSB Windows SQL Server 2005 (both) Asynchronous Database application Message store Type of message In-memory or database NT File system SQL Server 2005 Persistent & Non-peristent Transactional only Protocol Various Reliable, Express, Transaction Various TCP only The Matrix - Revolutions Ring 0 1 2 Communication Synchronous Asynchronous Asynchronous Focus Performance Security Integration Security Integration Indigo Yes Maybe No BizTalk Server No Yes Yes WS-* Maybe Yes Yes MSMQ No Yes No SSB Yes No No 3 Firewall Conclusions • Integration is hard! • Integration requires good thinking! • Different technologies available, use them smartly! • Start thinking asynchronously and message based! References • Books – Enterprise integration Patterns, Hohpe & Wools – Enterprise Integration Solutions, Spackman & Speaker • Web – http://www.class-a.nl – http://www.objectwatch.com – http://msdn.microsoft.com/architecture Questions ? The Rings(s) 1. Synchronous, .NET or J2EE? , Performance, Indigo, SSB, Web Services 2. Asynchronous, MSMQ or MQSeries?, DTS, Security, WS-* 3. Asynchronous, BizTalk Server, Security, WS-* 4. Firewalls, for the rest you don’t care!