Delapan ‘Dosa’ Geek yang Mengerikan – Part 1

Sepertinya judul post ini terlalu hiperbola. 😀 Tapi memang benar kenyataannya. Hari ini saya akan membahas sebuah tugas kuliah yang diberikan kepada saya. Kuliah ini adalah kuliah wajib tingkat tiga di Program Studi Teknik Informatika, yaitu IF3056 – Sistem Terdistribusi. Dosennya adalah Pak Achmad Imam Kistijantoro. Beliau sangat imba alias jago banget. Pengetahuan akan makul yang diajarkannya sangat mendalam. Tak ayal beliau (sedengar saya) juga bertanggung jawab atas server-server di Labtek V.

Pengalaman diajar beliau pada semester lalu cukup mengesankan bagi saya. Mengajar dengan tempo agak cepat dan mendalam. Saya sebagai salah satu muridnya dituntut untuk memiliki konsentrasi tinggi dan pemahaman yang cukup akan bab-bab sebelumnya untuk mengerti kuliah yang sedang diajarkan. Sekalinya blank atau hilang konsentrasi, maka hilanglah mood untuk melanjutkan kelas pada hari itu. Karena bisa ketinggalan / tidak mengerti cukup banyak :D. Namun beliau sangat sabar untuk membahas ulang materi yang kami rasa masih kurang mengerti. Padahal kadang saya meleng atau bengong sehingga ga ngerti :p. Oleh karena itu ada baiknya kami (lebih tepatnya saya) sebagai muridnya sebaiknya membaca dulu tugas / bacaan / slide yang diberikan sebelum kuliah dimulai.

Sekian curhat saya mengenai beliau dan kelasnya. Berikut mengenai tugas yang diberikan beliau. Kami diberikan tugas untuk membaca paper dari Peter Deutsch (cmiiw) mengenai

assumptions architects and designers of distributed systems are likely to make, which prove wrong in the long run – resulting in all sorts of troubles and pains for the solution and architects who made the assumptions.

atau yang lebih dikenal sebagai 8 Fallacies of Distributed Computing.

Ketika saya membuka blog dari oracle mengenai topic ini di https://blogs.oracle.com/jag/resource/Fallacies.html saya diarahkan untuk membaca artikel dari Arnon Rotem-Gal-Oz, yang dapat diunduh di sini.

Berikut saya mengambil intisari dari paper dan tautan yang saya baca dari :

http://www.disnetwork.info/1/post/2009/10/the-8-fallacies-of-distributed-computing.html

1. The network is realible

Dalam sistem terdistribusi layer transport yang digunakan adalah TCP. TCP digunakan karena sifatnya yang reliable dan robust. Reliable berarti data yang ditransmisikan melalui TCP dijamin akan sampai dengan selamat waalfiat ke tujuan alias tidak korup. Sedangkan robust berarti kopi, eh itu robusta deng :hammer berarti ‘tahan’ terhadap error. Namun robustness dari koneksi TCP sendiri memiliki batas, dan pada beberapa kondisi koneksi ke layanan remote bisa saja tidak dimungkinkan. Sebagai contoh misalnya kegagalan daya catu. Atau contoh lain ketika anda memiliki sebuah web e-commerce yang bekerja dengan aplikasi eksternal dari sebuah bank / jasa kartu kredit. Anda tentu saja tidak memiliki kontrol terhadap koneksi yang digunakan oleh jasa tsb. Bisa saja terjadi DDOS attack yang menyerang bank tersebut. Dan *poof*. Data user web anda tidak akan pernah masuk ke bank tsb.

Protokol  yang digunakan oleh Sistem Terdistribusi adalah Distributed Information Transfer Protocol (DITP) yang didesain untuk mengatasi kegagalan koneksi. Sebagai contoh misalnya ada beberapa server yang didesain untuk saling tersinkronisasi antar satu dengan yang lain. Lalu tiba-tiba terjadi kegagalan jaringan. Server A dan Server B akan berproses dengan data yang sama namun dengan aksi yang berbeda dan jaringan yang berbeda. Ketika jaringan antar server tersebut tersambung kembali, data akan kembali disinkronisasi antar Server A dan Server B.

2. The Latency is Zero

Latency adalah waktu yang diperlukan dalam perpindahan data dari satu tempat ke tempat lain. (Sedangkan bandwidth adalah seberapa banyak data yang dapat ditransfer dalam satuan waktu). Latency tentu saja akan bagus di dalam jaringan lokal (LAN). Namun biasanya Sistem Terdistribusi akan menggunakan Wide Area Network (WAN). DITP dapat mengurangi latency dengan cara asynchronous request. Jadi ketika client akan menggunakan data, yang harus terlebih dulu di-download dari server. Client dapat melakukan proses lain sembari menunggu data tersebut dari server. Ketika download sudah selesai maka proses tadi yang sempat tertunda dapat dilanjutkan. Contoh pemakaiannya adalah AJAX dan JavaScript. Selain itu dapat juga digunakan metoda mengirimkan code yang akan dieksekusi oleh remote service. Sebagai contoh JavaScript pada Web 2.0.

The minimum round-trip time between two points of this earth is determined by the maximum speed of information transmission: the speed of light. At roughly 300,000 kilometers per second (3.6 * 10E12 teraangstrom per fortnight), it will always take at least 30 milliseconds to send a ping from Europe to the US and back, even if the processing would be done in real time.” — Ingo Rammer on latency vs. Bandwidth

Sekian dulu post bagian pertama mengenai 8 fallacies ini 😀 akan saya lanjutkan pada malam hari nanti / besok malam 🙂 Stay tune!

Advertisements

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s