Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is BizTalk an ESB?

Tags:

I am looking into architectural patterns, Enterprise Services Bus (ESB) precisely. Upon reading this article Enterprise Integration, and with little to no experience I am wondering if BizTalk has is a ESB or is it just a EAI (Hub/Spokes or Bus)?

I found this NServiceBus and Biztalk, describing BizTalk as a central message broker.

Taking other ESB frameworks into account (NServiceBus and Rhino Service Bus). These frameworks have no central point to process messages.

Is Biztalk a EAI rather than an ESB?

Many thanks

like image 329
dbones Avatar asked Jul 28 '10 16:07

dbones


People also ask

What is an ESB tool?

An enterprise service bus (ESB) is a software platform used to distribute work among connected components of an application. It is designed to provide a uniform means of moving work, offering applications the ability to connect to the ESB and subscribe to messages based on simple structural and business policy rules.

Is BizTalk a middleware?

Microsoft BizTalk Server is an inter-organizational middleware system (IOMS) that automates business processes through the use of adapters which are tailored to communicate with different software systems used in an enterprise.

What is Microsoft BizTalk used for?

Microsoft BizTalk Server allows connecting diverse software, then graphically creating and modifying process logic that uses that software. BizTalk Server also enables information workers to monitor running processes, interact with trading partners, and perform other business-oriented tasks.

Is BizTalk obsolete?

Why did Microsoft Deprecate BizTalk BAM? With the release of BizTalk Server 2020, in January 2020, one of the changes compared to earlier versions of the product, is that Microsoft has decided to deprecate the BAM portal.


2 Answers

BizTalk is punted by Microsoft as having ESB capabilities - see the BTS ESB toolkit

However, the term 'ESB' covers a very broad field, and there is a lot of subjectivity about an exact definition of an ESB. IMHO there are weak points in BizTalk's claim to be comprehensive as an ESB (in a > 2010 definition of the term).

  • BTS originated in the Hub-and-Spoke EAI era, before ESB became widespread.
  • BTS is more suited toward asynchronous processes than synchronous processes - latencies will vary depending on load on the system, throttling state, etc.
  • BTS is cumbersome when it comes to ease of versioning of services and schemas (new deployment is needed)
  • BTS is cumbersome when it comes to management of MANY services (e.g. Using BizTalk as a facade for all 5000 of your corporate SOA / Web Services will be painful)

FWIW we have found BTS a good fit for:

  • all of our synchronous and asynchronous EAI (i.e. formalized integration contracts between major LOB systems, and with trading partners), and the large number of adapters assists with integrating a wide number of protocols.
  • For Business Process and Business Monitoring capabilities
  • Addressing transactional and delivery reliablity - Biztalk has capability to retry, tracking and resumption of Suspended messages, which is useful over unreliable networks or when it comes to integration with unreliable systems.

Update, with some further comparative experiences

  • BTS is very centralised - ultimately, even a multi-server BizTalk cluster / group is dependent on Sql-Server. Queue based ESB products tend to be more decentralised (logically and physically), so loss of a few endpoint or queue servers should not pull the whole enterprise down.
  • Many queue based ESB's are built on open source technologies, with an eye on avoiding single vendor lock-in
  • Many contemporary ESB's seem to take a commodity-computing approach to scale out. Scaling out with products like BizTalk can become expensive.
  • On the plus side, the monitoring and administration capabilities of commercial offerings like BTS should not be underestimated - make sure any ESB you are considering has adequate auditing, instrumenting, retry, and diagnostic (WMI / SNMP / SCOM etc) capabilities - you'll need a dashboard to monitor the health of your bus, and there is nothing worse than not knowing where a message went. Here, centralisation administration and diagnosis is a plus.
like image 131
StuartLC Avatar answered Oct 21 '22 10:10

StuartLC


BizTalk is a messaging and workflow orchestration platform, on which you can build ESB behaviours and capabilities. To make this easier, and standardise ESB implementation on BizTalk, Microsoft released the BizTalk ESB Toolkit - a set of guidelines, patterns and code.

The concepts of EAI and BPM have been around for a while, so there are many companies that have leveraged BizTalk to create solutions to these problems. Companies that host a full ESB on BizTalk server are far fewer, and adoption has certainly slowed in the advent of WCF/WF/NServiceBus and, of course, Azure Service Bus.

So in summary, BizTalk out of the box is nether EAI or ESB, but can do both with a number of developers applied to the problem.

like image 33
Rob Potter Avatar answered Oct 21 '22 10:10

Rob Potter