EMEA 2 Enterprise Integration Erik Doernenburg ThoughtWorks, Inc.

Slides:



Advertisements
Similar presentations
Chapter 19 – Service-oriented Architecture
Advertisements

Chapter 10: Execution Models Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Service Oriented Architecture Terry Woods Session 50.
A Successful RHIO Implementation
© The Middleware Company SOA Blueprints Learning Best Practices and Sample Applications for SOA Steve Wilkes Senior Middleware Maven 7 THE MIDDLEWARE COMPANY.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Workflow utilization in composition of complex applications based.
Service Oriented Architecture Concepts March 27, 2006 Chris Armstrong
1 Introduction to SOA. 2 The Service-Oriented Enterprise eXtensible Markup Language (XML) Web services XML-based technologies for messaging, service description,
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
JMS Java Message Service Instructor Professor: Charles Tappert By Student: Amr Fouda.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Page 1Prepared by Sapient for MITVersion 0.1 – August – September 2004 This document represents a snapshot of an evolving set of documents. For information.
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
Enterprise Integration Patterns 1.SOA and Patterns 2.Messaging 3.Using the EIP language to design message flows.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
Messaging Technologies Group: Yuzhou Xia Yi Tan Jianxiao Zhai.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
SOA, BPM, BPEL, jBPM.
Spring Integration - basics Martin Toshev, Diyan Yordanov Cisco Systems.
C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.
Design Patterns Trends and Case Study John Hurst June 2005.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Web Services Architecture1 - Deepti Agarwal. Web Services Architecture2 The Definition.. A Web service is a software system identified by a URI, whose.
Java Message Service - What and Why? Bill Kelly, Silvano Maffeis SoftWired AG, Zürich
What is Service Oriented Architecture ? CS409 Application Services Even Semester 2007.
DEVS Namespace for Interoperable DEVS/SOA
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
Messaging & Web Services an Architectural View John Arnett, MSc Standards Modeller Information and Statistics Division NHSScotland Tel: (x2073)
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Lecture 15 Introduction to Web Services Web Service Applications.
Web Services Description Language CS409 Application Services Even Semester 2007.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
(Business) Process Centric Exchanges
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: JMS.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
Random Logic l Forum.NET l Web Services Enhancements for Microsoft.NET (WSE) Forum.NET ● October 4th, 2006.
Message Oriented Communication Prepared by Himaja Achutha Instructor: Dr. Yanqing Zhang Georgia State University.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
Enterprise Computing: Web Services
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Enterprise Integration Patterns CS3300 Fall 2015.
BEA Confidential. | 1 Web of Services for Enterprise Computing David Orchard BEA Systems.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Service Oriented Architecture + SOAP -Robin John.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
EBIZ302 Jupiter Business Process Automation and Web Services David Fong Program Manager.
Integration Patterns in BizTalk Server 2004 Integration Patterns Explained What are integration patterns? What patterns does BizTalk Server 2004 provide.
Overview of SOA and the role of ESB/OSB
INFSO-RI Enabling Grids for E-sciencE Web Services Mike Mineter National e-Science Centre, Edinburgh.
Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB.
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
SOA Blueprints Learning Best Practices and Sample Applications for SOA Miko Matsumura.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Business Process Execution Language (BPEL) Pınar Tekin.
Sabri Kızanlık Ural Emekçi
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering 1
Elements of Service-Oriented Architecture
Service Oriented Architecture + SOAP
Distributed Systems through Web Services
Enterprise Integration
Presentation transcript:

EMEA 2 Enterprise Integration Erik Doernenburg ThoughtWorks, Inc.

EMEA © Copyright ThoughtWorks, Inc.® Agenda  Challenges in enterprise application development  Design patterns  Enterprise Integration patterns  Interop technologies  Conclusion & Resources

EMEA © Copyright ThoughtWorks, Inc.® The challenge  Enterprises depend on a growing number of IT systems  The systems must provide an integrated solution for the enterprise  The systems must interoperate with each other  Architectural trends and “waves” of technologies  Changing business needs and requirements

EMEA © Copyright ThoughtWorks, Inc.® Existing Systems New System Finance Operator Application  Workflow items are stored on Tibco RV/CM queue  Tibco Integration Manager  organises workflow  handles imports from document recognition  handles interaction with existing ERP systems  Reference data imported using linked servers fax/telex maildocument recognition app web ERP ref. data

EMEA © Copyright ThoughtWorks, Inc.® New application Existing Portfolio Management Tool  Front-end uses Office 2003 code-behind technology  communicates with server using WebSphere MQ queues  Message format defined with XSD schema  Application uses existing services  accesses analytics library with COM bridge  accesses stored deals through deal manager service  accesses service bus through messaging abstraction library analytics library Existing deal manager Existing messaging library technology adaptor Excel front-end application logic

EMEA 7 Design Patterns

EMEA © Copyright ThoughtWorks, Inc.® Why design patterns?  Code reuse remains difficult but…  Knowledge reuse can be very valuable  Patterns encapsulate knowledge of successful designs

EMEA © Copyright ThoughtWorks, Inc.® Using technology successfully  Syntax  Basic language mechanism  A necessity but not a guarantee  Constructs  Classes, Interfaces, Inheritance, Polymorphism, etc.  Helpful but not sufficient for good design  Principles  Separation of concerns, Dependency Injection, etc.  Steer us towards a better solution  Patterns  Model-View-Controller, Observer, Decorator  Concrete design guidance

EMEA © Copyright ThoughtWorks, Inc.® Patterns  “Mind sized” chunk of information (Ward Cunningham)  Shows a good solution to a common problem within a specific context  Observed from actual experience  Has a distinct name  Not copy-paste  ThoughtWorks collaborates with Microsoft to document design patterns for the.NET platform

EMEA 11 Designing with Enterprise Integration Patterns

EMEA © Copyright ThoughtWorks, Inc.® Enterprise Integration Patterns  Gregor Hohpe defined a visual pattern language describing message-based enterprise integration solutions  Pattern language comprises 65 patterns in 6 categories Application A B Message Channel RouterTranslator Endpoint Monitoring Messaging Endpoints Messaging Channels Message Construction Message Routing Message Transformation System Management

EMEA 13 Request/Response patterns

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Request-Response  Service Consumer and Provider (similar to RPC)  Channels are unidirectional  Two asynchronous point-to-point channels  Separate request and response messages Request Channel Response Request Reply Channel ProviderConsumer

EMEA © Copyright ThoughtWorks, Inc.® Multiple consumers  Each consumer has its own reply queue  But how does the provider send the response?  Could send to all consumers (very inefficient)  Hard code (violates principle of context-free service) Responses Requests ? ? Request Channel Reply Channel 1 Reply Channel 2 Provider Consumer 1 Consumer 2

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Return Address  Consumer specifies Return Address (the reply channel) in the request message  Service provider sends response message to specified channel Responses Reply Channel 1 Reply Channel 2 Request Channel Reply Channel 1 Reply Channel 2 Provider Consumer 1 Consumer 2

EMEA © Copyright ThoughtWorks, Inc.® Load-balanced service providers  Request message can be handled by multiple providers  Point-to-point channel supports competing services  Only one service receives each request message  But what if the response messages are out of order? Request Channel Reply Channel Provider 1 Provider 2 Consumer

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Correlation Identifier  Consumer assigns a unique identifier to each message  Identifier can be an arbitrary ID, a GUID, a business key  Provider copies the ID to the response message  Consumer can match request and response Message Identifier Correlation Identifier Request Channel Reply Channel Provider 1 Provider 2 Consumer

EMEA 19 An order processing system

EMEA © Copyright ThoughtWorks, Inc.® Multiple specialised providers  Each provider can only handle a specific type of message  Route the request to the "appropriate" provider. But how?  Do not want to burden sender with decision  Letting providers "pick out" messages requires coordination Order Entry Order Entry Widget Inv. ? ? Order Messages Gadget Inv.

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Content-Based Router  Insert a content-based router  Routers forward incoming messages to different channels  Message content not changed  Mostly stateless, but can be stateful, e.g. de-duper Order Entry Order Entry Widget Inv. Order Messages Gadget Inv. Content Based Router

EMEA © Copyright ThoughtWorks, Inc.® Composite messages  How can we process a message that contains multiple elements? Order Entry Order Entry ? ? Order Message Widget Inv. Gadget Inv.

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Splitter & Router  Use a splitter to break out the composite message into a series of individual messages  Then use a router to route the individual messages as before  Note that two patterns are composed Widget Inv. Gadget Inv. Order Entry Order Entry RouterSplitter Order Message Order Items Order Item 1 Order Item 2

EMEA © Copyright ThoughtWorks, Inc.® Producing a single response  How to combine the results of individual but related messages?  Messages can be out-of-order, delayed  Multiple conversations can be intermixed Widget Inv. Gadget Inv. Billing Order Item 1 Response 1 Order Item 2 Response 2 Confirmed Order ? ?

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Aggregator  Use a stateful filter, an Aggregator  Collects and stores messages until a complete set has been received (completeness condition)  Publishes a single message created from the individual messages (aggregation algorithm) Widget Inv. Gadget Inv. Billing Aggregator Order Item 1 Response 1 Order Item 2 Response 2 Confirmed Order

EMEA © Copyright ThoughtWorks, Inc.® Communicating with multiple parties  How to send a message to a dynamic set of recipients?  And return a single response message? Request For Quote Vendor A Vendor B Quotes Aggregator Best Quote Vendor C ? ?

EMEA © Copyright ThoughtWorks, Inc.® Pattern: Scatter-Gather  Send message to a pub-sub channel  Interested recipients subscribe to a "topic"  Aggregator collects individual response messages  may not wait for all quotes, only returns one quote Request For Quote Vendor A Vendor B Quotes Aggregator Best Quote Vendor C Pub-Sub channel

EMEA © Copyright ThoughtWorks, Inc.® Complex composition  Receive an order message  Use splitter to create one message per item  Send to scatter/gather which returns "best quote" message  Aggregate to create quoted order message Quote request for each item Vendor A Vendor B Quotes Aggregator Best Quote for each item Vendor C Aggregator Splitter Pub-Sub channel

EMEA 29 Interop technologies

EMEA © Copyright ThoughtWorks, Inc.®  Resource based  RPC style / distributed objects  Message based / document-oriented Major interop technologies DBfiles RMI-IIOP (CORBA) MOM in-process bridge WS-* WS Remoting (DCOM) WS

EMEA © Copyright ThoughtWorks, Inc.® Interop technology characteristics point-to-point transient messages durable message server lifetime- management bridge Remoting (DCOM) RMI-IIOP (CORBA) WSMOMDB/files routable WS-* clustering in-proc.NET server J2EE server platform neutral WSMOMWS-*

EMEA © Copyright ThoughtWorks, Inc.® Messaging  Channels are separate from applications  Removes location dependencies  Channels are asynchronous & reliable  Removes temporal dependencies  Data is exchanged in self-contained messages  Removes data format dependencies  Loosely coupled integration enables independent variation

EMEA © Copyright ThoughtWorks, Inc.® Why Web Services?  Web services provide all benefits of messaging solution  loose-coupling  service oriented  reliable communication  Why web services?  composable protocol  vendor neutral  suitable for access through Internet

EMEA © Copyright ThoughtWorks, Inc.® Web Services development  Web Services are expected to become the default Messaging solution in the future  WS-* standards are evolving rapidly, most important  WS-Security  WS-Policy  WS-Addressing  WS-I defines profiles, sample applications and testing tools  Profiles are guidelines for using WS specifications  Use Basic profile 1.1 to build interoperable solutions  Further research on WS is being carried out

EMEA 35 Conclusion

© Copyright ThoughtWorks, Inc.® Conclusion  Enterprise systems are becoming more complex  We have patterns to help us with the design  We have technologies to implement our designs  Building for interoperability and integration is key

EMEA © Copyright ThoughtWorks, Inc.® Enterprise Solution Patterns using Microsoft.NET using Microsoft.NET Microsoft Patterns & Practices 2003 Recommended books Patterns of Enterprise Application Architecture Patterns of Enterprise Application Architecture Martin Fowler Addison-Wesley, 2003 Enterprise Integration Patterns Enterprise Integration Patterns Gregor Hohpe, Bobby Woolf Addison-Wesley, 2004 Integration Patterns Microsoft Patterns & Practices 2004 Enterprise SOA Enterprise SOA Dirk Krafzig, Karl Banke, Dirk Slama Prentice Hall, 2004

Please complete your session feedback form THANK YOU