Parallel Computation 2

D. Pengantar Thread Programming

Dalam pemrograman komputer, sebuah thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Dari program point-of-view, sebuah thread adalah informasi yang dibutuhkan untuk melayani satu pengguna individu atau permintaan layanan tertentu. Jika beberapa pengguna menggunakan program atau permintaan bersamaan dari program lain yang sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing proses. Thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi register saat program interrupted dan restores ketika memberikan program kontrol lagi.

Sebagian besar komputer hanya dapat mengeksekusi satu instruksi program pada satu waktu, tetapi karena mereka beroperasi begitu cepat, mereka muncul untuk menjalankan berbagai program dan melayani banyak pengguna secara bersamaan. Sistem operasi komputer memberikan setiap program “giliran” pada prosesnya, maka itu memerlukan untuk menunggu sementara program lain mendapat giliran. Masing-masing program dipandang oleh sistem operasi sebagai suatu tugas dimana sumber daya tertentu diidentifikasi dan terus berlangsung. Sistem operasi mengelola setiap program aplikasi dalam sistem PC (spreadsheet, pengolah kata, browser Web) sebagai tugas terpisah dan memungkinkan melihat dan mengontrol item pada daftar tugas. Jika program memulai permintaan I / O, seperti membaca file atau menulis ke printer, itu menciptakan thread. Data disimpan sebagai bagian dari thread yang memungkinkan program yang akan masuk kembali di tempat yang tepat pada saat operasi I / O selesai. Sementara itu, penggunaan bersamaan dari program diselenggarakan pada thread lainnya. Sebagian besar sistem operasi saat ini menyediakan dukungan untuk kedua multitasking dan multithreading. Mereka juga memungkinkan multithreading dalam proses program agar sistem tersebut disimpan dan  menciptakan proses baru untuk setiap thread.

Static Threading

Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan prosesor itu.

Mekanisme ini terhitung lambat, karenanya disebut dengan static. Selain itu teknik ini tidak mudah diterapkan dan rentan kesalahan. Alasannya, pembagian pekerjaan yang dinamis di antara thread-thread menyebabkan load balancing-nya cukup rumit. Untuk memudahkannya programmer harus menggunakan protocol komunikasi yang kompleks untuk menerapkan scheduler load balancing. Kondisi ini mendorong pemunculan concurrency platforms yang menyediakan layer untuk mengkoordinasi, menjadwalkan, dan mengelola sumberdaya komputasi paralel.

Sebagian platform dibangun sebagai runtime libraries atau sebuah bahasa pemrograman paralel lengkap dengan compiler dan pendukung runtime-nya.

Dynamic Multithreading

Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. Concurrency platform ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan namun secara umum mendukung dua fitur : nested parallelism dan parallel loops. Nested parallelism memungkinkan sebuah subroutine di-spawned (ditelurkan dalam jumlah banyak seperti telur katak) sehingga program utama tetap berjalan sementara subroutine menghitung hasilnya. Sedangkan parallel loops seperti halnya fungsi for namun memungkinkan iterasi loop dilakukan secara bersamaan.

E. Pengantar Massage Passing dan OpenMP

OpenMP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk UNix dan Microsoft Windows platform. OpenMP Terdiri dari satu set perintah kompiler, perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida pemrograman paralel  dapat dijalankan pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory systems.

Sejarah OpenMP dimulai dari diterbitkannya API pertama untuk Fotran 1.0 pada Oktober 1997 oleh OpenMP Architecture Review Board (ARB). Oktober tahun berikutnya OpenMP Architecture Review Board (ARB) merilis standart C / C++. Pada tahun 2000 mengeluarkan versi 2.0 untuk fotran dan poda tahun 2002 dirilis versi 2.0 untuk C / C++. Pada tahun 2005 dirilis versi 2.5 yang merupakan pengabungan fotran, C, dan C++/ pada mei 2008 versi 3.0 yang terdapat didalmnya konsept tasks dan task construct.

OpenMP mengimplementasi multithreading. Bagian kode yang akan dijalankan secara parallel ditandai sesuai dengan Preprocessor directif sehingga akan membuat thread-thread sebelum dijalnkan. Setiap thread memiliki id yang di buat menggunakan fungsi (omp_get_thread_num() pada C/C++ dan OMP_GET_THREAD_NUM() pada Fortran). Secara default, setiap thread mengeksekusi kode secara parallel dan independent. “Work-sharing constructs” dapat dapat digunakan untuk membagi tugas antar thread sehingga setiap thread menjalankan sesuai bagian alokasi kodenya. Fungsi OpenMP berada pada file header yang berlabel “omp.h” di C / C++.

F. Pengantar Pemrograman CUDA GPU

Sebuah GPU (Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.

penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program yang benarbenar bisa efektif berjalan pada Multi GPU.

CUDA merupakan teknologi anyar dari produsen kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara umum. Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game, namun dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal ketika menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia digunakan untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses data.

CUDA merupakan singkatan dari Compute Unified Device Architecture,didefinisikan sebagai sebuah arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan lain sebagainya. VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA antara lain : Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800 GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800 GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU, dan seri sejenis untuk kelas mobile (VGA notebook).

Singkatnya, CUDA dapat memberikan proses dengan pendekatan bahasa C, sehingga programmer atau pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek. Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA sekarang bisa dimanfaatkan untuk aplikasi multimedia.  Misalnya meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.

Keuntungan dengan CUDA sebenarnya tidak luput dari teknologi aplikasi yang ada. CUDA akan mempercepat proses aplikasi tertentu, tetapi tidak semua aplikasi yang ada akan lebih cepat walaupun sudah mengunakan fitur CUDA. Hal ini tergantung seberapa cepat procesor yang digunakan, dan seberapa kuat sebuah GPU yang dipakai. Dan bagian terpenting adalah aplikasi apa yang memang memanfaatkan penuh kemampuan GPU dengan teknologi CUDA. Kedepan seperti pengembang software Adobe akan ikut memanfaatkan fitur CUDA pada aplikasi mereka. Jawaban akhir adalah, untuk memanfaatkan CUDA kembali melihat aplikasi software yang ada. Apakah software yang ada memang mampu memanfaatkan CUDA dengan proses melalui GPU secara penuh. Hal tersebut akan berguna untuk mempercepat selesainya proses pada sebuah aplikasi. Dengan kecepatan proses GPU, aplikasi akan jauh lebih cepat. Khususnya teknologi ilmu pengetahuan dengan ramalan cuaca, simulator pertambangan atau perhitungan yang rumit dibidang keuangan. Sedangkan aplikasi umum sepertinya masih harus menunggu.

Selamat menggali ilmu semoga bermanfaat…
Untuk pertanyaan, Saran dan kritik silahkan tinggalkan balasan di kolom komentar.
Sumber : http://dpamudji.wordpress.com/2011/04/01/komputasi-parallel/
http://seto.citravision.com/berita-47-parallel-computation–distributed-processing.html
http://seto.citravision.com/berita-49-parallel-computation—pengantar-thread-programming.html
http://afrilieya.blogspot.com/2013/04/parallel-computation_20.html

 

Parallel Computation

A. Parallelism Concept

Komputasi paralel merupakan salah satu teknik komputasi, dimana proses komputasinya dilakukan oleh beberapa resources ( komputer ) yang independen, secara bersamaan. Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika ( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.

Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara paralel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah / operasi secara bersamaan ( komputasi paralel ), baik dalam komputer dengan satu ( prosesor tunggal ) ataupun banyak ( prosesor ganda dengan mesin paralel ) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi ( distributed computing ). Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan ( dalam waktu yang sama ), semakin banyak pekerjaan yang bisa diselesaikan.

Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan ( serial ). Atau waktu yang anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua. Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan ( speed up ) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

B. Distributed Processing

Pemrosesan paralel adalah pendekatan komputasi untuk meningkatkan tingkat di mana satu set data diolah dengan pengolahan bagian yang berbeda dari data pada waktu yang sama secara simultan atau bersamaan pada sebuah komputer dan berfungsi memecah beban besar menjadi beberapa beban kecil untuk mempercepat proses penyelesaian masalah.

Didistribusikan pengolahan paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat singkat.

Tipe lain dari komputasi paralel yang kadang-kadang disebut “didistribusikan” adalah gagasan dari sebuah komputer paralel cluster. Sebuah cluster akan banyak CPU terhubung melalui kecepatan tinggi koneksi ethernet ke hub sentral (Server) yang memberi masing-masing beberapa pekerjaan yang harus dilakukan. Metode cluster mirip dengan metode yang dijelaskan dalam paragraf di atas, kecuali bahwa semua CPU secara langsung terhubung ke server, dan satu-satunya tujuan mereka adalah untuk melakukan perhitungan yang diberikan kepada mereka.

Parallel distributed computing dapat dibentuk dari :

– Ada : digunakan konsep pertemuan yang menggabungkan fitur RPC dan monitor.

– PVM (Parallel Virtual Machine) untuk mendukung workstation clusters

–  MPI (Message-Passing Interface) programming GUI untuk parallel computers.

1.PNG

C. Architectural Parallel Computer

SISD Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

SIMD Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

MISD Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

MIMD Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini:

2

Gambar 1 Penyelesaian Sebuah Masalah pada Komputasi Tunggal

3.PNG

Gambar 2 Penyelesaian Sebuah Masalah pada Komputasi Paralel

Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.

Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.

next page.

Sistem Terdistribusi

File Sistem Terdistribusi ( Distributed File System , disingkat DFS –  penulis akan
menggunakan kata ini selanjutnya) adalah file sistem yang mendukung sharing files dan resources dalam
bentuk penyimpanan persistent di sebuah network. File server pertama kali didevelop pada tahun 1970
dan Sun NFS (Network File System) menjadi DFS pertama yang banyak digunakan setelah awal
pemunculannya di tahun 1985. DFS yang terkenal selain NFS adalah AFS (Andrew File System) dan
CIFS (Common Internet File System).
Sebuah file server menyediakan file service ke client. Dari sisi client terdapat interface untuk file
service dalam hal operasi primitif file, seperti membuat file (create), menghapus (delete) dan read / write
file. Komponen perangkat keras utama yang mana file server mengontrolnya adalah sebuah local storage
(umumnya disk drive / HDD). Ditempat itulah file-file tersimpan dan dari tempat tersebut request client
meretrive file. Pada DFS client, server dan juga perangkat penyimpanan merupakan mesin terpisah dalam
sebuah lingkungan terdistribusi (Intranet). Jadi, aktifitas layanan (service) dibawa melewati jaringan
(network), jadi selain sistem memiliki satu data terpusat, sistem memiliki beberapa perangkat
penyimpanan independent. Konfigurasi konkret dan juga implementasi dari sebuah DFS dapat beragam
bentuknya. Dalam beberapa konfigurasi, server berjalan sebagai dedicated machine (layanan terpusat)
atau juga menjadi server dan client. DFS dapat diimplementasikan sebagai bagian dari Sistem Operasi
Terdistribusi dengan sebuah layer software yang tugasnya mengatur komunikasi antara sistem operasi
konvensional dan file system.
Parameter untuk mancapai DFS adalah transparansi. Secara ideal, DFS terlihat sebagai bentuk
file system terpusat, faktor keseragaman (multiplicity) dan penyebaran server serta perangkat
penyimpanan tidak terlihat oleh user. Oleh karena itu interface client yang digunakan program tidak akan
membedakan antara file local dan remote. Semuanya tergantung dari implementator DFS untuk
mengalokasikan file-file dan menyusun transportasi data. Kelebihan lain dari DFS adalah peningkatan
performa. Yang menjadi tolak ukur pengukuran performa DFS adalah waktu yang dibutuhkan untuk
merespon request layanan.
Saling berbagi media penyimpanan informasi sudah menjadi sesuatu hal yang penting dalam
resource sharing. Desain service file terdistribusi yang baik adalah menyediakan akses distribusi file
dengan performansi dan realibilitas yang sama atau lebih baik dari penyimpanan file-file dalam disk local
dalam bentuk transparent.
Desain skala besar dari proses sistem penyimpanan baca tulis file pada wide area menimbulkan
masalah pada load balancing, reliabilitas, avaibility dan security. File sistem yang terdistribusi
mengemulasikan fungsionalitas dari file sistem tak terdistribusi untuk program client yang berjalan pada
komputer remote. File sistem terdistribusi juga menyediakan hal-hal pokok untuk pengorganisasian
komputer yang berbasiskan jaringan intranet.
Pengenalan File Service File
 Service adalah suatu perincian atau pelayanan dari file system yang ditawarka pada komputer
client. Suatu file server adalah implementasi dari file service dan berjalan pada satu atau lebih mesin. File
itu sendiri berisi dari nama, data dan atribut file seperti kepemilikan file, ukuran, waktu pembuatan file
dan hak akses file. File sistem merupakan mekanisme penyimpanan on-line serta untuk akses, baik data
maupun program yang berada dalam sistem operasi.
Karakteristik dari File System
File Sistem adalah bertanggung jawab untuk pengorganisasian, penyimpanan, pencarian
keterangan, penamaan, sharing atau pembagian dan protection atau perlindungan dari file-file. File berisi
dari dua bagian penting yaitu data dan atribut. File sistem didesain untuk menyimpan dan mengatur
banyak dan besar file dengan fasilitas untuk membuat, memberi nama dan menghapus file. File system
juga bertanggung jawab untuk pengontrolan dari akses file, akses terbatas ke file oleh user yang berhak
dan tipe-tipe dari akses yang diminta. –
Operasi pada file (=data + atribut)
 Create / delete
 Query / Modifikasi Atribut
 Open / Close
 Read / Write
 Akses Kontrol
 Organisasi penyimpanan
 Struktur direktori (hirarki, pathname)
 Metadata (pengaturan informasi file) : atribut file, informasi struktur direktori, dll
Atribut File
 File adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder.
Atribut file terdir dari :
1. Nama
 Merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia
(human readable form)
2. Type
Dibutuhkan untuk sistem yang mendukung beberapa tipe berbeda
3. Lokasi
Merupakan pointer atau penunjuk ke device dan lokasi file pada device tersebut berada
4. Ukuran (Size)
Ukuran file pada saat itu, baik dalam byte, huruf ataupun blok
5.  Proteksi
 Informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis dan
mengeksekusi file
6.  Waktu, tanggal dan identifikasi pengguna Informasi ini biasanya disimpan untuk :
 Pembuatan file
 Modifikasi terakhir yang dilakukan pada file
 Penggunaan terakhir file
Atribute file
 Panjang File
 Creation Timestamp
 Read Timestamp
 Write Timestamp
 Attribute Timestamp
 Reference Count
 Owner
 Tipe File
 Daftar Akses Kontrol
Struktur File System
 Modul direktori : menghubungkan nama file dengan ID file
 Modul File : menghubungkan ID dengan file tertentu
 Modul Akses Kontrol : memeriksa permission utuk operasi yang diminta
 Modul Akses File : read / write data file atau atribut
 Modul Blok : akses dan alokasi blok disk
 Modul Perangkat : disk I/O dan buffering
Komponen File service
1. Komponen-komponen file service adalah terdiri dari :
2. File Service Pengoperasian dari masing-masing file.
3. Directory Service  Management atau pengaturan direktori
4. Naming Service
 Location Independence :
 File dapat dipindahkan tanpa penggantian nama
 Hal yang umum untuk penamaan file dan directori :
 Mesin + nama path e.g / machine / path atau machine : path
 Mounting File sistem secara remote kedalam hirarki local file.
 Single name space yang sama pada semua mesin. –
 Dua level penamaan :
 Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.
Kebutuhan File System Terdistribusi
 Transparansi (Client tidak menyadari adanya lingkungan terdistribusi)
 Akses Transparan
 Lokasi Transparan
 Mobilitas Transparan
 Performa Transparan
 Scaling Transparan
 Concurrent File Update
 Replikasi File
 Heterogenitas
 Toleransi Kesalahan
 Konsistensi
 Keamanan
 Efisiensi
Kebutuhan File System Terdistribusi
1. Transparency
Keseimbangan antara flesibilitas dan skalabilitas terhadap kompleksitas dan performansi dalam
desainnya.
2. Concurrent File Updates
Perbaruan file serentak bersamaan antara file server dan client. Kebanyakan arah sistem
mengikuti standar UNIX dalam memberikan pelayanan advisory atau mendatory file atau record
file level locking.
3. File Replication
Replikasi dapat untuk share load, untuk mempertinggi fault tolerance, dan untuk mempertinggi
scalability. Kebanyakan sistem yang ada dapat melayani caching dengan replication terbatas.
Sebagian dapat melayani full replication.
4. Hardware dan Operating Systems
Heterogenitas atau kesamaan adalah kebutuhan yang sangat penting dalam melayani keterbukaan.
5. Fault Tolerance
Service harus terus menerus beroperasi walaupun terjadi kesalahan atau error pada client ataupun
server
6. Consistency
7. Security
Semua sistem melayani mekanisme akses kontrol berbasiskan daftar akses kontrol (access control
lists)
8. Efficiency
 Sistem harus dapat melayani perbandingan performance apakah lebih baik atau tidak.
Opsi Desain dalam File Service
 Stateful
 Stateless

Pengantar Quantum Computation

a. Pendahuluan

Komputasi kuantum merupakan bidang studi yang memfokuskan pada bidang teknologi komputer yang berkembang atas dasar prinsip-prinsip dasar teori kuantum, misalnya superposisi dan keterkaitan untuk melakukan operasi data. Teori kuantum menjelaskan sifat dan perilaku energi dan materi pada kuantum.
Prinsip dasar komputer kuantum adalah sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, serta mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika yang baru yang sesuai dengan prinsip kuantum.
Teori Kuantum
Sejak tahun 1990, teori kuantum mulai berkembang dengan presentasi oleh Max Planck ke himpunan Fisika Jerman. Max Planck memperkenalkan ide bahwa energi ada dalam uni individu (‘kuanta’). Perkembangan selanjutnya yang dilakukan oleh sejumlah ilmuwan selama tiga puluh tahun berikutnya menyebabkan pemahaman modern tentang teori kuantum.
b. Entaglement
Entanglement atau ketertarikan kuantum adalah salah satu prinsip utama dari fisika kuantum. Entanglement kuantum adalah beberapa partikel terkait dalam sedemikian rupa sehingga pengukuran keadaan kuantum satu partikel menentukan kemungkinan keadaan kuantum dari partikel lainnya.
Secara keseluruhan, superposisi kuantum dan entanglement menciptakan daya komputasi yang sangat ditingkatkan. Dimana 2 bit di komputer biasa dapat menyimpan hanya satu dari empat konfigurasi biner (00,01,10 atau 11) pada waktu tertentu, register 2 qubit dalam sebuah koputer kuantum dapat menyimpan semua empat nomor secara bersamaan, karena qubit masing-masing mewakili dua nilai. Jika lebih qubit ditambahkan, kapasitas meningkat diperluas secara eksponensial.
c. Pengoperasian Data Qubit
Qubit (kuantum bit), adalah mitra dalam komputasi kuantum dengan biner atau bit dari komputasi klasik. Qubit adalah unit dasar informasi dalam komputer kuantum. Dua aspek yang paling relevan dengan fisika kuantum adalah prinsip superposisi dan entanglement.
d. Quantum Gates

Quantum Logic Gates, Prosedur berikut menunjukkan bagaimana cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit ireversibel sementara untuk membuat penghematan yang besar dalam jumlah ancillae yang digunakan.
– Pertama mensimulasikan gerbang di babak pertama tingkat.
– Jauhkan hasil gerbang di tingkat d / 2 secara terpisah.
– Bersihkan bit ancillae.
– Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat.
– Setelah menghitung output, membersihkan bit ancillae.
– Bersihkan hasil tingkat d / 2.
Setiap perhitungan klasik dapat dipecah menjadi urutan klasik gerbang logika yang bertindak hanya pada bit klasik pada satu waktu, sehingga juga bisa setiap kuantum perhitungan dapat dipecah menjadi urutan gerbang logika kuantum yang bekerja pada hanya beberapa qubit pada suatu waktu. Perbedaan utama adalah bahwa gerbang logika klasik memanipulasi nilai bit klasik, 0 atau 1, gerbang kuantum dapat sewenang-wenang memanipulasi nilai kuantum multi-partite termasuk superposisi dari komputasi dasar yang juga dilibatkan. Jadi gerbang logika kuantum perhitungannya jauh lebih bervariasi daripada gerbang logika perhitungan klasik.
e. Algoritma Shor
Sebuah komputer kuantum tidaklah sama dengan komputer klasik. Hal ini tidak dalam hal kecepatan saja, namun juga dalam hal pemrosesan informasi. Sebuah komputer kuantum dapat mensimulasikan sebuah proses yang tidak dapat dilakukan oleh komputer klasik. Hal ini membuat para ilmuwan harus memiliki paradigma baru dalam hal permrosesan informasi.
Selama ini, sebuah komputer bekerja didasarkan hukum-hukum fisika klasik. Informasi didefinisikan secara positif, direpresentasikan secara material dan diproses berdasarkan hukum-hukum fisika klasik. Ketika para fisikawan masuk ke dalam teori kuantum dalam pemrosesan informasi, mereka diharuskan untuk mengubah pandangan mereka mengenai pemrosesan informasi. Lebih jauh lagi, mereka harus mengembangkan sebuah sistem logika baru yang mengikuti hukum-hukum fisika kuantum. Sistem logika baru ini disebut dengan logika kuantum. Sistem logika kuantum berbeda sama sekali dengan sistem logika yang selama ini dipakai, yaitu sistem logika yang dikembangkan oleh Aristoteles.
Dengan sistem logika yang baru, para ilmuwan harus memikirkan sebuah algoritma yang berbeda untuk memproses informasi. Inilah yang sebenarnya merupakan inti dari komputer kuantum. Beberapa algoritma telah dikembangkan dan yang di antaranya telah berhasil ditemukan adalah algoritma Shor yang ditemukan oleh Peter Shor pada tahun 1995. Lewat algoritma Shor ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode ini disebut kode RSA. Jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.
Sebagai contoh, seorang pemecah kode akan membutuhkan waktu 8 bulan dan 1.600 pengguna internet jika ia akan memecahkan kode RSA yang disandikan dalam 129 digit. Jika hal ini mungkin, pengirim data hanya perlu menambahkan digit pada kode RSA-nya agar para pemecah kode membutuhkan waktu yang lebih lama lagi untuk memecahkan kuncinya. Sebagai gambaran, pemecahan kode RSA 140 (140 digit) akan membutuhkan waktu yang lebih lama dari umur alam semesta (15 miliar tahun). Namun, jika pemecah kode menggunakan komputer kuantum, mereka dapat memecahkan kode RSA 140 hanya dalam waktu beberapa detik. Hal inilah yang membuat waswas para pengguna channel komunikasi rahasia saat ini untuk melakukan pengiriman data secara aman.
Selamat menggali ilmu semoga bermanfaat…
Untuk pertanyaan, Saran dan kritik silahkan tinggalkan balasan di kolom komentar.

Pengantar Komputasi Cloud

Step II

A. Distributed Computation Dalam Cloud Computing

Distribusi computation dalam cloud computing adalah sebuah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut.

Pada distribusi computation program yang telah ada dipecah-pecah ke beberapa komputer yang aktif dengan menggunakan internet sebagai media komunikasinya.

B. Map Reduce dan NO SQL (Not Only SQL)

Map reduce adalah sebuah framework pemrograman untuk memproses data yang berukuran besar,biasanya digunakan untuk komputasi terdistribusi pada kumpulan komputer.
NoSQL (singkatan dari Not Only SQL) adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS(Relational Database Management System) ataupun ODBMS(Objecy Oriented Database Management System). Perbedaan utamanya karena tidak mengenal istilah relation dan tidak menggunakan konsep schema. Kalau biasanya dapatmenggunakan query ‘Join’ di sini tidak bisa menggunakannya karena setiap tabel berdiri sendiri tanpa tergantung dengan tabel lainnya alias independen. Selain itu di dalam konsep DBMS biasanya sebelum insert data diharuskan untuk mendefinisikan terlebih dahulu struktur tabel seperti tipe data dan ukurannya, di konsep NoSQL ini bisa menyimpan data tanpa perlu mendefinisikan tipe data dan ukurannya lagi. Jadi lebih fleksibel bila ada perubahan di masa mendatang. Adapun beberapa database NoSQL yang ada saat ini yaitu Cassandra, Big Table, CouchDB, Redis, Riak, Dynamo dan lainnya.

C. NO SQL Database

NO SQL pertama kali digunakan pada tahun 1998 sebagai nama untuk open source database yang ringan tidak mengekspos antarmuka SQL. Penulisnya, Carlo Strozzi, mengklaim bahwa sebagai gerakan NoSql “berangkat dari model relasional yang lebih tepat disebut NoREL atau sesuatu yang berpengaruh. Istilah ini diperkenalkan kembali pada awal 2009 oleh karyawan Rackspace, Eric Evans, ketika Johan Oskarsson dari Last.fm ingin mengorganisir sebuah acara untuk membahas open source database terdistribusi. Adapun kelebihannya, antara lain.
Vendor relasional database besar (Oracle, IBM, Sybase dan Microsoft) merupakan andalan untuk menyimpan data.
Pertumbuhan internet yang semakin besar (mereka mencari RDBMS yang berbiaya rendah seperti MySQL dan PostgreSQL).
Pengunjung web yang besar menyebabkan lalu lintas data yang besar sehingga dapat mengakibatkan “efek slash dot” .
Selamat menggali ilmu semoga bermanfaat…
Untuk pertanyaan, Saran dan kritik silahkan tinggalkan balasan di kolom komentar.
Sumber :

Pengantar Komputasi Cloud

Pendahuluan

Cloud Computing atau bisa disebut juga Komputasi awan adalah suatu penggabungan antara teknologi komputer yang telah berkembang dengan basis internet yang juga telah berkembang. Mengapa disebut sebagai komputasi awan karena komputasi kita anggap sebagai komputer dan internet sebagai awan dimana bekerja tidak kelihatan oleh mata manusia. Jadi pada intinya manusia sebagai user memanfaatkan teknologi komputer dengan menjalankan aplikasi yang tidak berada di komputer yang digunakannya atau tidak ada file-file yang ada dikomputer kita langsung, namun file – file itu berada di komputer lain yang dihubungkan dengan internet. Cloud computing adalah istilah umum untuk apa pun yang melibatkan host yang akan memberikan layanan melalui internet. Contoh penggunaan cloud computing antara lain adalah email service, facebook, google apps, twitter dan lain-lain.

Pengatar Komputasi Grip

Sekarang kita akan membahas tentang komputasi grid. Komputasi Grid adalah sebuah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar. Komputasi grid juga dapat disebut sebagai sebuah infrastruktur perangkat keras dan perangkat lunak yang menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia. Grid computing merupakan sebuah sistem komputasi terdistribusi, yang memungkinkan seluruh sumber daya (resource) dalam jaringan, seperti pemrosesan, bandwidth jaringan, dan kapasitas media penyimpan, membentuk sebuah sistem tunggal secara virtual.

Pada intinya Grid computing adalah sebuah arsitektur TI baru yang menghasilkan sistem informasi perusahaan yang berbiaya rendah dan lebih adaptif terhadap dinamika bisnis. Dengan grid computing, sejumlah komponen hardware dan software yang modular dan independen akan dapat dikoneksikan dan disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih jauh, dari sisi ekonomi, implementasi grid computing berarti membangun pusat komputasi data yang tangguh dengan struktur biaya variatif yang bisa disesuaikan dengan kebutuhan. ORACLE 10g merupakan suatu aplikasi yang biasa digunakan oleh perusahaan sebagai DBMS.

Virtualisasi

Virtualisasi adalah sebuah teknologi yang sebisa mungkin para pengguna dapat menggunakan versi virtual dari sesuatu yang bersifat fisik, sebagai contoh system operasi, penyimpanan data atau sumber daya jaringan dan lain-. Virtualisasi menjadi pemisahan bagi sumber daya computer yang terdiri atas jaringan, penyimpanan dan server. Adapun beberapa teknologi virtual : virtualisasi storage, virtualisasi komputasi dan virtualisasi network.

Virtual computing dan grid computing dapat membuat cloud computing lebih ringan dalam pengaksesan. Jadi dapat disimpulkan bahwa cloud computing adalah penggabungan antara teknologi virtualisasi dan grid computing. Sehingga implementasi cloud computing dapat mampu memberikan hasil yang jauh lebih efisien dan powerfull dalam hal proses komputasi dan pengelolaan resource IT secara terdistribusi.

KEUNTUNGAN PENGGUNAAN VIRTUALISASI
1. Pengurangan Biaya Investasi Hardware.
2. Kemudahan Backup & Recovery. Hemat waktu, tenaga dan sumber daya.
3. Kemudahan Deployment.
4. Berkurangnya jumlah perangkat otomatis mengurangi panasnya ruang server/data center.
5. Mengurangi Biaya Space dimana sedikit jumlah server berarti semakin sedikit pula ruang untuk menyimpan perangkat.
6. Kemudahan Maintenance & Pengelolaan.
7. Standarisasi Hardware.
8. Kemudahan Replacement.KERUGIAN PENGGUNAAN VIRTUALISASI
1. Satu Pusat Masalah.
2. Spesifikasi Hardware.
3. Satu Pusat Serangan.

Contoh Aplikasi yang sering digunakan ialah Google Drive.
Step Selanjutnya disini

Sistem Terdistribusi

Komunikasi Data

Komunikasi data merupakan bagian dari telekomunikasi yang secara khusus berkenaan dengan transmisi atau pemindahan data dan informasi diantara komputer-komputer dan piranti-piranti yang lain dalam bentuk digital yang dikirimkan melalui media komunikasi data.

Komunikasi data merupakan baguan vital dari suatu masyarakat informasi karena sistem ini menyediakan infrastruktur yang memungkinkan komputer-komputer dapat berkomunikasi satu sama lain.

Komponen Komunikasi Data

  • Pengirim, adalah piranti yang mengirimkan data
  • Penerima, adalah piranti yang menerima data
  • Data, adalah informasi yang akan dipindahkan
  • Media pengiriman, adalah media atau saluran yang digunakan untuk mengirimkan data
  • Protokol, adalah aturan-aturan yang berfungsi untuk menyelaraskan hubungan.
1

Protokol

Protokol dapat diartikan sebagai sebuah aturan yang mendefinisikan beberapa fungsi yang ada dalam sebuah jaringan komputer, misalnya mengirim pesan, data, informasi dan fungsi lain yang harus dipenuhi oleh sisi pengirim dan sisi penerima agar komunikasi dapat berlangsung dengan benar, walaupun sistem yang ada dalam jaringan tersebut berbeda sama sekali.

Komponen Protokol

  1. Aturan atau prosedur, mengatur pembentukan/pemutusan hubungan
  2. Format atau bentuk, mengatur proses transfer data representasi pesan
  3. Kosakata (vocabulary), jenis pesan dan makna masing-masing pesan

Fungsi Protokol

Secara umum fungsi dari protokol adalah untuk menghubungkan sisi pengirim dan sisi penerima dalam berkomunikasi serta dalam bertukar informasi agar dapat berjalan dengan baik dan benar.

Sedangkan fungsi protokol secara detail dapat dijelaskan berikut:

  • Fragmentasi dan reassembly

Fungsi dari fragmentasi dan reassembly adalah membagi informasi yang dikirim menjadi beberapa paket data pada saat sisi pengirim mengirimkan informasi dan setelah diterima maka sisi penerima akan menggabungkan lagi menjadi paket informasi yang lengkap.

  • Encapsulation

Fungsi dari encapsulation adalah melengkapi informasi yang dikirimkan dengan address, kode-kode koreksi dan lain-lain.

  • Connection control

Fungsi dari connection control adalah membangun hubungan (connection) komunikasi dari sisi pengirim dan sisi penerima, dimana dalam membangun hubungan ini juga termasuk dalam hal pengiriman data dan mengakhiri hubungan.

  • Flow control

Berfungsi sebagai pengatur perjalanan data dari sisi pengirim ke sisi penerima.

  • Error control

Fungsi dari error control adalah mengontrol terjadinya kesalahan yang terjadi pada waktu data dikirimkan.

  • Transmission service

Fungsi dari transmission service adalah memberi pelayanan komunikasi data khususnya yang berkaitan dengan prioritas dan keamanan serta perlindungan data.

Susunan Protokol

Protokol jaringan disusun oleh dalam bentuk lapisan-lapisan (layer). Hal ini mengandung arti supaya jaringan yang dibuat nantinya tidak menjadi rumit. Tujuan dari setiap layer ini adalah memberi layanan ke layer yang ada di atasnya.

Antara setiap layer yang berdekatan terdapat sebuah interface. Interface menentukan layanan layer yang di bawah kepada layer yang di atasnya.

Pada saat merencanakan sebuah jaringan, hendaknya memperhatikan bagaimana menentukan interface yang tepat yang akan ditempatkan di antara dua layer yang bersangkutan.

OSI MODEL

International Standards Organization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System Interconnection (OSI), model yang mendefinisikan standar untuk menghubungkan komputer-komputer dari vendor-vendor yang berbeda.

Model Layer OSI dibagi dalam dua group: upper layer dan lower layerUpper layer fokus pada applikasi pengguna dan bagaimana file direpresentasikan di komputer. Lower layer adalah intisari komunikasi data melalui jaringan actual.

2
Gambar 1: Pembagian Model Layer OSI

Penjelasan Model OSI Layer

Model OSI Keterangan
 3 Application Layer: Menyediakan jasa untuk aplikasi pengguna. Layer ini bertanggungjawab atas pertukaran informasi antara program komputer, seperti program e- mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya.
 4.png Presentation Layer: Bertanggung jawab bagaimana data dikonversi dan diformat untuk transfer data. Contoh konversi format text ASCII untuk dokumen, .gif dan JPG untuk gambar. Layer ini membentuk kode konversi, translasi data, enkripsi dan konversi.
 6 Session Layer: Menentukan bagaimana dua terminal menjaga, memelihara dan mengatur koneksi, bagaimana mereka saling berhubungan satu sama lain. Koneksi di layer ini disebut session.
 7 Transport Layer: Bertanggung jawab membagi data menjadi segmen, menjaga koneksi logika “end-to-end” antar terminal, dan menyediakan penanganan error (error handling).
 8 Network Layer: Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus diambil selama perjalanan, dan menjaga antrian trafik di jaringan. Data pada layer ini berbentuk paket. Fungsi utama dari layer network adalah pengalamatan dan routing. Pengalamatan pada layer network merupakan pengalamatan secara logical.
 9 Data Link Layer Menyediakan link untuk data, memaketkannya menjadi frame yang berhubungan dengan hardware kemudian diangkut melalui media.
 10 Physical Layer: Bertanggung jawab atas proses data menjadi bit dan mentransfernya melalui media, seperti kabel, dan menjaga koneksi fisik antar sistem.Layer ini mengatur tentang bentuk interface yang berbeda-beda dari sebuah media transmisi. Secara umum masalah- masalah desain yang ditemukan di sini berhubungan secara mekanik, elektrik dan interface prosedural, dan media fisik yang berada di bawah physical layer.

Contoh protocol sesuai OSI

Model OSI TCP/IP Protokol
No. Lapisan Aplikasi Nama Protokol Kegunaan
7 Aplikasi DHCP (Dynamic Host Configuration Protocol) Protokol untuk distribusi IP pada jaringan untuk jumlah IP terbatas
DNS (Domain Name Server) Database nama domain mesin dan nomer IP
FTP (File Transfer Protocol) Protokol untuk transfer file
HTTP (HyperText Transfer Protocol) Protokol untuk transfer file HTML dan web
MIME (Multipurpose Internet Mail Extensions) Protokol untuk mengirim file binary dalam bentuk teks
NNTP (Network News Transfer Protocol) Protokol untuk menerima dan mengirim newsgroup
POP (Post Office Protocol) Protokol untuk mengambil mail dari server
SMB (Server Message Block) Protokol untuk transfer berbagai server file DOS dan Windows
6 Presentasi SMTP (Simple Mail Transfer Protocol) Protokol untuk pertukaran mail
SNMP (Simple Network Management Protocol) Protokol untuk manajemen jaringan
TFTP (Trivial FTP) Protokol untuk transfer file
5 Sesi NETBIOS (Network Basic Input Output System) BIOS jaringan standar
RPC (Remote Procedure Call) Prosedur pemanggilan jarak jauh
4 Transport Transport TCP (Transmission Control Protocol) Protokol pertukaran data berorientasi (connection oriented)
UDP (User Datagram Protocol) Protokol pertukaran data non-orientasi (connectionless)
3 Network Internet IP (Internet Protocol) Protokol untuk menetapkan routing
RIP (Routing Information Protocol) Protokol untuk memilih routing
ARP (Address Resolution Protocol) Protokol untuk mendapatkan informasi hardware dari nomor IP
RARP (Reverse ARP) Protokol untuk mendapatkan informasi nomor IP dari hardware
2 Datalink Network Interface PPP (Point to Point Protocol) Protokol untuk poin ke poin
LLC (Logical Link Control) SLIP (Serial Line Internet Protocol) Protokol dengan menggunakan sambungan serial
MAC (Media Access Control) Ethernet, FDDI, ISDN, ATM
1 Fisik

 

Remote Procedure Call (RPC)

Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layananremote procedure.

RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigm procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure.

Kelebihan RPC

  • Relatif mudah digunakan

Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti socket,marshalling & unmarshalling.

  • Robust (Sempurna)

Sejak tahun 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yang memerlukan scalabilityfault tolerance, & reliability.

Kekurangan RPC

  • Tidak fleksibel terhadap perubahan

Static relationship between client & server at run-time.

  • Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.

11
Prinsip RPC dalam program Client-Server

Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan

12

  • Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam format transimisi. Langkah ini dinamakan marshalling
  • Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote)
  • Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan.
Selamat menggali ilmu semoga bermanfaat…
Untuk pertanyaan, Saran dan kritik silahkan tinggalkan balasan di kolom komentar.