Você está na página 1de 22

Computação Distribuída

Comunicação entre aplicações


distribuídas
Comunicação entre processos -
Sockets
• Utilizam os protocolos TCP e UDP
• Transmitir uma mensagem entre sockets
• Send (sem bloquei) e Receiver (com bloqueio)
• Mensagens em forma de bytes (fluxo ou
stream)
• Criação de thread. Execução em paralelo.
Sockets - TCP
• Transferência de fluxo de bytes continuo

• Sem limite do tamanho da mensagem

• Usa esquema de confirmação para


recebimento.
Sockets - UDP
• Sem confirmação, se ocorrer falha a
mensagem pode não chegar

• Envio de pacotes de tamanho fixo


(datagramas)
RPC
• Encapsulam os procedimentos send e receiver

• Permite chamar métodos em outra máquina

• Transparência
RPC - Problemas
• Ponteiros, os procedimentos cliente e servidor
executam em espaços de memória diferentes

• Passagem de parâmetros e resultados podem


ser complicadas em máquinas diferentes

• Tratamentos de erros caso uma máquina


falhe.
RPC - Stub
• Apêndice (Stub) do cliente: e empacotam os
parâmetros em uma mensagem (Marshalling).
• Apêndice (Stub) do servidor: transforma as
requisições em chamada de procedimento
local (Unmarshalling).
RPC
RMI
• Permite invocar métodos de um objeto
remoto.
• Stub do cliente (proxy): responsável por
montar invocações a métodos remotos
• Stub do servidor (skeleton): responsável por
desempacotar a mensagem do cliente
RMI
CORBA
• OMG (Object Management Group)

• Permite a comunicação independente de linguagem

• Termo ORB (Object Request Broker) – Ajudar um


cliente a invocar um método remoto

• CORBA (Commom Object Request Broker Architecture)


– Definição de padrões para a invocação de métodos
remotos
CORBA - Componentes
• GIOP (General Inter-ORB Protocol) – Protocolo
de comunicação entre os ORB

• IIOP (Internet Inter-ORB Protocol) –


Implementação do GIOP para o protocolo
TCP/IP

• IDL (Interface Definition Language) –


Linguagem para a definição de interfaces
SOA
• Unidades lógicas de software
• Interface de comunicação
• Expõe funcionalidades através de interfaces
• Comunicação de forma transparente
• Fraco acoplamento
SOA - Características
• Fraco acoplamento
• Interoperabilidade
• Composição
• Reusabilidade
• Alta granularidade
• Ubiquidade
SOAP
• SOAP (Simple Object Access Protocol)

• É um protocolo padrão de troca de mensagens estruturado


em XML.

• O transporte da mensagem pode utilizar os protocolos da


internet como HTTP E SMTP.

• Independente da plataforma e linguagem de programação


por se escrito em XML
SOAP
• Define regras para o encapsulamento de dados que serão
transferidos entre dois computadores.

<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header />
<S:Body>
<ns2:somar
xmlns:ns2="http://interfaces.service.soap.unipam/">
<arg0>
<n1>5</n1>
<n2>10</n2>
</arg0>
</ns2:somar>
</S:Body>
</S:Envelope>
Envelope SOAP
• Header: é opcional e define informações como rota de transmissão e
informações relativa ao processamento da mensagem.
• Body: é obrigatório e define o conteúdo e a informação que será
transmitida.

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:somarResponse
xmlns:ns2="http://interfaces.service.soap.unipam/">
<return>
<resultado>15</resultado>
</return>
</ns2:somarResponse>
</S:Body>
</S:Envelope>
WSDL
• WSDL (Web Service Description Language)

• É uma especificação que provê recursos para descrever


web services utilizando o formato XML.

• Abstrata: descreve como o serviço pode ser invocado por


seus clientes. Operações, parâmetros de entrada e saída.

• Concreta: define os protocolos, formatos de dados e o


endereço onde o serviço será disponibilizados.
WSDL
• Componentes da parte concreta:
– Service: representa uma coleção de localizações de
serviços;
– Endpoint: contém informações sobre uma localização de
um serviço individual;
– Binding: referencia os vínculos entre os endpoints e as
operações;
– Types: permite construir tipos de dados;
– Documentation: permite incluir anotações adicionais ao
documento WSDL.
UDDI
• UDDI (Universal Description, Discovery, and Integration)
• O protocolo UDDI é uma especificação técnica para
descrever, descobrir e integrar os web services. Repositório de
serviços web.

– Páginas brancas: inclui informações gerais sobre uma


empresa;
– Páginas amarelas: inclui dados de classificação da empresa
ou serviço oferecido;
– Páginas verdes: incluir informações técnicas sobre um
serviço web.
REST
• REST (Representation State Transfer)

• Simplificar o desenvolvimento de serviços web.

• Não é um padrão e sim um estilo arquitetural


para a construção de sistemas distribuídos.

• Utiliza os padrões HTTP, XML, URI, JSON

• Evita o excesso de padronização.


REST
• Recurso de identificação através de URI.
• Interface Uniforme: recursos manipulados através de um
conjunto fixo de quatro operações.
– PUT: cria um novo recurso;
– DELETE: apaga um recurso;
– GET: recuperar o estado atual de um recurso;
– POST: altera um recurso
• Conteúdo: os recursos podem ser acessados em uma
variedade de formatos, XML, XHTL, JSON.

• REST é um estilo arquitetural para o desenvolvimento de


serviços web e RESTful é uma implementação do REST.

Você também pode gostar