Transparências

Propaganda
!
%
&
%
'
"#
$
$
& (
)
%
*
+
)
!
"
#
!
&&&# #&
!
&&&# )
#
!
&&&#
!
&&&#
!
&&&#
!
&&&#
$
#
# ' ( ! '%
!#
#
#
#
#
,
)
#
.
/
."
0
1
',
,
'
*
44 5,0
6
.'
+ . -#
7
6
$ . 2 '. 3
0
1
,
7
1
,
8
9
$ .
'
0
# 0
'#
-
'
; '
'
.
6<
*
;' jidl;
5, 0
=)
jidl
? ',
' '
=
' 0
>
'
7 '
javac.
:
'
*
+
$
,
8
A
, ' BC!
D
0
2
3
0
@
'
& (
;
='
6
'$ '
!
=
' '
F
0
F '
? , 6<0
7
$G
'
;
'
'
F
'
'=
;
,' 0
$G
?
,'
H ,' 0
,'
F '
'
#
E
'
& (
;
6
'$ '
='
F
0
F '
? , 6<0
$G
$G
'
' '
?
'
F '
H , 'J
'
,'
'
,
? ,0
#
I
-
'
'
L ; '
,7 '
3
$
%/
*0 *
1
?,
!'0
2
3
$
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
Converte o objeto hello
String ref = orb.object_to_string(hello);
para uma string
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
Servidor fica aguardando por requisições
orb.run();
de clientes
} //fim do método main
} //fim da classe Server
public class Hello_impl extends HelloPOA
{
public void say_hello()
{
System.out.println("Hello world!");
}
}
Implementação do método say_hello()
'
*
+
,
5
)
package hello;
public class Client
{
public static void main(String args[])
{
org.omg.CORBA.Object obj = null;
int status = 0;
org.omg.CORBA.ORB orb = null;
orb = org.omg.CORBA.ORB.init(args, props);
Inicializa o ORB
Obtém a Ref. do Objeto remoto
a partir de uma string
armazenada em arquivo
try{
String refFile = "Hello.ref";
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);
// Chama o metodo remoto
hello.say_hello();
Converte a Referência para
um objeto do tipo Hello
Realiza a chamada ao método
say_hello no objeto remoto
System.exit(status);
} //fim método main
} //fim classe Client
'
*
(
5/
3
/%
interface Agenda
{
string consultaNome(in string nome);
boolean insereItem(in string nome, in string fone);
long statusMem();
void listaItens();
};
-
E
'
*
(
5
)
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
armazenada em arquivo
String refFile = "Agenda.ref";
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
Agenda agenda = AgendaHelper.narrow(obj);
res = agenda.insereItem(nome, fone);
if (!res) System.out.println("Agenda cheia!");
Converte a Referência para
um objeto do tipo Agenda
agenda.listaItens();
fone = agenda.consultaNome(nome);
if (fone.equals("0"))
System.out.println("Nao encontrado!");
else
System.out.println("O telefone e': " + fone);
System.out.println("Registros na memoria: " + agenda.statusMem());
return 0;
} //fim do método main
} //fim da classe Agenda_cli
@
I
'
*
(
5
)
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
'
*
(
5
)
// 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
'
*
(
5
)
public class Agenda_impl extends AgendaPOA
{
final int MAX = 20;
private class Agenda
{
String nome;
Implementação da classe e métodos
String fone;
que serão invocados pelo cliente
};
private Agenda [] ag;
private int numItens;
public Agenda_impl()
{
numItens = 0;
ag = new Agenda[MAX];
for (int i=0; i < MAX; i++)
ag[i] = new Agenda();
}
K
'
*
(
5
)
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
'
/
'
M'
$G
'
' '
'
H ,' ' J
F
'
F
0
' ',
=
#6
. = ? , ###
Referência de Objeto
IDL:CCS:1.0
lasdix:2133
lasdix:2133
controller:C1
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
Download