Obyek berbasis teknologi telah terbukti nilai untuk develoving aplikasi nondistributed. Salah satu aspek yang paling penting dari sebuah objek adalah bahwa ia menyembunyikan internal nya dari dunia luar melalui antarmuka yang terdefinisi dengan baik. Pendekatan ini memungkinkan objek untuk dapat dengan mudah diganti atau disesuaikan, asalkan antarmuka tetap sama.
- Distributed Object
Obyek didistribusikan Istilah biasanya mengacu pada modul perangkat lunak yang dirancang untuk bekerja bersama-sama, tetapi berada baik di beberapa komputer terhubung melalui jaringan atau dalam proses yang berbeda dalam komputer yang sama. Salah satu objek mengirim pesan ke objek lain di mesin remote atau proses untuk melakukan beberapa tugas. Hasilnya dikirim kembali ke obyek memanggil.
Istilah ini juga dapat umumnya merujuk kepada salah satu ekstensi dari konsep objek dasar yang digunakan dalam konteks komputasi terdistribusi, seperti benda direplikasi atau benda didistribusikan hidup.
Benda direplikasi adalah kelompok komponen perangkat lunak (replika) yang menjalankan protokol multi-partai didistribusikan untuk mencapai tingkat tinggi konsistensi antara negara-negara internal mereka, dan yang menanggapi permintaan secara terkoordinasi. Mengacu pada kelompok replika bersama-sama sebagai sebuah objek mencerminkan fakta bahwa berinteraksi dengan salah satu dari mereka menghadapkan negara terlihat sama eksternal dan perilaku.
Hidup benda didistribusikan (atau benda hanya hidup) menggeneralisasi konsep objek direplikasi ke kelompok replika yang internal mungkin menggunakan protokol didistribusikan, mungkin mengakibatkan hanya konsistensi yang lemah antara negara-negara lokal mereka. Benda hidup didistribusikan juga dapat didefinisikan sebagai menjalankan contoh didistribusikan multi-partai protokol, dilihat dari perspektif berorientasi objek sebagai entitas yang memiliki identitas yang berbeda, dan yang dapat merangkum negara didistribusikan dan perilaku.
- Mengikat Klien ke Obyek
Sebuah perbedaan yang menarik antara sistem RRC tradisional dan sistem pendukung obyek terdistribusi, adalah bahwa nantinya umumnya menyediakan refenrence sistem objek yang luas. referensi objek tersebut dapat secara bebas lewat di antara proses pada mesin yang berbeda, untuk exaple sebagai parameter untuk pemanggilan metode. Dengan menyembunyikan implementasi aktual dari sebuah referensi obyek, yang membuat buram, dan bahkan mungkin menggunakannya sebagai satu-satunya cara untuk referensi objek, transparansi distribusi ditingkatkan dibandingkan dengan RPC tradisional.
Ketika Proses memegang sebuah referensi obyek, pertama kali harus mengikat ke obyek direferensikan sebelum memohon salah satu metodenya. Hasil mengikat dalam proxy ditempatkan ruang alamat proses itu, menerapkan antarmuka yang berisi metode proses dapat memanggil. Dalam banyak kasus, mengikat dilakukan secara otomatis. Ketika sistem yang mendasari diberikan sebuah referensi obyek, perlu cara untuk menemukan server yang mengelola objek yang sebenarnya, dan menempatkan proxy di ruang alamat klien.
Dengan mengikat implisit, klien ditawarkan mekanisme sederhana sederhana yang memungkinkan untuk langsung memanggil metode menggunakan hanya referensi ke obyek. misalnya, C + + memungkinkan overloading pemilihan anggota Operator unary ("") memungkinkan kami untuk memperkenalkan referensi objek seolah-olah mereka pointer biasa seperti yang ditunjukkan pada Gambar. 2-17 (a). Dengan mengikat implisit, klien transparan terikat pada objek saat referensi tersebut memutuskan untuk objek yang sebenarnya. Sebaliknya, dengan mengikat eksplisit, klien harus terlebih dahulu memanggil fungsi khusus untuk mengikat ke objek sebelum benar-benar dapat memanggil metode tersebut. Mengikat eksplisit umumnya mengembalikan pointer ke proxy yang kemudian menjadi tersedia secara lokal.
Distr_object * obj_ref / / Deklarasikan referensi obyek systemwide
Obj_ref = / / Inisialisasi referensi ke sebuah distrib. Obj.
Obj_ref → do_something (); / / Secara implisit mengikat dan memanggil metode
(A) Distr_object * obj_ref / / Deklarasikan referensi obyek systemwide
Local_object * obj_ptr, / / Deklarasi pointer ke objek lokal
Obj_ref =,,,: / / Inisialisasi referensi ke sebuah distrib. Obj.
Obj_ptr = bind (obj_ref); / / explicity mengikat dan mendapatkan ptr ke proxy lokal
Obj_ptr → sesuatu (); / / Invoke metode di proxy lokal
Gambar 2-17. (A). Contoh dengan mengikat implisit hanya menggunakan referensi global.
(B). Contoh dengan mengikat eksplisit menggunakan referensi global dan lokal.
- Pelaksanaan referensi obyek
Jelas bahwa sebuah referensi obyek harus berisi informasi yang cukup untuk memungkinkan klien untuk mengikat obyek. Sebuah referensi obyek yang sederhana akan mencakup alamat jaringan dari mesin di mana objek yang sebenarnya berada, bersama dengan endpoint mengidentifikasi server yang mengelola objek, ditambah indikasi objek Wich. Yang terakhir ini umumnya diberikan oleh server, misalnya, dalam bentuk sejumlah 16bit. Sebuah titik akhir dalam hal ini sangat sejalan dengan yang dibahas dalam sistem RPC DCE. Dalam prakteknya, itu sesuai dengan port lokal yang ditugaskan secara dinamis oleh sistem operasi lokal server. Namun, ada beberapa kelemahan shceme ini.
Object References Object dapat diakses melalui obyek referensi. Sebagai contoh, di java, sebuah variabel yang muncul untuk mengadakan sebuah objek benar-benar memegang referensi ke sebuah objek. Untuk memanggil sebuah metode dalam suatu objek, obyek referensi dan nama metode yang diberikan, bersama-sama dengan argumen yang diperlukan. Objek metode yang dipanggil kadang-kadang disebut target dan kadang-kadang penerima.
Tidak ada komentar:
Posting Komentar