Introduzione . . . . 4
1. Architettura di Java Remote Method Invocation (RMI) . . . 7
1.1 Applicazioni a oggetti distribuiti con JavaRMI . . . . 8
1.2 Architettura di RMI . . . . 10
1.2.1 Livelli dell'architettura . . . . 13
1.2.2 Servizio di registrazione . . . . 16
1.2.3 Passaggio di parametri di metodi remoti . . . . 16
1.3 Garbage Collection Distribuita . . . . 17
1.4 Class loading . . . . 18
2. Il Package java.rmi . . . . 20
2.1 Principali classi e interfacce del package java.rmi . . . . 21
2.1.1 L'interfaccia Remote . . . . 21
2.1.2 La classe Naming . . . . 21
2.1.3 La classe RMISecurityManager . . . . 23
2.1.4 La classe MarshalledObject . . . . 24
2.1.5 La classe RemoteException . . . . 27
2.1.6 Altre classi Exception . . . . 28
2.2 Il package java.rmi.server . . . . 29
2.2.1 La classe RemoteObject . . . . 29
2.2.2 La classe RemoteServer . . . . 30
2.2.3 La classe UnicastRemoteObject . . . . 32
2.2.4 La classe RMIClassLoader . . . . 34
2.2.5 La classe RMISocketFactory . . . . 37
2.2.6 La classe RemoteStub . . . . 39
2.2.7 L'interfaccia RemoteRef . . . . 40
2.2.8 L'interfaccia ServerRef . . . . 40
2.2.9 Classi Exception . . . . 41
Indice
2.3 Il package java.rmi.registry . . . . 42
2.3.1 L'interfaccia Registry . . . . 42
2.3.2 La classe LocateRegistry . . . . 43
2.4 Il package java.rmi.dgc . . . . 45
2.4.1 L'interfaccia DGC . . . . 45
2.4.2 La classe Lease . . . . 47
2.4.3 La classe VMID . . . . 48
2.5 Il package java.rmi.activation . . . . 49
3. Il Package sun.rmi . . . . 51
3.1 Il package sun.rmi.registry . . . . 52
3.1.1 La classe RegistryImpl . . . . 52
3.2 Principali classi del package sun.rmi.server . . . . 54
3.2.1 La classe MarshalInputStream . . . . 55
3.2.2 La classe MarshalOutputStream . . . . 56
3.2.3 La classe RemoteProxy . . . . 57
3.2.4 La classe UnicastRef . . . . 59
3.2.5 La classe UnicastServerRef . . . . 61
3.3 Principali classi del package sun.rmi.transport . . . . 63
3.3.1 La classe Transport . . . . 63
3.3.2 La classe ObjectTable . . . . 64
3.3.3 La classe DGCClient . . . . 66
3.4 Principali classi del package sun.rmi.transport.tcp . . . . 67
3.4.1 La classe TCPTransport . . . . 67
3.4.2 La classe TCPChannel . . . . 69
3.4.3 La classe TCPConnection . . . . 71
3.4.4 La classe ConnectionMultiplexer . . . . 73
3.4.5 La classe MultiplexConnectionInfo . . . . 76
3.4.6 La classe MultiplexInputStream . . . . 77
3.4.7 La classe MultiplexOutputStream . . . . 79
4. Il meccanismo di invocazione remota . . . . 82
4.1 Impostazione di RMI . . . . 83
4.2 Invocazione di metodo remoto a basso livello . . . . 85
4.2.1 Lato Client . . . . 86
4.2.2 Lato Server . . . . 95
4.3 Garbage Collection di oggetti remoti . . . . 98
4.3.1 Lato Client . . . . 99
4.3.2 Lato Server . . . . 103
Bibliografia . . . . 106