um conjunto de serviços que permite a
interação, através da rede, de múltiplos
processos executando em uma ou mais
máquinas.
é essencial para migrar aplicações de
"mainframe" para aplicações
cliente/servidor provendo comunicação
através de plataformas heterogêneas
se localiza entre a aplicação e o sistema
operacional
oferece serviços de propósito geral que
se situam entre a aplicação e a
plataforma utilizada (sistema
operacional mais hardware
Serviçod
• Ir ao encontro de uma
grande variedade de
aplicações,
Annotations:
por exemplo: ser capaz de
traduzir ou facilitar a adição de
mensagens de vários formatos para
serem utilizados em diversas aplicações.
• Ser implementados de
forma a possibilitar a
execução em plataformas
distintas.
Annotations:
Por exemplo, em sistemas
distribuídos as aplicações localizadas em diferentes plataformas podem usar o
serviço "middleware" para se comunicar e/ou trocar dados, aumentando assim a "interoperabilidade
• Possibilitar serem
acessados remotamente
por outros serviços ou
aplicações
• Suportar, idealmente, um
protocolo padrão
Annotations:
por exemplo, "Transmission Control Protocol/Internet Protocol"
(TCP/IP) ou "International Standards Organization" (ISO) "Open
System Interconnect" (OSI)
• Suportar uma "Application
Programming Interface" (API)
padrão. Os serviços devem ser
transparentes com respeito a
API, isto é, eles devem ser
acessados via APIs sem
necessidade de modificá-las
API (interface de programação de uma aplicação)
um conjunto de regras para escrever funções ou
chamadas de subrotinas que acessam uma biblioteca
Annotations:
Por exemplo, para enviar dados uma aplicação pode invocar uma API que
apresenta uma função do tipo "SEND" especificando como parâmetros o
nome destino e os ponteiros para os dados, assim, esta API, que é uma interface
escrita utilizando regras específicas, acessa uma biblioteca que contém a
respectiva função. A biblioteca pode ser atualizada mas mantidas as API as
aplicações não precisam ser alteradas. APIs combinam recuperação de erro,
tradução de dados, segurança, filas e nomeação com interfaces de fácil
utilização que compreendem ações/comandos simples, mas poderosos
tipos
• Chamada de Procedimento Remoto
("Remote Procedure Call" - RPC
Annotations:
os programas usando RPCs comunicam-se via procedimentos ou tarefas
("tasks") que agem em "buffers" de dados compartilhados
(Vondrak, 1998).
• Linguagem Padrão de Consulta
("Standard Query Language" - SQL):
• Transferência de Arquivo ("File Transfer"):
Annotations:
permite compartilhamento de dados através do envio de arquivos fomatados
entre as aplicações
• Entrega de Mensagens
Annotations:
provê compartilhamento de dados pela comunicação via pequenas mensagens
formatadas entre as aplicações
O principal propósito do "middleware" é ajudar na
resolução de muitos problemas de "conectividade" e
"interoperabilidade" de aplicações
Para determinar os tipos de serviços "middleware" necessários
• Se a aplicação é um serviço
de sistema distribuído que inclue a comunicação programa a
programa como ponto crítico, os serviços "middleware" que a
auxiliam são os serviços de comunicação, tais como,
mensagem "peer-to-peer", chamada de procedimento remoto
(RPC), fila de mensagens, correio eletrônico, troca de dados por
meio eletrônico, etc.
que permite o acesso de aplicações aos serviços de rede e de
banco de dados, os serviços "middleware" que a auxiliam são
os serviços de gerenciamento, tais como, balanceamento de
carga na rede, servidor de diretório, gerenciador de históricos
("log"), gerenciador de arquivos, gerenciador de gravação,
sistemas de banco de dados relacionais e orientados a objeto,
gerenciador de repositório, etc
de gerenciamento que permite que as aplicações e funções
do sistema sejam continuamente monitoradas de forma a
assegurar uma performance ótima do ambiente distribuído, os
serviços "middleware" que a auxiliam são os serviços de
gerenciamento de sistema e controle, tais como, serviços de
notificação de eventos, gerenciamento de configuração,
gerenciamento de instalação de software, detetor de falhas,
coordenador de recuperação, serviço de autenticação, serviços
de auditoria, serviços de criptografia, serviços de controle de
acesso, gerenciamento de "threads", gerenciamento de
transação, recursos de "broker", seqüenciador de requisições,
seqüenciador de tarefas, etc