Title: Integration Patterns in BizTalk Server 2004
1Integration Patterns in BizTalk Server 2004
- Integration Patterns Explained
- What are integration patterns?
- What patterns does BizTalk Server 2004 provide
out of the box? - Implementing integration patterns in BizTalk
Server 2004 - Pattern Implementations in BizTalk Server 2004
- Normalizer
- Publish subscribe channel
- Wire tap
- Test message
2What are Integration Patterns?
- Patterns are accepted solutions to recurring
problems within a given context. - They are abstract enough to apply to most
integration technologies, but specific enough to
provide hands-on guidance to designers and
architects. - Patterns also provide a vocabulary for developers
to efficiently describe their solution. - Gregor Hohpe
3What Integration Pattern Implementations Does
BizTalk Provide out of the Box?
- Publish-Subscribe Channel
- How can the sender broadcast an event to all
interested receivers? - The BizTalk message engine is built on a
publish-subscribe architecture - All messaging within BizTalk Server is publish
subscribe - Guaranteed Delivery
- How can the sender make sure that a message will
be delivered, even if the messaging system fails? - Messages are persisted to a SQL Server Database
(the message box database) - BizTalk can be configured to use retries and
secondary transports when sending messages
4What Integration Pattern Implementations Does
BizTalk Provide out of the Box?
- Channel Adapter
- How can you connect an application to the
messaging system so that it can send and receive
messages? - BizTalk 2004 ships with seven adapters out of the
box. - File, FTP, SQL Server, HTTP, SOAP, MSMQ/T, SMTP
5What Integration Pattern Implementations Does
BizTalk Provide out of the Box?
- Polling Consumer
- How can an application consume a message when the
application is ready? - The FTP Adapter can poll an FTP server to receive
any files that are added - The SQL Adapter can poll a database table to
trigger messages when data is added or modified - Event Driven Consumer
- How can an application automatically consume
messages as they become available? - The File Adapter is event driven when using
Windows NTFS folders - The SOAP and HTTP Adapters are event driven
6Implementing Integration Patterns in BizTalk
Server 2004
- Use Integration Patterns to Develop BizTalk
Solutions - The pattern language is used across multiple
integration platforms - Many BizTalk Server projects use integration
patterns - BizTalk pattern implementation resources are
widely available (MSDN, White Papers, Blogs,
Books, BizTalk Deep Dive Course) - Easy to Implement
- Splitter Messages can easily be split as
BizTalk receives them, and processed separately - Hard to Implement
- Aggregator Combining multiple messages into a
single message is a fairly complex task
7Normalizer
- Problem
- How can an integration hub communicate with
multiple business partners that all send messages
in a different format? - Solution
- Use a normailzed representation of data objects
within the hub - Partner specific representations of data objects
are transformed at system boundaries - Benefits
- Partners can be added to the hub without
modifying internal business process - Partners can modify their data format or message
schema without affecting internal business
processes
8Normalizer
9Normalizer - Implementation
- BizTalk Implementation
- Message maps are created to transform partner
specific schemas to and from internal schemas - The partner specific maps are placed within the
send and receive ports of the messaging solution
10Normalizer - Example
- The BizTalk Mapper is used to create a map that
transforms the partner specific message format to
the normalized data format
11Publish-Subscribe Channel
- Problem
- How can messages transmitted by the hub be routed
effectively to the relevant business partners? - Solution
- Message subscriptions are created for each
partner to subscribe to relevant messages based
on a filter criteria - The hub sets the properties used in the
subscriptions, then publishes the message - When a message is published, one copy of the
message is created for each subscriber - Benefits
- The message routing is independent of the
business process - Subscriptions can be added, modified, and removed
easily
12Publish-Subscribe Channel
13Publish-Subscribe Channel - Implementation
- Implementation
- Promoted Properties are created in the schema
to make the routing properties available to the
messaging engine - The orchestration sets the promoted properties in
the message to appropriate values for routing,
and publishes the message. - Send ports are created with filter based
subscriptions using the promoted properties
14Publish-Subscribe Channel - Example
- Schema properties are promoted and available for
message subscriptions - Send ports are created with filter based
subscriptions using the promoted properties
15Wire Tap
- Problem
- How can the message flow at a specific point in
the messaging system be monitored? - Solution
- Subscription based send ports are created with
filters for messages at a specific point in
messaging system - These Wire Tap send ports can be started when
required - Benefits
- Provides a quick solution to diagnose problems in
messaging system
16Wire Tap
17Wire Tap - Implementation
- Implementation
- Create a Send Port with a filter that subscribes
to a specific message type - Create a Send Port with a filter that subscribes
to a point in the system, such as a receive port. - Message Tracing
- BizTalk Server 2004 also allows Message Tracking
to be configured to provide similar functionality
to a Wire Tap port.
18Wire Tap - Example
- A wire tap is created using a send port which
subscribes to all messages passing through s
specific point in the system
19Test Message
- Problem
- How can a message hub be tested in a production
environment without affecting the systems of
business partners using the hub? - Solution
- A message is sent into the hub, with a flag set
to identify it as a test message - The message hub will process the message
- A wire tap is created to route test messages to a
different location - Benefits
- The message hub can easily be tested in a
production environment - Tests can be performed manually or as part of an
automated test program
20Test Message
21Test Message - Implementation
- Implementation
- The message schema is modified to include a Test
Message flag in the message header - The subscriptions of the send ports that send
messages to the partners are modified so as not
to subscribe to test messages - A wire tap send port is created to subscribe to
messages with Test Message flag set, and send
them to a location for verification - Test data generators and verifiers can be created
to implement automated testing
22Test Message - Example
- The TestMessage element added to the schema
- The element is promoted to make it available for
use in message subscriptions - A Wire-Tap is created to subscribe to test
messages after processing
23Enterprise Integration Patterns in BizTalk
- Summary
- Integration patterns form a common language that
can be used in integration projects - These patterns are widely used within BizTalk and
other integration platforms - BizTalk Server 2004 provides a number of pattern
implementations out of the box - Many other patterns can be implemented easily
within BizTalk - Patterns to aggregate, or resequence messages can
be complex to implement, but sample
implementations are available
24Enterprise Integration Patterns in BizTalk
Further Reading
- Enterprise Integration Patterns Gregor Hohpe
- www.eaipatterns.com
- BizTalk Server 2004 Unleashed Scott Woodgate
- MSDN BizTalk patterns whitepapers
- msdn.microsoft.com/biztalk
- The Bloggers Guide to BizTalk Alan Smith
BizTalk blogging community - geekswithblogs.com/asmith