programacao de sistemas distribuidos middle ware 01

29
Programação de Sistemas Distribuídos Middleware Prof(a): Marília Freire @IFRN

Upload: valeriojunior

Post on 02-Jul-2015

120 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Programacao de Sistemas Distribuidos Middle Ware 01

Programação de Sistemas Distribuídos

Middleware

Prof(a): Marília Freire@IFRN

Page 2: Programacao de Sistemas Distribuidos Middle Ware 01

Roteiro da Aula

• Middleware

• Por que Middleware?

• Categorias de Middleware

• Middleware procedural (RPC)

Page 3: Programacao de Sistemas Distribuidos Middle Ware 01

Middleware

Page 4: Programacao de Sistemas Distribuidos Middle Ware 01

O que são aplicações distribuídas?

• Aplicações formadas por módulos que se espalham por diversas máquinas

Internet

Page 5: Programacao de Sistemas Distribuidos Middle Ware 01

Como desenvolver aplicações distribuídas?

• Desenvolver componentes diretamente no topo das primitivas do sistema operacional é extremamente complexo para muitos desenvolvedores de aplicações.

Page 6: Programacao de Sistemas Distribuidos Middle Ware 01

Como desenvolvê-las de forma

mais amigável?

• Usar suporte de Sistemas de Middlewarelocalizados entre componentes do sistema distribuído e componentes do sistema operacional

– tarefa de facilitar as interações entre esses componentes

Page 7: Programacao de Sistemas Distribuidos Middle Ware 01

Middleware

• Software que reside entre o sistema operacional e a aplicação a fim de facilitar o desenvolvimento de aplicações

• Camada de software que permite a comunicação entre aplicações (distribuídas)

Page 8: Programacao de Sistemas Distribuidos Middle Ware 01

Middleware (cont.)

• Um conjunto de serviços que fornece comunicação e distribuição de forma “transparente” à aplicação

– Middleware permite que processos em diferentes espaços de endereçamento consigam se comunicar.

Page 9: Programacao de Sistemas Distribuidos Middle Ware 01

POR QUE USAR MIDDLEWARE?

Page 10: Programacao de Sistemas Distribuidos Middle Ware 01

Por que Middleware?

• Construir aplicações distribuídas diretamente no topo de uma camada de transporte é MUITO difícil

• Comunicação em geral precisa manipular o envio de parâmetros complexos

• Diferentes codificações de tipos de dados

Page 11: Programacao de Sistemas Distribuidos Middle Ware 01

Por que Middleware?

• Desenvolvedores e administradores teriam que implementar a ativação de componentes

• Implementar sincronização é extremamente tedioso e propenso a erros

Page 12: Programacao de Sistemas Distribuidos Middle Ware 01

Por que Middleware?

• Middleware simplifica a construção de Aplicações Distribuídass implementando as camadas de apresentação e sessão

Page 13: Programacao de Sistemas Distribuidos Middle Ware 01

Middleware ou o que????

• Denominações Equivalentes:

– Modelos de Integração de Objetos

– Plataformas de Distribuição de Objetos

Page 14: Programacao de Sistemas Distribuidos Middle Ware 01

Categorias de Middleware

Page 15: Programacao de Sistemas Distribuidos Middle Ware 01

Categorias de Middleware

• Middleware procedural / Remote ProcedureCall (RPC)

• Middleware orientado a transação/transacional

• Middleware orientado a mensagem (MOM)

• Middleware orientado a objetos (MOO)

Page 16: Programacao de Sistemas Distribuidos Middle Ware 01

MIDDLEWARE PROCEDURAL

Page 17: Programacao de Sistemas Distribuidos Middle Ware 01

Chamadas Remotas de Procedimentos (RPC)

• É uma chamada de procedimento que cruza as fronteiras dos componentes locais (hosts)

• Idéia básica– Não há diferença lógica, para o cliente, entre chamar um procedimento

local ou um remoto

• Uma chamada remota de procedimento usa comunicação direta, orientada a conexão e síncrona para permitir a um processo cliente chamar um procedimento remoto.– Paradigma originalmente criado pela Sun Microsystems como parte de sua

plataforma Open Network Computing (ONC)

Page 18: Programacao de Sistemas Distribuidos Middle Ware 01

Estrutura RPC

• Os componentes do lado servidor que executam RPCs são chamados programasRPC.

• Um programa RPC tem uma interface que define os procedimentos que podem ser chamados remotamente

– Define também os tipos de dados dos argumentos que podem ser passados para procedimentos remotos

Page 19: Programacao de Sistemas Distribuidos Middle Ware 01

Interface Definition Language - IDL

• Linguagem definida pelo middleware que é independente de linguagem de programação e responsável por descrever todos os serviços disponibilizados por uma aplicação.

Page 20: Programacao de Sistemas Distribuidos Middle Ware 01

Stub

• Código gerado por sistemas de chamadas remotas de procedimentos

– contêm o código de chamadas à rede

– protege os programadores de aplicações de detalhes de comunicação de baixo nível, como sockets

– gerados automaticamente por algum compilador– ex RPCgen

Page 21: Programacao de Sistemas Distribuidos Middle Ware 01

Serviços

– comunicação síncrona (request/wait-for-reply)

– Vários problemas devem ser tratados pelo programador

– Ex. Falhas na comunicação

Page 22: Programacao de Sistemas Distribuidos Middle Ware 01

Como habilitar uma chamada?

• Passos necessários para habilitar uma chamada remota de procedimento:

1. Codificar o nome e os parâmetros do procedimento usando a sintaxe da Interface Definition Language(IDL) fornecida pelo middleware.

2. Gerar o código fonte para um stub cliente e para um skeleton servidor (uso de compilador, ex RPCgen).

3. Compilar e linkar o stub no processo cliente.

4. Compilar e linkar o skeleton no processo servidor.

Page 23: Programacao de Sistemas Distribuidos Middle Ware 01

Para realizar uma chamada

• Para fazer uma chamada (invocação) remota de procedimento:

1. O processo cliente chama o stub do cliente como se fosse um procedimento local.

2. O stub do cliente converte os parâmetros em uma cadeia de bits (marshalling) e envia os bits na rede para o skeleton do servidor.

3. O skeleton do servidor converte os bits de volta para parâmetros (unmarshalling) e chama o procedimento no servidor.

4. O skeleton do servidor converte a resposta do procedimento em uma cadeia de bits e envia pela rede para o stub do cliente.

5. O stub do cliente converte os bits para a resposta e a retorna para o procedimento chamador.

Page 24: Programacao de Sistemas Distribuidos Middle Ware 01

Mecanismos de RPC conhecidos

• Distributed Computing Environment (DCE) daOpen Software Foundation (OSF).

• Open Network Computing (ONC) da SUN.

Page 25: Programacao de Sistemas Distribuidos Middle Ware 01

RPC: Camada de Apresentação

• Responsável por mapear estruturas de dados das aplicações para uma forma transmissível e homogênea.

Page 26: Programacao de Sistemas Distribuidos Middle Ware 01

RPC: Camada de Apresentação

• Os mapeamentos entre representações de dados de aplicação para transporte são chamados marshalling e unmarshalling.

– Marshalling pode ser implementado estaticamente em tempo de compilação ou dinamicamente em tempo de execução.

– Stubs dos lados cliente e servidor são implementações estáticas de marshalling e unmarshalling.

Page 27: Programacao de Sistemas Distribuidos Middle Ware 01

RPC: Camada de Sessão

• A implementação da camada de sessão deve habilitar clientes a localizar um servidor RPC (estática ou dinamicamente)

Page 28: Programacao de Sistemas Distribuidos Middle Ware 01

Exemplo do Unix (Dynamic Binding):

1. Cada host de uma rede Unix que suporta RPCs roda um daemon chamado portmap.

2. Todo servidor RPC registra seus programas no portmap daemon que roda no host.

3. Clientes podem contactar um único portmapdaemon para obter uma lista de todos os programas que residem no servidor.

4. Clientes podem também enviar por broadcast uma busca por um programa para todos os portmapdaemons de uma rede • os portmap daemons nos quais o respectivo programa

está registrado irá responder.

Page 29: Programacao de Sistemas Distribuidos Middle Ware 01