Pada Java, sebuah objek remote adalah instans dari suatu kelas yang mengimplementasikan antarmuka remote.

dokumen-dokumen yang mirip
Common Object Request Broker Architecture (CORBA) (Minggu 4 Praktikum 1)

Pemrograman Jaringan 12 CORBA

2.1. Sistem Komunikasi

Sistem Tersebar 1 PAGE 10

MODEL SISTEM TERDISTRIBUSI

Sistem Terdistribusi 5. Invocation

Pemrograman Remote Method Invocation. Husni

Pemrograman Jaringan 11 RMI

PENGANTAR APLIKASI TERDISTRIBUSI (Minggu I Praktikum I)

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 1 PENGENALAN LINGKUNGAN PEMROGRAMAN JAVA

Membangun Aplikasi Client-Server Menggunakan Java

Client/Server dengan Java Remote Method Invocation (Java RMI), Sebuah Tutorial

PERTEMUAN 3 OBJEK DAN CLASS

Distributed Object CORBA and RMI

Java Database Connectivity (JDBC) (Minggu 5 Praktikum II)

MEMBANGUN APLIKASI TERDISTRIBUSI DENGAN CORBA DAN JAVA. Emha Taufiq Luthfi

KOMUNIKASI PENGANTAR DATA TERDISTRIBUSI. Materi: 1. Komunikasi Data 2. Protocol 3. Remote Procedure Call 4. Object Remote

PEMROGRAMAN SOCKET LANJUTAN

DISTRIBUTED OBJECT CORBA & RMI. Sistem terdistribusi week 13

2. Software yang dibutuhkan Untuk membuat sebuah program java, minimal yang dibutuhkan adalah:

Masukkan connector tersebut ke dalam direktori pada tempat jdk di-instal dengan path

DCOM, CORBA, JAVA RMI: KONSEP DAN TEKNIK DASAR PEMROGRAMAN

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

CONTOH PENDSTRIBUSIAN HARDWARE

Perkenalan PBO (Java)

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

SISTEM PEMANTAUAN AKTIVITAS PENGGUNA PADA JARINGAN CLIENT-SERVER

BAHASA PEMROGRAMAN JAVA

Modul Praktikum Pemrograman

Network Programming 2010 Jaringan & Aplikasinya. Husni Husni.trunojoyo.ac.id

PRAKTIKUM 6 EXCEPTION

A-PDF OFFICE TO PDF DEMO: Purchase from to remove the watermark. Ade Sarah H

Pemrograman Berorientasi Object

Ade Anom A.

PEMROGRAMAN BERORIENTASI OBJEK

INTRODUCTION JAVA NORHIKMAH,M.KOM

Abstract Class dan Interface. Viska Mutiawani, M.Sc

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

TPI4202 e-tp.ub.ac.id

PEMROGRAMAN SISTEM TERSEBAR

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

MODUL PRAKTIKUM KE 1

PERBANDINGAN PENGGUNAAN 4 ORB BERBEDA PADA APLIKASI OBYEK TERDISTRIBUSI

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

TUGAS JARINGAN KOMPUTER

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

MODUL I Pengenalan Bahasa Pemrograman Java

Web Service: Memulai Proyek

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

Objek Terdistribusi dan Remote Invocation. I Made Andhika, S.Kom

BAB V Remote Procedure Call (RPC)

MODUL 9 EXCEPTION HANDLING

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Java Application. Aplikasi: Menampilkan Tulisan

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

Praktikum 9 Exception Handling

Java Application. Menampilkan Tulisan

BAB 1 Service Oriented Architecture 1.1 Evolusi SOA

Pemograman Java. Yoannita, S.Kom. Argumen Command Line Exception Handling Package

PEMAHAMAN DASAR DASAR JAVA

KONSEP OBJEK ORIENTASI PROGRAM

Pemrograman Dasar I N T R O D U C T I O N T O J A V A

PERCOBAAN 6 EXCEPTION

Pemrograman dengan Java

PEWARISAN D E W I S A R T I K A, M. K O M

Definisi Eksepsi (exception)

PEMROGRAMAN JAVA : PENGENALAN JAVA

Tutorial FDM Nurul Huda 2008, bundled by samsonasik. Modul Java 1

Sharing Printer dengan Samba. Oleh. Md. Chrisna donny andrian. V c

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

PERTEMUAN I PENGENALAN JAVA

PENGENALAN LINGKUNGAN KERJA JAVA

SUMBER BELAJAR PENUNJANG PLPG

Cara Membaca File Text di JAVA

PRAKTIKUM I Class dan Obyek

Pemrograman Database Java

Percobaan 6 Exception

Pemanggilan RESTful Web Service PHP dari Client Java

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

BAB 3 Mengenali Lingkup Pemrograman Anda

Pengenalan JavaScript

Membuat Kalkulator dengan Java

Pengantar Pemrograman dengan Bahasa Java

Pengantar Pemrograman dengan Bahasa Java

IKG2I4 / Software Project I

Pemrograman Berorientasi. Class dan Obyek 2

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Pemrograman Socket menggunakan TCP

Modul 4 Exception, I/O, dan Operasi File

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Class dan Object. PBO/Java/Ayuliana/Revisi

Dasar-Dasar Pemrograman Java

KONSEP OOP: POLYMORPHISM

Dasar-Dasar OOP di Java

Transkripsi:

Rosa Ariani Sukamto Email: rosa_if_itb_01@yahoo.com Website: http://www.gangsir.com A. REMOTE METHOD INVOCATION (RMI) (Minggu 1 Praktikum II) 1. Sekilas RMI RMI (Remote Method Application) pada Java adalah mekanisme yang mengijinkan sebuah objek untuk mengakses metode objek lainnya yang berada pada alamat lain pada mesin yang sama ataupun mesin yang berbeda. Arsitektur RMI adalah seperti pada gambar berikut: Terdapat tiga proses yang ada pada mekanisme RMI, yaitu: 1. Client berupa proses yang melakukan invokasi metode ke sebuah objek remote. 2. Server berupa proses yang memiliki objek remote. Objek remote adalah objek biasa yang berada pada server. 3. Object Registry adalah penamaan objek pada server. Pada Java, sebuah objek remote adalah instans dari suatu kelas yang mengimplementasikan antarmuka remote. 2. Praktikum a. Persiapan Membuat direktori kerja dengan nama SI319-P2-Kelas-NIM misalnya SI319-P2-A-23507024

Di dalam direktori di atas, buat direktori RMI untuk menyimpan filefile yang akan dibuat. b. Membuat Kelas Remote dan antarmuka (interfaces) Kelas remote merupakan kelas yang digunakan sebagai antarmuka objek remote agar dapat diakses oleh klien. Kelas remote memiliki dua buah bagian yaitu sebuah antarmuka dan kelas remote itu sendiri. Sebuah antarmuka remote harus memiliki properti berikut: 1. antarmuka (interface) harus merupakan kelas public 2. antarmuka (interface) harus merupakan turunan dari java.rmi.remote 3. setiap metode pada antarmuka (imterface) harus melemparkan java.rmi.remoteexception atau eksepsi lainnya. Kelas remote harus memiliki properti sebagai berikut: 1. harus merupakan implementasi dari antarmuka remote 2. harus merupakan turunan dari kelas java.rmi.server.unicastremoteobject. 3. kelas remote dapat memiliki metode yang tidak terdapat pada antarmuka remote tapi metode ini tidak dapat dipanggil oleh klien. Nama file: HelloInterface.java import java.rmi.*; * antarmuka remote public interface HelloInterface extends Remote { * metode yang dapat diinvokasi klien public String say() throws RemoteException; Nama file: Hello.java import java.rmi.*; import java.rmi.server.*; * kelas remote public class Hello extends UnicastRemoteObject implements HelloInterface { private String message; * konstruktor

public Hello (String msg) throws RemoteException { message = msg; * Implementasi metode say() public String say() throws RemoteException { return message; Antarmuka dan kelas remote diatas harus dikompilasi dengan cara sebagai berikut: 1. Buka command prompt, masuk ke direktori RMI 2. Coba ketik perintah: javac Jika muncul pesan: 'javac' is not recognized as an internal or external command, operable program or batch file. Maka ketik perintah: path=<tempat direktori instalasi java>\bin;%path% contoh: path= C:\Program Files\Java\jdk1.5.0_05\bin;%path% 3. Ketik perintah: javac *.java 4. Ketik perintah: rmic Hello (perintah ini akan berjalan dengan baik jika rmic menemukan file HelloInterface.class dan Hello.class, oleh karena itu sebelumnya perlu diset pathnya dengan perintah sebelumnya) 5. Ketik perintah: rmiregistry & c. Membuat Client Klien yang akan dibuat merupakan program java biasa. Sebuah klien pada RMI membutuhkan kelas remote untuk mengetahui metode apa saja yang boleh diakses oleh klien. Object Registry merupakan sebuah penamaan untuk memanggil metode di server oleh klien. Penamaan object registry harus terdiri dari informasi-informasi berikut:

1. alamat internet mesin yang menjalankan object registry dimana metode remote registrasi, jika klien dan object registry berjalan pada mesin yang sama maka nama ini dapat diabaikan 2. port dimana object registry menunggu klien (listening), jika menggunakan port standar 1099, maka nilai port bisa tidak ditulis 3. nama lokal dari objek remote yang ada dalam object registry Nama file: Client.java import java.rmi.*; class HelloClient{ * kelas klien public static void main (String[] argv) { try { // memanggil metode dengan melihat object registry HelloInterface hello = (HelloInterface) Naming.lookup ("//localhost/hello"); System.out.println (hello.say()); catch (Exception e) { System.out.println ("HelloClient exception: " + e); Naming.lookup pada kode di atas merupakan metode untuk mengakses metode secara remote dengan alamat objek yang ada pada object registry dan port standar. Hasil dari Naming.lookup harus diubah tipenya menjadi tipe dari antarmuka remote. d. Membuat Server Server juga hanya berupa program Java. Objek remote harus telah terdapat pada objek registry karena server akan mengikat objek remote, dengan menggunakan Naming.rebind (objectname, object); dimana object adalah objek yang telah diregister dan objectname adalah nama objek remote yang telah diregister. Nama file: HelloServer.java import java.rmi.*; class HelloServer{ * server remote public static void main (String[] argv) { try { Naming.rebind ("Hello", new Hello ("Hello, world!"));

System.out.println ("Hello Server is ready."); catch (Exception e) { System.out.println ("Hello Server failed: " + e); e. Menjalankan Aplikasi 1. Buka command prompt dan ketik perintah: rmiregistry & 2. Buka command prompt kedua, masuk ke direktori RMI 3. Kompilasi server dengan mengetik perintah: javac HelloServer.java 4. Kemudian jalankan server dengan mengetik perintah: java HelloServer & 5. Buka command prompt ketiga, masuk ke direktori RMI 6. kompilasi klien dengan mengetik perintah: javac HelloClient.java 7. jalankan klien dengan mengetik perintah: java HelloClient 8. Ketik ctrl+c untuk menghentikan aplikasi B. RMI-IIOP (Internet InterORB Protocol) RMI-IIOP adalah antarmuka RMI yang menggunakan IIOP(Internet Inter-ORB Protocol) sebagai koneksi komunikasi. RMI-IIOP menyediakan antarmuka operasi dengan objek CORBA(Common Object Request Broker Architecture) (akan dibahas pada minggu ke 4). Dengan menggunakan IIOP, RMI dapat diakses oleh klien dari CORBA yang dapat ditulis dengan menggunakan berbagai macam bahasa pemrograman. 1. Praktikum a. Persiapan Di dalam direktori SI319-P2-Kelas-NIM, buat direktori RMIIIOP untuk menyimpan file-file yang akan dibuat. b. Membuat antarmuka RMI Nama file: HelloInterface.java import java.rmi.remote; public interface HelloInterface extends java.rmi.remote { public void sayhello( String from ) throws java.rmi.remoteexception; c. Membuat kelas implementasi objek remote (Servant)

Kelas implementasi objek remote merupakan kelas yang dapat membuat objek remote dengan menggunakan IIOP sebagai protokol komunikasi Nama file: HelloImpl.java import javax.rmi.portableremoteobject; public class HelloImpl extends PortableRemoteObject implements HelloInterface { public HelloImpl() throws java.rmi.remoteexception { super(); // invoke rmi linking dan remote object initialization public void sayhello( String from ) throws java.rmi.remoteexception { System.out.println( "Hello from " + from + "!!" ); System.out.flush(); d. Membuat Server Kelas server merupakan kelas yang memiliki metode main untuk membuat instans dari implementasi objek remote dan mengikat instans itu dengan penamaan dalam Naming Services. Nama file: HelloServer.java import javax.naming.initialcontext; import javax.naming.context; public class HelloServer { public static void main(string[] args) { try { // 1: menginstansiasi objek implementasi objek remote HelloImpl helloref = new HelloImpl(); // 2: mempublikasikan referensi Naming Services // dengan JNDI API Context initialnamingcontext = new InitialContext(); initialnamingcontext.rebind("helloservice", helloref ); System.out.println("Hello Server: Ready..."); catch (Exception e) { System.out.println("Trouble: " + e); e.printstacktrace();

e. Membuat Client Aplikasi klien memanggil metode sayhello(). Nama file: HelloClient.java import java.rmi.remoteexception; import java.net.malformedurlexception; import java.rmi.notboundexception; import javax.rmi.*; import java.util.vector; import javax.naming.namingexception; import javax.naming.initialcontext; import javax.naming.context; public class HelloClient { public static void main( String args[] ) { Context ic; Object objref; HelloInterface hi; try { ic = new InitialContext(); // 1: mengambil referensi objek dari Naming Services // dengan JNDI call. objref = ic.lookup("helloservice"); System.out.println( "Client: Obtained a ref. to Hello server."); // 2: mengkhususkan referensi objek ke tipe yang lebih konkret // dan invoke metode. hi = (HelloInterface) PortableRemoteObject.narrow( objref, HelloInterface.class); hi.sayhello( " MARS " ); catch( Exception e ) { System.err.println( "Exception " + e + "Caught" ); e.printstacktrace( ); return; f. Menjalankan aplikasi 1. Buka command prompt, masuk ke direktori RMIIIOP 2. Ketik perintah: javac -d. -classpath. HelloImpl.java

dimana d. berarti hasil file yang digenerasi disimpan di dalam direktori dimana kompilasi dilakukan, -classpath. berarti semua file yang diperlukan HelloImpl.java ada pada direktori kerja tempat kompilasi dilakukan 3. Ketik perintah: rmic -iiop HelloImpl perintah ini akan menghasilkan file: _HelloInterface_Stub.class berperan sebagai stub milik klien pada CORBA _HelloImpl_Tie.class berperan sebagai skeletons milik server pada CORBA 4. Ketik perintah: javac -d. -classpath. HelloInterface.java HelloServer.java HelloClient.java 5. Ketik perintah: start orbd -ORBInitialPort 1050 hingga muncul jendela ORB 6. Buka commad prompt kedua, masuk ke direktori RMIIIOP 7. Ketik perintah: java -classpath. -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 HelloServer hingga muncul Hello Server: Ready... 8. Buka command prompt ketiga, masuk ke direktori RMIIIOP 9. Ketik perintah: java -classpath. -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 HelloClient hingga muncul Client: Obtained a ref. to Hello server. [pada jendela client] Hello from MARS [pada jendela server] 10. Tekan ctrl+c pada command prompt kedua untuk membunuh server dan jendela ORB.