Publicado em: 31 de julho de 2024
Colaboradores: Stephanie Susnjara, Ian Smalley
O middleware é um software que simplifica a conectividade e a comunicação entre aplicativos, componentes e fontes de dados, usado para acelerar o desenvolvimento de aplicativos em uma rede distribuída, funcionando como uma espécie de "cola" que une diferentes sistemas.
O middleware simplifica o desenvolvimento de aplicações e acelera o tempo de lançamento no mercado por meio de funções inteligentes que facilitam as conexões entre plataformas que inicialmente não foram projetadas para se conectar.
Vários tipos de middleware incluem o seguinte:
Saiba como o IBM WebSphere Automation pode ajudar a aumentar sua maturidade para a automação do gerenciamento de middleware e reduzir custos.
O middleware possibilita que os desenvolvedores criem aplicativos sem criar uma integração personalizada sempre que precisarem conectar a componentes de aplicativos (serviços ou microsserviços), fontes de dados, recursos de computação ou dispositivos.
O middleware faz isso oferecendo serviços que permitem que diferentes aplicativos e serviços se comuniquem por meio de estruturas de mensagens comuns, como notação de objeto JavaScript (JSON), transferência de estado representacional (REST), linguagem de marcação extensível (XML), protocolo de acesso a objetos simples (SOAP) ou serviços web.
Normalmente, o middleware também oferece serviços que permitem que componentes desenvolvidos em várias linguagens, como Java, C++, PHP e Python se comuniquem entre si.
Os componentes de arquitetura de middleware padrão contêm o seguinte:
Há muitos tipos diferentes de middleware.
Alguns se concentram em tipos específicos de conectividade, outros em aplicativos, componentes de aplicativos e dispositivos específicos. Alguns combinam recursos de middleware para uma tarefa específica de desenvolvimento de software.
Alguns dos tipos de software de middleware mais conhecidos e mais comumente utilizados são os seguintes:
O middleware baseado em mensagens (MOM) possibilita que componentes de aplicativos que utilizam diferentes protocolos de mensagens se comuniquem e troquem mensagens. Além de traduzir ou transformar mensagens entre aplicativos, o MOM gerencia o roteamento das mensagens para elas sempre chegarem aos componentes adequados na ordem correta. São exemplos de MOM filas de mensagens e corretores de mensagem.
O middleware de chamada de procedimento remoto (RPC) possibilita que um aplicativo acione um procedimento em outro aplicativo, em execução no mesmo computador ou em outro computador ou outra rede, como se ambos fizessem parte do mesmo aplicativo no mesmo computador.
O middleware de dados ou de banco de dados simplifica o acesso e a interação com bancos de dados back-end. Normalmente, middleware de banco de dados é uma forma de servidor de banco de dados SQL.
O middleware de interface de programação de aplicativos (API) oferece ferramentas que os desenvolvedores podem usar para criar, expor e gerenciar APIs para seus aplicativos, para outros desenvolvedores se conectem a eles.
Alguns middleware de API são ferramentas para monetizar APIs, possibilitando que diversas organizações as utilizem pelo preço de custo. Exemplos de middleware de API são plataformas de gerenciamento de API, gateways de API e portais de desenvolvedor de API.
O middleware do Object Request Broker (ORB) atua como um corretor 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.
Os ORBs operam com a Common Object Request Broker Architecture (CORBA), que possibilita que um componente de software faça uma solicitação a outro sem saber onde o outro está hospedado ou qual é a aparência de sua interface de usuário (UI) — o "broker" trata essas informações durante a troca.
O middleware transacional oferece serviços para apoiar a execução de transações de dados em uma rede distribuída. O middleware transacional mais conhecido são os monitores de processamento de transações (TPMs), que conduzem as transações de uma etapa para a outra, executando a troca de dados e adicionando, alterando ou excluindo dados quando necessário, entre outros, até a conclusão.
O middleware de streaming de dados assíncrono replica um fluxo de dados em um armazenamento intermediário, possibilitando o compartilhamento de dados entre vários aplicativos. O Apache Kafka é um dos exemplos mais conhecidos de plataformas de código aberto middleware para streaming de eventos em tempo real.
O middleware de dispositivo oferece um conjunto focado de recursos de integração e conectividade para o desenvolvimento de aplicativos para um sistema operacional móvel (SO) específico.
O middleware do portal proporciona ferramentas e recursos para integrar conteúdo e recursos de vários aplicativos relacionados "no vidro" ou em uma única tela para criar um único aplicativo composto.
O middleware de robótica simplifica a integração de hardware, firmware e software robóticos de vários fabricantes e locais.
Além de oferecer interoperabilidade que economiza trabalho, os serviços de middleware ajudam os desenvolvedores de software das seguintes maneiras.
Com base nas informações de solicitação do cliente ou do aplicativo front-end, o middleware pode personalizar a resposta do aplicativo ou serviço de back-end.
Por exemplo, no aplicativo de ecomércio eletrônico de um revendedor, a lógica do aplicativo de middleware pode classificar os resultados da pesquisa de produtos de um banco de dados de inventário de back-end por local de loja mais próximo com base no endereço IP ou nas informações de localização no cabeçalho da solicitação HTTP.
O middleware normalmente estabelece uma conexão segura do aplicativo front-end para fontes de dados back-end que utilizam o Transport Layer Security (TSL) ou outro protocolo de segurança de rede.
Ele pode entregar recursos de autenticação, desafiando solicitações de aplicativos front-end para credenciais (nome de usuário e senha) ou certificados digitais.
Quando o tráfego de aplicativos aumenta, o middleware empresarial pode ser dimensionado para distribuir solicitações de clientes em vários servidores, no local ou na nuvem.
Os recursos de processamento simultâneo podem evitar problemas quando vários clientes tentam acessar a mesma fonte de dados de back-end simultaneamente.
O middleware ajuda os desenvolvedores a realizar a modernização de aplicativos, transformando aplicativos legados monolíticos em aplicativos de nuvem criados com base na arquitetura de microsserviços.
A automação de middleware ajuda os desenvolvedores a simplificar e automatizar o gerenciamento de tarefas complexas de TI para melhorar a eficiência geral.
O Middleware oferece suporte às metodologias DevSecOps (que significa desenvolvimento, segurança e operações), ajudando as equipes a criar aplicativos com mais rapidez e, ao mesmo tempo, mitigar os riscos de segurança.
Há duas classes básicas de middleware: middleware de aplicativo corporativo e middleware de plataforma.
O middleware de integração de aplicativos corporativos possibilita que uma organização estabeleça um hub de integração corporativa. Isso proporciona 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 ampliada.
Até há cerca de uma década o middleware de integração de aplicativos corporativos mais prevalente era o barramento de serviço corporativo (ESB), que servia como hub de integração em uma arquitetura baseada em serviços (SOA).
Hoje, a plataforma de integração como serviço (iPaaS) possibilita que uma organização conecte aplicativos, dados, processos e serviços em uma nuvem híbrida— a combinação de ambientes locais, de nuvem privada e de nuvem pública. Isso ajuda as organizações a evitar o trabalho e as despesas de compra, instalação, gerenciamento e manutenção do middleware de integração (e do hardware em que ele é executado) em seu próprio data center. Os principais provedores de serviços de nuvem (CSPs) — Microsoft Azure, Google Cloud, Amazon Web Services (AWS) ou IBM Cloud — oferecem soluções iPaaS.
O middleware de plataforma (ou middleware de plataforma de aplicativo) oferece suporte ao desenvolvimento de aplicativos. Ele acelera a entrega de aplicativos oferecendo um ambiente de hospedagem de tempo de execução, como um ambiente de tempo de execução Java (Java RE), contêineres ou ambos, para lógica de aplicativos ou negócios. O middleware de plataforma pode conter ou combinar servidores de aplicativos corporativos, servidores web, sistemas de gerenciamento de conteúdo (CMSs) e outros tipos de middleware listados acima.
Tanto a plataforma de integração como serviço (iPaaS) iPaaS quanto a plataforma como serviço (PaaS) são soluções de computação baseadas em nuvem que atendem a propósitos diferentes. Enquanto o iPaaS se concentra na permissão da integração de aplicativos, dispositivos e sistemas, a PaaS oferece às organizações uma plataforma para criar, executar e gerenciar aplicativos.
O PaaS é uma escolha popular para pequenas empresas e startups com orçamentos de TI limitados, pois possibilita que as equipes criem aplicativos de maneira econômica em comparação com a criação de plataformas de desenvolvimento internas. O iPaaS é a melhor opção para grandes organizações e empresas que executam arquiteturas complexas e dinâmicas.
Dito isso, os serviços iPaaS geralmente funcionam em conjunto com serviços de nuvem, incluindo PaaS e software como serviço (SaaS). Por exemplo, as organizações podem combinar soluções de desenvolvimento iPaaS com PaaS (por exemplo, Cloud Foundry, Red Hat OpenShift) ou SaaS (GitHub).
Nativo da nuvem é uma abordagem de desenvolvimento de aplicativos que utiliza tecnologias fundamentais de computação em nuvem para entregar desenvolvimento, implantação e gerenciamento consistentes em ambientes de nuvem híbrida.
As aplicações nativas em nuvem de hoje são construídas a partir de microsserviços e implementadas em contêineres que usam o Kubernetes, uma plataforma de orquestração de contêiner amplamente utilizada.
Os microsserviços são componentes de aplicativos levemente acoplados que abrangem sua própria pilha e podem ser implantados e atualizados independentemente uns dos outros. Eles se comunicam com uma combinação de APIs REST, agentes de mensagens e fluxos de eventos.
Contêineres são tarefas de execução leves que empacotam código de aplicativo, como microsserviços, junto com apenas as bibliotecas e dependências do sistema operacional necessárias para executar esse código em qualquer nuvem ou infraestrutura de TI tradicional.
Juntas, essas e outras tecnologias relacionadas criam uma plataforma poderosa, desenvolvida uma vez e implantada em qualquer lugar, para oferecer novos aplicativos de nuvem híbrida e modernizar os sistemas legados tradicionais para uso na nuvem. No entanto, também levam a 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. No entanto, executar aplicativos containerizados com middleware convencional pode adicionar complexidades próprias, incluindo a sobrecarga de infraestrutura que os contêineres foram projetados para eliminar. Por esse motivo, as plataformas de desenvolvimento de aplicativos em nuvem incluem middleware conteinerizado ou modularizado para que apenas as funções de conectividade necessárias possam ser empacotadas em um contêiner.
O middleware suporta o desenvolvimento de jogos servindo como um mecanismo de jogo. Essa camada de software ajuda a integrar perfeitamente vídeo, áudio e outros componentes essenciais de jogos.
Para instituições financeiras, o middleware integra aplicativos e bancos de dados de clientes para oferecer suporte a serviços bancários digitais, incluindo processamento de transações em tempo real.
Os dados de saúde sempre foram difíceis de acessar e compartilhar com segurança. Middleware é crucial para a interoperabilidade dos serviços de saúde, possibilitando um fluxo de dados perfeito em vários sistemas e aplicativos de saúde, como plataformas de telemedicina e registros eletrônicos de saúde (EHRs).
As organizações de comércio eletrônico usam middleware para conectar suas plataformas on-line a serviços de back-end cruciais, como processamento de pedidos, para aprimorar a experiência geral do cliente.
Na manufatura, o middleware ajuda a garantir que os sistemas de software de negócios, incluindo plataformas de planejamento de recursos empresariais (ERP), se integrem a outros aplicativos para oferecer uma visão unificada das operações. Isso ajuda a otimizar e agilizar a manutenção, a cadeia de suprimentos, a garantia de qualidade e outros.
Introduzido pela primeira vez no final da década de 1960, o termo middleware foi cunhado porque a primeira versão normalmente atuava como mediador entre um front-end de aplicativo (cliente) e um recurso de back-end (por exemplo, um banco de dados, um aplicativo mainframe ou um dispositivo de hardware especializado) a partir do qual o cliente pode solicitar dados.
Em resposta ao aumento da computação distribuída na década de 1980, o middleware aumentou como uma forma de vincular aplicativos mais recentes aos sistemas legados tradicionais.
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.
O middleware evoluiu para desempenhar um papel essencial no desenvolvimento moderno de aplicativos nativos da nuvem.
Ele usa tecnologia de contêiner , que possibilita que o DevOps e outras equipes se conectem a recursos distribuídos em ambientes multicloud . Isso oferece suporte à integração contínua (CI) e à entrega contínua (CD)—CI/CD— simplificando assim a programação, o teste e a implantação de aplicativos para um rápido dimensionamento e crescimento dos negócios.
As empresas estão cada vez mais explorando middleware como uma oferta de serviço na nuvem para comunicação entre sistemas e como uma ferramenta de gerenciamento de dados.
Um estudo da Technavio projetou que o mercado global de middleware como serviço (MWaaS) aumentaria em US$ 45,44 bilhões, com uma CAGR de 17,73% entre 2023 e 2028. O estudo atribui esse crescimento à adoção generalizada da computação em nuvem e a um aumento na computação serverless e microsserviços.1
Gerencie seu ecossistema de API em várias nuvens, incluindo o aumento de esforços de socialização e monetização.
Conecte, automatize e libere o potencial dos negócios com o software da plataforma de integração.
Explore como as soluções de entrega de aplicativos da IBM ajudam a criar novos aplicativos nativos da nuvem e a modernizar os aplicativos existentes.
Ofereça conectividade em todos os seus aplicativos e dados com recursos de integração para todos.
Gerencie e agilize o processo de transferência de grandes volumes de dados da sua empresa. Transmita dados de qualquer tamanho ou vídeo com taxa de bits com latência quase zero pela internet.
Os agentes de mensagens são uma tecnologia de comunicação entre aplicativos que oferece suporte a arquiteturas de nuvem híbrida baseadas em microsserviços, sem servidor e nativas da nuvem.
A iPaaS é uma solução baseada em nuvem que padroniza e simplifica a integração em ambientes locais e em nuvem.
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 microsserviços.
O gerenciamento de APIs é o processo escalável de criar, publicar e gerenciar conexões de interface de programação de aplicativos (API) em um ambiente corporativo e multinuvem.
Integrar aprendizado de máquina (ML) e inteligência artificial (IA) na otimização de decisões (DO) é essencial para melhorar a eficiência nos processos de negócios.
A exploração de dados em tempo real é essencial para o sucesso dos negócios.
Todos os links levam para fora do site ibm.com
1 Middleware as a Service (MWAAS) Market Analysis North America, Europe, APAC, South America, Middle East and Africa – US, China, Japan, UK, Germany – Size and Forecast 2024-2028, Technavio, Janeiro de 2024