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