Conceitos, SOAP, WSDL, UDDI, Exemplos. Programação com Objetos Distribuídos (C. Geyer) Web Services 1

Tamanho: px
Começar a partir da página:

Download "Conceitos, SOAP, WSDL, UDDI, Exemplos. Programação com Objetos Distribuídos (C. Geyer) Web Services 1"

Transcrição

1 Conceitos, SOAP, WSDL, UDDI, Exemplos Programação com Objetos Distribuídos (C. Geyer) Web Services 1

2 Autores Local Sérgio Mergen Cláudio Geyer Emanuel Müller Ramos Instituto de Informática UFRGS Versão V20 Maio 2010 cursos: Sistemas Operacionais II Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Web Services 2

3 Súmula conceitos gerais sobre Web Services conceitos de SOAP Introdução à biblioteca Axis WS no J2EE conceitos de WSDL conceitos de UDDI Observações Ênfase em WS para Java Programação com Objetos Distribuídos (C. Geyer) Web Services 3

4 Bibliografia Coulouris, G. Et al. Sistemas Distribuídos Conceitos e Projeto. Bookman, Cap. 19 CERAMI Ethan. Web Services Essentials - Distributed Applications with XML-RPC, SOAP, UDDI & WSDL. O'Reilly, NEWCOMER Eric. Understanding Web Services: XML, WSDL, SOAP, and UDDI. David Chappell Series Editor Wutka, M. Special Edition Using Java 2 Enterprise Edition. QUE, capítulo 25 Tutoriais da Sun para J2EE e do NetBeans Capítulos sobre WS: JAX-WS, SOAP,... Programação com Objetos Distribuídos (C. Geyer) Web Services 4

5 Links Atividades do W3 em Web Services XML Protocol Working Group Projetos WS do grupo Apache Implementações de Java SOAP Axis 2 Axis Programação com Objetos Distribuídos (C. Geyer) Web Services 5

6 Links Links SOAP do W3 SOAP Message Transmission Optimization Mechanism SOAP Resource Representation Header SOAP Version 1.2 Part 0: Primer SOAP Version 1.2 Part 1: Messaging Framework Programação com Objetos Distribuídos (C. Geyer) Web Services 6

7 Links Links SOAP do W3 SOAP Version 1.2 Part 2: Adjuncts SOAP Version 1.2 Specification Assertions and Test Collection Programação com Objetos Distribuídos (C. Geyer) Web Services 7

8 Links Links WSDL do W3 Semantic Annotations for WSDL and XML Schema Web Services Description Language (WSDL) Version 2.0 Part 0: Primer Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts as Recommendation. Programação com Objetos Distribuídos (C. Geyer) Web Services 8

9 Súmula Conceitos gerais sobre Web Services motivação para o uso de Web Services definição arquitetura componentes pilha de protocolos Programação com Objetos Distribuídos (C. Geyer) Web Services 9

10 Súmula Conceitos de SOAP Introdução ao SOAP Vantagens do SOAP Desvantagens do SOAP Estrutura de uma mensagem SOAP Exemplo de WS/SOAP com Apache Axis Comparação entre RMI e Apache SOAP Programação com Objetos Distribuídos (C. Geyer) Web Services 10

11 Súmula WS no J2EE Características Tipos JAX-WS RESTFul WSDL UDDI Programação com Objetos Distribuídos (C. Geyer) Web Services 11

12 A Internet Tradicional Ótima forma para troca de informações Independência de plataforma Abstração do hardware, software e sistema operacional utilizados Problemas: WWW era centrada no ser humano pessoas acessam, modificam, inserem e removem documentos remotos Aplicações que desejavam trocar informações pela Web necessitavam utilizar soluções ad-hoc Necessidade de estender a Web para suportar esse novo tipo de interação Web Services: web para sistemas coorportaivos Programação com Objetos Distribuídos (C. Geyer) Web Services 12

13 Web Services Objetivos Permitir uma comunicação fácil entre diferentes aplicações utilizando a estrutura já existente da Web Determinam um conjunto de mecanismos (padrões, especificões, etc.) que permitam estender a Internet para aceitar a troca de informações entre aplicações Adicionalmente: permitir que aplicações descubram automaticamente qual serviço elas desejam utilizar Chamada automática de serviços Sem nenhuma intervenção do ser humano Ainda não é totalmente realidade Obs: CORBA tinha alguns objetivos similares Programação com Objetos Distribuídos (C. Geyer) Web Services 13

14 Web Services Conceito Um Web Service é uma aplicação que: Está disponível através da Internet Utiliza padrões baseados em XML para descrever as mensagens enviadas e recebidas, bem como seus dados É independente de hardware, sistema operacional e linguagem de programação Pode ser descrita utilizando XML (WSDL) Pode ser encontrada facilmente (usando UDDI por exemplo) OBS.: Web Services baseados na arquitetura REST (REST WS) não seguem exatamente esses conceitos REST WS são mais simples Programação com Objetos Distribuídos (C. Geyer) Web Services 14

15 Exemplo Básico - Linguagens Java e C - SOs Windows e Linux - Mensagem XML - requisição e resposta Programação com Objetos Distribuídos (C. Geyer) Web Services 15

16 Arquitetura Pode ser descrita de duas formas Pelos componentes que a compõem Pela pilha de protocolos utilizada Programação com Objetos Distribuídos (C. Geyer) Web Services 16

17 Componentes Programação com Objetos Distribuídos (C. Geyer) Web Services 17

18 Pilha de Protocolos Conjunto mais utilizado: HTTP + SOAP + WSDL + UDDI Programação com Objetos Distribuídos (C. Geyer) Web Services 18

19 Nível de transporte Responsável por transmitir os dados entre as aplicações Pode utilizar protocolos já disponíveis pela internet (HTTP, SMTP, FTP, etc.) Nível de mensagem Define o formato das mensagens enviadas entre as aplicações Obs.: Formato XML puro não garante interoperabilidade entre aplicações Programação com Objetos Distribuídos (C. Geyer) Web Services 19

20 Nível de descrição Representa a interface de um Web Service aos clientes Nome das operações disponíveis Parâmetros Protocolos do nível de transporte utilizados Etc Nível de descoberta Registros onde é possível publicar um Web Service Programação com Objetos Distribuídos (C. Geyer) Web Services 20

21 Súmula da parte SOAP Conceitos de SOAP Introdução ao SOAP Vantagens do SOAP Desvantagens do SOAP Estrutura de uma mensagem SOAP Exemplo de WS/SOAP com Apache Comparação entre RMI e Apache SOAP Programação com Objetos Distribuídos (C. Geyer) Web Services 21

22 O que é SOAP? Protocolo para troca de mensagens distribuídas Pode ser usado como o nível de mensagem da arquitetura WS Concorrente de IIOP (Corba), JRMP (Java RMI), XML-RPC, REST- WS e outros Proposto a IETF e ao W3 W3: World Wide Web Consortium IETF: organização que publica padrões para Internet como TCP, FTP, HTTP, Especificação inicial desenvolvida por Microsoft, IBM/Lotus, Don Box (guru COM), Dave Winer (criador de um XML-RPC) Programação com Objetos Distribuídos (C. Geyer) Web Services 22

23 Características do SOAP Baseado em tecnologias já existentes HTTP, SMTP como nível de transporte XML Utiliza mensagens no formato XML Unidirecional Sem estado Não define um modelo de objetos Não define um modelo para troca de mensagens Não está necessariamente ligado a Web Services Programação com Objetos Distribuídos (C. Geyer) Web Services 23

24 Características do SOAP Quando usado em chamada de WS Aplica modelo requisição resposta (cliente/servidor) com 2 mensagens SOAP Chamada pode ser: Síncrona (normal em RPC) Assíncrona Assíncrona com resposta no futuro Programação com Objetos Distribuídos (C. Geyer) Web Services 24

25 Vantagens do SOAP Firewall Friendly uso de protocolos Web como HTTP Infraestrutura já conhecida Amplo suporte a XML Suportado por grandes organizações Variedade de bibliotecas (livres e pagas) para sua utilzação Programação com Objetos Distribuídos (C. Geyer) Web Services 25

26 Vantagens SOAP Independe de linguagem (se utilizado seguindo corretamente os padrões) RMI: só Java observação: RMI-IIOP permite Java x linguagens com IIOP IIOP: exige biblioteca IIOP para a linguagem SOAP: somente um parser XML mais biblioteca para envio de requisições HTTP Independe de plataforma permitiria ponte entre mundos Linux e Microsoft obs: RMI e CORBA oferecem essa ponte, mas não com o mesmo nível de abstração Programação com Objetos Distribuídos (C. Geyer) Web Services 26

27 Desvantagens SOAP Brechas na segurança WS-Security tenta resolver esses problemas wg_abbrev=wss Problemas de performance menos rápido que atuais competidores tipo RPC como RMI (Java), IIOP (CORBA), DCOM e Remote (Microsoft) mais lento mesmo comparado a competidores que são baseados em XML (XML-RPC, REST-WS) Muito complexo: overhead aplicações geralmente não necessitam de tantas funcionalidades para realizar seus objetivos REST-WS é mais simples -> mais eficiente (?) Programação com Objetos Distribuídos (C. Geyer) Web Services 27

28 Desvantagens SOAP Não oferece serviços avançados A revisar conforme novos padrões Web Services Como CORBA, J2EE, CORBA possuía mais de 20 serviços como persistência, transações, real-time, aluguel de objetos,... Não possui noção de objeto com estado como em RMI Não suporta passagem por referência Obs.: possível simular esses comportamentos de OO Programação com Objetos Distribuídos (C. Geyer) Web Services 28

29 Versões SOAP SOAP Programação com Objetos Distribuídos (C. Geyer) Web Services 29

30 Especificação (estrutura geral dos documentos) Parte 1: define o envelope, um framework geral para definir o conteúdo de uma mensagem Também define os protocolos de ligação e o mapeamento para um protocolo inferior Parte 2: Define um modelo de dados para o SOAP Representação de recurso Especifica um bloco de cabeçalho, no qual há a representação de um recurso Web Outros documentos Programação com Objetos Distribuídos (C. Geyer) Web Services 30

31 Envelope: define o começo da mensagem SOAP Header: possui informações específicas da aplicação Dados de autenticação Número de transação Etc. opcional Body: contém a mensagem propriamente dita Contém dados que devem ser transmitidos de forma estruturada Possiveis excessões durante o tratamento da mensagem Programação com Objetos Distribuídos (C. Geyer) Web Services 31

32 POST /Temperature HTTP/1.1X Host: Content-Type: text/xml Content-Length: <whatever> SOAPMethodName: <some-uri>#currenttemp Http Header Soap Extensions <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoaporg:soap.v1"> <SOAP:Body> </SOAP:BODY> <SOAP:Envelope> <m:currenttemp xmlns:m="some-uri"> <zip_code>37919</zip_code> <m:currenttemp> Sem header Xml Payload argumento Programação com Objetos Distribuídos (C. Geyer) Web Services 32

33 HTTP/ OK Content-Type: text/xml Content-Length: <whatever> Http Header Com header <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1"> <SOAP:Header> <t:transaction xmlns:t="some-uri"> 5 </t:transaction> </SOAP:Header> <SOAP:Body> Xml Payload <m:currenttempresponse xmlns:m="some-uri"> <return>42</return> </m:currenttempresponse> </SOAP:Body> </SOAP:Envelope> resposta Programação com Objetos Distribuídos (C. Geyer) Web Services 33

34 Estrutura XML das mensagens SOAP inicialmente complexa como exemplos anteriores eliminando as informações de namespace como <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoaporg:soap.v1"> o resto é simples e legível (?) Ao menos mais do que formato Java/RMI, Corba/IIOP,... Programação com Objetos Distribuídos (C. Geyer) Web Services 34

35 Implementação Apache Axis para Java baseada em implementação anterior Apache SOAP conjunto de bibliotecas clientes bibliotecas para o servidor servlet para processamento das chamadas Classe servidora ferramentas auxiliares para utilização de Web Services Programação com Objetos Distribuídos (C. Geyer) Web Services 35

36 Implementação Apache programa cliente usa as suas bibliotecas para empacotar a chamada (request) Diferentes níveis de abstração dependendo da abordagem utilizada servidor decodifica a chamada chama o método do objeto servidor e empacota o resultado para o cliente obs: tudo isto de forma transparente para o programador Programação com Objetos Distribuídos (C. Geyer) Web Services 36

37 Exemplo Hello especificação cliente realiza uma chamada SOAP a uma operação de um servidor Hello servidor Interface: 2 (duas) operações responde à chamada de saudação recebe nova saudação Programação com Objetos Distribuídos (C. Geyer) Web Services 37

38 Exemplo Hello codificação do cliente duas aproximações criar chamada manualmente parte mais complexa uso de vários métodos do pacote SOAP criação da chamada inclusão de cada argumento da chamada utilizar o arquivo WSDL (se disponível) WSDL: descrição (opcional) de um WS em xml aproximação estática (geração de Stubs) ou dinâmica chamada similar à de um método local Programação com Objetos Distribuídos (C. Geyer) Web Services 38

39 Exemplo Hello código do cliente codificação manual trabalhosa import java.io.*; import java.net.*; import java.util.*; import org.w3c.dom.*; import org.apache.soap.*; import org.apache.soap.encoding.*; import org.apache.soap.encoding.soapenc.*; import org.apache.soap.rpc.*; import org.apache.soap.util.xml.*; Programação com Objetos Distribuídos (C. Geyer) Web Services 39

40 public class GetHello { public static void main(string[] args) throws Exception { // The URL for the SOAP servlet (servidor WS) URL url = new URL(" rpcrouter"); // Create a new call Call call = new Call(); // Tell SOAP which object you want (qual serviço) call.settargetobjecturi("urn:helloapp"); // Tell SOAP which method to invoke call.setmethodname("gethello"); Programação com Objetos Distribuídos (C. Geyer) Web Services 40

41 // Tell SOAP to use the regular SOAP encoding style call.setencodingstyleuri (Constants.NS_URI_SOAP_ENC); // Create a vector to hold the method parameters Vector params = new Vector(); // Add a string parameter called extra1 with a value of "Hello info // Specify null for the encoding style params.addelement(new Parameter("extra1", String.class, "Hello info", null)); Programação com Objetos Distribuídos (C. Geyer) Web Services 41

42 // Add an int parameter called extra2 with a value of 123 // Specify null for the encoding style params.addelement(new Parameter("extra2", Integer.class, new Integer(123), null)); // Store the parameters in the request call.setparams(params); // Prepara uma variável para a resposta Response resp = null; Programação com Objetos Distribuídos (C. Geyer) Web Services 42

43 // Invoke the call method try { resp = call.invoke(url, ""); } catch (SOAPException e) { e.printstacktrace(); System.exit(0); } Programação com Objetos Distribuídos (C. Geyer) Web Services 43

44 // See if the response contains an error if (!resp.generatedfault()) { // If not, get the return value Parameter ret = resp.getreturnvalue(); // Expect it to be a string String value = (String) ret.getvalue(); } System.out.println(value); Programação com Objetos Distribuídos (C. Geyer) Web Services 44

45 else { Fault fault = resp.getfault(); System.err.println("Generated fault: "); System.out.println (" Fault Code = " + fault.getfaultcode()); System.out.println (" Fault String = " + fault.getfaultstring()); } } } Programação com Objetos Distribuídos (C. Geyer) Web Services 45

46 Código do cliente geração de Stubs Outra alternativa para codificação Axis gera automaticamente classes para acessar o Web Service baseados em SOAP/WSDL A partir dessas classes, o desenvolvedor necessita apenas instanciá-las para executar a operação desejada Hello WSDL Hello Service.java Hello Port.java Arquivo WSDL Axis WSDL2Java Hello Service Locator.java Hello BindingStub.java Stubs Gerados Programação com Objetos Distribuídos (C. Geyer) Web Services 46

47 Código do cliente geração de Stubs import HelloServiceLocator; import HelloService; import HelloPort; import HelloBindingStub; public class GetHello { public static void main(string[] args) throws Exception { // localize the service; uso de métodos das classes geradas HelloService locator = new HelloServiceLocator(); HelloPort port = locator.gethelloport(); } } //execute the remote method String result = port.gethello( Hello Info, new Integer(123)); System.out.println(result); Programação com Objetos Distribuídos (C. Geyer) Web Services 47

48 Exemplo Hello código do servidor // standard Java public class SoapHello { protected String hellostring; public SoapHello() { hellostring = "Hello!"; } Programação com Objetos Distribuídos (C. Geyer) Web Services 48

49 public String gethello(string extra1, int extra2) { return hellostring+" "+extra1+" "+extra2; } } public void sethello(string newhello) { hellostring = newhello; } Programação com Objetos Distribuídos (C. Geyer) Web Services 49

50 Publicando o servidor utilizando Apache Axis Duas formas principais Salvar código do servidor na pasta raiz do Axis com a extensão.jws instalação instantânea Extremamente simples; Necessita do código fonte (e não o binário); Web service é gerado no instante em que o cliente o acessa: baixo desempenho; Utilizar um arquivo de configuração WSDD (Web Service Deployment Descriptor) Mais complicado; Resolve os problemas da alternativa anterior; Programação com Objetos Distribuídos (C. Geyer) Web Services 50

51 Programação com Objetos Distribuídos (C. Geyer) Web Services 51

52 Protocolo de transporte SOAP qualquer um (preferência para HTTP) XML-RPC somente HTTP Tipos extensível utilizando XML Schema restritos a um conjunto básico Ordem de parâmetros indiferente importante Complexidade complicado simples SOAP tem várias vantagens; mas é mais complexo Programação com Objetos Distribuídos (C. Geyer) Web Services 52

53 Pacote da Sun para Web Services Obs.: em 2006 nome: JWSDP - Java Web Services Developer Pack 1.2 link agora: previous/webservicespack.jsp anteriormente: webservicespack.html em transição para projeto GlassFish: Programação com Objetos Distribuídos (C. Geyer) Web Services 53

54 Pacote da Sun para Web Services conteúdo (obs. Versão 1.2): JavaServer Faces (JSF) v1.0 EA4 XML and Web Services Security (xws-security) v1.0 EA Java Architecture for XML Binding (JAXB) v1.0.1 Java API for XML Processing (JAXP) v1.2.3 Java API for XML Registries (JAXR) v1.0.4 Java API for XML-based RPC (JAX-RPC) v1.1 EA SOAP with Attachments API for Java (SAAJ) v1.2 EA JavaServer Pages Standard Tag Library (JSTL) v1.1 EA Java WSDP Registry Server v1.0_05 Ant Build Tool Apache Tomcat v5 development container Programação com Objetos Distribuídos (C. Geyer) Web Services 54

55 Pacote Sun Web Services pacote testado com plataformas Sun Solaris Operating Environment 8 and 9 Windows 2000 Professional Edition Windows XP Professional Edition RedHat Linux 8.0 ambiente Java Java 2 SDK, Standard Edition version 1.4.1_02 plataforma de desenvolvimento e execução Sun recomenda Sun ONE Studio 4 and Sun ONE Application Server 7. Programação com Objetos Distribuídos (C. Geyer) Web Services 55

56 WS no J2EE WS no J2EE Tecnologias incluídas JAX-WS Java API para XML Web Services JAX-RS Conceito WS Java API para RESTFul Web Services São aplicações cliente / servidor Comunicando sobre o protocolo HTTP Programação com Objetos Distribuídos (C. Geyer) Web Services 56

57 WS no J2EE WS no J2EE Características Interoperabilidade via padrões Portabilidade sobre diversas plataformas e frameworks Extensíveis Descrições processáveis graças a XML Combináveis de forma leve para obter operações complexas Tipos Big WS RESTFul WS Programação com Objetos Distribuídos (C. Geyer) Web Services 57

58 WS no J2EE WS no J2EE Big WS Uso de XML e SOAP Descrição dos serviços em WSDL (linguagem em XML) opcional Adotado por diversas ferramentas como NetBeans IDE Programação com Objetos Distribuídos (C. Geyer) Web Services 58

59 WS no J2EE WS no J2EE Big WS Elementos principais Contrato formal Descreve a interface Mensagens, operações, localização do WS, ligações Arquitetura Tratar diversos requisitos complexos não funcionais Transações, segurança, endereçamento, confiança, cordenação,... Processamento e chamada assíncronos Programação com Objetos Distribuídos (C. Geyer) Web Services 59

60 WS no J2EE WS no J2EE RESTFul Representational State Transfer Apropriado para cenários básicos e ad doc Melhor integração com HTTP que serviços SOAP Não exigem mensagens XML nem WSDL Uso do projeto Jersey Segue padrão: JSR 311 JAX-RS Permite anotações Mais funcionalidades extra JSR 311 Mais leves Exigem poucas ferramentas Também integrado no NetBeans IDE Programação com Objetos Distribuídos (C. Geyer) Web Services 60

61 WS no J2EE WS no J2EE RESTFul Usos reais Muitos sites de blogs Download de arquivos XMl em formato RSS com listas de links Twitter Amazon Simple Storage Service (S3) Programação com Objetos Distribuídos (C. Geyer) Web Services 61

62 WS no J2EE WS no J2EE RESTFul Apropriado em/se WS sem estado Teste: interação sobrevive a queda / colocar-no-ar do servidor (restart) Infra-estrutura de cache pode ser mais simples Quando dados de retorno são estáticos Técnicas de cache do servidor web mais simples Cuidado: em geral limitado a método GET do HTTP Programação com Objetos Distribuídos (C. Geyer) Web Services 62

63 WS no J2EE WS no J2EE RESTFul Apropriado em/se Contrato liente (consumidor) e serviço (produtor) em formato ad hoc Sobre contexto e conteúdo Muitos serviços distribuem toolkits com Descrição de interfaces em linguagens populares Quando banda é limitada Por exemplo para PDAs e smartphones SOAP é pesado Programação com Objetos Distribuídos (C. Geyer) Web Services 63

64 WS no J2EE WS no J2EE RESTFul Apropriado em/se Agregação de serviços é simples Via uso de tecnologias como JAX-RS AJAX: Asynchronous JavaScript com XML Toolkits como DWR (Direct Web Remoting) Serviços já existentes podem ser expostos via páginas HTML sem muito esforço Desenvolvimento mais produtivo Não é uma nova tecnologia Programação com Objetos Distribuídos (C. Geyer) Web Services 64

65 WS no J2EE WS no J2EE Big WS x RESTFul Usar JAX-WS quando Aplicação necessita de vários requisitos de QoS Usualmente em aplicações coorporativas Mais fácil o uso de padrões de segurança e confiabilidade Melhor interoperabilidade com outros WS Programação com Objetos Distribuídos (C. Geyer) Web Services 65

66 WS no J2EE WS no J2EE Big WS x RESTFul Usar JAX-RS quando Desenvolvimento mais simples Acoplamento reduzido Mais fácil o consumo (clientes) Facilita manutenção (extensão da app) e escalabilidade Cliente pode consumir parte do serviço e combiná-lo como outros serviços (mash-up) Artigo Pautasso, C. et al. RESTFul Web Services vs. Big Web Services: Making the Right Architectural Decision. WWW 08, pp Programação com Objetos Distribuídos (C. Geyer) Web Services 66

67 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Características Complexidade do SOAP escondida via APIs do JAX-WS Lado servidor Operações definidas por métodos em interface Java Implementação via classe(s) que implementam os métodos da interface Lado cliente Cria um proxy Objeto local que representa o serviço Chama métodos do proxy Não é necessário gerar ou examinar mensagens SOAP Programação com Objetos Distribuídos (C. Geyer) Web Services 67

68 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Características Portabilidade de Java Independência de plataforma Interoperabilidade entre plataformas Cliente JAX-WS pode acessar WS não Java Cliente não Java pode acessar serviço JAX-WS Óbvio... (?) Devido JAX-WS seguir padrões do W3C para WS Programação com Objetos Distribuídos (C. Geyer) Web Services 68

69 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Porta do servidor Diversos arquivos referenciam a porta do servidor Padrão é 8080 Pode ser alterada Programação com Objetos Distribuídos (C. Geyer) Web Services 69

70 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello Serviço Classe Java anotada Classe passa a ser um SEI SEI Service Endpoint Interface ou Service Endpoint Implementation A interface não é obrigatória Se interface Indicada por argumento endpointinterface na Programação com Objetos Distribuídos (C. Geyer) Web Services 70

71 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello Serviço Ferramenta (wsgen) gera todos os artefatos Em uso Via o Enterprise Server (container) Passos Codificação da classe Compilação da classe Criação dos artefatos (wsgen) Empacotamento em arquivo WAR Instalação (deploy) do WAR no servidor Programação com Objetos Distribuídos (C. Geyer) Web Services 71

72 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello Servidor Requisitos Anotar classe ou interface (se houver) Métodos da classe devem ser Públicos Não static nem final Métodos do WS Anotados Programação com Objetos Distribuídos (C. Geyer) Web Services 72

73 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello Servidor Código package helloservice.endpoint; import public class Hello { private String message = new String("Hello, "); public void Hello() {} public String sayhello(string name) { return message + name + "."; } Programação com Objetos Distribuídos (C. Geyer) Web Services 73

74 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello Servidor Teste sem cliente Após WS instalado (no container do J2EE) Entrar com URL (local) do serviço mais função de teste?tester Na página de teste (resposta) entrar com argumentos (se for o caso) e clicar no método Será mostrada a resposta do método Programação com Objetos Distribuídos (C. Geyer) Web Services 74

75 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello / Cliente Instanciar a classe gerada helloservice.endpoint.helloservice Ela representa o serviço na URI indicada no arquivo WSDL instalado HelloService service = new HelloService(); Recuperar um proxy ao serviço Também conhecido como port Chamando o método gethelloport do serviço Hello port = service.gethelloport(); Chamar o método de negócio via proxy String response = port.sayhello(name); Programação com Objetos Distribuídos (C. Geyer) Web Services 75

76 WS no J2EE WS no J2EE Desenvolvendo com JAX-WS Exemplo Hello / Cliente Código completo O exemplo completo é um pouco mais complexo Mas o adicional não é exigido pelo JAX-WS Puro Java Programação com Objetos Distribuídos (C. Geyer) Web Services 76

77 J2EE / RESTFul conceitos Programação com Objetos Distribuídos (C. Geyer) Web Services 77

78 RESTFul RESTful WS Serviços desenvolvidos para funcionar melhor na web Melhor? Escalabilidade REST Desempenho Capacidade de modificação REpresentational State Transfer Recurso Combinação de dados e funcionalidades Programação com Objetos Distribuídos (C. Geyer) Web Services 78

79 RESTFul RESTful WS Identificação por URI Endereço global Protocolo de comunicação sem estado Por exemplo, HTTP Uso de interface uniforme Programação com Objetos Distribuídos (C. Geyer) Web Services 79

80 J2EE / RESTful RESTful Objetivos Aplicações RESTful devem ser Simples Leves Alto desempenho Interface (uniforme) 4 operações PUT: cria um novo recurso DELETE: recurso (criado) é excluído GET: recupera o estado de um recurso POST: atualiza o estado de um recurso Programação com Objetos Distribuídos (C. Geyer) Web Services 80

81 J2EE / RESTful RESTful Mensagens auto-descritas Recursos são independentes da sua representação Recursos podem ser acessados de diferentes formas como HTML, XML, texto, PDF, JPEG, JSON e outras Metadados sobre o recurso usados para Controlar cache Detectar erros de transmissão Negociar forma de representação Realizar autenticação Controlar acesso Programação com Objetos Distribuídos (C. Geyer) Web Services 81

82 J2EE / RESTful RESTful Interações com estado Cada interação com um recurso é sem estado Mensagens são auto-contidas Interações com estado via conceito de transferência explícita de estado Via técnicas como Reescrita de URI Cookies Campos escondidos de form Técnicas não aprofundadas no tutorial Java EE Programação com Objetos Distribuídos (C. Geyer) Web Services 82

83 J2EE / RESTful RESTful Jersey implementação Segue padrão JSR 311: JAX-RS Suporte a anotações Documentação em: A documentação teria que ser instalada (?) no Enterprise server v3 Programação com Objetos Distribuídos (C. Geyer) Web Services 83

84 J2EE/RESTful RESTful Classes de recurso raiz Anotadas Ou ao menos um método anotado ou com designador de método @POST Métodos de recursos Métodos com o designador de requisição Programação com Objetos Distribuídos (C. Geyer) Web Services 84

85 J2EE/RESTful RESTFul JAX-RS API Java API para facilitar o desenvolvimento de aplicações com RSET Uso de anotações, específicas para HTTP Anotações são resolvidas durante execução (runtime) Uso de reflexão para gerar classes auxiliares e outros artefatos para o recurso Classes e artefatos agrupados em arquivo WAR (web) WAR deve ser instalado em container J2EE ou web Programação com Objetos Distribuídos (C. Geyer) Web Services 85

86 J2EE/RESTful RESTful Principais Caminho relativo de URI Indica onde a classe Java será instalada Pode ser adicionada com variáveis para definir modelos (templates) Exemplos /helloworld Com controle de usuário/senha /helloworld{username} Programação com Objetos Distribuídos (C. Geyer) Web Services 86

87 RESTful J2EE/RESTful Principais devem processar requisições HTTP devem processar requisições HTTP Métodos Métodos Programação com Objetos Distribuídos (C. Geyer) Web Services 87

88 RESTful J2EE/RESTful Principais Tipo de parâmetro que pode ser extraído para uso na classe (em métodos por exemplo) Extraído da URI requisitada Nomes de parâmetros definidos Tipo de parâmetro que pode ser extraído para uso na classe Extraído da URI requisitada Programação com Objetos Distribuídos (C. Geyer) Web Services 88

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura 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

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Web Service Plínio Antunes Garcia Sam Ould Mohamed el Hacen Sumário Introdução conceitual O Web Service

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução 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

Leia mais

Criando Web Services. Palestrante: Daniel Destro do Carmo

Criando Web Services. Palestrante: Daniel Destro do Carmo Criando Web Services com Apache Axis Palestrante: Daniel Destro do Carmo Tópicos do Tutorial Introdução O que são Web Services? Padrões Web Services SOAP WSDL Web Services com Java O que é Apache Axis?

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML. Web services Um web service é qualquer software que está disponível através da Internet através de uma interface XML. XML é utilizado para codificar toda a comunicação de/para um web service. Web services

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

Programação Cliente em Sistemas Web

Programação Cliente em Sistemas Web Programação Cliente em Sistemas Web WEBSERVICES Cap 18. - Sistemas distribuídos e serviços web em Deitel, H.M, Sistemas Operacionais, 3 ª edição, Pearson Prentice Hall, 2005 Fonte: Rodrigo Rebouças de

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

Web Services. Conceitos, SOAP, WSDL, UDDI, Exemplos. Programação com Objetos Distribuídos (C. Geyer) Web Services 1

Web Services. Conceitos, SOAP, WSDL, UDDI, Exemplos. Programação com Objetos Distribuídos (C. Geyer) Web Services 1 Web Services Conceitos, SOAP, WSDL, UDDI, Exemplos Programação com Objetos Distribuídos (C. Geyer) Web Services 1 ! Autores " Sérgio Mergen " Cláudio Geyer " Emanuel Müller Ramos Autoria! Local " Instituto

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens Web Services Pós-Graduação em Tecnologias para o desenvolvimento de aplicações WEB Conteúdo da Aula de Hoje Conceitos básicos Teste com WS Implementação de WS (Provedor e usuário) Instrutor : Avaliação

Leia mais

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello 1/39 Serviços Web (Web Services) Emerson Ribeiro de Mello Departamento de Automação e Sistemas Universidade Federal de Santa Catarina 22 de Maio de 2007 2/39 Arquitetura Orientada a Serviços Arquitetura

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services (continuação) WSDL - Web Service Definition Language WSDL permite descrever o serviço que será oferecido

Leia mais

Manual de Integração WebService

Manual de Integração WebService Manual de Integração WebService Sumário 1. O que é a Integração WebService? 2. Envio Simples 3. Consultar Status da Mensagem 3.1 Consultar Mensagens Recebidas 4. Tecnologia do WebService Facilita 1. O

Leia mais

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Programação para Internet Avançada 4. Web Services Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt São módulos de aplicações de negócios que expõem as regras do negócio como serviços na Internet através

Leia mais

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education RestFull WebServices Rafael Nunes Arquiteto de Software / Instrutor Globalcode 1 REST Integrando aplicações e disponibilizando serviços sem complicar a vida de ninguém. 2 Agenda > Integrando Aplicações

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com REST Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com 1 RESTful REpresentation State Transfer Estilo de arquitetura de software para sistemas distribuídos Termo proposto por Roy Fielding

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON) Márcio Koch 1 Currículo Formado na FURB em Ciência da Computação Pós graduado em Tecnologias para o desenvolvimento de aplicações web Mestrando em Computação Gráfica na UDESC Arquiteto de software na Senior

Leia mais

SOA na Prática Ricardo Limonta

SOA na Prática Ricardo Limonta SOA na Prática Ricardo Limonta Arquiteto JEE Objetivo Apresentar os conceitos de Arquiteturas Orientadas a Serviços; Entender a relação entre SOA e a tecnologia Web Services; Implementar SOA com Web Services

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação

Leia mais

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: CDC Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica Desenvolvimento de Web Services com SOAP. 1. Introdução. Com a tecnologia de desenvolvimento

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Web Container: e JSP Sumário Protocolo HTTP Exemplos de JSP (Java Server Pages) Exemplos JSP 2 Protocolo HTTP URL: Um URL (Uniform

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha (helder@acm.org)

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha (helder@acm.org) J820 Testes de interface Web com HttpUnit Helder da Rocha (helder@acm.org) O que é HttpUnit API Java para comunicação com servidores HTTP Permite que programas construam e enviem requisições, e depois

Leia mais

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Arquiteturas de Aplicações Web Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aplicações Convencionais vs. Web Aplicações convencionais Escritas usando uma linguagem de programação (ex.: Java) Sites de

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP Web Services & SOAP Tecnologias de Middleware 2004/2005 SOAP Simple Object Access Protocol Os web services necessitam de comunicar entre eles e trocar mensagens. O SOAP define a estrutura e o processamento

Leia mais

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br JXTA Alessandro Vasconcelos Ferreira de Lima Roteiro Motivação Introdução Arquitetura de JXTA Elementos de JXTA Os Protocolos Comparações e Desvantagens Conclusão Motivação Limitações do Modelo Cliente

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 .NET Remoting Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 Autoria Autores 1a versão Fabio Augusto Dal Castel colaboração revisão Eduardo F. Seganfredo Rodrigo Gatto C. Geyer Programação

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo e Serviço e e Tecnologias de Middleware 06/07 Curso de Especialização em Informática Departamento de Informática Faculdade de Ciências da Universidade de Lisboa 27.10.2006 e Serviço e 1 2 Serviço e 3 e...o

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL Web Services Antonio Dirceu adrvf@cin.ufpe.br Tópicos Motivação Integração de aplicações Tecnologias Web Service SOAP, WSDL, UDDI, WSFL Passo a passo Business Web Conclusão Motivação Integração de Aplicações

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

INE5380 - Sistemas Distribuídos

INE5380 - Sistemas Distribuídos INE5380 - Sistemas Distribuídos Object Request Broker e CORBA Por: Léo Willian Kölln - 0513227-4 Novembro de 2006 ORB Object Request Broker ORB aqui será tratado como um Middleware que permite a construção

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT 1. IDENTIFICAÇÃO Padrão Segmento Código P06.002 Revisão v. 2014 Plataformas Web 2. PUBLICAÇÃO Recursos Tecnológicos Versão Data para adoção Publicação v. 2014 23 de dezembro de 2014 PORTARIA N Nº 225 de

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens

Leia mais

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/2007 20.10.2006. Faculdade de Ciências da Universidade de Lisboa

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/2007 20.10.2006. Faculdade de Ciências da Universidade de Lisboa Alexandre Zua Caldeira Tecnologias de Middleware 2006/2007 Faculdade de Ciências da Universidade de Lisboa 20.10.2006 1 Introdução Definições Limitações do Middleware Estudado Integração com Web Services

Leia mais

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto Java Enterprise Edition by Antonio Rodrigues Carvalho Neto Enterprise Edition Architecture O que é Java Enterprise Edition? Java EE é uma plataforma que reune diversas especificações relacionadas a computação

Leia mais

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

Arquiteturas SOA, WOA, e REST

Arquiteturas SOA, WOA, e REST Arquiteturas SOA, WOA, e REST Aplicação de Software Social Fred Figueiredo Luiz Borges Pedro Pires Arquiteturas SOA, WOA e REST Desenvolvimento de aplicações orientadas ao fornecimento de serviços que

Leia mais

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services Danielle Corrêa Ribeiro 1, Elizabeth Mª Martinho da Silva 1, Francisco A. S. Júnior 1, Thatiane de Oliveira Rosa 1, Madianita Bogo

Leia mais

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha Desenvolvimento WEB II Professora: Kelly de Paula Cunha O Java EE (Java Enterprise Edition): série de especificações detalhadas, dando uma receita de como deve ser implementado um software que utiliza

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais