das 5315 - sistemas distribuídos para automação industrial

56
DAS 5315 - Sistemas Distribuídos para Automação Industrial 2º Semestre 2011 DAS5315 - Sistemas Distribuídos 1 Professor: Joni da Silva Fraga Estagiário: Vinícius Moll Web Services

Upload: babu

Post on 15-Jan-2016

27 views

Category:

Documents


1 download

DESCRIPTION

Web Services. DAS 5315 - Sistemas Distribuídos para Automação Industrial. 2º Semestre 2011. Professor: Joni da Silva Fraga Estagiário: Vinícius Moll. Agenda. Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Ferramentas Conclusão. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DAS 5315 - Sistemas Distribuídos para Automação Industrial

DAS 5315 - Sistemas Distribuídos para Automação Industrial

2º Semestre 2011

DAS5315 - Sistemas Distribuídos1

Professor: Joni da Silva FragaEstagiário: Vinícius Moll

Web Services

Page 2: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Agenda• Introdução• SOA (Service Oriented Architecture)• Web Services

– Arquitetura– XML– SOAP– WSDL– UDDI

• Ferramentas• Conclusão

Page 3: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 4: DAS 5315 - Sistemas Distribuídos para Automação Industrial

SOA

Page 5: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 6: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 7: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Service Oriented Architecture

Data Layer Presentation Layer

BusinessLayer

Serviço Central Compras

ServiceFaçade

UI

boa arquitetura 3-tier service

troca de mensagens

Dados e Lógica Negócio

encapsulados por uma Web Service

Façade

Interface desacoplada da

lógica de processamento dos

dados

Web Service Standards permitem ligaçõescross-platform

Page 8: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Web Services

Page 9: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 10: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Definição de Web ServicesUm 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.

Page 11: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Definição de Web ServicesUm 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

Page 12: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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.

UDDIUDDI

XMLXMLSOAPSOAPWSDLWSDL

Page 13: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Arquitetura Web Services

RegistroUDDI

RegistroUDDI

ProvedorServiçosProvedorServiços

ConsumidorServiço

ConsumidorServiço

WSDLWSDL

SOAP

12

3

4

Legenda:1.Publicação do WSDL2.Pesquisando Web services3.Retorna WSDL do serviço4.Interação cliente-serviço usando SOAP

Page 14: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Arquitetura Web Services

O processo para geração de um Web Service se resume em três passos:

1.Publicação2.Localização3.Consumação

Page 15: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Arquitetura Web Services• 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 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.

Page 16: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Arquitetura Web Services

Agente diretório serviços

Agente diretório serviços

Provedor de

Web Services

Provedor de

Web Services

Client que necessita do Serviço

Client que necessita do Serviço

Publicação do ServiçoBusca do serviço

Retorno da descrição WSDL

SOAP (Interação)

WSDL(Descrição)

UDDI(Descoberta)

Page 17: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Protocolos de Web Services

Agente diretório serviços

Agente diretório serviços

ServiçoWeb

ServiçoWeb

Consumidor do

Serviço

Consumidor do

Serviço

Encontre um serviço

http://www.uddi.org

HTML com referência para WSDL

Como conversamos (WSDL)

http://servico.com/?WSDL

Descrições de serviço (XML)

Deixe-me falar com você(SOAP)

http://servico.com/svc1

Resposta do serviço (XML)

Page 18: DAS 5315 - Sistemas Distribuídos para Automação Industrial

ImplementationImplementationImplementationImplementation

DataDataBusiness

LogicBusiness

Logic

MessageMessageMessageMessage

DescriptionDescriptionDescriptionDescription

DiscoveryDiscoveryDiscoveryDiscovery

TransportTransportTransportTransport

.NET/J2EE.NET/J2EE.NET/J2EE.NET/J2EE

DataDataBusiness

LogicBusiness

Logic

SOAP / XMLSOAP / XMLSOAP / XMLSOAP / XML

WSDLWSDLWSDLWSDL

UDDIUDDIUDDIUDDI

HTTP(S)HTTP(S)HTTP(S)HTTP(S)

Arquitetura Web Services

Page 19: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Arquitetura Web Services

Page 20: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Invocação de Web Services

Web Server (Ex.: Apache Tomcat)Web Server (Ex.: Apache Tomcat)

Web Service Toolkit(Ex.: Apache Axis)Web Service Toolkit(Ex.: Apache Axis)

Client(Ex.: CalcClient.java)Client(Ex.: CalcClient.java)

SOAP BindingSOAP Binding

SOAP Request

Web ServiceCode(Ex.: Calculator.java)

Web ServiceCode(Ex.: Calculator.java)

Java to SOAP

Java

JavaSOAP to Java

<soap:Envelope <soap:Body> <add> <i1>10</i1> <i2>5</i2> </add> </soap:Body></soap:Envelope>

calculator.add(10, 5)

add(10, 5)

Page 21: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 22: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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).

Page 23: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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.

Page 24: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 25: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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)

Page 26: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 27: DAS 5315 - Sistemas Distribuídos para Automação Industrial

SOAP (Simple Object Access Protocol)

• Envelope (Exemplo)

Page 28: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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)

Page 29: DAS 5315 - Sistemas Distribuídos para Automação Industrial

SOAP (Simple Object Access Protocol)

• Cabeçalho HTTP do pedido

Page 30: DAS 5315 - Sistemas Distribuídos para Automação Industrial

SOAP (Simple Object Access Protocol)

• Formato do pedido SOAP

Page 31: DAS 5315 - Sistemas Distribuídos para Automação Industrial

SOAP (Simple Object Access Protocol)

• Cabeçalho HTTP da resposta

Page 32: DAS 5315 - Sistemas Distribuídos para Automação Industrial

SOAP (Simple Object Access Protocol)

• Formato da resposta SOAP

Page 33: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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)

Page 34: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 35: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 36: DAS 5315 - Sistemas Distribuídos para Automação Industrial

WSDL (Web Service Description Language)

Page 37: DAS 5315 - Sistemas Distribuídos para Automação Industrial

WSDL (Web Service Description Language)

Page 38: DAS 5315 - Sistemas Distribuídos para Automação Industrial

WSDL (Web Service Description Language)

Page 39: DAS 5315 - Sistemas Distribuídos para Automação Industrial

WSDL (Web Service Description Language)

Page 40: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 41: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 42: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 43: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 44: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 45: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 46: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 47: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 48: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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

Page 49: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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.

Page 50: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Web Services Project @ 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

Page 51: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Próxima Aula

• Assunto Desenvolvendo um Serviço Web• Local Laboratório LIICT• Data 01/11/2011• Hora 15:20

Page 52: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Conclusão

Page 53: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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%

Page 54: DAS 5315 - Sistemas Distribuídos para Automação Industrial

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.htmlCréditos:Para essa apresentação foram usados, parcialmente, textos /slides de: Paulo Manoel Mafra, Marcelo Iury, Adriano Teixeira de Souza.

Page 55: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Servidor 1, provedor serviço

Web

Usuário,Cliente Web Service

Servidor Banco(Serviço de Validação Cartão de crédito)

Servidor AEmpresa Aérea A

Servidor BEmpresa Aérea B

Servidor NEmpresa Aérea N

Etapa1 - Usuário deve informar:• Origem, • Destino, • Data Início e Fim

Pesquisa preço e disponibilidade

Pesquisa preço e disponibilidade

Pesquisa preço e disponibilidade

Resposta

Resposta

Resposta

Verifica as informações do cartão créditodo cliente

Res

post

aEtapa 2 - Usuário Informa o número do cartão

Confirma a co

mpra na Companhia

1

2

34

5 6

7

.

.

.

.

.

.

Page 56: DAS 5315 - Sistemas Distribuídos para Automação Industrial

Joni S. FragaVinícius Moll

Web Services