Pages

Tuesday, May 7, 2013

BizTalk

BizTalk Server is an enterprise service bus (ESB) that can connect/communicate to various business servers. Biztalk is MS Integration and connectivity server solution. It provides the following functions: Enterprise Application Integration, Business Process Automation, Business-To-Business Communication, Message broker, and Business Activity Monitoring. BizTalk connects diverse system.

For example a Organization contains 5 systems,
Equipment System Application running on .Net
Inventory Application running on IBM Mainframe - it contains stocks of the items, asset
Purchasing Application running on Linux - purchased, send to vendor, quote, etc
SAP Payroll Application & Oracle Finacial Accounting.

The above 3 applications are depend on each other, integrated, a person will go check to each process manually. If this process is automated, then it is efficiency. All these applications some what depend on each others. Also this organization has diverfied systems which are running on different technolgies.

Is there one product that automates, optimizes business processes and data in real time?
Yes and that product is MS Biztalk Server, helps this organization in connecting this diversed system which are running on different technologies

If connecting this system within an organization, commonly referred as EAI (Enterprise Application Integration)

Integration between different organization - Connecting the system which is outside the organiztion & Collecting information from outside the organization.

For example, Purchasing Application runing on Linux  - sending out purchase order request to supplier organization 1, supplier organization sends respone back to purchasing application system, commonly referred as B2B (Business-to-Business Integration)

BizTalk does not support communication with nix machines (unless you use ftp).

Question - You can be done same task using Web Services or MS WCF, then why biztalk?
You can easily make an integration between two systems with the use of communication technologies and data transport such as Microsoft WCF or Web Service, but when we look more closely at some of the requirements, is easy to identify that some challenges can become quite complex: implement persistence, correlation of asynchronous messages, recovery in case of failures, complex mappings, atomicity, long-running transactions, monitoring and visibility of the process, and all this is reflected in huge implementation costs.

A picture is worth a thousand words.
Benefits of BizTalk  
  • Everything is traceable (fully configurable) -  Trace specific orchestrations ,ports & messages
  • Define your own Tracking on important fields (fully configurable)
  • Fully integrated with the .Net framework
  • Ability to connect to dissimilar system (Unix/Linux etc.)
  • Guaranteed delivery
  • Scalable -  Deploy the Orchestrations to multiple BizTalk hosts,  Easily add extra hosts to an existing configuration & Scale out the MessageBox.
Different components
  • Adapters
  • Pipelines
  • Schemas
  • Maps
  • Orchestrations
  • Ports
  • MessageBox and Subscriptions
  • Business Rule Engine  
Adapters - Adapters are endpoints that will help in setting up connections to an external systems.
My BizTalk server wants to connect to the external  application, it should have some end points that will help in fitting up connections to connect to the external  systems, this endpoints are nothing but called us Adapters.

Endpoint that helps to configure the connection string such as SQL Server Name, Database Name, UserId and the password, which is called SQL Adapter. Endpoint that will help in configuring the file location, which is called File Adapter

SQL Adapter, File Adapter - these are built-in Adapter

Endpoint that will help in setting up SAP Connection, there is no built-in adpater, but Biztalk provides some .net  api, using those api, to write custom code to make connection to this connections, which is called Custom Coded Compoents Adapter

Different adapters provide different connection  mechanisms.

PipelinesPipelines help to transform the data from one format to xml  format. It also transforming from xml format to other  format.
Biztalk internally uses xml format. i need a component which will transfer this data(rows and columns) to xml format. 2 different pipelines are,
Receive Pipeline - Transforms incoming data into XML  format, decypts data, applied validations etc so the Biztalk understands it.
Send Pipeline - Transforms outgoing data from XML format  to other format, encrypts etc. 

Schemas - A schema defines the structure of messages/data that come  in/go out of BizTalk server. BizTalk uses the XML Schema Definition (XSD) language to define the predefined structure of XML.

For example,  SQL Server Database or SAP System -data's here is in the form of rows and columns in a table.


Maps - Perform operations on data like string  manipulation, mathematical calculations, filtering etc.,
on the incoming/outgoing data. For example calculate the age of employee, concatenations, filter record based on some kind of conditions

Orchestrations - which help in executing business processes and implementing decision making scenarios

In the above example,  raise purchase order.

Ports - Ports are the place where Adapters, Pipelines and  maps are configures. Receive Ports (Ports at Source) and Send Ports(Ports at destination). Ports may or may not have maps configures. It is choice as by desing but will always need an adapter and pipeline to be configured.








Receive Adapter - Get data and push it into BizTalk, Adapters are EDI, FTP, MS MQ/MQT, HTTP, SQL, File, IBM MQSeries, SOAP, Build your own code, ...

Pipeline - Transform a bucket of bytes to  XML.

    Decode - stage is used for components that decode or decrypt the message
    Disassemble - stage is used for components that parse or disassemble the message
    Validate - stage is used for components that validate the message format
    ResolveParty - stage is a placeholder for the Party Resolution Pipeline Component

MessageBox - Publisher / Subscriber mechanism (explained later)
    A particular message can start an orchestration (subscriptions).
    Depending on the contents it will travel a path.
    Message is pushed back into the MessageBox
    Another orchestration could react on the new message

Pipeline - Transforms an XML document to a bucket of bytes

    Depending on the Subscription a message will be send to a specific Send Port
    The adapter will take care of delivering the data to the endpoint
    If no orchestration is used, its is called a messaging only scenario.

Send Adapter - Pushes the data into the target system

Messaging only scenario
  • BizTalk Picks up a CSV file
  • The Receive Pipeline transforms it to XML
  • The pipeline pushes the message into the messagebox
  • The Send Pipeline transforms it to a message suited for the SQL adapter
  • The SQL adapter inserts the data into the SQL database
  • In this scenario the words CSV and SQL could easily be replaced with any of the following  “SAP”,”EDI”,”XML” etc.
 Orchestration scenario
  • BizTalk Picks up a CSV file
  • The Receive Pipeline transforms it to XML
  • The pipeline pushes the message into the messagebox
  • An orchestration will start because it is subscribed to the message
  • Depending on the contents it will travel a path and request data from SAP /SQL etc.
  • Data comes back from SAP and is send into the messagebox
  • BizTalk delivers the message to the waiting orchestration an the flow continues
  • The message is send back to the Messagbox and is picked up by the send port
  • The message is delivered to the destination

BizTalk Tools
    Mapper - Create XSLT with a visual editor

Orchestration Designer
  • Model your proces - Architects,  More readable then code
  • Powerful options available - Request response mechanism, Decisions, Looping, Transformations,   Call your own .Net components, Parallelism, Transactions, Exceptions, etc.

1 comment:

soukya reddy said...

This is an amazing blog,thanks for good info
Biztalk Online Course Hyderabad

Post a Comment