SISTEMAS DISTRIBUÍDOS

Propaganda
SISTEMAS DISTRIBUÍDOS
Aula 1
Web Services em Java
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 1
SUMÁRIO
Web services
Exemplo
Exercício
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 2
WEB
SERVICES
A Web service is a software system designed to support
interoperable machine-to-machine interaction over a network.
It has an interface described in a machine-processable format,
specifically WSDL.
Other systems interact with the Web service in a manner prescribed by
its description using SOAP messages, typically conveyed using HTTP
with an XML serialization in conjunction with other Web-related
standards
Protocolo: HTTP e HTTPS (eventualmente SMTP)
Referências: URL/URI
Representação dos dados: XML
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 3
WSDL – I
NTERFACE
D
ESCRIPTION
L
ANGUAGE
PARA WEB SERVICES
Define a interface do serviço, indicando quais as operações
disponíveis
Define as mensagens trocadas na interacção (e.g. na invocação
duma operação, quais as mensagens trocadas)
Permite definir a forma de representação dos dados e a forma
de aceder ao serviço
Especificação WSDL bastante verbosa – pode ser criada
automaticamente a partir de interface ou código do servidor
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 4
WSDL – ABSTRACT
MODEL
Service
Interface
definition
wsdl
WebService
Client
SOAP
XML
Internet
WWW
wsdl
SOAP
XML
WebService
Provider
bind / interact
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 5
WEB SERVICES
EM JAVA
- SERVIDOR
SERVIDOR:
• 
Começa pela criação da interface e a sua implementação
• 
Utilizam-se anotações para indicar: os métodos
disponibilizados remotamente; a classe que implementa o
serviço propriamente dito.
• 
Instancia-se, criando um endpoint HTTP e fazendo a sua
ligação (binding) à instância da classe principal.
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 6
WEB SERVICES
EM JAVA
- CLIENTE
CLIENTE:
• 
Através do URL de uma instância do serviço, geram-se
classes auxiliares (stubs) usando o comando wsimport
• 
Os stubs gerados no passo anterior, permitirão ao cliente
instanciar um “middleware” que expõe as operações do
serviço localmente, acessíveis por invocação direta de
métodos.
• 
Havendo múltiplas instâncias do serviço, o cliente pode
aceder a cada uma delas através do URL respetivo.
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 7
WEB SERVICES
EM JAVA
– ASPETOS ADICIONAIS
A passagem de parâmetros e o retorno dos métodos é feita por
cópia dos valores (não há passagem de referências)
O tipo dos parâmetros e do retorno pode sofrer alterações na
tradução (e geração dos stubs).
• 
Por exemplo, String[] -> List<String>
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 8
EXEMPLO – SERVIDOR
- 
Servidor
- 
Geração dos stubs
- 
Cliente
DE
FICHEIROS
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 9
EXERCÍCIO– SERVIDOR
DE
FICHEIROS
Aumente o webservice dados de modo a permitir listar o
conteúdo de uma directoria do servidor
Aumente o webservice dado de modo a permitir transferir o
conteúdo de um ficheiro…
QUIZ: e se o ficheiro for muito grande???
Material de suporte às aulas práticas de Sistemas Distribuídos Copyright DI – FCT/ UNL / 10
Download