sistemas distribuídos web services silvia cristina sardela bianchi
TRANSCRIPT
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;