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

dokumen-dokumen yang mirip
BAB V Remote Procedure Call (RPC)

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

2.1. Sistem Komunikasi

BAB 1 PENDAHULUAN 1.1 Pendahuluan

Pemrograman Jaringan 12 CORBA

BAB 5 DISTRIBUTED OBJECT AND REMOTE INVOCATION

DISTRIBUTED OBJECT CORBA & RMI. Sistem terdistribusi week 13

Distributed Object CORBA and RMI

Sistem Terdistribusi 5. Invocation

Fase pertama: single user, single tasking

BAB I PENDAHULUAN 1.1 Latar Belakang

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

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

Model arsitektur Terdistribusi

Sistem Terdistribusi 2. Model arsitektur Terdistribusi

PROSES, OBJEK DAN LAYANAN TERDISTRIBUSI

Komunikasi Antar Proses

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

CONTOH PENDSTRIBUSIAN HARDWARE

SISTEM OPERASI TERDISTRIBUSI

TUGAS Mata Kuliah : Sistem Terdistribusi

BAB 1 Service Oriented Architecture 1.1 Evolusi SOA

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

1. PENGENALAN SISTEM TERDISTRIBUSI

BAB II TINJAUAN PUSTAKA. Bab ini membahas teori-teori yang dijadikan acuan tugas akhir ini.

Sistem Terdistribusi TIK-604

4. SISTEM OPERASI TERDISTRIBUSI

KONSEP INTERAKSI. Adrianus W. K X Aziz Yudi Prasetyo Gregorio Cybill

Sistem Terdistribusi

PEMROGRAMAN SISTEM TERSEBAR

KOMUNIKASI. Universitas Informatika dan Bisnis Indonesia. 2.1 Komunikasi Data

REVIEW KARAKTERISTIK DAN MODEL SISTEM TERDISTRIBUSI

Bab 1. Pengenalan Sistem Terdistribusi

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS JARINGAN TERDISTRIBUSI

DISTRIBUTED FILE SYSTEM. Sistem terdistribusi week 11

Teknik Informatika S1

Pemrograman Jaringan 11 RMI

Komunikasi Antar Proses Interprocess Communication (IPC)

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

Model Sistem Terdistribusi

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

MK. Pemrograman Berorientasi Objek PENGENALAN JAVA KARMILASARI

BAB II LANDASAN TEORI

WEB SERVICES. Sistem terdistribusi week 12

Bab 3: Proses-Proses. Konsep Proses

SISTEM OPERASI (MANAJEMEN PROSES)

Sistem Terdistribusi TIK-604

I. PENDAHULUAN. jaringan dan aplikasi yang dibuat khusus untuk jaringan. Akibatnya, interaksi

Pemrograman Jaringan 9. Connectionless Oriented Programming

Middleware Sebagai Jembatan Platform yang berbeda. Budi Susanto

DISTRIBUTED FILE SYSTEMS

BAB IV IMPLEMENTASI DAN PENGUJIAN

FILE SERVICE DAN NAME SERVICE

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

BAB I PENDAHULUAN. sebuah teknologi yang berbasis mobile atau perangkat bergerak. Saat ini mobile

TUGAS ELEARNING PENGEMBANGAN WEB SERVICE

Firewall & WEB SERVICE

Perkenalan PBO (Java)

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

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

Pemrograman Jaringan

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

BAB II LANDASAN TEORI 2.1 LAYANAN BERBASIS WEB (WEB SERVICE)

PENJURIAN ONLINE BERBASIS WEB SERVICE

Function. Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :

Bab 5. File Service. Atribut File Nama yaitu menentukan nama file yang dimaksud Tipe

TUGAS ONLINE 2 : SOAP PERANCANGAN SISTEM BERBASIS KOMPONEN

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

Gambar 2.1 Prinsip RPC pada Client-Server

Contoh function 1 : Output : // function example The result is 8 #include <iostream.h>

PEMROGRAMAN SISTEM TERSEBAR

Pengantar Sistem Terdistribusi

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

Pertemuan Function. Obyektif Praktikum : 1. Mengerti konsep dasar penggunaan Function

Diperkenalkan pertama oleh tim Sun System yang dipimpin Patrick Naughton dan James Gosling tahun 1991 dengan code

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

REVIEW DAN REVISI BUKU

BAB I PENDAHULUAN. 1.1 Latar Belakang

TUGAS SISTEM INFORMASI TERSEBAR

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

Bab 3: Proses-Proses. Konsep Proses

Pemrograman Jaringan

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

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

SISTEM PEMANTAUAN AKTIVITAS PENGGUNA PADA JARINGAN CLIENT-SERVER

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

BAB I PENDAHULUAN. Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa

IMPLEMENTASI JXTA SEBAGAI PLATFORM JARINGAN PEER TO PEER PADA MOBILE DEVICE UNTUK APLIKASI FILE SHARING

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

BAB II LANDASAN TEORI. Basis Data Terdistribusi didefinisikan sebagai sebuah collection of multiple,

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

MODEL SISTEM TERDISTRIBUSI

Pemrograman Dasar M E T H O D / F U N G S I

FILE SERVICE DI DALAM SISTEM INFORMASI TERDISTRIBUSI

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

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

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

Komunikasi. Sistem Terdistribusi Reza Aditya Firdaus

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

Transkripsi:

Objek Terdistribusi dan Remote Invocation I Made Andhika, S.Kom Middleware Remote Procedure Call (RPC) client memanggil sebuah prosedur dan menjalankan pada komputer lain Pemanggilan tersebut sama seperti pemanggilan lokal Remote Method Invocation (RMI) Objek lokal memanggil method dari objek yang berada di komputer lain Pemanggilan tersebut sama seperti pemanggilan lokal Event based Distributed Programming Objek menerima pemberitahuan (notification) suatu event yang terjadi pada komputer/proses lain 1

Ciri ciri Transparansi Middleware Transparansi Lokal Pemanggilan pada RMI dan RPC tanpa mengetahui lokasi method/prosedur yang dipanggil Transparansi Protokol Transport Protokol request/reply digunakan untuk penerapan RPC dapat menggunakan beberapa protokol transport Transparansi Platform Menggunakanpresentasi idt data eksternal kt Transparansi Bahasa Pemrograman Dengan menggunakan bahasa yang tidak tergantung bahasa pemrograman, yaitu Interface Definition Languages, seperti IDL CORBA Antarmuka RMI dan RPC Antarmuka (interface) didefinisikan untuk setiap objek Menyediakan definisi sekumpulan method Menyembunyikan semua rinci implementasi tiap method Pengaksesan hanya dapatterjadi melalui llimethod yang terdefinisikan pada antarmuka Khusus untuk antarmuka pada sistem terdistribusi Tidak ada akses langsung ke remote variabel Menggunakan mekanisme message passing untuk pengiriman data objek dan variabel Menerapkan Protokol request reply Mekanisme passing paramater lokal (by value, by reference) tidak dapat diterapkan untuk pemanggilan remote Harus menggunakan format request dan reply Pointer tidak valid untuk remote address space Pointer adalah untuk local address space 2

Antarmuka RMI dan RPC Antarmuka RPC dan RMI sering ditinjau sebagai sistem client/server service interface (dalam model dlclient server) spesifikasi prosedur dan method yang ditawarkanoleh server remote interface (dalam model RMI) Spesifikasi method sebuah objek yang dipanggil oleh objek dari proses lainnya Interface Definition Language Tidak mungkin mengakses secara langsung variabel dalam class remote Oleh karena itu, akses hanya melalui suatu antarmuka IDL dikompilasi untuk menyesuaikan dengan bahasa pemrograman yang digunakan Contoh: CORBA IDL // In file Person.idl struct Person { string name; string place; long year; }; interface PersonList { readonly attribute string listname; void addperson(in Person p) ; void getperson(in string name, out Person p); long number(); }; 3

Komponen Model Objek Referensi Objek Menunjuk pada objek sebuah class Dapat dinyatakan ke variabel, passing sebagai argumen dan dihasilkan dari method Antarmuka Mendefinisikan method, parameter, tipe pengembalianmethod Aksi (method) Dimulai dengan pemanggilan method dari objek lain Pengaruh yang mungkin State objek yang dipanggil methodnya mungkin berubah Dapat mempengaruhi pemanggilan method berikutnya Exception Reaksi dari sistem atau pemakai terhadap situasi kesalahan atau yang tidak diharapkan Garbage Collection Pembuangan resource (memori) yang digunakan objek yang tidak direferensikan oleh objek dan tidak digunakan lagi Model Objek Terdistribusi Mengadopsi model client/server Server memelihara objek dan membolehkan remote objek untuk mengakses method objek tersebut yang dikhususkan untuk pemakaian definisi antarmuka Client memanggil method yang ditawarkan oleh server menggunakan remote method invocation (RMI) RMI menerapkan protokol request/reply Request membawa referensi remote method dan remote objek dalam suatu parameter ke server reply mengembalikan parameter (hasil dari RMI) ke client 4

Model RMI Object Reference Pada gambar slide sebelumnya, objek B dan F adalah objek remote yang menerima pemanggilan RMI Dalam setiap pemanggilan, client mendasarkan pada referensi objek remote (objek server) yang memiliki format umum : Dapat dipertukarkan sebagai parameter atau hasil suatu method Model RMI Object Reference Remote interface mendefinisikan method apa saja yang dapat diakses oleh client Pada contoh gambar slide 8, objek B dan F harus memiliki remote interface Contoh : CORBA menggunakan IDL untuk definisi Interface objek server RMI menggunakan interface Java untuk definisi objek server 5

Model RMI Else? Actions Disebabkan oleh adanya pemanggilan method Jika pemanggilan terjadi antar proses atau komputer yang berbeda, maka RMI digunakan untuk menyebabkan adanya action. Untuk menggunakan RMI, sekali lagi client harus butuh menyimpan referensi objek server. Contoh gambar slide 8, objek A harus menyimpan referensi objek server B Contoh lain : objek A dapat memanggil method objek F melalui objek B Garbage Collection Menerapkan distributed garbage collection, yaitu koordinasi antara garbage collection lokal dengan remote Exception RMI harus mampu membangkitkan exception jika ada suatu kesalahan sewaktu invocation, seperti server crash, server terlalu sibuk (timeout), client crash Mampu melakukan recovery terhadap kesalahan Protokol Request/Reply untuk RMI public byte[] dooperation (RemoteObjectRef o, int methodid, byte[] arguments) sends a request message to the remote object and returns the reply. The arguments specify the remote object, the method to be invoked and the arguments of that method. public byte[] getrequest (); acquires a client request via the server port. public void sendreply (byte[] reply, InetAddress clienthost, int clientport); sends the reply message reply to the client at its Internet address and port. 6

Masalah Perancangan untuk RMI Semantik Pemanggilan RMI dooperation() dapat diterapkan dalam beberapa cara untukmenyediakanjaminan pengirimanyang gberbeda Retry request message : pengiriman ulang request walaupun reply diterima atau server diasumsikan gagal Duplicate filtering : apakah dilakukan filtering terhadap request yang sama atau tidak Ketika semua request yang dikirim ulang diterima server, ada dua kemungkinan yang dilakukan objek server Retransmission i of result : apakah khmampu menyimpan (caching) hasil reply, sehingga jika memang perlu melakukan retransmisi ulang tidak perlu melakukan eksekusi kembali Repeated execution prosedur Dari dua kemungkinan kemungkinan dua operasi tersebut, memunculkan beberapa semantik invocation Semantik Pemanggilan RMI Maybe Pemanggil tidak mengetahui apapun apakah operasi dieksekusi atau tidak. Di sini tidak ada mekanisme fault tolerance 7

Semantik Pemanggilan RMI At least once Pemanggil (invoker) menerima : Hasil, atau Exception, jika tidak ada hasil yang diterima Jika ada hasil yang diterima, berarti pemanggil mengetahui bahwa operasi telah dilakukan paling tidak sekali, namun tidak mengetahui jika exception dihasilkan At most once Pemanggil menerima : Hasil, pemanggil mengetahuibahwa bh operasi telah lhdl dilakukan k sekali, kl atau Exception yang memberikan informasi bahwa tidak ada hasil yang diterima, dalam hal ini operasi dilakukan sekali atau tidak sama sekali Contoh : JavaRMI dan CORBA CORBA memungkinkan semantik maybe ketika tidak ada hasil yang dikembalikan Implementasi RMI Communication module request/reply message Di server : Memilih dispatcher untuk class objek yang dipanggil berdasar objek reference dari invoker Menghasilkan lokal reference dari remote reference module 8

Implementasi RMI Remote Reference Module Translasi antara lokal dan remote objek reference menggunakan remote object table Berisi data semua remote object dan proxy yang dipelihara oleh server Digunakan ketika marshaling dan unmarshaling remote object reference RMI Sublayer terdiri dari Proxy (di client), tempat penyimpan lokal untuk remote objek Dispatcher (di server), menerima request dan menggunakan methodid untuk memilih message di skeleton Skeleton (di server), menerapkan method dalam remote interface Argumen argument unmarshaling Memanggil method yang sesuai pada remote objek Menunggu selesainya pemanggilan Melakukan marshaling hasil Komponen RMI (2) threads in server Setiap pemanggilan suatu method remote biasanya diberikan satu thread tersendiri untuk menjalankan method tersebut Activation of remote object Mengaktifkan remote objek jika diperlukan saja CORBA : Repository Persistent Object store Objek remote dijamin dalam keadaan live. Tapi pengaktifannya tergantung request, dan jika sudah tidak dibutuhkan objek remote tersebut masuk dalam keadaan pasif. Membutuhkan layanan Persistent Object (CORBA) 9

Komponen RMI (3) factory methods Fakta: antarmuka objek remote tidak dapat memasukkan constructor. Program server berisi class untuk dispatcher dan skeleton kl bersama dengan class remote objek yang didukung (disebut dengan servant). Program server ada bagian inisialisasi yang bertanggung jawab dalam pembuatan remote objek di server, atau Pembuatan remote objek di server di dasarkan pada request dari client. Pembuatan remote objek ini juga sering dilakukan proses binding. Untuk pembuatan remote objek berdasar request dari user, pada antarmuka objek remote harus ada definisi factory method Binders Layanan yang memelihara pemetaan dari kontek nama objek ke remote object references 10

Distributed Garbage Collection Algoritma : Tiap server memelihara daftar proses yang menyimpan referensi objek remote untuk setiap objek remote yang digunakan Ketika client menerima sebuah referensi remote ke objek remote X, memanggil addref(x) ke server, dan server menambah X ke daftar di server Ketika garbage collector client diberi informasi oleh proxy bahwa objek X tidak diperlukan lagi, akan dikirim removeref(x) ke server, dan server menghapus X dari daftar Ketik daftar kosong, dan tidak ada referensi lokal ke X, kumpulkan resource yang digunakan X melalui local garbage collector server Event dan Notification Event disebabkan adanya pemanggilan method atau pengiriman message Event mengubah status objek Beberapa remote objek di lokasi yang berbeda dapat diinformasikan suatu event pada suatu objek lain secara bersamaan, contoh : Dokumen yang berubah Seorang client baru bergabung dengan group Menerapkan paradigma publish subscribe Objek yang menghasilkan event, mempublishkan tipe event yang akantersedia untuk diamati oleh objek lain Objek yang ingin menerima notification dari objek yang mempublishkan eventnya, melakukan subscribe ke tipe event yang diinginkan Karakteristik : Heterogen asynchronicity 11

Arsitektur Event Notification Contoh : CORBA Event Service Java JINI Distributed Event 12