Anda di halaman 1dari 35

Sistem Terdistribusi dan

Aplikasinya
Dikompilasi Oleh
WW
Teknik Informatika-ITS
Referensi
 Distributed Systems: Concept and Design, 5th Edition
 Author: George Coulouris, Jean Dollimore, Tim Kindberg,
Gordon Blair Addison Wesley, 2011
 Modern Distributed Systems
 Andrew Tanenbaum
 Referensi lain: Wikipedia dan Google ^_^
 Prasyarat Kuliah
 Jaringan Komputer
 Pemrograman Berorientasi Object
 Pemograman Jaringan
Pengenalan Sistem Terdistribusi
 Sebuah sistem yang terdiri dari banyak
komputer-komputer otonom (berdiri sendiri),
berkomunikasi melalui jaringan komputer,
masing-masing mempunyai peran yang berdiri
sendiri
 Misalnya dalam melakukan komputasi
(perhitungan) atau pemrosesan informasi
Sistem Terdistribusi
 Sistem yang terdiri dari banyak komputer-komputer
independen yang terlihat sebagai sebuah sistem
tunggal yang terintegrasi
 Terdiri dari banyak komputer independen (memiliki
memori terpisah dan sistem operasi sendiri )
 Saling berkomunikasi/ berkoordinasi via jaringan
komputer
Goals dari Sistem Terdistribusi
 DistributionTransparency
 Fault Tolerance / Higher Availability
 Scalability
 Resource Accessibility
 Openness
Distribution Transparency
 Sebuah sistem terdistribusi yang tampak kepada para
penggunanya sebagai sebuah sistem yang tunggal
disebut sebagai sistem yang transparan.
 Pengguna bisa mengakses remote/distributed resource dengan
cara yang sama
 Menyembunyikan komponen-komponen (misalnya mesin)
dalam sistem yang terdistribusi
 Dipersepsikan sebagai satu kesatuan, tidak sebagai komponen-
komponen / mesin-mesin yang terpisah
Contoh Dimensi Tranparansi
Transparency Description

Access Hide differences in data representation & resource


access (enables interoperability)
Location Hide location of resource (can use resource without
knowing its location)
Replication Hide the possibility that multiple copies of the
resource exist (for reliability and/or availability)
Concurrency Hide the possibility that the resource may be shared
concurrently
Failure Hide failure and recovery of the resource.
Masalah Terkait Transparansi
 Target untuk mencapai tingkatan full transparansi untuk
seluruh aspek dari sistem terdistribusi adalah sangat sulit
 Misalnya menyembunyikan error jaringan termasuk mesin-
mesin yang ada didalamnya hapir tidak mungkin
 Proses yang lama belum tentu sebuah failure (seringkali susah
dibedakan)
 User bisa terletak di berbagai penjuru dunia, menyembunyikan
lokasi secara penuh mungkin bisa juga bukan hal yang
dikehendaki user (misal perbedaan bahasa, huruf mis. Jepang,
China, Russia dsb)
Arsitektur Sistem Terdistribusi
 Model Arsitektur dari Sistem Terdistribusi adalah
tampilan abstrak dari sistem yang umumnya
merepresentasikan :
 Komponen-komponen dari sistem terdistributsi
 Peletakan komponen-komponen dari sistem terdistribusi
 Interaksi-interaksi yang terjadi antar komponen-komponen
tersebut
Komponen Sistem Terdistribusi
 Komponen dari sebuah sistem terdistribusi adalah proses
 Proses umumnya adalah program yang running
 Contoh :
 Server process – sebuah running program yang mengeksekusi
kode server
 Client process – sebuah running program yang mengeksekusi
kode server
 Kedua proses tersebut berinteraksi dengan saling bertukar
message
Model Arsitektur Sistem Terdistribusi
 Secara Umum
 Client-Server
 Peer-to-Peer
 Variasi dari hal diatas
Client Server
 Sistem yang tersusun dari sekumpulan proses-proses yang
disebut Server yang memberikan layanan pada user yang
disebut Client
 Biasanya client-server model menggunakan interaksi protokol
request-reply berbasis pertukaran pesan, atau remote procedure
call (rpc) (pemanggilan procedure remote) atau remote methode
invocation (rmi) (pemanggilan method dari sebuah remote
object)
 Client umumnya mengirimkan request (permintaan) message kepada
server tentang service function yang dimilikinya
 Server melakukan pekerjakan yang diminta dan mengembalikan hasilnya
(misalnya data yang diproses) dan mengembalikan hasilnya (misalnya
data yang diinginkan) atau kode eror ketika pekerjaan yang diminta
tidak bisa dieksekusi
Client-Server Lanjutan

 Sebuah server dapat juga mengirimkan request layanan dari


server-server lainnya, dalam hubungan ini , server yang
dimaksud juga bertindak sebagai client
Layanan Multiple Server
 Bottleneck pada single server dan merupakan salah satu
titik lemah (single point of failure)
 Pembagian layanan pada server yang berbeda
 Replikasi data pada beberapa server
Peer-To-Peer
 Semua proses (object) melakukan role yang sama (hampir
sama)
 Proses-proses (object) berinteraksi secara sejajar ( client/server)
 Terjadi mekanisne sharing object / data dalam jumlah yang
besar dan terdistribusi
 Terjadi komunikasi untuk akses terhadap object-object data
dalam jaringan yang berada dalam mesin/node yang
terdistribusi dan membentuk link-link overlay layer
Interaksi dalam Sistem Terdistribusi
• Protocol Request-Reply Diimplementasikan diatas network protocol (e.g.
TCP or UDP )
•TCP Socket (Stream Based)
• http://docs.oracle.com/javase/tutorial/networking/sockets/readingWriting.ht
ml
•UDP Socket ( Datagram Based)
• https://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.h
tml
• Multicast Socket ( Datagram + Network Multicast Support)
• https://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.
html
Request Reply
 Komunikasi antara proses-proses/object dalam sistem
terdistribusi dilakukan melalui pertukaran pesan
 Request-Reply Message dalam Model Client/Server.
Remote Procedure Call (RPC) / Remote
Method Invocation
 Tujuannya, bagi Programmer agar membuat bahwa
pemrograman dalam lingkup terdistribusi (remote) seperti
dalam lingkungan yang tidak terdistribusi (lokal) 
(memberikan akses bagi programmer untuk mengakses
remote method/procedure)
 RMI (RPC) transparan : object /procedure pemanggil
tidak merasakan perbedaan (berarti) bahwa remote
procedure/method yang dipanggil berada di mesin yang
berbeda
Remote Procedure Call
 RPC (Remote Procedure Call) adalah suatu protokol yang
menyediakan suatu mekanisme komunikasi antar proses
yang mengijinkan suatu program untuk berjalan pada
suatu komputer tanpa terasa adanya eksekusi kode pada
sistem yang jauh (remote system).
 Contoh Tutorial
 XML-RPC
 https://www.tutorialspoint.com/xml-rpc/xml_rpc_examples.htm
 https://thrift.apache.org/
 JSON-RPC
 http://json-rpc.org/wiki/implementations
 Python XML-RPC
Remote Method Incovation
 Mirip seperti RPC tapi berorientasi objek → objek
terdistribusi (Java RMI , Python Remote Object)
 Persamaan dengan RPC
 Mendukung service interface
 Dibangun pada protokol RR dan call semantics yang sama
 Transparansi yang mirip
 Perbedaan dengan RPC
 Prosedural dan berorientasi objek
Sekilas Object
 Object
 Sekumpulan data dan sekumpulan method
 Object references
 Objek bisa diakses melalui object references
 Bicycle my_bike = new Bicycle();
 my_bike disebut object reference
 Interfaces
 Definisi sekumpulan method (tanpa implementasi didalam method tersebut)
 Referensi
 Java RMI
 http://docs.oracle.com/javase/tutorial/rmi/
 PyRO (Python Remote Object)
 https://pythonhosted.org/Pyro4/
Indirect Communication (Komunikasi
Tidak Langsung)
 Semua model interaksi yang dijelaskan sebelumnya
(Request Reply), Remote Method Invocation, Remote
Procedure Call adalah model komunikasi direct
(langsung)
Web Service
 Web service adalah implementasi dari RPC secara lebih
spesifik, koneksi menggunakan socket dan HTTP
protocol untuk berkomunikasi dengan service (procedure)
yang berada pada mesin remote
  Web Service dapat dipanggil dari berbagai aplikasi
menggunakan XML format (SOAP) via HTTP Protocol
(untuk komunikasi web/browser – web server)
Web Service
 Web service bisa dikombinasikan untuk membentuk
fungsionalitas baru
 Loose coupling
 Meminimalkan dependensi antarservis
 Representasi pesan (representasi data eksternal):
 XML (eXtensible Markup Language) / SOAP
 JSON (Javascript Object Notation)
SOAP
 Simple Object Access Protocol
 Mendefinisikan skema penggunaan XML untuk
merepresentasikan isi pesan request-reply atau isi pesan
pada teknik komunikasi yang lain
 SOAP umumnya berbasis HTTP
 SOAP adalah pengembangan dari XML-RPC
Indirect Communication
 Komunikasi antar entitas di sistem terdistibusi melalui
perantara
 Tidak ada direct coupling antara pengirim dan penerima
seperti pada tiga metode sebelumnya
 Banyak Digunakan Untuk Membangun Distributed
Application
 Message-based, anonymous communication
 Participants are decoupled (tidak perlu terhubung langsung)
 in space: partisipan tidak perlu terhubung langsung atau
tahu satu sama lain
 in flow: tidak perlu syncronisasi secara langsung
 in time: tidak perlu up dalam waktu yang bersamaan
Subscription Model
 Channel-based
 Event dengan channel; physical channel
 Topic-based atau subject-based
 Subscription berdasarkan topik atau field tertentu
 Content-based
 Subscription berdasarkan konten
 Type-based
 Subscription berdasarkan tipe event
Publish Subscribe System
 Sebuah sistem dimana publisher mempublikasikan event
dan subscriber mengikuti event tertentu dengan
subscription
 Terdapat event notification
 Paradigma komunikasi one-to-many
Publish-Subscribe (Topic/Channel Based)
 Topic Based (Client joint ke topik tertentu (misal discount),
publisher mengirimkan (publish) pesan dengan
topik/channel tersebut

 https://mosquitto.org/ (support android)


 https://redis.io/topics/pubsub
Publish Subscribe (Content Based)
Content-Based Publish Subscribe
 Server menyediakan content filtering sebelum
broadcasting (sesuai dengan subcribe kriteria dari client)
 Ada subcription languange
 www.avis.org
 https://ella.codeplex.com/
 ??
Message Queue
 Variasi dari Indirect Communication (Time/Space
Uncoupling)
 Menggunakan layanan point-to-point dengan message
queue sebagai perantara
 Komunikasi dalam sistem terdistribusi menggunakan
queue
Message Queue
 Proses pada producer mengirim pesan ke queue spesifik
dan proses pada consumer menerima pesan dari queue
 Jenis cara penerimaan pesan:
 Blocking: blok sampai pesan tersedia
 Non-blocking: cek status pada queue, apakah pesan tersedia
atau tidak
 Notify: menyediakan notifikasi ketika pesan tersedia
Message Queue
 Biasanya queue berbentuk FIFO
 Terdapat juga priority message (prioritas tinggi dikirim
terlebih dulu)
 Consumer bisa juga memilih pesan berdasarkan tingkat
prioritas
 Middleware available
 https://www.rabbitmq.com/
 https://mqtt.org (support cross platform /android)
 http://activemq.apache.org/
 Etc
Resume
 Mostly about technology
 What is the potential research areas ?

Anda mungkin juga menyukai