Pemrograman Jaringan 11 RMI

dokumen-dokumen yang mirip
DISTRIBUTED OBJECT CORBA & RMI. Sistem terdistribusi week 13

Distributed Object CORBA and RMI

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

Sistem Terdistribusi 5. Invocation

2.1. Sistem Komunikasi

BAB V Remote Procedure Call (RPC)

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

PEMROGRAMAN SISTEM TERSEBAR

MODEL SISTEM TERDISTRIBUSI

PEMROGRAMAN SISTEM TERSEBAR

CONTOH PENDSTRIBUSIAN HARDWARE

BAB 1 PENDAHULUAN 1.1 Pendahuluan

KOMUNIKASI. Universitas Informatika dan Bisnis Indonesia. 2.1 Komunikasi Data

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

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

SISTEM PEMANTAUAN AKTIVITAS PENGGUNA PADA JARINGAN CLIENT-SERVER

Komunikasi. Sistem Terdistribusi Reza Aditya Firdaus

Pemrograman Jaringan 12 CORBA

Sistem Terdistribusi 2. Model arsitektur Terdistribusi

Bab 2. Komunikasi. 1. Physical Layer

Mengenal Java RMI. Wiranti Sri Utami. Abstrak. Pendahuluan.

Gambar 2.1 Prinsip RPC pada Client-Server

Interprocess communication atau komunikasi antar proses adalah inti dari sistem terdistribusi dan komunikasi antar proses-proses pada system-sistem

Teknik Informatika S1

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

Model Sistem Terdistribusi

TUGAS Mata Kuliah : Sistem Terdistribusi

PROSES, OBJEK DAN LAYANAN TERDISTRIBUSI

BAB II LANDASAN TEORI

TUGAS JARINGAN KOMPUTER

Komunikasi Antar Proses Interprocess Communication (IPC)

NETWORK PROGRAMMING. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

WEB SERVICES. Sistem terdistribusi week 12

Sistem Operasi 3. Process

Pemrograman Jaringan

Model arsitektur Terdistribusi

Web Services merupakan salah satu bentuk implementasi dari arsitektur model aplikasi N-Tier yang berorientasi layanan. Perbedaan Web Services dengan

Proses Burst Time Prioritas P P1 7 1 P2 9 3 P P4 19 2

SERVICE ORIENTED ARCHITECTURE (SOA)

Pemrograman Remote Method Invocation. Husni

Pemrograman Jaringan 5.

Arsitektur Web Service Web service memiliki tiga entitas dalam arsitekturnya, yaitu: 1. Service Requester (peminta layanan)

Bab 2. Komunikasi Protokol

Oracle Net Services. By: Arif Basofi

TUGAS SISTEM INFORMASI BERBASIS WEB. PHP Web Service. Nama : Ilham NIM : Kelas : 6B. Daftar isi

Muhammad Zen Samsono Hadi, ST. Msc.

1. Hardware terdistribusi. 2. Program terdistribusi. Nama : Gede Doddi Raditya Diputra NIM : Kelas : 5.C

Connection Oriented. Kholid F.

PEMROGRAMAN JARINGAN

BAB 1 Service Oriented Architecture 1.1 Evolusi SOA

Teknik Informatika S1

SISTEM OPERASI TERDISTRIBUSI

Soal terdiri dari 50 Pilihan Ganda Setiap soal pilihan ganda hanya satu jawaban yang benar

Application Layer. Electronic Engineering Polytechnic Institut of Surabaya ITS Kampus ITS Sukolilo Surabaya 60111

Koneksi Client-Server. Ahmad Zainudin

A. TUJUAN : Dapat mengimplementasi-kan kelas-kelas Java yang digunakan dalam pemrogaman jaringan.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS JARINGAN TERDISTRIBUSI

Common Object Request Broker Architecture (CORBA) (Minggu 4 Praktikum 1)

Middleware Sebagai Jembatan Platform yang berbeda. Budi Susanto

Pemrograman Jaringan 6.

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

Berikut merupakan salah satu contoh dari pesan SOAP (SOAP Message):

BAB 2 TINJAUAN PUSTAKA. bentuk sesuai dengan tipe data dan konteks penggunaan [7]. Tujuannya yaitu

Koneksi Client-Server. Ahmad Zainudin

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

BAB II LANDASAN TEORI

TRANSPORT LAYER. Aplikasi dan Operasi pada TCP dan UDP

FILE SERVICE DAN NAME SERVICE

Pengertian [1] naming context.

Lapisan Transport. Menjamin komunikasi yang handal antara dua buah komputer yang terhubung Terdiri atas :

BAB II LANDASAN TEORI

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

BAB X ARSITEKTUR SISTEM TERDISTRIBUSI

Application Layer Protocol and Services DNS Service and Protocol WWW dan HTTP

26/09/2013. Pertemuan III. Elisabeth, S.Kom - FTI UAJM. Referensi Model TCP/IP

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mengangkat kasus dan penggunaan teknologi yang berbeda-beda, pada table 2.1

Pemrograman Jaringan 10. Komunikasi Antar Obyek

Pemrograman Jaringan 9. Connectionless Oriented Programming

PEMROGRAMAN SISTEM JAWAB: A. Contoh-contoh Penerapan Sistem Terdistribusi dari Komponen Hardware

Distribusi Fungsi. Dengan pembagian fungsi untuk tiap komponen dalam sistem client server, berikut manfaat yang ada :

APLIKASI PENCARI IDL DAN OBJEK PADA SISTEM TERDISTRIBUSI BERBASIS CORBA

TRANSPORT LAYER. Oleh : Reza Chandra

LAPISAN JARINGAN (NETWORK LAYER) Budhi Irawan, S.Si, M.T

Cari contoh dari pendistribusian komponen-komponen Hardware, Program, dan Procedure. Jelaskan!

Deskripsi Layanan Protokol TCP dan UDP. (Tugas Mata Kuliah Jaringan Komputer) Nama: Azwar Hidayat NIM: Kelas: SK 4 C

HTTP Protocol Ketika sebuah alamat web (atau URL) yang diketik ke dalam web browser, web browser melakukan koneksi ke web service yang berjalan pada

Sistem terdistribusi Processes, Threads and Virtualization pertemuan 3. Albertus Dwi Yoga Widiantoro, M.Kom.

BAB 3 PERANCANGAN SISTEM

PEMROGRAMAN JAVA : PENGENALAN JAVA

MEMBANGUN APLIKASI TERDISTRIBUSI DENGAN CORBA DAN JAVA. Emha Taufiq Luthfi

Teknik Informatika S1

MODUL 2 WIRESHARK Protokol TCP

BAB II DASAR TEORI. bersifat umum/non-spesifik (general purpose), dan secara khusus dirancang untuk

Pemrograman Jaringan

MODUL 2 WIRESHARK Protokol TCP

TUGAS SISTEM INFORMASI TERSEBAR

Pemrograman Socket TCP dan Socket UDP

Transkripsi:

Pemrograman Jaringan 11 RMI

Pengantar RMI RMI adalah salah satu bagian dari J2SE yang digunakan untuk membangun aplikasi terdistribusi menggunakan bahasa Java. RMI adalah kumpulan kelas dalam Java yang digunakan untuk menangani pemanggilan (invocation) method secara jarak jauh (remote) dalam suatu jaringan atau Internet. Idenya memisahkan obyek-obyek secara terdistribusi dalam mesin-mesin yang berbeda. RMI menggunakan prinsip pemrograman berorientasi obyek dimana obyek satu dapat saling berkomunikasi dengan obyek lainnya. Untuk membangun aplikasi RMI dibutuhkan Interface. RMI terdiri dari RMI client dan server.

Pengantar RMI (2) RMI server biasanya akan membuat beberapa remote obyek dan referensi-nya yang dapat diakses oleh RMI client menggunakan suatu URL dan menunggu RMI client meminta ke server. Sedangkan RMI client akan membuat koneksi ke server dan meminta pemanggilan ke beberapa remote obyek berdasarkan referensi yang diterimanya. RMI client akan menggunakan remote obyek sebagai lokal obyek. Setiap remote obyek yang dibuat oleh RMI server didaftarkan terlebih dahulu ke dalam RMI registri, agar ketika client membutuhkannya dapat meminta dengan mudah ke RMI registry.

Arsitektur RMI

Pengantar RMI (3) RMI Server akan mendaftarkan remote obyeknya ke RMI Registry melalui bind dengan nama unik. RMI Client yang akan melakukan suatu pemanggilan method dari remote obyek, harus meminta referensi obyek ke RMI Registry berdasarkan nama kelas obyek tersebut. Dalam RMI harus ada pendefinisian interface (behaviour) dan implementasi interface (berupa kelas) RMI hanya dimiliki oleh bahasa Java saja.

Teknologi Terkait dengan RMI RPC ( Remote Procedure Calls ) Developed by Sun Platform-specific CORBA ( Common Object Request Broker Architecture ) Developed by OMG Access to non-java objects (as well as Java) DCOM ( Distributed Common Object Model ) Developed by Microsoft Access to Win32 objects LDAP ( Lightweight Directory Access Protocol ) Finding resources on a network

Bagian Arsitektur RMI Transport Layer Remote Reference Layer Stub dan Skeleton Layer Remote Objects Ada pada server Diakses seperti layaknya obyek lokal

RMI Layers Java Virtual Machine Client Object Java Virtual Machine Remote Object Stub Skeleton Remote Reference Layer Transport Layer TCP Remote Reference Layer Transport Layer

Stub & Skeleton Merupakan interface antara aplikasi dan RMI system. Stub bertindak sebagai client side proxy Skeleton bertindak sebagai server side proxy Selama remote invocation stub bertanggung jawab untuk: Meminta lokasi remote server obyek pada remote reference layer Marshalling : merangkaian argumen pada output stream Memberitahu remote reference layer bahwa semua data parameter telah terkirim, sehingga pemanggilan method sesungguhnya dapat dilakukan oleh server Unmarshalling: rangkaian nilai yang diterima dari remote obyek Memberitahu remote reference layer bahwa pemanggilan telah lengkap Skeleton bertanggung jawab untuk: Marshalling: nilai kembalian atau exception kepada stub client Mengirimkan panggilan method pada server object sesungguhnya

Remote Reference Menemukan lokasi remote obyek Membuat panggilan point to point dan rekoneksi secara otomatis Mengaktifkan proses server baru jika belum pernah diaktifkan sebelumnya Memelihara replikasi (panggandaan) jika diperlukan

Transport Layer Memelihara tabel yang berisi obyek-obyek pada JVM Membuat dan memelihara dua koneksi antara 2 JVM menggunakan TCP/IP Transport Layer hanya tersedia di level virtual machine (pada java.net) Menerima dan merespon setiap pemanggilan dari atau ke server dan client

RMI Registry Tool RMI registry menggunakan rmiregistry dengan port default 1099 Ketika server membuat remote method dengan cara membuat lokal obyek yang menerapkan method dari interface tersebut, maka obyek akan diekspor ke RMI, dan diregisterkan ke RMI Registry dengan public name. RMI Registry akan membuat layanan listen yang menunggu permintaan dari client. Di sisi Client, RMI Registry diakses menggunakan static class naming. Class ini menyediakan metode lookup() untuk melakukan query ke registry. Metode lookup menerima URL yang menyatakan nama server dan nama service yang diminta dan kemudian mengembalikan remote reference obyek yang diminta. Format URL RMI: rmi://<hostname>[:<name_service_port>]/<service_name> RMI registry proses yang berjalan pada host machine

RMI System Architecture Client Virtual Machine Client Server Virtual Machine Remote Object Stub Skeleton Server Fred Copyright 1997 Alex Chaffee Registry Virtual Machine

RMI Flow 1. Server Client Virtual Creates Machine Remote Object 2. Server Registers Remote Object Client Server Virtual Machine Remote Object Stub Skeleton Server 1 2 Fred Copyright 1997 Alex Chaffee Registry Virtual Machine

RMI Flow Client Virtual Machine Client Stub Server Virtual Machine Remote 3. Client requests object from Registry Object 4. Registry returns remote reference (and stub gets created) Skeleton Server 3 4 Fred Copyright 1997 Alex Chaffee Registry Virtual Machine

RMI Flow Client Virtual Machine Client 5 7 Server Virtual Machine Remote Object Stub 6 Skeleton Server 5. Client invokes stub method 6. Stub talks to skeleton 7. Skeleton invokes remote object method Fred Copyright 1997 Alex Chaffee Registry Virtual Machine

Pembuatan Aplikasi RMI Definisikan interface Interface ini akan diimplementasikan baik oleh client maupun server Template:

Contoh Kelas NamaImplementasi berarti mengimplementasikan NamaInterface sesuai dengan yang telah didefinisikan diatas sehingga nama method-methodnya harus juga melemparkan Error ke java.rmi.remoteexception. Kelas ini juga mengextends dari kelas java.rmi.server.unicastremoteobject yang menangani remote object, membuat remote object, dan menangani panggilan dari client.

Pembuatan Aplikasi RMI Definisikan kelas implementasi dari interface Kelas yang mengimplementasikan interface. Template:

Contoh

Pembuatan Aplikasi RMI (3) Buat stub dan skeleton Cara jika menggunakan RMI versi 1 (stub dan skeleton): rmic v1.1 NamaImplementasi Cara jika menggunakan RMI versi 2 (stub saja): rmic v1.2 NamaImplementasi Contoh: rmic v1.2 HaiImpl akan menghasilkan: Hai.class HaiImpl.class HaiImpl_Stub.class

Pembuatan Aplikasi RMI (4) Buat aplikasi remote server Aplikasi server ini akan membuat instant (object) dari kelas implementasi yang telah dibuat pada langkah-langkah sebelumnya dan juga akan mendaftarkan obyek tersebut ke RMI Registry dengan suatu URL tertentu.

Contoh

Catch

Pembuatan Aplikasi RMI (5) Buat aplikasi remote client Pada aplikasi client, client akan mencari obyek pada remote server dan melakukan casting ketipe yang sesuai dengan nama interface yang didefinisikan pada langkah pertama dan menggunakan obyek tersebut sebagai obyek lokal.

Contoh

Pembuatan Aplikasi RMI (6) Jalankan RMIRegistry start rmiregistry Jalankan server Jalankan client

RMI Integration & Configuration RMI Stub & Skeleton ditempatkan pada HTTP server agar bisa didownload Client harus menginstall RMISecurityManager agar bisa me-load class RMI secara remote Client membutuhkan file policy agar dapat berkoneksi dengan Registry Bisa juga di set di JAVA_HOME\jre\lib\security pada file java.policy

Pada HaiClient2

Buat hai.policy grant { permission java.net.socketpermission *:1024-65535, connect, accept ; permission java.net.socketpermission *:80, connect ; };

Pendistribusian Dari sisi Server Remote Service Interface Remote Service Implementation Stub Remote Service Implementation Semua server class Contoh: Hai.class HaiImpl.class HaiImpl_Stub.class HaiServer.class

Pendistribusian Dari sisi Client Remote Service Interface File policy Semua client class Contoh: Hai.class HaiClient2.class Hai.policy

Lalu Kopikan ke folder rmi HTTPServer: Hai.class HaiImpl.class HaiImpl_Stub.class HaiServer.class Jalankan rmiregistry di server Jalankan Server: java Djava.rmi.server.codebase=http://localhost/rmi/ -Djava.rmi.server.hostname=localhost HaiServer Jalankan Client: java -Djava.security.policy=hai.policy HaiClient2 localhost

Keterbatasan dari RMI Java-only Uses TCP, not UDP At least two sockets per connection Untested for huge loads

Sun vs. Microsoft RMI is not shipped as part of Microsoft s products RMI will still work in applications include java.rmi.* class files in your classpath download rmi.zip from ftp.microsoft.com RMI will work in applets include java.rmi.* class files (or rmi.zip) in your codebase IE4: only if they re signed extra download time

Praktikum