Web Services. Evolução

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

Download "Web Services. Evolução"

Transcrição

1 Web Services Evolução 1997 A Sun distribui o JDK 1.1 que inclui o Remote Method Invocation (RMI) que define um modelo de computação distribuída usando objectos Java. O RMI é semelhante ao CORBA e ao DCOM mas funciona só com objectos Java. Microsoft desenvolveu o COM+ sucessor do DCOM muito próximo do modelo CORBA A SUN distribui o Java 2 Platform Entreprise Edition (J2EE) que integra o RMI e o IIOP tornando mais simples a interoperação de sistemas entre sistemas Java e CORBA. O Simple Object Acess Protocol SOAP apareceu pela primeira vez A IBM e a Microsoft propõem as pilhas de protocolos dos Web Services à W3C (World Wide Web Consortium) Wire stack Description stack Discovery stack

2 Motivação dos Web Services Resolver todo o tipo de heterogeneidade de dados e informação com XML Mensagens codificadas em texto para passar através das firewalls Protocolo muito simples para garantir a interoperação entre plataformas de múltiplos fabricantes Permitir utilizar RPC ou MOM sistemas de comunicação síncronos e assíncronos Usar de forma directa o HTTP e HTTPS como protocolos de transferência de informação Usar URL e URI como referências remotas para objectos Permitir a transferência de todo o tipo de informação desde estruturas de dados a documentos estruturados e informação multimédia. Eliminar a distinção de sistemas para transferência de documentos e sistemas para transferência de dados Dinâmica do Mercado IBM : o produto principal é o Websphere que inclui o SOAP, WSDL, UDDI Microsoft:.NET suporta directamente Web Services mas é muito mais abrangente incluindo uma nova linguagem de programação o C # Sun: SunOne, o suporte da Sun ao Java faz com que esta plataforma é uma das que incorpora a tecnologia J2EE e dos Web services. BEA: Weblogic evolução da plataforma de J2EE Oracle: Oracle 10i Web Service Broker. Incorpora a maioria dos conceitos de Web Services mas como é natural considera a base de dados como o broker entre os clientes e serviços. BPEL server SAP: Netweaver Application server, EAI, Business service architecture

3 Modelo dos Web Services Service Registry Find Publish Service Requestor Request Bind /Response Service Provider Arquitectura dos WEB services Um serviço de Directório para registo e pesquisa dos serviços UDDI Um protocolo de pedidoresposta para invocação do serviço SOAP Uma especificação da interface do serviço WSDL Páginas amarelas e directório Interacção Contratos

4 Web services - Composição Descrição da Localização UDDI BPEL4WS WS-Metadata Exchange Componentes Segurança Comunicação Fiável Transacções Coordenação Descrição do Serviço WSDL WS-Policy Mensagem Descrição da Mensagem MTOM SOAP XSD WS-Addressing XML Transporte HTTP HTTPS SMTP extensible Markup Language - XML Resolver a heterogeneidade na comunicação e nos dados de forma universal

5 Arquitectura de Integração da Informação Em muitos casos a integração procura resolver o problema da troca de informação com múltiplas representações A solução mais simples para este problema é representar os dados num formato canónico que todos sabiam utilizar Os dados originais de cada sistema têm de ser mapeado no formato canónico mas depois podem ser usados por todos que sigam o formato. Esta é a razão da grande importância do XML extensible Markup Language O XML deriva de uma linguagem muito mais antiga para definição do formato de impressão de documentos o SGML. O SGML já tinha sido a tecnologia de base no desenvolvimento do HTML. Essencialmente o XML permite através de etiquetas (tags) associar a descrição do formato aos dados de um documento. Toda a descrição é textual o que resolve muito dos problemas de portabilidade. O XML é uma proposta do W3C e é percepcionado como o substituto dos formatos anteriores de representação de dados como o EDI

6 Benefícios do XML Tecnologia não proprietária Independente das plataformas o formato é texto Compatível com o HTTP o XML tem uma sintaxe mais restritiva que o HTML, mas pode ser usado como o HTML pelo que passa pelas firewalls Internacional formato texto que usa UTF-8 ou UTF-16 para representar os caracteres Extensível Novas tags podem ser adicionadas por necessidade de extensão. Para evitar duplicações existem name spaces a que um documento pode ser associado. A interpretação das mensagens depende de tags e não de posição do campo na mensagem Permite a transformação automática dos dados - As transformações são especificadas usando XML Stylesheet Language Transformatiom (XSLT) Auto definida A estrutura de um documento XML tem uma meta-descrição com base Document Type Definition (DTD) ou actualmente com XML schema Ferramentas genéricas ferramentas Open Source em Java e ferramentas já existentes para SGML. Exemplo XML Imprimir Texto <H1> Skateboard Usage Requirements</H1> <P>In order to use the <B>FastGlide</B> skateboard you have to have:</p> <LIST> <ITEM>A strong pair of legs.</item> <ITEM>A reasonably long stretch of smooth road surface.</item> <ITEM>The impulse to impress others.</item> </LIST> <P>If you have all of the above, you can proceed to <LINK HREF= Chapter2.xml >Getting on the Board</LINK>.</P>

7 XML Exemplo Dados <po id= submitted= > <billto> <company>the Skateboard Warehouse</company> <street>one Warehouse Park</street> <sreet>building 17</street> <city>boston</city> <state>ma</state> <postalcode>01775</postalcode> </billto> <shipto> <company>the Skateboard Warehouse</company> <street>one Warehouse Park</street> <street>building 17</street> <city>boston</city> <state>ma</state> <postalcode>01775</postalcode> </shipto> <order> <item sku= 318-BP quantity= 5 > <description>skateboard backpack; five pockets</description> </item> <item sku= 947 TI quantity= 12 > <description>street - style titanium skateboard.</description> </item> <item sku= 008-PR quantity= 1000 > </item> </order> </po> Tecnologia XML Namespaces Permite a unicidade de nomes e resolver colisões. Os Espaços de nomes são normalmente associados a um domínio de aplicação Um nome torna-se único por associação a um URI Xpath Define um mecanismo de acesso a elementos dentro de um documento XML Xlink Mecanismo para indexar outros documentos semelhantes aos hiperlinks do HTML mas mais robusto XSL XML style sheet- documentos XML que definem transformações de documentos em XML DOM - Document Object Model O DOM define os métodos para aceder a um documento XML. Pressupõe que o documento é carregado em memória e que através de uma API se acede aos diferentes elementos SAX - Simple API for XML O SAX é um parser que invoca funções à medida que encontra elementos no documento

8 Esquema do Documento A especificação de documentos era inicialmente efectuada em DTD Document Type Definition em 2001 foi proposto o XML Schema que estende as capacidades do DTD mas cuja principal vantagem é ter uma sintaxe XML que o DTD não tinha Um parser usando um DTD ou XML Schema pode verificar se o documento está sintacticamente correcto e se está conforme com um determinado tipo A meta-descrição pode ser incluída no documento, mas a utilização mais interessante é poder aceder-lhe através de um URI partilhando-o entre aplicações Comparação XML schema e DTD DTD era anterior ao XML pelo que não suporta bem alguns aspectos da norma como por exemplo os namespaces O DTD tinha por objectivo descrever documentos legíveis por humanos e não documentos para representar dados, por conseguinte faltam-lhe alguns construções para exprimir diversas restrições simples, como por ex.: idade só pode ter um valor não negativo entre 0 e 150 A sintaxe do DTD não é a do XML o que torna mais complexas as ferramentas

9 XML Schema Define Elementos obrigatórios e proibidos Estrutura hierárquica dos elementos Atributos necessários ou opcionais dos elementos e gama de valores permitidos Referências de parte de um documento a outros elementos do documento Exemplo de uma estrutura de dados em XML <?xml version= 1.0 encoding = UTF-8?> <employeelist> <employee type= contract > <employee_id>75868</employee_id> <name> <first_name>john</first_name> <last_name>doe</last_name> </name> <extn>27304</extn> <dept> </dept> < >john.doe@flute.com</ > </employee> /employeelist> employeelist

10 DTD Simples para o documento employeelist <!DOCTYPE employeelist [ <!ELEMENT employeelist (employee*)> <!ELEMENT employee (employee_id, name, extn, dept, )> <!ATTLIST emplyee type (perm contract) #REQUIRED> <!ELEMENT employee_id (#PCDATA)> Element emplyeelist consists of zero or more employee elements. NOTE: * = zero or more,? = zero or one, + = one or more Element employee contains elements employee_id, name, dept, and . Attribute type for element employee is required and must have either of these two values: contract or perm. <!ELEMENT NAME (first_name, last_name)> <!ELEMENT first_name (#PCDATA)> <!ELEMENT last_name (#PCDATA)> <!ELEMENT extn (#PCDATA)> <!ELEMENT dept (#PCDATA)> <!ELEMENT (#PCDATA)> ]> Element dept. maycontainanyparsablecharacterdata (PCData). XML Schema para o documento employeelist </xml version= 1.0 encoding= UTF-8?> <xsd:schema xmlns:xsd= targetnamespace= xmlns= > <xsd:element name= employeelist > <xsd:complextype> <xsd:sequence> <xsd:element ref= employee minoccurs= 1 maxoccurs= unbounded /> <xsd:seuqence> </xsd:complextype> </xsd:element> <xsd:element name= employee <xsd:complextype> <xsd:sequence> <xsd:element ref= employee_id minoccurs= 1 maxoccurs= 1 /> <xsd:element ref= name minoccurs= 1 maxoccurs= 1 /> <xsd:element ref= extn minoccurs= 1 maxoccurs= 1 /> <xsd:element ref= dept minoccurs= 1 maxoccurs= 1 /> <xsd:element ref= minoccurs= 1 maxoccurs= 1 /> </xsd:sequence> <xsd:attributegroup ref= employeeattribute /> </xsd:comlextype> </xsd:element> <xsd:element name= name <xsd:complextype> <xsd:sequence> <xsd:element ref= first_name minoccurs= 1 maxoccurs= 1 /> <xsd:element ref= last_name minoccurs= 1 maxoccurs= 1 /> <xsd:sequence> </xsd:complextype> </xsd:element> Namespace declaration <!ELEMENT employeelist (employee*)> <!ELEMENT employee (employee_id, name, extn, dept, )> <!ELEMENT name (first_name, last_name)>

11 <xsd:element name= employee_id > <xsd:simpletype> <xsd:restriction base= xsd:int > <xsd:minlnclusive value= 1 /> <xsd:maxlnclusive value= /> <xsd:restriction> </xsd:simpletype> </xsd:element> <xsd:element name= first_name type= xsd:string /> <xsd:element name= last_name type= xsd:string /> <xsd:element name= type= xsd:string /> <xsd:element name= dept > <xsd:simpletype> <xsd:restriction base= xsd:string> employee:_id must be an integer between 1 and 100,000. <!ELEMENT first_name (PCDATA)> <!ELEMENT (PCDATA) Department must be specified in the form: <xsd:pattern value= [0-9]{3}-[0-9]{3}-[0-9]{4} /> </xsd:restriction> </xsd:simpletype> </xsd:element> <xsd:element name= extn > <xsd:simpletype> <xsd:restrition base= xsd:string > <xsd:pattern value= [0-9]{5} /> </xsd:restrition> </xsd:simpletype> </xsd:element> <xsd:attributegroup name0 employeeattribute > <xsd:attribute name= type use= required > <xsd:simpletype> <xsd:restriction base= xsd:string > <xsd:enumerator value= contract /> Extension must be specified in the form (String consisting of five digits). <!ATTLIST employee type (permicontract) #REQUIRED> Utilização do XML São necessários três elementos: XML Schema (document type definition) XML parser (implementando a interface DOM) Aplicação para processar o documento XML Schema XML document XML Parser DOM Application Output

12 Simple Object Access Protocol SOAP Simple Object Access Protocol - SOAP Objectivo Ubiquitous XML distributed computing infrastructure Características Protocolo de comunicação distribuído permitindo o envio de qualquer tipo de informação entre aplicações Define o protocolo de pedido resposta estrutura das mensagens e da interacção entre cliente e servidor O protocolo de representação de dados baseado em XML. Referências remotas baseadas em URI Protocolo extensível permitindo a incorporação de várias facetas : segurança, tolerância a faltas, através de headers associados às mensagens

13 Wire stack Visão dos Web Services SOAP Headers Envelope Extensions SOAP XML and SOAP HTTP(S), SMTP, FTP, sockets. XML Messaging Data Encoding Network Protocol Security Manageability Quality of Service SOAP No SOAP toda a informação está incluída dentro de uma mensagem o envelope do SOAP. A mensagem tem um ou mais cabeçalhos (headers) e um corpo (body). Extensões às mensagens são os SOAP headers A heterogeneidade é tratada pelo XML assim como convenções para representar tipos de dados abstractos ou tipos de dados complexos Uma interacções do tipo pedido - resposta Um mecanismo de ligação entre as mensagens SOAP e o protocolo HTTP, o mais usado na Internet, contudo o SOAP pode utilizar outros protocolos de transporte como SMTP Um mecanismo para tratar as faltas SOAP fault Na base estão os protocolos de comunicação que podem ser usados: HTTP, SMTP, FTP, ou API de comunicação como os sockets A segurança pode aparecer a qualquer nível, por exemplo, utilizar SSL na comunicação ou assinaturas digitais nos headers.

14 SOAP Simple Object Access Protocol SOAP 1.1 Message Structure SOAP Envelope Header Entries [Header Element] Body Element [Fault Element] Define: Modelo de empacotamento SOAP Envelope Mecanismo de serialização SOAP Encoding Rules Chamada de procedimento remoto SOAP RPC Baseado em XML Pode usar vários transportes: HTTP SMTP... Interacções previstas no SOAP one-way Mensagem simples Client Server request-response RPC Notification callback notification-response Client Client Client Server Server Server

15 Execução simples em Soap É necessário um URL de destino O nome de uma operação Os parâmetros. Os parâmetros são passados por cópia (in e out) Não existem referências para os objectos remotos criadas automaticamente como em Corba ou Java. Informação contextual, como a informação de segurança Exemplo Servidor que disponibiliza o último preço praticado para um produto Função Remota float GetLastTradePrice(string symbol)

16 Soap - Pedido POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8 Content-Length: nnnn SOAPAction: "Some-URI <SOAP-ENV:Envelope xmlns:soap-env=" SOAP-ENV:encodingStyle=" <SOAP- ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> SOAP - Resposta 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>

17 Physical (Communication Protocol) Message POST /LookupCentral HTTP/1.1 Host: Content-Type: text/xml; charset= utf-8 Content-Length: nnn SOAPAction: Directory/LookupPerson Out-of-message context (target URI) Out-of-message context (SOAPAction) <SOAP-ENV:Envelope Logical SOAP Message xmlns:soap-env= SOAP-ENV:encodingStyle= /> <SOAP-ENV:Header> SOAP Headers <a: AuthorizationLevel> xmls:a= some-uri > </a:authorizationlevel> In-message context </SOAP-ENV:Header> <SOAP-ENV:Body> <m:lookupperson xmlns:m= Some-URI > <FirstName>Big<FirstName> <LastName>Boss</LastName> </m:lookupperson> </SOAP-ENV:body> SOAP Body </SOAP-ENV:Envelope> SOAPEnvelope +addheader(header:soapheader):void +addbodyelement(element:soapbodyelement):void +getheaderbyname(namespace:string, localpart:string):soapheader message Type:String encodingstyleuri:string bodyelements:vector headers:vector MessageElement +getvalueastype(type:qname):object +output(context:serializationcontext):void Name:String Prefix:String namespaceuri:string Type:QName Parent:MessageElement Element:SOAPEnvelope SOAPHeader +SOAPHeader(namespace:String, localpart:string +SOAPHeader(elem:Element) mustunderstand:boolean actor:string SOAPBodyElement +SOAPBodyElement(elem:Element) RPCParam RPCElement +RPCParam(name:String, value:object) value:object name:string +RPCElement(namespace:String, methodname:string, args:object[]) +getparam(name:string):rpcparam +addparam(param:rpcparam):void methodname:string params:vector

18 Binding do SOAP ao protocolo de Transporte O HTTP é um protocolo de pedido-resposta pelo que torna o protocolo de RPC do SOAP muito simples. Para outros protocolos tem de se criar um protocolo de controlo do RPC. O HTTP permite que o servidor não tenha estado A confidencialidade da informação pode ser assegurada pelo HTTP/S Binding do SOAP ao protocolo de Transporte O SOAP é independente do transporte e pode ser usado com a diferentes protocolos. Distinção entre a mensagem SOAP e a mensagem de transporte O contexto pode ser passado dentro na mensagem SOAP ou na mensagem de transporte No caso do HTTP a informação de contexto é passada através do URI e do SOAP action Se o mecanismo de transporte não tiver possibilidade de ter informação de contexto como, por exemplo, usando directamente os sockets as soluções possíveis são: Por convenção o porto x corresponde ao serviço Y Usando os headers do SOAP Usando um protocolo mínimo para transferir as mensagens do SOAP

19 WSDL - Web Service Definition Language Definição do contrato do Serviço WSDL - Web Service Definition Language A Interface Description Language dos Web Services Define o contrato a que o serviço se obriga Foi submetida para norma ao W3C pela IBM e pela Microsoft em Setembro A definição permite descrever Qual o serviço Que mensagens devem ser enviadas e qual a sua estrutura Como usar os vários protocolos de transporte Onde o serviço está localizado, mais precisamente para que rede a mensagem deve ser enviada A documento WSDL é um documento XML com todas as vantagens que dai advém de extensibilidade (namespaces, xml schema, etc.)

20 Service Description stack WSFL/ XLANG WSEL WSDL WSDL XML Schema Service Orchestration Endpoint Description Service Interface Service Implementation XML WSDL Web Services Description Language WSDL 1.1 Document Structure WSDL Document [Types] {Messages} {Port Types} {Bindings} {Services} Descreve: O que o serviço faz Operações Onde está localizado Endpoint Como invocá-lo Existem bindings para: SOAP 1.1 HTTP GET/POST MIME

21 Definições port Type Descreve a interface abstracta de um Web service. Atenção porque o termo port é aqui usado com um sentido totalmente diferente dos sockets, semelhante a interface de Java message assinatura das operações descrevendo o nome e os parâmetros da operação types colecção de todos os tipos de dados usados na especificação. Estes elementos são reutilizáveis porque definem entidades abstractas porttype <porttype name= PriceCheckPortType > <operation name= checkprice > <input message= pc:pricecheckrequest /> <output message= pc:pricecheckresponse /> </operation> <porttype> Descreve o que o Web service faz As mensagens permitem saber a assinatura dos métodos Normalmente um documento WSDL contem apenas um port type por razões de reutilização

22 Mensagens <! - - Message definitions - -> <! - - A PriceCheckRequest is simply an item code (sku) - -> <message name= PriceCheckRequest > <part name= sku type= xsd:string /> </message> <! - - A PriceCheckResponse consists of an availability structure, - - > <! - - defined above. <message name= PriceCheckResponse > <part name= result type= avail:availabilitytype /> </message> As mensagens podem ser de input, output ou assinalar faltas podem ser usadas nas diferentes operações Tipos de dados <types> <xsd:schema targetnamespace= xmlns:xsd= <xsd:complextype name= availabilitytype > <wsd:sequence> <xsd:element name= sku type= xsd:string /> <xsd:element name= price type= xsd:double /> </xsd:sequence> </xsd:complextype> </xsd:schema> </types> Tipos utilizados no documento WSDL Os tipos são declarados num XML schema

23 binding A função do binding é tornar concreto o serviço definindo a forma como funciona Exemplos: SOAP; HTTP; SMTP Semântica da invocação Request response; one-way; solicit response; notification Protocolo de transporte Valor do Soap action Formatação da mensagem Um porttype pode ter um mais bindings associados, mas cada documento WSDL normalmente só tem um. binding <binding name= PriceCheckSOAPBinding type= pc:pricecheckporttype > <soap:binding style= rpc transport= <operation name= checkprice > <soap:operation soapaction= /> <input> <soap:body use= encoded namespace= encodingstyle= /> </input> <output> <soap:body use= encoded namespace= encodingstyle= </output> </operation> </binding>

24 Exemplo de binding para SMTP <!- - Binding definitions - -> <binding name= PriceCheckSMTPBinding type= pc:pricecheckporttype > <soap:binding style= document Transport= /> <operation name= checkprice > <input> <soap:body use= literal /> </ input> <output> <soap:body use= literal /> </ output> </ operation> </ binding> port <! - - Service definition - -> <service name= PriceCheckService > <port name= PriceCheck binding= pc:pricechecksoapbinding > <soap:address location= </port> </service> <! - - Service definition - - > <service name= PriceCheckSMTPService > <port name= PriceCheckSMTP binding= PriceCheckSMTPBinding > <soap:address location= mailto:pricecheck@skstestown.com /> </ port> </ service> Define o endereço da rede da rede onde o Web service é disponibilizado. Se existissem vários bindings podiam ser definidos vários ports por exemplo para http ou o endereço de para SMTP

25 WSDL information model part type abstract interface porttype (abstract) message (abstract) operation (concrete) message (concrete) message concrete implementation binding Made concrete by service concrete endpoint port Contains zero or more WSDL exemplo (I) <?xml version= 1.0?> <definitions name= PriceCheck targetnamespace= xmlns:pc= xmlns:avail= xmlns:xsd= xmlns:soap= xmlns= > <! - - Type definitions - -> <types> <xsd:schema targetnamespace= xmlns:xsd= <xsd:complextype name= availabilitytype > <wsd:sequence> <xsd:element name= sku type= xsd:string /> <xsd:element name= price type= xsd:double /> </xsd:sequence> </xsd:complextype> </xsd:schema> </types>

26 WSDL exemplo (II) <! - - Message definitions - -> <! - - A PriceCheckRequest is simply an item code (sku) - -> <message name= PriceCheckRequest > <part name= sku type= xsd:string /> </message> <! - - A PriceCheckResponse consists of an availability structure, - - > <! - - defined above. <message name= PriceCheckResponse > <part name= result type= avail:availabilitytype /> </message> <!- - Port type definitions - -> <porttype name= PriceCheckPortType > <operation name= checkprice > <input message= pc:pricecheckrequest /> <output message= pc:pricecheckresponse /> </operation> <porttype> WSDL exemplo (III) <binding name= PriceCheckSOAPBinding type= pc:pricecheckporttype > <soap:binding style= rpc transport= <operation name= checkprice > <soap:operation soapaction= /> <input> <soap:body use= encoded namespace= encodingstyle= /> </input> <output> <soap:body use= encoded namespace= encodingstyle= </output> </operation> </binding> <! - - Service definition - -> <service name= PriceCheckService > <port name= PriceCheck binding= pc:pricechecksoapbinding > <soap:address location= </port> </service> </definitions>

27 UDDI- Discovery stack UDDI Directory ADS/DISCO Inspection Modelo dos Web Services Service Registry Find Publish Service Requestor Bind Service Provider

28 Discovery Stack Protocolo de ligação ou binding entre o cliente e o servidor. Os fornecedores dos serviços publicam a respectiva interface O protocolo de inspecção permite verificar se uma dado serviço existe baseado na sua identificação O UDDI responde às questões Onde é que o Web service está localizado? Qual o processo de negócio que o serviço disponibiliza O UDDI permite encontrar o serviço baseado na sua definição capability lookup JAX - RPC Integração dos Web Services com o ambiente Java

29 Stack Tipico de Interacção View Requestor Provider Developer Java API Java API Web service SOAP message SOAP message Wire-level HTTP packet HTTP packet JAX-RPC Java API for XML-based Remote Procedure Call Em JAX-RPC, uma chamada remota de procedimento é efectuada utilizando o protocolo SOAP (que define a estrutura e regras de representação da informação). A API do JAX-RPC esconde a complexidade da utilização de SOAP do programador. No servidor, o programador especifica os procedimentos remotos definindo uma interface em Java e criando uma classe que implemente esta interface. No cliente, o programador cria uma proxy (objecto local que representa o serviço) que é invocado para executar os métodos. Um cliente JAX-RPC pode aceder a Web services definidos noutras plataformas (devido à utilização de HTTP, SOAP e WSDL).

30 JAX-RPC Passos de Execução JAX-RPC Arquitectura Web Container - Tomcat Service Client Stub WSDL description Service Endpoint Tie JAX-RPC API Client Side JAX-RPC Runtime System WSDL <-> Java Mapping Message Protocol - SOAP Transport Protocol - HTTP Dispatch JAX- RPC API Server Side JAX-RPC Runtime System

31 Service Endpoint A service endpoint interface declara os métodos que um cliente remoto pode invocar no serviço package soma; import java.rmi.remote; import java.rmi.remoteexception; public interface SomaIF extends Remote { public int soma(int arg1, int arg2) throws RemoteException; } Algumas das regras A interface estende a interface Remote O método tem de lançar a RemoteException ou uma subclasse Os parâmetros de entrada e de retorno tem de ser suportados pelo JAX-RPC Exemplo Exemplo de classe de implementação: package soma; public class SomaImpl implements SomaIF { public int soma(int arg1, int arg2) { return arg1 + arg2; } } A ferramenta wscompile gera classes stub (cliente) e tie (servidor), que interagem com as bibliotecas de run-time. O wscompile gera também o documento da WSDL que descreve o serviço Tem de ser fornecido um ficheiro de configuração

32 JAX-RPC Descrição Duas componentes Server-side Gerar o WSDL, ties Instalar (deploy) num Web Container Client-side Gerar os stubs, compilar e executar a aplicação A aplicação cliente pode ser: Aplicação linha de comando Aplicação web Adaptação do modelo RPC JAX-RPC Modelo da Arquitectura Stubs Classes java reconstruídas no cliente que medeiam o acesso aos serviços remotos Ties Classes instaladas no servidor que encaminham os pedidos para a implementação do serviço correspondente Message Protocol - SOAP Transport Protocol - HTTP

33 JAX-RPC Modelo de Programação Cliente JAX-RPC Servidor JAX-RPC public class FlightsClient { public static void main(string[] args) { try { // obter um proxy local para o WS remoto Stub stub = createproxy(); FlightServiceIF teste = (FlightServiceIF) stub; // definir o Endpoint Address (endereço do WS) stub._setproperty( Stub.ENDPOINT_ADDRESS_PROPERTY, " public interface FlightServiceIF extends Remote { public String saygreetings (String clientname) throws RemoteException; } FlightServiceIF.java } // invocar método remoto String resultado = teste.saygreeting("quinas"); System.out.println(resultado); } catch (Exception ex) { // tratamento da excepção } } private static Stub createproxy() { return (Stub) ( new FlightServiceEndpoint_Impl(). getflightserviceifport()) ; } FlightsClient.java public class FlightServiceImpl implements FlightServiceIF { public String saygreeting (String clientname) throws RemoteException { return "TAP greets " + clientname +. ; } } FlightServiceImpl.java Cliente O cliente pode ter um static proxy criado antes da execução (static stub) que é compilado a partir do WSDL pelo wscompile O cliente pode também usar um dynamic proxy uma classe que é criada durante a execução a partir do WSDL

34 Cliente com um static proxy package soma; import javax.xml.rpc.stub; public class SomaClient { public static void main(string[] args) { try { Stub stub = createproxy(); SomaIF soma = (SomaIF)stub; int res = soma.soma(1, 2); } System.out.println("O resultado e': " + res); } catch (Exception ex) { ex.printstacktrace(); } private static Stub createproxy() { // implementação estática de um proxy return (Stub)(new EndpointSoma_Impl().getSomaIFPort()); } } JAX-RPC Handlers (para funcionalidades avançadas) Os handlers podem ser usados por exemplo para efectuar logging ou cifrar/decifrar os envelopes SOAP que passam na rede Handler Estende a classe javax.xml.rpc.handler.handler Métodos relevantes handlerequest(messagecontext context) handleresponse(messagecontext context) handlefault(messagecontext context) Handler Chain Sequência de handlers executados sobre pedidos e respostas

35 Handlers Configuração Cliente: wscompile_config.xml <wsdl location= <handlerchains> <chain runat= client"> <handler classname= handlerclass"> <property name="prop" value="val"/>... </handler> </chain>... </handlerchains> </wsdl> Servidor: jaxrpc-ri.xml <endpoint name= <handlerchains> <chain runat="server"> <handler classname= handlerclass"> <property name="prop" value="val"/>... </handler> </chain>... </handlerchains> </endpoint> Os handlers podem ser usados por exemplo para cifrar/decifrar os envelopes SOAP que passam na rede Para autenticar as mensagens 1) Validação de cartão de crédito Permitir ao portal verificar se o número de cartão de crédito introduzido pelo utilizador deve ser aceite Integrar portal com SCC Web Service Comunicação síncrona resposta imediata

36 Serviço de Turismo Projecto em Sistemas Empresariais Integrados

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

Sistemas Distribuídos

Sistemas Distribuídos Chamada Remota de Procedimento março de 2019 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e

Leia mais

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir: INFORMÁTICA Prova de Agente Fiscal de Rendas do ICMS-SP/2013 - FCC. Por Ana Lucia Castilho* Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir: A equipe de TI da empresa

Leia mais

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles. Web Services Web Service é um componente de software identificado por uma URI que independe de implementação ou de plataforma e pode ser descrito, publicado e invocado sobre uma rede por meio de mensagens

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

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Web Services Conceitual Juliano Moraes, Marcus Breda, Paulo Gil, Rafael

Leia mais

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC. GERENCIAMENTO BASEADO NA WEB Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC. Gerenciamento baseado na Web 2 Web browser Acesso ubíquo Interface Web vs Gerenciamento

Leia mais

Roteiro. Por que Web Services? Computação Distribuída - DCOM e CORBA. Visão Geral XML. João Gustavo Gazolla Borges, Maverson Eduardo Schulze Rosa SOAP

Roteiro. Por que Web Services? Computação Distribuída - DCOM e CORBA. Visão Geral XML. João Gustavo Gazolla Borges, Maverson Eduardo Schulze Rosa SOAP Roteiro Introdução Introdução à Web Services João Gustavo Gazolla Borges, Maverson Eduardo Schulze Rosa DINF / UFPR 10 de novembro de 2006 Motivação Visão Geral XML SOAP WSDL UDDI Segurança Conclusão Definição

Leia mais

Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações. Disciplina: Fundamentos de Sistemas Multimídia.

Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações. Disciplina: Fundamentos de Sistemas Multimídia. Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações Disciplina: Fundamentos de Sistemas Multimídia Web Services Aluno: Leonardo Severo Alves de Melo leonardo.severo@ig.com.br Introdução

Leia mais

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br ESQUEMAS Modelo de Esquemas Dois diferentes meios permitem descrever a estrutura de documentos XML e definir novos tipos de dados para elementos e atributos:

Leia mais

Sumário. XML (extensible Markup Language)

Sumário. XML (extensible Markup Language) Sumário 1 Introdução Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto-Relacional 3 BD Temporal 4 BD Geográfico 5 XML e Bancos de Dados XML (extensible Markup Language) Tecnologia desenvolvida

Leia mais

Sistemas Operacionais II

Sistemas Operacionais II Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Web services (Serviços web) Aula 15 Necessidade de comunicação entre sistemas heterogêneos Ex: corba, DCOM, Java RMI, Sun RPC, etc!

Leia mais

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos Número: Nome: LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos 8 de Setembro de 2008 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo

Leia mais

Web Services SOAP. Introdução

Web Services SOAP. Introdução Web Services SOAP Introdução 1 Cenários Problemáticos Soluções para aplicações corporativas avançadas Cenário 1: Portal de Turismo Cenário 2: Compra Automática Cenário 3: Supply Chain Management Cenário

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

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha Programação com Sockets Ricardo Couto Antunes da Rocha rcarocha@inf.ufg.br 2005 Ricardo Couto Antunes da Rocha Parâmetros de protocolos Objetivo do protocolo Protocolo de transporte: TCP ou UDP Porta (servidora!):

Leia mais

Desenvolvimento de Aplicações Corporativas Avançadas. Web Services

Desenvolvimento de Aplicações Corporativas Avançadas. Web Services Desenvolvimento de Aplicações Corporativas Avançadas Web Services Agenda Introdução Web Service Arquitetura Soluções Passos básicos Implementando com Apache Axis Novos protocolos Conclusão O cenário de

Leia mais

APIs Java para Web Services

APIs Java para Web Services APIs Java para Web Services Ivan Neto Roteiro S Revisão S Web services em Java S Como implementar um web service S Como acessar um web service S Implementando um cliente J2EE S Java EE 5 2 1 O que é um

Leia mais

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado Aplicações distribuídas: interação entre partes Processamento Paralelo Middleware Orientado a Objetos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Rede A Rede B Rede C 2015/01 - INF02799 Sistema

Leia mais

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC: Número: Nome: Página 1 de 7 LEIC/LETI 2016/17, Repescagem do 1º Teste de Sistemas Distribuídos 4 de julho de 2017 Responda no enunciado, usando apenas o espaço fornecido. Identifique todas as folhas. Uma

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

XM X L M L WE W B E B Se S r e vices e 0

XM X L M L WE W B E B Se S r e vices e 0 XML WEB Services 0 Web Services A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable

Leia mais

LEIC/LERC 2009/10 Primeiro Teste de Sistemas Distribuídos. Grupo I [6 v]

LEIC/LERC 2009/10 Primeiro Teste de Sistemas Distribuídos. Grupo I [6 v] Número: Nome: LEIC/LERC 2009/10 Primeiro Teste de Sistemas Distribuídos 23 de Abril de 2010 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I [6 v]

Leia mais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos RPC Remote Procedure Call 1 Fonte: Alcides Calsavara e Thais V. Batista Chamada de Procedimentos Remotos (RPC) Motivação: comunicação baseada em operações de entrada/saída Ideal:

Leia mais

Service Oriented Architectures (SOA)

Service Oriented Architectures (SOA) Service Oriented Architectures (SOA) Marcelo Faro (mfal@cin.ufpe.br); Carlos Ferraz (cagf@cin.ufpe.br) CIn/UFPE 22 de janeiro de 2004 O que é uma Arquitetura Orientada a Serviços (SOA) Uma Arquitetura

Leia mais

RMI e RPC. RPC significou um passo muito grande em direcção à

RMI e RPC. RPC significou um passo muito grande em direcção à Sumário RMI Conceito. Arquitectura de Implementação. Java RMI Características. Interfaces e Objectos Remotos JVM e Java RMI. Passagem de Argumentos e Serialização. Class Downloading. 1 RMI e RPC RPC significou

Leia mais

Sistemas distribuídos. Prof. Emiliano Monteiro

Sistemas distribuídos. Prof. Emiliano Monteiro Sistemas distribuídos Prof. Emiliano Monteiro Serviços web (web services) Nos serviços web um cliente específico de uma determinada aplicação interage pela Internet com um serviço que possui uma interface

Leia mais

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação? Número: Nome: Página 1 de 7 LEIC/LETI 2013/14, 1º Teste de Sistemas Distribuídos, 29 de Março de 2014 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo

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

LEIC/LERC 2008/09 1º Exame de Sistemas Distribuídos

LEIC/LERC 2008/09 1º Exame de Sistemas Distribuídos Número: Nome: LEIC/LERC 2008/09 1º Exame de Sistemas Distribuídos 11 de Julho de 2009 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m - 12 Páginas Grupo I

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar

Leia mais

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture OMG: Object Management Group. Organização internacional, sem fins lucrativos, fundada em 1989. Mais de 800 membros (incluindo fabricantes de sistemas, produtores

Leia mais

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services Universidade Federal de Santa Catarina DSOOII Web Services Web Services - Introdução Havia inconsistência de plataformas, sistemas operacionais e/ou linguagens de programação; Acadêmicos: Ariane Talita

Leia mais

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de Capítulo 9: XML XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de documentos XML: XSLT Mapeamento entre documentos

Leia mais

Principais conceitos de CORBA

Principais conceitos de CORBA Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem

Leia mais

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de Capítulo 9: XML XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de documentos XML: XSLT Mapeamento entre documentos

Leia mais

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Invocação Remota. Prof. Leonardo Barreto Campos.   1/29 Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os

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

Web Services. Sistemas Distribuídos Marcos Costa

Web Services. Sistemas Distribuídos Marcos Costa Web Services Sistemas Distribuídos Marcos Costa masc@cin.ufpe.br Definição! WebServices.org! Web Services are encapsulated, loosely coupled contracted functions offered via standard protocols 2 Definição

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 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com

Leia mais

UNIVERSIDADE FEDERAL DO MARANHÃO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO DIEGO RABELO MACIEL

UNIVERSIDADE FEDERAL DO MARANHÃO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO DIEGO RABELO MACIEL UNIVERSIDADE FEDERAL DO MARANHÃO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO DIEGO RABELO MACIEL IMPLEMENTAÇÃO DE UM DISCO VIRTUAL SEGURO BASEADO EM WEB SERVICES São Luís 2007

Leia mais

STD29006 Sistemas Distribuídos

STD29006 Sistemas Distribuídos STD29006 Sistemas Distribuídos Serviços Web Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/std 22 de setembro

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

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br INTRODUÇÃO O que é XML? É a sigla de Extensible Markup Language Linguagem de especificação para descrever dados Padrão aberto e largamente usado Definido

Leia mais

PMR3507 Fábrica digital

PMR3507 Fábrica digital LSA Laboratório de Sistemas de Automação www.pmrlsa.poli.usp.br PMR3507 Fábrica digital Do EDI ao SOA Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de Sistemas

Leia mais

INTRODUÇÃO. RPC x RMI

INTRODUÇÃO. RPC x RMI 1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.

Leia mais

Simple Object Access Protocol Entendendo o Simple Object Access Protocol (SOAP)

Simple Object Access Protocol Entendendo o Simple Object Access Protocol (SOAP) por Marcus Rommel Barbosa Leopoldo Simple Object Access Protocol Entendendo o Simple Object Access Protocol (SOAP) Neste artigo vamos fazer uma análise geral da base da tecnologia SOAP. Conheceremos as

Leia mais

Sistemas Operacionais II

Sistemas Operacionais II Modelo orientado a objetos: uma pequena revisão Instituto de Informátic ca - UFRGS Sistemas Operacionais II Modelos para programação distribuída (Remote Method Invocation) Aula 14 Programa é visto como

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

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

Sistemas Distribuídos Aula 10

Sistemas Distribuídos Aula 10 Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação

Leia mais

Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC.

Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC. Número: Nome: Página 1 de 7 LEIC/LERC 2012/13, 1º Teste de Sistemas Distribuídos, 16 de Abril de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo

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

XML (extensible Markup Language)

XML (extensible Markup Language) Sumário 1 Aplicações Não-Convencionais 2 Revisão e Dicas de Modelagem Conceitual 3 BD Orientado a Objetos e Objeto- Relacional 4 BD Temporal 5 BD Geográfico 6 BD XML XML (extensible Markup Language) Tecnologia

Leia mais

Sistemas Distribuídos. Visão Geral Expandida

Sistemas Distribuídos. Visão Geral Expandida Sistemas Distribuídos Visão Geral Expandida Visão Geral! Infra-estrutura! Ambientes de execução e de programação! Projeto! Configuração! Simulação! Testes Visão Geral! Infra-estrutura Heterogeneidade Redes!

Leia mais

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo 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

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

LEIC/LERC 2010/11 1º Teste de Sistemas Distribuídos

LEIC/LERC 2010/11 1º Teste de Sistemas Distribuídos Número: Nome: LEIC/LERC 2010/11 1º Teste de Sistemas Distribuídos 9 de Abril de 2011 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I [5 v.] 1. [1,1

Leia mais

Sistemas de Objetos Distribuídos

Sistemas de Objetos Distribuídos Sistemas de Objetos Distribuídos Alex Carneiro Carlos Eduardo Elmadjian Karina Awoki Prof. Fabio Kon POO 2016.1 Agenda Conceitos Histórico CORBA Demos Comparação com SOA Conclusão 1 CONCEITOS Sistemas

Leia mais

Aula 23: Web Services (I)

Aula 23: Web Services (I) Aula 23: Web Services (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Web Services (I) TEPIS II 1 / 30 Web Services: Introdução Serviços

Leia mais

IBM WebSphere MQ. Introdução

IBM WebSphere MQ. Introdução Introdução Arquitectura Application Messaging Interface WebSphere Aplication Server WebSphere Business Integration Server Vantagens e desvantagens Introdução Plataforma de integração e infraestrutura de

Leia mais

Sumário. 1 Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto- Relacional 3 BD Temporal 4 BD Geográfico 5 BDs XML

Sumário. 1 Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto- Relacional 3 BD Temporal 4 BD Geográfico 5 BDs XML Sumário 1 Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto- Relacional 3 BD Temporal 4 BD Geográfico 5 BDs XML XML (extensible Markup Language) Tecnologia desenvolvida pela W3C W3C: World

Leia mais

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs 2002-2003 Carlos A. G. Ferraz 2 Serviço de Nomes CORBA Páginas Brancas Permite encontrar objetos através de nomes Nomes Referência de

Leia mais

O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.

O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST. Web Services Por que os Web Services são atrativos para a integração de sistemas? Pois os Web services são componentes que possibilitam que as aplicações se comuniquem utilizando protocolos padrão da internet

Leia mais

Composição. Rafael Ferraz 9 Dezembro 2004

Composição. Rafael Ferraz 9 Dezembro 2004 Composição Rafael Ferraz 9 Dezembro 2004 Introdução. Guia da apresentação Enquadramento. Conceito. Motivação. Middleware de composição. Composição vs. coordenação. 2/77 Guia da apresentação. Coordenação

Leia mais

UMA ABORDAGEM PARA BUSCA POR WEB SERVICES

UMA ABORDAGEM PARA BUSCA POR WEB SERVICES RAFAEL KRÜGER TAVARES UMA ABORDAGEM PARA BUSCA POR WEB SERVICES COM REQUISITOS DE QOS FLORIANÓPOLIS 2006 II UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Rafael

Leia mais

LEIC/LERC 2011/12, 1º

LEIC/LERC 2011/12, 1º Número: Nome: Página 1 de 10 LEIC/LERC 2011/12, 1º Teste de Sistemas Distribuídos, 13 de Abril de 2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo

Leia mais

JavaTM RMI - Remote Method Invocation

JavaTM RMI - Remote Method Invocation JavaTM RMI - Remote Method Invocation Java e Engenharia de Software Orientada a Objetos por Jorge H. C. Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Julho de 1999 Objetivos desta Aula Mostrar o modelo de

Leia mais

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

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

Leia mais

Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona

Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona Sumário Message Oriented Middleware (MOM) October 16, 2008 Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes

Leia mais

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI Sistemas Distribuídos: Conceitos e Projeto RPC e RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 15 de abril

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

Rui Carneiro, Rui Pereira, Tiago Orfão

Rui Carneiro, Rui Pereira, Tiago Orfão Geração de Gráficos SVG através de PHP Rui Carneiro, Rui Pereira, Tiago Orfão Faculdade de Engenharia da Universidade do Porto, R. Dr. Roberto Frias, 4200-465 Porto. {ei04073,ei04077,ei03102}@fe.up.pt

Leia mais

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016 Frankley Gustavo F. Mesquita Tamiris Souza Fonseca 27 de junho de 2016 Sumário 1 2 3 4 5 6 7 8 O padrão Web foi desenvolvido pelo Laboratório Europeu de Física de Partículas (CERN - European Particle Physics

Leia mais

Message Oriented Middleware (MOM)

Message Oriented Middleware (MOM) Message Oriented Middleware (MOM) November 1, 2009 Sumário Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes

Leia mais

Web Services REST JAX-RS

Web Services REST JAX-RS Web Services REST JAX-RS Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Principais tecnologias envolvidas Testando os serviços desenvolvidos JAX-RS Principais anotações JAX-RS Principais anotações

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

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

Capítulo 3: Chamadas de Procedimentos Remotos

Capítulo 3: Chamadas de Procedimentos Remotos Chamada de Procedimentos Remotos RPC - Remote Procedure Call Capítulo 3: Chamadas de Procedimentos Remotos Modelo de programação da comunicação num sistema cliente-servidor Obvia as limitações referidas

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar - Aula 5 - PROGRAMAÇÃO DISTRIBUÍDA COM RMI 1 (Remote Method Invocation) 1. INTRODUÇÃO Sistemas distribuídos necessitam que aplicações, executando em vários espaços de endereçamento, normalmente em diferentes

Leia mais

Sérgio Koch Van-Dall

Sérgio Koch Van-Dall PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS

Leia mais

Número: Nome: Página 1 de 7

Número: Nome: Página 1 de 7 Número: Nome: Página 1 de 7 LEIC/LETI 2017/18, Repescagem 1º Teste de Sistemas Distribuídos, 3 de julho de 2018 Responda no enunciado, usando apenas o espaço fornecido. Identifique todas as folhas. Uma

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

Criação de um Web Services em.net

Criação de um Web Services em.net Web Service em.net 1 Criação de um Web Services em.net 1. Criar um novo Web Site com template ASP.NET Web Service, de acordo com a figura seguinte. O Visual studio cria um directório com os ficheiros indicados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Chamada Remota de Procedimento abril de 2017 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e

Leia mais

Criação de um Web Services em.net

Criação de um Web Services em.net Web Service em.net 1 Criação de um Web Services em.net 1. Criar um novo projecto do tipo ASP.NET Web Service, de acordo com a figura seguinte. O.Net cria um directório virtual com os ficheiros indicados

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

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD

Leia mais

Computação Orientada a Serviços

Computação Orientada a Serviços Universidade Tecnológica Federal do Paraná Campus Cornélio Procópio Computação Orientada a Serviços Elias Canhadas Genvigir Roteiro de Apresentação Introdução Problema Computação Orientada a Serviços Serviços

Leia mais

Serviço de Nomes CORBA. Serviço de Nomes CORBA e Interoperabilidade de ORBs. Serviço de Nomes CORBA. Serviço de Nomes CORBA. Serviço de Nomes CORBA

Serviço de Nomes CORBA. Serviço de Nomes CORBA e Interoperabilidade de ORBs. Serviço de Nomes CORBA. Serviço de Nomes CORBA. Serviço de Nomes CORBA www/~cagf/sdgrad Páginas Brancas e Interoperabilidade de s Permite encontrar objetos através de nomes Nomes Referência de Objeto Essa associação é denominada name binding Um name context é o espaço onde

Leia mais