O que é middleware?
O middleware acelera o desenvolvimento de aplicativos distribuídos, simplificando a conectividade entre aplicativos, componentes de aplicativos e origens de dados de back-end.
Assine a newsletter da IBM
Fundo em preto e azul
O que é middleware?

Middleware é um software que possibilita um ou mais tipos de comunicação ou conectividade entre aplicativos ou componentes de aplicativos em uma rede distribuída. Ao facilitar a conexão de aplicativos que não foram projetados para se conectar entre si e oferecer funcionalidade para conectá-los de maneira inteligente, o middleware aperfeiçoa o desenvolvimento de aplicativos e acelera o prazo de lançamento no mercado.

Existem muitos tipos de middleware. Alguns, como message brokers ou monitores de processamento de transações, concentram-se em um tipo de comunicação. Outros, como servidores de aplicativos da Web ou middleware de dispositivo móvel, oferecem uma variedade completa de recursos de comunicação e conectividade necessários para criar um tipo específico de aplicativo. Outros ainda, como a solução de plataforma de integração como serviço (iPaaS) baseada na cloud ou um barramento de serviço corporativo (EBS), funcionam como um hub de integração centralizado para conectar todos os componentes de uma empresa. (Há até mesmo um middleware que permite que os desenvolvedores criem seu próprio middleware personalizado).

O nome Middleware foi dado porque o primeiro middleware geralmente atuava como mediador entre um front-end de aplicativo, ou cliente, e um recurso de back-end. Por exemplo, um banco de dados, um aplicativo de mainframe ou um dispositivo de hardware especializado, do qual o cliente poderia solicitar dados. 

Mas o middleware de hoje opera muito além desse escopo. O middleware de portal, por exemplo, abrange o front-end do aplicativo, bem como as ferramentas para conectividade de back-end; o middleware de banco de dados normalmente inclui seu próprio armazenamento de dados. E, como você verá a seguir, uma classe emergente de middleware utiliza a tecnologia de contêineres para ajudar os desenvolvedores a se conectarem a recursos distribuídos em várias clouds.

Como o middleware funciona

Em seu nível mais básico, o middleware permite que desenvolvedores criem aplicativos sem precisar criar uma integração customizada toda vez que for necessário conectar-se a componentes de aplicativos (serviços ou microsserviços), fontes de dados, recursos de computação ou dispositivos.

Ele faz isso ao disponibilizar serviços que permitem que aplicativos e serviços diferentes se comuniquem usando frameworks dos sistemas de mensagens comuns, como JSON (Javascript Object Notation), REST (transferência de estado representacional), XML (linguagem de marcação extensível), SOAP (Simple Object Access Protocol) ou serviços da Web. Normalmente, o middleware também oferece serviços que permitem que componentes escritos em várias linguagens, como Java, C++, PHP e Python, conversem entre si.

Além de proporcionar essa interoperabilidade que gera economia de trabalho, o middleware também inclui serviços que ajudam os desenvolvedores a:

  • Configurar e controlar conexões e integrações. Com base nas informações de uma solicitação de aplicativo de cliente ou de front-end, o middleware pode customizar a resposta do aplicativo ou serviço de back-end. No aplicativo de e-commerce de um varejista, a lógica do aplicativo de middleware pode classificar resultados de procura de produtos a partir de um banco de dados de inventário de back-end pela localização das lojas mais próximas, baseado no endereço IP ou nas informações de localização no cabeçalho de solicitação HTTP. 

  • Obter conexões e transferência de dados seguras.  O middleware normalmente estabelece uma conexão segura do aplicativo de front-end até as fontes de dados de back-end usando Segurança da Camada de Transporte (TSL) ou outro protocolo de segurança de rede. E ele pode fornecer recursos de autenticação, solicitando credenciais (nome de usuário e senha) ou certificados digitais das solicitações do aplicativo de front-end. 

  • Gerenciar o tráfego dinamicamente em sistemas distribuídos. Quando ocorre um pico no tráfego do aplicativo, o middleware corporativo pode ajustar a escala para distribuir as solicitações de clientes para diversos servidores locais ou na cloud. E os recursos de processamento simultâneo podem evitar problemas quando múltiplos clientes tentam acessar as mesmas fontes de dados de back-end simultaneamente.
Tipos de middleware

Existem muitos tipos diferentes de middleware. Alguns focam em tipos específicos de conectividade, outros em aplicativos, componentes de aplicativo e dispositivos específicos, alguns combinam recursos de middleware para uma tarefa específica de desenvolvimento. Alguns dos tipos de software de middleware mais conhecidos e usados são:

O middleware orientado a mensagens (MOM) permite que componentes de aplicativos usem diferentes protocolos de sistema de mensagens para se comunicar para trocar mensagens. Além de converter ou transformar mensagens entre aplicativos, o MOM gerencia o encaminhamento das mensagens de modo que elas sempre alcancem os componentes adequados na ordem apropriada. Exemplos de MOM incluem filas de mensagens e message brokers.

O middleware de chamada de procedimento remoto (RPC) permite que um aplicativo acione um procedimento em outro aplicativo, em execução no mesmo computador ou em outro computador ou rede, como se ambos fossem parte do mesmo aplicativo no mesmo computador.

O middleware de dados ou banco de dados simplifica o acesso a, assim como a interação com, bancos de dados de back-end. Normalmente, o middleware de banco de dados é alguma forma do servidor de banco de dados SQL.

O middleware de API (interface de programação de aplicativos) fornece ferramentas que os desenvolvedores podem usar para criar, publicar e gerenciar APIs em seus aplicativos para que outros desenvolvedores possam se conectar a eles. Alguns middlewares de API incluem ferramentas para monetizar APIs, permitindo que outras organizações as usem e paguem por elas. Exemplos de middleware de API incluem plataformas de gerenciamento de API, gateways de API e portais de desenvolvedor de API.

O middleware ORB (Object Request Broker) atua como intermediário entre uma solicitação de um objeto ou componente do aplicativo e o atendimento dessa solicitação por outro objeto ou componente na rede distribuída. ORBs operam com a arquitetura Common Object Request Broker (CORBA), que permite que um componente de software faça uma solicitação a outro sem saber onde ele está hospedado ou a aparência de sua IU, o "broker" trata essas informações durante a troca.

O middleware transacional oferece serviços para suportar a execução de transações de dados em toda uma rede distribuída. Os middlewares transacionais mais conhecidos  são os monitores de processamento de transações (TPMs), que asseguram que transações continuem de uma etapa para a próxima, executando a troca de dados, incluindo/alterando/excluindo dados onde necessário, etc., até conclusão.

Middleware de fluxo de dados assíncrono replica um fluxo de dados em um armazenamento intermediário, permitindo o compartilhamento de dados entre vários aplicativos. O Apache Kafka é um dos exemplos mais conhecidos de middleware de fluxo de dados em tempo real.

O dispositivo de middleware oferece um conjunto de recursos focado em integração e conectividade para o desenvolvimento de aplicativos para um sistema operacional móvel específico.

O middleware de portal oferece ferramentas e recursos para integrar conteúdo e recursos de vários aplicativos relacionados em um painel centralizado para criar um único aplicativo composto.

O middleware de robótica simplifica o processo de integração de hardware, firmware e software robótico de diversos fabricantes e localidades.

Middleware de integração de aplicativos corporativos


O middleware de integração de aplicativos corporativos permite que uma organização estabeleça um hub de integração corporativa, uma maneira padronizada de conectar todos os aplicativos, componentes de aplicativos, processos de negócios e fontes de dados de back-end em toda a empresa.

Até cerca de dez anos atrás, o middleware de integração de aplicativos mais conhecido era o barramento de serviço corporativo (ESB), que serviu como hub de integração dentro de uma arquitetura orientada por serviços (SOA). Atualmente, o iPaaS permite que uma organização conecte aplicativos, dados, processos e serviços em ambientes locais, de cloud privada e pública, sem o trabalho e a despesa de compra, instalação, gerenciamento e manutenção do middleware de integração (e do hardware em que ele é executado) dentro de seu próprio data center.

Middleware de plataforma


O middleware de plataforma (ou middleware de plataforma de aplicativo) pode dar ainda mais suporte ao desenvolvimento de aplicativos e acelerar a entrega de aplicativos fornecendo um ambiente de hospedagem de tempo de execução, como um ambiente de tempo de execução Java (Java RE) ou contêineres, ou ambos, para aplicativos ou lógica de negócios. O middleware de plataforma pode incluir ou combinar servidores de aplicativos corporativos,  servidores da web e sistemas de gerenciamento de conteúdo, bem como outros tipos de middleware listados acima.

Middleware e aplicativos nativos da cloud

Nativo da cloud é uma abordagem de desenvolvimento de aplicativos que usa tecnologias da cloud computing com o objetivo de oferecer desenvolvimento, implementação e gerenciamento consistentes em todo o ambiente local e da cloud pública e privada. 

Na prática, os aplicativos nativos da cloud de hoje são aplicativos desenvolvidos a partir de microsserviços e implementados em contêineres ou estocados usando o Kubernetes. Os microsserviços são componentes de aplicativos fracamente acoplados que abrangem sua própria pilha e podem ser implementados e atualizados independentemente uns dos outros, além de se comunicarem entre si usando uma combinação de APIs de REST, message brokers e fluxos de eventos. Os contêineres são executáveis leves que contêm o código do aplicativo, como microsserviços, junto com apenas as bibliotecas e dependências do sistema operacional necessárias para executar esse código em qualquer infraestrutura tradicional de TI ou da cloud.

Juntas, essas e outras tecnologias relacionadas criam uma plataforma potente que pode ser desenvolvida uma vez e implementada em qualquer lugar para a entrega de novos aplicativos na cloud híbrida e para a modernização de sistemas legados tradicionais para uso na cloud. Porém, eles também geram um ambiente de desenvolvimento complexo que combina ainda mais aplicativos de software, fontes de dados, linguagens de programação, ferramentas e sistemas distribuídos. 

O middleware pode resolver parte dessa complexidade, mas executar aplicativos conteinerizados com middleware convencional pode aumentar a complexidade, bem como o tipo de sobrecarga de infraestrutura que os contêineres foram projetados para eliminar. Por esta razão, plataformas conhecidas de desenvolvimento de aplicativos na cloud, como o Cloud Foundry (link externo à IBM) e o Red Hat Open Shift evoluíram para incluir middleware conteinerizado, ou seja, middleware em módulos para que apenas as funções de conectividade requeridas fossem incluídas em um contêiner.

Soluções relacionadas
WebSphere Application Server

Um ambiente de tempo de execução de servidor Java flexível e altamente seguro para aplicações corporativas.

Conheça o WebSphere Application Server
IBM API Connect

Gerencie seu ecossistema de API entre diversas clouds, incluindo a melhoria dos esforços de socialização e monetização.

Conheça o IBM API Connect
Automação impulsionada por IA

A automação impulsionada por IA pode ajudar sua empresa, dos fluxos de trabalho de negócios às operações de TI. Descubra como as empresas líderes estão se transformando.

Conheça a automação impulsionada por IA
Recursos O que é um message broker?

Os message brokers são uma tecnologia de comunicação entre aplicativos que suporta arquiteturas nativas de cloud, baseadas em arquiteturas de microsserviços, serverless e da cloud híbrida.

O que é iPaaS (plataforma de integração como serviço)?

iPaaS é uma solução baseada em cloud que padroniza e simplifica a integração entre ambientes na cloud e no local.

O que é uma API de REST?

As APIs REST oferecem uma maneira flexível e leve de integrar aplicativos e surgiram como o método mais comum para conectar componentes em arquiteturas de aplicativos de microsserviços.

Dê o próximo passo

O IBM MQ oferece um sistema de mensagens altamente seguro, de alto desempenho e comprovado para ambientes híbridos e multi-cloud. Conecte aplicativos e microsserviços em data centers privados, em ambientes híbridos ou multi-cloud e na borda de sua empresa. Aproveite o valor de seus dados de missão crítica existentes para obter insights em tempo real. Proteja seus negócios de dados incorretos e erros de aplicativos com uma entrega de mensagens de exatamente uma vez: o IBM MQ nunca irá perder uma mensagem ou entregar uma mais de uma vez.

Saiba mais sobre o IBM MQ