Upload
raul-aguilar
View
219
Download
3
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