SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro de 2007
Agenda Introdução Arquitetura Orientada a Serviço Web Services Por que utilizar? Visão dos web services Arquitetura Camada Física Camada de Descrição Camada de Descoberta Objetos Distribuídos e Web Services
Introdução A Internet mudou a maneira de se fazer negócios Facilidade para o acesso as aplicações HTML e HTTP -> Padrão de troca de informação Navegadores Web – Tornaram a comunicação simples e possível
Introdução Problema Diferentes empresas utilizam diferentes tecnologias e soluções Como realizar integração de maneira automatizada? Muitas vezes é necessário reimplementar as soluções
Arquitetura Orientada a Serviço Forma de reorganização de aplicações Infra-estrutura de um conjunto de serviços Acessados através de interfaces padronizadas de protocolos de mensagens Quando utilizar? Quando múltiplas aplicações precisam se comunicar sobre uma variedade de tecnologias e plataformas
Arquitetura Orientada a Serviço
Arquitetura Orientada a Serviço Base da Arquitetura Agentes de softwares que se interagem por troca de mensagens Clientes são agentes que requisitam a execução de um serviço Provedores são agentes que fornecem o serviço Ambos podem ser clientes e provedores
Arquitetura Orientada a Serviço Provedores são responsáveis pela publicação e descrição do serviço Clientes devem estar aptos a encontrar essas descrições e acessá-los Três tipos de participante fazem parte da SOA: O Provedor do Serviço O Serviço de Descoberta Cliente do Serviço
Arquitetura Orientada a Serviço Service Provider Publish Bind Service Registry Service Client Find
Arquitetura Orientada a Serviço Um serviço possui uma interface e uma implementação Função de negócio implementada em software Encapsulada com uma interface documentada formalmente (Encapsulamento de caixa-preta) Modularidade A interface é uma descrição do conjunto de operações que estão disponíveis para o cliente
Arquitetura Orientada a Serviço Resumidamente: A SOA é a base dos web services Reorganiza as funcionalidades de uma aplicação através de serviços Suas principais características são: Neutralidade de Tecnologia Acoplamento fraco Transparência de localização
Web Services Tecnologia para computação distribuída baseada na web Mecanismo popular na implementação de SOA’s Tem ganhado uma rápida adoção e suporte de empresas:
Web Services Podem ser vistos como um componente de software onde os detalhes da implementação são escondidos atrás de uma interface. Apache Axis e Java2WSDL Ferramentas que obtém interfaces a partir de sistemas orientados a objetos já existentes
Por que Utilizar Web Services Interoperabilidade Independência de hardware, sistemas operacionais e linguagens de programação Padrões são abertos Uso de XML (Troca de documentos) Integração B2B
Por que Utilizar Web Services Enterprise Application Integration (EAI)
Por que Utilizar Web Services Protocolos Envolvidos HTTP XML SOAP WSDL UDDI
Visão dos Web Services Combinação Operações podem ser combinadas entre diversos WS’s fornecendo uma única funcionalidade
Visão dos Web Services Padrões de Comunicação Síncrona, assíncrona ou por eventos Cliente Provedor Cliente Provedor Cliente Provedor Δt Evento Δt Síncrona Assíncrona Evento
Visão dos Web Services Modelo de programação não particular Ambiente web possui uma infinidade de linguagens de programação Paradigma de programação dos WS’s são independentes de qualquer outro paradigma
Visão dos Web Services Representação de mensagens Representação do SOAP e dos dados são feitas através de XML Maior ocupação de espaço com relação ao formato binário Maior custo de processamento Legível para seres humanos e de fácil depuração
Visão dos Web Services Referências de Serviços Cada serviço na web tem um URI (Uniform Resource Indentifier) O URL (Uniform Resource Locator) é a forma mais comum de URI Frequentemente os domínios são mudados Necessidade de um URN (Uniform Resource Names)
Visão dos Web Services Transparência Clientes e provedores lêem e gravam suas mensagens diretamente em envelopes SOAP utilizando XML Linguagens de programação com Java, Perl, Phyton ou C++ oferecem API’s (Application Programming Interface) Geração automática dos procedimentos de empacotamento
Arquitetura dos Web Services Composta por pelo menos três camadas: Camada Física Camada de Descrição Camada de Descoberta
Web Services – Camada Física Camada mais baixa onde está a base de todo o desenvolvimento dos web services Sintaxe de roteamento das mensagens Suporte a transações simples Assinatura digital Criptografia Qualidade de serviço Protocolos propostos para essa camada: XML- RPC e SOAP
Web Services – Camada Física XML-RPC Utilizado por serviços mais leves Cada requisição é enviada como uma mensagem HTTP-POST e as respostas são recebidas através de uma mensagem HTTP 200 Todas mensagens possuem cabeçalhos HTTP
Web Services – Camada Física SOAP (Simple Object Access Protocol) Assim como o XML-RPC, o SOAP é um protocolo de troca de informações para dados “tipados” Versão 1.1 foi desvinculada do HTTP, diferentemente do XML-RPC Possibilidade da utilização de protocolos como SMTP, POP3, FTP e etc. A especificação é composta por três partes: um envelope, um conjunto de regras de codificação e uma convenção RPC
Web Services – Camada de Descrição Contém a semântica formal para descrever as mensagens que os WS’s podem entender Descreve as restrições de dados dentro das mensagens, as ontologias e a maneira com que os WS’s podem ser combinados Os tipos de dados são expressadas por um XML Schema As semânticas são expressadas pela Web Service Description Language (WSDL)
Web Services – Camada de Descrição XML Schema É uma alternativa aos DTD`s (Document Type Definition) define os elementos e os atributos que podem aparecer em um documento. define quais elementos são elementos filhos. define a ordem e o número dos elementos filhos. define se um elemento é vazio ou pode conter texto. define os tipos que podem ser atribuídos a elementos e atributos. define padrões e valores fixos a elementos e atributos.
Web Services – Camada de Descrição WSDL Análoga a um interface Java ou a linguagem de definição de interface do CORBA (IDL) Fornece um mecanismo capaz de descrever as comunicações de um modo estruturado Serviços como coleções de endpoints Alguns Elementos: Types Message Operation Etc...
Web Services – Camada de Descoberta Oferece processos e mecanismos pelos quais os web services podem ser encontrados Diretório de serviço onde os web services podem ser registrados e encontrados (W3C) O UDDI (Universal Description Discovery and Integration) provê as interfaces de serviços descritas em um documento WSDL
Web Services – Modelo Geral Service Provider SOAP WSDL SOAP Service Registry Service Client Busca WSDL
Objetos Distribuídos e Web Services CORBA e RMI – Objetos remotos Em WS’s não existe o conceito de referências a objetos Serviço definido por um endpoint que suporta várias operações Em termos de objetos distribuídos, os WS possuem um caráter singleton (stateless) RMI e CORBA foram projetados para uso dentro de uma organização ou entre um pequeno número de organizações
Objetos Distribuídos e Web Services WS possui computação orientada a documentos (XML) Diferentemente de uma requisição a uma instância de um objeto Objetos distribuídos permitem o acesso ao mesmo estado repetidamente CORBA – Interoperable Object Reference Cliente e Servidor devem possuir o mesmo repositório de interfaces
Objetos Distribuídos e Web Services Principais diferenças Não incluem noções de objetos Referências de objetos Ciclos de vida Comunicação através de encapsulamento de documentos XML
Objetos Distribuídos e Web Services Tecnologia robusta e madura Restrição ao ambiente em que eles foram projetados (ex. uma intranet corporativa) Homegeneidade e latência conhecida Web Services Computação distribuída sobre a internet Interoperabilidade Heterogeneidade de plataformas e redes
OBRIGADO!!!