Java Remote Object Invocation (RMI)

Slides:



Advertisements
Presentasi serupa
EXCEPTION HANDLING.
Advertisements

Pemrograman Berorientasi Objek
Pemrograman Berorientasi Objek
BAHASA PEMROGRAMAN JAVA
Kelas A & B Jonh Fredrik Ulysses STMIK PALANGKARAYA - JFU
Membuat class sendiri.
JAVA Network Programming. Apa itu JAVA? ● Bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun ● Dikembangkan.
Java Progamming Operasi I/O
Pemrograman Jaringan Socket Programming Aurelio Rahmadian.
Komunikasi antar Proses
Sistem Komunikasi.
Komponen Class Item (2) As’ad Djamalilleil
Abstract Class & Interface
Workshop SCS: Java Game Programming
Sistem Terdistribusi 04 – Remote Procedure Call Oleh : Muh. Ary Azali.
Pemrograman Berorientasi Objek
Struktur Kode Aplikasi Java (1)
Remote Method Invocation (rmi)
- PERTEMUAN 4 - PERULANGAN
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Pengembang aplikasi memiliki kemampuan untuk memperbaiki beberapa parameter TCP, seperti buffer dan maksimum ukuran segmen maksimum Socket Programming.
Inter Process Communication
REMOTE SERVICE.
Object Oriented Programming with JAVA 2011/2012
OOP Java 06 Polymorphism.
UDP.
DASAR SOCKET PROGRAMMING
- PERTEMUAN 8- NETWORK PBO. Pengantar Java mengijinkan anda untuk mempermudah mengembangkan aplikasi yang mengerjakan berbagai pekerjaan melalui jaringan.
Pertemuan 12 Pemrograman Berbasis Obyek Oleh Tita Karlita
Do you remember this?.  Strategy  Concrete Strategy  Context  Client Strategy Pattern consists of..
OOP Java Minggu 2b Dasar OOP. Class (1) Deklarasi class : [ *] class { [ *] } Cat : [] = optional, * = repeat 0-N.
MATERI IV OOP (Object Oriented Programming) Chapter II.
Try, Catch, Finally Throws
Penanganan Eksepsi.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Pertemuan 1 Apakah Java Itu ? ASWAR R..
Pengantar & Dasar Pemrograman Java Oleh :Yeka Hendriyani, M.kom
As’ad Djamalilleil Membangun Aplikasi Database Berbasis Client-Server Menggunakan JDBC dan MySQL – Bagian 2 As’ad.
Kelas A dapat memiliki referensi ke obyek dari kelas- kelas lain sebagai anggota. Kadang-kadang disebut sebagai hubungan “has-a”. Sebagai contoh, sebuah.
Socket Programming - 1 (TCP)
Jaringan.
FONDASI PEMROGRAMAN & STRUKTUR DATA #5
Inheritance dan Kata Kunci static
POLYMORPHISM (KEBANYAKRUPAAN)
Mobile Computing 7 Middleware.
Constructor dan Overloading
POLYMORPHISM (KEBANYAKRUPAAN)
Penanganan Eksepsi Pertemuan Ke- 9.
MODIFIER JAVA.
POLYMORPHISM.
Remote Method Invocation (RMI) Materi 3
Tugas Minggu Ke 9 PBO Siti Halisah
Constructor overloading
JAVA FUNDAMENTAL (Method)
MEMBUAT CLASS SENDIRI 2.
JAVA Mudah dipelajari jika telah mengenal konsep OOP, terbuka (open source) dan mudah dikembangkan SEDERHANA KEUNGGULAN JAVA AMAN Dibuat dengan pertimbangan.
4 PROSES Mata Kuliah Sistem Operasi Mata Kuliah : Sistem Operasi
Pengenalan Program Java
Socket Programming - 1 (TCP)
As’ad Djamalilleil Membangun Aplikasi Database Berbasis Client-Server Menggunakan JDBC dan MySQL – Bagian 2 As’ad.
Java Database Programming
Dasar Bahasa Java.
Pemrograman Berorientasi Object
PACKAGE.
JAVA.
Method Java Fundamental Syahrul Mauluddin S.Kom, M.Kom.
Komunikasi antar Proses
FONDASI PEMROGRAMAN & STRUKTUR DATA #5 - 1
TCP Socket Programming
FONDASI PEMROGRAMAN & STRUKTUR DATA #6
Transcript presentasi:

Java Remote Object Invocation (RMI) Java RMI memungkinkan programmer untuk mengeksekusi kelas fungsi remote menggunakan panggilan fungsi lokal Local Machine (Client) SampleServer remoteObject; int s; … s = remoteObject.sum(1,2); System.out.println(s); Remote Machine (Server) public int sum(int a,int b) { return a + b; } 1,2 3 80

Arsitektur RMI Server pertama harus mengikat nama menjadi registri Klien lookup nama server dalam registri untuk membangun referensi remote. Stub (potongan) tersebut serialisasi parameter untuk kerangka, kerangka memanggil metode remote dan serialisasi hasilnya kembali ke stub.

Stub (potongan) dan Skeleton (keragka) Klien memanggil metode remote, panggilan tersebut akan diteruskan ke stub. Stub bertanggung jawab untuk mengirimkan panggilan jarak jauh ke kerangka diserver Stub membuka socket ke remote server j, parameter objek meneruskan aliran data untuk kerangka. Kerangka berisi metode yang menerima panggilan dari remote parameter, dan memanggil implementasi remote object.

Langkah untuk Mengembangkan Sistem RMI 1.Tentukan remote interface 2. Mengembangkan objek remote dengan mengimplementasikan remote interface. 3. Membuat program klien. 4. Mengkompilasi file sumber dari kode Java. 5. Menghasilkan Stub klien dan kerangka server (skeletons). 6. Menjalankan registri RMI. 7. Menjalankan remote objek server. 8. Manjalankan program klien

Langkah 1: Mendefinisikan Remote Interface Untuk membuat aplikasi RMI, langkah pertama adalah mendefinisikan sebuah remote interface antara klien dan objek server. /* SampleServer.java */ import java.rmi.*; public interface SampleServer extends Remote { public int sum(int a,int b) throws RemoteException; }

Langkah 2: Memebuat objek remote dan antarmuka Server sebagai komputer remote secara unicast. Membuat program di server dengan kelas2 java.rmi.server.UnicastRemoteObject. Server menggunakan RMISecurityManager melakukan komunikasi jarak jauh secara remote. /* SampleServerImpl.java */ import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class SampleServerImpl extends UnicastRemoteObject implements SampleServer { SampleServerImpl() throws RemoteException super(); }

Langkah 2: Membuat objek remote dan antarmuka Implementasi remote methods /* SampleServerImpl.java */ public int sum(int a,int b) throws RemoteException { return a + b; } Server mengikat nama menjadi registri, klien akan mencari nama server. Menggunakan java.rmi.Naming kelas untuk mengikat nama server ke registry. Dalam contoh ini nama panggilan “SAMPLE-SERVER”. metode main dari objek server, RMI registri meng-create dan menginstall, pengaturan keamanan .

Langkah ke 2: /* SampleServerImpl.java */ public static void main(String args[]) { try System.setSecurityManager(new RMISecurityManager()); //set the security manager //create a local instance of the object SampleServerImpl Server = new SampleServerImpl(); //put the local instance in the registry Naming.rebind("SAMPLE-SERVER" , Server); System.out.println("Server waiting....."); } catch (java.net.MalformedURLException me) { System.out.println("Malformed URL: " + me.toString()); } catch (RemoteException re) { System.out.println("Remote exception: " + re.toString()); }

Langkah 3: Mambuat Program Client Agar objek klien untuk memanggil metode di server, pertama kali harus mencari nama server dalam registri. menggunakan kelas java.rmi.Naming untuk lookup nama server. Nama server ditentukan sebagai URL dari ( rmi://host:port/name ) Default RMI port : 1099. Nama ditentukan dalam URL harus sama persis nama yang server telah terikat ke registri. Dalam contoh ini, nama adalah “SAMPLE-SERVER” Metode remote diprogram menggunakan nama remote interface (RemoteObject) sebagai awalan dan nama metode remote (jumlah) sebagai akhiran.

Langkah 3: Membuat Program Client import java.rmi.*; import java.rmi.server.*; public class SampleClient { public static void main(String[] args) // set the security manager for the client System.setSecurityManager(new RMISecurityManager()); //get the remote object from the registry try System.out.println("Security Manager loaded"); String url = "//localhost/SAMPLE-SERVER"; SampleServer remoteObject = (SampleServer)Naming.lookup(url); System.out.println("Got remote object"); System.out.println(" 1 + 2 = " + remoteObject.sum(1,2) ); } catch (RemoteException exc) { System.out.println("Error in lookup: " + exc.toString()); } catch (java.net.MalformedURLException exc) { System.out.println("Malformed URL: " + exc.toString()); } catch (java.rmi.NotBoundException exc) { System.out.println("NotBound: " + exc.toString());

Langkah 4 & 5: Mengkompilasi file sumber Java & Menghasilkan klien Stub dan kerangka ( skeleton) Server Kompilasi program dan mengeksekusi ~/rmi Ketika program antarmuka selesai, Anperlu untuk menghasilkan stub dan kode kerangka. Sistem RMI menyediakan compiler RMI (rmic) yang mengambil antarmuka yang dihasilkan dari kelas dan kode prosedur stub. $ set CLASSPATH=”~/rmi” $ javac SampleServer.java $ javac SampleServerImpl.java $ rmic SampleServerImpl $ javac SampleClient.java

Langkah 6: Menjalankan RMI registry Aplikasi RMI perlu menginstal ke Registry. Dan Registry menjalankan rmiregisty. Registry menggunakan port 1099 secara default, juga dapat mengikat rmiregistry ke port yang berbeda dengan menunjukkan nomor port baru sebagai: rmiregistry <new port> $ rmiregistry Catatan: Pada Windows, Anda harus mengetikkan dari command: > start rmiregistry

Langkah 7 & 8 : Mulai objek remote server & dari klien Setelah Registry dijalankan, server berjalan dan dapat menyimpan sendiri dalam Registry. Untuk security model in Java 2.0, mengatur security policy untuk RMI sebagaiberikut : $java –Djava.security.policy=policy.all SampleServerImpl $java –Djava.security.policy=policy.all SampleClient

Java Policy File Di Jawa 2, aplikasi java harus terlebih dahulu memperoleh informasi mengenai hak-hak istimewanya. Hal ini dapat memperoleh kebijakan keamanan melalui file policy. Dalam contoh di atas, kita membiarkan kode Java untuk memiliki semua hak akses, mengandung dari policy.all policy file adalah: grant { permission java.security.AllPermission; }; Now, we given an example for assigning resource permissions: permission java.io.filePermission “/tmp/*”, “read”, “write”; permission java.net.SocketPermission “somehost.somedomain.com:999”,”connect”; permission java.net.SocketPermission “*:1024- 65535”,”connect,request”; permission java.net.SocketPermission “*:80”,”connect”;

Untuk Java Policy File 1. memungkinkan kode Java untuk membaca / menulis file hanya di bawah direktori / tmp, termasuk subdirektori 2. memungkinkan semua kelas java untuk membangun koneksi jaringan dengan host "somehost.somedomain.com" pada port 999 3. memungkinkan kelas untuk koneksi ke atau menerima koneksi pada port Unprivileged lebih besar dari 1024, pada host apapun 4. memungkinkan semua kelas untuk menghubungkan ke port HTTP 80 pada host manapun. secara detail bisa juga dilihat di: http://java.sun.com/products//jdk/1.2/docs/guide/security/spec /security-spec.doc3.html