This article describes which products are designed to address various integration patterns, scenarios and requirements. It also describes when these products “could, but should not” be used. Most large organisations will use a mix of a few of these products. But the time may come when their current products do not fit well with new requirements. This article does not attempt to perform a full architecture section analysis. However, this article will help to identify candidate products.
Book Applied Architecture Patterns on the Microsoft Platform by Richard Seroter provides an excellent “Architecture Selection Framework” to help organisations choose which products is the best fit for their requirements. The selection framework is based on 4 criteria: Design, Delivery, Organisation, and Operations. The book then goes on to use this selection framework to identify the best candidate products in various (mostly integration) scenarios. The following candidate products were evaluated: BizTalk (inc. ESB Toolkit), AppFabric (WCF, WF, Cache), SSIS, SSBS, Master Data Services, StreamInsight, and Azure Cloud Services.
Video: Richard Seroter (from the BizTalk Summit 2014) : When To Use What: A Look at Choosing Integration Technology. "There’s never been more options — or more confusion — about which technologies to use when connecting systems? When is BizTalk Server the right choice? Should I still use WCF? Is the Windows Azure Service Bus ready for production scenarios? In this session, we’ll first do an overview of each core technology in the integration portfolio. Then we’ll review a simple decision framework for down-selecting your choices. Finally, we’ll have an interactive discussion (and demonstration) of real-life scenarios and which technology is the right fit."
Loose-coupling with publish/subscribe communication - like .net events but asynchronously invoked across the network. Transparent addition of new subscribers
Centralised or Distributed, N-Tier or Peer-to-Peer, In-process or across the network.
Fault-tolerance by default - all messaging is enlisted into the same transaction.
Orchestrator is a workflow management solution for the data center. Orchestrator lets you automate the creation, monitoring, and deployment of resources in your environment.
ASP.NET SignalR is a library for ASP.NET to enable real-time web functionality. SignalR allows bi-directional communication between server and client. Servers can now push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.
Complex event processing (CEP) applications. Monitor your streamed data sources for meaningful patterns, trends, exceptions, and opportunities. Alert on defined KPI’s.
Reliable message storage and retrieval with a choice of protocols and APIs.
Competing receivers pattern.
Other features: duplicate message detection; scheduled message delivery; performance optimization (using asynchronous calls, batching and prefetching of messages).
Topics
Publish-subscribe capabilities allowing multiple, concurrent subscribers to independently retrieve filtered or unfiltered views of the published messages.
Relay
Enable connections across network boundaries (e.g. firewalls).
The NetEventRelayBinding binding allows multicasting (multiple clients listening on a single endpoint)
Event Hubs
Highly scalable publish-subscribe ingestor.
Not Recommended For
Not yet an “ESB in the cloud” for general purpose integration.
No error handling/auditing - requires custom code in client\service layers.
On-premise implementation of the Azure Service Bus features.
Development symmetry between with the Windows Azure Service Bus making it easy to develop applications for either and switch between the two.
Staged adoption of Azure capability. Services can be built and deployed locally to allow for debugging and testing of applications with much more control before publishing to a public cloud.
Not Recommended For
New features are built in Azure Service Bus first.