Sistem Terdistribusi

dokumen-dokumen yang mirip
Sistem Terdistribusi TIK-604

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

2.1. Sistem Komunikasi

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

BAB V Remote Procedure Call (RPC)

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

TUGAS Mata Kuliah : Sistem Terdistribusi

KOMUNIKASI. Universitas Informatika dan Bisnis Indonesia. 2.1 Komunikasi Data

Bab 3: Proses-Proses. Konsep Proses

Komunikasi Antar Proses Interprocess Communication (IPC)

BAB II LANDASAN TEORI

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

PEMROGRAMAN SISTEM TERSEBAR

Komunikasi Antar Proses

Sistem Terdistribusi TIK-604

Bab 3: Proses-Proses. Konsep Proses

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

Connectionless service UDP (User Datagram Protocol)

TUGAS JARINGAN KOMPUTER

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

MODEL REFERENSI OSI & TCP/IP. Budhi Irawan, S.Si, M.T

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

TCP DAN UDP. Budhi Irawan, S.Si, M.T

TRANSPORT LAYER DEFINISI

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

SISTEM OPERASI (MANAJEMEN PROSES)

Sejarah TCP/IP TCP/IP

Interprocess communication atau komunikasi antar proses

Fungsi Lapis Transport

Operating System. I/O System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

PEMROGRAMAN JARINGAN

SISTEM OPERASI TERDISTRIBUSI

Pemrograman Jaringan

Materi 7 Layer 4 Transport

Fungsi Lapis Transport

BAB 1 Service Oriented Architecture 1.1 Evolusi SOA

Tugas Jaringan Komputer

PROTOKOL KOMUNIKASI. Budhi Irawan, S.Si, M.T

TCP dan Pengalamatan IP

Fase pertama: single user, single tasking

BAB II DASAR TEORI. Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol

Agenda. Protokol TCP/IP dan OSI Keluarga Protokol TCP/IP

MODUL 2 WIRESHARK Protokol TCP

Komunikasi. Sistem Terdistribusi Reza Aditya Firdaus

Sistem terdistribusi 3. Interprocess Communication

1. Pendahuluan. 2. Tinjauan Pustaka

DISTRIBUTED FILE SYSTEM. Sistem terdistribusi week 11

Refrensi OSI

TRANSPORT LAYER. Fikri Fadlillah, ST

REVIEW DAN REVISI BUKU

Networking Model. Oleh : Akhmad Mukhammad

Minggu 6 Transport Layer

REVIEW KARAKTERISTIK DAN MODEL SISTEM TERDISTRIBUSI

JARINGAN KOMPUTER Layanan Dari TCP dan UDP Protocol

User Datagram Protocol (UDP)

Transport Layer. Oleh : Akhmad Mukhammad

Mengenal Komunikasi Data Melalui Layer OSI & TCP/IP

MODUL 2 WIRESHARK Protokol TCP

Transport Layer El E ectro ect n ro ic En E gineerin ri g Pol o ytech tec nic In I stitu sti t of o Surabaya ITS Kampus ITS Sukolilo Surabaya 60111

Analisis Perbandingan Performansi Server VoIP. berbasis Parallel Processing

12 Input / Output. Sistem I/O. Hardware I/O. Struktur PC Bus

REVIEW MODEL OSI DAN TCP/IP

1. Menggunakan model OSI dan TCP/IP dan protokol-protokol yang terkait untuk menjelaskan komunikasi data dalam network. 2. Mengidentifikasi dan

Pemrograman Jaringan 11 RMI

Pemrograman Jaringan

BAB I PENDAHULUAN 1.1 Latar Belakang

Lapisan ini merupakan lapisan yang akan melakukan transmisi data antara perangkat-perangkat jaringan yang saling berdekatan di dalam sebuah wide area

Protokol TCP/IP. Oleh: Eko Marpanaji

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

TRANSPORT LAYER. Aplikasi dan Operasi pada TCP dan UDP

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

Sistem Operasi. Proses dan Penjadwalannya. Aditya Wikan Mahastama Antonius Rachmat C

CONTOH PENDSTRIBUSIAN HARDWARE

LAPISAN TRANSPORT. Budhi Irawan, S.Si, M.T

DISTRIBUTED FILE SYSTEMS

Materi Mata Kuliah Jaringan Komputer Universitas Indo Global Mandiri

Bab 9. Circuit Switching

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

Protokol Jaringan. Oleh : Tengku Mohd Diansyah,ST,M.Kom

Sistem I/O. Hardware I/O Interface Aplikasi I/O Subsystem Kernel I/O Transformasi Permintaan (Request) I/O ke Operasi Hardware Stream Unjuk Kerja

KOMUNIKASI DATA Kontrol Komunikasi

DATA LINK LAYER. Gambar. 1: Fungsi dari Data Link Layer. Gambar. 2: PDU pada Data Link Layer berupa Frames

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

Text Berisi kode programnya

End-to-End Protocols (Simple Demultiplexer and Reliable Byte Stream)

JARINGAN KOMPUTER. Disusun Oleh : Nama : Febrina Setianingsih NIM : Dosen Pembimbing : Dr. Deris Stiawan, M.T., Ph.D.

OSI LAYER. Komunikasi Data STMIK AMIKOM Yogyakarta Khusnawi, S.Kom, M.Eng

Gambar 2.1 Prinsip RPC pada Client-Server

TASK V OBSERVING TCP/IP, PORT USING COMMAND PROMPT AND WIRESHARK

Penelusuran Data Melalui Jaringan Internet

Jaringan Komputer Switching

BAB II LANDASAN TEORI. dihubungkan untuk berbagi sumber daya (Andi Micro, 2011:6). Jaringan Komputer

I. DEFINISI. Definisi RPC

Pemrograman Jaringan 9. Connectionless Oriented Programming

BAB 2 DASAR TEORI. Iklan berasal dari sebuah kata dalam bahasa melayu, yaitu i lan atau i lanun

BAB II DASAR TEORI. Protokol adalah seperangkat aturan yang mengatur pembangunan koneksi

Bab 5: Lapisan Transport

OSI LAYER & TCP/IP. Deris Stiawan.S.Kom.MT. Fakultas Ilmu Komputer Universitas Sriwijaya

Transkripsi:

Sistem Terdistribusi TIK-604 Remote Procedure Calls Kuliah 03: 12/13 Maret 2018 Husni

Hari ini Bahasan terakhir: Prinsip-prinsip networking Prinsip Networking: Encapsulation, Routing, dan kendali Congestion Kuliah hari ini: Remote Procedure Calls Sockets Remote Invocations Pengumuman: Tugas?

Entitas yang Berkomunikasi dalam Sistem Terdistribusi Entitas yang berkomunikasi dalam sistem terdistribusi dapat dikelompokkan ke dalam dua tipe: Entitas berorientasi sistem Process Thread Node (program komputer yang sedang berjalan) (sub-program) (mesin/komputer/smartphone) Entitas berorientasi masalah (problem) Obyek (dalam pendekatan berbasis object-oriented programming) Bagaimana entitas dalam sistem terdistribusi berkomunikasi?

Paradigma Komunikasi Paradigma komunikasi menggambarkan dan mengelompokkan metode-metode yang dapat digunakan oleh entitas untuk berinteraksi dan bertukar data.

Klasifikasi Paradigma Komunikasi Paradigma komunikasi dapat dikategorikan ke dalam tiga tipe berdasarkan pada tempat entitas tersebut berada. Jika entitas berjalan pada: 1. Address-Space Sama Hari ini, akan didiskusikan bagaimana entitas yang berada pada komputer jaringan berkomunikasi dalam sistem terdistribusi menggunakan komunikasi socket dan remote invocation Global variables, Procedure calls, 2. Satu Komputer tetapi berbeda Address-Space Files, Signals, Shared Memory 3. Komputer di Jaringan Socket Communication Remote Invocation

Lapisan Middleware Applications, Services Lapisan Middleware Remote Invocation Primitif IPC (misal Socket) Transport Layer (TCP/UDP) Network Layer (IP) Data-Link Layer Physical Layer 6

Socket UDP UDP menyediakan komunikasi connectionless, tidak ada acknowledgements ataupun message retransmissions Mekanisme komunikasi: Server membuka suatu socket UDP SS pada nomor port tertentu sp, Socket SS menunggu datangnya request Client membuka suatu socket UDP CS pada nomor port acak cx Socket Client CS mengirimkan message ke ServerIP dan port sp Socket Server SS dapat mengirimkan data balik ke CS Client CS cx SS.receive(recvPacket) CS.Send(msg, ServerIP, sp) Server SS sp Tidak ada ACK yang akan dikirimkan oleh receiver SS.Send(msg, recvpacket.ip, recvpacket.port) H = Host komputer H S n = Socket S = Port n

UDP: Perhatian Rancangan Sender harus secara eksplisit memotong message yang panjang ke dalam potonganpotongan lebih kecil sebelum ditransmisikan Ukuran maksimum yang disarankan untuk transmisi: 548 byte. Messages boleh dihantarkan secara out-of-order Jika perlu, programmer harus mengurut-ulangkan paket-paket Komunikasi tidak reliable (tidak dapat diandalkan) Message mungkin dijatuhkan karena check-sum error atau buffer overflow pada router Receiver harus mengalokasikan buffer yang cukup besar untuk menampung message dari sender Jika tidak message akan terpotong.

Socket TCP TCP menyediakan penyampaian secara in-order, reliability, dan kendali congestion Mekanisme komunikasi: Server membuka suatu TCP server socket SS pada port tertentu sp Server menunggu datangnya request (menggunakan fungsi accept) Client membuka suatu TCP socket CS pada nomor port acak cx CS menginisiasi connection initiation message ke ServerIP dan port sp Server socket SS mengalokasikan socket baru NSS pada nomor port acak nsp untuk client itu CS dapat mengirimkan data ke NSS Client nss = SS.accept() Server CS cx SS sp nss nsp

Keunggulan Utama TCP TCP memastikan penyampaian pesan secara in-order Aplikasi dapat mengirimkan message berukuran berapa pun TCP memastikan reliable communication melalui penggunaan acknowledgements dan retransmissions Kendali kemacetan dari TCP mengatur ulang kecepatan sender, sehingga mencegah network overload.

Lapisan Middleware Applications, Services Lapisan Middleware Remote Invocation Primitif IPC (Misal Socket) Transport Layer (TCP/UDP) Network Layer (IP) Data-Link Layer Physical Layer 11

Remote Invocation Remote invocation memungkinkan suatu entitas memanggil prosedur untuk dieksekusi pada komputer lain tanpa programmer harus secara eksplisit menuliskan kode rincian komunikasinya. Middleware yang mendasari akan mengambil alih urusan komunikasi kasarnya Programmer dapat secara transparan berkomunikasi dengan entitas remote Akan dibahas dua jenis remote invocation: a.remote Procedure Calls (RPC) b.remote Method Invocation (RMI)

Remote Procedure Calls (RPC) RPC memungkinkan sender berkomunikasi dengan receiver mengunakan suatu panggilan prosedur sederhana Tidak ada komunikasi atau message-passing tampak untuk programmer Pendekatan RPC dasar: Mesin A: Client Mesin B: Server Client Program Modul Komunikasi Modul Komunikasi Server Procedure add(a,b); Request Response int add(int x, int y) { return x+y; } Client process Client Stub Server Stub (Skeleton) Server process

Client Stub Komponen client stub: Dipanggil oleh kode pengguna sebagai suatu prosedur lokal Bungkus (atau serializes atau marshals) parameter-parameter ke dalam paket request (misalnya request-pkt) Jalankan suatu rutin transport sisi client (Misalnya makerpc(request-pkt, &reply-pkt)) Buka bungkusan (atau de-serializes atau unmarshals) reply-pkt ke dalam parameter-parameter output Kembali ke kode pengguna

Server Stub Komponen server stub: Dipanggil setelah suatu rutin transport sisi server (misalnya getrequest()) dikembalikan Unmarshals arguments, de-multiplexes opcode, dan memanggil kode server lokal Marshals arguments, panggil rutin transport sisi server (misal sendresponse()), dan kembalikan ke loop server Misal: Loop utama server: while (1) { get-request (&p); /* blocking call */ execute-request (p); /* demux based on opcode */ }

Tantangan dalam RPC Parameter passing melalui marshaling Parameter dan hasil dari prosedur harus ditransfer pada jaringan sebagai bit-bit Representasi Data Representasi data harus seragam Arsitektur dari mesin sender dan receiver boleh berbeda Kerusakan/kegagalan independen Client dan server dapat mengalami kegagalan secara independen

Tantangan dalam RPC Parameter passing melalui marshaling Parameter dan hasil prosedur harus ditransfer pada jaringan sebagai bit-bit Representasi data Representasi data harus seragam (uniform) Arsitektur dari mesin sender dan receiver boleh berbeda Independensi kegagalan Client dan server dapat mengalami kegagalan secara independen

Parameter Passing melalui Marshaling Mengemasi (packing) parameter-parameter ke dalam suatu message yang akan di-transmit-kan pada jaringan disebut parameter marshalling Parameter-parameter untuk prosedur dan hasilnya harus disusun sebelum mengirimkannya pada jaringan Dua cara yang dapat digunakan untuk melewatkan parameter: 1. Parameter nilai (value) 2. Parameter referensi

1. Melewatkan Parameter Nilai Parameter nilai mempunyai informasi yang lengkap mengenai variabel, dan dapat secara langsung di-encode-kan ke dalam message Misal: integer, float, character Nilai-nilai dilewatkan melalui call-by-value Perubahan yang dibuat oleh prosedur callee tidak tercerminkan dalam prosedur caller.

2. Melewatkan Parameter Referensi Melewatkan parameter referensi seperti parameter nilai dalam RPC dapat mengakibatkan hasil tak sesuai dikarenakan dua alasan: a. Tidak validnya parameter referensi pada server Parameter referensi valid hanya di dalam ruang alamat client Solusi: Lewatkan parameter referensi dengan menyalin data yang direferensi b. Perubahan parameter referensi tidak tercerminkan balik pada client Solusi: Copy/Restore data tersebut Salin data yang direferensi bersama dengan parameternya Salin-balik nilai pada server ke client.

Tantangan dalam RPC Parameter passing melalui marshaling Parameter dan hasil prosedur harus ditransfer pada jaringan sebagai bit-bit Representasi data Representasi data harus seragam (uniform) Arsitektur dari mesin sender dan receiver boleh berbeda Independensi kegagalan Client dan server dapat mengalami kegagalan secara independen

Representasi Data Komputer-komputer dalam Sistem Terdistribusi sering mempunyai arsitektur dan sistem operasi berbeda Ukuran dari tipe data berbeda Misal: Suatu tipe data long panjangnya 4-byte dalam Unix 32-bit, sedangkan di sistem Unix 64 bit panjangnya 8-byte. Format dimana data disimpan berbeda Misal: Intel menyimpan data dalam format little-endian, sedangkan SPARC menyimpan dalam format big-endian. Client dan server harus menyepakati bagaimana data sederhana direpresentasikan dalam message Misal: Format dan ukuran dari tipe data seperti integer, char dan float

Tantangan dalam RPC Parameter passing melalui marshaling Parameter dan hasil prosedur harus ditransfer pada jaringan sebagai bit-bit Representasi data Representasi data harus seragam (uniform) Arsitektur dari mesin sender dan receiver boleh berbeda Independensi kegagalan Client dan server dapat mengalami kegagalan secara independen.

Independensi Kegagalan Dalam kasus lokal, client dan server hidup atau mati bersama Dalam kasus remote, client menemui jenis kegagalan baru (lebih lanjut di pertemuan berikutnya) Kegagalan jaringan (network failure) Crash pada mesin Server Crash pada proses Server Jadi, kode penanganan kegagalan harus lebih teliti (dan secara esensi pasti lebih kompleks)

Tipe Remote Procedure Call Remote procedure calls dapat bersifat: Sinkron (Synchronous ) Tak-Sinkron (Asynchronous atau Sinkron tertunda (deferred))

RPC Sinkron vs. Tak-Sinkron Suatu RPC dengan request-reply sempurna memblokir client sampai server mengembalikan Blocking membuang sumber daya di client RPC Asinkron digunakan jika client tidak memerlukan hasil dari server Server dengan segera mengirimkan ACK balik ke client Client melanjutkan eksekusi setelah ACK dari server Client wait for result client wait for acceptance call remote procedure Server request call local procedure and return results RPC Sinkron reply return from call waktu server call remote procedure request call local procedure RPC Asinkron return from call accept request waktu

RPC Sinkron Tertunda RPC Asinkron juga bermanfaat saat suatu client ingin hasilnya, tetapi tidak mau diblokir sampai pemanggilan selesai Client menggunakan RPC sinkron tertentuda (deferred synchronous) Satu RPC request-response dipecah menjadi dua RPC Pertama, client memicu suatu RPC Asinkron pada server Kedua, ketika selesai, server calls-back client untuk menyampaikan hasilnya client wait for acceptance interrupt client call remote procedure return from call return results acknowledge request accept request server call local procedure call client with asynchronous RPC waktu

Remote Method Invocation (RMI) RMI mirip dengan RPC, tetapi dalam dunia obyek terdistribusi Programmer dapat menggunakan kekuatan ekspresif dari objectoriented programming RMI tidak hanya membolehkan pengiriman parameter nilai, tetapi juga menyertakan referensi obyek Dalam RMI, pemanggilan obyek dapat meminta eksekusi suatu metode pada obyek jauh (remote).

Remote Object dan Modul Pendukung Dalam RMI, obyek yang mempunyai metode-metode yang dapat dijalankan dari jauh dikenal sebagai remote objects Remote objects mengimplementasikan remote interfaces Selama panggilan metode tertentu, sistem harus memutuskan apakah metode tersebut akan dipanggil pada obyek lokal atau jauh Panggilan lokal harus dilakukan pada obyek lokal Panggilan jauh harus dipanggil melalui remote method invocation Remote Reference Module bertanggungjawab untuk menerjemahkan antara referensi obyek lokal dan jauh

Aliran Kendali RMI Mesin A: Client Modul komunikasi Modul Komunikasi Mesin B: Server Obj A Proxy for B Request Skeleton and Dispatcher for B s class Remote Reference Module Response Remote Reference Module Remote Obj B

Lapisan Middleware Applications, Services Lapisan Middleware Remote Invocation Primitif IPC (Misal: Socket) Transport Layer (TCP/UDP) Network Layer (IP) Data-Link Layer Physical Layer 31

Remote Procedure Calls (RPC) RPC memungkinkan sender berkomunikasi dengan receiver mengunakan panggilan prosedur sederhana Tidak ada komunikasi atau message-passing yang tampak bagi programmer Pendekatan RPC dasar: Mesin A: Client Mesin B: Server Client Program Modul Komunikasi Modul Komunikasi Server Procedure add(a,b) ; Request Response int add(int x, int y) { return x+y; } Proses Client Client Stub Server Stub (Skeleton) Proses Server

Primitif Transport Modul komunikasi RPC (atau transport) sebagian besar didasarkan pada trio primitif komunikasi, makerpc(.), getrequest(.) dan sendresponse(.) Client makerpc(.) (tunggu) (lanjutkan) Minta Layanan Kirim Hasil Server getrequest(.) Pilih operasi Eksekusi operasi sendresponse(.) 33

Jenis Kegagalan Transport RPC dapat mengalami berbagai jenis kegagalan Type Jenis of Kegagalan Failure Description Penjelasan Crash Failure A server Server halts, berhenti, but was tetapi working telah correctly bekerja until dengan it stopped benar sampai ia dihentikan Omission Failure (kelalaian) A server Server fails gagal to respond merespon to incoming request requests yang masuk Receive Omission A server Server fails gagal to receive menerima incoming message messages masuk Send Omission A server Server fails gagal to send mengirimkan messages message Timing Failure A server s response lies outside the specified time interval Timing Failure (waktu) Respon server di luar interval waktu yang ditentukan Response Failure Response Failure Value Failure Value Failure State Transition Failure State Transition Failure A server s response is incorrect Respon server tidak tepat The value of the response is wrong Nilai dari respon salah The server deviates from the correct flow of control Server menyimpang dari aliran kendali yang benar Arbitrary Byzantine Failure A server may produce arbitrary responses at arbitrary times Byzantine Failure Server mungkin menghasilkan respon sembarang pada waktu sembarang 34

Mekanisme Timeout Untuk menangani kemungkinan suatu message request atau reply hilang, makerpc(.) dapat menggunakan suatu mekanisme timeout Ada berbagai opsi yang dapat dilakukan makerpc(.) setelah suatu timeout: Segera kembali dengan suatu indikasi kepada client bahwa request telah gagal Atau retransmit request tersebut berulang kali sampai suatu reply diterima atau server dianggap telah gagal. Bagaimana memilih suatu nilai timeout? At best, menggunakan statistika empiris/teoritis At worst, Tidak ada nilai yang bagus 35

Operasi Idempotent Dalam kasus ketika request message dikirim-ulang, server dapat menerimanya lebih dari sekali Ini dapat mengakibatkan suatu operasi dieksekusi lebih dari sekali untuk request yang sama Keberatan: Tidak setiap operasi dapat dieksekusi lebih dari sekali dan mendapatkan hasil sama sekali kalinya! Operasi yang dapat dieksekusi berulang dengan efek sama disebut operasi idempotent 36

Penyaringan Duplikat Untuk menghindari masalah dengan operasi, server harus: Mengenali messages berturut-turut dari client yang sama Secara monoton menaikkan sequence numbers dapat berlakukan Menyaring (filter) duplikat Saat menerima suatu request duplicate, server dapat Salah satu: Mengenksekusi-ulang (re-execute) operasi lagi dan reply Mungkin hanya untuk operasi idempotent Atau menghindari eksekusi ulang operasi melalui mempertahankan outputnya dalam suatu file (atau log) history non-volatile Mungkin perlu transactional semantics (lebih lanjut di kuliah selanjutnya) 37

Pilihan Implementasi Transport RPC dapat diimplementasikan dengan beberapa cara berbeda untuk menyediakan delivery guarantees berbeda. Pilihan utamanya adalah: 1. Pengulangan request service (sisi client): Mengontrol apakah melakukan retransmisi request service sampai suatu balasan diterima atau server dianggap telah gagal 2. Penyaringan Duplikat (server side): Mengontrol kapan retransmisi digunakan dan apakah menyaring request duplikat pada server 3. Penyimpanan Hasil (server side): Mengontrol apakah memelihara history dari pesan hasil sehingga memungkinkan balasan yang hilang diretransmisi tanpa harus melakukan eksekusi ulang operasi pada server. 38

Semantik Panggilan RPC Kombinasi tindakan yang mengakibatkan beraneka semantika yang mungkin bagi reliabilitas RPC Retransmit Retransmisi Request Pesan Message Request Tindakan Fault Tolerance Fault Tolerance Measure Duplicate Penyaringan Filtering Duplikat Eksekusi-ulang Re-execute Prosedur Procedure atau or Retransmisi RetransmitBalasan Reply Semantika Panggilan (Terkait Call Semantics dengan prosedur jauh) No No N/A N/A N/A N/A Maybe Maybe Yes Yes No No Re-execute Eksekusi ulang Procedure Prosedur At-least-once Yes Yes Yes Yes Retransmit Retransmisi Reply Balasan At-most-once Idealnya, kita menginginkan semantik exactly-once! 39

Lapisan Middleware Applications, Services Lapisan Middleware Remote Invocation Primitif IPC (Misal Socket) Transport Layer (TCP/UDP) Network Layer (IP) Data-Link Layer Physical Layer 40

RPC di atas UDP atau TCP Jika RPC di-layer-kan di atas UDP Retransmisi akan/dapat ditangani dengan RPC Jika RPC di-layer-kan di atas TCP Retransmisi akan ditangani oleh TCP Apakah masih perlu melibatkan ukuran fault-tolerance di dalam RPC? Ya, baca End-to-End Arguments in System Design oleh Saltzer et. al.

Careful File Transfer: Aliran Endpoint 1 Endpoint 2 1. Read F File Transfer App DCS OS (which includes a LFS) 4. Return F 2. Read F 3. Return F 5. Send F 6. Rcv F 7. Write F 8. Write F File Transfer App DCS OS (which includes a LFS) F F DCS = Data Communication System; LFS = Local File System

Careful File Transfer: Kemungkinan Ancaman Endpoint 1 Endpoint 2 File Transfer App 1. Faulty App DCS 5. Send F 5. Flaky Communication 6. Rcv F File Transfer App 1. Faulty App DCS 1. Read F 4. Return F 7. Write F OS (which includes a OS (which includes a 2. Faulty LFS 2. Faulty LFS LFS) LFS) 2. Read F 3. Return F 8. Write F 4. Corrupted F 4. Corrupted F F 3. Faulty HW Component F 3. Faulty HW Component DCS = Data Communication System; LFS = Local File System

Careful File Transfer: End-To-End Check & Retry Endpoint 1 menyimpan bersama F suatu checksum C A Setelah Endpoint 2 menulis F, ia membacanya lagi dari disk, menghitung checksum C B, dan mengirimkannya balik ke Endpoint 1 Endpoint 1 membandingkan C A dan C B Jika C A = C B, laksanakan transfer file Jika tidak, coba lagi transfer file

Careful File Transfer: End-To-End Check & Retry Berapa banyak mencoba lagi? Biasanya 1 jika kegagalannya jarang 3 kali percobaan ulang dapat mengindikasikan bahwa beberapa bagian sistem perlu perbaikan Bagaimana jika sistem komunikasi datanya menggunakan TCP? Hanya threat 5 (Misal: packet loss dikarenakan flaky communication) dieliminasi Frekuensi percobaan akan berkurang jika kesalahan disebabkan oleh sistem komunikasi Lebih banyak control traffic, tetapi hanya bagian hilang dari F yang perlu dikirimkan ulang Aplikasi transfer file masih perlu menerapkan tolok ukur keandalan endto-end!

Careful File Transfer: End-To-End Check & Retry Bagaimana jika sistem komunikasi datanya menggunakan UDP? Threat 5 (Misal: packet loss karena komunikasi serpihan) tidak dieliminasi - F perlu dihantarkan lagi oleh aplikasi jika tidak ada tindakan yang diambil untuk mengatasi ancaman ini Frekuensi percobaan ulang dapat bertambah Kinerja lebih buruk pada flaky links Aplikasi file transfer tersebut masih perlu menerapkan tolok-ukur reliabilitas end-to-end! Dalam dua kasus, aplikasi perlu menyediakan jaminan reliabilitas end-to-end!

Arsitektur Kuliah berikutnya