You are on page 1of 10

TUGAS 1 PEMROGRAMAN SISTEM TERSEBAR

OLEH DEWA GDE ADI MURTHI UDAYANA 0905021068 VB

JURUSAN MANAJEMEN INFORMATIKA FAKULTAS TEKNIK DAN KEJURUAN

UNIVERSITAS PENDIDIKAN GANESHA SINGARAJA 2011

SOAL : Sebutkan dan jelaskan contoh-contoh dari masing-masing komponen sistem tersebar! A. Penerapan sistem terdistribusi dari segi basis data :

1. Contoh Basis Data terdistribusi Pada SI Kependudukan Misalkan sebuah daerah terdiri atas empat desa masing-masing desa memiliki komputer yang menangani data kependudukan pada desa. Masing-masing computer merupakan sebuah lokasi kemudian ada satu lokasi yang menangani

tentang data kependudukan semua desa. Masing-masing desa menangani skema kependudukan: skema kependudukan = (nomor_ktp, alamat, nama_desa) Lokasi yang mempunyai tentang menangani skema-desa: Skema desa = (jumlah_penduduk, nama_desa, kota) Contoh untuk menggambarkan perbedaan antara dua tipe kependudukan, lokal dan global pada satu daerah adalah menambah data penduduk pada sebuah desa. Jika penambahan dilakukan di desa maka ini dianggap lokal jika tidak dianggap global. Sebaliknya untuk sebuah kependudukan dimana seseorang akan pindah dari desa A ke desa B. Orang tersebut meminta KTP baru di desa B, karena yang harus diakses terletak pada dua lokasi berbeda. Pada sistem basis data terdistribusi yang ideal, lokasi akan berbagi skema global. Semua lokasi akan menjalankan software DBMS terdistribusi yang sama dan masing-masing lokasi akan mengetahui keberadaan lokasi yang lainnya. Jika dibangun dari awal sebuah basis data terdistribusi yang mungkin dapat mencapai

tujuan di atas. Namun ,dalam kenyataannya basisdata terdistribusi harus dibuat dengan menggabungkan beberapa sistem basis data yang sudah ada, masing-masing dengan skemanya sendiri dan mungkin menjalankan DBMS berbeda. Sistem semacam ini kadang disebut sistem multi basisdata atau sistem basisdata teridstribusi heterogen.

B. Penerapan sistem terdistribusi dari segi hardware : 1. RAID RAID, Redundant Array of Inexpensive(Independent) Disks, adalah suatu sistem yang terbentuk dari beberapa harddisk/drive. Secara sederhana, kita biasa membuat beberapa partisi dalam satu harddisk. Nah, dengan RAID, kita dapat membuat satu partisi dari beberapa harddisk. RAID 0 Juga dikenal dengan modus stripping. Membutuhkan minimal 2 harddisk. Sistemnya adalah menggabungkan kapasitas dari beberapa harddisk. Sehingga secara logikal hanya "terlihat" sebuah harddisk dengan kapasitas yang besar (jumlah kapasitas keseluruhan harddisk). Pada awalnya, RAID 0, digunakan untuk membentuk sebuah partisi yang sangat besar dari beberapa harddisk dengan biaya yang efisien. RAID 1 Biasa disebut dengan modus mirroring. Membutuhkan minimal 2 harddisk. Sistemnya adalah menyalin isi sebuah harddisk ke harddisk lain dengan tujuan: jika salah satu harddisk rusak secara fisik, maka data tetap dapat diakses dari harddisk lainnya. RAID 2 RAID 2, juga menggunakan sistem stripping. Namun ditambahkan tiga harddisk lagi untuk pariti hamming, sehingga data menjadi lebih reliable. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 5 (n+3, n > 1). Ketiga harddisk terakhir digunakan untuk menyimpan hamming code dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya. RAID 3

RAID 3, juga menggunakan sistem stripping. Juga menggunakan harddisk tambahan untuk reliability, namun hanya ditambahkan sebuah harddisk lagi untuk parity.. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 3 (n+1 ; n > 1). Harddisk terakhir digunakan untuk menyimpan parity dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya. RAID 4 Sama dengan sistem RAID 3, namun menggunakan parity dari tiap block harddisk, bukan bit. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1). RAID 5 RAID 5 pada dasarnya sama dengan RAID 4, namun dengan pariti yang terdistribusi. Yakni, tidak menggunakan harddisk khusus untuk menyimpan paritinya, namun paritinya tersebut disebar ke seluruh harddisk. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1). Hal ini dilakukan untuk mempercepat akses dan menghindari bottleneck yang terjadi karena akses harddisk tidak terfokus kepada kumpulan harddisk yang berisi data saja. RAID 6 Secara umum adalah peningkatan dari RAID 5, yakni dengan penambahan parity menjadi 2 (p+q). Sehingga jumlah harddisk minimalnya adalah 4 (n+2 ; n > 1). Dengan adanya penambahan pariti sekunder ini, maka kerusakan dua buah harddisk pada saat yang bersamaan masih dapat ditoleransi. Misalnya jika sebuah harddisk mengalami kerusakan, saat proses pertukaran harddisk tersebut terjadi kerusakan lagi di salah satu harddisk yang lain, maka hal ini masih dapat ditoleransi dan tidak mengakibatkan kerusakan data di harddisk bersistem RAID 6. C. Penerapan sistem terdistribusi dari segi software : 1. COM+ COM+ adalah suatu teknologi middlware yang merupakan solusi microsoft untuk membuat application server atau yang sering disebut sebagai middle-tier. Pada middle-tier inilah, beberapa business object disimpan. COM+ memungkinkan penggunaan objek-objek yang ada lintas jaringan komputer oleh aplikasi client. Di balik layar, COM+ menggunakan sebuah protocol yang bernama Remote Procedure Call (RPC) untuk mengeksekusi method-

method yang berada di dalamnya lintas proses dan lintas batasan host. Bentuk arsitektur COM+ dapat dilihat pada gambar berikut ini :

Microsoft Transaction Server (MTS) atau juga populer dengan COM+ ini adalah produk microsoft yang pada dasarnya menyediakan infrastruktur untuk developer dalam mengembangkan distributed application. Distributed application adalah software aplikasi yang terdiri dari komponen-komponen yang terletak tidak hanya di satu server, tapi bisa dibeberapa server. Komponen-komponen tersebut berinteraksi satu sama lain

menggunakan infrastruktur yang disediakan oleh MTS/COM+. Jadi, COM+ Merupakan hasil pengembangan dari komponen COM dan MTS. COM+ menyediakan service berbasis enterprise yang didasarkan pada Component Object Model (COM) untuk membangun sistem distribusi. Keandalan COM+ telah teruji sejak lama sebagai alternatif dalam membangun sistem distibusi dan transaksi. Penerapan sistem terdistribusi dengan arsitektur yang menggunakan COM+ ini dapat memberikan dukungan dalam hal pelayanan vendor programming tools, sistem operasi, dan database server terhadap teknologi client-server yang akan dibuat, sehingga memudahkan dalam hal developing.

2. DRBL (Diskless Remote Boot in Linux) DRBL (Diskless Remote Boot in Linux) adalah free software, solusi open source untuk memanage implementasi system operasi linux di banyak client. Bayangkan menginstall linux di 40, 30, atau 10 client satu per satu! DRBL memungkinkan mengkonfigurasi semua client komputer dengan cara menginstalasi dari satu server saja. DRBL memungkinkan lingkungan diskless atau sistemless di sisi mesin client. DRBL dapat bekerja di Debian, Ubuntu, Mandriva, Red Hat, Fedora, CentOS dan SuSE. DRBL menggunakan sumber daya hardware yang terdistribusi dan memungkinkan client untuk mengakses secara penuh hardware lokal. DRBL termasuk clonezilla, aplikasi untuk partisi dan disk cloning yang mirip dengan Symantec Ghost DRBL menggunakan PXE/etherboot, NFS, dan NIS untuk memberikan layanan kepada mesin client oleh karena itu tidak perlu kita menginstalasi Linux di masing-masing mesin client satu per satu. Jika DRBL server sudah siap, mesin client dapat booting melalui PXE/etherboot (diskless). "DRBL" tidak akan menyentuh client harddisk, oleh karenanya, sistem operasi lain (seperti Windows) yang terinstalasi di mesin client tidak akan berubah. Hal ini menjadi menarik pada saat implementasi Linux dimana user kadang kala masih menginginkan booting ke mesin Windows dan menjalankan beberapa aplikasi yang hanya tersedia di Windows. DRBL memberikan banyak flexibilitas saat implementasi Linux. D. Penerapan sistem tersebar dari segi prosedur : RMI (Remote Method Invocation) adalah cara programmer Java untuk membuat program aplikasi Java to Java yang terdistribusi. Program-program yang menggunakan RMI bisa menjalankan metode secara jarak jauh, sehingga program dari server bisa menjalankan method di komputer klien, dan begitu juga sebaliknya. Java RMI yang ada pada bahasa Java telah didesain khusus sehingga hanya bisa bekerja pada lingkungan Java. Hal ini berbeda dengan sistem RMI lainnya, misalnya CORBA, yang biasanya didesain untuk bekerja pada lingkungan yang terdiri dari banyak bahasa dan heterogen. Pemodelan objek pada CORBA tidak boleh mengacu pada bahasa tertentu.Sistem RMI terdiri atas tiga layer/lapisan, yaitu : 1. stub/skeleton layer, yaitu stub pada sisi klien (berupa proxy), dan skeleton pada sisi server.

2. remote reference layer, yaitu perilaku remote reference (misalnya pemanggilan kepada suatu objek) 3. transport layer, yaitu set up koneksi, pengurusannya dan remote object tracking.

Batas antar masing-masing layer disusun oleh interface dan protokol tertentu, yaitu tiap layer bersifat independen terhadap layer lainnya, dan bisa diganti oleh implementasi alternatif tanpa mengganggu layer lainnya. Sebagai contoh, implementasi transport yang digunakan RMI adalah yang berbasis TCP (menggunakan Java socket), tapi bisa digantikan dengan menggunakan UDP. Layer application berada di atas sistem RMI. Hubungan antara layer-layer tersebut dapat dijelaskan pada gambar berikut :
Klien Serve

Aplikasi

Sistem RMI

Stub

Remote Reference Layer

Stub

Skeleton

Skeleton

Transport layer

Sebuah remote method invocation dari klien ke remote server object akan melalui layerlayer pada sistem RMI dari layer transport pada sisi klien ke layer transport pada sisi server.

Sebuah klien yang menjalankan method pada remote server object sebenarnya menggunakan stub atau proxy yang berfungsi sebagai perantara untuk menuju remote server object tersebut. Pada sisi klien, reference ke remote object sebenarnya merupakan reference ke stub lokal. Stub ini adalah implementasi dari remote interface dari sebuah remote object, dan meneruskan panggilan ke server object melalui remote reference layer. Stub dibuat dengan menggunakan kompiler rmic. Supaya sebuat panggilan method tersebut bisa sampai di remote object, panggilan tersebut diteruskan melalui remote reference layer. Panggilan tersebut sebenarnya diteruskan ke skeleton yang berada di sisi server. Skeleton untuk remote object ini akan meneruskan panggilan ke kelas remote object implementation yang menjalankan method yang sebenarnya. Jawaban, atau return value dari method tersebut akan dikirim melalui skeleton, remote reference layer dan transport layer pada sisi

klien, lalu melalui transport layer, remote reference layer, dan stub pada sisi klien. Teknik dalam RMI salah satunya adalah dynamic stub loading, yang berfungsi untuk membuat klien me-load stub yang belum ada di komputernya. Stub mengimplementasi remote interface yang sama dengan yang diimplementasikan oleh remote object. Dengan RMI, komputer klien bisa memanggil remote object yang berada di server. Server juga bisa menjadi klien dari suatu remote object, sehingga komputer klien bisa menjalankan method-method tertentu di komputer server. Dengan menggunakan RMI, program yang dijalankan di komputer klien bisa berupa applet, maupun berupa aplikasi. Program RMI memerlukan remote interface, kelas-kelas implementasi dari remote interface tesebut (implementation class), dan program rmiregistry yang sedang dijalankan di komputer server (rmiregistry terdapat dalam paket JDK).

Pada paket Whiteboard, RMI digunakan untuk program-program Chat, Whiteboard dan Projector. Dalam program Chat, RMI digunakan untuk memasukkan input dari para pengguna, baik dosen maupun mahasiswa, ke komputer server. Setelah itu, server akan mengeluarkan output berupa hasil percakapan antar pengguna kepada semua komputer klien. Pada Whiteboard, penggunaan RMI terletak pada pengiriman graphics dan image antara komputer server dan klien. Sedangkan pada Projector, RMI digunakan agar dosen, sebagai klien, bisa mengatur indeks tampilan pada Projector yang berlangsung pada komputer mahasiswa, yang berfungsi sebagai klien lainnya. Kelas WhiteboardClient adalah tampilan yang dimunculkan pada komputer klien, sedangkan penggunaan RMI dilakukan oleh kelas Whiteboard Client Manifest Implementation. Kelas Whiteboard Client Manifest Implementation merupakan kelas yang mengimplementasikan interface

WhiteboardClientManifest. Dalam konsep RMI, interface WhiteboardClientManifest ini adalah remote interface untuk klien. Sedangkan pada server dijalankan program WhiteboardServer Implementation yang berupa implementasi dari interface

WhiteboardServer. WhiteboardServer juga merupakan remote interface. Program WhiteboardServer Implementation ini bersifat public, sehingga bisa diakses oleh klien. Remote interface harus meng-extend interface java.rmi.Remote. Setiap method pada remote interface harus meng-throw java.rmi.RemoteException. Whiteboard Client Manifest Implementation dan WhiteboardServer Implementation adalah implementation classes. Implementation class merupakan kelas yang mengimplementasikan remote interface.

Implementation class perlu mendefinisikan konstruktor untuk remote object, sekaligus membuat instance dari remote object tersebut. Implementation class juga menyediakan implementasi dari method yang bisa dijalankan secara remote. Selain itu implementation class juga perlu membuat dan menjalankan Security Manager. Tambahan lagi, implementation class juga harus me-register atau mendaftarkan paling tidak sebuah remote object pada RMI remote object registry. Pada program implementation class, semua argumen untuk remote method dan semua return value dari remote method bisa berupa object bertipe apa saja, asal object-object tersebut mengimplementasi interface java.io.Serializable. Untuk remote objects, penyampaiannya dilakukan dengan pass by reference. Referensi untuk suatu remote object sebenarnya merupakan referensi untuk sebuah stub, yaitu proxy pada sisi klien untuk remote object. Pada method main di implementation class, diperlukan pembuatan dan pemasangan sebuah security manager, yang bisa berupa RMISecurityManager, ataupun security manager yang sebelumnya telah didefinisikan dulu secara khusus oleh sang programmer. Security manager ini diperlukan untuk menjaga agar kelas-kelas yang dipakai tidak melakukan operasi-operasi yang bisa mengancam keamanan sistem. Jika dalam method main tidak terdapat security manager, RMI tidak bisa digunakan karena kelas-kelas RMI tidak akann diijinkan untuk di-load. Dalam method main, suatu instance dari remote object harus diciptakan. Konstruktor akan menghasilkan remote object, dan sebagai hasilnya, setelah konstruktor dipakai untuk menciptakan instance, sebuah remote object akan siap untuk mendengar method-method panggilan dari komputer klien.

Agar komputer klien bisa menjalankan method di remote object, klien sebelumnya harus membuat referensi kepada remote object tersebut. Biasanya referensi diambil dengan cara dijadikan parameter dari suatu remote method, ataupun diambil dari return value suatu remote method. Untuk keperluan bootstrapping, RMI menyediakan registry yang bisa mem-bind suatu URL ke remote object. Bentuk atau format dari URL tersebut adalah : //host/nama_object, dan nama_object harus berupa nama berbentuk string. Setelah suatu remote object diregistrasi di server, komputer-komputer klien bisa mencari nama objek tersebut, mengambil referensi ke remote-object, dan seterusnya menjalankan method pada objek tersebut. RMI akan membuat referensi ke stub dari remote object dengan referensi yang ditentukan oleh argumen kedua dari perintah Naming.rebind(URL, argumen ke-2).

Objek implementasi yang ada di komputer klien (remote implementation objects) akan selalu berada di komputer klien, jadi sewaktu klien melakukan pencarian ke remote object yang ada ada di registry di server, komputer server akan melakukan referensi ke stub yang berada di komputer klien. Protokol yang dipakai oleh RMI adalah Java Object Serialization dan HTTP. Protokol Object Serialization digunakan unntuk meneruskan panggilan klien dan mentransfer data. Protokol HTTP digunakan untuk mem-"POST" sebuah remote method invocation dan mengembalikan data keluaran untuk situasi ketika komputer klien dan server dipisahkan oleh firewall. Contoh implementasi dari RMI di antaranya : Perusahaan programming Avitek yang berlokasi di Amerika Serikat, membuat program sistem accounting untuk intranet yang memungkinkan klien untuk meng-update dan mengubah data dengan mudah. Tujuan dari proyek ini adalah untuk membuat dan mendukung pembuatan dari bukti nyata untuk konsep penggunaan Java yang dikombinasikan dengan database. Perusahaan CEAS Consulting yang menyediakan jasa custom re-engineering dan otomasi proses untuk perusahaan-perusahaan manufakturing dan teknik, telah membuat program sistem terdistribusi untuk klien mereka. Gambaran program mereka adalah seperti berikut:

You might also like