Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5
Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos tendo como base processos autônomos que precisam trocar dados entre si através da rede. Em um mesmo computador, dois processos podem se comunicar através de: Pipes Interrupções e sinais Filas de Mensagem Semáforos Memória Compartilhada Sockets
Principais tecnologias utilizadas em sistemas distribuídos Socket RPC (Remote Procedure Call) CORBA (Common Object Request Broker Architecture) RMI (Remote Method Invocation) DCOM (Distributed Component Object Model) MOM (Message Oriented Middleware)
Sockets em Redes IP Em redes IP, um socket pode ser criado utilizando- se os protocolos UDP ou TCP. O cliente socket precisa conhecer o endereço IP, a porta e o protocolo do servidor socket.
Sockets em Redes IP IPC com socket UDP Não garante a ordem das mensagens enviadas É possível perda de mensagens Extremamente leve Exemplos: ICQ (conexão entre clientes e servidor pela porta 4000), jogos em rede como Quake ou Counter Strike IPC com socket TCP Comunicação confiável com ordenação garantida Exemplos: ICQ (conexão entre clientes), HTTP (porta 80), FTP (porta 21) Internet SMTP FTP TELNET HTTP UDP, TCP IP LAN, MAN, WAN
Chamada de procedimento remoto - Remote Procedure Call - RPC Tecnologia desenvolvida pela Sun Microsystems para suportar a comunicação cliente-servidor utilizada no software Network File System (NFS). Permite a execução de funções remotas como se fossem funções locais.
Chamada de procedimento remoto - Remote Procedure Call - RPC Os programas servidores RPC devem se registrar no serviço de mapeamento de portas (Portmapper). O serviço de mapeamento de portas (Portmapper) é responsável por informar aos clientes o número das portas utilizadas pelos servidores.
Chamada de procedimento remoto - Remote Procedure Call - RPC 2. Envia nome Cliente Stub 3. Recebe porta Portmapper 1. Se registra, passando nome e porta 4. Requisição/Resposta Servidor O stub, programa gerado pelo compilador RPC, é responsável pela comunicação de baixo nível entre cliente, servidor e portmapper. Os programas cliente e servidor podem ser escritos em diferentes linguagens de programação e executar em diferentes plataformas de hardware e software
Tecnologias utilizadas em sistemas distribuídos Com o intensificação da programação orientada a objetos, novas tecnologias foram criadas para suportar a comunicação entre objetos distribuídos, tais como CORBA, DCOM e RMI.
Common Object Request Broker Architecture - CORBA CORBA é uma tecnologia de objetos distribuídos baseada em um Object Request Broker (ORB). ORB é o software que gerencia toda a comunicação entre clientes e objetos.
Common Object Request Broker Architecture - CORBA Cliente Stub Objeto Skel Objeto Skel ORB ORB IIOP A especificação da tecnologia CORBA é mantida pelo Object Management Group (OMG), consórcio formado por diversas organizações de tecnologia da informação.
Common Object Request Broker Architecture - CORBA Os processos cliente, ORB e objeto podem ser escritos em diferentes linguagens de programação e executar em diferentes plataformas de hardware e software.
Common Object Request Broker Architecture - CORBA Existem diversos servidores de aplicação baseados na tecnologia CORBA: Borland Visibroker, BEA Tuxedo, etc...
Distributed Component Object Model - DCOM Component Object Model (COM) é uma tecnologia da Microsoft para o desenvolvimento de objetos reutilizáveis. Distributed COM (DCOM) é uma extensão desta tecnologia que permite a interação entre objetos distribuídos. Cliente In-process Object RPC Local Object Remote Object RPC
Distributed Component Object Model - DCOM O cliente pode acessar um objeto DCOM de três formas: In-process Object: no mesmo processo Local Object Proxy: no mesmo computador Remote Object Proxy: em outro computador
Distributed Component Object Model - DCOM DCOM utiliza RPC para estabelecer a comunicação entre clientes e objetos. Os programas cliente e objeto podem ser escritos em diferentes linguagens de programação para a plataforma Windows (C++, MS Visual Basic, Borland Delphi, etc...). Existem os seguintes servidores de aplicação baseados na tecnologia DCOM: No Windows NT: Microsoft Transaction Server (MTS) No Windows 2000 e superior: COM+
Remote Method Invocation RMI RMI é uma tecnologia desenvolvida pela Sun Microsystems para suportar a implementação de objetos distribuídos em Java. 2. Envia nome (porta 1099) RMI Registry Cliente 3. Recebe Stub Stub 4. Invoca Objeto Stub 1. Se registra, passando nome e Stub
Remote Method Invocation RMI O RMI Registry é responsável por manter os stubs dos objetos nele registrados e enviá-los para os clientes quando requisitado. O stub, programa gerado pelo compilador RMI, é responsável pela comunicação de baixo nível entre cliente e objeto remoto. Os programas cliente e objeto devem ser escritos na linguagem Java, podendo executar em diferentes plataformas de hardware e software. RMI é a base da tecnologia de objetos distribuídos Enterprise Java Beans (EJB), utilizada em servidores Java EE (Ex.: JBoss, IBM WebSphere, BEA WebLogic, etc...).
Message Oriented Middleware MOM MOM é um software que permitem a comunicação assíncrona entre processos cliente e servidor. Exemplos: MS Message Queue IBM WebSphere MQ JBoss MQ 1. Coloca mensagem na fila Cliente 4. Obtém resultado na fila Servidor 2. Obtém mensagem na fila e processa MOM - Message Broker
Tecnologias X Tipos de servidores de aplicação Servidor de Mensagens Servidor TP Monitor Socket X X RPC CORBA DCOM RMI/EJB X Servidor de Objetos Distribuídos X (Tecno. de apoio) X (Tecno. de apoio) X (Tecno. de apoio) X X