DAS 5315 - Sistemas Distribu - PowerPoint PPT Presentation

1 / 56
About This Presentation
Title:

DAS 5315 - Sistemas Distribu

Description:

... CORBA, RMI, etc ... Arquitetura Web Services Agente diret rio servi os Provedor de Web Services Client que necessita do Servi o Publica o do Servi o ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 57
Provided by: Marce126
Category:

less

Transcript and Presenter's Notes

Title: DAS 5315 - Sistemas Distribu


1
DAS 5315 - Sistemas Distribuídos para Automação
Industrial
Web Services
  • 2º Semestre 2011

Professor Joni da Silva Fraga Estagiário
Vinícius Moll
2
Agenda
  • Introdução
  • SOA (Service Oriented Architecture)
  • Web Services
  • Arquitetura
  • XML
  • SOAP
  • WSDL
  • UDDI
  • Ferramentas
  • Conclusão

3
Introdução
  • Comunicação distribuída
  • Estratégias que permitem a comunicação entre
    aplicações distribuídas.
  • Tipos distintos de comunicação em um sistema
    distribuído
  • Sucesso da Internet
  • Sockets
  • RMI - Remote Method Invocation
  • CORBA Commom Object Request Broker Architecture
  • EJB Enterprise Java Bean
  • Web Services

4
SOA
5
Service Oriented Architecture (SOA)
  • SOA é uma arquitetura que representa
    funcionalidades do software como serviços
  • É uma caracterização de sistemas distribuídos,
    que visa organizar aplicações e sua
    infra-estrutura, através de um conjunto de
    interações de serviços que são acessados através
    de interfaces e protocolos padronizados, tendo
    como foco processos de negócio.
  • Já existiam tecnologias para SOA
  • Ex. CORBA, RMI, etc...
  • Interoperabilidade é muito importante
  • Padronização
  • Fraco acoplamento

6
Service Oriented Architecture (SOA)
  • Neutro à tecnologia
  • Invocado através de tecnologias padrões
    (protocolos, mecanimos de publicação e de busca)
    amplamente aceitas
  • Fracamente acoplado
  • Não requer o conhecimento prévio de qualquer
    estrutura interna presente no lado do cliente ou
    do serviço
  • Localização transparente
  • Informações sobre a definição e localização são
    publicadas em um repositório e estão acessíveis a
    uma variedade de clientes, independente da
    localizações dos mesmos

7
Service Oriented Architecture
Interface desacoplada da lógica de processamento
dos dados
troca de mensagens
boa arquitetura 3-tier service
Serviço Central Compras
UI
Presentation Layer
Data Layer
Web Service Standards permitem ligaçõescross-plat
form
Dados e Lógica Negócio encapsulados por uma Web
Service Façade
8
Web Services
9
Serviços Web
  • São compostos por objetos distribuídos
  • Fazem a integração de aplicações distribuídas
  • Utilizam a infra-estrutura da Internet
  • Os documentos e protocolos usam o XML
  • Serviços são especificados em WSDL
  • Usam o protocolo SOAP para troca de mensagens
  • Usam a UDDI para publicação e localização dos
    serviços
  • Exemplo comércio eletrônico, serviços de busca,
    etc

10
Definição de Web Services
  • Um Web Service é
  • Qualquer serviço que é disponibilizado através da
    web.
  • Qualquer serviço que possibilita duas aplicações
    de computador trocarem dados.
  • Principalmente, mas não exclusivamente
  • Baseado em
  • XML para codificação de dados
  • HTTP para transporte de dados
  • Um documento XML transmitido remotamente e
    mapeado para um programa executável.

11
Definição de Web Services
  • Um Web Service é
  • Tecnologia de chamada remota de objetos
  • Fornecem a infra-estrutura para criação de
    aplicações distribuídas (web ou não)
  • Permitem a criação de pequenos módulos de código
    reutilizáveis e disponibilizados para construção
    de aplicações LEGO
  • Utiliza protocolos Web como meio de transporte e
    comunicação
  • Alto grau de abstração em relação a linguagens de
    programação e plataformas de hardware / software

12
Definição de Web Services
  • Comunicação entre aplicações de WS usam 4 camadas
    que empacotam a requisição e a resposta entre o
    servidor e o cliente.
  • XML possibilita estabelecer objetos, métodos,
    parâmetros, dados e tipos de dados
  • SOAP protocolo que estabelece a comunicação
    entre os ambientes
  • WSDL descreve o serviço (XML)
  • UDDI representa service broker. Contém as
    descrições dos WS.

UDDI
WSDL
SOAP
XML
13
Arquitetura Web Services
  • Legenda
  • Publicação do WSDL
  • Pesquisando Web services
  • Retorna WSDL do serviço
  • Interação cliente-serviço usando SOAP

Registro UDDI
3
WSDL
2
WSDL
1
Provedor Serviços
Consumidor Serviço
SOAP
4
14
Arquitetura Web Services
  • O processo para geração de um Web Service se
    resume em três passos
  • Publicação
  • Localização
  • Consumação

15
Arquitetura Web Services
  • Service ProviderResponsá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 RequesterResponsá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 BrokerResponsá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.
    Este diretório possui um nome, UDDI, que
    teoricamente deveria ser uma espécie de Google
    aos consumidores de Web Services mas que na
    prática ainda é pouco usual. Seu uso é vital para
    troca de dados WSDL.

16
Arquitetura Web Services
Agente diretório serviços
Publicação do Serviço
Busca do serviço
Retorno da descrição WSDL
Client que necessita do Serviço
Provedor de Web Services
WSDL (Descrição)
UDDI (Descoberta)
SOAP (Interação)
17
Protocolos de Web Services
Agente diretório serviços
Consumidor do Serviço
http//www.uddi.org
Serviço Web
http//servico.com/?WSDL
http//servico.com/svc1
18
Arquitetura Web Services
Message
SOAP / XML
Transport
HTTP(S)
Discovery
UDDI
Description
WSDL
19
Arquitetura Web Services
20
Invocação de Web Services
ltsoapEnvelope ltsoapBodygt ltaddgt
lti1gt10lt/i1gt lti2gt5lt/i2gt lt/addgt
lt/soapBodygt lt/soapEnvelopegt
Web Server (Ex. Apache Tomcat)
Client (Ex. CalcClient.java)
calculator.add(10, 5)
Java
Web Service Toolkit (Ex. Apache Axis)
SOAP Binding
Java to SOAP
Web Service Code (Ex. Calculator.java)
add(10, 5)
SOAP Request
SOAP to Java
Java
21
Por que utilizar Web Services?
  • Dois fatores chave
  • Ubiqüidade
  • Facilidade de uso
  • Interoperável
  • Neutro em relação a SO e linguagem
  • Integração Java .NET simples e barata
  • Todo mundo dá suporte ou irá dar a Serviços Web
  • Necessário dar suporte a Serviços Web para
    facilitar
  • Integração
  • Não-invasivos(impactante)
  • Baseados em protocolos ubiqüos HTTP/SMTP
  • Complementam tecnologias já existentes

22
XML
  • O XML foi projetado para marcar documento de
    estrutura arbitraria em oposição ao HTML que foi
    projetado para marcar documentos com estruturas
    fixas.
  • Atualmente é bastante utilizado em uma série de
    atividades de desenvolvimento de software,
    incluíndo os Web Services (WSDL, SOAP).

23
XML
  • XML (Extensible Markup Language) é uma linguagem
    para marcar documentos que contêm informações
    estruturadas.
  • Informação estruturada tem tanto conteúdo como
    alguma indicação de que rol esse conteúdo tem no
    documento.
  • Um documento pode ter o conteúdo Fernando
    Gauthier na área de bibliografias o que tem
    significado diferente de estar na página de rosto
    logo abaixo do título.

24
SOAP (Simple Object Access Protocol)
  • Protocolo para troca de mensagens
  • Baseado em XML, encapsula chamadas remotas de
    procedimento (RPC) sobre outros protocolos
  • Opera sobre protocolos da camada de aplicação
    (pilha TCP/IP) mas geralmente é tratado como um
    protocolo de transporte
  • Geralmente adota-se SOAP sobre o protocolo HTTP
  • Mas pode-se usar sobre o SMTP, TCP, UDP, etc.
  • Permite troca de mensagens uni-direcional e
    bi-direcional

25
SOAP (Simple Object Access Protocol)
  • Uma mensagem SOAP consiste basicamente
  • Envelope
  • Elemento raiz no documento XML que representa a
    mensagem SOAP
  • Cabeçalho (opcional)
  • Oferece mecanismos para estender a mensagem
  • Informações de roteamento, segurança, coordenação
  • Corpo
  • Document - A RPC em si faz parte deste elemento
  • Fault (opcional)

26
SOAP (Simple Object Access Protocol)
  • A especificação do SOAP é dividida em três
    partes
  • Envelope SOAP
  • Documento XML formado por elementos que definem
    os dados que serão trocados entre as aplicações
  • Regras de codificação dos dados
  • Definem como as instâncias de tipos de dados
    definidos no nível de aplicação devem ser
    codificadas
  • Convenções RPC
  • Define convenções para representar RPC através de
    mensagens SOAP

27
SOAP (Simple Object Access Protocol)
  • Envelope (Exemplo)

28
SOAP (Simple Object Access Protocol)
  • No cabeçalho da mensagem SOAP podem ser definidas
    informações específicas para nós SOAP
    intermediários (roteadores SOAP)

29
SOAP (Simple Object Access Protocol)
  • Cabeçalho HTTP do pedido

30
SOAP (Simple Object Access Protocol)
  • Formato do pedido SOAP

31
SOAP (Simple Object Access Protocol)
  • Cabeçalho HTTP da resposta

32
SOAP (Simple Object Access Protocol)
  • Formato da resposta SOAP

33
WSDL (Web Service Description Language)
  • Descreve interface para consumir um Serviço Web
  • Interface operações (entrada e saída)
  • Acesso
  • (ligação de protocolo)
  • End point (localização do Serviço)

34
WSDL (Web Service Description Language)
  • Um documento WSDL é composto por três elementos
    principais
  • Definição dos tipos de dados
  • especifica a estrutura e o conteúdo das mensagens
  • Operações abstratas
  • descreve as operações que poderão ser executadas
  • Associação dos serviços
  • especifica como mapear as operações nos
    protocolos de rede utilizados para o transporte

35
WSDL (Web Service Description Language)
  • types - Definição dos tipos de dados (Ex
    inteiros, booleano, tipos compostos, etc.)
  • messages - Mensagens que um Serviço Web espera
    enviar ou receber
  • operation - Define como o serviço irá tratar os
    dados e como deverão ser retornados em uma
    resposta
  • one-way - Serviço recebe mensagem mas não envia
    resposta
  • request-response - Serviço recebe mensagem e
    envia resposta
  • solicit-response - Serviço envia mensagem e
    recebe resposta
  • notification - Serviço envia mensagem sem esperar
    por resposta
  • portType - Agrupamento lógico de operações
    (elemento operation) análogo a uma definição de
    objeto que contém múltiplos métodos
  • binding - Descreve como os elementos messages e
    operation serão mapeados em um protocolo de
    transporte
  • port - Combinação entre o elemento binding e
    endereço de rede, provendo um endereço único para
    acessar um serviço
  • service - Coleção de elementos port

36
WSDL (Web Service Description Language)
37
WSDL (Web Service Description Language)
38
WSDL (Web Service Description Language)
39
WSDL (Web Service Description Language)
40
UDDI (Universal Description Discovery and
Integration specification)
  • Diretório independente de plataforma de descrição
    para Serviços Web
  • Método padrão para publicar e descobrir Serviços
    Web e fornecedores
  • Suporta vários tipos de descrição de serviços,
    não limitados à WSDL
  • Registros UDDI podem ser gerados a partir de
    descrições WSDL

41
UDDI (Universal Description Discovery and
Integration specification)
  • Para efetuar uma chamada a um Serviço Web é
    necessário primeiramente conhecer sua interface,
    semântica de chamada e localização
  • A disponibilização dessas informações pode ser
    feita de duas maneiras
  • Divulgação direta entre o provedor e os
    consumidores do serviço
  • Através de um serviço de diretórios
  • Um diretório global de registros de Serviços Web,
    onde ficam disponibilizadas informações sobre as
    empresas fornecedoras de serviços
  • O resultado é um documento WSDL, que contém a URI
    para o serviço

42
UDDI (Universal Description Discovery and
Integration specification)
  • Dados e meta-dados dos Serviços Web são
    armazenados em diretórios UDDI (UDDI registry)
  • E são associados a um identificador único,
    denominado, UDDI key
  • UDDI key é criado de acordo com regras de
    classificação especificadas para cada organização
  • Permite aos consumidores realizarem consultas
    mais granulares
  • Ex buscar por provedores que forneçam o serviço
    X dentro de uma determinada localização geográfica

43
UDDI (Universal Description Discovery and
Integration specification)
  • É possível armazenar informações relacionadas
    diretamente à entidade que provê o serviço
  • O modelo de dados do UDDI prevê os seguintes
    tipos
  • businessService - descrições sobre as funções de
    negócio do serviço
  • businessEntity - informações sobre a organização
    detentora do serviço
  • bindingTemplate - informações técnicas do serviço
  • tModel - outros atributos, como taxonomia
    geográfica, mas geralmente contém o WSDL que
    descreve o serviço

44
UDDI (Universal Description Discovery and
Integration specification)
  • A idéia inicial do UDDI
  • Diretório público de livre acesso para as
    organizações divulgarem seus serviços
  • Porém, com a adoção dos Serviços Web para
    integrar aplicações dentro das próprias
    organizações, surgiu a necessidade de diretórios
    privados
  • A especificação 3.0 do UDDI prevê os seguintes
    tipos de diretórios
  • privado - diretório interno, isolado da rede
    pública
  • afiliado - somente clientes autorizados tem
    acesso ao diretório
  • público - acesso aberto e público ao diretório

45
Ferramentas
  • Java Web Services Developer Pack
  • Kit para construção, implantação e para testes de
    Web Services, assim como para aplicações Web e
    baseadas em XML
  • Provê implementações para WSDL, SOAP e UDDI
  • Contém
  • JAXP - Java API for XML Processing
  • JAXR - Java API for XML Registries
  • JAX-RPC - Java API for XML-based RPC
  • SAAJ - SOAP with Attachments API for Java

46
Java Web Services Developer Pack 2.0
  • Fast Infoset
  • Service Registry
  • XML
  • JAXB
  • JAXP
  • JAXR
  • JAX-RPC
  • SAAJ
  • JAXM
  • XML Web Services Security
  • Service Registry
  • Sun Java Streaming XML Parser
  • JSTL

47
Ferramentas
  • Diversas empresas estão provendo ferramentas de
    desenvolvimento para Serviços Web
  • Apache, Sun, IBM, Microsoft, BEA, etc.
  • Diversas linguagens de programação já apresentam
    suporte aos Serviços Web
  • Java, C, C, PHP, Perl, Python
  • Vamos usar duas ferramentas baseadas em Java
  • Java Web Services Developer Pack - JWSDP
  • Apache Axis

48
Ferramentas
  • Apache Axis
  • Basicamente uma implementação SOAP para
    construção de clientes e servidores
  • Possui um servidor de aplicação pequeno e simples
  • Pode ser utilizado em conjunto com o Tomcat
  • Grande suporte ao WSDL
  • Ferramenta para monitoramento de pacotes TCP/IP

49
Ferramentas
  • Apache Axis2
  • Aprenderam algumas lições com o Axis1 e isso
    tornou o Axis2 mais robusto e modular
  • Fica mais fácil adicionar novas funcionalidades
  • Porém, o desenvolvimento de uma simples aplicação
    ficou um pouco mais complexo se comparado com o
    Axis1
  • Já possui implementações para as especificações
    de segurança, coordenação, etc.

50
Web Services Project _at_ Apache
  • Addressing (WS-Addressing)
  • Axis (SOAP)
  • EWS (J2EE 1.4)
  • JaxMe (JAXB)
  • jUDDI (UDDI)
  • Kandula (WS-Coordination, WS-AtomicTransaction,
    WS-BusinessActivity)
  • Mirae (J2ME)
  • Muse (WSDM MUWS)
  • Pubscribe (WS-Notification)
  • Sandesha (WS-ReliableMessaging)
  • Scout (JAXR)
  • Woden (WSDL 2.0)
  • WSIF
  • WSRF (WS-ResourceFramework)
  • WSS4J (WS-Security)
  • XML-RPC

51
Próxima Aula
  • Assunto Desenvolvendo um Serviço Web
  • Local Laboratório LIICT
  • Data 01/11/2011
  • Hora 1520

52
Conclusão
53
A Propaganda é grande - Web Services
  • MAS ...
  • O formato texto aumenta muito o overhead
  • Não existe neutralidade de transporte
  • Diferentes versões de padrões
  • Existem muitos padrões que interagem, mas não
    definem nenhuma restrição para interagirem
  • UDDI não atende as necessidades
  • Ferramentas de geração automática atrapalham
  • Não existe interoperabilidade 100

54
Fontes de consulta
  • http//java.sun.com/webservices
  • developers.ibm.com/webservices
  • JavaWorld www.javaworld.com
  • webservices.org
  • www.uddi.org
  • xml.apache.org
  • http//www.tusc.com.au/tutorial/html/chap9.html

Créditos Para essa apresentação foram usados,
parcialmente, textos /slides de Paulo Manoel
Mafra, Marcelo Iury, Adriano Teixeira de Souza.
55
  • Etapa1 - Usuário deve informar
  • Origem,
  • Destino,
  • Data Início e Fim

Confirma a compra na Companhia
1
Pesquisa preço e disponibilidade
. . .
3
4
7
Resposta
2
Etapa 2 - Usuário Informa o número do cartão
Pesquisa preço e disponibilidade
Resposta
5
6
Verifica as informações do cartão crédito do
cliente
. . .
Pesquisa preço e disponibilidade
Resposta
Resposta
56
Perguntas ???
Web Services
Joni S. Fraga Vinícius Moll
Write a Comment
User Comments (0)
About PowerShow.com