Aula 24: Web Services (II)

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

Download "Aula 24: Web Services (II)"

Transcrição

1 Aula 24: Web Services (II) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Web Services (II) TEPIS II 1 / 36

2 Última Aula Introdução e motivação. Tipos de Web Services. Big Web Services: conceitos. Formato WSDL. SOAP. JAX-WS: introdução. Diego Passos (UFF) Web Services (II) TEPIS II 2 / 36

3 Aula de Hoje A API JAX-WS. Como escrever Big Web Services. Montagem e disponibilizaçao. Geração dos artefatos. Como escrever um cliente. Mapeamento de tipos de dados. Diego Passos (UFF) Web Services (II) TEPIS II 3 / 36

4 JAX-WS: Desenvolvendo um Web Service O desenvolvimento de um Web Service com a JAX-WS é bastante simples. De forma resumida, basta desenvolver a classe que implementa os métodos de negócio do Web Service e anotá-la Esta anotação define a classe declarada como um Web Service Endpoint. Mais especificamente, a JAX-WS define os seguintes conceitos: Service Endpoint Implementation (ou SEI): classe que implementa os métodos que podem ser invocados em um Web Service. Service Endpoint Interface: idem, mas como uma interface. A interface é opcional: a implementação do serviço pode conter apenas a classe propriamente dita. Mas a interface pode ser definida para isolar os métodos públicos (i.e., expostos pela API do Web Service). Neste caso, a classe que implementa os métodos deve explicitamente referenciar a interface com o elemento endpointinterface na Diego Passos (UFF) Web Services (II) TEPIS II 4 / 36

5 JAX-WS: Desenvolvendo um Web Service (II) Há quatro passos envolvidos na implantação de um Web Service no J2EE: Codificação da classe que implementa os serviços. Compilação desta classe. Empacotamento dos arquivos/recursos em um pacote WAR. Disponibilização do pacote WAR no servidor de aplicação. Durante a disponibilização, o servidor de aplicação se encarrega de gerar outros artefatos necessários. Diego Passos (UFF) Web Services (II) TEPIS II 5 / 36

6 JAX-WS: Desenvolvendo um Web Service (III) Há algumas restrições e requisitos no desenvolvimento de um Web Service com o JAX-WS: Os métodos de negócio (a serem providos pelo Web Service) devem ser públicos. Eles não podem ser estáticos, nem finais. Eles também devem ser anotados Há restrições em relação aos tipos de parâmetros e tipos de retorno destes métodos. Em síntese, eles devem poder ser convertidos para tipos representáveis no SOAP. O JAX-WS provê uma série de conversões automáticas para os tipos mais comuns (Strings, inteiros, valores reais,... ). Tipos mais complexos (como classes definidas pelo usuário, por exemplo) podem ser usados também. Mas requerem a especificação de regras de conversão. Veremos mais detalhes sobre isso ainda neste curso. Diego Passos (UFF) Web Services (II) TEPIS II 6 / 36

7 JAX-WS: Desenvolvendo um Web Service (IV) Continuação das restrições... A classe que implementa o Web Service não pode ser declarada como final ou abstract. Ela também precisa declarar um construtor público padrão (sem argumentos). A classe não pode declarar um método finalize. A classe pode declarar métodos com as Similares às anotações das EJBs. Servem para manipulação do ciclo de vida. Diego Passos (UFF) Web Services (II) TEPIS II 7 / 36

8 JAX-WS: Exemplo de Código de um Web Service package helloservice.endpoint; import javax.jws.webservice; import public class Hello { private String message = new String("Hello, "); public void Hello() { } public String sayhello(string name) { return message + name + "."; } Exemplo bastante simples. Não especificamos uma interface. Apenas uma operação exportada: sayhello(). Diego Passos (UFF) Web Services (II) TEPIS II 8 / 36

9 JAX-WS: Montagem e Disponibilização Um Web Service deve ser empacotado como um módulo web do J2EE. Pacote WAR. Contendo as classes que implementam o Web Service. Assim como outros tipos de componentes, o processo de disponibilização pode variar entre servidores de aplicação diferentes. Mas é interessante notar que o servidor se encarrega de gerar artefatos necessários ao uso do Web Service. Exemplo (com Glassfish): pacote chamado WebService1.war com a classe Hello do exemplo anterior: exibe informações do Web Service. exibe o arquivo WSDL gerado automaticamente. Versão exibe XML Schema gerado automaticamente. Usado nas definições de tipo do WSDL. Diego Passos (UFF) Web Services (II) TEPIS II 9 / 36

10 JAX-WS: Artefatos Gerados Exemplo de página de informações do Web Service: Web Services Endpoint Information Service { Name: /}HelloService Port Name: { /}HelloPort Address: WSDL: /WebService1/HelloService /WebService1 /HelloService?wsdl Implementation helloservice.endpoint.hello class: Diego Passos (UFF) Web Services (II) TEPIS II 10 / 36

11 JAX-WS: Artefatos Gerados (II) Exemplo de arquivo WSDL gerado automaticamente (trechos). <?xml version= 1.0 encoding= UTF-8?> <definitions> <types> <xsd:schema> <xsd:import namespace=" schemalocation=" </xsd:schema> </types>... <message name="sayhello"> <part name="parameters" element="tns:sayhello"/> </message> <message name="sayhelloresponse"> <part name="parameters" element="tns:sayhelloresponse"/> </message> <porttype name="hello">... <operation name="sayhello"> <input wsam:action=" message="tns:sayhello"/> <output wsam:action=" message="tns:sayhelloresponse"/> </operation> </porttype> <binding name="helloportbinding" type="tns:hello">... </binding> <service name="helloservice"> <port name="helloport" binding="tns:helloportbinding"> <soap:address location=" </port> </service> </definitions> Diego Passos (UFF) Web Services (II) TEPIS II 11 / 36

12 JAX-WS: Artefatos Gerados (III) Exemplo de arquivo XML Schema gerado automaticamente (trechos). <?xml version= 1.0 encoding= UTF-8?> <xs:schema xmlns:tns=" xmlns:xs=" version="1.0" targetnamespace=" <xs:element name="hello" type="tns:hello"/> <xs:element name="helloresponse" type="tns:helloresponse"/> <xs:element name="sayhello" type="tns:sayhello"/> <xs:element name="sayhelloresponse" type="tns:sayhelloresponse"/> <xs:complextype name="sayhello"> <xs:sequence> <xs:element name="arg0" type="xs:string" minoccurs="0"/> </xs:sequence> </xs:complextype> <xs:complextype name="sayhelloresponse"> <xs:sequence> <xs:element name="return" type="xs:string" minoccurs="0"/> </xs:sequence> </xs:complextype>... </xs:schema> Diego Passos (UFF) Web Services (II) TEPIS II 12 / 36

13 JAX-WS: Testando Serviço Nas versões mais recentes do Glassfish é possível testar um endpoint Web Service sem um cliente específico. Utilizando um browser comum, pode-se acessar uma URL especial. No serviço de exemplo dos últimos slides O servidor de aplicação gera uma página que lista os métodos disponíveis no serviço. Interface permite especificar valores para os parâmetros e executar métodos. Diego Passos (UFF) Web Services (II) TEPIS II 13 / 36

14 JAX-WS: Testando Serviço (II) sayhello Method invocation Method parameter(s) Type Value java.lang.string Diego Method returned java.lang.string : "Hello, Diego." SOAP Request <?xml version="1.0" encoding="utf-8"?><s:envelope xmlns:s=" xmlns:soap-env=" <SOAP-ENV:Header/> <S:Body> <ns2:sayhello xmlns:ns2=" <arg0>diego</arg0> </ns2:sayhello> </S:Body> </S:Envelope> SOAP Response <?xml version="1.0" encoding="utf-8"?><s:envelope xmlns:s=" xmlns:soap-env=" <SOAP-ENV:Header/> <S:Body> <ns2:sayhelloresponse xmlns:ns2=" <return>hello, Diego.</return> </ns2:sayhelloresponse> </S:Body> </S:Envelope> Diego Passos (UFF) Web Services (II) TEPIS II 14 / 36

15 JAX-WS: Aplicações Cliente A API JAX-WS também pode ser usada para construir clientes de Big Web Services. Para isso, o cliente precisa, de alguma forma, conhecer as operações disponíveis no Web Service. Ao menos aquelas que deseja utilizar. Este conhecimento pode ser realizado de várias formas: Proxy estático. Proxy dinâmico. Invocação dinâmica de interface (DII). Diego Passos (UFF) Web Services (II) TEPIS II 15 / 36

16 JAX-WS: Proxy Estático No proxy estático, o cliente utiliza o Web Service através da manipulação de objetos locais. Mais que isso, estes objetos são instâncias de classes previamente geradas, incorporadas em tempo de compilação ao código do cliente. Estas classes representam os recursos descritos no arquivo WSDL do Web Service. Manipulações destes objetos locais resultam em envio (e, possivelmente, recebimento) de mensagens para o Web Service. Isto, no entanto, é transparente para o cliente. Do seu ponto de vista, é como se estes objetos implementassem, localmente, os serviços. Diego Passos (UFF) Web Services (II) TEPIS II 16 / 36

17 JAX-WS: Proxy Estático (II) O primeiro passo para utilizar um proxy estático é gerar as classes necessárias. O próprio JDK distribuído pela Sun possui um utilitário para isso: o wsimport. Recebe como argumento um arquivo (ou URL) do tipo WSDL. Criar uma série de classes. Estas classes devem ser usadas no código do cliente. Diego Passos (UFF) Web Services (II) TEPIS II 17 / 36

18 JAX-WS: Proxy Estático (III) Exemplo de código de cliente de um Web Service: import helloservice.endpoint.helloservice; import javax.xml.ws.webserviceref; public class HelloAppClient { private static HelloService service; /** args the command line arguments */ public static void main(string[] args) { service = new HelloService(); System.out.println(sayHello("world")); } } private static String sayhello(java.lang.string arg0) { helloservice.endpoint.hello port = service.gethelloport(); return port.sayhello(arg0); } A classe helloservice.endpoint.helloservice é uma das geradas pelo wsimport. Diego Passos (UFF) Web Services (II) TEPIS II 18 / 36

19 JAX-WS: Proxy Estático (IV) Declaramos um atributo do tipo HelloService. Este atributo é instanciado no método main(). private static HelloService service;... public static void main(string[] args) { service = new HelloService();... Este objeto representa o serviço disponibilizado pelo Web Service. Note que em nenhum momento referenciamos o arquivo WSDL ou o endereço do Web Service. Estas informações estão incluídas na classe HelloService. Diego Passos (UFF) Web Services (II) TEPIS II 19 / 36

20 JAX-WS: Proxy Estático (IV) Outra parte relevante do código é a utilização do método gethelloport(). Ele retorna, neste caso, um objeto do tipo Hello que age como um proxy para o serviço. helloservice.endpoint.hello port = service.gethelloport(); return port.sayhello(arg0); Este objeto tem a mesma interface da classe Hello que usamos para implementar o Web Service. Ao menos em relação às operações exportadas. Utilizamos os métodos exportados pelo Web Service como se estes fossem locais do objeto Hello. Implicitamente, o código no proxy gera mensagens SOAP, recebe as respostas, as interpreta e retorna os valores de retorno. Diego Passos (UFF) Web Services (II) TEPIS II 20 / 36

21 JAX-WS: Proxy Dinâmico A ideia do proxy dinâmico é bem parecida com a do proxy estático. Ainda usaremos objetos locais que se servirão de proxy para o objeto que implementa o Web Service. A diferença é que não utilizaremos os artefatos previamente criados a partir do arquivo WSDL. Ao invés disso, pediremos à API do JAX-WS que crie estes objetos dinamicamente para nós. Note que, de alguma forma, ainda precisaremos saber qual a interface (métodos e assinaturas) para utilizar os serviços. Diego Passos (UFF) Web Services (II) TEPIS II 21 / 36

22 JAX-WS: Proxy Dinâmico (II) Exemplo de código: import javax.xml.rpc.servicefactory; import javax.xml.rpc.service;... interface MyHello { public String sayhello(string msg); }... public void invokeservice() { String msg = "teste"; ServiceFactory sfactory = ServiceFactory.newInstance(); Service service = sfactory.createservice(new URL(" new QName(" MyHello hello = (MyHello) service.getport(myhello.class); String resp = hello.sayhello(msg);... A interface MyHello só é criada para sabermos as assinaturas dos métodos do Web Service. Em relação ao código do proxy estático, substituimos o uso das classes geradas pelo wsimport por classes genéricas da própria API. Ainda temos que indicar a localização do arquivo WSDL. A partir dele a API constrói dinamicamente o proxy. Diego Passos (UFF) Web Services (II) TEPIS II 22 / 36

23 JAX-WS: Proxy Dinâmico (III) A abordagem de proxy dinâmico fazia mais sentido há alguns anos atrás. A geração dos artefatos necessários aos clientes era específica de cada servidor de aplicação e muitas vezes esses artefatos não eram portáveis. Hoje, isso deixou de ser um problema. Podemos gerar os artefatos a partir de qualquer arquivo WSDL. Mesmo para Web Services que sequer são implementados em Java. Diego Passos (UFF) Web Services (II) TEPIS II 23 / 36

24 JAX-WS: Invocação Dinâmica de Interface Os dois métodos anteriores assumiam que, de alguma forma, o cliente tem acesso ao arquivo WSDL do Web Service. A invocação dinâmica de interface (DII) é o método a ser usado quando este não é o caso. Por algum motivo, não temos acesso a um arquivo WSDL. Mesmo assim, conhecemos as operações disponibilizadas por um Web Service. Sabemos seus nomes, argumentos e tipos de retorno. Neste caso, não teremos a figura do proxy (estático ou dinâmico). Ao invés disso, iremos configurar no próprio código do cliente as assinaturas das operações. Diego Passos (UFF) Web Services (II) TEPIS II 24 / 36

25 JAX-WS: Invocação Dinâmica de Interface (II) O código de um cliente DII é similar ao caso do proxy dinâmico, no sentido de que criaremos objetos do tipo Service e ServiceFactory. No entanto, ao invés de passarmos uma referência para o arquivo WSDL (que não temos), criaremos um objeto genérico do tipo Call. Este objeto representa uma chamada remota genérica. Podemos configurá-la programaticamente, especificando parâmetros, tipos de retorno, etc. Uma vez configurado, o objeto Call tem um método invoke() que chama a operação remota. Diego Passos (UFF) Web Services (II) TEPIS II 25 / 36

26 JAX-WS: Invocação Dinâmica de Interface (III) Exemplo de código: final String endpoint = " final String servicename = "EchoService"; final String portname = "echo"; final String operationname = "echo"; final String servicens = " final String xsdns = " final String jaxrpcns = " QName serviceqname = new QName(serviceNS, servicename); QName portqname = new QName(serviceNS, portname); QName operationqname = new QName(serviceNS, operationname); try { ServiceFactory factory = ServiceFactory.newInstance(); Service service = factory.createservice(serviceqname); Call call = service.createcall(portqname); call.settargetendpointaddress(endpoint); call.setreturntype(new QName(xsdNS, "string")); call.setoperationname(operationqname); call.addparameter("message", new QName(xsdNS, "string"), ParameterMode.IN); String msg = "Hi there"; Object[] opparams = {msg}; String resp = (String)call.invoke(opParams); System.out.println("Sent: \"" + msg + "\", got response \"" + resp + "\""); } catch (ServiceException se) { System.err.println("Service generated an error: " + se.getmessage()); } catch (RemoteException re) { System.err.println("Communication error: " + re.getmessage()); } Diego Passos (UFF) Web Services (II) TEPIS II 26 / 36

27 JAX-WS: Invocação Dinâmica de Interface (IV) Uma vez instanciado o objeto Call, utilizamos seus métodos para especificar como o Web Service é acessado. Na verdade, as informações são de uma operação específica. No exemplo anterior, configuramos as seguintes informações: O nome (qualificado) da porta. O endpoint do serviço. O tipo de retorno (com namespace). O nome da operação. A lista de parâmetros com tipos (neste caso, há um único parâmetro). Call call = service.createcall(portqname); call.settargetendpointaddress(endpoint); call.setreturntype(new QName(xsdNS, "string")); call.setoperationname(operationqname); call.addparameter("message", new QName(xsdNS, "string"), ParameterMode.IN); Diego Passos (UFF) Web Services (II) TEPIS II 27 / 36

28 JAX-WS: Invocação Dinâmica de Interface (V) Uma vez configurado, o objeto Call pode ser usado para efetivamente executar a operação. Para isso, usa-se o método invoke(). Parâmetro único: vetor de Object. Valores passados como parâmetros para a operação. String msg = "Hi there"; Object[] opparams = {msg}; String resp = (String)call.invoke(opParams); Diego Passos (UFF) Web Services (II) TEPIS II 28 / 36

29 JAX-WS: Tipos Suportados Em seu arquivo WSDL, Web Service define suas operações. Isto inclui os tipos dos parâmetros de entrada e do valor de retorno. Estes tipos são definidos em termos de: Tipos básicos do XML. Tipos complexos definidos por um XML Schema. De toda forma, para usar os Web Services em Java, é preciso haver um mapeamento entre os tipos Java e os tipos esperados pelo Web Service. Como fazer isso? Diego Passos (UFF) Web Services (II) TEPIS II 29 / 36

30 JAX-WS: Tipos Suportados (II) Vamos ver o que foi feito nos exemplos anteriores. Cliente com Invocação Dinâmica de Interface: String msg = "Hi there"; Object[] opparams = {msg}; String resp = (String)call.invoke(opParams); Cliente com proxy estático: private static String sayhello(java.lang.string arg0) { helloservice.endpoint.hello port = service.gethelloport(); return port.sayhello(arg0); } Operação sayhello() espera receber uma xsd:string e retorna uma xsd:string Ambos tipos padrão do XML. Em ambos os clientes, passamos o parâmetro como uma String (tipo Java). E também recebemos a resposta desta forma. Diego Passos (UFF) Web Services (II) TEPIS II 30 / 36

31 JAX-WS: Tipos Suportados (III) Conclusão: nestes exemplos, houve uma conversão impĺıcita entre tipos Java e tipos XML. Esta conversão foi realizada pela própria API JAX-WS. A API segue regras de mapeamento pré-determinadas para realizar esta conversão. De fato, há uma tabela de mapeamento. Contanto que usemos apenas tipos que constam nesta tabela, não teremos dificuldade na interação entre Java e Web Services. Diego Passos (UFF) Web Services (II) TEPIS II 31 / 36

32 JAX-WS: Tipos Suportados (IV) Tabela de conversão: XML para Java. XML Java XML Java xsd:string java.lang.string xsd:integer java.math.biginteger xsd:int int xsd.long long xsd:short short xsd:decimal java.math.bigdecimal xsd:float float xsd:double double xsd:boolean boolean xsd:byte byte xsd:qname javax.xml.namespace.qname xsd:datetime javax.xml.datatype.xmlgregoriancalendar xsd:base64binary byte[] xsd:hexbinary byte[] xsd:unsignedint long xsd:unsignedshort int xsd:unsignedbyte short xsd:time javax.xml.datatype.xmlgregoriancalendar xsd:date javax.xml.datatype.xmlgregoriancalendar xsd:g javax.xml.datatype.xmlgregoriancalendar xsd:anysimpletype java.lang.object xsd:anysimpletype java.lang.string xsd:duration javax.xml.datatype.duration xsd:notation javax.xml.namespace.qname Diego Passos (UFF) Web Services (II) TEPIS II 32 / 36

33 JAX-WS: Tipos Suportados (V) Tabela de conversão: Java para XML. Java java.lang.string java.math.biginteger java.math.bigdecimal java.util.calendar java.util.date javax.xml.namespace.qname java.net.uri javax.xml.datatype.xmlgregoriancalendar javax.xml.datatype.duration java.lang.object java.awt.image javax.activation.datahandler javax.xml.transform.source java.util.uuid XML xs:string xs:integer xs:decimal xs:datetime xs:datetime xs:qname xs:string xs:anysimpletype xs:duration xs:anytype xs:base64binary xs:base64binary xs:base64binary xs:string Diego Passos (UFF) Web Services (II) TEPIS II 33 / 36

34 JAX-WS: Tipos Suportados (VI) Há ainda mapeamentos padrão para vetores (tipo XML Array). Por fim, é possível fazer mapeamentos automáticos para tipos complexos (tipo XML xsd:complextype). Neste caso, a API tenta realizar o mapeamento para uma Java Bean com o mesmo nome definido para o tipo. Atributos da Java Bean também devem corresponder aos elementos internos do tipo complexo. Note ainda que, caso o mapeamento automático não seja adequado, é possível estabelecer um mapeamento manual utilizando deployment descriptors. Fora do escopo do curso. Diego Passos (UFF) Web Services (II) TEPIS II 34 / 36

35 Próxima Aula RESTful Web Services: Visão geral. A API JAX-RS. Como escrever RESTful Web Services. Tipos de anotações utilizadas. Provedores de Entidades. Recebendo parâmetros. Informações contextuais. Diego Passos (UFF) Web Services (II) TEPIS II 35 / 36

36 Referências Conteúdo e exemplos baseados em: Tutorial da Oracle sobre Web Services. Jim Farley e William Crawford. Java Enterprise in a Nutshell: A Practical Guide. Terceira edição. Capítulo 12. Diego Passos (UFF) Web Services (II) TEPIS II 36 / 36

Web Services utilizando JAX-WS

Web Services utilizando JAX-WS Web Services utilizando JAX-WS JAX-WS Facilitar o uso da API JAX-RPC e do modelo de implantação Anotações baseados em JSR-181 Exemplo Básico: Anotações: @WebService @WebMethod @WebParam @WebResult Exemplo

Leia mais

Web Services no JEE 7. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Web Services no JEE 7. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Web Services no JEE 7 Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) O que são Web Services? Web services are client and server applications that communicate over the World Wide Web's (WWW) HyperText

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

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

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

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos) Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private

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

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que

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

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21 Sistemas de Objetos Distribuídos Primeira Aplicação Java ORB Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosPrimeira Aplicação

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

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

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

Aula 5: J2EE Application Assembly Model

Aula 5: J2EE Application Assembly Model Aula 5: J2EE Application Assembly Model Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) J2EE Application Assembly Model TEPIS II 1 / 31

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

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

Manual de Integração WebService

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

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Anotações do JAX-WS. Para Usuários de Transição

Anotações do JAX-WS. Para Usuários de Transição Anotações do JAXWS A JAXWS (Java API for XMLBased Web Services) depende do uso de anotações para especificar metadados associados às implementações de serviços da Web e para simplificar o desenvolvimento

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

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

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

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

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

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

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

Enterprise Java Beans (I)

Enterprise Java Beans (I) Enterprise Java Beans (I) Professor: Diego Passos UFF dpassos@ic.uff.br Baseado no material original cedido pelo Professor Carlos Bazilio Java Beans Conceito já discutido na disciplina. São classes Java

Leia mais

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

Web Services REST. 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

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

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes

Leia mais

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados ALGORITMOS Professor: Diego Oliveira Aula 06 - Tipos Primitivos de Dados Netbeans Para testar nossos exemplos criaremos uma classe no Netbeans Nesta disciplina não será visto nada de orientação a objetos,

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

Objetos e Componentes Distribuídos: EJB e CORBA

Objetos e Componentes Distribuídos: EJB e CORBA : EJB e CORBA 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

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

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

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1

Leia mais

Instituto de Informática Estrutura de Dados II

Instituto de Informática Estrutura de Dados II Instituto de Informática Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Programação em Java q O

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

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

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

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

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

Aula 1: Apresentação, Computação Corporativa

Aula 1: Apresentação, Computação Corporativa Aula 1: Apresentação, Computação Corporativa Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;

Leia mais

Java Standard Edition (JSE)

Java Standard Edition (JSE) Java Standard Edition (JSE) Capítulo 05. Encapsulamento, Modificadores de acesso e atributos de classe Esp. Márcio Palheta MSN: marcio.palheta@hotmail.com 1 Agenda Revisão da aula anterior; Motivação Organização;

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 4 - Invocação de procedimentos e de métodos remotos Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A estrutura da apresentação

Leia mais

Prática em Laboratório N.01 Criando um Serviço Web via Console

Prática em Laboratório N.01 Criando um Serviço Web via Console Prática em Laboratório N.01 Criando um Serviço Web via Console O objetivo criar um serviço Web via console usando apenas um editor de texto. Obtenha os arquivos da Prática N.01 Você deve recuperar os arquivos

Leia mais

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução Grupo RPC Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC. const

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Array em Java. Figura 1 - Exemplo de um array de inteiros

Array em Java. Figura 1 - Exemplo de um array de inteiros Array em Java 1. Objetivos Nesta lição, abordaremos Array em Java. Primeiro, definiremos o que é array e, então, discutiremos como declará-los e usá-los. Ao final desta lição, o estudante será capaz de:

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

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes - Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes

Leia mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Herança. Prof. Fernando V. Paulovich  23 de agosto de 2010 Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

Leia mais

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Construtores e Especificadores de Acesso

Construtores e Especificadores de Acesso Construtores e Especificadores de Acesso Professora: Fátima L. S. Nunes 1 1 1 Orientação a Objetos Conceitos do Paradigma de Orientação a Objetos já vistos: Classes atributos e métodos Objetos instanciação

Leia mais

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

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

Interfaces e Classes Abstratas

Interfaces e Classes Abstratas Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos

Leia mais

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

Leia mais

Curso Superior de Banco de Dados

Curso Superior de Banco de Dados Curso Superior de Banco de Dados Disciplina: Spring Prof. Emanuel Mineda Carneiro emanuel.mineda@fatec.sp.gov.br São José dos Campos - SP Dependências do Jeito Antigo Injeção de Dependência Inversão de

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

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual

Leia mais

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para

Leia mais

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java. Pacotes e Jar 1 Pacotes p Usamos pacotes em java para organizar as classes semelhantes. p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

SCS-Java - Tutorial - Básico

SCS-Java - Tutorial - Básico SCS-Java - Tutorial - Básico C. Augusto, R. Cerqueira Tecgraf Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) rcerq@inf.puc-rio.br 1 Introdução Este documento é um tutorial básico sobre a

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Objetos e Componentes Distribuídos: EJB

Objetos e Componentes Distribuídos: EJB : EJB 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

Leia mais

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Subtipagem e Coringas Lista é subtipo de Lista para qualquer T Não podemos chamar métodos em Lista

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

Interfaces e Classes Internas

Interfaces e Classes Internas e Classes Internas SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Linguagem de Programação IV Introdução

Linguagem de Programação IV Introdução Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação

Leia mais

Comunicação Objetos Distribuídos e RMI

Comunicação Objetos Distribuídos e RMI Sistemas Distribuídos Comunicação Objetos Distribuídos e RMI - Parte 2 - Instituto de Informática UFG Verão 2005 Baseado em: Tanenbaum, Capítulo 2 Chamadas de Objetos: Chamadas Remotas e Chamadas Locais

Leia mais

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo Requisitos de Ambiente: Desenvolvido por: Fabrício Alves e Daniela Claro contato: fabufbc@dcc.ufba.br, dclaro@ufba.br Java 1.6

Leia mais

Definição de classes em Java (introdução) PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Definição de classes em Java (introdução) PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Definição de classes em Java (introdução) PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Resumo Introdução à implementação de classes Java declaração de campos de

Leia mais

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores

Leia mais

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de

Leia mais