Introdução
!
"
"
1
Java Remote Method Invocation
#
$
%
&
"
!
'
()*
+
,
Arquitetura de três camadas
$
2) 3.4
$
2) 354
/
.
/
-
&
-
()*+
0
01,
2
Arquitetura do RMI
6
.
(#!
7
!
!
8 rmic HelloTime
HelloTime_Stub.class
HelloTime_Skel.class
Arquitetura do RMI
-
&
+((9
,
(
:
;
<
"
!
%
&
;
)
=
=
"
((9!
<
!
*
!
>
,
3
Arquitetura do RMI
-
%
%
8
6
6
#
!
0
+
"
,
0
+
0()*
?
@,
0
!
!
!
A%%#
B
Publicação e recuperação de
objetos
(
@
)
*
+
,
@
@CDDE
66
9
66
(
@0
(
@+CDDE,
#
4
Funcionamento
Funcionamento
5
Stubs e Skeletons
;
@
!
<
Stubs e Skeletons: geração
6
Serialização
Criação de um objeto remoto
F0
-
"
G
%
H
!
0(
0
0
0
0(
8
01I
A
%
*
% +, < B (
@
A +
(
8
I
, < B (
J
8
I
K
7
Criação de um objeto remoto
C0 8
*
0
0;
(
(
#
!
8
L
"
Implementação do Objeto
Remoto
0
0
01I
0
A
A
%
0;
(
%
;
+, < B (
%
@
I
+, < B (
0
%
(
8
8
) +,I
A
%
*J
JK
J
K
@
A +
B
+M
A
, < B (
8
'MN
NM
O
O
OA B
J
@
M
,I
K
K
8
Criação de um objeto remoto
P0 *
public static void main(String[] args) throws
Exception {
System.setSecurityManager(null);
HelloTime ht = new HelloTime();
Naming.bind(“//XPTO/HelloTime", ht);
//host:porta/id do registro
System.out.println("Objeto HelloTime publicado");
}
Criação de um objeto remoto
Q0 A
A
E0 *
S0 8
A
%
%
%
R
R
+000,
0
0
@
9
Criação do cliente
C0
G
8
P0
; "
F0
*
&
0
0
-
+
01I
0
,
@
01I
A%J
+
@
0
@
)
A % *<I
< V +A % *
,W
TU
, < B 8
+ B()*
@
)
0
+M
66
<
J
+,,I
PDDD6A
%
M
,I
K
K
Carregando classes dinamicamente
()*
%
java.rmi.server.codebaseV<
O
66)@A 6)@G 6
@' -9. #.%A
'
@
10
Características do RMI
9
#
$
"
$
:
3G
4
9
%-#>*
#
Outras arquiteturas...
(##
<
- (5.
*
G9
X
:
G- )
?
%-#>*
#
A%%#
0W8%(
8
'
"
11
Referências
TFU3$ (
) < *
+()*
,A
)
@
< 66
0
0
6
6 6 6
TCU 3$
(
) < *
)
@
'$
C 8F0Q0CG
< 66
0
0
6 C 6F0Q0C6
6
6 6
#
4' ;W
4' ;W
6
% -0<
TPU3. PC <
4'
< 66BBB0
TQU3G@
< 66
0
-
$
B
-
8
B
0
B
0
'* 'CDDC
6$ *
*
6 0<
6 C 6F0Q0C6
()*
4' ;W
6
6
6
0< Y
12
Download

RMI