Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.1/26



Documentos relacionados
Palavras Reservadas da Linguagem Java

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

Orientação a Objetos (em Java)

LINGUAGEM JAVA - RESUMO

Orientação a Objetos (em Java)

Orientação a Objetos

Sistemas Distribuídos Capítulo 4 - Aula 5

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads.

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Linguagem de Programação III

Programação Orientada a Objetos

Herança. Prof. Leonardo Barreto Campos 1

Sistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Threads. Leonardo Gresta Paulino Murta

Programação Orientada a Objeto Java

Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC, Programação em Comunicações

Programação Orientada a Objetos

Programação em JAVA. Subtítulo

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio

Computação Paralela. ParAspJ Aplicações Paralelas em Java (parte 1) João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Programação Orientada a Objetos SANTOS, Rafael (PLT)

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

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

O problema da herança múltipla e o uso de Interfaces. Herança múltipla. Interfaces. Definindo Interfaces 30/11/2016

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: HTTP porto 80

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Threads. Linguagem Java. Adenilso da Silva Simão 17/05/05

Conceitos e Implementação de um Sistema Concorrente Orientado a Objeto

Linguagem de Programação II Implementação

Programação Java. Tratamento de Exceções

Montadores e Compiladores

Estrutura de repetição do/while

Programação por Objectos. Java

Linux e Computação Científica

Programação WEB I Funções

GUIA DE ESTILO DE PROGRAMAÇÃO EM JAVA

Java 2 Standard Edition Classes internas

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

Threads. O que é uma Thread? Paralelismo

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

Criação de métodos em Java

Técnicas de Programação para a Web. Luiz Cláudio Silva. Novembro de Apresentação

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Cliente. Servidor. Núcleo do ORB. Depende do adaptador Interface proprietária. Independe de ORB Depende das definições IDL.

2. Tipos Abstratos de Dados

Programação de Computadores II TCC /Turma A 1

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

Principais conceitos de CORBA

Paradigmas de Programação. Genéricos

5 Trabalhos Relacionados

Reader e Writer para streams de caracteres (texto).

Elementos básico de uma rede Samba - Local Master Browser

Interface gráfica em Java: Swing e SWT

Tratamento de Exceções

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

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

Programação de Computadores I. Linguagem C Função

Passagens de Mensagens

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

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

Padrões de Projeto. Factory Method

Classe Abstrata e Interface

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Formação WEB com PHP. Subtítulo

9 Classes Abstractas e Interfaces

JAVA TRATAMENTO DE EXCEÇÕES


Arquiteturas para Sistemas Distribuídos I

Algoritmos e Programação II

Aula 6: Sobrecarga de Operadores e Herança

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

JAVA. Professor: Bruno Toledo

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Análise de Programação

Programação de Computadores II

Capítulo 4 - Polimorfismo

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204

1.1. Definição do Problema

Programação Estruturada e Orientada a Objetos

Exemplo de Cliente e de Servidor CORBA Escritos em C++ Voltando ao Nosso Exemplo

Listas de controle de acesso e fragmentos IP

Aula 10 Polimorfismo. Prof. Jefersson Alex dos Santos. Baseado em:

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

Linux Essentials. Network Configuration

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Se você omitir :6789, o browser irá assumir a porta 80, que, provavelmente, não terá nenhum servidor à escuta.

TRATAMENTO DE EXCEÇÕES

Interfaces e Classes Internas

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

Transcrição:

Sistemas de Objetos Distribuídos Revisão Java e Java ORBs Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.1/26

Contruções Básicas Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.2/26

Interfaces Interfaces Java são semelhantes a interfaces IDL Interfaces Java são implementadas por classes Java enquanto interfaces IDL podem ser implementadas por várias linguagens de programação Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.3/26

Herança de Classes Java suporta apenas herança simples para classes Motivo: evitar inconsistencias nas classes derivadas. Por exemplo, herança diamante: se as duas classes implementarem o método m() não é claro a qual classe base o método m() da classe derivada refere-se Outras linguagens como C++ e Eiffel permitem herança múltipla e possuem mecanismos através dos quais pode-se selecionar a implementação do método a ser utilizada class Derived extends Base {... } Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.4/26

Herança de Classes Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.5/26

Herança de Interfaces Declaração: extends Herda-se apenas definições e não código Interfaces podem herdar de várias interfaces Dado que não há herança de código, herança múltipla para interfaces não gera problemas IDL também permite herança múltipla de interfaces. O mapeamento para Java é bem natural A relação entre classes e interfaces é declarada com a palavra-chave implements Uma classe pode implementar mais de uma interface e ainda herdar de uma outra classe base Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.6/26

Herança de Interfaces interface Derived extends Left, Right {... } class Car extends Vehicle implements Observable, Derived {... } Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.7/26

Métodos e Excessões A semântica de passagem de parâmetros é passagem por valor O retorno de resultados é recebido: Como resultado do método Como campos de uma excessão. Neste caso, o receptor deve prover uma cláusula catch. Esta forma NÃO deve ser utilizada para retornar resultados regulares. O método chamado pode ter efeito nos parâmetros passados caso eles sejam referencias a um objeto Neste caso, dado que a referência denotará o mesmo objeto, a chamada de métodos nos objetos passados como parâmetro pode modificar o estado dos mesmos. Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.8/26

Definição Excessão class MyException extends Exception { public int value; } MyException (int i) { value = i; } Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.9/26

Disparo Excessão int MyMethod (boolean flag) throws MyException { if (flag) throw new MyException (1); else return 1; } Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.10/26

Pacotes Mecanismo para escopo de nomes que permite: agrupar um grupo de classes e interfaces relacionadas nomes iguais sejam utilizados em escopos diferentes, distiguindo-os através de qualificadores para os nomes declarados através da palavra-chave package o nome do pacote deve refletir o diretório onde os arquivos contendo o código fonte Java é localizado nomes de pacotes começam com letras minúsculas, enquanto classes com maiúsculas. Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.11/26

Pacotes // outerpackage/myclass.java: package outerpackage; public class MyClass { } // outerpackage/innerpackage/myclass.java: package outerpackage.innerpackage; public class MyClass { public outerpackage.myclass my_object1; public MyClass my_object2; } // outerpackage/innerpackage/myotherclass.java: package outerpackage.innerpackage; public class MyOtherClass { public MyClass my_other_object1; public outerpackage.innerpackage.myclass my_other_object2; } Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.12/26

Pacotes Disponibilizam um controle de acesso a interfaces e classes Se não fosse utilizado o modificador public na definição do campo MyOtherClass.my_other_object1, um código externo ao pacote não teria acesso a este campo Pode-se aninhar classes ou interfaces Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.13/26

Pacotes package outerpackage.innerpackage; public class Outer { public static class Inner {... } } Nome qualificado: outerpackage.innerpackage.outer.inner Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.14/26

Threads Java permite que objetos tenham sua própria thread de execução Isto é provido pelo pacote java.lang através da classe Thread Este pacete disponibiliza a interface Runnable que possui o método: public void run (); Java ORBs são tipicamente multithreaded. Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.15/26

Applets Objetos intanciados a partir de classes que extendem java.applet.applet As classes e interfaces do pacote java.applet permitem que o código da applet seja executado em browsers Web O código da applet é ancorado em documentos HTML Devido a estrutura de hierarquia de applets, uma applet contêm a base para uma GUI através da classe herdada java.awt.panel. Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.16/26

Applets Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.17/26

applet sandbox Limitaçãoes: 1. applets não podem acessar recursos locais, como o sistema de arquivos 2. applets não podem executar código nativo da máquina a não ser com permissão explícita de seu usuário 3. applets podem apenas estabelecer conexões sockets com a máquina da qual foram baixadas (verificação através de endereço IP). Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.18/26

Terminologia Java ORB Objeto: usamos o termo objeto CORBA quando a interface for definida em OMG IDL e objeto Java quando a interface for definida através de declarações Java Servente: um papel assumido por um objeto Java quando ele encarna um objeto CORBA. Cliente: papel assumido por um programa quando realiza invocações a um objeto CORBA. Servidor: papel desempenhado por um programa quando disponibiliza um objeto para acesso por um cliente. Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.19/26

lientes e Servidores como Aplicações Java Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.20/26

lientes e Servidores como Aplicações Java Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.21/26

Clientes como Applets Java Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.22/26

Clientes como Applets Java Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.23/26

Gateway IIOP Gateway: Contorna as limitações impostas pelo applet sandbox com relação ao acesso a servidores CORBA, restaurando o conceito de transparência de localização. Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.24/26

Servidores como Applets Java Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.25/26

Servidores como Applets Java Objetos não podem ser persistentes devido ao applet sandbox Clientes destes objetos devem utilizar o IIOP gateway a não ser que estejam localizados na máquina através da qual a applet foi baixada Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.26/26