Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
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 1 2 3 4 5 6 7
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 client request Call remote reply
server request Call remote procedure reply Return value 10 langkah RPC Prosedur client memanggil client stub Client stub membuat pesan dan memanggil OS lokal OS client mengirim pesan ke OS remote Remote OS memberikan pesan ke server stub Server stub meng-unpack parameter2 dan memanggil server Server mengerjakan operasi, dan me-return hasilnya ke server stub Server stub mem-pack hasil tsb dan memanggil OS lokalnya OS server mengirim pesan (hasil) ke client OS Client OS memberikan pesan tersebut ke client stub Client stub meng-unpack hasil dan me-return hasil ke client
11
RPC: Parameter Passing
Dilakukan oleh (client,server) stub Packing parameter parameter marshaling Client Process k=add(i,j) proc:”add” Int: i Int: j Client stub Client OS Server Process Server stub Server OS 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) Client stub Client OS
proc:”add” Int: i Int: j Client stub Client OS Server Process Server stub Server OS 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
Client Client invokes a method Client OS Server state method object interface interface yang sama Proxy Skeleton Server OS Network Network 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
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
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.