Click here to Skip to main content
15,894,105 members
Articles / Programming Languages / C#

Why BizTalk?

Rate me:
Please Sign up or sign in to vote.
4.80/5 (2 votes)
9 Apr 2009CPOL8 min read 32.4K   8   1
While articles that explain BizTalk or describe how to do something with it are great, they assume that you have already made the decision to use BizTalk Server in your project or organization.

Overview

In my article "BizTalk Server In 47 Words or Less" described BizTalk Server is a versatile platform for building business process automation and integration solutions. While articles that explain BizTalk or describe how to do something with it are great, they assume that you have already made the decision to use BizTalk Server in your project or organization. This article discusses integration, its benefits, and how BizTalk Sever can help you exploit those benefits.

Integration and Connected Systems


Today's demanding business environment changes quickly based on consumer demand and opinion, new technologies, and economic conditions. Environmental changes and political events can also play a key role in a business's ability to continue to operate and succeed. As a result, succeeding in today's environment is based on one key factor: an organization's ability to adapt to often rapidly changing conditions.

The web-centric nature of most communications makes paper-based systems supported by fax, phone, or email slow, inefficient, and - more importantly - incompatible with most business' customers and suppliers. Businesses that serve end-users, or consumers, are finding that their customers demand fast and easy access to information and services using devices like computers and mobile phones.

Businesses must shift from manual to automated trading supported by broadly used communications methods and formats to remain competitive and responsive to their trading partners and end users. Automated trading drives the need to interconnect systems, information, and processes; effective and efficient automated trading relies on integration.

Integration blends applications and data, via communication, to enable sharing of information between applications within a company and between businesses. Integrated applications are also flexible enough to adapt to changing business needs because they are often loosely coupled (don't directly rely on each other).  The phrase "connected systems" describes integrated applications that communicate using standardized, broadly available and broadly used methods and formats.

Connected systems drive business process automation because business processes represent the beginning and end-points of intra and inter-business (or application) communications. An example of business process automation is linking an organization's Customer Relationship Management (CRM) system with it's Order system: the order system supports transactions and handles the lifecycle of an order, while the CRM system manages customer relationships by maintaining, for example, the details about historical contact (date of last order, support tickets, emails, etc).

Rudimentary Adoption of Connected Systems

While many may lead you to believe that integration is difficult to achieve, it is actually relatively easy. Start with an idea about the kind of functionality and information you want to make available for your customers and trading partners (suppliers). Conceptually draw lines between your existing applications and islands of information to surface information and perhaps add new applications or systems to provide functionality to your clients and trading partners. At the end of this process you end up with a framework for your integration project.

Taking a short-term approach, you could engage a team of developers to connect your existing applications by creating new custom applications. The overall approach could be to buy a new server that you use to develop and host the new custom applications.  This approach results in a ‘good-enough' solution that meets yours, your client's, and trading partner's current needs.

The new applications that connect your existing ones increase the complexity of your IT infrastructure. The number of inter-connections between applications grows rapidly as you add new applications to remain responsive and competitive. The complexity of your IT infrastructure drives up on-going maintenance costs since you'll require staff with specialized skills to minimize on-going development costs to add features like better reliability, scalability, security, and compliance with the United States' Sarbanes-Oxley Act (SOX) and its Canadian equivalent, the Multi Instrument 52-109 rules.

A Better Approach

The rudimentary approach to adopting integrated, connected systems clearly focuses on short-term needs. A better approach integrate other software throughout the business, both within and between organizations based on broadly available frameworks, platforms, communications methods, and data formats. The benefits of this approach include:

  • Better agility - automated business processes are easier to maintain since they don't require a specialized IT skill set - resulting in faster time-to-market; broadly available technologies advance with current market needs like compliance, reliability and performance.
  • Better alignment with Customer and Trading Partners' needs - as a result of faster time-to-market your organization can efficiently deliver solutions that meet your customers and trading partners' needs without significant lead times.
  • Lower IT costs - using broadly available frameworks, platforms, and communications methods makes it possible to use readily available hardware, software, and - possibly more importantly - hire/use readily available, skilled developers and consultants

Organizations that efficiently adapt to changing conditions through better agility and better alignment with their customers' and trading partners' needs remain profitable and competitive. Business models drive profitability and competitiveness.

Connected Systems Simplified

Simplification and consistency are at the center of realizing efficiency and agility. Taking an abstract view, connected systems have three main functions:

FunctionDescription
WorkflowWorkflow is a representation of a business process. The checkout process when you buy something is an example of a simple workflow.
CommunicationsCommunications connect the workflow with outside entities like other applications, people, and your trading partners.
Messaging

Messaging represents the content that gets communicated between systems. Message traits like format, importance, and sensitivity can affect message content.

The following diagram describes the functions in the context of an order system:

The figure shows a customer placing an order (the web-based order system is not shown). The order system generates a message and sends it to your organization via the internet. Your system processes the message by acquiring more information about the customer, completes the order (perhaps process the credit card transaction), and then updates an inventory system and supplier. Each function gets handled on its own thereby making it possible to maintain it on its own (and make it more efficient).

BizTalk Server provides excellent support for process agility by making it easier to express business processes based on the three preceding, essential functions. I am not suggesting that BizTalk Server solves all business process and integration problems; however, it can play a key role in alleviating problems.

Deciding to Use BizTalk and BizTalk's Influence

While enterprise architects usually consider and recommend using BizTalk, business users (stakeholders) sometimes recommend using BizTalk after consulting with outside subject matter experts and other consultants. As introduced in the preceding sections, Business users' interests in using BizTalk are based on attempting to better position their organization to control development and ongoing maintenance costs while improving process agility because BizTalk, as a platform, makes it easier to deliver process and integration solutions.

BizTalk Server makes it easier to deliver process and integration solutions because it narrows down the field of possible design implementation approaches, based on the three major functions of connected systems (workflow, communications, and messaging). Among the reasons that BizTalk makes it easier to deliver process and integration solutions is its declarative programming model. The declarative programming model makes it easier to express workflows in terms of the underlying business process thus lowering the risk of misinterpreting the process during implementation.

BizTalk provides a range of other services besides a declarative programming model. Some of BizTalk's major features include:

  • Adapter-based communications.
  • Strong support for transformations.
  • Support for effectively unlimited types of data through transformations and pipelines.
  • Durable messaging using the proven publish-subscribe model.
  • Highly scalable and customizable performance model.
  • Flexible and direct support for deployment.
  • A Business Rules Engine that supports versioning, in-flight change, and is very scalable.
  • Business Activity Monitoring that surfaces business information at run-time (for example, number of new orders per hour).
  • Integration with a broad range of security architectures.
  • Broad industry support through a strong, focused developer community, subject matter experts, consulting houses, and independent consultants.

BizTalk also supports the popular "learn while being productive" paradigm. It's possible to read a book or the review product documentation and work through the SDK samples, and learn about BizTalk while creating simple solutions. Note that this approach (learn while being productive) works well for simple solutions and some prototypes.

A functioning, supportable solution still requires a solid architecture, design, and implementation. If you learn about BizTalk Server, create a solution, and decide to use your work by putting into productive use, I highly recommend that you have the architecture, design, implementation, and deployment reviewed by an experienced consultant, consulting firm, or staff member. Mistakes can be costly to find and repair once the solution is in use. And, as with any other tool, when it is used in the right way and for the right purpose, the only limitation is imagination.

Conclusion

Today's fast-paced, web-centric customers and trading partners demand a connected systems approach. BizTalk Server, when used for the right applications and in the right way, helps agile businesses realize efficiencies and meet their clients' and trading partners' needs and demands. BizTalk supports the popular "learn while being productive" paradigm. However, consultants and consulting firms have developed business process integration skill-sets and service offerings to help organizations of any size realize the benefits of connected systems even more efficiently.

This article was originally posted at http://artofbabel.com/index.php?format=feed&type=rss

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) erikwestermann.com
Canada Canada
Erik is a senior developer-writer with more than 20 years professional programming experience designing and developing large scale database and Internet-centric applications for organizations including MSN.ca, ADP, Nortel, EDS, Merrill Lynch, ePost, CIBC, TD Securities, IBC, CIHI, InnovaPost, etc.

Erik has been specializing in BizTalk Server-based solutions for many years. His experience includes many SOA and ESB-style applications using technologies like Commerce Server, SharePoint, ASP.NET and advanced .NET Framework.

Comments and Discussions

 
QuestionNice Blog Pin
vivek_viv1-Feb-12 23:50
vivek_viv1-Feb-12 23:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.