This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Kamis, 18 Desember 2014

Fault Tolerance, Data Transaction dan Replikasi

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.


Data Transaction
Adalah transaksi pengiriman ( Send – Request ) ke sebuah Server-Host  dengan alamat IP / IP adress  dengan Format ( Protokol ) Server-Host tersebut dengan harapan Server-Host melakukan apa yang pengirim Inginkan dalam hal ini Server-Host atau Client. Sebagai Contoh :    Server – Host A atau Client mengirim sebuah data kepada Server – Host B, Pengirim menginginkan  sebuah data xxx agar di proses oleh Server-Host – B lalu memberikan informasi dsb ke pada Pengirim dalam hal ini ( Server – Host A atau Client ). Pada contoh di atas tentu pengirim harus tahu kemana akan di kirim, yah itulah butuhnya sebuah ip address, dengan ip adress tentu data yang kita kirim akan sampai ke tujuan yang kita inginkan, pengiriman data dengan TCP/IP adalah baik,  karena dengan konsep protokol TCP/IP data yang kita kirim pasti sampai kepada tujuan yang tepat, keculi memakai protokol UDP alias broadcast.

REPLIKASI

Dalam suatu system terdistribusi perlu adanya transparasi replikasi yaitu Sistem bebas untuk menambah file atau sumber daya tanpa diketahui oleh user (dalam rangkan meningkatkan kinerja). Salah satu segi kehandalan yang diperlukan di dalam sistem terdistribusi adalah replikasi berkas. Sebuah berkas yang direplikasi berarti memiliki beberapa replika berkas yang terletak di lokasi yang berbeda. Sifat yang harus dipelihara oleh replikasi adalah tetap dipandangnya replika-replika berkas oleh pemakai sebagai sebuah berkas tunggal (replication transparency). Tujuan replikasi berkas pada sisem terdistribusi adalah untuk meningkatkan unjuk kerja dan ketersediaan (availability) system.
Selain itu ada yang menyebutkan bahwa 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. Dengan replication dasar, replika data memberikan akses read-only ke tabel data yang berasal dari sebuah situs (master) primer.Aplikasi dapat query data dari replika data lokal untuk menghindari akses jaringan terlepas dari ketersediaan jaringan.Namun, aplikasi di seluruh sistem harus mengakses data pada situs utama ketika pembaruan diperlukan.
Keuntungan dan kerugian dari replikasi :
 – Availability : jika satu site yang berisi relasi r gagal, relasi r masih didapat di site yang lain. Sistem dapat melanjutkan proses meskipun satu site mengalami kegagalan.
 – Meningkatkan parallel : beberapa site dapat memproses query terhadap r secara parallel. Semakin banyak ada replikasi, semakin besar kesempatan data yang dibutuhkan ditemukan pada site dimana transaksi dijalankan. Replikasi data meminimalkan pergerakan data di antara site.
 – Meningkatkan overhead update: sistem harus memastikan bahwa semua replikasi dari relasi r konsisten. Karena kalau tidak, akan terjadi kesalahan komputasi. Di mana pun r di-update, update ini harus disebar ke seluruh site. replikasi meningkatkan kinerja operasi baca dan meningkatkan availability pembacaan data. Transaksi update meningkatkan overhead. Masalah pengontrolan konkurensi update data yang direplikasi semakin kompleks dari pendekatan terpusat. Cara sederhana adalah membuat salinan utama dari r. Misal : di sistem perbankan, rekening dapat dihubungkan dengan site dimana rekening tersebut dibuka.

Senin, 15 Desember 2014

Sinkronisasi dan Asinkronisasi


  • Sinkronisasi Sinkronisasi adalah Adalah satu kunci kerja dari komunikasi data. Transmiter mengirimkan pesan 1 bit pada satu saat melalui medium ke receiver. Receiver harus menandai awal dan akhir blok dari bit, juga harus diketahui durasi untuk masing-masing bit sehingga dapat sample lajur dari timing untuk membaca masing-masing bit (merupakan tugas dari timming).

    Asynchronous
    Untuk mencegah problem timming dengan tidak mengirim aliran bit panjang yang tidak putus putusnya. Bit-bit dikirim per-karakter pada setiap waktu yang mana masing-masing karakter mempunyai panjang 5-8 bit. Timing atau synchronisasi harus dipertahankan antara tiap karakter; receiver mempunyai kesempatan untuk men-synchron-kan awal dari tiap karakter baru.
    Penggunaan sinkronisasi thread adalah dalam model “Producer/Consumer”.
    Suatu lock (kunci) digunakan untuk mengsinkronkan akses ke sumber daya terbagi-pakai. Suatu lock dapat diasosiasikan dengan suatu sumber daya terbagi-pakai. Thread memperoleh akses ke sumber daya terbagi-pakai dengan terlebih dahulu mendapatkan lock yang terasosiasi dengan obyek atau block dari kode. Pada suatu waktu yang diberikan, harus hanya satu thread yang dapat memegang lock dan dengan cara demikian mempunyai akses ke sumber daya terbagi-pakai. Lock seperti ini mengimplementasikan mutual exclusion.
    Mekanisme object lock (penguncian obyek) menjalankan aturan-aturan sinkronisasi berikut:
    • Suatu thread harus memperoleh object lock yang diasosiasikan dengan suatu sumber daya terbagi-pakai, sebelum ia dapat memasuki sumber daya terbagi-pakai tersebut. Sistem runtime memastikan bahwa tidak ada thread lain yang dapat memasuki sumber daya terbagi-pakai jika suatu thread sudah memegang (hold) object lock yang diaosiasikan dengan sumber daya terbagi-pakai tersebut. Jika suatu thread tidak dapat dengan segera mendapatkan object lock,maka ia harus menunggu sampai lock tersedia.
    • Pada saat suatu thread berada di dalam suatu sumber daya berbagi-pakai, sistem runtime memastikan bahwa object lock juga dilepaskan. Jika suatu thread lain sedang menunggu object lock ini, ia dapat diproses untuk mendapatkan lock agar memperoleh akses ke sumber daya terbagi-pakai tersebut.
    Kelas juga mempunyai suatu lock spesifik kelas yang bersifat analog dengan object lock. Lock demikian sesungguhnya merupakan lock pada obyek java.lang.Class yang berasosiasi dengan kelas tersebut. Diberikan suatu kelas A, referensi A.kelas menyatakan obyek kelas unik ini. Class lock tersebut digunakan dengan cara yang sama seperti object lock untuk mengimplementasikan mutual exclusion.
    penulisan data selesai tanpa perlu menunggu penulisan data di tempat penyimpanan duplikat selesai; proses ini memang meningkatkan kinerja sistem namun risikonya, inkonsistensi data bisa terjadi.

Time and Coordination Pada Sistem Terdistribusi2

Pengetahuan Logical Clock & Synchronisation 1. Logical Clock
Logical clock adalah software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung hubungan tertentu ke suatu physical clock.
Hampir seluruh komputer memiliki sebuah circuit untuk menunjukkan waktu. Pada kenyataannya circuit tersebut bukanlah penunjuk waktu (jam) yang sebenarnya. Kata yang tepat untuk mendeskripsikan circuit tersebut adalah timer. Timer pada suatu komputer pada umumnya merupakan suatu crystal quartz yang termekanisasi. Jika dihadapkan pada suatu tekanan, kristal tersebut akan berosilasi pada frekuensi tertentu bergantung pada jenis kristal dan bagaimana kristal tersebut dipotong serta seberapa besar tekanan yang diberikan. Terdapat 2 register yang berasosiasi dengan kristal tersebut. Sebuah counter dan holding register. Setiap interript akan diregenerasi dan counter akan kembali terisi oleh nilai yang terdapat pada holding register. Dengan begini sangat memungkinkan untuk memrogram sebuah timer untuk meregenerasi 60 interrupt tiap detiknya atau sesuai dengan frekuensi yang diinginkan. Setiap interrupt disebut dengan satu clock tick.
Synchronisation
Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Secara garis besar mungkin sinkronisasi adalah menyamakan sesuatu secara bersamaanSinkronisasi adalah suatu proses pengendalian akses dari sumber daya terbagi pakai (shared resource) oleh banyak thread sedemikian sehingga hanya satu thread yang dapat mengakses sumber daya tertentu pada satu waktu.
Proses Koordinasi pada sistem  Terdistribusi
Sistem tedistribusi memungkinkan kita untuk saling mengkoordinasikan dan saling bekerja sama dalam melakukan aktifitas secara lebih efisien dan lebih efektif. Tujuan utama dari system terdistribusi dapat direpresentasikan dengan : resource sharing , openness, concurrency, scalabilityfault-tolerance dan transparency.
Proses koordinasi nya
  • Dijalankan secara bersamaan (execute concurrently)
  • interaksi untuk bekerjasama dalam mencapai tujuan yang sama
  • mengkoordinasikan aktifitas dan pertukaran informasi yaitu pesan yang dikirim melalui jaringan komunikasi
Jika kita melihat sistem terdistribusi sebagaikoleksi (mungkin proses multithreaded, maka bagian komputasi dari sistem terdistribusi dibentuk oleh proses, masing-masing terkait dengan aktivitas komputasi spesifik, yang pada prinsipnya, dilakukan secara independen dari kegiatan lainnya proses. Dalam model ini, bagian koordinasi sistem terdistribusi menangani komunikasi kerjasama antara proses. Membentuk perekat yang mengikat kegiatan yang dilakukan oleh proses menjadi keseluruhan.
  1. Perbedaan Model Sinkronisasi dan Asinkronisasi
Sistem basis data terdistribusi dapat menyimpan duplikat dari data yang sama dalam site yang berbeda agar perolehan informasi yang semakin cepat dan toleransi kesalahan. Proses ini disebut replikasi. Replikasi pada relasi bersifat redundan pada dua atau lebih situs. Replikasi pada relasi disebut replikasi penuh bila relasi tersebut disimpan pada semua situs. Basis data disebut redundan penuh jika tiap-tiap site mengandung duplikat dari keseluruhan basis data.
Replikasi dilakukan karena memiliki kelebihan sebagai berikut:
  • jika situs asli yang menyimpan relasi R mengalami kegagalan, relasi R tetap dapat diakses melalui replikanya
  • query pada relasi R dapat berjalan secara paralel di simpul (situs) yang berbeda
  • lebih sedikit transfer data, yaitu tidak perlu lagi mengambil data suatu relasi melalui jaringan karena sudah ada replika dalam situs lokal.
Sementara itu, dalam melakukan replikasi, ada dua strategi, yaitu
  • sinkron yaitu: sebelum seluruh proses transaksi update dinyatakan selesai, data yang telah dimodifikasi disinkronkan ke setiap duplikatnya; proses ini harus menunggu hingga data di tempat penyimpanan duplikat selesai ditulis sebelum dilakukan perubahan lainnya sehingga menjadi lebih kompleks
  • asinkron yaitucopy data diperbaharui secara periodik berdasarkan data utama yang diperbaharui; proses penulisan data selesai tanpa perlu menunggu penulisan data di tempat penyimpanan duplikat selesai; proses ini memang meningkatkan kinerja sistem namun risikonya, inkonsistensi data bisa terjadi.
  1. 2. Pembahasan tentang bagaimana server mengelola Share Data
  2. 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 komputer A.
  1. 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
  1. 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.
  1. 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.

Skema File Service Dan Name Service

1. Jelaskan skema dan contoh proses File Service pada sistem terdistribusi antara client dan server!
2. Jelaskan skema dan contoh proses Name Service pada sebuah sistem terdistribusi!
Jawaban:
1.
1. Layanan Flat File (Flat file service)
–  Beroperasi pada isi file
– Unique File Identifier (UFID)
2. Layanan Directori (Directory Service)
– Menyediakan pemetaan antara nama sebagai teks ke UFIDs
3. Modul Client
– Menyediakan aplikasi untuk mengakses layanan file jarak jauh secara transparan
– Menyimpan status (state): open files, positions
– Mengetahui lokasi jaringan dari flat file dan directory server
Contoh :
1. NFS (Network File System)
Network File System (NFS) merupakan sebuah protokol yang dikembangkan oleh Sun Microsystem pada tahun 1984 dan NFS didefinisikan dalam RFC 1094, 1813 dan 3530 sebagai “DFS” yang mengijikan sebuah komputer untuk mengakses file melalui network serasa akses file di disk local. NFS merupakan protokol yang sangat mendukung dalam pengaplikasian suatu file system yang terdistribusi.
Tujuan dari NFS adalah untuk memungkinkan terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas tersebut. Hubungan yang terjadi di sini didasarkan pada hubungan client-server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan diatas workstation.
NFS didesain agar dapat beroperasi di lingkungan ataupun jaringan yang heterogen yang meliputi mesin, platform, sistem operasi, dan arsitektur jaringan. Ketidaktergantungan ini didapat dari penggunaan RPC primitif yang dibangun diatas protokol External Data Representation (XDR).
Jika misalnya terjadi sebuah pertukaran sistem berkas antara server dan client , maka pertukaran sistem berkas yang terjadi disini harus dipastikan hanya berpengaruh pada tingkat client dan tidak mempengaruhi sisi server , karena server dan client adalah mesin yang berbeda dan sama-sama bebas. Untuk itu, mesin client harus melakukan operasi mount terlebih dahulu agar remote directory dapat diakses secara transparan.
2. Protokol NFS
NFS umumnya menggunakan protokol Remote Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP dengan port number 2049 untuk komunikasi antara client dan server di dalam jaringan. Client NFS selanjutnya akan mengimpor sistem berkas remote dari server NFS, sementara server NFS mengekspor sistem berkas lokal kepada client.
Mesin-mesin yang menjalankan perangkat lunak NFS client dapat saling berhubungan dengan perangkat lunak NFS server untuk melakukan perintah operasi tertentu dengan menggunakan request RPC. Adapun operasi-operasi yang didukung oleh NFS adalah sebagai berikut:
a. Mencari berkas di dalam direktori.
b. Membaca kumpulan direktori.
c. Memanipulasi link dan direktori.
d. Mengakses atribut berkas.
e. Membaca dan menulis berkas.
Perlu diketahui bahwa server NFS bersifat stateless , yang artinya setiap request harus mengandung argumen yang penuh dan jelas sebab server NFS tidak menyimpan sejarah informasi request . Data yang dimodifikasi harus di commit ke server sebelum hasilnya di kembalikan ke client . NFS protokol tidak menyediakan mekanisme concurrency-control.
2.
Dimana dilakukan Pengaksesan resource pada sistem terdistribusi yang memerlukan:
Nama resource (untuk pemanggilan),
Alamat (lokasi resource tsb),
Rute (bagaimana mencapai lokasi tsb)
untuk mengetahui domain dari nama website yang diakses.
Sehingga, 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.
 Contoh Name Service.
1. DNS (Domain Name Service)
- memetakan nama domain ke alamat.
2. GNS (Global Name Service)
- memetakan global name ke atribut-atribut.
- skalabilitas, dapat menangani perubahan.
3. X500 directory service
- memetakan nama orang ke dalam alamat suatu e-mail dan nomor telepon.
4. Jini discovery service
- mencari objek sesuai dengan atribut yang ada.
Sumber:
2. http://iwan.staff.gunadarma.ac.id/…/6_Name+Service.pdf