Sistem Terdistribusi-Tugas1

1. Definisi Sistem Terdistribus

Sistem Terdistribusi merupakan kumpulan komponen hardware dan software dalam suatu jaringan yang secara fisik terpisah dan  saling berkomunikasi dan berkoordinasi melalui pesan untuk menyebarkan data, informasi, obyek dan layanan. Sarana komunikasi antar elemen dijembatani oleh jaringan dimana tata cara komunikasinya diatur dengan perjanjian agar dapat dipahami oleh elemen-elemen yang terlibat.

Sistem terdisitribusi melakukan pembagian pekerjaan antar elemen sehingga terjadi sebuah
kinerja optimum dari sebuah sistem. Bagian terluar dari sistem ini yang berhubungan dengan
pengguna akan disebut sebagai aplikasi client. aplikasi client merupakan front end yang
berhubungan dengan pengguna sistem. Sedangkan dibelakangnya terdapat beberapa lapisan logik
seperti presentation server, bussiness object server dan database server.

2. Ruang Lingkup Sistem Terdistribusi

Jika membahas mengenai ruang lingkup sistem terditribusi, kita dapat memahaminya dengan 4 faktor yaitu communicating entities yaitu entitas apa saja yang saling berkomunikasi pada sistem. communication paradigm yaitu bagaimana entitas saling berkomunikasi. Roles and responsibilities yaitu peran dan tanggung jawab entitas pada sistem. Dan placement yaitu penempatan entitas pada sistem.

          1. Communicating entities

Communicating entities menjelaskan entitas apa saja yang saling berkomunikasi pada sistem. Dari sudut pandang sistem, yang berkomunikasi dengan sistem terdistribusi adalah proses. Pada lingkungan primitive seperti sensor network, yang mendasari sistem operasi, yang  mungkin tidak mendukung proses abstraksi, entitas yang berkomunikasi adalah node. Namun pada lingkungan yang sangat terdistribusi, proses dilengkapi dengan thread atau dapat dikatakan bahwa titik akhir komunikasi adalah node.

Jika kita menggunakan 1 level distribusi, penjelasan diatas sudah cukup menjadi dasar, namun jika dari sudut pandang programming, hal ini tidaklah cukup. Ada beberapa entitas lain yang diperlukan yaitu object, component, web services.

Object, seperti yang telah diperkenalkan yaitu untuk memungkinkan dan mendorong penggunaan pendekatan object-oriented pada sistem terdistribusi. Objek terdistribusi telah menjadi area pembelajaran utama pada sistem terdistribusi.

Component, sejak diperkenalkan beberapa masalah pada objek terdistribusi, penggunaan teknologi komponen diperkenalkan. Komponen menyerupai objek dimana memungkinkan untuk abstraksi yang berorientasi masalah untuk membangun sistem terdistribusi dan diakses melalui interface.

Webservices, merupakan paradigma penting yang ketiga dalam pembangungan sistem terdistribusi. Webservices erat kaitannya dengan objek dan komponen. Pendekatan melalui enkapsulasi perilaku dan akses melalui interface.

          2. Communication paradigms

Menunjukkan bagaimana entitas berkomunikasi pada sistem terdistribusi dan 3 tipe pada communication paradigm adalah interprocess communication, romote invocation, indirect communication.

Interprocces communication, mengacu pada dukungan pada level yang relative rendah pada komunikasi antar proses pada sistem terdistribusi. Contoh message-passing, akses langsung API dan mendukung komunikasi multicast.

Remote invocation, merupakan paradigma komunikasi paling umum pada sistem terdistribusi, yang mencakup berbagai teknik yang berdasarkan pertukaran dua arah antar entitas yang berkomunikasi pada sistem terdistribusi.

Pada 2 paradigma diatas, komunikasi antara pengirim dan penerima dimana pengirim mengetahui siapa penerimanya dan penerima mengetahui siapa pengirimnya, sehingga kedua belah pihak harus ada pada waktu yang bersamaan. Sebaliknya muncul Indirect communication yaitu komunikasi yang membutuhkan pihak ketiga pada pertukaran datanya. Pada indirect communication ini, pengirim tidak perlu tau siapa yang dikirimi pesan dan pengirim dan penerima tidak perlu ada pada waktu yang bersamaan.

          3. Roles and responsibilities

Pada sistem terdistribusi, entitas berinteraksi satu dengan yang lain untuk mencapai tujuan tertentu misal mendukung sesi chat. Pembagian peran sangat penting dalam membangun sistem agar tujuan tercapao. Pada bagian ini ada 2 pendekatan yang dapat digunakan berdasarkan peran masing-masing entitas yaitu client server dan peer to peer

            4. Placement

Placement berkaitan dengan bagaimana entitas dipetakan pada infrastruktur fisik dimana akan terdiri dari banyak mesin yang saling terkoneksi pada jaringan. Placement ini sangat penting dalam hal penetuan sifat sistem yang didistribusikan. Yang pasti mengenai kinerja sistem, kehandalan dan keamanan.

Dari penjabaran di atas, dapat disimpulkan bahwa ruang lingkup sistem terdistribusi mencakup entitas yang ada pada sistem, yaitu proses, object, komponen dan webservices. Bagaimana antar entitas tersebut saling berkomunikasi dengan berdasarkan beberapa paradigm yang ada yaitu interprocess communication, romote invocation, indirect communication. Peran dan tanggung jawab entitas pada sistem dan placement atau penempatan entitas pada sistem. Misalnya menggunakan pendekatan client server, apakah entitas tersebut di perankan sebagai client atau sever.

3. Contoh Penerapan

Google Cloud Messaging (GCM) for Android Service

Google Cloud Messaging adalah sebuah layanan yang memungkinkan Anda untuk mengirim data dari server ke perangkat Android pengguna, dan juga untuk menerima pesan dari perangkat pada koneksi yang sama. Layanan ini merupakan pembaruan dari layanan Google sebelumnya yaitu Android Cloud to Device Messaging Framework (C2DM) yang sudah tidak didukung dan dihilangkan oleh Google. Layanan ini bisa menjadi pesan ringan yang memberitahu aplikasi Android bahwa ada data baru yang akan diambil dari server (misalnya, pemberitahuan “email baru” pada aplikasi yang belum tersinkron dengan server), atau bisa pesan yang berisi hingga 4KB data payload (aplikasi seperti pesan instan dapat menerima pesan langsung). Layanan GCM menangani semua aspek antrian pesan dan pengiriman ke target aplikasi Android yang berjalan pada perangkat target, layanan ini bersifat gratis.

Fitur GCM:

1. Mengirim data dari server ke perangkat Android pengguna.

Fitur ini bisa menjadi pesan ringan yang memberitahu (notifikasi) sebuah aplikasi ada data baru yang akan diambil dari server (misalnya, sebuah film yang diunggah oleh seorang teman), atau bisa juga pesan yang berisi hingga 4 kb data payload (aplikasi seperti pesan instan).

2. Mengirim pesan “send-to-sync”.

Sebuah pesan send-to-sync sering “menggelitik” yang memberitahu aplikasi mobile untuk melakukan sinkronisasi data dari server. Misalnya, Anda memiliki aplikasi email. Bila pengguna menerima email baru di server, server tersebut melakukan ping pada aplikasi mobile dengan pesan “new mail”. Hal ini memberitahu aplikasi untuk melakukan sync ke server untuk mengambil email baru. Contoh lain akan menjadi aplikasi olahraga yang update pengguna dengan skor terbaru. Hanya pesan terbaru yang relevan, sehingga masuk akal untuk mempunyai setiap pesan baru yang menggantikan pesan sebelumnya.

3. Mengirim pesan dengan payload

Tidak seperti pesan send-to-sync, setiap “message with payloads” ini telah disampaikan. Pesan Payload bisa berisi sampai 4KB. Sebagai contoh, fitur ini digunakan untuk Instant Messaging.

4. Pengembalian penerimaan (Return Receipts)

Fitur ini merupakan fitur terbaru dari GCM yang memungkinkan server aplikasi pihak ke-3 dapat menerima notifikasi penerimaan dari server setelah pesan sudah dikirim ke perangkat, atau dalam istilahnya delivered.

Karakteristik GCM:

  1. Hal ini memungkinkan server pada aplikasi pihak ke-3 untuk mengirim pesan ke aplikasi Android mereka.
  2. Dengan GCM Cloud Connection Server (CCS), Anda dapat menerima pesan upstream dari perangkat pengguna.
  3. Sebuah aplikasi pada perangkat Android tidak perlu dijalankan untuk menerima pesan. Sistem akan “membangunkan” aplikasi Android tersebut melalui broadcast dari server pada saat pesan tiba, asalkan aplikasi diatur dengan penerima broadcast yang sudah dikenali.
  4. GCM tidak menyediakan tampilan user interface atau lainnya dalam penanganan data pesan. GCM hanya mengirimkan pesan data mentah yang diterima langsung ke aplikasi Android, yang mana aplikasi tersebut memiliki kontrol penuh tentang bagaimana untuk menangani hal tersebut. Sebagai contoh, aplikasi mungkin mengirim notifikasi, menampilkan antarmuka aplikasi, atau melakukan sinkronisasi data secara diam-diam.
  5. Hal ini membutuhkan perangkat yang menjalankan Android 2.2 atau lebih tinggi yang juga memiliki Google Play Store, atau atau emulator yang menjalankan Android 2.2 dengan Google API.
  6. Menggunakan koneksi yang ada untuk layanan Google. Layanan ini mengharuskan pengguna untuk mengatur akun Google mereka pada perangkat mobile mereka. Sebuah account Google bukan merupakan persyaratan pada perangkat yang menjalankan Android 4.0.4 atau lebih tinggi.

Konsep GCM:

Dalam layanan ini terdapat kategori yang menjalankan konsep GCM itu sendiri, kategori ini dapat dijabarkan menjadi dua, diantaranya:

  1. Components yang merupakan entitas utama yang menjalankan layanan GCM. Components ini meliputi: Aplikasi klien (Client App) yang berjalan pada perangkat Android, Server pihak ke-3 yang berperan untuk mengirimkan data ke aplikasi Android melewati GCM Connection Server, dan GCM Connection Server yang berperan untuk mengambil pesan dari server aplikasi dan mengirim pesan ke perangkat.
  2. Credentials yang merupakan kumpulan ID dan token yang digunakan dalam GCM untuk memastikan bahwa semua pihak telah dikonfirmasi, dan bahwa pesan tersebut disampaikan ke pengguna yang benar dan dikenali. Credentials ini meliputi: ID pengirim, ID aplikasi, ID registrasi, akun pengguna Google, token otentikasi pengirim.

Arsitektur system

Implementasi GCM termasuk koneksi server Google, server aplikasi pihak ke-3 yang berinteraksi dengan server koneksi, dan aplikasi client yang mengaktifkan GCM yang berjalan pada perangkat Android.

GCM-arch

Bagaimana komponen tersebut berinteraksi?

  1. Google menyediakan GCM Connection Server mengambil pesan dari server aplikasi pihak ke-3 dan mengirim pesan ini untuk aplikasi Android yang mengaktifkan GCM (“aplikasi klien”). Google menyediakan server koneksi untuk HTTP dan XMPP.
  2. Server aplikasi pihak ke-3 merupakan komponen yang Anda implementasikan untuk bekerja dengan memilih koneksi server GCM yang tersedia. Server aplikasi mengirim pesan ke server koneksi GCM; server akan memasukkan pesan kedalam antrian dan menyimpan pesan, dan kemudian mengirimkannya ke perangkat bila perangkat online.
  3. Aplikasi klien adalah aplikasi Android yang mengaktifkan GCM yang berjalan pada perangkat pengguna. Untuk menerima pesan GCM, aplikasi ini harus mendaftar GCM dan mendapatkan ID registrasi. Jika Anda menggunakan koneksi server XMPP, aplikasi klien dapat mengirim pesan “upstream” yang kembali ke server koneksi.

GCM Connection Server:

  1. GCM Cloud Connection Server (XMPP). Server ini menyediakan persistensi, asynchronous, koneksi dua arah ke server Google. Koneksi ini dapat digunakan unutk mengirim dan menerima pesan antara server aplikasi dan perangkat yang terhubung dengan GCM.

Alur kontrol:

Setiap pesan yang dikirim ke CCS akan menerima respon ACK dan NACK. Pesan yang belum menerima salah satu respon tersebut akan dianggap tertunda (pending). Jika jumlah pesan yang tertunda mencapai 100, server aplikasi pihak ke-3 harus berhenti mengirim pesan baru dan menunggu CCS untuk menerima beberapa pesan tertunda yang ada seperti digambarkan pada Gambar 1:

CCS-ack

 2. GCM HTTP Connection Server.

Referensi :

G. Coulouris, J. Dollimore, T. Kindberg and G. Blair, Distributed System Concepts and Design, Boston: Pearson Education, Inc., 2012.

www.developer.android.com

10 Responses

  1. Attractive section of content. I just stumbled upon your weblog and in accession capital to assert
    that I get actually enjoyed account your blog posts.
    Any way I will be subscribing to your feeds and even I achievement you access consistently fast.

  2. Joker123 Net says:

    Very energetic blog, I liked that a lot. Will there be a part 2?

  3. Joker123 says:

    Unquestionably imagine that which you stated. Your favorite
    reason seemed to be on the web the easiest factor to take into accout of.
    I say to you, I certainly get annoyed at the same time as
    people consider issues that they plainly don’t recognise about.
    You controlled to hit the nail upon the highest and also outlined out the
    entire thing with no need side-effects , folks can take a signal.
    Will likely be again to get more. Thank you

  4. Joker123 says:

    It’s very simple to find out any matter on web as compared to books, as I found this article at this
    web page.

  5. We’re a group of volunteers and starting a new scheme in our community.
    Your web site offered us with valuable info to work on. You’ve done a formidable job and our entire community will be grateful to you.

  6. Your mode of explaining everything in this post is really pleasant, every one be capable of easily
    understand it, Thanks a lot.

  7. Hey there! I just wanted to ask if you ever have any
    trouble with hackers? My last blog (wordpress) was hacked and I ended up losing several weeks of hard work due to no data backup.

    Do you have any solutions to stop hackers?

  8. JOKER388 says:

    If you want to increase your know-how only keep
    visiting this web site and be updated with the newest news posted here.

Leave a Reply

Your email address will not be published. Required fields are marked *