Choosing an application integration strategy Anko Duizer Class-A
description
Transcript of Choosing an application integration strategy Anko Duizer Class-A
![Page 1: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/1.jpg)
Choosing an applicationintegration strategy
Anko DuizerClass-A
![Page 2: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/2.jpg)
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
![Page 3: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/3.jpg)
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
![Page 4: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/4.jpg)
Those who can not remember the past are condemned to repeat it!
![Page 5: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/5.jpg)
The current situation
FB
E
A
D
C
![Page 6: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/6.jpg)
What?
• Connecting– Computer systems– Companies– People
Application integration is the secure and orchestrated sharing of processes and/ or
data between applications
![Page 7: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/7.jpg)
Integration scenarios
• Information portals
• Data replication
• Shared business functions
• Service-oriented architectures
• Distributed business processes
• Business-to-business integration
![Page 8: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/8.jpg)
Basic challenges
• Networks are unreliable
• Networks are slow
• Any two applications are different
• Change is inevitable
• Organizational problems
![Page 9: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/9.jpg)
Integration approaches
• Simple association
• Central hub
• The big database approach
• Message bus
• Service integration
• Hybrid
![Page 10: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/10.jpg)
Simple association
UI
BO
BO
Data
Application
UI
BO
BO
Data
Application
Endpoint Endpoint
![Page 11: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/11.jpg)
Central hub
UI
BO
BO
Data
Application
UI
BO
BO
Data
Application
Endpoint Endpoint
ERP System
![Page 12: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/12.jpg)
The big database approach
UI
BO
BO
Data
Application
UI
BO
BO
Application
![Page 13: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/13.jpg)
Message bus
UI
BO
BO
Data
Application
UI
BO
BO
Data
Application
Endpoint Endpoint
Message bus
![Page 14: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/14.jpg)
Service integration (1)
UI
BO
BO
Data
Application
UI
BO
BO
Data
Application
Endpoint Endpoint
Service
![Page 15: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/15.jpg)
Service integration (2)
Application
Endpoint
Service
Service Service Service
Endpoint
Application
Endpoint
Application
Endpoint
Application
![Page 16: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/16.jpg)
Microsoft technology
• BizTalk Server 2004
• Web Services
• MSMQ
• DTS
• Indigo (not available yet)
• SQL Service Broker (not available yet)
![Page 17: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/17.jpg)
BizTalk Server 2004
actionorchestrationdesigner
biztalk editor
biztalkmapper
messagingmanagement
development operation management
administration
tracking
messaging services
orchestration services
config
tracking
port
pipelinedesigner
applications
monitoring
Businessrules
![Page 18: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/18.jpg)
Web Services
Host
Component
Client
Application
Host
Page
Browser
XML over HTTP
HTTP request
.NETCOMEJBPerl…
listenerproxy
proxy
Internet
![Page 19: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/19.jpg)
MSMQ
Queue
msgmsgmsgmsg
Sender Receiver
![Page 20: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/20.jpg)
DTS
OLE DB ODBCFixed fieldASCII delimited
Source
OLE DB ODBCFixed fieldASCII delimitedRepl. publication
Destination
DTS Data Pump
In Out
ActiveX ScriptCopyTrim String…Custom
Transforms
![Page 21: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/21.jpg)
Indigo
Port
Service
Service
Message
Channel
Channel
Service
ServiceChannel
![Page 22: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/22.jpg)
SQL service brokerSQL Server object DescriptionMessage 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
msgmsgmsgmsg
Service
Contract Serviceprogram
Queue
Message type
![Page 23: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/23.jpg)
Messaging
• Loosely coupled
• Communicating asynchronously
• Reliable
• Makes the messaging responsible for transferring data from one application to another
![Page 24: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/24.jpg)
Sync or async?
time
Process A
Process B
blocked
time
Process A
Process B
![Page 25: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/25.jpg)
Basic messaging concepts
ApplicationApplication Channel
Endpoint
Endpoint
Message Translation
Routing
![Page 26: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/26.jpg)
Messaging patternsY
X
Y
X
1)
• Fire and Forget
• No Response required
2)
• Request / Reply
• System makes request
and gets response
3)
• Needs ability to cache response from multiple requests to respond to one message
Y
XEAIEAI
EAI
B
X
4A/B)
• Multiple Applications needed to satisfy request
• 4A: XREF Look-up
• 4B: XREF Update
A C
XREF
EAI
A
X
5)
• Publish Subscribe
• A, B and C subscribe to message
B
CEAI
6A)
• Needs data from Z to be
able to update Y
Y
X EAI
Z
![Page 27: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/27.jpg)
The message is the message!
![Page 28: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/28.jpg)
Main design considerations
• Timing/ Latency
• Identification– Industry keys, Internal keys, Chained keys &
Matching algorithms
• Sharing entities, activities, processes and utilities
• Designing endpoints
• Message transformation
![Page 29: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/29.jpg)
Main design considerations
• Routing
• Security
• System management
• ACID Transactions
• Service-oriented architectures
![Page 30: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/30.jpg)
Shared data ownership
E-Commerce
Inventory
E-Commerce
![Page 31: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/31.jpg)
Choosing
![Page 32: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/32.jpg)
To EAI or to ETL?Data (ETL)
Data Transformation Services
Messages (EAI)
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
![Page 33: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/33.jpg)
Evaluation criteriaCriterion 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 Degree of change to existing applications in order to effect transfer
Effort Effort required to build and maintain the solution
Organization Which solution fits best with the organization?
![Page 34: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/34.jpg)
The Ring(s)
1. Application
2. Enterprise
3. Collaborative partners
4. Everybody else
![Page 35: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/35.jpg)
The Matrix
BizTalk SSB Indigo MSMQ DTS
Latency Near real time
Near real time
Real time Near real 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
![Page 36: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/36.jpg)
The Matrix - ReloadedIndigo MSMQ SSB
Environment Any WS-* compliant
Windows SQL Server 2005 (both)
Application Any distributed application
Asynchronous Database application
Message store
In-memory or database
NT File system
SQL Server 2005
Type of message
Persistent & Non-peristent
Reliable, Express, Transaction
Transactional only
Protocol Various Various TCP only
![Page 37: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/37.jpg)
The Matrix - Revolutions
Ring 0 1 2 3Communication Synchronous Asynchronous Asynchronous
Focus Performance Security
Integration
Security
Integration
Firewall
Indigo Yes Maybe No
BizTalk Server No Yes Yes
WS-* Maybe Yes Yes
MSMQ No Yes No
SSB Yes No No
![Page 38: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/38.jpg)
Conclusions
• Integration is hard!
• Integration requires good thinking!
• Different technologies available, use them smartly!
• Start thinking asynchronously and message based!
![Page 39: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/39.jpg)
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
![Page 40: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/40.jpg)
Questions ?
![Page 41: Choosing an application integration strategy Anko Duizer Class-A](https://reader036.fdocuments.us/reader036/viewer/2022070404/56813c71550346895da605ba/html5/thumbnails/41.jpg)
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!