Desafios enfrentados pela Middleware Mostramos que um dos pontos importantes na utilização de uma middleware é a redução na complexidade que ela proporciona. O desafio que uma middleware enfrenta atualmente, é facilitar a integração entre diversas aplicações disponíveis na internet. A integração entre usuários e aplicações para a internet está crescendo a cada dia, a integração entre essas aplicações é um desafio a ser superado pela middleware. A classificação de um middleware As middlewares podem ser classificadas diante das seguintes características: RPC – Remote Procedure Call: Forma inicial de comunicação entre os processos remotos operando em baixo nível. É importante observar que a PRC não se aplica muito bem em aplicações que trabalham em tempo real ou aplicações de grande porte. Monitor de processamento de transação: Promove um ambiente completo para aplicações de transações que acessam bancos de dados relacionais. Possui reduzido overhead na comunicação, devido a troca de mensagens simples (request/reply). ORB – Object Request Broker: é um tipo de RPC orientado a objeto. MOM – Orientado a mensagem: Trabalha com a troca de mensagens entre as aplicações de forma assíncrona. Homegrown: Destinado a aplicações específicas. Por possuir constantes atualizações e personalizações, torna-se caro e a sua flexibilidade é afetada. JMS – Serviço de mensagem java: conjunto de interfaces que possibilitam a troca de mensagens entre softwares java. Serviços oferecidos por uma middleware A middleware fornece serviços de propósito geral, situados entre as plataformas utilizadas e as aplicações. Os serviços oferecidos por uma middleware não são dependentes de plataforma e aplicação (propriedade dos componentes de uma middleware), tornando-se genérico entre aplicações de fabricantes diversos. Para ser considerado uma middleware, um serviço deve atender a um vasto número de aplicações de diversos ambientes, além de sua implementação ser independente de plataforma. Os serviços oferecidos normalmente por uma middleware são os seguintes: Gerenciamento de apresentação: gerenciamento de impressoras, gráficos, formulário, etc. Computação: ordenação, conversores de dados, controle do tempo. Gerenciamento de informações: gerenciador de log, serviços de diretório, gerenciamento de arquivos. Comunicação: mensagens ponto-a-ponto, chamadas remotas, filas de mensagens, exportação eletrônica de dados. Controle: threads, gerenciamento de transações. Gerenciamento do sistema: notificação de eventos, gerenciamento de comunicação, detecção de falhas. Sistema de entrega: Java Virtual Machine, Remote Procedure Call Comunicação entre processos: considerado o coração de uma middleware, ORB do CORBA. Interface com o usuário: formatos multimídia aceitos na internet.