DAS Sistemas Distribuídos para Automação Industrial

Slides:



Advertisements
Apresentações semelhantes
GEOINFO 2004 Mecanismos para intercâmbio de dados geográficos através de Web Services Valéria Gonçalves Soares Michael Schuenck dos.
Advertisements

Desenvolvimento de Sistemas Distribuídos Web Services
Novas Arquitecturas baseadas em Web Services
Sistemas Distribuídos Baseados na Web
ARQUITETURA EM CAMADAS
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Web Services Um Web Service é um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicações Infra-estrutura para a.
Sistemas Distribuídos Web Services
Comunicação Distribuída
Introdução aos Serviços Web
Universal Description, Discovery and Integration (UDDI)
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
SOA e Web Services Aluno: Thiago Caproni Tavares
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Entre Objetos Distribuídos
Gilberto Miyake Gerente de Produtos.
Área de Desenvolvimento de Sistemas
DAS Sistemas Distribuídos para Automação Industrial
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Sistemas Distribuídos
SOA - Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a serviços
Tópicos de Sistemas de Informação A
Middleware e Sistemas Distribuídos
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Web Services Desmistificando o pré-conceito.
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Tópicos Avançados em Sistemas Distribuídos
Administração e Integração de Redes em Sistemas Distribuídos
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
Arquitetura SOA e Oracle SOA SUITE
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
Projeto de Arquitetura de Software Visão Geral
CORBA Commom Object Request Broker Architecture Conhecendo o Padrão da OMG 3º Engenharia da Computação Vitor C. Tamarozi Romeu L. Furlan Júnior Prof. Edson.
RESTFul com Slim Framework
Da Introdução à Prática
RMI - JAVA.
RPC and Web Service André Pereira.
SOA Elucidado: Princípios da Arquitetura Orientada a Serviços
Padrões de Interação com o Usuário
Gerenciamento baseado na Web
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Web Services Equipe: Cláudia Brito Lyra Nunes da Silva
WSIT: Extensão de uma ferramenta de busca federada para Web Services Emanuel Müller Ramos Orientador: Cláudio Fernando Resin Geyer.
Integrando sistemas através de HTTP + XML. * Muitos processos manuais começam a ser realizados online. * Ferramentas desenvolvidas precisavam ser interoperáveis.
Web Services: Conceitos e Transações
Universidade Federal de Alagoas Instituto de Computação - IC Redes de Computadores 2 Serviços Web Felipe Santos José Oswaldo.
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
Java – Remote Method Invocation (RMI)
26/10/10 Sistemas Distribuídos 1 DAS Sistemas Distribuídos para Automação Industrial Trabalho 2ª Semestre de 2010 Professor: Joni da Silva Fraga.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
© Copyright 2005 Rodrigo Rebouças de Almeida ( Estudo de caso: Café Expresso Ltda. A estória de João...
1 Web Services Uma Introdução Jacques P. Sauvé DSC/UFCG 2003.
RMI Remote Method Invocation
Análise de estratégias para implantação de segurança em arquiteturas orientadas a serviços Dezembro/2010 Itabaiana/SE Universidade Federal de Sergipe –
Pesquisa sobre o uso de Web Service Alunos:Felipe Silveira Israel Andreis Programação Distribuída e Paralela Prof. Dr. Cláudio F. R. Geyer.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Transcrição da apresentação:

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

Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Ferramentas Conclusão

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

SOA

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

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

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 Business Layer Service Façade Data Layer Presentation Layer Web Service Standards permitem ligações cross-platform Dados e Lógica Negócio encapsulados por uma Web Service Façade

Web Services

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

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.

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

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

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 UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols 1 Consumidor Serviço Provedor Serviços SOAP 4

Arquitetura Web Services O processo para geração de um Web Service se resume em três passos: Publicação Localização Consumação UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols

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 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. 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. UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols

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 UDDI (Descoberta) WSDL (Descrição) Provedor de Web Services UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols SOAP (Interação)

Protocolos de Web Services Agente diretório serviços Consumidor do Serviço Encontre um serviço http://www.uddi.org HTML com referência para WSDL Como conversamos (WSDL) Serviço Web http://servico.com/?WSDL UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols Descrições de serviço (XML) Deixe-me falar com você (SOAP) http://servico.com/svc1 Resposta do serviço (XML)

Arquitetura Web Services Message SOAP / XML HTTP(S) Transport Discovery UDDI Description WSDL UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols Implementation Data Business Logic .NET/J2EE Data Business Logic

Arquitetura Web Services UDDI (Universal Description, Design, and Integration ) Provides a Directory of Services on the Internet WSDL (Web Services Description Language) Web Services are defined in terms of the formats and ordering of messages SOAP (Simple Object Access Protocol) Web Services consumers can send and receive messages using XML HTTP(S) and XML Transport provided by open Internet protocols

Invocação de Web Services <soap:Envelope <soap:Body> <add> <i1>10</i1> <i2>5</i2> </add> </soap:Body> </soap:Envelope> Client (Ex.: CalcClient.java) Web Server (Ex.: Apache Tomcat) 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

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

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

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.

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

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)

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

SOAP (Simple Object Access Protocol) Envelope (Exemplo)

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)

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

SOAP (Simple Object Access Protocol) Formato do pedido SOAP

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

SOAP (Simple Object Access Protocol) Formato da resposta SOAP

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)

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

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

WSDL (Web Service Description Language)

WSDL (Web Service Description Language)

WSDL (Web Service Description Language)

WSDL (Web Service Description Language)

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

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

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

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

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

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

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

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

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

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.

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

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

Conclusão

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%

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.

(Serviço de Validação Cartão de crédito) Etapa1 - Usuário deve informar: Origem, Destino, Data Início e Fim Servidor A Empresa Aérea A Usuário, Cliente Web Service Confirma a compra na Companhia 1 Pesquisa preço e disponibilidade . 3 4 7 Resposta Servidor B Empresa Aérea B Etapa 2 - Usuário Informa o número do cartão 2 Servidor 1, provedor serviço Web Pesquisa preço e disponibilidade Resposta 5 Verifica as informações do cartão crédito do cliente 6 . Pesquisa preço e disponibilidade Resposta Servidor N Empresa Aérea N Servidor Banco (Serviço de Validação Cartão de crédito) Resposta

Perguntas ??? Web Services Joni S. Fraga Vinícius Moll