• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
JDC2008 - Enterprise Integration and Service Oriented Design
 

JDC2008 - Enterprise Integration and Service Oriented Design

on

  • 2,585 views

 

Statistics

Views

Total Views
2,585
Views on SlideShare
2,031
Embed Views
554

Actions

Likes
3
Downloads
107
Comments
0

5 Embeds 554

http://thinkmeta.wordpress.com 531
http://thinkmeta.org 15
http://www.linkedin.com 5
url_unknown 2
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    JDC2008 - Enterprise Integration and Service Oriented Design JDC2008 - Enterprise Integration and Service Oriented Design Presentation Transcript

    • Enterprise Integration and Service-Oriented Design
      Hossam Karim
    • Agenda
      The Enterprise Integration Problem
      Enterprise Integration Principles, Styles and Messaging Concepts
      Service-Oriented Design Approach
      Frameworks and Implementations
      References
      Conclusion
    • The Enterprise Integration Problem
      Enterprise integration requires a significant shift in corporate politics
      Integration efforts typically have far-reaching implications on the business
      The lack of widely implemented standards addressing core integration problems
      The concept and technology learning curve
    • Enterprise Integration Principles
      Integration is connecting computer systems, companies or people
      Enterprise integration is the task of making disparate applications work together to produce a unified set of functionality
    • Integration Types
      Information Portals
      Data Replication
      Shared Business Function
      Service-Oriented Architecture
      Distributed Business Process
      Business to Business Integration
    • Enterprise Integration TypesInformation Portals
      Portal
      Resource A
      Resource B
      Resource C
      Basic data aggregation
      Single source of information
    • Enterprise Integration TypesData Replication
      Application B
      Application A
      Data Access
      Data Access
      Data Store A
      Data Store B
      Data moves on the database tier
      Consistency is dependent on the DBMS implementation
    • Enterprise Integration TypesShared Business Function
      Application A
      Application B
      Logic A
      Logic B
      Shared Function
      Moves the control to the shared function logic
      Tightly couples all clients to the application interfaces
    • Enterprise Integration TypesService-Oriented Architecture
      Application
      Application Service
      Service A
      Service B
      Service C
      Service D
      Connects distributed applications and exposes services through a standard contract
      Complex to design and implement
    • Enterprise Integration TypesDistributed Business Process
      Business Process
      Function A
      Function B
      Function C
      Single point of invocation
      Requires other integration solutions to function
    • Enterprise Integration TypesBusiness-To-Business Integration
      Function A
      Function B
      Higher level of integration
      Still requires an integration solution
    • Enterprise Integration Styles
      File Transfer
      Shared Database
      Remote Procedure Invocation
      Messaging
    • Enterprise Integration StylesFile Transfer
      Application A
      Application B
      Shared Data
      Export
      Import
      Simplest form of integration
      Lacks timeliness and scalability
    • Enterprise Integration StylesShared Database
      Application A
      Application B
      Application C
      Data Access
      Data Access
      Data Access
      Data Store
      Promotes consistency
      Lacks portability and scalability
    • Enterprise Integration StylesRemote Procedure Invocation
      Function Call
      Application A
      Application B
      Stub
      Skeleton
      Reply
      Provides more than data sharing
      Tightly couples integrated parties
    • Enterprise Integration StylesMessaging
      Application A
      Application A
      Application A
      Event Layer
      Message Bus
      Transfer packets of data immediately, reliably, and asynchronously, using customizable formats.
    • Tightly Coupled Interfaces
      Requires minimum n(n-1)/2 interfaces, where n is the number of integrated applications
    • Loosely Coupled Interfaces
      Requires exactly n interfaces, where n is the number of integrated applications
    • Enterprise Integration Using Messaging
      Construction
      Channels
      Endpoints
      Routing
      Transformation
      Management
      Messaging Models
      Transactions
    • Message Construction
      Message
      Receiver
      Sender
      A message is a formatted unit of data
      A message consists of a header, properties and a body
      A sender marshals the data to construct the message
      A receiver un-marshals the data into its own data model
    • Message ConstructionExample: Spring Integration
      Generic message body type
      Correlation ID
      Header support
      Pure Java object as a message body
      Simplest form of a modeled message
      Uses generics to specialize message body type
      No marshaling or un-marshaling needed
    • Message ConstructionExample: Java Business Integration
      Attachments support
      XML body
      Merged Properties and
      Header support
      Security support
      Body is XML based
      Supports attachments and security subject
    • Message ConstructionExample: Apache Camel
      Correlation ID
      What is this?
      Header support
      Pure POJO body
    • Message ConstructionMessage Exchange Patterns
      Exchange Patterns
      WSDL 2.0 based message exchange patterns
    • Message ConstructionMessage Exchange
      This exchange pattern
      Actual Message
      Messages are encapsulated into a message exchange
      The pattern identifies what is encapsulated
    • Message ConstructionMessage Exchange, JBI Example
    • Messaging Channels
      Message
      Channel
      Sender
      Application
      Receiver
      Application
      A channel is a gateway for transmitting messages from a sender to a receiver
      Sender and receiver do not know about each other
      Can be referred to as a pipe
    • Message ChannelExample: Spring Integration
      Pure POJO model
    • Message ChannelExample: Java Business Integration
      Factory method pattern, creates message exchange factories
      Supports synchronous and asynchronous exchanges
    • Messaging Endpoints
      Data
      Data
      Endpoint
      Endpoint
      Channel
      Message
      Sender
      Application
      Receiver
      Application
      An endpoint is a client of a messaging application that is capable of sending and receiving messages
      The Message Endpoint encapsulates the messaging system from the rest of the application and customizes a general messaging API for a specific application and task
    • Message EndpointExample: Spring Integration
    • Message EndpointExample: Spring Integration
    • Message Processing Problem
      Exhausted at (n - y) messages
      Exhausted at (n - x)
      messages
      (n) messages
      Data
      Endpoint
      Channel
      Receiver
      Application
      Client sends (n) messages
      Channel’s capacity is (n-x) messages
      Receiver application exhausted at (n-y) messages
    • Message Processing ProblemSEDA: Staged Event-Driven Architecture
      The Event Queue accepts incoming events
      The Event Handler handles incoming events
      The Thread Pool provides threading capabilities to the event handler
      The Controller adjusts resources allocation and scheduling dynamically
      Event Handler
      Event Queue
      Thread Pool
      Controller
      SEDA Stage
    • Message Processing ProblemSEDA: Staged Event-Driven Architecture
      Outgoing
      Messages
      Stage A
      Incoming
      Messages
      Outgoing
      Messages
      Stage B
      Receiver
      Stage
      Outgoing
      Messages
      Stage C
    • Message Routing
      Receiver
      A
      Output
      Channel
      A
      Receiver
      B
      Input
      Channel
      Message
      Message
      Router
      Output
      Channel
      B
      A Message Router consumes a Message from one Message Channel and republishes it to a different Message Channel, depending on a set of conditions
    • Message RouterExample: Spring Integration
    • Message Transformation
      Incoming
      Message
      Translated
      Message
      Translator
      A Message Translator is a filter that translates one data format to another
    • Message FlowExample: The VETRO Pattern
      All numbers and kinds of filters can be applied to a message before processing
    • System Management
      Message Flow
      Processor A
      Processor B
      Processor C
      Message X
      Message X’
      Configuration
      Heartbeat
      Test Messages
      Control Bus
      Exceptions
      Statistics
      Live Console
      The Control Bus uses the same messaging mechanism used by the application data but uses separate channels to transmit data that is relevant to the management of components involved in the message flow
    • Messaging Models
      Publish/Subscribe Model
      Point-to-Point Model
    • Store and Forward Messaging
      • Guaranteed once and only once message delivery
      • Transparent to the messaging clients
    • Transactional MessagingLocal Transactions
      Producer sends one or more messages in a transactional context
      Producer commits the transaction
      Consumer receives all messages
      Consumer commits the transaction
    • Transactional MessagingDistributed Transactions
      Producer sends one or more messages in the transaction manager context
      Producer updates another resource
      Producer commits the transaction
    • Messaging Protocol Stack
      Payload
      Protocol
      Messaging
      Protocol
      Transport
      Protocol
      Networking
      Protocol
      Clients expect simple and widely used protocols
      Legacy applications communicate in proprietary protocols
      Firewalls require tunneling through opened ports
    • Service Meta-Model
    • Service Component Model
      Exposed Interface
      Protocol Specific
      Endpoint
      Encapsulating
      Component
      Service
      Implementation
    • Service Component Clients
      Protocol
      Dependent
      Client
      Interface Binding
    • Service-Oriented Design Approach
    • Service-Oriented Design ApproachExample: Java Business Integration
      Common
      Logic
      Expose
      Services
      Message Bus
      Activate
      Endpoints
    • Service-Oriented Design Approach Example: Java Business Integration
      JBI runtime is based on the router messaging pattern
      All messages moving through the router are in XML format
      Components are installable artifacts
      Binding components make services available to JBI runtime clients using a service contract and through a protocol
      Service engines perform the actual service logic
      Service units activate service endpoints
    • Service-Oriented Design Approach Example: Java Business Integration
      Services are exposed on arbitrary supported protocols
      Messages are normalized and delivered to their channels
      Messages are routed through the normalized message router to the target service engine
      The service engine performs its task and replies to the component if appropriate
    • Frameworks and Implementations
      Spring Integrationhttp://www.springframework.org/spring-integration/
      Apache ServiceMixhttp://servicemix.apache.org/
      Apache Camelhttp://activemq.apache.org/camel/
      Sun OpenESBhttps://open-esb.dev.java.net/
      Mulehttp://mule.mulesource.org/
    • References
      Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions - Gregor Hohpe, Bobby Woolf
      Enterprise Service Bus – Dave Chappell
      SOA: Principles of Service Design - Thomas Erl
      SEDA: An Architecture for Well Conditioned, Scalable Internet Services - Matt Welsh, David Culler, and Eric Brewer
      Java™ Business Integration (JBI) 1.0 – JSR 208 Specification - Ron Ten-Hove, Peter Walker
      Thanks to Dave Chappell for granting permission to use hisdiagramming notation in this presentation
    • Conclusion
      Don’t reinvent the wheel
      Keep close to the standards
      Spend time understanding and evaluating your infrastructure
      Not all frameworks and design solutions are suitable for each environment
      Design to scale, but don’t over design
      Explore integration solutions and frameworks
      Practice service-oriented design and implementation