O que são Serviços Web? Serviços Web X Tecnologias de Componentes Tecnologias de Serviços Web:

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

Download "O que são Serviços Web? Serviços Web X Tecnologias de Componentes Tecnologias de Serviços Web:"

Transcrição

1 Paulo F. Pires Unirio & UFRJ Agenda O que são Serviços Web? Serviços Web X Tecnologias de Componentes Tecnologias de Serviços Web: SOAP WSDL UDDI Exemplos Java Projetando Serviços Web Serviços Web& WebSemântica Aplicando Tecnologia de Serviços Web

2 O que são Serviços Web? A Web de hoje Web planejada para aplicações voltadas para interação com o homem Serviu muito bem a seu propósito: Compartilhamento de informação: uma biblioteca de conteúdo distribuído. Possibilitou e-commerce B2C. Interações B2B não automatizadas. Interações Automatizadas? Se você quisesse fazer uma aplicação para processar uma página, você poderia, mas teria de fazer uma varredura (scraping) do HTML.

3 O que é um Serviço Web? A Web pode crescer significativamente em poder e escopo se ela for estendida para apoiar a comunicação entre aplicações, de um programa para outro." -- Fonte: W3C XML Protocol Working Group Charter O que é um Serviço Web? 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.

4 Definição(ões) W3C Serviços web Arch WG: Um serviço Web é uma aplicação de software identificada por uma URI, cujas interfaces e ligações são capazes de serem definidas, descritas e descobertas por artefatos XML e que suporta interações diretas com outras aplicações de software usando mensagens baseadas em XML via protocolos baseados na internet Modelo de Serviços Web Serviços Web DBMS.NET Mensagens XML Mensagens XML J2EE Internet/Intranet CORBA ERP Busca Adapter Registro Publica Sistemas de Backend Agente (Broker) de Integração

5 Principais tipos de Serviços Web Orientados a Documento Envia dados formatados como um documento de negócio exemplo: Ordem de Compra Semelhante a Intercâmbio de Dados Eletrônico (EDI) Tipicamente inicia um fluxo de processo Assíncrono Orientados a chamadas de procedimento remotas Remote procedure call (RPC) Envia dados formatados como argumentos para uma procedure ou invocação de objeto Semelhante a CORBA, COM, ou EJB Retorna um resultado diretamente Síncrono Serviços Web orientados a Documento Ordem de Compra de Produto Interface do Serviço Web Confirmação por Recebe Verifica DB Prepara Recibo Envia Fluxo de processo de negócio

6 Serviços Web orientados a RPC Interface do Serviço Web Requisição online de pedido Resposta online ao pedido Programas aplicativos ou stored procedures Banco de Dados Perspectiva da Arquitetura Um Serviço Web é essencialmente um padrão (pattern) do tipo facade, ou wrapper para acessar componentes de middleware não padronizados. Servidor Web Requisição XML Resposta XML Listener Web Serviço middleware Serviço de Negócio

7 Exemplo: Validação de Cartão de Crédito Browser Empresa example.com Valide o Cartão de Crédito : Web serviço XML Cartão de Crédito Cartão de Crédito: OK Esta funcionalidade já existe. Todavia, o objetivo dos Serviços Web É padronizar o processo, possibilitando funcionalidade plug and play Integração P2P - Problemas

8 Projetando Serviços Web Objetivos Possibilitar interoperabilidade universal. Larga adoção, ubiqüa: rápida! Compare com a adoção boa, mas ainda limitada do padrão OMA da OMG. Possibilitar (a nível de Internet) ligação dinâmica. Apoio de uma arquitetura orientada a serviços (SOA). Apoia eficientemente ambientes abertos (Web) e outros mais restritos. Diminui a dor da incompatibilidade (linguagens, sistemas operacionais, & protocolos de rede) Serviços Web são um esforço para construir uma plataforma de computação distribuída para a Web Projetando Serviços Web Requisitos Baseado em padrões. Suporte pervasivo é crítico. Assume-se uma quantidade mínima de infraestrutura necessária. Só um conjunto mínimo de padrões tem de ser implementado. Espera-se um nível muito baixo de integração de aplicações. Mas pode ser aumentado de forma flexível. Foco em mensagens e documentos, não em APIs.

9 Por que Serviços Web? 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 Baseados em protocols ubiqüos : HTTP/SMTP Complementam tecnologias já existentes Estatísticas (Cristal Ball) - USA Gartner estima que o mercado de software de Serviços Web seja $1.7 bilhões em 2003 Evans Data estima que 63% de todos os desenvolvedores estarão trabalhando em projetos de serviços Web pelo final de % já estão trabalhando em projetos de serviços Web Butler Group diz que mais de 76% de CIOs acreditam que Serviços Web são altamente significantes para o modo como eles elaboram serviços de TI. Jupiter Media Matrix recentemente descobriu que 60% dos CEOs planejavam usar Serviços Web em 2002 Uma pesquisa recente da InfoWorld mostrou que 28% das empresas estão agora usando Serviços Web outros 23% estão planejando introduzi-los este ano.

10 Tecnologia de Integração & SW CORBA, EJB, e COM resolvem muitos problemas de integração Porém Cada tecnologia erroneamente assume que ela é ubiqüa O suporte da Indústria para cada padrão de componente é fragmentado Desenvolvimento Complexo Resultado: Ilhas de interoperabilidade EDI - Electronic Data Interchange? Proprietárias Solução complexas e caras Problema de integração É difícil integrar Diferenças no Modelo de Objetos Diferenças nos protocolos de Comunicação Diferenças nos sistemas de Tipo (type system) Diferenças no tratamento de exceções: especialmente exceções de runtime vs. aplicação Exemplo: chamando de CORBA para EJB requer mapeamento reverso EJB em IDL CORBA IDL resultante não é limpa

11 O Problema de Mapeamento Sempre que uma nova tecnologia (tal como Serviços Web) aparece, alguns tentam mapeála diretamente para as suas tecnologias já existentes Isto na verdade nunca funciona integração parcial: Mapeamento COM-CORBA e mapeamento reverso Javapara-IDL Mas diferenças de impedância entre os sistemas causam dor e não permitem uma completa interação de trabalho. Granularidade, Acoplamento & Abstração Alta Abstração Alto acoplamento Baixa Abstração POO EJB IDL WS Baixo acoplamento Granularidade fina Granularidade grossa

12 Serviços Web em Todo Lugar? Algumas vezes o entusiasmo é um pouco demais Serviços Web são complementares a tecnologias tais como J2EE, CORBA, etc. Eles não as substituem! Else nos dão um mínimo denominador comum Web-amigável para integração de sistemas definitivamente a maneira mais simples de integrar.net, CORBA, J2EE, etc. Oferta de Serviços Web Uma nova (& necessária) camada de abstração Serviços Web J2EE / CORBA /.NET Framework Java UNIX Existentes/Novas aplicações CLI Windows XP/Novas aplicações

13 Serviços Web: Evolução da Tecnologia Processo 1 Processo 2 Monolítico Programa Principal Ligação Estática MP Func1Func n Ligação Dinâmica MP Func 1 Func n Chamada de Procedimento Remota (RPC) MP Proxy Mensagem Binária Proxy Func n Serviço Web MP SOAP / XML Func n Framework de Serviços Web

14 Serviços web Stack Rede Descrição Estrutura de Protocolo para Dados Publicação e Descoberta de Serviços.. Protocolo XML (SOAP) Sintaxe (XML) Descrição de Protocolo Serviçospara (WSDL) Troca de Dados Structure (XML Schema) Descoberta Formato para Descrever serviços Diretório (UDDI) HTTP Sintaxe (XML) Sintaxe (XML) Serviços Web - Tecnologias Básicas Serviços Web WSDL SOAP DBMS.NET Mensagens XML Mensagens XML J2EE Internet/Intranet CORBA ERP Busca Adapter UDDI Publicação Sistemas Back end Agente (Broker) de Integração

15 Arquitetura Orientada a Serviços Provedor do Serviço Publica Liga Agente de Registro do Serviço Busca Usuário do Serviço Protocolos de Serviços Web Encontre um serviço HTML com ponteiro para WSDL UDDI Consumidor do Web serviço Como nós conversamos?? (WSDL) Descrições de serviço (XML) Deixe-me falar com você (SOAP) Resposta do serviço (XML) serviço Web

16 Soap Comunicação Motivação Muitas aplicações distribuídas se comunicam usando chamadas de procedimento remotas (RPC) entre objetos distribuídos como DCOM e CORBA. HTTP não é projetado para aqueles objetos, então as chamadas RPC não são facilmente adaptadas para a Internet. Problemas de segurança existem para métodos do RPC, então a maioria dos firewalls e servidores proxy são configurados para bloquear este tráfego. HTTP é suportado por todos os browsers e servidores da Internet, então SOAP se apresenta como um ótimo protocolo para fazer RPC.

17 SOAP - Objetivo The objetivo atrás do trabalho SOAP/ XMLP é criar um protocolo que é neutro para qualquer coisa exceto a representação de dados XML: Transporte Linguagem de Programação Modelo de Objetos Sistema Operacional Etc. SOAP - Características Protocolo de comunicação leve Suporta diferentes modelos: one-way, request/response, multicast, etc.. Projetado para comunicação via HTTP Nãorestritoa Não é amarrado a nenhuma tecnologia de componentes Não é amarrado a nenhuma linguagem de programação Baseado em XML Simples e extensível

18 SOAP - Modelo de Troca de Mensagens Fundamentalmente one-way Pode ser combinado para contemplar padrões tais como request/response Mensagens podem ser direcionadas ao longo de um caminho de mensagem. Mensagem SOAP Estrutura Geral Envelope (Envelope): Define o conteúdo da mensagem OBRIGATÓRIO estar associada com o namespace do envelope SOAP : Cabeçalho (Header) (é opcional): contém informação de cabeçalho informação específica da aplicação sobre a mensagem SOAP. Corpo (Body): contém informação da chamada e da resposta

19 Isto é o básico exemplo Um Um documento simples SOAP XML XML requisitando a cotação de de uma umaação. <SOAP-ENV:Envelope xmlns:soap-env=" SOAP-ENV:encodingStyle=" <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m= example.com/stockquotes"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> SOAP 1 proxy Soap 2 6 XML/HTTP 3 5 listener Soap Serviço Web 4 Aplicação Cliente Componente Vendedor A Vendedor B 1. A Aplicação Cliente faz uma chamada 2. O Proxy intercepta a chamada, constrói e transmite a mensagem de requisição XML 3. O listener Soap recebe, analisa gramaticalmente e valida a requisição 4. O Listener chama a mensagem do componente 5. O Listener pega o resultado da chamada, constrói e transmite a msg. XML de resposta 6. O Proxy recebe, analisa gramaticalmente a resposta, e retorna o resultado ao cliente Este processo é transparente para o cliente e o componente

20 Convenções SOAP RPC informação necessária para a chamada de um método: A URI do objeto destino (namespace) exemplo: <SOAP-ENV:Body> <p:getlasttradeprice xmlns:p= > <Symbol>AMZN</Symbol> </p:getlasttradeprice > </SOAP-ENV:Body> Convenções SOAP RPC informação necessária para a chamada de um método : A URI do objeto destino Um nome de método exemplo: <SOAP-ENV:Body> <p:getlasttradeprice xmlns:p= > <Symbol>AMZN</Symbol> </p:getlasttradeprice> </SOAP-ENV:Body>

21 Convenções SOAP RPC informação necessária para a chamada de um método : A URI do objeto destino Um nome de método Os parâmetros do método exemplo: <SOAP-ENV:Body> <p:getlasttradeprice xmlns:p= > <Symbol>AMZN</Symbol> </p:getlasttradeprice> </SOAP-ENV:Body> Convenções SOAP RPC informação necessária para a chamada de um método : A URI do objeto destino Um nome de método Os parâmetros do método Dados de cabeçalho opcionais exemplo: <SOAP-ENV:Body> <p:getlasttradeprice xmlns:p= > <Symbol>AMZN</Symbol> </p:getlasttradeprice> </SOAP-ENV:Body>

22 SOAP HTTP Request - exemplo POST /StockQuote HTTP/1.1 Host: content-type: text/xml; charset= utf-8 content-length: nnnn SOAPAction: "Some-URI" HTTP Header SOAP Extensions (extensões SOAP) <SOAP-ENV:Envelope xmlns:soap-env= SOAP-ENV:encodingStyle= > <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>amzn</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> XML payload </SOAP-ENV:Envelope> SOAP HTTP Response exemplo HTTP/ OK content-type: text/xml; charset= utf-8 content-length: nnnn <SOAP-ENV:Envelope xmlns:soap-env= SOAP-ENV:encodingStyle= > <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m= Some-URI > <Price>34.5</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

23 Serialização public interface getquote { public int intgetlasttradeprice (string Symbol) } Serializador <m:getlasttradeprice xmlns:m= example.com/stockquotes "> "> <symbol>dis</symbol> </m:getlasttradeprice> SOAP + Attachments (anexos) Mecanismo para codificar mensagens SOAP em uma estrutura MIME multipart e associá-la com quaisquer partes naquela estrutura Mensagem SOAP Raiz da estrutura Refere-se a attachments usando uri cid:prefix (content ID)

24 SOAP + Attachments - exemplo Comece com uma mensagem SOAP... <SOAP-ENV:Envelope xmlns:soap-env=..."> <SOAP-ENV:Body>.. <Person> </Person>.. </SOAP-ENV:Body> </SOAP-ENV:Envelope> SOAP + Attachments exemplo Adicione um link para uma imagem externa <SOAP-ENV:Envelope xmlns:soap-env=..."> <SOAP-ENV:Body>.. <Person> <Picture href= /> </Person>.. </SOAP-ENV:Body> </SOAP-ENV:Envelope>

25 SOAP + Attachments - exemplo Adicione dados de empacotamento (packaging) MIME MIME-Version: 1.0 content-type: Multipart/Related; boundary=mime_boundary; type=text/xml; start="<soapmsg.xml@example.com> --MIME_boundary content-type: text/xml; charset=utf-8 content-transfer-encoding: 8bit content-id: soapmsg.xml@example.com <SOAP-ENV:Envelope xmlns:soap-env=..."> <SOAP-ENV:Body>.. <Person> <Picture href= /> </Person>.. </SOAP-ENV:Body> </SOAP-ENV:Envelope> --MIME_boundary-- SOAP + Attachments exemplo Adicione uma MIME part e faça o link para ela MIME-Version: 1.0 content-type: Multipart/Related; boundary=mime_boundary; type=text/xml; start="<soapmsg.xml@example.com> --MIME_boundary content-type: text/xml; charset=utf-8 content-transfer-encoding: 8bit content-id: soapmsg.xml@example.com <SOAP-ENV:Envelope xmlns:soap-env=..."> <SOAP-ENV:Body> <Person> <Picture href= cid:mypict.jpg@example.com /> </Person> </SOAP-ENV:Body> </SOAP-ENV:Envelope> --MIME_boundary content-type: image/jpg content-transfer-encoding: binary content-id: <mypict.jpg@example.com>...binary image... --MIME_boundary--

26 SOAP Estilo de Documento Empacota xml em um envelope Empacota um documento XML dentro de um envelope soap. exemplo: Ordem de compra. Uma resposta não é mandatória. EDI Electronic Document Interchange SOAP Java APIs

27 API Java para Serviços Web Baseada em mecanismo remote procedure call (RPC) Chamada método remoto de cliente é convertida para uma msg SOAP e enviada para o Serviço como uma requisição HTTP Serviço recebe a requisição, traduz a msg SOAP para uma chamada de método e o invoca e vice versa com o resultado da chamada do método Detalhes de implementação são invisíveis para o cliente e o Serviço Mensagens SOAP como objetos Java SAAJ (API SOAP com Attachments para Java) Modelo de programação Um cliente JAX-RPC pode acessar um Serviço Web que não esteja rodando em plataforma Java Um serviço JAX-RPC pode ser accessado por um cliente não Java Classes SAAJ SOAPPart SOAPMessage AttachmentPart Node SOAPElement SOAPFault SOAPBody SOAPHeader SOAPFaultElement * * SOAPBodyElement SOAPHeaderElement * SOAPEnvelope

28 JAX-RPC Modelos de invocação JAX-RPC cliente interface de invocação dinâmica (DII) Considerando WSDL modelo stub estaticamente definido modelo de invocação proxy dinâmico Aplic. Cliente stubs JAX_RPC msg SOAP HTTP Serviço ties JAX_RPC Arquitetura física JAX-RPC Serviço Cliente Stub Container Terminação do Serviço Dispatch JAX-RPC API Lado Cliente JAX-RPC Runtime System JAX-RPC API Lado Servidor JAX-RPC Runtime System Protocolo (SOAP) Transporte

29 Um Exemplo Simples Escrevendo o Programa Cliente Serviço de Calculadora Usando Interface de Invocação Dinâmica (DII) Calculadora Cliente usando JAX-RPC import import org.apache.axis.client.call; org.apache.axis.client.call; import import org.apache.axis.client.service; org.apache.axis.client.service; import import javax.xml.namespace.qname; javax.xml.namespace.qname; public public class class CalcClient CalcClient { { public public static static void void main(string main(string [] [] args) args) { { try try { { String String endpoint endpoint = = " " Service Service Service Service = = new new Service(); Service(); Call Call call call = = (Call) (Call) Service.createCall(); Service.createCall(); call.settargetendpointaddress( call.settargetendpointaddress( new new java.net.url(endpoint) java.net.url(endpoint) ); ); call.setoperationname(new call.setoperationname(new QName(" QName(" Calculator.jws/axis/Calculator.jws", Calculator.jws/axis/Calculator.jws", "add") "add") ); ); Integer Integer ret ret = = (Integer) (Integer) call.invoke( call.invoke( new new Object[] Object[] { { new new Integer(5), Integer(5), new new Integer(6)} Integer(6)} ); ); System.out.println("Result System.out.println("Result = = " " + + ret); ret); } } catch catch (Exception (Exception e) e) { { System.err.println("ERROR! System.err.println("ERROR! : : " " + + e.tostring()); e.tostring()); } } } } } }

30 Demo SOAP tcpmon org.apache.axis.utils package java org.apache.axis.utils.tcpmon atenção com o classpath listen port - é a porta para a qual o cliente faz o pedido (tcpmon port) target hostname - servidor rodando o servidor web target port porta na qual está rodando o servidor web

31 Visualizando msgs SOAP utilitário tcpmon tcpmon (porta 8100) Cliente Servidor Web (porta 8080) Analisando Aplic. CalClient Os detalhes do verdadeiro protocolo SOAP foram manipulados pelos objetos Call e Service. O desenvolvedor preocupou-se em: Achar o dado correto para invocar o Serviço, Processar a resposta

32 Analisando Aplic. CalClient Cliente SOAP codificado manualmente: URL,Service ID, nome do método, parâmetros, etc. Automatizar Tarefas? E se nós pudéssemos descobrir essas coisas a tempo de execução? WSDL UDDI WSDL Descrevendo Serviços Web

33 O que é WSDL? Um formato XML para descrever Serviços Web Para o Consumidor: Como usar o Serviço (e.g., para usar meu carrinho de compras, envie estas mensagens SOAP com HTTP para ) Para o Servidor: Como configurar o Serviço (e.g., faça meu carrinho de compras disponível usando SOAP com HTTP em ) Para o Registro: Como encontrar o Serviço (e.g., Ache todos os carrinhos de compras com os quais eu possa me comunicar. ) O que é um Arquivo WSDL? Um arquivo WSDL é um documento XML. A raiz é o elemento <definitions> : define os namespaces que iremos usar. <definitions name="stockquote" targetnamespace=" xmlns:tns=" xmlns:xsd1=" xmlns:soap=" xmlns="

34 O que é um Arquivo WSDL? O elemento <definitions> tem até seis diferentes elementos filhos : Types Messages Port types Bindings Ports Services Elementos WSDL por Exemplo Termos WSDL Port Type ShoppingCart Operation Add Remove List

35 Elementos WSDL por Exemplo ShoppingCartService Termos WSDL Port Type HTTP SOAP HTTP POST ShoppingCart Add Remove List Port Operation Binding Service Elementos WSDL por Exemplo AddItemInput AddItemOutput <soap:envelope <soap:envelope > <soap:body> <soap:envelope > > <soap:body> <soap:fault> <soap:body> <soap:fault> <faultcode> <soap:fault> <faultcode> <faultstring> <faultcode> <faultstring> </soap:fault> <faultstring> </soap:fault> <soap:body> </soap:fault> <soap:body> <soap:envelope> <soap:body> <soap:envelope> <soap:envelope> ShoppingCartService HTTP SOAP HTTP POST ShoppingCart Add Remove List Termos WSDL Port Type Operation Port Binding Service Message Faults

36 O que WSDL Descreve? Conceitos Abstratos Port Types (e.g., ShoppingCart) Operations (e.g., add, remove, list) Messages (i.e., inputs, outputs e faults) Data types (i.e., schemas) Ligações Concretas Estilos de codificação de Dados (e.g., SOAP encoding) Protocolos de Transporte (e.g., HTTP, SMTP) Endereços de Rede (e.g., Como WSDL Descreve Serviços? <definitions name= ShoppingCartDefinitions xmlns= targetnamespace= > <types> </types> <message name= AddItemInput > </message> <message name= AddItemOutput > </message> <porttype name= ShoppingCart > </porttype> <binding name= CartHTTPXMLBinding type= tns:shoppingcart > <binding name= CartSOAPBinding type= tns:shoppingcart > <service name= ShoppingCartService > <port name= HTTPXMLCart binding= tns:carthttpxmlbinding > <port name= SOAPCart binding= tns:cartsoapbinding > </service> <import namespace= location= > </definitions>

37 Tipos de Dados (Data Types) Você pode definir datatypes, que são tipicamente baseados em XML Schema: porém, outros type systems são permitidos <types> <schema targetnamespace= xmlns= > <complextype name= item ><all> <element name= description type= xsd:string /> <element name= quantity type= xsd:integer /> <element name= price type= xsd:float /> </all></complextype> </schema> </types> Mensagens Descrevem o fluxo de informação Uma coleção nomeada de message parts Cada part tem um name e um type <message name= AddItemInput > <part name= cart-id type= xsd:string /> <part name= item type= carttypes:item /> <part name= image type= xsd:base64binary /> </message>

38 Port Types Uma coleção nomeada de operações relacionadas Operations: Têm uma assinatura (messages - input, output e fault) podem ser one-way, request-response, notifications ou solicit-response PortType Contém uma ou mais operações abstratas Cada operação referencia uma ou mais mensagens Operations Têm uma assinatura (input, output e fault messages) tipos: One-way Envia mensagem para o Serviço e não há resposta Request-response Envia mensagem para o Serviço o qual retorna uma mensagem correlata Solicit-response O Serviço envia uma mensagem e o requisitante retorna uma mensagem correlata Notification Serviço envia uma mensagem para o requisitante

39 Port Types <porttype name= ShoppingCart > <operation name= AddItem > <input message= tns:additeminput /> <output message= tns:ack /> <fault name= BadCartID message= tns:badcartid /> <fault name= ServiçoDown message= tns:serviçodown /> </operation> <operation name= RemoveItem > </operation> <operation name= ListItems > </operation> </porttype> Bindings Bindings descrevem o protocolo usado para acessar um Serviço, bem como os formatos de dado para as mensagens (messages) definidas por um porttype específico Um binding é uma associação nomeada de detalhes de protocolo com um port type, suas operações (operations) e suas mensagens (messages)

40 Bindings (ligações): SOAP Binding <binding name= CartHTTPSOAPBinding type= tns:shoppingcart > <soap:binding style= RPC transport= /> <operation name= AddItem > <soap:operation soapaction= /> <input> <soap:body use= encoded namespace= encodingstyle= /> </input> <output> <soap:body use= encoded namespace= encodingstyle= /> </output> <fault name= BadCartID > <soap:body use= encoded namespace= /> </fault> <fault name= ServiçoDown > <soap:body use= /> </fault> </operation> </binding> Elementos de de Extensão Bindings <binding name= CartHTTPPostBinding type= tns:shoppingcart > < verb= POST /> <operation name= AddItem > < location= /AddItem /> <input> <mime:content type="application/x-www-form-urlencoded /> </input> <output> <mime:content type="application/x-www-form-urlencoded /> </output> <fault name= BadCartID > <mime:mimexml/> </fault> <fault name= ServiceDown > <mime /> </fault> </operation> </binding>

41 Como WSDL Descreve: Bindings <binding name= CartHTTPPostBinding type= tns:shoppingcart > < verb= POST /> <operation name= AddItem > < location= /AddItem /> <input> <mime:content /> </input> <output> <mime:content. /> </output> <fault name= BadCartID > <mime /> </fault> <fault name= ServiçoDown > <mime /> </fault> </operation> </binding> Elementos de de Extensão MIME Binding Mensagens de Input ou output podem ser definidas usando MIME binding MIME binding podem ser combinadas com SOAP binding para definir um Serviço que usa SOAP attachments Use binding do tipo multipart/related O envelope SOAP tem de estar no part raiz Defina outros part usando MIME binding

42 MIME Binding exemplo <definitions name="attachmentservice-interface"...> <types> <schema...> <complextype name="arrayofstring"> <complexcontent> <restriction base="soapenc:array"> <attribute ref="soapenc:arraytype arraytype="xsd:string[]"/> </restriction> </complexcontent> </complextype> <complextype name="arrayofbinary"> <complexcontent> <restriction base="soapenc:array"> <attribute ref="soapenc:arraytype" arraytype="xsd:binary[]"/> </restriction> </complexcontent> </complextype> </schema> </types>... Interface p/ Serviço c/ Attachment [2] <message name="attachmentrequest"> <part name="filelist" type="types:arrayofstring"/> <part name="classfile" type="types:arrayofbinary"/> <part name="imagefile" type= types:arrayofbinary"/> </message> <message name= ="AttachmentResponse"> <part name="list" type="xsd:string"/> </message> <porttype name="attachmentservice"> <operation name="listattachments"> <input message="tns:attachmentrequest"/> <output message="tns:attachmentresponse"/> </operation> </porttype> <binding name="attachmentbinding" type="tns:attachmentserviço"> <soap:binding style="rpc" transport=" <operation name="listattachments"> <soap:operation soapaction=""/>...

43 Interface p/ Serviço c/ Attachment [2] <input> <mime:multipartrelated> <mime:part> <soap:body parts="filelist" use="encoded" namespace=" encodingstyle=" </mime:part> <mime:part> <mime:content part="classfile" type="application/octet-stream"/> </mime:part> <mime:part> <mime:content part="imagefile" type="image/jpeg"/> </mime:part> </mime:multipartrelated> </input> <output> <soap:body use="encoded namespace= encodingstyle=" </output> Portas (port) Uma associação nomeada de uma ligação de protocolo (binding) com um endereço de rede <port name= SOAPCart binding= tns:soapcartbinding > <soap:address location= /> </port> <port name= HTTPPostCart binding= tns:httppostcartbinding > < location= /> </port> HTTP SOAP HTTP POST

44 Serviços (service) Uma coleção relacionada de portas <service name= ShoppingCartServiço > <documentation>a Shopping Cart for the Web</documentation> <port name= HTTPPostCart binding= tns:httppostcartbinding > < location= /> </port> <port name= SOAPCart binding= tns:soapcartbinding > <soap:address location= /> </port> </service> WSDL Camadas de Abstração Types & Messages Operations, Port Types, Ports Bindings Transporte

45 Reutilizando Elementos WSDL <import namespace= location= /> <binding xmlns:ws= name= CartHTTPXMLBinding type= ws:shoppingcart > Shopping Cart Shopping Cart Service Add HTTP SOAP HTTP XML Remove List Shopping <soap:envelope Add Cart > <soap:body> <soap:fault> Remove <faultcode> List <faultstring> </soap:fault> <soap:body> <soap:envelope> AddItemInput AddItemOutput SOAP & WSDL Analisando o Código de CalcClient

46 SOAP e WSDL O código SOAP precisa da URL do roteador (router) SOAP: String endpoint= call.settargetendpointaddress (endpoint); WSDL: <service <port <soap: address location= /> SOAP e WSDL O código SOAP precisa do (namespace) Serviço: call.setoperationname(new QName( args[1])) WSDL: <binding <soap: binding style= rpc <operation name= add > <input>... <soap: body namespace=

47 SOAP e WSDL O código SOAP precisa do nome do método: call.setoperationname(new QName( args[1])) WSDL: <binding <soap: binding style= rpc <operation name= add SOAP e WSDL O código SOAP precisa preencher os argumentos. WSDL <porttype name= Calculator > <operation name= add > <input message= intf:addrequest /> Isto indica que precisamos usar a mensagem addrequest como input para o método.

48 SOAP e WSDL Agora podemos observar a mensagem addrequest : <message name=" addrequest "> <part name= val1" type= xsd:int"/> <part name= val2" type= xsd:int"/> </ message> Por isso, precisamos de dois argumentos (val1, val2) do tipo Integer para chamar o Serviço SOAP e WSDL Na prática, o código cliente SOAP é escrito usando uma interface de programação bem conhecida. O nome do método e os argumentos para ele serão conhecidos de antemão. A URL do roteador SOAP e o ID do Serviço podem mudar, O nome do método e os parâmetros provavelmente não. O arquivo WSDL fornece toda a informação necessária para invocar um Serviço Web Automatiza a tarefa de chamada de Serviços web Ferramentas para esconder os detalhes da tecnologia de serviços Web

49 Plataformas de Serviços Web O que é uma Plataforma de Serviços Web? Serializam/de-serializam Tipos de Dados Serializam objetos nativos da linguagem em XML De-serializam XML em objetos nativos da linguagem Publicam uma Terminação de Serviço (Endpoint) Invocam um Handler do Serviço ou Cadeia de Handlers Geram descrições WSDL Geram stubs cliente e servidor a partir do WSDL

50 Implementando SW Java Apache Axis Apache Axis Uma máquina de processamento SOAP Sistema Cliente JAX-RPC Sistema Servidor JAX-RPC (baseado em Servlet ) Implementação SAAJ Arquitetura flexível e extensível Ferramentas, exemplos, documentação, Uma ótima ferramenta para aprender (e produzir) sobre Serviços web!! Open-source hospedado pela Apache Software Foundation

51 Conjunto de Funcionalidades do Axis Distribuição (deployment) Drop-in" de serviços SOAP Suporte para todos os tipos básicos de dados, e um sistema de mapeamento para definir serializadores/deserializadores Provedores para serviços baseados em SOAP RPC e em documentos Generação automática de WSDL a partir dos serviços implementados (deployed) Utilitário WSDL2Java para construir proxies Java e skeletons a partir de documentos WSDL Utilitário Java2WSDL para construir WSDL a partir de classes Java. Transporte HTTP baseado em servlets Axis - arquitetura

52 Instalando o Apache Axis Pré-requisitos J2SE SDK 1.3 or 1.4 Um Servlet Container: i.e. Tomcat4.0.1 Download: xml-axis-rc1-bin.zip Unzip Axis roda como uma Servlet. Distribua o Axis (deploy). Copie a árvore webapps\axis para o directório webapps do Tomcat. Ou modifique server.xml dotomcat. Rode o Tomcat: bin\startup a partir de Tomcat home. webapps axis WEB-INF lib Estrutura de Diretórios : axis-1_0 lib classes web.xml docs samples Teste a Distribuição (Deployment) Escolha Validate..

53 Calculadora - exemplo Calculator: Uma classe Java simples com dois métodos para somar e subtrair dois inteiros. A extensão do nome do arquivo tem de ser.jws (abreviatura de Java Web Service). Distribuição: Copie o arquivo Calculator.jws para o diretório webapps/axis Examine sua descrição WSDL. public class Calculator { public int add(int val1, int val2){ return val1 + val2; } public int subtract(int val1, int val2) { return val1 - val2; } } Escrevendo o Programa Cliente Modos de escrever um programa Cliente Usando Interface de Invocação Dinâmica ( DII) Usando Stubs gerados a partir da descrição WSDL do Serviço Usando Proxy Dynâmico Configuração do CLASSPATH : xml-axis-beta2/lib/axis.jar xml-axis-beta2/lib/jaxrpc.jar xml-axis-beta2/lib/saaj.jar xml-axis-beta2/lib/commons-logging.jar xml-axis-beta2/lib/tt-bytecode.jar xml-axis-beta2/lib/wsdl4j.jar Um parser JAXP-1.1 compatível com XML como xerces + recursos app

54 CalcClient Stubs Gerados Gere os stubs: java org.apache.axis.wsdl.wsdl2java \ cláusula WSDL Para cada entrada na type section Para cada porttype Para cada binding Para cada service Classe(s) Java geradas Uma classe java Um holder se este type é usado como um parâmetro de input/out Uma interface java Uma classe stub Uma interface do serviço Uma implementação do Serviço (o locator) Nome Calculator.java CalculatorSOAPBindingStub.java CalculatorService.java CalculatorServiceLocator.java Programa CalcClient Stubs Gerados import localhost.*; public class CalcClient{ public static void main(string [] args) { try { CalculatorService srv = new CalculatorServiceLocator(); Calculator calc = srv.getcalculator(); System.out.println("addInt(5, 3) = " + calc.addint(5, 3)); } catch (Exception e) { System.err.println("Execution failed. Exception: " + e); } } }

55 Demo CalcClient Stubs Gerados Distribuição Customizada Distribuição Instantânea (.jws) é simples, mas tem limitações: Você tem de ter o código fonte Não pode especificar mapeamentos de tipo customizados, handlers etc. Java2WSDL: Construindo WSDL a partir do Java Etapa 1: Forneça uma interface ou classe Java Etapa 2: Crie o WSDL usando Java2WSDL Etapa 3: Crie Bindings Cliente/Servidor usando WSDL2Java Etapa 4: Use adminclient & Deployment Descriptor para distribuir (deploy) o Serviço

56 Etapa 1: Forneça uma interface ou classe Java package calculator; public interface Calculator extends java.rmi.remote { public int add(int in0, int in1) throws java.rmi.remoteexception; public int subtract(int in0, int in1) throws java.rmi.remoteexception; } Etapa 2 - Java2WSDL Gerando o arquivo WSDL java org.apache.axis.wsdl.java2wsdl \ -o calculator.wsdl \ -l \ -n "urn:calculator" -p custom.deploy=urn:calculator \ custom.deploy.calculator Arquivo WSDL calculator.wsdl

57 Etapa 3: Crie Bindings Cliente/Servidor usando WSDL2Java Gere as classes: java org.apache.axis.wsdl.wsdl2java \ --server-side --skeletondeploy true calculator.wsdl Todas as classes geradas sem a opção --server-side -- skeletondeploy true : Cláusula WSDL Para cada binding Para todo service Classe(s) Java geradas Uma classe skeleton Uma classe template de implementação Um descritor de deployment Um descritor para Undeployment Nome CalculatorSoapBindingSkeleton.java CalculatorSoapBindingImpl.java deploy.wsdd Undeploy.wsdd Etapa 4: Forneça a Implementação do Serviço Inclua o código do Serviço na Classe template de Implementação Compile o código fonte O Serviço está pronto para distribuição (deployment)

58 Step 5: Use adminclient & Descritor de Deployment para distribuir o Serviço java org.apache.axis.client.adminclient deploy.wsdd Não esqueça de iniciar o servidor Web! Copie os arquivos class servidores para TOMCAT_HOME\webapps\axis\ WEB-INF\classes Lista de serviços distribuídos: java org.apache.axis.client.adminclient list Descritores de Deployment WSDD (Web Services Deployment Descriptors) permitem distribuições mais flexíveis Handlers no caminho do pedido ou resposta Mapeamento customizado de tipos Diferentes transportes HTTP/S, TCP/IP, DIME Diferentes Dispatchers Classes Java, EJB, Servlets

59 O Descritor de Deployment <deployment xmlns=" xmlns:java=" <!-- serviços do CalculatorServiço WSDL --> <service name="calculator" provider="java:rpc"> <parameter name="wsdltargetnamespace" value="urn:custom.deploy"/> <parameter name="wsdlserviceelement" value="calculatorservice"/> <parameter name="wsdlserviceport" value="calculator"/> <parameter name="classname" value="deploy.custom.calculatorsoapbindingskeleton"/> <parameter name="wsdlporttype" value="calculator"/> <parameter name="allowedmethods" value="*"/> </service> </deployment> Funcionalidades Adicionais SOAP com Attachments Mapeamento customizado de tipos (Pluggable Serializers) Chamadas One-way Trocas de Documentos Dispatch para EJBs Transporte HTTPS e autenticação mútua Autenticação baseada em Username e password

60 Demo Calculadora Demo Consumindo um Serviço Web usando Delphi

61 Bindings WSDL HTTP Post & Get HTTP GET & POST Binding WSDL inclui uma binding para os verbos GET e POST do HTTP 1.1 : isto permite que outras aplicações que não Web Browsers interajam com o site. As seguintes informações relativas a protocolo podem ser especificadas: Uma indicação dizendo se a binding usa HTTP GET ou POST Um endereço para a porta Um endereço relativo para cada operação (relativo ao endereço base definido pela porta)

62 HTTP GET/POST - exemplos Considere 2 portas que são ligadas diferentemente para um dado port type. Se os valores sendo passados são part1=1, part2=2, part3=3, o formato da requisição seria o seguinte para cada porta: port1: GET, URL=" port2: POST, URL=" PAYLOAD="p1=1&p2=2&p3=3" Para cada porta: a resposta é uma imagem GIF ou JPEG. <definitions... > <message name="m1"> <part name="part1" type="xsd:string"/> <part name="part2" type="xsd:int"/> <part name="part3" type="xsd:string"/> </message> <message name="m2"> <part name="image" type="xsd:binary"/> </message> <porttype name="pt1"> <operation name="o1"> <input message="tns:m1"/> <output message="tns:m2"/> </operation> </porttype> <service name= service1"> <port name="port1" binding="tns:b1"> < location=" </port> <port name="port2" binding="tns:b2"> < location=" </port> </service>...

63 <binding name="b1" type="pt1"> < verb="get"/> <operation name="o1"> < location="o1"/> <input> < </input> <output> <mime:content type="image/gif"/> <mime:content type="image/jpeg"/> </output> </operation> </binding> <binding name="b2" type="pt1"> < verb="post"/> <operation name="o1"> < location="o1"/> <input> <mime:content type="application/x-www-form-urlencoded"/> </input> <output> <mime:content type="image/gif"/> <mime:content type="image/jpeg"/> </output> </operation> </binding> </definitions> UDDI Descoberta de Serviços web

64 UDDI UDDI = (Universal Description, Discovery and Integration) - de Serviços web Projeto UDDI ( é um esforço da indústria para definir um registro que permita buscas de serviços iniciado pela IBM, MS e Ariba em Set 2000 Membros do UDDI > 200 Atualmente UDDI V3.0 Planejado tornar-se especificação do W3C na V3.0 UDDI não é restrito a serviços SOAP pode ser usado para: desde páginas web simples e endereços de , até aps distribuídas completas UDDI White Pages Yellow Pages Green Pages Dados dentro do UDDI são categorizados em 3 tipos white pages (páginas brancas) info básicas de contato sobre empresas permite associação de Ids únicos aos empresários yellow pages (páginas amarelas) info geral de classificação sobre a empresa ou Serviço que ela oferece (e.g. NAICS: códigos de indústria, UNSPC: produtos & Serviços clasf, ISO: geog) green pages (páginas verdes) info técnica sobre um Serviço Web referência a uma especificação externa (e.g. WSDL) endereço para chamada do Serviço

65 Descrições de Serviço Identificador único programável para um dado tipo qualquer de Serviço Web Usado por entidades padrão, ISVs, e desenvolvedores para publicar como estes serviços trabalham Usado como uma assinatura por web sites que implementam aquelas interfaces Armazenados no UDDI como tmodels Registro no UDDI documento XML Criados pela empresa do usuário final (ou em seu nome) Pode ter múltiplas listas de serviço Pode ter múltiplas listas de taxonomia BusinessEntity BusinessKey name URL Description contacts businessservices identifierbag categorybag keyedreference keyedreference tmodelkey tmodelkey keyname keyname keyvalue keyvalue Contact Contact Phone Phone Address Address negócioserviço businessserviço ServiçoKey Name Description BindingTemplates keyedreference keyedreference tmodelkey keyname tmodelkey keyvalue keyname keyvalue

66 Exemplo de um Registro businessentity XY1032Ze54T2384wZ2f Harbour Flowers Serving Inner Sydney Harbour for contacts businessservice identifierbag categorybag keyedreference EE123 NAICS keyedreference DFE-2B DUNS Referências tmodel, cada uma com um identificador único Peter Smythe King s Blvd, Sydney, NSW PeterSmythe22@hotmail.com negócioserviço businessservice Key 23T701e54683nf Name Online catalog Descrição Website where you can BindingTemplates BindingTemplate 5E2D412E5-44EE- tmodelinstancedetails tmodelinstanceinfo 4453D6FC-223C-3ED0 Como o UDDI é usado? analistas de negócio : Para procurar por serviços similar a máquinas de busca são necessários portais Desenvolvedores: Para publicar serviços Para escrever software que usa os serviços descobertos incorporados em toolkits: para automatizar a publicação de serviços

67 UDDI Duas partes especificações técnicas para construir um diretório distribuído de negócios & Serviços Web, incluindo XML schema para descrever as estruturas de dados usadas detalhes de API para buscar (find) & publicar (publish) UDDI Registro de negócios ( cloud services ) implementação operacional completa lançado em Maio 2001 por MS & IBM Operação de Registro Peer nodes (websites) Empresas se registram em qualquer dos nós IBM Registros das empresas são replicados diariamente Conjunto completo de registros replicação cadastrados disponível em todos os nós Conjunto comum de APIs SOAP suportados other UDDI.org por todos os nós businessentity UDDI SOAP Request UDDI SOAP Response replicação outro SAP Microsoft Nó do Operator

68 UBR conteúdo inserido no UBR é feito em um único nó que se torna proprietário mestre do conteúdo conteúdo pode ser acessado de qualquer nó qualquer negócio pode configurar um nó operador empresas podem configurar: nós privados clouds privadas Registros Privados Descoberta Direta Incluem funcionalidades adicionais de segurança Serviços acessíveis apenas de dentro da organização ou de grupos de parceiros confiáveis Geralmente envolvem custo Podem ser usados para operações internas ou B2B Permite que as empresas forneçam serviços personalizados para clientes Empresas estão adotando registros privados mais rápido que os públicos

69 Tipos de Registros Privados e-marketplace UDDI hospedado por uma indústria, lista negócios e serviços de membros do consórcio portal UDDI publica Serviços Web de empresas só busca (find) é disponível externamente partner catalog UDDI reside atrás de um firewall disponível apenas para empresas membro publish e find restritos a usuários autorizados internal UDDI reside atrás de um firewall disponível apenas para uma única empresa Por que usar o UDDI? exemplo: indústria de semi-condutores >400 empresas membros do consórcio RosettaNet que criou Partner Interface Processes (PIPs) PIPs = interfaces baseadas em XML para permitir troca de dados e.g. PIPs PIP2A2 consulta informação de produto PIP3A2 consulta preço e disponibilidade de produtos específicos PIP3A3 submete ordem de compra eletrônica (e-purchase) PIP3B4 consulta status de envio de mercadoria >80 PIPs individuais registrados no UBR

70 Vantagens do UBR provedor do serviço método efetivo de propaganda visibilidade global expansão de mercado consumidor do serviço simplifica o uso de Serviços Web por tornar disponíveis especificações técnicas geral não é preciso pagar para anunciar ou para descobrir Software do UDDI servidores de aplicação incorporando servidor UDDI BEA WebLogic, IBM WebSphere projeto UDDI é Open source juddi ( implementações UDDI compatíveis com J2EE : Systinet, Cape Clear, HP, Oracle, SAP

71 Limitações do UDDI Ainda evoluindo Registros Públicos confiabilidade de dados? não há data da última-atualização não há verificações de validade Qualidade-do-Serviço de um Serviço Web? com que freqüência ele pode ser acessado? escalabilidade? suporte técnico? Etc. UDDI e SOAP Entidade de Negócio UDDI Requisição SOAP UDDI Resposta SOAP Nó UDDI HTTP Server SOAP Processor UDDI Serviço de Diretório registros de Create, View, Update, e Delete Diretório B2B independente de implementação

72 Registro WSI (Mensagens SOAP) API de busca (Inquiry) Busca coisas find_business find_service find_binding find_tmodel Obtém detalhes sobre coisas get_businessdetail get_servicedetail get_bindingdetail get_tmodeldetail API de Publicação Salva coisas save_business save_service save_binding save_tmodel Deleta coisas delete_business delete_service delete_binding delete_tmodel Segurança get_authtoken discard_authtoken Mapeamento de WSDL para UDDI

73 Mapeamento de WSDL para UDDI (exemplo) Trabalhando com UDDI Encontrando serviços in UDDI serviços são encontrados no UDDI usando-se a API do UDDI serviços são encontrados por nome ou por descrição Binding Uma vez que o requisitante do serviço localizou o serviço, ele invoca o serviço naquela localização

74 Publicando um Serviço Use programa de publicação batch baseado em script UDDI4J API Ou use ferramenta GUI para uso via browser Encontrando Serviços no Registro UDDI Escreva um programa para achar serviços Pode-se usar UDDI4J Ou use uma interface voltada para browsers Obtenha os detalhes do serviço Extraia a overviewurl: a localização do arquivo WSDL

75 Registros Registro da IBM : www. ibm. com/ services/ uddi/ Registro da Microsoft : uddi. microsoft. com/ Registro da SAP: NTT communications: UDDI4J IBM anunciou o lançamento do UDDI4J: uma implementação open source do lado cliente do UDDI. AXIS, HP, WebSphere Simplifica a tarefa de interagir com um registro UDDI. página web do UDDI4J : www ibm. com/ developerworks/ projects/uddi4j.

76 Projetando SW Uso de Serviços Web Hoje Abordagem: Exposição direta de componentes como Serviços Web Está Correto? Granularidade, acoplamento, quantidade de de detalhes de de implementação, e níveis de de abstração a nível de de componente são inapropriados para os osserviços Web

77 Exportação Direta - Problemas Exportar assume que o componente exportado possa se manter sozinho Só funciona para modelos simples O que acontece se operações retornarem: seqüências de referências, ou estruturas de dados complexas com referências embutidas? Quem faz o mapeamento? Exportação direta um-para-um de componentes para Serviços Web normalmente só funciona para serviços simples Serviços Web - Exemplos Alguns Serviços Web já são acessíveis na Internet e.g., at serviços triviais orientados a RPC, por exemplo: cálculos de taxa de câmbio, cotação de ações Muito baixo-nível e.g., cotador de ações requer polling: não são fornecidos callbacks questões fundamentais ignoradas: e.g latência

78 Coreografia da Aplicação Define as conversações entre aplicações cooperativas as quais permitem a elas trabalharem juntas corretamente Coreografias de Serviços Web têm de levar em conta processos de negócio Serviços Web triviais resolvem apenas coisas triviais Serviços web não-triviais devem desempenhar um papel nos processos de negócio Integração business-to-business (B2Bi) requer coreografias padronizadas Coreografias de Serviços Web Coreografias CORBA, EJB, etc. não são diretamente apropriadas para Serviços Web muitos detalhes de implementação ficam transparentes, e.g. exceções, interdependências de componentes Em vez disso, Serviços Web podem integrar multiplas tecnologias de componentes back-end usando máquinas de processo para evitar a necessidade de mais codificação manual Coreografias devem esconder completamente detalhes de implementação a nível de componente

79 Coreografias de Serviços Web (2) Serviços não possuem modelo de objeto Coreografias CORBA, EJB, etc. não podem ser expostas diretamente a clientes de Serviços Web Serviços Web devem encapsular e abstrair a lógica de componentes de negócio existentes Coreografias de Serviços Web exportadas externamente requerem padrões baseados em B2B necessários para assegurar interações corretas e acordadas legalmente Source: Serviços web and Component Tecnologias - Steve Vinoski (IONA) Serviços Web em Múltiplos Níveis Alto Nível Médio Nível Baixo Nível

80 Source: Serviços web and Component Tecnologias - Steve Vinoski (IONA) Serviços Web - Arquitetura de Sistemas Evolução de Serviços Web - BPM

81 Serviços Web e a Web Semântica Serviços Web e a Web Semântica Objetivos Complementares Web Semântica É sobre tornar links entre informações mais inteligentes. Web Transacional (Serviços Web) É sobre melhorar o modo pelo qual a informação é trocada

82 Serviços Web e a Web Semântica Diferentes Pontos de Vista Web Semântica Deriva as peças do quebra-cabeças a partir da grande figura Web Transacional Deriva a grande figura a partir das peças do quebra-cabeças Serviços Web e a Web Semântica Encontrando-se no meio Web Semântica Fornece um modelo de dados formal para os Serviços Web Web Transacional Fornece a foundação tecnológica para a Web Semântica

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

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

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

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

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

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

A API de Publicação (Publishing API) suporta a operação publish que habilita empresas a colocarem e atualizarem a informação em um registro UDDI.

A API de Publicação (Publishing API) suporta a operação publish que habilita empresas a colocarem e atualizarem a informação em um registro UDDI. No capítulo anterior sobre o modelo de informação de UDDI é mostrado como são estruturados os dados sobre empresas, negócios e serviços. Agora que entendido como a informação é estruturada, o próximo entendimento

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

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

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

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

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

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

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

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

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

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

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

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

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

BPMN (Exemplos e Exercícios) e UDDI

BPMN (Exemplos e Exercícios) e UDDI DAS5316 BPMN (Exemplos e Exercícios) e UDDI Prof. Ricardo J. Rabelo (rabelo@das.ufsc.br) Responsável pela elaboração dos slides Alexandre Perin (perin@das.ufsc.br) Florianópolis (SC), 2010. Roteiro BPMN

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

A Figura... mostra a arquitetura técnica de serviços na Web

A Figura... mostra a arquitetura técnica de serviços na Web Este capítulo proporciona uma visão técnica simplificada de um sistema UDDI. A arquitetura técnica de UDDI consiste de três partes: O Modelo de Informação UDDI Um esquema XML para descrever negócios e

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

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

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

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

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

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

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica 5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica! " " $ % &' (' $ ) * ' +,-$. / ) $0)( 5.1. Princípio de Organização 1* 2 " &)') $ $ *..*$ EveryWare: Uma Plataforma

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

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

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

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

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

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

A Estrutura de um Web Service

A Estrutura de um Web Service A Estrutura de um Web Service Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo Atualmente, o Serviço Web é a solução mais utilizada para integração entre sistemas, pois apresenta vantagens

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

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

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

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Padrões Arquiteturais. Sistemas Distribuídos: Broker Padrões Arquiteturais Sistemas Distribuídos: Broker Sistemas Distribuídos Tendências: Sistemas Comp. com múltiplas CPUs Redes locais com centenas de hospedeiros Benefícios Economia Desempenho e escalabilidade

Leia mais

Integre pela Internet com os Web Services OpenEdge

Integre pela Internet com os Web Services OpenEdge Integre pela Internet com os Web Services OpenEdge Luciano Oliveira Solution Consultant, Progress OpenEdge Foco da Sessão Implementando OpenEdge Web Services Entendendo Web Services Identificar quando

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

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1. Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

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

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

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

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

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

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações Universidade de São Paulo Escola Politécnica Programa de Educação Continuada em Engenharia PROGRAMA DE MBA em Gestão e Engenharia do Produto O Produto Internet e suas Aplicações Tecnologias de Informaçã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

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 5 Servidores de Aplicação

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

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

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

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

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

tecnologias web e gestão de identidade

tecnologias web e gestão de identidade tecnologias web e gestão de identidade histórico serviços da era inicial da Internet telnet ftp gopher - estruturas hierárquicas www - hipertexto estudos sobre hipertexto e hipermídia sistemas locais www

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

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

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

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

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

Leia mais

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira SOA - Service Oriented Architecture Marcelo Canevello Ferreira Índice Arquitetura baseada em componentes Introdução a SOA Principais conceitos de SOA SOA Framework Abordagem de integração Conclusões Evolução

Leia mais

INT-9: Implementing ESB Processes with OpenEdge and Sonic David Cleary

INT-9: Implementing ESB Processes with OpenEdge and Sonic David Cleary Implementando Processos ESB com OpenEdge e Sonic Paulo Costa Global Field Services Agenda Desenvolvendo Processos de Negócio Visão geral da tecnologia Desenvolvendo um processo de negócio do início ao

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

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

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

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc. Endereços IP Endereços IP IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.) precisam ter endereços. Graças

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

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

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

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

Introdução à Tecnologia de Web-Services

Introdução à Tecnologia de Web-Services Evolução das Tecnologias de Computação Distribuída Introdução à Tecnologia de Web-Services Máquina A Java, VB, Java CVC++ C++,... Request Response Java CORBA RPC Interface IDL Máquina B C++, VB, Java C,

Leia mais

Manual técnico. v2.2 2015/10

Manual técnico. v2.2 2015/10 Manual técnico v2.2 2015/10 Índice 1. INTRODUÇÃO... 3 2. DESCRIÇÃO... 3 3. INTEGRAÇÃO DO SISTEMA... 4 3.1 DESCRIÇÃO... 4 3.2 INTEGRAÇÃO... 5 3.2.1. Geração de referências... 5 getreferencemb...5 getreferencemb2...7

Leia mais

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho. Entregue três questões de cada prova. 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

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

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

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

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

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

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

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 Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais