Azure Service Bus

large-icon

Olá pessoal,

À medida que temos um aumento no número de dispositivos e aplicativos conectados a internet, vemos também o acréscimo dos serviços de comunicação entre eles. Esse aumento é constante e o uso de tecnologias baseadas na nuvem torna-se essencial. Pensando nesse ponto e na facilidade de implementação, a Microsoft oferece no Azure o seu serviço de mensageria chamado Azure Service Bus.

O Azure Service Bus nada mais é do que um barramento entre aplicações distribuídas que controla, de forma segura e escalável, a troca de informações (mensagens) entre elas. Podemos considerar como principais funções de um barramento de serviços:

  • roteamento de mensagens;
  • tradução de mensagens;
  • tradução de protocolos.

Optando por hospedar o Service Bus no Azure ao invés de fazê-lo na infraestrutura local (on-premise), o cliente utiliza o serviço de PaaS (Platform as a Service) oferecido, sendo que o mesmo pode ser tanto simples como complexo dependendo da estrutura e do número interconectado de filas (queues) necessárias, com alta disponibilidade e escalabilidade na nuvem.

Isso facilita muito o dia-a-dia dos desenvolvedores, que podem pensar em aplicações distribuídas utilizando o sistema com foco em enfileiramento de mensagens. Dessa forma, através da camada intermediária, uma aplicação cria e coloca uma mensagem na fila, enquanto outra aplicação processa e retorna a primeira da mesma forma, quando necessário. Estruturas de enfileiramento de mensagens são indicadas para comunicações assíncronas e desacopladas entre aplicações ou processos distintos.

winjssample
Troca de mensagens entre aplicações.

Temos duas observações a fazer em relação a isso e que devem ser revistas pelos desenvolvedores. A primeira é a de que nem todas as aplicações podem atuar de maneira assíncrona. E a segunda é de que a programação assíncrona introduz algumas complexidades na aplicação, principalmente relacionadas a debug.

Componentes do Azure Service Bus fazem parte do SDK do Microsoft Azure ou dos pacotes NuGet. Para requisitos do sistema e instalação do SDK, entre em download do SDK. Para informações sobre do NuGet, veja Using the NuGet Service Bus Package.

O Azure Service Bus suporta um conjunto de REST APIs para operações de tempo de execução e de gerenciamento (AtomPub). Com o REST podemos desenvolver aplicativos em qualquer linguagem compatível com requisições HTTP, sem a necessidade de um client SDK.

Mecanismos de comunicação do Azure Service Bus

Temos o Service Bus Queues, que permite uma comunicação unidirecional. Fornece um balanceamento de carga, onde mensagens são recebidas e processadas pelos receptores concorrentes na ordem em que foram adicionadas à uma mesma fila.

sb-queues-08
Service Bus Queues

Temos o Service Bus Topics/Subscriptions, que proporciona uma comunicação unidirecional usando assinaturas. Fornece recursos avançados de publish-subscribe permitindo que múltiplos assinantes simultâneos recebam mensagens que foram enviadas para um único tópico.

sb-topics-01
Service Bus Topics/Subscriptions

Temos o Service Bus Relay, que proporciona uma comunicação bidirecional. Permite a construção de aplicações híbridas que podem ser executadas tanto em um datacenter Azure como em um ambiente corporativo no local, de forma segura, sem alterar a configuração de firewall e de rede.

sb-relay-01
Service Bus Relay

Temos o Event Hubs, que fornece o ingresso de eventos e telemetria para a nuvem em escala massiva, com baixa latência e alta confiabilidade.

ic741188
Event Hubs

Independente do mecanismo de comunicação, é importante entender que, apesar do Azure Service Bus ser executado na plataforma de nuvem da Microsoft, qualquer aplicação pode executá-lo em qualquer lugar, seja dentro do próprio Azure, on-premise local ou em outra plataforma de nuvem.

Veja também:

Service Bus documentation

Creating applications that use Service Bus queues

Developing Applications that Use Service Bus

.NET Multi-Tier Application Using Service Bus Queues

Service Bus Samples

Até o próximo post!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s