5
1 Towards Real-time Integration: Best Practices, Patterns and Case Studies 2 ESB - The VETO Pattern Validate Requires a validating parser and up-to-date schema e.g. well-formed XML document conforming to a particular schema or WSDL message Scripting may be useful Enrich Add additional data to a message making it more meaningful and useful to a target service Transform Converting the data structure to or from a canonical format Considering also conversions, like the typical date/time, units of measure, currency, … Operate Invokes the target service or interacts with the target app Can ensure that consistent, validated data will be routed throughout the ESB It provides the overall value and flexibility to the integration 3 ESB - The VETO Pattern The stages of the VETO pattern can be implemented as separate services that can be configures, reused and replaced 4 ESB - The VETRO Pattern Includes the Routing step into the VETO pattern 8 Data Forwarding Pattern Remote apps create change notifications routing them to the cache Proactive caching Use persistent messages on pub/sub with durable subscriptions This is configured in the ESB An ESB can reliably forward change notifications to the cache The cache service can be implemented using the XML storage service Used for caching and aggregating 9 Data Forwarding Pattern

6-1-CaseStudies

Embed Size (px)

DESCRIPTION

Red HAT 6.1

Citation preview

  • 1Towards Real-time Integration:Best Practices, Patterns and Case Studies

    2

    ESB - The VETO Pattern Validate

    Requires a validating parser and up-to-date schema e.g. well-formed XML document conforming to a particular schema

    or WSDL message Scripting may be useful

    Enrich Add additional data to a message making it more meaningful and

    useful to a target service Transform

    Converting the data structure to or from a canonical format Considering also conversions, like the typical date/time, units of

    measure, currency, Operate

    Invokes the target service or interacts with the target app Can ensure that consistent, validated data will be routed

    throughout the ESB It provides the overall value and flexibility to the integration

    3

    ESB - The VETO Pattern

    The stages of the VETO pattern can be implemented as separate services that can be configures, reused and replaced

    4

    ESB - The VETRO Pattern

    Includes the Routing step into the VETO pattern

    8

    Data Forwarding Pattern Remote apps create change notifications

    routing them to the cache Proactive caching Use persistent messages on pub/sub with durable

    subscriptions This is configured in the ESB

    An ESB can reliably forward change notifications to the cache

    The cache service can be implemented using the XML storage service Used for caching and aggregating

    9

    Data Forwarding Pattern

  • 210

    More Integration Patterns

    11

    Case Study: EDI

    Manufacturers are already accustomed to communicated using EDI

    Continue to provide the same EDI interface with the partners Non-disruptive approach

    12

    Case Study: EDI (a)

    VAN

    Places an X12 document onto a reliable message queue, routed to the EDI translator

    X12 to SAPsIDoctransformation service

    Non-disruptive, non-intrusive 13

    Case Study: EDI (b)

    EDI VAN eliminated

    Non-disruptive, non-intrusive

    14

    Case Study: Portal Server

    Typical Portal Server approaches do not really integrate data

    The portal provides a unified view of data that may originate from a variety of sources, e.g. databases, applications, services,

    The portal server provides the presentation logic for the users

    15

    Portal Server

  • 316

    The ESB Portal Approach The ESB can act as a reliable buffering

    mechanism between the portal app and the backend systems

    Backend apps can use a variety of connectivity choices to plug into the bus and immediately begin to participate in an event-driven SOA

    New sources of information can plug into the bus

    The ESB as the integration backbone

    17

    The ESB Portal Approach

    18

    The ESB Portal Approach Provides end-to-end asynchronous and

    reliable communications across a distributed environment

    Additional connectivity options, allowing flexible deployment of the services

    Plug in integration services when and where you need them Facilitating extraction, routing, and transformation

    as it modes across the bus Between the portal server and the backend apps

    19

    Case Study: Incremental Adoption

    Company relying exclusively on ETL for its end-to-end supply chain and logistics

    It suffers from the typical problems Reliability, downtime and latency

    The Product Master app and the Product Index DB are synchronized each night Data is gathered into the Product Master app Data is exported and redistributed to all other

    apps using ETL process Scripts and programs transform and filter the data to

    each target app

    20

    Typical ETL w/FTP integration

    21

    Why migrating from this?

    Benefits Data sharing in real-time Selective filtering of data Centralized management Secured access using ACL New Business Activity Monitoring (BAM)

    apps Able to participate of new business

    opportunities

  • 422

    Inserting the ESB data can be selectively dispatched rely on pub/sub or queues ACL enabled

    no changes have been required for apps

    First replace the FTP file transfer by an ESB Reliable transfer

    23

    Define the Integration Process

    Create specific ESB process definitions Selective control of business process

    flow across apps and services From batch-scripted transformations and

    filtering to specialized ESB transformation services

    Transformation services could be inserted to convert from its current fixed format to XML in canonical form

    24

    Define the Integration Process

    25

    Evolve the Integration Process Multiple apps can work on the same message in an ordered process flow Partial replacement of file-drop service interface

    26

    Evolve the Integration Process

    Product master interface has been moved from the DB export/import process into an app using JCA

    27

    Evolve the Integration Process Additional ESB Services are inserted

    Content-based routing Data transformation Auditing

  • 528

    Towards RT integration Wrap up

    Reuse of services Apply patterns

    ESB supports incremental integration Opens the door to new interactions Non-intrusive integration approach

    29

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure true /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles true /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /NA /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /LeaveUntagged /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice