Materi Kuliah : Sistem Terdistribusi Semester Ganjil 2016 / 2017
E.N. Tamatjita
Sekolah Tinggi Teknologi
Adisutjipto Yogyakarta
Pendahuluan
INTI :
Memahami dan membuat komunikasi melalui cloud computing, network
virtualization, operating system virtualization, message passing interface, unstructured peer-to-peer, tuple spaces, loose coupling pada relasi web service.
SASARAN :
Mampu memahami sistem terdistribusi sesuai trend saat ini.
Mampu membuat analisa sebelum sistem akan dibuat, melalui study
kasus pada infrastruktur Google.
Mampu menggunakan komponen dan obyek distribusi melalui komunikasi
langsung pada Enterprise JavaBeans dan CORBA.
Mampu mengembangkan dan menerapkan sistem terdistribusi melalui
self learning.
Memiliki kemampuan dalam penguasaan perangkat lunak Oracle.
Mampu membuat sistem terdistribusi sendiri melalui bekerja secara tim
dan menghasilkan sistem jaringan yang baik, handal dan efisien.
DAFTAR PUSTAKA :
Coulouris et all, 2012, ”Distributed Systems Concepst and Design”, Fifth
Edition, Addison-Wesley, Boston, Massachusetts
Tanenbaum and Van Steen, 2007, “Distributed Systems Principles and
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
3.1 Remote Invocation
3.1.1 RMI(Remote Method Invocation)
3.1.2 RPC (Remote Procedure Call)
3.2 Indirect Communication
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 3
Pertemuan Ke-7 & 8
3.1.1 RMI
1. Definisi
RMI adalah sebuah tekhnik pemanggilan method remote yang lebih secara umum lebih baik dari RPC. RMI menggunakan
paradigma pemrograman berorientasi obyek. RMI
memungkinkan kita untuk mengirim obyek sebagai parameter dari remote method. Dengan dibolehkannya program Java
memanggil method pada remote obyek, RMI membuat
pengguna dapat mengembangkan aplikasi Java yang
terdistribusi pada jaringan.
2. Tujuan
Menyediakan fasilitas bagi programmer untuk dapat
mendistribusikan objek yang digunakan pada beberapa proses yang berbeda.
Dapat berjalan dalam satu mesin ataupun di beberapa mesin yang terhubung dengan jaringan.
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 5
3. Aplikasi Obyek Terdistribusi
Aplikasi RMI sering kali terdiri dari dua program terpisah yaitu server dan client.
3.a Aplikasi Server
Membuat beberapa remote objek
Menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses
Menunggu RMI client merequest server 3.b Aplikasi Client
Mendapatkan referensi remote ke satu atau lebih objek remote di server
Menjalankan method dari objek tersebut
Meminta pemanggilan ke beberapa remote objek berbasarkan referensi yang diterimanya.
RMI menyediakan mekanisme dimana server dan client
berkomunikasi dan memberikan informasi secara timbal balik, aplikasi ini disebut aplikasi obyek terdistribusi.
4. Cara Kerja RMI
Dalam model ini, sebuah proses memanggil method dari objek yang terletak pada suatu host/computer remote. Dalam paradigma ini, penyedia layanan mendaftarkan dirinya dengan server direktori pada jaringan. Proses yang menginginkan suatu layanan mengontak server direktori saat runtime, jika layanan tersedia, maka referensi ke layanan akan diberikan. Dengan menggunakan referensi ini, proses dapat berinteraksi dengan layanan tsb. Paradigma ini ekstensi penting dari paradigma RPC. Perbedaannya adalah objek yang memberikan layanan didaftarkan (diregister) ke suatu layanan direktori global, sehingga memungkinkan untuk ditemukan dan diakses oleh aplikasi yang meminta layanan tersebut.
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 7 Communication Modul (Modul Komunikasi)
- Communication modul pada client atau server bertanggung jawab dalam pertukaran pesan yang dilakukan melalui metode request dan reply.
Remote Reference Module
- Bagian ini bertugas untuk menterjemahkan antara referensi objek lokal dan remote. Proses berkomunikasi antara mereka disimpan dalam remote object table.
- Yang menggenerate class untuk proxy dan skeleton adalah middleware.
- Contoh : CORBA, Java RMI
Object A dan object B dipunyai oleh aplikasi (berada pada
Application Layer) Remote Reference Modul dan
Communication modul dimiliki oleh middleware. Proxy B dan Sekeleton B berada antara middleware dan aplikasi yang di generate oleh middleware.
3.1.2 RPC
RPC ( Remote Procedure Call )
1. Definisi
RPC adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure. Pendekatan yang dilakukan adalah sebuah server membuka socket, lalu menunggu client yang
meminta prosedur yang disediakan server. RPC masih
menggunakan cara primtif dalam pemrograman yaitu
menggunakan paradigma procedural programming.
2. Tujuan
RPC digunakan untuk administrasi sistem sehingga seorang
administrator jaringan dapat mengakses sistemnya dan
mengelola sistemnya darimna saja, selama sistemnya
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 9
RPC ( Remote Procedure Call )
1. Definisi
RPC adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure. Pendekatan yang dilakukan adalah sebuah server membuka socket, lalu menunggu client yang
meminta prosedur yang disediakan server. RPC masih
menggunakan cara primtif dalam pemrograman yaitu
menggunakan paradigma procedural programming.
2. Tujuan
RPC digunakan untuk administrasi sistem sehingga seorang
administrator jaringan dapat mengakses sistemnya dan
mengelola sistemnya darimna saja, selama sistemnya
3. Socket
RPC menggunakan socket untuk berkomunikasi dengan proses lainnya.
4. Cara Kerja RPC
Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu.
5. Implementasi RPC
Untuk proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal proxy dan skeleton, pada RPC dikenal dengan Stub( Client stub dan Server stub).
3.2 Indirect Communication
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 11
Inti dari Indirect Communication yaitu , bagaimana
untuk mengkomunikasikan entitas-entitas pada Sistem
Terdistribusi melalui sebuah perantara sehingga tidak
ada yang berpasangan secara langsung antara sender
dan receiver.
Komunikasi
seperti
ini
muncul
karena
untuk
menanggulangi
terjadinya
direct-coupling
(pasangan
langsung). Mengapa hal ini dihindari?
Karena ketika menggunakan direct-coupling akan sangat
sulit bilamana akan me replace server. Seperti halnya
ketika server mengalami gangguan secara langsung
client
juga
akan
terkena
dampak
tersebut
karena
mereka terhubung secara langsung, nah, dari sinilah
perlu
adanya
Indirect
Communication
supaya
lebih
leluasa ketika server akan melakukan perubahan sesuai
fungsionalitas yang diperlukan tanpa harus member
dampak pada client. Karenanya indirect communication
sering digunakan dalam system terdistribusi. Seprti
contohnya pada, environment mobile yang mempunyai
koneksi dengan jaringan global, untuk mengatur service
provider, dan lain sebagainya.
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 13
1. Group Communication
Group communication memiliki konsep bahwa, ia mengirimkan pesan pda sebuah grup secara bersamaan, semua anggota yang ada dalam grup akan terkirimi pesan. Seperti konsep dalam hal ini sender tidak memperhatikan siapa receivernya. Group communication akan di implementasikan pada IP multicast, overlay network (jaringan lapisan atas). Konsep ini dapat Mendeteksi kesalahan dan dapat diandalakan. Fitur utama yang ada pada Group Communication yakni pemrosesan issue hanya merupakan satu kali operasi multicast untuk mengirimkan pesan pada semua anggota dalam satu grup.
Semakin luasnya jarak komunikasi yang berkembnag, menimbulkan bermacam-macam asumsi, antara lain :
Open dan closed group, yang dapat digambarkan sebagai berikut :
Overlapping dan non-overlapping group Synchronous dan asynchronous sisten
2. Publish-subscribe system
Publish-subscribe sistem merupakan sebuah sistem dimana
publisher menggunakan service event to event dan
subscriber bergabung dalam jaringan pada sebagian
event melewati proses subscribtion. Publish-subscribe
system digunakan pada kelompok domain yang luas. Contohnya adalah pada :
System informasi keuangan RSS feed
Ubiquitos computing Aplikasi monitoring , dll
System ini juga merupakan komponen utama dari
infrastruktur google, terkait dengan kebutuhan untuk
penyebaran informasi pemasaran. Dapat kita ketahui
bahwa google merupakan search engine berskala besar
yang membutuhkan kemampuan untuk penyebaran
informasi dalam skala besar dan cepat. Maka penggunaan system ini mutlak diperlukan. Secara lebih lanjut dapat di ilustrasikan dengan sebuah ‘dialing room sistem’ sebagai
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 15 3. Message queue system
Message queue, atau lebih tepatnya disebut message queue terdistribusi merupakan kategori penting dalam indirect communication. Message queue menyedikan pelayanan point-to-point. Untuk membentuk kebutuhan yang diinginkan dari skala dan waktu. Point-to-point disini memiliki arti bahwa sender menempatkan pesan ke dalam sebuah queue, dan selanjutnya akan dihilangkan oleh beberapa proses. Message queue juga dapat dikatakan middleware yang menggunakan message-oriented.
Proses kerja message queue dapat dinyatakan dalam ilustrasi gambar dihalaman selanjutnya :
Salah satu implementasi issue dari message queue adalah menggunakan JMS (the Java Messaging Service) yang merupakan spesifikasi standar dari pemrograman java terdistribusi untuk berkomunikasi secara indirect.
4. Shared memory approaches
Dilihat secara singkat merupakan penjabaran dari shared memory terdistribusi yang mengembangkan parallel
computing sebelum memindahkan space tuple
communication, sebuah metode dimana mengizinkan programmers untuk membaca dan menulis tuple dari sebuah shared tuple space.
Shared memory terdistribusi (DSM) merupakan sebuah abstraksi digunakan untuk sharing data antar computer.
Abstraksi dari DSM dapat digambarkan dihalaman
selanjutnya :
Poin utama dalam DSM adalah bahwa programmer dapat menghemat proses message passing ketika membuat aplikasi yang menggunakan konsep ini.
Dengan demikian, penggunaan shared memory approaches akan sangat bermanfaat bagi system terdistribusi dan
4.1 Operating System Components
4.2 Distributed Objects and Components
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 17 Slide yang digunakan diambil dari buku : Coulouris et all, 2012,
”Distributed Systems Concepst and Design”, Fifth Edition, Addison-Wesley, Boston, Massachusetts
4.1 Operating System Components
System Layers Applications, services Computer & Platform Middleware OS: kernel, libraries & servers network hardware OS1 Computer & network hardware Node 1 Node 2 Processes, threads, communication, ... OS2 Processes, threads, communication, ...Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
Core OS functionality
Communication manager
Thread manager Memory manager
Supervisor Process manager
Address space
Stack Text Heap Auxiliary regions 0 2NInstructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
Copy-on-write
a) Before write b) After write Shared frame A's page table B's page table
Process A’s address space Process B’s address space
Kernel
RA RB
RB copied from RA
Client and server with threads
Server N threads Input-output Client Thread 2 makes T1 Thread 1 requests to server generates results Requests Receipt & queuingInstructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
Alternative server threading
architectures
a. Thread-per-request b. Thread-per-connection c. Thread-per-object
remote workers
I/O remote I/O remote
per-connection threads per-object threads
Distributed objects
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
The main components of the CORBA
architecture
client server proxy or dynamic invocation implementation repository object adapter ORB ORB skeleton or dynamic skeleton client program interface repository Request Reply core core for A Servant A5.1 Web Service
5.2 P2P
Slide yang digunakan diambil dari buku : Coulouris et all, 2012, ”Distributed Systems Concepst and Design”, Fifth Edition, Addison-Wesley, Boston, Massachusetts
5.1 Web Service
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 27
Definisi Web Service
Web service adalah suatu sistem perangkat lunak yang
dirancang untuk mendukung interoperabilitas dan
interaksi antar sistem pada suatu jaringan. Web service
digunakan sebagai suatu fasilitas yang disediakan oleh
suatu web site untuk menyediakan layanan (dalam
bentuk informasi) kepada sistem lain, sehingga sistem
lain dapat berinteraksi dengan sistem tersebut melalui
layanan-layanan (service) yang disediakan oleh suatu
sistem yang menyediakan web service. Web service
menyimpan data informasi dalam format XML, sehingga
data ini dapat diakses oleh sistem lain walaupun berbeda
platform, sistem operasi, maupun bahasa compiler.
Fungsi Web Service
Web service bertujuan untuk meningkatkan kolaborasi antar pemrogram dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang terdapat di dalamnya.
Beberapa alasan mengapa digunakannya web service adalah sebagai berikut:
1. Web service dapat digunakan untuk mentransformasikan satu atau beberapa bisnis logic atau class dan objek yang terpisah dalam satu ruang lingkup yang menjadi satu, sehingga tingkat keamanan dapat ditangani dengan baik. 2. Web service memiliki kemudahan dalam proses
deployment-nya, karena tidak memerlukan registrasi khusus ke dalam suatu sistem operasi. Web service cukup di-upload ke web server dan siap diakses oleh pihak-pihak yang telah
diberikan otorisasi.
Arsitektur Web Service
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 29
Web service memiliki tiga entitas dalam arsitekturnya,
yaitu:
1.Service Requester (peminta layanan)
2.Service Provider (penyedia layanan)
3.Service Registry (daftar layanan)
Service Provider: Berfungsi untuk menyediakan
layanan/service dan mengolah sebuah registry agar
layanan-layanan tersebut dapat tersedia.
Service Registry: Berfungsi sebagai lokasi central yang
mendeskripsikan semua layanan/service yang telah
di-register.
Service Requestor: Peminta layanan yang mencari dan
menemukan layanan yang dibutuhkan serta
Operasi-operasi Web Service
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 31
Secara umum, web service memiliki tiga operasi yang
terlibat di dalamnya, yaitu:
Publish/Unpublish: Menerbitkan/menghapus layanan ke
dalam atau dari registry.
Find: Service requestor mencari dan menemukan
layanan yang dibutuhkan.
Bind: Service requestor setelah menemukan layanan
yang dicarinya, kemudian melakukan binding ke
service provider untuk melakukan interaksi dan
mengakses layanan/service yang disediakan oleh
service provider.
Komponen-komponen Web Service
Web service secara keseluruhan memiliki empat layer komponen seperti pada gambar di atas, yaitu:
Layer 1: Protokol internet standar seperti HTTP, TCP/IP
Layer 2: Simple Object Access Protocol (SOAP), merupakan protokol akses objek berbasis XML yang digunakan untuk proses pertukaran data/informasi antar layanan.
Layer 3: Web Service Definition Language (WSDL),
merupakan suatu standar bahasa dalam format XML yang berfungsi untuk mendeskripsikan seluruh layanan yang
Komponen-komponen Web Service
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 33 Web service secara keseluruhan memiliki empat layer
komponen seperti pada gambar di atas, yaitu:
Layer 1: Protokol internet standar seperti HTTP, TCP/IP
Layer 2: Simple Object Access Protocol (SOAP), merupakan protokol akses objek berbasis XML yang digunakan untuk proses pertukaran data/informasi antar layanan.
Layer 3: Web Service Definition Language (WSDL),
merupakan suatu standar bahasa dalam format XML yang berfungsi untuk mendeskripsikan seluruh layanan yang tersedia.
Sistem P2P yang sebenarnya adalah suatu sistem yang tidak hanya menghubungkan “ujung” satu dengan lainnya, namun ujung-ujung ini saling berhubungan secara dinamis dan berpartisipasi dalam mengarahkan lalu lintas komunikasi informasi, pemrosesan, dan penugasan pembagian bandwidth yang intensif, bila sistem ini tidak ada, tugas-tugas ini biasanya diemban oleh server pusat.
Aplikasi P2P yang sebenarnya memerlukan satuan tim-tim kecil dengan ide cemerlang untuk mengembangkan perangkat lunak dan bisnis-bisnis yang mungkin dilakukan oleh perangkat tersebut – dan mungkin saja bisa membuat perusahaan besar yang sudah ada gulung tikar. P2P yang sebenarnya, bila diaplikasikan pada pasar yang sudah matang dan stabil adalah teknologi yang "mengganggu".
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 35
Ide mengenai konsep ini muncul kira-kira pada akhir dekade 1980-an, ketika jaringan komputer dan tentunya juga komputer telah mulai masuk ke dalam salah satu barang wajib dalam perusahaan, baik itu perusahaan kecil maupun besar. Tetapi, arsitektur ini berkembang dalam jaringan yang terlalu kecil untuk memiliki sebuah server yang terdedikasi, sehingga setiap komputer klien pun menyediakan
layanan untuk berbagi data untuk melakukan kolaborasi antara pengguna.
Jaringan peer-to-peer pun mulai banyak digemari ketika Ms merilis o/s Windows untuk workgroup, meski sebelumnya sistem operasi Ms-DOS (atau IBM PC-Ms-DOS) dengan perangkat Ms-Net (atau PC-NET) juga dapat digunakan untuk tujuan ini. Karakteristik kunci jaringan tersebut adalah dalam jaringan ini tidak terdapat sebuah server pusat yang mengatur klien-klien, karena memang setiap komputer
bertindak sebagai server untuk komputer klien lainnya. Sistem keamanan yang ditawarkan oleh metode ini terbilang lebih rendah dibandingkan dengan metode klien/server dan manajemen
terhadapnya pun menjadi relatif lebih rumit.
Ide Konsep
Konsep ini pun kemudian berevolusi pada beberapa
tahun terakhir, khususnya ketika jaringan Internet
menjadi jaringan yang sangat besar. Hal ini mulai
muncul kira-kira pada akhir dekade 1990-an, di saat
banyak pengguna Internet mengunduh banyak berkas
musik mp3 dengan menggunakan metode peer-to-peer
dengan menggunakan program Napster yang menuai
kritik pedas dari industri musik, seperti halnya Metallica
dan banyak lainnya.
Napster
, pada saat dituntut oleh
para pekerja industri musik, dikatakan memiliki
anggota lebih dari 20 juta pengguna di seluruh dunia.
Selanjutnya beberapa aplikasi juga dibuat dengan
menggunakan konsep ini:
eDonkey, Kazaa, BitTorrent
,
dan masih banyak lainnya. Meski banyak aplikasi
peer-to-peer ini digunakan oleh pengguna rumahan, ternyata
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 37
Desentralisasi jaringan P2P memiliki keuntungan yang
lebih dibandingkan dengan jaringan klien-server
tradisional. Jaringan P2P menyeimbangkan diri secara
terus menerus tanpa menambah waktu pencarian
alamat panggilan dan tanpa harus menggunakan suatu
sumber-sumber terpusat. Mereka memanfaatkan mesin
–mesin perangkat yang digunakan pengguna-akhir (end
users) karena sumber-sumber ini selalu berjalan ke
arah proporsi tujuan jaringan. Setiap penambahan
ujung baru pada jaringan menambah potensi lebih
pemrosesan yang lebih kuat dan bandwith yang lebih
besar untuk jaringan tersebut. Ditambah lagi, karena
sumber-sumbernya terdesentralisasi, generasi kedua
(2G), sampai generasi ke empat (4G) dari jaringan P2P
telah berhasil secara virtual mengeliminasi seluruh
biaya yang berhubungan dengan infrastruktur terpusat
yang besar.
Pada penerapan teknologi telephony P2P dimana Telephony berbasis internet –VoIP
• Kualitas yang buruk dari produk-produk yang jelas-jelas
menguntungkan dari segi biaya (jauh lebih hemat) dibandingkan dari penggunaan telepon biasa.
• Frekuensi keberhasilan panggilan telpon rendah karena terhalang oleh firewall-firewall dan penggunakan NAT (Network Address
Translation) atau pencarian jaringan yang dituju, dimana hal ini menyebabkan 50% komputer-komputer rumah gagal terhubung dengan perangkat lunak VoIP tradisional).
• Penggunaan dan pemasangan perangkat lunak ini penuh dijejali oleh berbagai hal dan membutuhkan konfigurasi yang tidak mudah dan sedikit kemampuan teknis. Pemusatan aktivitas dapat
menyelesaikan beberapa kesulitan ini dengan mengarahkan panggilan melalui firewall-firewall dan NAT yang ada. Namun, bila ada
pemusatan maka biaya untuk menjalankan jaringan menjadi naik mendekati jumlah biaya yang dikenakan jaringan telpon yang sudah ada. Sebagai tambahan, biaya ini bertambah secara proporsional sebanding dengan bertambahnya pengguna.
Sunday, 16 October, 2016 - SisTer STTA tamatjita - 39
Setelah UTS:
6.1 Sekuriti
Q & A
1.
Berikan contoh dari Karakteristik Terdistribusi yang
Anda ketahui !
2.
Gambarkanlah Model Sistem dan berikan
penjelasannya !
3.
Apakah yang dimaksud dengan Networking dan
Internetworking ?
4.
Berikan contoh Interprocess Communication !
5.
Apakah yang dimaksud dengan Remote Invocation ?
6.
Berikan contoh dari Indirect Communication !
7.
Berikan salah satu contoh dari O/S support !
8.
Jelaskan secara analogi tentang Obyek dan Komponen
Terdistribusi !
9.