Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi.

Post on 17-Apr-2015

107 views 0 download

Transcript of Sistemas Distribuídos Web Services Silvia Cristina Sardela Bianchi.

Sistemas DistribuídosSistemas DistribuídosWeb ServicesWeb 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;

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?

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;

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?

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

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

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

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

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

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

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.”

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;

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);

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;

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;

Web ServicesWeb Services

17

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

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

20

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

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

23

WSDLWSDL

24

Parte Abstrata

Parte Concreta

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;

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;