sistemas distribuídos web services silvia cristina sardela bianchi

26
Sistemas Sistemas Distribuídos Distribuídos Web Services Web Services Silvia Cristina Sardela Bianchi

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Sistemas DistribuídosSistemas DistribuídosWeb ServicesWeb Services

Silvia Cristina Sardela Bianchi

Page 2: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

CenárioCenário• Considere uma agência de viagens que quando vai

vender um pacote precisa analisar:o Empresas aéreas: Determinar a melhor opção

entre os horários e preços dos vôos;o Hotéis: Melhores condições e preços;

• Atualmente a negociação com o cliente é feita de forma “manual”. Ou seja, o cliente vai até à agência, informa o local de destino, a data de partida e retorno e o padrão de hotel e a classe de vôo desejados;

Page 3: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

CenárioCenário• Com a finalidade de propiciar uma maior

comodidade aos clientes e agilizar o atendimento a agência deseja automatizar esse processo;

• É desejado que o site da agência possua recursos de forma que o cliente informe os dados e valor da viagem seja calculado;

Como esse processo pode ser automatizado?

Page 4: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

CenárioCenário• As empresas aéreas precisam disponibilizar formas

para as agências consultarem suas tabelas de vôos e preços,

• Os hotéis precisam disponibilizar formas para as agências consultarem suas tabelas de preços e reservas;

• O sistema da agência precisa acessar os dados dos hotéis e das empresas aéreas para analisar a melhor condição e oferece-lá ao cliente;

Page 5: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

CenárioCenário• Diferentes hotéis e empresas aéreas possuem diferentes

estruturas de informática;• Cada hotel e empresa aérea pode disponibilizar seus dados

utilizando uma tecnologia e forma de acesso diferentes;• Essa heterogeneidade complica o desenvolvimento da

solução;• A agência precisa saber quais as empresas aéreas e hotéis

que oferecem tal recurso, de forma que ela possa incluí-los na consulta;

Qual a solução para isso?

Page 6: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

MotivaçãoMotivação• Mitigação para problemas de integração

o Dados, plataformas,etc.• Simplificação da comunicação entre aplicações

oMenores custos de desenvolvimento, manutenção, implantação, etc.

• Eliminação do forte acoplamento das tecnologias RPC-styleo RPC, CORBA, RMI, e DCOMo Flexibilidade e adaptabilidade

• Reuso para outras aplicaçõeso Heterogeneidade

6

Page 7: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

MotivaçãoMotivação

• Garantir inter-operabilidadeoUsar protocolos web (HTTP e HTTPS) para

transporteoUsar URLs e URIs como referências para serviços

remotoso Tratar problemas de heterogeneidade dos

dados usando XML para representar os dados

7

Page 8: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Exemplo: Aplicação 3 camadasExemplo: Aplicação 3 camadas

Data Layer Presentation Layer

BusinessLayer

Aplicação Central Compras

boa arquitecturaDNA

Interface da aplicação dá acesso aos dados aplicacionais

Page 9: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Service Oriented ArchitectureService Oriented Architecture

Data Layer Presentation Layer

BusinessLayer

Serviço Central Compras

ServiceFaçade

UI

boa arquitectura 3-tier service

troca de mensagens

Dados e Lógica Negócio

encapsulados por uma Web Service

Façade

Interface desacoplado da

lógica de processamento dos

dados

Web Service Standards permitem ligaçõescross-platform

Page 10: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Automação de Processos de NegócioAutomação de Processos de Negócio

Serviço Central Compras UI Processo Compras

Serviço RH

Serviços Contabilidade

BusinessProcess

Automation

Múltiplos serviços combinados num único processo de negócio

integração com diferentes plataformas

Page 11: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

O que é? – Definição [1/2]O que é? – Definição [1/2]

• De forma extremamente simplista... o “Um site sem GUI”o Imagine poder usar o engenho de busca do

Google mas poder definir sua própria GUIo Estabelecimento de um contrato de serviço para o

cliente:• Requisição => tratamento de resultados

Page 12: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

O que é? – Definição [2/2]O que é? – Definição [2/2]

• ... formalizando:“conjuntos de protocolos e padrões que permitem que aplicações se comuniquem via uma rede (geralmente Internet). Esta comunicação baseada em padrões permite que as aplicações descrevam o que fazem e permite então chamar ou utilizar os serviços de outra aplicação.”

Page 13: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Web ServicesWeb Services• Implementam serviços que precisam ser

compartilhados;

• Podem ser desenvolvidos em qualquer plataforma utilizando qualquer ambiente de desenvolvimento;

• Devem ser capazes de comunicar com outros Web Services utilizando protocolos padrões;

• No cenário proposto (no início da apresentação) os hotéis e as empresas aéreas podem disponibilizar Web Services com operações para consulta de preços e condições;

Page 14: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Web ServicesWeb Services• O sistema da agência invocaria o Web Service

oferecido pelo hotel ou empresa aérea, efetuando a consulta desejada;

• Middleware baseado em três padrões:o Simple Object Access Protocol (SOAP);oWeb Services Description Language (WSDL);o UDDI (Universal Description, Discovery and

Integration);

Page 15: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Web Services: ArquiteturaWeb Services: Arquitetura

• Camada de Transporteo HTTP;o SMTP;o Etc;

• Camada de Mensagens:o SOAP;

• Camada de Dados:o XML (RPC Style,

Document Style);• Camada de descrição:

oWSDL;• Camada de descoberta:

o UDDI;

Page 16: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Web Services: PapéisWeb Services: Papéis• Provedor de Serviços: Disponibiliza um serviço

Web para que esse possa ser invocado por um outro software;

• Registro de Serviços: Repositório que mantém e fornece informações sobre Web Services;

• Cliente de Serviços: Aplicação que localiza um serviço, implementa sua interface e invoca o serviço;

Page 17: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

Web ServicesWeb Services

17

Page 18: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

SOAPSOAP

18

• Protocolo para trocar mensagens XML

o Inclui definição do formato das mensagens a trocar

o Inclui um mecanismo de ligação das mensagens SOAP com o protocolo de transporte usado: HTTP ou HTTPS (ou SMTP, …)

o Inclui mecanismo para tratar falhas

Page 19: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

SOAPSOAP

19

• No SOAP toda a informação está incluída no envelope da mensagem

• O envelope inclui elementos de cabeçalho e de corpo

Page 20: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

20

Page 21: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

SOAPSOAP

21

• Oneway: mensagem undirecional do cliente para o servidor

• Pedido-resposta: interação cliente-servidor-cliente• Notificação: interação unidirecional servidor-

clienteo E.g. callback, notificação

• Notificação-resposta: interação servidor-cliente-servidor

Page 22: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

WSDL: IDL para WSWSDL: IDL para WS

22

• Definição da interface em XMLo WSDL permite definir a interface do serviço, indicando

quais as operações disponíveis o WSDL define as mensagens trocadas na interação (e.g.

na invocação de uma operação, quais as mensagens trocadas)

o WSDL permite também definir a forma de representação dos dados e a forma de aceder ao serviço

• Especificação WSDL bastante verbosa – normalmente criada a partir de interface ou código do servidor

• Em Java e .NET existem ferramentas para criar especificação a partir de interfaces Java

• Sistemas de desenvolvimento possuem wizards que simplificam tarefa

Page 23: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

23

Page 24: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

WSDLWSDL

24

Parte Abstrata

Parte Concreta

Page 25: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

UDDI• Os clientes precisam de uma forma para encontrar Web

Services que atendem a uma determinada necessidade;• Exemplo:

o A agência de turismo precisa descobrir quais hotéis oferecem consultas através de Web Services;

• É necessário obter informações sobre o serviço oferecido;

• UDDI (Universal Description, Discovery and Integration) oferece a solução para tais questões;

Page 26: Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi

UDDI: Informações• Páginas brancas:

o Busca de organizações pelo nome;o Informações sobre contato (e-mail, telefone, etc);o Informações sobre os serviços oferecidos

• Páginas amarelas:o Busca de organizações ou serviços por categoria;o Categorias poder ser padronizadas ou definidas pelo

usuário;• Páginas verdes:

o Busca de serviços com base em características técnicas;