Saturday, 18 April 2015

Time & Coordination Sistem Terdistribusi

1. Time And Coordinaton
Time and Coordination adalah mengkordinasikan waktu dalam transfer data,  agar tidak terjadi ketimpangan pada proses transfer data.  Selain itu juga, berguna untuk mengukur penundaan antara komponen terdistribusi, menyinkronkan aliran data misalnya: suara dan video,  dan sebagai penanda keakuratan waktu untuk mengidentifikasi atau  mengotentikasi transaksi bisnis dan serializability dalam database terdistribusi dan keamanan protocol.

1.1 Time
Time adalah pengembangan dari sistem multiprogram.Beberapa job yang berada pada memory utama dieksekusi oleh CPU secara bergantian.CPU hanya bisa menjalankan program yang berada pada memory utama. Perpindahanantar job terjadi sangat sering sehingga user dapat berinteraksi dengan setiap programpada saat dijalankan. Suatu job akan dipindahkan dari memori ke disk dan sebaliknya.
Time juga disebut dengan sistem komputasi interaktif, dimanasistem komputer menyediakan komunikasi on-line antara user dengan sistem. Usermemberikan instruksi pada sistem operasi atau program secara langsung dan menerimarespon segera. Perangkat input berupa keyboard dan perangkat output berupa displayscreen, seperti cathode-ray tube (CRT) atau monitor. Bila sistem operasi selesaimengeksekusi satu perintah, makan sistem akan mencari pernyataan berikutnya dariuser melalui keyboard. Sistem menyediakan editor interaktif untuk menulis programdan sistem debug untuk membantu melakukan debugging program.

1.2 Coordination
Coordnaion Sekumpulan algoritma yang tujuannya bermacam-macam namun men-share tujuannya, sebagai dasar dalam sistem terdistribusi : berupa sekumpulan proses untuk mengkoordinasikan tindakan atau menyetujui satu atau beberapa nilai. Contohnya pada kasus mesin seperti pesawat ruang angkasa. Hal itu perlu dilakukan, komputer mengendalikannya agar setuju pada kondisi tertentu seperti apakah misi dari pesawat luar angkasa dilanjutkan atau telah selesai.
Komputer tersebut harus mengkoordinasikan tindakannya secara tepat untuk berbagi hal yang penting dalam Coordination and Agreement adalah apakah system terdistribusi asinkron atau sinkron. Algoritma –algoritma yang digunakan juga harus mempertimbangkan kegagalan yang terjadi, dan bagaimana caranya untuk berhubungan satu sama lain ketika sedang mendesaian algoritma. Selanjutnya di makalah ini juga akan dijelaskan mengenai masalah dalam mendistribusikan mutual exclusion, election, multicast communication, dan mengenai masalah dalam persetujuan(agreement).

1.3 Contoh Time And Coordination Protokol Waktu Jaringan (Network Time Protocol)
Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi intranet. Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan protocol untuk distribusi informasi waktu lewat internet. 
Tujuan dan fitur NTP, antara lain:
•       To provide a service enabling clients across the Internet to be synchronized accurately to UTC: NTP menyediakan layanan agar klien di internet dapat bersinkronisasi dengan UTC.
•      To provide a reliable service that can survive lengthy losses of connectivity: NTP menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak.
•      To enable clients to resynchronize sufficiently frequently to offset the rates of drift found in most computers: NTP memungkinkan klien untuk sinkronisasi ulang secara berkala.
•      To provide protection against interference with the time service, whether malicious or accidental: NTP menyediakan perlindungan terhadap interferensi dari layanan waktu, baik galat maupun ketidaksengajaan.

Gambar 1 Contoh sinkronisasi subnet di NTP

Layanan NTP tersebar pada banyak server di internet. Server utama tersambung langsung ke sumber waktu, seperti penerima sinyal radio UTC. Server sekunder disinkronisasi dengan server primer. Server-servernya tersambung dalam hierarkikal logika yang disebut synchronization subnet seperti Gambar 3. Semakin atas levelnya akan semakin akurat clock-nya. Galat terjadi setiap melewati satu level.
Server-server NTP bersinkronasi satu sama lain dengan tiga cara, antara lain multicast, procedure-call, dan symmetric.
1.      Multicast
Multicast ditujukan untuk LAN berkecepatan tinggi. Satu atau lebih server secara periodik menyebar waktu clock ke server di komputer lain yang tersambung di LAN. Mode ini akurasinya rendah tetapi cocok untuk berbagai kepentingan. 
2.      Procedure-call
Procedure-call hamper sama dengan algoritma Cristian. Server menerima request dari komputer lain dan membalasnya dengan pembacaan clock saat pengiriman. Mode ini cocok ketika keakurasian tinggi dibutuhkan atau ketika multicast tidak dappat dilakukan.
3.      Symmetric
Mode symmetric ditujukan untuk server yang mensuplai waktu dalam LAN atau pada level tertinggi dari sebuah synchronization subnet.
Gambar 2. Message Exchange between a pair NTP peers

Pada mode procedure-call dan symmetric mode, memroses pertukaran bagian-bagian pesan. Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi, yaitu waktu local ketika pesan tersebut dikirimkan. Seperti pada Gambar 3, pesan m menyimpan catatan waktu setiap akan ditransmisikan, yaitu Ti-3 dan Ti-1, dan ketika diterima, yaitu Ti-2 dan Ti. Kemudian NTP menghitung jeda waktu antara dua clock komputer. 

2. Share Data
2.1. Konsep dan operasi Shared Data antara server dan client
Dalam sistem terdistribusi, beberapa komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di komputer A dapat menggunakan laser printer yang dimiliki komputer B dan sebaliknya user di situs B dapat mengakses file yang terdapat di komputerA.
Konsep  Sharing Client – Server
Jaringan client atau server adalah     jaringan dimana    komputer client bertugas    melakukan permintaan data dan server bertugas melayani permintaan tersebut.
Client
Ø  User akan membuat permintaan melalui software client. Aplikasi ini berfungsi :
Ø  Memberikan interface bagi user untuk melakukan jobs.
Ø  Format request data ke bentuk yang dapat dimengerti oleh server
Ø  Menampilkan hasil yang diminta pada layar
Server
Jaringan client atau server, server khusus digunakan untuk pemrosesan, penyimpanan dan manajemen data. Server bertugas menerima request dari client, mengolahnya, dan mengirimkan kembali hasilnya ke client.
Untuk itu, server membutuhkan komputer khusus dengan spesifikasi hardware yang jauh lebih baik dan bertenaga dibandingkan hardware untuk client karena komputer harus mampu melayani :
Ø  Request secara simultan dalam jumlah besar
Ø  Aktivitas manajemen jaringan
Ø  Menjamin keamanan pada resource jaringan

2.2   Proses Layanan pada Saat Terjadi Crash atau Fault Tolerance & Data Transaction dan Urutan Operasi yang Dijalani Oleh Server
Sebuah kecelakaan (atau sistem crash) dalam komputasi adalah suatu kondisi di mana sebuah komputer atau program, baik aplikasi atau bagian dari sistem operasi, berhenti berfungsi dengan baik, sering keluar setelah menghadapi kesalahan. Seringkali program menyinggung mungkin muncul untuk membekukan atau hang sampai layanan pelaporan kecelakaan dokumen rincian kecelakaan itu. Jika program adalah bagian penting dari kernel sistem operasi, seluruh komputer dapat kecelakaan. Hal ini berbeda dari hang atau membekukan dimana aplikasi atau OS terus berjalan tanpa respon jelas untuk masukan.
Banyak crash adalah hasil dari eksekusi instruksi mesin tunggal, tetapi penyebab ini berlipat ganda. Penyebab khas adalah ketika program counter diatur ke alamat yang salah atau buffer overflow menimpa sebagian kode program karena bug sebelumnya. Dalam kedua kasus, itu cukup umum untuk prosesor untuk mencoba untuk mengeksekusi data atau nilai memori acak. Karena semua nilai data adalah mungkin tetapi hanya beberapa nilai instruksi valid, ini sering mengakibatkan pengecualian instruksi ilegal.

2.3.  Konsep Dasar Replication
Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Desiscion Support System) atau pemrosessan database terdistribusi melalui beberapa server.
Replikasi adalah proses menyalin dan memelihara objek database dalam beberapa database yang membentuk suatu sistem database terdistribusi. Replikasi dapat meningkatkan kinerja dan melindungi ketersediaan aplikasi karena data pilihan alternatif akses ada. Sebagai contoh, sebuah aplikasi biasanya dapat mengakses database lokal daripada server jauh untuk meminimalkan lalu lintas jaringan dan mencapai kinerja maksimum. Selanjutnya, aplikasi dapat terus berfungsi jika server lokal mengalami kegagalan, tetapi server lain dengan data direplikasi tetap dapat diakses.Gambar 2. Message Exchange between a pair NTP peers
Pada mode procedure-call dan symmetric mode, memroses pertukaran bagian-bagian pesan. Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi, yaitu waktu local ketika pesan tersebut dikirimkan. Seperti pada Gambar 3, pesan m menyimpan catatan waktu setiap akan ditransmisikan, yaitu Ti-3 dan Ti-1, dan ketika diterima, yaitu Ti-2 dan Ti. Kemudian NTP menghitung jeda waktu antara dua clock komputer. 

Refresing:
http://luthfiadriansyah07.blogspot.com/2013/04/time-and-coordination.html
http://muhammad-diak-huddin.blogspot.com/2013/05/time-and-coordination-sistem.html
http://buddymilanisti.blogspot.com/2013/04/time-and-coordination_7678.html 

Name Service Pada Sistem Terdistribusi

Name Service dalam Sistem Terdistribusi merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama. 
Pengaksesan resource pada sistem terdistribusi yang memerlukan:

  1. Nama resource (untuk pemanggilan),
  2. Alamat (lokasi resource tsb),
  3. Rute (bagaimana mencapai lokasi tsb).

Name Service memiliki konsentrasi pada aspek penamaan dan pemetaan antara nama & alamat, bukan pada masalah rute, yang dibahas di Jaringan Komputer. Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas, pemakai.

Contoh penamaan pada aplikasi sistem terdistribusi:
–        URL untuk mengakses suatu halaman web.

–        Alamat e-mail utk komunikasi antar pemakai.

Name Resolution, Binding, Attributes

–        Name resolution:  Nama ditranslasikan ke data ttg resource/object tsb.

–        Binding: Asosiasi antara nama & obyek, dan biasanya nama diikat (bound) ke attributes dr suatu obyek.

–        Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi.

–        Attribute: nilai suatu object property.

Penguraian Naming Domains untuk mengakses resource dari URL

Tujuan Penamaan
  • Mengidentifikasi
  • Memungkinkan terjadinya sharing
  • Memungkinkan location independence
  • Memberikan kemampuan keamanan (security)
  • Jenis Nama


User names: Merujuk pada suatu obyek atau layanan; Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.

System names: Terdiri dari bit string; Internal untuk sistem, tidak ditujukan untuk manusia.
Struktur Nama

Primitive/flat names (Unique Identifiers = UIDs)
Partitioned Names (PN)
Descriptive names (DN)
Name Context

Nama selalu diasosiasikan dengan konteks, yang mendefinisikan di mana nama tsb valid. Ada 2 macam konteks:
–        Universal context
–        Relative context

Name List
Name Lists terdiri dari 2 komponen yaitu:
  1. Name agents
  2. Name servers

Bentuk Name List
Name List Tersentralisasi : Adalah Name list yang berada pada satu mesin.
Name List Tereplikasi Penuh : Digunakan untuk mengatasi kekurangan name list tersentralisasi.
Name List Tereplikasi Sebagian : Sebagian name lists disimpan dalam cache setiap mesin dan memerlukan mekanisme petunjuk (hint), yang biasanya benar.

Contoh Name Service
DNS (Domain Name Service) – memetakan nama domain ke alamat
GNS (Global Name Service) – memetakan global name ke atribut-atribut dan skalabilitas, dapat menangani perubahan
X500 directory service – memetakan nama orang ke dalam alamat suatu e-mail dan nomor telepon
Jini discovery service – mencari objek sesuai dengan atribut yang ada

Share Data & Transaction

Dalam sistem terdistribusi, shared data dapat di artikan sebagai beberapa komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain.

Pengaksesan resource pada sistem terdistribusi yang memerlukan:
  1. Nama resource (untuk pemanggilan)
  2. Alamat (lokasi resource tersebut)
  3. Rute (bagaimana mencapai lokasi tersebut)

Keuntungan Shared Data :
  1. Mengurangi biaya duplikasi usaha pengumpulan data
  2. Aman-menjaga data dalam lingkungan yang aman
  3. Back-up data
  4. Transaksi (Transaction)

Tujuan Shared Data
Sharing resources bertujuan agar seluruh program, peralatan atau peripheral lainnya dapat dimanfaatkan oleh setiap orang yang ada pada jaringan komputer tanpa terpengaruh oleh lokasi maupun pengaruh dari pemakai.

Merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.

Jenis –Jenis Transaksi :
  • Flat Transaction.
  • Nasted Transaction.


Share data
Merupakan pemakaian file data tunggal oleh ebih dari satu orang atau komputer, atau suatu akses yang diberikan kepada orang lain untuk mengkases data tersebut, mempunyai tujuan untuk berbagi akses kepada user lain pada suatu folder atau drive yang diinginkan, dimana kita bisa memilih kepada user mana saja yang bisa atau boleh mengakses folder kita dan juga bisa memberikan akses kepada semua orang yang ada pada jaringan/network.

Transaksi terdistribusi
merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.

Fault Tolerance
Salah satu tujuan dalam membangun sebuah system terdistribusi adalah memungkinkan untuk melakukan improvisasi terhadap kehandalan sistem. Ini dilakukan karena setiap system pasti akan menemukan kesalahan atau gangguan. Sehingga perlu untuk dibuat pencegahan atau solusi untuk mengatasi masalah tersebut. Availability: kalau mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan yang tersisa. Dalam suatu sistem terdistribusi komponen dalam system yang sangat vital terutama pada resources (critical resources) berjumlah seminimal mungkin. Yang dimaksud dengan critical resources adalah komponen dalam system yang harus ada untuk menjalankan sistem terdistribusi. 
Secara umum, ada dua jenis fault tolerant, yaitu fault tolerant secara hardware dan secara software. Untuk itu, masing - masing Software dan Hardware harus di replikasi. Sehingga kalau terjadi kegagalan / error maka yang lain akan menangani. Data dalam sistem terdistribusi tidak boleh hilang, oleh karena itu copy dari data atau resource lainnya tersebut disimpan secara redundan pada server lain, tapi tetap harus dijaga konsistensi datanya. Hal ini memang berkaitan dengan replikasi. Dengan membuat system terdistribusi yang fault tolerance maka Sistem harus bisa mendeteksi kegagalan dan melakukan tindakan dasar sebagai berikut:
1. Mask the fault (menutupi kegagalan): tugas harus dapat dilanjutkan dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.
2. Fail Gracefully: membuat suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang singkat tanpa menghilangkan  informasi atau data.