Serviços Web: Introdução
Sistemas Distribuídos
Mauro Lopes Carvalho Silva
Professor EBTT
DAI – Departamento de Informática
Campus Monte Castelo
Instituto Federal de Educação Ciência e Tecnologia do Maranhão
Sistemas Distribuídos – 8º Período
Objetivos
• Nesta aula iremos apresentar a solução baseada em
serviços web, uma das principais soluções em
sistemas distribuídos usados no dia a dia das
grandes corporações em seus ambientes de
desenvolvimento de software.
Sistemas Distribuídos – 8º Período
Plano de Aula
• Serviços Web: Introdução
– Introdução
– O que são Serviços Web?
– Características de Serviços Web
– Papéis em um Serviço Web
– Serviços Web de 1ª Geração
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Introdução
– Um web service (serviço web) fornece uma
interface de serviço que permite aos clientes
interagirem com servidores de uma maneira
“diferente” aos navegadores web;
– Os clientes acessam operações de um serviço web
por meio de requisições e respostas formatadas em
XML;
– Os serviços web são cada vez mais importante nos
sistemas distribuídos;
– Eles são fundamentais na integração empresaempresa (business-to-business) e também na nova
cultura de “mashup”.
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• O que são Serviços Web?
– Um web service (serviço web) também usa o
conceito de interfaces;
– Uma interface de serviço Web consiste em
conjunto de operações que podem ser usadas por
um cliente na Internet;
– Amazon, Yahoo, Google e eBay, oferecem
interfaces de serviços que permitem aos clientes
manipular seus recursos Web;
– Por exemplo, uma aplicação de controle de
inventário poderia pedir o fornecimento de
mercadorias da Amazom.com, à medida que eles
fossem necessários.
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• O que são Serviços Web?
– Podemos definir um Serviço web como um recurso de
software destinado a ser utilizado entre diferentes
sistemas dentro de uma rede;
– Um sistema X, precisando de algum recurso que não
possui, e conhecendo um sistema Y que possui esta
funcionalidade, faz uma chamada a este último
solicitando um recurso e obtendo o resultado;
– Aqui os sistemas geralmente estão localizados em
computadores distintos, e se comunicam por meio de uma
conexão à Internet;
– Indo mais além, estes sistemas podem estar executando
em plataformas completamente distintas, tendo sido
programados em linguagens completamente diferentes.
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• O que são Serviços Web?
– Uma empresa pode ter um sistema financeiro desenvolvido
em Java que, precisando obter a cotação do Dólar em
relação ao Real, chama um Serviço web que retorna o
devido valor, e este é utilizado na impressão de um
relatório, por exemplo;
– Devido aos padrões usados na comunicação com o Serviço
web, a aplicação cliente não precisa se preocupar com
detalhes como o sistema operacional ou a linguagem
usada pelo serviço;
– Ela apenas deverá saber como localizar o Serviço web, que
dados deverá enviar para sua solicitação e como
interpretar a resposta recebida.
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• O que são Serviços Web?
– Exemplo de uso de um Serviço web: uma aplicação cliente
solicita um serviço e recebe a resposta, posteriormente
usada na elaboração de um relatório.
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Características de Serviços Web
– Permite a combinação de serviços Web
• O fornecimento de uma interface de serviço permite que
suas operações sejam combinadas com as de outros
serviços para fornecer nova funcionalidade;
– Usa Padrões de Comunicação
– Em geral, os serviços web usam um padrão de comunicação
de requisição-resposta síncrona com seus clientes, ou se
comunicam por meio de mensagens assíncronas;
– Provê o baixo acoplamento
– O baixo acoplamento se refere a minimizar dependências
entre os serviços, reduzindo o risco de uma alteração em
um serviço causar uma reação em cadeia em outros
serviços ;
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Características de Serviços Web
– Usa a representação de mensagens
• A forma de comunicação entre os clientes e servidores é
baseado em XML – um formato textual auto-descritivo. A
riqueza e a complexidade permitida aos documentos que
usam XML é muito interessante aos Serviços web;
– Usa referências de serviços
• Em geral, cada Serviço web tem um URI, o qual os clientes
utilizam para se referirem a ele. O URL é uma forma mais
frequente de URI;
– Usa a ativação de serviços
– Um serviço web pode funcionar continuamente ou ser
ativado sob demanda. Por exemplo, um provedor de serviço
com vários clientes pode usar vários computadores para
fornecer este serviço;
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Características de Serviços Web
– Provê transparência
– Uma tarefa importante de muitas plataformas de
middleware é proteger o programador dos detalhes da
representação e empacotamento de dados. Nos serviços
web nada disso é oferecido por um middleware, mas sim
através de APIs;
– Faz uso de proxies
– Uma opção para ocultar a diferença entre chamadas
locais e remotas é fornecer um proxy cliente ou um
conjunto de procedimentos stub. Eles oferecem uma
forma estática de invocação. Uma alternativa ao uso de
proxies é uma invocação genérica;
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Papéis em um Serviço Web
– Serviços podem assumir diferentes papéis quando
envolvidos em diversos cenários de interação;
– Dependendo do contexto pelo qual é visualizado,
assim como o estado da tarefa rodando no
momento, o mesmo Serviço web pode trocar de
papel ou ser designado para múltiplos papéis
simultâneos.
– São eles:
–
–
–
–
Provedor de Serviços
Solicitante de Serviço
Intermediário
Remetente inicial e Receptor final
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Papéis em um Serviço Web
– Provedor de Serviços
•
Como um provedor de serviços, um serviço web expõe uma
interface pública através da qual pode ser chamado por
solicitantes do serviço. Num modelo cliente-servidor, o provedor
de serviço pode ser comparado ao servidor;
– Solicitante de Serviços ou Consumidor de Serviços
•
Um solicitante de serviço é o remetente de uma mensagem
serviço web ou o programa de software solicitando um serviço
web específico. O solicitante de serviço representa o cliente no
modelo cliente-servidor.
– Intermediário
–
O papel de intermediário é assumido pelo serviço web quando ele recebe
a mensagem de um solicitante de serviço e a passa adiante para o
provedor de serviço. Alguns são passivos e simplesmente re-transmitem
ou roteam as mensagens, enquanto outros processam ativamente uma
mensagem antes de repassá-la.
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Papéis em um Serviço Web
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Serviços web de 1ª Geração
– A estrutura W3C
fundamentada em
fundamentais:
para
três
serviços web
especificações
está
XML
– Linguagem para definição de web service (Web Services
Definition Language - WSDL);
– Simple Object Access Protocol (SOAP);
– Universal Description, Discovery, and Integration (UDDI).
Sistemas Distribuídos – 8º Período
Serviços Web: Introdução
• Serviços web de 1ª Geração
Sistemas Distribuídos – 8º Período
Dúvidas
Página do Professor Mauro:
http://www.dai.ifma.edu.br/~mlcsilva
Sistemas Distribuídos – 8º Período
Próxima Aula
• Serviços Web: Arquitetura
Sistemas Distribuídos – 8º Período
Referências
• Sistemas Distribuídos - Conceitos e Projeto, George
Coulouris, 4ª Edição - Editora Bookman, 784
páginas.
Sistemas Distribuídos – 8º Período
Download

Aula 14 - dai