2. Methods can be called by another JVM on a
different host
Interface is remote if it extends Remote
Remote object implements a remote
interface and extends UnicastRemoteObject
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 2
3. Primitive types are passed by value
Objects (that are not remote)
They are serialized and then passed by value.
At the other end the objects are deserialized
Any references inside the object are also
serialized
Remote Objects
Passed as remote references (stubs)
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 3
4. Obtain a reference for the remote object
URL for the remote object is specified as
rmi://host:port/name
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 4
5. public class HiDunia {
public String sayHalo() {
return "Halo dunia!";
}
public static void main (String args[]) {
String response = this.sayHalo();
System.out.println(response); }
}
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 5
6. public class Halo {
public String sayHalo() {
return "Hello, world!";
}
}
public class HaloDunia {
public static void main (String args[]) {
Halo kelas = new Halo();
String response = kelas.sayHalo();
System.out.println(response); }
}
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 6
7. Satu address space
Code segment
Data segment
Stack segment
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 7
8. Proses berbeda
class Halo
class HaloDunia
mungkin berjalan di node yang sama
atau node berbeda
Different address space
stub method
Remote object
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 8
9. Mendefinisikan remote interface
Mengimplementasikan interface (server)
Buat dan ekspor remote object
Registrasi remote object dengan Java RMI
registry
Mengimplementasikan client
Jalankan server
Jalankan client
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 9
15. Default pada port 1099
start rmiregistry 2011
Registry reg =
LocateRegistry.getRegistry(2011);
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 15
16. Implementasikan sebuah aplikasi kalkulator
sederhana dengan RMI
Client menerima ekspresi matematika (+, x, /, -)
Server mengimplementasikan method-method
yang sesuai
Parsing ekspresi matematika dengan
StringTokenizer
untuk menentukan method apa yang dipanggil
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 16
17. Kerangka program Client
Baca ekspresi matematika
Tokenize, untuk mendapatkan ekspresi
matematik yang digunakan
Jika operatornya +, panggil method RMI
penjumlahan()
Jika operatornya x, panggil method RMI
perkalian()
dst
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 17
18. Program Server
Implementasikan method-method untuk operasi
dasar matematika
int perkalian(int a, int b);
int pembagian(int a, int b);
int penjumlahan(int a, int b);
int pengurangan(int a, int b);
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 18
19. Waktu pengerjaan
Dua pekan (30 November 2011, pukul 12.00 WIB)
By e-mail barliant@gmail.com
Subject "IKH331 RMI"
Bonus
Evaluasi ekspresi yang lebih kompleks
3+4x2
(3 + 4) x 2
Pengumpulan sebelum tenggat waktu
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 19
20. Java RMI Hello World,
http://download.oracle.com/javase/6/docs/tec
hnotes/guides/rmi/hello/hello-world.html
Vijay Garg, "Concurrent and Distributed
Programming in Java"
Source code
http://users.ece.utexas.edu/~garg/jbk.html
http://tjerdastangkas.blogspot.com/search/la
bel/ikh331
Pemrograman Terdistribusi Sistem Terdistribusi (IKH331) 20