%&!"# $$ % &( )
! "#$# %! &&&##&# (! %! &&&#)#!##! &&&## *! &&&## +)! &&&##,)! &&&##. /."0 1$.2.3,,0 *445,0 6.1,70 +.-# 71,$.#0 6 8 9# -
. ; 6<; jidl; *5,0 jidl =)=>7?,0 javac. : * +, $8 A,BC! 230 D0 @
&( -!= ;=F0 6F, $?,6<0 7$GFH,0 $G=;F,0 ;?,# E &( - ;=F0 6F, $?,6<0 $GF $GH,J,?,0?# I -
L;,7?,!0 %/*0* 3$ 1 23$ 1 4)1 *./ $1$ K * +, 5 ) #include hello_skel.h package hello; public class Server public static void main(string args[]) orb = org.omg.corba.orb.init(args, props); Inicializa o ORB Inicializa o Adaptador de Objetos // Resolve Root POA org.omg.portableserver.poa rootpoa = org.omg.portableserver.poahelper.narrow( orb.resolve_initial_references("rootpoa")); org.omg.portableserver.poamanager manager = rootpoa.the_poamanager(); manager.activate(); // Cria o objeto Hello_impl helloimpl = new Hello_impl(); Hello hello = helloimpl._this(orb); :
* +, 5 ) // Grava a referencia do objeto em um arquivo String ref = orb.object_to_string(hello); String reffile = "Hello.ref"; java.io.fileoutputstream file = new java.io.fileoutputstream(reffile); java.io.printwriter out = new java.io.printwriter(file); out.println(ref); out.close(); // Executa o servidor orb.run(); //fim do método main //fim da classe Server Converte o objeto hello para uma string Servidor fica aguardando por requisições de clientes public class Hello_impl extends HelloPOA public void say_hello() System.out.println("Hello world!"); Implementação do método say_hello() package hello; * +, 5 ) public class Client public static void main(string args[]) org.omg.corba.object obj = null; int status = 0; org.omg.corba.orb orb = null; Inicializa o ORB orb = org.omg.corba.orb.init(args, props); Obtém a Ref. do Objeto remoto a partir de uma string try String reffile = "Hello.ref"; armazenada em arquivo BufferedReader in = new BufferedReader(new FileReader(refFile)); String ref = in.readline(); obj = orb.string_to_object(ref); @
* +, 5 ) // Converte para uma referencia ao objeto Hello Hello hello = HelloHelper.narrow(obj); Converte a Referência para um objeto do tipo Hello // Chama o metodo remoto hello.say_hello(); System.exit(status); //fim método main //fim classe Client Realiza a chamada ao método say_hello no objeto remoto * (5/3/% interface Agenda string consultanome(in string nome); boolean insereitem(in string nome, in string fone); long statusmem(); void listaitens(); ; - E
package agenda; public class Agenda_cli public static void main(string args[]) int status = 0; String input; String nome, fone; boolean res; Inicializa o ORB org.omg.corba.orb orb = null; org.omg.corba.object obj = null; orb = org.omg.corba.orb.init(args, props); Obtém a Ref. do Objeto remoto a partir de uma string String reffile = "Agenda.ref"; armazenada em arquivo BufferedReader in = new BufferedReader(new FileReader(refFile)); String ref = in.readline(); obj = orb.string_to_object(ref); : // Converte para uma referencia ao objeto Hello Agenda agenda = AgendaHelper.narrow(obj); res = agenda.insereitem(nome, fone); if (!res) System.out.println("Agenda cheia!"); agenda.listaitens(); fone = agenda.consultanome(nome); if (fone.equals("0")) System.out.println("Nao encontrado!"); else System.out.println("O telefone e: " + fone); Converte a Referência para um objeto do tipo Agenda System.out.println("Registros na memoria: " + agenda.statusmem()); return 0; //fim do método main //fim da classe Agenda_cli @ I
package agenda; public class Agenda_srv public static void main(string args[]) int status = 0; org.omg.corba.orb orb = null; Inicializa o ORB orb = org.omg.corba.orb.init(args, props); org.omg.portableserver.poa rootpoa = org.omg.portableserver.poahelper.narrow(orb.resolve_initial_references("rootpoa")); org.omg.portableserver.poamanager manager = rootpoa.the_poamanager(); manager.activate(); Inicializa o Adaptador de Objetos E // Cria o objeto Agenda_impl agendaimpl = new Agenda_impl(); Agenda agenda = agendaimpl._this(orb); Converte o objeto hello para uma string // Grava a referencia ao objeto em um arquivo String ref = orb.object_to_string(agenda); String reffile = "Agenda.ref"; java.io.fileoutputstream file = new java.io.fileoutputstream(reffile); java.io.printwriter out = new java.io.printwriter(file); out.println(ref); out.close(); // Executa o servidor orb.run(); System.exit(status); // fim do método main //fim da classe Agenda_srv Servidor fica aguardando por requisições de clientes I K
public class Agenda_impl extends AgendaPOA final int MAX = 20; private class Agenda String nome; String fone; ; private Agenda [] ag; private int numitens; Implementação da classe e métodos que serão invocados pelo cliente public Agenda_impl() numitens = 0; ag = new Agenda[MAX]; for (int i=0; i < MAX; i++) ag[i] = new Agenda(); K public String consultanome(string chave) public boolean insereitem(string nome, String fone) Implementação dos métodos que serão invocados pelo cliente public int statusmem() public void listaitens() //fim classe Agenda_impl
$GF /F0 M, H,J=#6.=?,### Referência de Objeto IDL:CCS:1.0 lasdix:2133 controller:c1 Informação utilizada pelo ORB e AO para localizar o objeto alvo. Informações necessárias para que um ORB estabeleça uma conexão com o servidor. Informação utilizada para localizar descrições da interface no Repositório de Interfaces