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: Arquitetura Introdução SOAP (Simple Object Access Protocol) Descrição de serviço e IDL para serviço Web Serviço de diretório para uso com Serviços Web Resumo
Introdução As principais tecnologias dos Serviços Web são: SOAP, WSDL e UDDI; SOAP é a estrutura de empacotamento padrão para transportar documentos XML através de protocolos da Internet (HTTP, SMTP, FTP); WSDL é a tecnologia que padroniza a descrição da interface de um Serviço Web; O UDDI é o repositório mundial de Serviços Web utilizado para publicar e/ou descobrir serviços que já foram criados e utilizar os já existentes.
Introdução Registro UDDI Legenda: 1. Publicação do WSDL 2. Pesquisando Web services 3. Retorna WSDL do serviço 4. Interação cliente-serviço usando SOAP WSDL 3 2 WSDL 1 Consumidor Serviço SOAP 4 Provedor Serviços
Introdução O processo para geração de um Serviço Web se resume em três passos: 1. Publicação 2. Localização 3. Consumação
Introdução Service Provider Responsável por prover o serviço. A técnica de troca de mensagens com o Service Requester ocorre com o uso de SOAP, um XML que contém dados sobre a requisição e os resultados encontrados; Service Requester Responsável por consumir o serviço. Efetua a troca de mensagens com o Service Provider com o uso do SOAP. Os métodos acessíveis no Web Service estão especificados no Service Broker através do uso da tecnologia WSDL, outro XML que prove estes dados; Service Broker Responsável por publicar e divulgar o serviço. O Service Provider disponibiliza as informações de seu Web Service ao Service Broker, o qual irá registrar este serviço em um diretório público e gerenciálo. Chamado de UDDI, teoricamente deveria ser uma espécie de Google aos consumidores de Web Services mas na prática ainda é pouco usual. Seu uso é vital para troca de dados WSDL.
SOAP (Simple Object Access Protocol) O protocolo SOAP é projetado para permitir interação cliente-servidor através da internet; Ela defini um esquema para uso da XML para representar o conteúdo de mensagens de requisição-resposta; Originalmente o SOAP era baseado apenas em HTTP, atualmente este usa SMTP, TCP e UDP; Conforme falamos anteriormente, o programador não precisa se preocupar com detalhes internos do uso de SOAP, visto há várias APIs SOAP implementadas em muitas linguagens de programação.
SOAP (Simple Object Access Protocol) Mensagem SOAP Uma mensagem SOAP é transportada em um envelope; Dentro do envelope existe um cabeçalho opcional e um corpo; Os cabeçalhos das mensagens podem ser usados para estabelecer contexto necessário para um serviço; O corpo da mensagem transporta um documento XML para um serviço Web em particular; Os elementos XML envelope, cabeçalho e corpo, juntos a outros atributos e elementos de mensagens SOAP, são definidos em um esquema no espaço de nomes XML do protocolo SOAP.
SOAP (Simple Object Access Protocol) Mensagem SOAP
SOAP (Simple Object Access Protocol) Mensagem SOAP Envelope (Exemplo)
SOAP (Simple Object Access Protocol) Mensagem SOAP No cabeçalho da mensagem SOAP podem ser definidas informações específicas para nós SOAP intermediários (roteadores SOAP)
Descrição de serviço e IDL para serviço Web Para Serviços Web, as definições de interface são fornecidas como parte de uma descrição de serviço geral, que especifica duas outras características: Como as mensagens devem ser comunicadas (por exemplo, por SOAP com HTTP); E o URI do serviço (URL); As descrições de serviço geralmente são usadas para gerar stubs de cliente associados ao comportamento do cliente; No contexto dos serviços web, a WSDL (Web Service Description Language) é usada para descrições de serviços; A WSDL defini um esquema XML para representar os nomes de elementos tais como: definições, tipos, mensagens, interface, vínculos e serviços.
WSDL (Web Service Description Language)
WSDL (Web Service Description Language) A WSDL separa a parte abstrata de uma descrição de serviço da parte concreta; A parte abstrata da descrição inclui um conjunto de definições (definitions) dos tipos usados pelo serviço, em particular os tipos dos valores trocados nas mensagens; O conjunto de nomes definido dentro da seção tipos (types) de uma definição WSDL é chamada de espaço de nomes de destino; A seção mensagem (message) da parte abstrata contém uma descrição do conjunto de mensagens trocadas; As operações são representadas na seção interface; A parte concreta especifica como e onde o serviço pode ser contatado.
WSDL (Web Service Description Language)
WSDL (Web Service Description Language) O conjunto de operações pertencentes a um serviço Web é agrupado em um elemento da XML chamado interface (também chamado de porttype); Cada operação deve especificar o padrão de troca de mensagens entre cliente e servidor; Algumas opções disponíveis podem ser encontradas abaixo:
WSDL (Web Service Description Language) A parte concreta do WSDL consiste: Na escolha de protocolos, definido pelo elemento binding; Na escolha do ponto final ou do servidor por meio do elemento serviço (service); As duas estão relacionadas pois a forma de endereço depende do tipo de protocolo que esta sendo utilizado (ponto final: SOAP usará: URI / ponto final: CORBA usará: ID específico CORBA); Binding (Vínculo): informa quais formatos de mensagem e forma de representação de dados externa devem ser usados (comumente SOAP, HTTP e MIME); Service: especifica o nome do serviço e um ou mais pontos finais (ou portas) onde uma instância do serviço pode ser contatada. Serviços Web: Arquitetura
Serviço de diretório para uso com Serviços Web Qualquer organização que pretenda basear suas aplicações em serviços Web achará mais conveniente usar um serviço de diretório para disponibilizar estes serviços aos clientes; Esse é o objetivo do UDDI (Universal Description Discovery and Integration specification) que fornece um serviço de nome e um serviço de diretório; As descrições WSDL podem ser pesquisadas pelo nome (estilo catálogo telefônico) ou pelo atributo (estilo páginas amarelas); Os clientes podem usar a estratégia das páginas amarelas para pesquisar uma categoria de serviço, como um agente de viagem ou uma livraria; Podem usar a estratégia do catálogo telefônico para pesquisar um serviço com referência à organização que o fornece.
UDDI (Universal Description Discovery and Integration specification) Estruturas de Dados As estruturas de dados que suportam o UDDI são projetadas para permitir todas as formas de interação explicadas anteriormente; Os dados são organizados em termos de quatro estruturas: businessentity: descreve a organização que fornece esses serviços Web, dando seu nome, endereço, atividades, etc; businessservice: armazena informações sobre um conjunto de instâncias de um serviço web, como seu nome e descrição; bindingtemplate: contém o endereço de uma instância de serviço web e referências para descrições do serviço; tmodel: contém descrições de serviço, normalmente documentos WSDL.
UDDI (Universal Description Discovery and Integration specification) Estruturas de Dados
UDDI (Universal Description Discovery and Integration specification) Estruturas de Dados
UDDI (Universal Description Discovery and Integration specification) Pesquisa O UDDI fornece uma API para pesquisar (lookup) serviços com base em dois conjuntos de operações de consulta; find_xxx (recuperar um conjunto de entidades) e get_xxx (recuperar diretamente uma entidade); Publicação O UDDI fornece uma interface para publicar (anunciar) e atualizar informações sobre serviços Web; Registros O serviço UDDI é baseado em dados replicados armazenados em registros. Um registro consiste em um ou mais servidores UDDI, cada um ou mais tendo uma cópia do mesmo conjunto de dados.
Resumo
Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva
Próxima Aula Prática de Laboratório: Serviços Web
Referências Sistemas Distribuídos - Conceitos e Projeto, George Coulouris, 4ª Edição - Editora Bookman, 784 páginas.