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
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.
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
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.
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.
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.
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.
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.
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 ;
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;
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;
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
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. Serviços Web: Introdução
Papéis em um Serviço Web
Serviços web de 1ª Geração A estrutura W3C para serviços web está fundamentada em três especificações XML fundamentais: Linguagem para definição de web service (Web Services Definition Language - WSDL); Simple Object Access Protocol (SOAP); Universal Description, Discovery, and Integration (UDDI).
Serviços web de 1ª Geração
Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva
Próxima Aula Serviços Web: Arquitetura
Referências Sistemas Distribuídos - Conceitos e Projeto, George Coulouris, 4ª Edição - Editora Bookman, 784 páginas.