Académique Documents
Professionnel Documents
Culture Documents
Agenda
Representao externa de dados e empacotamento Introduo Serializao de objeto Java XML
Comunicao Cliente-Servidor
Introduo
As informaes armazenadas nos processos so representadas como estruturas de dados, enquanto que as informaes nas mensagens so seqncias puras de bytes.
Ordenao de inteiros: big-endian e little-endian Cdigos de representao de caracteres: ASCII e Unicode
Introduo (2)
Representao externa do dados um padro aceito para representao de estruturas de dados e valores primitivos. Empacotamento (marshalling) o procedimento de pegar um conjunto de itens de dados e mont-los em uma forma conveniente para a transmisso em uma mensagem. Desempacotamento (unmarshalling) o processo inverso (remonta no destino).
Prof. Gustavo Callou 4
Introduo (3)
No primeiro caso, as atividades de empacotamento e desempacotamento so executadas por uma camada de middleware.
Serializao o processo de converso de uma estrutura de dados (ou objeto) em um formato que possa ser armazenado (em arquivo, em buffer na memria ou transmitido via rede) e, aps, reconstrudo no destino.
Objeto 1 Objeto 1
Seqncia de bytes
Objeto 2 transformao Objeto 3
reconstruo
Objeto 2
Objeto 3
origem
destino
A informao sobre uma classe consiste em seu nome e em um nmero de verso. Os objetos Java podem conter referncias para outros objetos. Para serializar um objeto, a informao de sua classe escrita por extenso, seguida dos tipos e nomes de suas variveis de instncia. Cada classe recebe um identificador (handle).
Valores serializados Person 3 1934 8-byte version number int year 5 Smith
The true serialized form contains additional type markers; h0 and h1 are handles
10
Uso de reflexo
Reflexo uma caracterstica de Java que permite que um programa inspecione classes e objetos em tempo de execuo. Atravs da reflexo pode-se acessar informaes sobre atributos, mtodos e construtores das classes armazenadas. A serializao usa reflexo para descobrir o nome da classe do objeto a ser serializado e os nomes, tipos e valores de suas variveis de instncia. Para a desserializao, o nome da classe na forma serializada usado para criar uma classe.
Prof. Gustavo Callou 11
12
XML foi projetada para ser usada por vrios aplicativos, para diferentes propsitos. Os documentos XML, sendo textuais, podem ser lidos por serem humanos. O uso de uma representao textual, em vez de binria, torna as mensagens muito maiores.
13
<person id="123456789"> <name>Smith</name> <place>London</place> <year>1934</year> <!-- a comment --> </person >
Prof. Gustavo Callou 14
15
Esquemas XML
Um esquema XML define:
Os elementos e atributos que podem aparecer no documento; O modo como os elementos so aninhados; A ordem dos elementos; O nmero de elementos; Se um elemento est vazio ou se pode conter texto.
A definio de esquema permite o compartilhamento de muitos documentos diferentes O esquema tambm permite a validao dos documentos
16
<xsd:schema xmlns:xsd = URL of XML schema definitions > <xsd:element name= "person" type ="personType" /> <xsd:complexType name="personType"> <xsd:sequence> <xsd:element name = "name" type="xs:string"/> <xsd:element name = "place" type="xs:string"/> <xsd:element name = "year" type="xs:positiveInteger"/> </xsd:sequence> <xsd:attribute name= "id" type = "xs:positiveInteger"/> </xsd:complexType> </xsd:schema>
Prof. Gustavo Callou 17
Comunicao Cliente-Servidor
18
19
20
Protocolo requisio-resposta
O protocolo requisio-resposta baseado em trs primitivas de comunicao:
doOperation getRequest sendReply
A maioria dos sistemas RPC e RMI suportado por um protocolo semelhante. Aqui, a descrio do protocolo requisio-resposta ser atravs de RMI.
21
Comunicao requisio-resposta
Cliente Servidor
doOperation
Mensagem de Requisio getRequest seleciona o objeto executa o mtodo Mensagem de Resposta sendReply
(espera)
(continuao)
22
23
24
25
Timeouts
A primitiva doOperation utiliza um timeout para limitar a espera de uma mensagem de resposta do servidor. Opes que doOperation deve fazer aps o timeout:
Retorno imediato, informando para o cliente que o mtodo doOperation falhou. Envia a mensagem de requisio repetidamente at que receba uma resposta ou esteja seguro de que o servidor falhou. Como a mensagem de requisio pode ser retransmitida, o servidor projetado de modo a reconhecer mensagens duplicadas (pelo requestID).
26
Uma operao idempotente aquela que pode ser executada repetidamente, obtendo-se o mesmo resultado.
27
Histrico
Para os servidores que exigem retransmisso das respostas sem executar novamente as operaes, pode ser usado um histrico. O histrico precisa conter apenas a ltima mensagem de resposta enviada a cada cliente. As mensagens de histrico normalmente so descartadas aps um determinado perodo de tempo.
28
Protocolos RPC
Trs protocolos RPC so usados:
O protocolo request (R);
Servidor no oferece retorno algum e cliente no precisa de confirmao
29
30
31
32
Mtodos HTTP
GET: solicita o recurso cujo URL dado como argumento HEAD:requisio idntica ao GET, mas no retorna nenhum dado, s meta-dados. POST:especifica o URL de um recurso que pode tratar dos dados fornecidos com o pedido PUT:armazena os dados fornecidos na requisio na URL DELETE:o servidor exclui o recurso identificado pelo URL dado
Prof. Gustavo Callou 34
mtodo GET
URL ou nome de caminho verso HTTP cabeal. corpo http://www.uol.com.br/index.html TTP/ 1.1 H
35
status 200
motivo OK
cabeal.
corpo dados
36