Posted by : Unknown Rabu, 06 November 2013



REMOTE PROCEDURE INVOCATION (RMI)


I.1.  Definisi 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 layanan remote procedure. Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu harus menghubungi port yang mana, client bisa me- request kepada sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang diminta client.
RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter- install kedalam sistemnya,

I.2. Implementasi RPC
Untuk proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal proxy dan skeleton, pada RPC dikenal dengan Stub( Client stub dan Server stub)



Gambar Ilustrasi Implementasi RPC


Remote Reference Modul dan Communication Modul berada pada tatanan sistem operasi.
Contoh implementasi adalah Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR (eXternal Data Representation) standard, UDP atau TCP transport protocol. Xerox Courier : RPC model, Data representation standard, XNS (Xerox Network
Systems) SPP (Sequenced Packet Protocol) sbg transport protocol, Apollo s Network Computing Architecture (NCA), RPC protocol, NDR (Network Data Representation).

I.3. Cara Kerja RPC

Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu.





Diagram diatas memberikan gambaran mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang akan menjelaskan secara rinci mengenai proses yang terjadipada klien dan server dalam eksekusi suatu prosedur RPC :


penjelasan dari diagram diatas :

1. Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut sebagai marshalling.
2. Fungsi Network pada O/S (Operating system – Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.
3. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-oriented.
4. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network.
5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.
6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server.
7. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan ( hasilnya ) kembali ke jaringan.
8. Message ini akan dikirim kembali ke klien.
9. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.
10. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.

Proses diatas akan dilakukan berulang-ulang ( rekursif ) dalam pengeksekusian RPC dalam suatu remote sistem. Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah menggunakan putty untuk melakukan SSH.


I.4. Kelebihan dan Kekurangan pada RPC
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 soket, marshalling dan unmarshalling.
  •  Robust (Sempurna)
  •  Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yang memerlukan scalability, fault tolerance, dan reliability.

Kelemahan RPC
  • Tidak fleksibel terhadap perubahan
  • Static relationship between client & server at run-time.
  • Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan Object Oriented Proggraming
  •  Kurangnya location transparency
  •  Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.
  • Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).
  • Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yang terpisah.





REMOTE METHOD INVOCATION (RMI)


II.1. Definisi RMI

RMI adalah perluasan dari local method invocation yang memungkinkan sebuah objek yang hidup dalam satu proses untuk memohon method objek yang berada di proses lain. (George Coulouris hal 166).
RMI adalah sebuah teknik pemanggilan method remote yang lebih secara umum lebih baik daripada RPC. RMI menggunakan paradigma pemrograman berorientasi obyek (Object Oriented Programming). RMI memungkinkan kita untuk mengirim obyek sebagai parameter dari remote method. Dengan dibolehkannya program Java memanggil method pada remote obyek, RMI membuat pengguna dapat mengembangkan aplikasi Java yang terdistribusi pada jaringan.
Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan client. Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, serta menunggu client memanggil method dari objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut.
RMI menyediakan mekanisme dimana server dan client berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi.





II.2. Langkah Pembuatan Program dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi interface, seorang pemrogram dapat memberitahukan method apa yang dapat dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan.
Definisi yang ada pada remote interface menentukan karakteristik methods yang disediakan server yang dapat dilihat oleh client. Client programmer harus dapat mengetahui methods apa yang disediakan server dan bagaimana memanggilnya langsung dengan melihat ke remote interface. Client mendapatkan referensi ke remote object melalui RMI registry.
Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6 langkah. Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan remote interface
4. Mengkompilasi source files dan mem-buat stub and skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client


II.3. Implementasi RMI

Remote Modul Reference Remot referensi modul bertanggung jawab untuk menerjemahkan antara local dan referensi remote objek dan untuk menciptakan referensi remot objek. Untuk mendukung tugasnya ini, referensi modul remote dalam setiap proses memiliki tabel remote objek yang mencatat korespondensi antara objek lokal referensi dalam proses dan referensi remote objek (dimana system-wide) (George Coulouris dkk, hal 176)
Tindakan remote referensi modul adalah sebagai berikut:
Ketika remote objek untuk diteruskan sebagai argumen atau hasil untuk pertama kalinya, modul referensi remot modul diminta untuk membuat referensi objek remote, yang menambahkan tabel.
Ketika referensi objek remote tiba dalam permintaan atau membalas pesan, remote modul referensi diminta untuk menyesuaikan referensi obyek lokal, yang mungkin mengacu baik pada proxy atau ke objek remot. Dalam hal objek remote referensi tidak ada dalam tabel, menciptakan perangkat lunak RMI proxy baru dan meminta remote referensi modul untuk menambahkannya ke tabel.

Software RMI ini terdiri dari suatu lapisan perangkat lunak antara application level objek dan komunikasi dan reeferensi remot modul. Peran middleware objek adalah sebagai berikut:
  • Proxy: Peran proxy adalah untuk membuat permohonan metoderemot transparan untuk klien dengan bertingkah seperti objek lokal ke invoker, tetapi selain melaksanakan suatu permintaan ini akan diteruskan sebuah pesan ke objek remote. Itu menyembunyikan rincian remot objek referensi, yang menyusun argumen, menguraikan hasil dan pengiriman dan penerimaan pesan dari klien.
  • Operator/Dispatcher : Sebuah server memiliki satu operator dan kerangka untuk masing-masing mewakili kelas remote objek. Dalam contoh kita, server memiliki operator dan kerangka untuk kelas remot objek B. operator menerima pesan permintaan dari modul komunikasi. Ia menggunakan methodId untuk memilih metode yang tepat dalam kerangka kemudian menyampaikan pesan permintaan. Operator dan proxy menggunakan sama alokasi methodld terhadap metode antarmuka remote.
  • Skeleton: Kelas jauh objek memiliki kerangka, yang mengimplementasikan metode dalam antarmuka remote. Mereka dilaksanakan cukup berbeda dari metode-metode di objek remote. Sebuah metode menguraikan kerangka argumen dalam pesan permintaan dan memanggil metode yang sesuai dalam objek remote.
 

Contoh implementasi dari RMI di antaranya :
Perusahaan programming Avitek yang berlokasi di Amerika Serikat, membuat program sistem accounting untuk intranet yang memungkinkan klien untuk meng-update dan mengubah data dengan mudah. Tujuan dari proyek ini adalah untuk membuat dan mendukung pembuatan dari bukti nyata untuk konsep penggunaan Java yang dikombinasikan dengan database.
Perusahaan CEAS Consulting yang menyediakan jasa custom re-engineering dan otomasi proses untuk perusahaan-perusahaan manufakturing dan teknik, telah membuat program sistem terdistribusi untuk klien mereka. Gambaran program mereka adalah seperti berikut :


II.4. Cara Kerja RMI

Dalam model ini, sebuah proses memanggil method dari objek yang terletak pada suatu host/computer remote. Dalam paradigma ini, penyedia layanan mendaftarkan dirinya dengan server direktori pada jaringan. Proses yang menginginkan suatu layanan mengontak server direktori saat runtime, jika layanan tersedia, maka referensi ke layanan akan diberikan. Dengan menggunakan referensi ini, proses dapat berinteraksi dengan layanan tsb. Paradigma ini ekstensi penting dari paradigma RPC. Perbedaannya adalah objek yang memberikan layanan didaftarkan (diregister) ke suatu layanan direktori global, sehingga memungkinkan untuk ditemukan dan diakses oleh aplikasi yang meminta layanan tersebut.
Contoh aplikasi untuk meremote pada teknik RMI (Remote Method Invocation) menggunakan teamviewer untuk meremote computer lain.
Teamviewer adalah suatu program yang cukup sederhana dan sangat mudah digunakan untuk beberapa keperluan terutama melakukan akses PC secara remote melalui internet.



II.5. Cara Meremote RMI
Tampilan utama TeamViewer, jika sudah tampil (Ready to connect (secure connection)) maka sudah siap melakukan koneksi ke PC lain, kemudian masukan ID PC klien jika koneksi berhasil maka akan muncul kotak “Password”, isi password teamviewer PC yang akan anda remote. Jika berhasil maka akan tampil desktop PC yang diremote tersebut. Jika ingin melakukan File Transfer, maka pilih “File Transfer” pada bagian pilihan yang terlihat dibawah kotak ID, kemudian klik “Connect to partner”.
Jika ingin menggunakan password dan ID yang tetap maka cukup tempatkan kursor mouse pada bagian kotak password, maka akan tampil seperti gambar diatas, pilih “Set user definied password” kemudian masukan password yang anda inginkan. Hasilnya Setelah kita melakukan setting pada teamviewer dan setelah login dan memasukkan password tujuan dengan benar maka kita bisa mengakses computer yang kita remote secara penuh.

II.6. Keuntungan dan Kekurangan RMI
Keuntngan RMI
·         Salahsatu keuntungan RMI adalah kemampuan untuk download zytecodes (code) dari suatu object’s class, jika class tsb tidak terdefinisikan di VM-nya penerima.
·         Type-type dan metode-metode object (class), yang terletak dalam satu VM, dapat dikirim ke VM yang lain, yang mungkin saja remote.
·         Sifat-sifat object yang terkirim ini tidak berubah sama sekali

Kelemahan RMI:
proses pembukaan socket yang kadang-kadang tidak dapat diimplementasikan lewat jaringan internet, tapi hal ini bisa diatasi dengan menggunakan Spring HttpInvoker, sama persis dengan RMI tapi lewat protokol HTTP.



WEB SERVICE


III.1. Definisi Web Service              

Web service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu.  Secara umum,web service  dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada umumnya. Namun yang membedakan web service dengan web pada umumnya adalah interaksi yang diberikan oleh web service. Berbeda dengan URL web pada umumnya, URL web service hanya menggandung kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna membangun sebuah fungsi-fungsi tertentu dari aplikasi.
Web service dapat diartikan juga sebuah metode pertukaran data, tanpa memperhatikan dimana sebuahdatabase ditanamkan, dibuat dalam bahasa apa sebuah aplikasi yang mengkonsumsi data, dan di platform apa sebuah data itu dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web service mampu menjadi sebuah jembatan penghubung antara berbagai sistem yang ada.
Web service menurut W3.org mendefinisikan web service sebagai “sebuah software aplikasi yang dapat teridentifikasi oleh URI dan memiliki interface yang didefiniskan, dideskripsikan, dan dimengerti oleh XML dan juga mendukung interaksi langsung dengan software aplikasi yang lain dengan menggunakan message berbasis XML melalui protokol internet”.

 

Perbedaan antara Website dengan Webservice
Dalam pengertian yang sederhana , XML Web Services dapat di definisikan sebagai aplikasi yang diakses oleh aplikasi yang lain. Mungkin orang berpendapat itu semacam web site, tetapi itu bukan demikian. Ada perbedaan – perbedaan yang membedakan dengan web site.

Perbedaan tersebut dapat dilihat dibawah ini :
WEB SITE
·         Memiliki web interface
·         Dibuat untuk ber interaksi langsung dengan user
·         Dibuat untuk bekerja pada web browser.

WEB SERVICES
·         Tidak memiliki interface yang bagus
·         Dibuat untuk ber interaksi langsung dengan applikasi yang lain baik beda OS / Konsep sekalipun.
·         Dibuat untuk bekerja pada semua tipe client applikasi / perangkat device

III.2. Waktu Penggunaan Web Services
Web Services itu digunakan saat kita akan mentransformasi sebuat bisnis logik / sebuah class dan object yang terpisah dalam 1 ruang lingkup yang menjadi satu, sehingga tingkat keamanan dan security dapat di tangani dengan baik. Selain itu Web Service juga lebih mudah dalam process deploymentnya, karena tidak memerlukan registrasi khusus ke dalam sistem operasi. Web Service cukup diupload ke Web Server dan siap diakses oleh pihak-pihak yang telah diberikan otorisasi. Web Service berjalan di port 80 yang merupakan protokol standar HTTP, dengan demikian mengurangi resiko terblokir oleh firewall. Kendala arsitektur COM/DCOM adalah memerlukan konfigurasi khusus di sisi firewall, dan  ini tidak perlu dilakukan untuk mengakses Web Service.

Beberapa vendor luar negeri mulai berkolaborasi satu sama lain dengan konsep web services , diantaranya : IBM, Microsoft , SUN , ORACLE Diantaranya contoh web services yang sudah jadi dan dipakai adalah web services keluaran Microsoft ( Microsoft Passport ) – web services untuk user name dan password yang sudah dipasang di web site  Microsoft dan HOTMAIL.

III.3 Keuntungan penggunaan Web Service
·         Format penggunaan terbuka untuk semua platform.
·         Mudah di mengerti dan mudah men-debug.
·         Dukungan interface yang stabil.
·         Menggunakan standard-standard “membuka service sekali” dan mempunyai pemakai banyak.
·         Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai.
·         Routing and pengiriman.
·         Security.
·         management and monitoring.
·         schema and service design.
·         Akselerasi.
·         mudah untuk mengembangkan dengan semantic transport tambahan.
·         Terbuka, standard-standard berbasis teks.
·         Pencapaian modular.
·         Tidak mahal untuk diimplementasikan (relatif).
·         Mengurangi biaya integrasi aplikasi enterprise.
·         Implementasi yang incremental.

III.4. Mekanisme Kerja Web Service
Sebelum memasuki mekanisme kerja yang terjadi pada Web Service, akan dibahas terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri, dimana standard-standard web service adalah sebagai berikut: WSDL Web Services Description Language Deskripsi-deskripsi dari web service UDDI Universal Discovery, Description & Integration Registry mengenai deskripsi servis SOAP Simple Object Access Protocol Protokol transport untuk berkomunikasi antar web service Standard-standard lain: WSRP, WSIA, WSXL

Selain standard-standard Web Service, juga ada Bagian-bagian Web Service (Web Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses berjalannya web service, dimana task-task tersebut antara lain: Wire Protocols, Description, Discovery. Untuk lebih lanjut mengenai bagian-bagian Web Service maka dapat dilihat ilustrasinya pada gambar

III.5. Contoh Penerapan Webservice Pada Perusahaan atau Instansi.
Fungsi dari Webservice sangat lah berguna dan dapat diimplementasika pada perusahaan atau instansi berskala besar seperti facebook yang menyediakan layanan info ataupun berita yang berasal dari website lain tanpa harus tau struktur data pada database website yang akan dimintai informasinya.




PENUTUP

Kesimpulan
·         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 layanan remote procedure. Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu harus menghubungi port yang mana, client bisa me- request kepada sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang diminta client.
·         Remote Modul Reference Remot referensi modul bertanggung jawab untuk menerjemahkan antara local dan referensi remote objek dan untuk menciptakan referensi remot objek. Untuk mendukung tugasnya ini, referensi modul remote dalam setiap proses memiliki tabel remote objek yang mencatat korespondensi antara objek lokal referensi dalam proses dan referensi remote objek
·         Web service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu.  Secara umum,web service  dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada umumnya. Namun yang membedakan web service dengan web pada umumnya adalah interaksi yang diberikan oleh web service. Berbeda dengan URL web pada umumnya, URL web service hanya menggandung kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna membangun sebuah fungsi-fungsi tertentu dari aplikasi




 









{ 6 komentar ... read them below or Comment }

  1. permisi gan, saya ada sedikit tulisan mengenai protokol websocket dalam beberapa bahasa pemrograman berikut: http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html ditunggu feedback-nya ya gan, semoga menambah wawasan bersama.. terima kasih gan..

    BalasHapus
  2. kalau boleh tau rujukan/ daftar pustaka dari artikel ini dari mana? mohon infonya...

    BalasHapus
  3. Gdax is an overall installment framework digital money. Among the quantities of accessible correspondence implies, Gdax holds a one of a kind place. It has various administrations to offer yet at the same time can't pull back store in Gdax that reason inconveniences. You can dispose of the considerable number of issues from the roots by looking for the guide from the proficient specialists through telephone by dialing Gdax number AT-1800-665-6722. The designers put their 100 % to give attractive and exact outcomes to the current clients.

    BalasHapus


  4. Thanks for sharing the information. It is very useful for my future. keep sharing
    Woodworking Tools best tools WOOD WORKERS

    BalasHapus

  5. read this above post its very greatful for me thanks sharing this post ,great post.
    Gardening Advice Best Advice for Sports

    BalasHapus
  6. artikelnya keren gan, o ya perkenalkan nama saya yuli suseno, dan jika agan berkenan untuk mampir ke web kampus kami di ISB Atma Luhur

    BalasHapus

Random Post

Copyright © 2015 Mbah Second - Edited by Mbah Second - Powered by Blogger - Designed by Johanes Djogan Metrominimalist