Read more: http://cheater-handal.blogspot.com/2011/05/cara-membuat-ucapan-selamat-tinggal-di.html#ixzz2VzHob9hY Maret 2014 | NOTE FOR LIFE

KONSEP RPC (Remote Procedure Call)

DEFINISI RPC
RPC adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengizinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode sistem yang jauh (remote system).
RPC digunakan untuk membangun aplikasi klien server yang terdistribusi. Didasarkan pada memperluas konsep konvensional dari suatu prosedur dimana nantinya mempunyai alamat sama dengan lokasi prosedur dipanggil. RPC mengasumsi keberadaan TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representasi (XDR) yang merupakan sandar representasi data dalam komunikasi remote. Protokol RPC mengijinkan pengguna untuk bekerja dengan remote sebagaimana bekerja dengan prosedur lokal.

PROTOKOL MESSAGE RPC
a.              Didefinisikan dengan menggunakan deskripsi data XDR yang meliputi struktur, enumerasi, dan union.
b.             Membutuhkan faktor-faktor pendukung :
-            Spesifikasi yang unik untuk tiap procedure call
-            Respon message yang sesuai untuk tiap message yang diminta.
-            Otentifikasi klien untuk tiap layanan

STRUKTUR PROTOKOL MESSAGE RPC
a.              Call Message
-            Dilakukan oleh klien, dimana meminta server untuk mengeksekusi suatu prosedur.
-            Terdapat nilai-nilai unsigned integer yangdigunakan untuk mengidentifikasi prosedur remote, yang diminta adalah Nomor Program, Nomor Versi dari Program, dan Nomor Prosedur
b.             Reply Message
-            Dikirimkan oleh server jaringan, bervariasi tergantung apakah call message yang diminta klien diterima atau ditolak
-            Mengandung informasi:
1.          RPM mengeksekusi call message dengan sukses
2.         Implementasi remote tidak sesuai dengan protokol yang digunakan (versi yang lebih    tinggi atau lebih rendah ditolak)
3.          Program remote tidak tersedia pada sistem remote
4.          Program remote tidak mendukung versi yang diminta klien
5.          Nomor prosedur yang diminta tidak ada

FITUR DALAM RPC
1.              Batching Calls
Mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara berurutan.
2.              Broadcasting Calls
Menijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network.
3.              Callback Procedures
Mengijinkan server untuk bertindak sebagai klien dan melakukan PRC callback ke proses yang dijalankan klien.
4.              Select Subrutin
Memeriksa deskripsi suatu file dan messages dalam antrian untuk melihat apakah siap dibaca atau ditulis, atau ditahan. (mengijinkan server untuk menginterupsi suatu aktivitas)

OTENTIFIKASI RPC
-                 Otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan klien pada RPC.
-                 Bagian-bagian otentifikasi RPC, yaitu :
1.    Protokol Otentifikasi RPC
2.    Otentifikasi NULL
Digunakan pada sistem dimana pemanggil RPC tidak mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil
3.    Otentifikasi UNIX
Digunakan pada prosedur remote dalam sistem UNIX
4.    Otentifikasi Data Encryption Standard
       Membutuhkan keyserv daemon yang harus berjalan baik di sisi server maupun klien.
5.    Protokol Otentifikasi DES
       Meliputi protokol penanganan DES pada proses otentifikasi RPC.
6.    Enkripsi Diffie-Hellman
       Digunakan pada pembuatan kunci publik pada otentifikasi DES dengan 192-bit kunci.
-                 RPC tidak berhubungan dengan kontrol akses terhadap layanan individual yang diberikan.
-                 Subsistem otentifikasi pada paket RPC bersifat open-ended, yaitu beberapa otentifikasi dapatdiasosiasikan pada RPC klien

BAHASA RPC
-                 Merupakan bahasa yang dikembangkan dari bahasa XDR dengan penambahan program definisi.
-                 Implementasi layanan protokol dan rutin menggunakan command rpcgen, yang bekorespondensi denga bahasa C.
Definisi dari bahasa RPC, yaitu :
1.    Definition
       File dengan bahasa RPC memiliki beberapa definisi, diantaranya adalah : enum, struct, union, typedef, const, dan program.
2.    Structure
      Struktur pada bahasa RPC dideklarasikan seperti pada pendeklarasian struktur dalam bahasa C
3.     Union
       Union pada bahasa RPC berbeda dengan bahasa C. Kemiripan lebih ditunjukkan dengan variasi pada bahasa Pascal
4.    Enumeration
       Enumerasi pada bahasa ini memiliki syntax yang sama dengan bahasa C.
5.    TypeDef
      Tipe Definisi ( Typedef ) pada bahasa ini memiliki syntax yang sama dengan typedef pada bahasa C.
6.    Constant
      Constant pada bahasa ini dapat digunakan jika variabel integer konstant dibutuhkan.
7.    Programs
      Program RPC dideklarasikan dengan syntax berikut secara berurutan : programdefiniton, version-list, version, procedure-list, procedure.
8.    Declarations
      Dalam bahasa  ini, terdapat  empat  jenis  tipe deklarasi  yaitu  :  simple declarations,  fixed length array declarations,  variable- length declaration, dan pointer declaration.

LAPISAN RPC
1.              Lapisan Tertinggi
-                 Merupakan lapisan yang bersentuhan langsung dengan sistem operasi, mesin, dan jaringan tempat RPC berjalan.
2.              Lapisan Menengah
-                 Merupakan implementasi dari RPC sesungguhnya.
-                 Layer ini merupakan layer yang digunakan untuk semua program RPC
-                 Pada layer ini terdapat rutin-rutin mengenai "registerrpc()", "callrpc", dan scv run.
-                 ”registerrpc() digunakan untuk memperoleh nomor unik dari tiap prosedur identifikasi dalam tiap sistem.
-                 ”callrpc()” digunakan untuk mengeksekusi prosedur remote
3.              Lapisan Terendah
-                 Merupakan lapisan yang mengatur tentang socket dan sistem call.
-                 Lapisan ini tidak memberikan data dan servis secara detail untuk dapat digunakan.
-                 Umumnya program yang dibuat untuk lapisan ini merupakan program yang paling efisien.

IMPLEMENTASI EKSPLOITASI RPC
-                 Digunakan beberapa tools untuk melakukan eksploitasi pada RPC.
-                 Pada contoh kasus ini, implementasi dilakukan pada LAN dengan host yang menggunakan SO Microsoft Windows XP.
-                 Tahapan eksekusi Eksploitasi :
1.       Deteksi sistem yang memiliki kelemahan
2.       Penyerangan terhadap sistem tersebut
3.       Eksekusi kode pada sistem yang telah ter-remote

LINK LAIN YANG BERKAITAN

REFERENSI :

PENGERTIAN SISTEM TERDISTRIBUSI

Sistem Terdistribusi terdiri dari dua kata yaitu ‘Sistem’ dan ‘Terdistribusi’. Sistem merupakan sekumpulan elemen yang saling berhubungan satu dengan yang lainnya dan membentuk satu kesatuan untuk menyelesaikan satu tujuan yang spesifik atau menjalankan sperangkat fungsi. Adapun terdistribusi berasal dari kata ‘distribusi’ yang artinya penyebaran, sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.
Berawal dari pengertian kata-kata pembentuknya, Sistem Terdistribusi dapat didefinisikan sebagai suatu kesatuan dari elemen-elemen yang saling berinteraksi secara sistematis dan teratur untuk mendistribusikan data
Pengertian Sistem Terdistribusi lainnya adalah sebuah sistem yang terdiri dari beberapa komponen yang terdapat di dalam sebuah jaringan komputer. Komponen-komponen tersebut saling berinteraksi dan berkomunikasi hanya dengan melalui pengiriman pesan.

REFERENSI

LINK BERKAITAN DENGAN SISTEM TERDISTRIBUSI

PERKEMBANGAN TEORI KOMPUTASI

Komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Maksudnya adalah ilmu untuk mencari solusi pada setiap masalah dengan menggunakan perhitungan matematis dan algoritma tertentu.
Pada jaman dulu kita melakukan perhitungan dengan alat-alat sederhana seperti pena dan kertas, atau kapur dan batu tulis, bantuan tabel atau bisa kita sebut sebagai bantuan tabel untuk mempermudah kita melakukan perhitungan. Yang menjadi masalah pada saat kita melakukan perhitungan, banyak hal yang menjadi kekurangan dalam melakukan perhitungan secara mental, seperti ketidak akuratan hasil hitung, efektifitas, dan juga tidak efisien dalam segi waktu. Maka dari itu semua, pada jaman sekarang ini kita sudah dihadirkan dengan teknologi komputasi yang lebih modern utuk melakukan perhitungan bahkan yang kompleks sekalipun yaitu dengan menggunakan kalkulator  dan juga komputer.
Pada awalnya perkembangan komputasi modern digagas oleh John von Neumann (1903-1957), Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann menjadi salah satu ilmuwan terbesar pada zamannya. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya. Berkat teori-teori nya itulah pada saat itu komputer mengalami perkembangan dan kemajuan pesat itu dapat terlihat saat dia menjadi seorang konsultan pada pengembangan komputer ENIAC. karena jasa-jasa nya John von Neumann di sebut bapak komputasi modern. Dia juga merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan dengan pengendali pusat, I/O, dan memori.
Komputasi modern digunakan untuk menghitung :
-          Akurasi (big, Floating point)
pada komputasi modern dilakukan perhitungan bagaimana bisa menghasilkan suatu jawaban yang akurat dari sebuah masalah.
-          Kecepatan (dalam satuan Hz)
Komputasi harus dapat dilakukan dalam waktu yang cepat ketika mengolah suatu data. Sehingga perlu metode kecepatan untuk mengolah perhitungan dalam waktu singkat.
-          Problem Volume Besar (Down Sizzing atau paralel)
Data yang besar tentu membutuhkan suatu cara penyelesaian yang khusus. Karena data yang besar dapat menjadi masalah jika ada yang terlewatkan.

-          Modeling (NN & GA)
Jika kita dihadapi dalam suatu masalah perhitungan yang banyak dan kompleks, tetapi tidak ada model matematika yang kita miliki. Perhitungan akan berjalan berantakan dan tidak akan mendapatkan hasil yang akurat. Maka dari itu komputasi modern membutuhkan modeling sebelum melakukan perhitungan.
-          Kompleksitas (Menggunakan Teori big O)
Komputasi modern dirancang untuk menangani masalah yang kompleks, sehingga diterapkan pada komputer. Dengan menggunakan teori Big O, maka komputasi modern dapat melakukan perhitungan untuk memecahkan masalah kompleksitas yang kerap dihadapi.

Macam – macam Komputasi Modern :
-          Mobile Computing
Komputasi yang dapat berkomunikasi tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smartphone dan lain sebagainya.
-          Grid Computing
Komputasi Grid menggunakan komputer yang terpisah oleh geografis, didistribusikan dan terhubung oleh jaringan untuk menyelesaikan masalah komputasi skala besar.
-          Cloud Computing
Komputasi awan adalah gabungan pemanfaatan teknologi komputer ('komputasi') dan pengembangan berbasis Internet ('awan'). suatu metode komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan, sehingga pengguna dapat mengaksesnya lewat Internet ("di dalam awan")  tanpa mengetahui apa yang ada didalamnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya.

Berikut adalah implementasi atau penerapan komputasi dalam bidangnya masing – masing adalah sebagai berikut :
-          Matematika
Terdapat numerical analysis yaitu sebuah algoritma dipakai untuk menganalisa masalah - masalah matematika. penerapan teknik-teknik komputasi matematika meliputi metode numerik, scientific computing, metode elemen hingga, metode beda hingga, scientific data mining, scientific process control dan metode terkait lainnya untuk menyelesaikan masalah-masalah real yang berskala besar. Contoh penggunaannya adalah program Mapple, dapat menyelesaikan banyak perhitingan yang ada pada bidang matematika.
-          Fisika
Computational Physics (Fisika) – Mempelajari implementasi algoritma numerik untuk memecahkan permasalahan teori kuantitatif fisika yang sudah ada. Menyelesaikan permasalahan medan magnet dengan menggunakan komputasi fisika, dalam hal ini menentukan besarnya medan magnet dan membandiangkan hubungan antara medan magnet dengan panjang kawat.
-          Kimia
Terdapat Computational Chemistry yaitu penggunaan ilmu komputer untuk  membantu menyelesaikan masalah kimia, contohnya penggunaan super komputer untuk menghitung struktur dan sifat molekul. Kajian komputasi juga dapat dilakukan untuk menjelajahi mekanisme reaksi dan menjelaskan pengamatan pada reaksi di laboratorium, serta memahami sifat dan perubahan pada sistem makroskopis melalui simulasi yang berlandaskan hukum-hukum interaksi yang ada dalam sistem.
-          Ekonomi
Mempelajari titik pertemuan antara ekonomi dan komputasi, meliputi agent-based computational modelling, computational econometrics dan statistika, komputasi keuangan, computational modelling of dynamic macroeconomic systems dan pengembangan alat bantu dalam pendidikan komputasi ekonomi.
-          Geologi
Pada bidang geologi teori komputasi biasanya digunakan untuk pertambangan, sebuah sistem komputer digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.
-          Geografi
Terdapat penggunaan komputasi yang diterapkan pada GIS (Geographic Information System) yang berguna untuk menyimpan, memanipulasi dan menganalisa informasi geografi.

Referensi :