Introduction to BizTalk<br />A brief description of the <br />BizTalk essentials<br />
What is BizTalk server?<br /><ul><li>Enterprise Application Integration (EAI) and Business-to-Business (B2B) Integration
Web-based development and execution environment:</li></ul> Loosely-coupled, long running business processes<br />Standard gateway to send/receive documents<br />Services to ensure data integrity, delivery, security<br />
BizTalk Server – High-Level Architecture<br /><ul><li>BizTalk Server Engine</li></ul>Messaging Engine (has Adapters for different kinds of communication)<br />Support for Orchestrations (graphically-designed processes)<br /><ul><li>Business Rules Engine</li></ul>Abstracts business logic from the code<br />Business Rule Composer (for non-technical users) – define policies (group multiple rules)<br />Vocabularies – enable developers to map business names to underlying data<br /><ul><li>Monitoring Components</li></ul>Business Activity Monitoring for running processes – info is displayed in business terms<br />More info on Business Activity Monitoring: <br />http://msdn.microsoft.com/en-us/library/aa561137(v=BTS.10).aspx<br />
BizTalk Messaging Engine<br /><ul><li>Messages are received via a Receive Adapter (offers different communication mechanisms to acquire messages - call a Web Service, read a file, etc…) and then processed via a Receive Pipeline (e.g. convert message to XML) then delivered to a DB-based Message Box.
Orchestrations hold the logic behind business processes (not written in code but graphically designed with organized shapes – conditions, loops, etc…) and can use the Business Rules Engine (a simpler way to express complex sets of rules used in a business process).
Orchestrations create subscriptions to indicate the type of messages they expect. Messages that arrive in the Message Box are dispatched to appropriate orchestrations. Orchestration usually sends a message back in Message Box upon completion.
The outbound message is processed by a Send Pipeline (converted from internal XML) and delivered through a Send Adapter to the target (e.g. saved file, Web Service call, …).</li></ul>More details on Sending / Receiving Messages, Adapters, Pipelines, Subscriptions: http://msdn.microsoft.com/en-us/library/aa560031(v=BTS.10).aspx<br />More details on Schemas, Mappings, Orchestrations, Business Rules Engine: http://msdn.microsoft.com/en-us/library/aa561630(v=BTS.10).aspx<br />
Quick Glossary<br />Host: logical representation of a runtime process (adapters & orchestrations); can have multiple instances on different servers (and a server can have multiple hosts); can run in-process (win service) or isolated (non-BizTalk process – e.g. ASP.NET worker)<br />Adapter: connectivity to the outside world (usually in charge of transport, data agnostic, on the receive end, in charge of listening / pooling endpoint).<br />Pipeline: data processing & validations (normalize/denormalize data to/from XML – Note: BizTalk does not always require XML)<br />
Quick Glossary<br />Subscription: a set of conditions, representing the interest of an orchestration for a certain message (data from the message is written in the context and evaluated against subscriptions to determine routing)<br />MessageBox: implemented as a SQL database; publish/subscribe design (in case of multiple subscribers each receives a copy of the message)<br />MessageAgent: receives the message (once it has passed thru an Adapter & Pipeline), writes properties in the Message Box DB (e.g. MessageType), finds subscriptions (SP call), inserts message (SP call, subsequent calls in case of multiparts), adds reference to host instance queue.<br />
Quick Glossary<br />Orchestration: implementation of the business processes with a graphical shape-based designer (drag’n’drop); can be invoked by a new message or by another orchestration<br />OrchestrationEngine: manages stateless execution of orchestrations; on wait/delay stages it can dehydrate orchestrations (serialize orchestration state to the MessageBox and remove from memory) and rehydrate them (reverse process) as needed<br />BusinessActivityMonitoring: visibility into the processing within business solutions; uses terms that any data consumer can use; based on a wish list and a DB infrastructure for instrumentation data, a Tracking Profile can be generated (deployable at runtime); data is available within a BAM Portal (or accessible on SQL server via SQL Reports, queries, etc…).<br />RulesEngine: abstract business logic from code, allow changes & control for business owners<br />
Development Roles<br />Business analyst: define rules & behavior for a business process, define process flow (what info is sent to each app, mapping between business documents)<br />Developer: create BizTalk application that implements the above – define XML schemas, specify detailed mappings, create orchestrations<br />Administrator: set up communication / endpoints, deploy BizTalk application<br />
Thank you!<br />Stay tuned for the next slideshow in the BizTalk Series!<br />