Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Inter Process Communication Risanuri Hidayat, Ir., M.Sc.

Presentasi serupa


Presentasi berjudul: "Inter Process Communication Risanuri Hidayat, Ir., M.Sc."— Transcript presentasi:

1 Inter Process Communication Risanuri Hidayat, Ir., M.Sc.

2 Model-model IPC RPC (Remote Procedure Call) RMI (Remote Method Invocation) MOM (Message-Oriented Middleware) Stream

3 Lapisan-lapisan Protocol ISO (International Standard Organization)  Mengembangkan Reference Model yang disebut Open Systems Interconnection Reference Model (OSI Model) OSI memungkinkan komunukasi dengan sistem yang terbuka Komunikasi dilakukan dengan aturan-aturan (standard) mengenai format, isi, maksud pesan yang dikirim/diterima.  Aturan-aturan formal itu dinamakan PROTOCOL Ada 2 tipe protocol  Connection Oriented  Connection less

4 Lapisan-lapisan Protocol Application Presentation Session Transport Network Data-link Physical Application Presentation Session Transport Network Data-link Physical Network

5 Lapisan-lapisan Protocol Data Data-link Network Transport Session Presentation Application Data-link trailer Header Physical

6 Lapisan-lapisan Protocol Lower-Level Protocol  Physical  Data-link  Network Transport  TCP (Transmission Control Protocol) connection-oriented  UDP (Unreliable Datagram Protocol) connection less  RTP (Real-time Transport Protocol) Higher-Level Protocol  Session (dialog control, sinkronisasi)  Presentation  Application (HTTP, FTP)  Middleware (Setara dengan Session dan Presentation)

7 Remote Procedure Call Suatu program dimungkinkan memanggil prosedur yang berada di lokasi yang lain Menjadi kompleks jika mesin tidak identik Conventional Procedure Call: count = read( fd, buff, nbytes) fd: file buff: buffer nbytes: jumlah byte yang akan dibaca

8 Remote Procedure Call Conventional Procedure Call  Saat pemanggilan prosedur, program mendorong parameter-parameter tersebut ke dalam stack (Last one First)  Setelah selesai, prosedur memasukkan nilai return ke suatu register, menghapus return address, dan mengirim control back ke pemanggil. Pemanggil kemudian menghapus parameter2 dari stack dan kembali ke state biasa nbytes buff fd Return address Lokal variabel milik read Lokal variabel milik Main main () { count = read( fd, buff, nbytes) ….. }

9 Remote Procedure Call RPC harus dibuat sebisa mungkin seperti lokal Pemanggil dibuat tidak sadar bahwa procedure yang dipanggil adalah remote Proses yang terjadi antara main() dengan read() sama, pada CPC dan RPC Yang membedakan, pada RPC, pekerjaan tidak dilakukan sendiri, tetapi ia menge-pack dan mengirimkan data itu ke Remote untuk dikerjakan di Remote

10 Remote Procedure Call 10 langkah RPC 1.Prosedur client memanggil client stub 2.Client stub membuat pesan dan memanggil OS lokal 3.OS client mengirim pesan ke OS remote 4.Remote OS memberikan pesan ke server stub 5.Server stub meng-unpack parameter2 dan memanggil server 6.Server mengerjakan operasi, dan me-return hasilnya ke server stub 7.Server stub mem-pack hasil tsb dan memanggil OS lokalnya 8.OS server mengirim pesan (hasil) ke client OS 9.Client OS memberikan pesan tersebut ke client stub 10.Client stub meng-unpack hasil dan me-return hasil ke client client server request Call remote procedure reply Return value

11 RPC: Parameter Passing Dilakukan oleh (client,server) stub Packing parameter  parameter marshaling Client Process k=add(i,j) proc:”add” Int: iInt: j Client stub Client OS Server Process k=add(i,j) proc:”add” Int: iInt: j Server stub Server OS proc:”add” Int: iInt: j public add(i,j)

12 RPC: Doors Lokal IPC, yaitu IPC pada mesin yang sama Doors, prosedur di dalam server process yang bisa dipanggil oleh process lain (client) dalam komputer yang sama Server process me-register door supaya bisa dipanggil proses lain

13 RPC: Doors Client Process k=add(i,j) proc:”add” Int: iInt: j Client stub Client OS Server Process k=add(i,j) proc:”add” Int: iInt: j Server stub Server OS proc:”add” Int: iInt: j public add(i,j) Komputer

14 RPC: Asynchronous RPC Pemanggil tidak semata-mata hanya menunggu hasil dari remote Pemanggil tetap bekerja sambil menunggu hasil dari remote Hasil dari remote datang dengan meng-interupt pemanggil client server request Call remote procedure Return value acc ack

15 Remote Object Invocation Pengembangan RPC, yang dikirim adalah object, bukan hanya data Object  perwujudan dari class, mengandung data (state), dan operasi (metode) Metode-metode nampak melalui interface Satu object bisa meng-implement banyak interface Satu interface bisa di-implement oleh banyak macam object Pemisahan antara inteface dan object adalah hal krusial di dalam distributed object. Interface berada di dalam satu mesin, sementara object berada di mesin yang lain

16 Remote Object Invocation Ketika client mem-bind ke suatu distributed object, proxy (implementasi interface dari object) me-marshal method invocation menjadi pesan, dan meng-unmarshal pesan reply menjadi result Proxy analog dengan client stub Client Client invokes a method Client OS Server Skeleton Server OS Network Proxy object state method interface yang sama Network

17 Remote Object Invocation Object yang sebenarnya berada di server Object (di server) menawarkan interface yang sama dengan interface di client Compile-time object: object adalah perwujudan dari class  Java, C++ Run-time object: independent language  CORBA Persistent object: object yang selalu ada walaupun tidak masuk dalam proses server Transient object: object yang hanya exist jika server sedang berproses dengannya

18

19


Download ppt "Inter Process Communication Risanuri Hidayat, Ir., M.Sc."

Presentasi serupa


Iklan oleh Google