CORBA
I.
Overview
CORBA
Interoperabilitas adalah kemampuan
saling bekerjasama antar sistem komputer. Sebenarnya interoperabilitas bukanlah barang baru,
karena protokol komunikasi datapun (TCP/IP misalnya) pada dasarnya diciptakan
untuk mewujudkan interoperabilitas. Yang belum banyak dikenal adalah
interoperabilitas pada level perangkat lunak aplikasi.
Dalam konteks sistem komputasi terdistribusi, meskipun komponen-komponen
aplikasi dibuat dengan bahasa pemrograman yang berbeda, menggunakan development
tools yang berbeda, dan beroperasi di lingkungan yang beragam, mereka tetap
harus dapat saling bekerjasama. Interoperabilitas
perangkat lunak menuntut homogenitas
pada suatu level tertentu. Untuk itu diperlukan semacam 'standarisasi'.
Berawal
dari keperluan ini lahirlah CORBA (Common Object Request Broker Architecture).
CORBA
adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi
obyek atau Object Oriented (OO) dengan paradigma client server. Dalam terminologi OO, sebuah
obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message
passing). Konteks komunikasi ini kemudian dipetakan ke dalam model
client-server : satu obyek berperan sebagai client (si pengirim pesan) dan yang
lain bertindak sebagai server (yang menerima pesan dan memroses pesan yang
bersangkutan).
I.
Perbedaan
CORBA dan RMI
CORBA
berbeda dengan RMI, berikut perbedaan CORBA dengan RMI:
1. CORBA
adalah dapat diimplementasikan dengan sembarang bahasa pemrograman.
2. CORBA
terdiri dari beberapa mekanisme dimana RMI dapat termasuk di dalamnya.
3. Pada
RMI tidak menggunakan ORB (Object Request Broker).
CORBA pada
dasarnya berbasis pada protokol
yang dinamakan IIOP
(Internet InterORB Protocol)
untuk berkomunikasi dengan objek-objek yang
ada di komputer
server yang lain (remoting
object).
Segala sesuatu yang ada
di dalam arsitektur
CORBA pada prinsip-nya bergantung
pada ORB (Object Request Broker),di
mana ORB ini
bertindak sebagai sesuatu yang
menghubungkan (bertindak
sebagai bus) masing-masing
objek CORBA sehingga mereka
dapat saling berinteraksi
baik secara lokal pada komputer yang sama (localhost) maupun berinteraksi
secara jarak jauh
(remote). Masing-masing
objek CORBA yang bertindak sebagai
server memiliki antarmuka (interface) dan
memiliki sejumlah method
yang dapat dimanfaatkan oleh
objek-objek CORBA yang lainnya.
Untuk meminta layanan
tertentu, klien CORBA bisa
meminta rujukan objek tertentu ke
komputer server. Selanjutnya
klien dapat melakukan pemanggilan
method pada objek CORBA yang
bertindak sebagai server
melalui rujukan objek seperti
jika objek tersebut berada di
ruang memori klien.
Komponen-komponen ORB bertanggung
jawab untuk menentukan implementasi objek
yang mana yang
diinginkan klien, bertanggungjawab untuk
menyiapkan objek untuk menerima
permintaan, berkomunikasi
dengannya, dan bertanggungjawab untuk mengirimkan hasil
eksekusi implementasi objek kembali
ke arah klien.
Sebuah objek CORBA berinteraksi dengan ORB melalui
antarmuka ORB atau melalui Object
AdapterBOA (Basic Object Adapter) atau POA (Portable
Object Adapter). Dikarenakan CORBA
merupakan spesifikasi, maka pada dasarnya bisa digunakan di berbagai platform
sistem operasi yang
berbeda, mulai dari komputer-komputer besar (mainframe),
komputer-komputer yang memiliki sistem operasi UNIX/Linux, hingga
komputer-komputer dengan sistem
operasi Windows.
I.
Keunikan
CORBA
Keunikan dari CORBA adalah kemampuannya
dalam menangani heterogenitas antara clientdan server (dalam terminologi CORBA,
obyek server dinamakan implementasi obyek (object implementation). Keduanya
dapat saja diimplementasikan dalam hardware, sistem operasi, bahasa
pemrograman, dan di lokasi yang berbeda, tetapi tetap bisa saling
berkomunikasi. Kuncinya ada pada sebuah lapisan software yang disebut dengan
ORB (Object Request Broker).
Keterangan gambar
ORB adalah middleware yang memungkinkan
suatu object yang berada di client mengirim messsage ke suatu method yang
terencapsulated oleh suatu object yang ada di server. Artinya, ORB meneruskan message
dan menangani semua komunikasi dan koordinasi yang dibutuhkan untuk menemukan
object yang dimaksud oleh message tadi, memanggil methodnya, melewatkan data
yang sesuai ke object dan kirim data hasil kembali ke object yang membuat
message tadi. Standar yang umum digunakan untuk mengimplementasikan ORB adalah : CORBA, COM, dan JavaBeans.
Struktur sederhana CORBA adalah seperti pada Gambar di atas. Saat CORBA diimplementasikan
di sistem C/S, object dan object dan class object pada client dan server
didefinisikan menggunakan interface description language (IDL).
Skeletons
adalah bagian kode yang dibangin pada kode implementasi server pada antarmuka
(interface). Stub adalah bagian kode yang membuat antarmuka (interface) dapat
diakse (available) oleh client Java menyediakan ORB (Object Request Broker)
yang mendukung teknologi CORBA. ORB adalah komponen runtime yang dapat
digunakan untuk distributed computing menggunakan komunikasi IIOP. OMG (Object
Management Group) adalah industri yang membuat spesifikasi dan mempublikasikan
CORBA. Java IDL (Interface Definition Langauge) merupakan sebuah teknologi
untuk distribusi objek yang berinteraksi antar platform. CORBA menggunakan IDL
untuk membuat antarmuka (interface). Java IDL adalah implementasi dari
teknologi antarmuka pada CORBA. Model pemrograman IDL atau biasa disebut Java
IDL terdiri dari ORB CORBA dan kompiler idlj yang memetakan OMG IDL ke Java dengan menggunakan Java CORBA ORB. Aplikasi
CORBA dibuat dengan menggunakan IDL
untuk mendefinisikan antarmuka objek agar dapat diakses oleh klien maupun
server.
KESIMPULAN
Komputasi terdistribusi merupakan sesuatu yang
amat kompleks, apalagi jika ruang lingkupnya sangat luas (pada level enterprise
misalnya).CORBA membantu menyederhanakan persoalan dengan
menyembunyikan berbagai detail pekerjaan pada level rendah dan heterogenitas
sistem dan platform.