Windows Azure Service Bus and Windows Azure Pack

In the attempt to combine private cloud (aka on-premise installation), public cloud (e.g. Microsoft Azure) and hosted cloud (servers provided by 3rd parties) Microsoft released a while ago the Azure Service Bus through the additional install for Windows Server 2012 R2 called "Windows Azure Pack".

The Service Bus provides unified messaging capabilities across the different deployment scenarios.

It addresses 3 core scenarios:

1. Application Messaging Patterns with Service Bus
Messaging with the Service Bus allows building loosely coupled applications.

Scaling a loosely coupled application

"To enable a wide variety of messaging scenarios, Service Bus provides message queues and “Publish/Subscribe” topics.

A queue is a message store in which messages are ordered by send date. One or multiple senders can send messages into a queue, and one or multiple receivers can read and remove messages from the queue. Once a receiver has received a message, that message cannot be received by another receiver.

Typically, queues are used for:

  • Load leveling: Receiver can process messages at its own pace.
  • Temporal decoupling: Sender is not blocked if receiver is offline.
  • Load balancing: Multiple receivers compete for messages; auto load balancing.

A topic can have multiple subscriptions and each subscription behaves like a queue. One or multiple senders can send messages into a topic. From there, each message is copied into each of the subscriptions. If receivers receive from different subscriptions, they each get a copy of the message. The user can define filters which determine which message is copied into which subscription.

Typically, topics are used for

  • Message distribution: Deliver the same message to more than one receiver.
  • Message filtering: Subscribers can filter messages according to business logic.
  • Message partitioning: Using filters, receiver get mutually exclusive slices of the message stream.
"

Those applications are cross-platform interoperable as not only Microsoft's proprietary SOAP-based protocoal (Service Bus Messaging Protocol (SBMP)) can be used, but also Advanced Message Queuing Protocol (AMQP) and even plain HTTP/HTTPS.

Languages and protocols supported by Service Bus.

2. Manage Messaging Entities Across Clouds
"Innovation at the infrastructure layer has made it possible for organizations to start acting like cloud vendors by offering subscription-based IT resources to their business groups."

Queues and Topics are created within the scope of a service namespace. The service namespace is used for addressing, isolation, and management the underlying messaging entities.

Authentication at the Level of a Queue can be achieved by:

  • Windows Integrated Security to authenticate users based on their domain credentials.
  • Shared Access Secrets to authenticate users based on a shared secret.

Authorization at the Level of a Queue rules at two levels:

  1. Namespace level authorization is applicable to all entities (queues and topics) defined in the scope of this namespace.
  2. Entity level authorization is scoped to a single entity. Use entity level authorization in integration scenarios where an application needs access to a subset of the entities in the namespace.

3. Hosting Alternatives with Service Bus

With the release of Windows Server 2012 R2 and the Windows Azure Pack, we’ve identified several key deployment scenarios where Service Bus was used:

  • Locally Hosted & Managed
    This scenario is found within enterprises where a local IT team manages multiple deployments and each is dedicated for a different application or business unit. This scenario is the first time an administrator experience is separated from the tenant’s.
  • Shared across multiple applications
    This is a common scenario with larger organizations where multiple applications are using the same Service Bus instance. In this scenario applications may, or may not, exchange messages between themselves. This topology calls for scaling the Service Bus deployment as well as introducing multiple tenants to Service Bus management.
  • Hosted & Dedicated in a Public Cloud
    In this scenario, hosters who provide IT services are looking for ways to offer PaaS services including messages. As a part of the Windows Azure Pack, Service Bus supports managing multiple deployments from a single portal, separation of a service provider from a tenant portal experience, as well as plans and subscriptions to create isolation between tenants.

To summarize, the Service Bus architecture looks like the following:

Service Bus architecture.


Sources:

Keywords:
Windows Server 2012 R2, Azure, Windows Azure Pack, Windows Azure Service Bus, Cloud, Datacenter, AMQP

Comments

Popular posts from this blog

SQL Server Setup: Windows Firewall warning (Ports)

SQL Server 2014 Enterprise Edition: Server Setup: Feature Selection

How to read an assembly.dll.config