(Maman Somantri)
41
Transmisi, Vol. 10, No. 1, Desember 2005 : 41 – 45
terdiri dari lebih dari 800 perusahaan untuk membuat request ke berbagai macam objek. ORB ini
membantu dalam pemrograman objek-objek terletak diantara layer data dan layer aplikasi dalam
terdistribusi. CORBA adalah sebuah cara bagi objek- susunan arsitektur jaringan 7 layer model OSI. ORB
objek untuk melakukan interoperasi lintas jaringan. akan melakukan negosiasi antara pesan request dari
Sejak spesifikasi CORBA versi 1.2 diperkenalkan objek ke objek atau dari objek server ke sekumpulan
pada tahun 1991, CORBA memberikan sebuah data (data set). Tujuan CORBA adalah untuk
mekanisme standar bagi komunikasi antar objek membuat pemrograman lebih mudah dengan
lintas jaringan, kemudian spesifikasi CORBA membuat aplikasi berbasis CORBA yang sangat
tersebut berkembang dengan diperkenalkannya portable.
CORBA 2.0 di tahun 1994 dan CORBA 3.0 yang di- Untuk melihat lebih detail tentang arsitektur CORBA
release tahun 2000. Hal yang penting untuk dicatat dan ORB berada didalamnya, maka CORBA
bahwa CORBA hanya sebuah spesifikasi untuk memiliki sebuah arsitektur yang disebut OMA
membuat dan menggunakan objek-objek terdistribusi, (Object Management Group).OMA
CORBA bukan sebuah produk atau bahasa mengelompokkan jenis-jenis interak si antar program
pemrograman. Vendor-vendor yang ingin membuat untuk memudahkan penyediaan dukungan. Gambar
produk-produk yang mengikuti spesifikasi CORBA 2.1 menggambarkan konsep OMA.
dapat bebas untuk melakukannya. Tetapi yang perlu
ditekankan/diyakinkan adalah bahwa vendor-vendor
tersebut mengikuti spesifikasi CORBA secara persis
sama. Hal ini agar semua produk yang dihasilkan
vendor-vendor tersebut memiliki keselarasan dengan
CORBA (CORBA compliant), sehingga satu sama
lain dapat berinteraksi. Hal lain yang perlu diingat
bahwa CORBA independen terhadap bahasa
pemrograman selama bahasa-bahasa pemrograman
tersebut memiliki pemeta (mapping) dari bahasa
definisi interface dalam CORBA.
CORBA merupakan sebuah spesifikasi
middleware yang ideal untuk mendukung dan
mengaplikasikan sistem komputer terdistribusi.
Arsitektur CORBA berbasis pada model objek. Gambar 2.1 Konsep Object Management
Model ini berasal dari abstraksi inti model objek Architecture (OMA)
yang didefinisikan oleh OMG dalam sebuah petunjuk
OMA (Object Management Architecture), yang dapat OMA melakukan strukturisasi dunia aplikasi ke
ditemukan dalam [2]. Beberapa hal penting yang dalam dua kelompok besar: kategori layanan
perlu dicatat bahwa CORBA berbeda dengan CORBA (CORBAservices) dan kategori fasilitas
pemrograman objek serupa adalah: CORBA (CORBAfacilities). Layanan CORBA
• Objek-objek CORBA dapat berjalan dalam menyediakan fungsi-fungsi dasar yang digunakan
berbagai platform. oleh hampir setiap obyek dalam berbagai aplikasi.
• Objek-objek CORBA ditempatkan di Fungsi-fungsi ini biasanya bersifat generik dan tidak
manapun dalam jaringan. tergantung pada jenis domain aplikasi. Sebagai
• Objek-objek CORBA dapat ditulis dalam contoh adalah layanan penamaan (naming service).
beberapa bahasa pemrograman yang Bayangkan bila memerlukan sebuah layanan tapi
memiliki pemeta IDL (IDL mapping). tidak tahu ke mana harus mencari server yang
Hal yang juga dimiliki CORBA adalah CORBA menyediakan layanan tersebut. Layanan penamaan
bersifat open, maksudnya bahwa CORBA bisa dapat membantu layaknya sebuah "halaman kuning"
dipakai oleh setiap orang yang ingin menggunakan (yellow pages) ; dia bisa menyiarkan direktori layanan
standarisasi CORBA ini. Sehingga akan muncul yang terdaftar padanya. Karena sifatnya yang
perbedaan-perbedaan dalam menggunakannya, generik, layanan penamaan dapat digunakan oleh
seperti perbedaan platform ataupun bahasa aplikasi dari berbaga i domain.
pemrograman. Tetapi hal ini justru menjadi kelebihan Fasilitas CORBA menyediakan layanan pada level
CORBA bahwa CORBA mampu aplikasi. Ada dua jenis fasilitas: horizontal, yang
mengkomunikasikan sistem yang memiliki diperlukan oleh berbagai jenis domain (misalnya,
perbedaan-perbedaan tersebut. user-interface), dan vertikal, yang berlaku khusus
CORBA merupakan sebuah arsitektur yang untuk domain tertentu. Fasilitas horizontal fungsinya
menyediakan sebuah framework crossplatform untuk mirip dengan layanan CORBA, tetapi beroperasi
membangun dan mengembangkan sistem objek pada level yang lebih tinggi karena berhubungan
terdistribusi. Ide utama dibelakang CORBA adalah langsung dengan aspek fungsional dari aplikasi.
sebuah perangkat lunak perantara (intermedier) atau OMG secara terus-menerus melakukan standarisasi
disebut middleware yang mengatur dan menyebarkan terhadap interface untuk komponen-komponen di
akses request ke sekumpulan data tertentu. Perangkat masing-masing kategori. Semakin banyak layanan
lunak perantara ini adalah middleware ORB (Object dan fasilitas yang distandarisasi, semakin mudah
Request Broker). ORB melakukan interaksi dan untuk mencapai komputasi terdistribusi berbasis
42
Konsep Pemrograman Jaringan dengan Memanfaatkan Middleware CORBA-ORB ... (Maman Somantri)
komponen dalam berbagai bidang secara plug-and - bahasa pemrograman yang sesuai yang memiliki
play, tanpa terganggu oleh masalah heterogenitas. pemeta IDL. Sebagai sebuah protokol kompiler, IDL
bisa digambarkan sebagai berikut:
kurang() bagi()
via ORB
43
Transmisi, Vol. 10, No. 1, Desember 2005 : 41 – 45
String ior =
3.2 Coding : Implementasi Pemrograman orb.object_to_string(objRef);
System.out.println("IOR : " + ior);
Beberapa langkah yang harus dilakukan untuk FileWriter fw = new
FileWriter("java.ref");
membangun aplikasi sesuai dengan arsitektur diatas
fw.write(ior);
adalah : fw.close();
1. Membuat bahasa definisi IDL System.out.println("Java Server:
2. Membuat aplikasi Server operasi tambah() ..... kurang()...");
System.out.println("Server started");
3. Membuat Aplikasi Client java.lang.Object sync = new
4. Mengkompilasi semua class yang telah java.lang.Object();
dibuat synchronized (sync) {
Contoh kasus ini adalah program jumlah() dan sync.wait();
}
kurang() untuk server Java-ORB dan program kali() }
dan bagi() untuk server JAC-ORB. Maka, untuk catch (Exception e) {
bahasa IDL untuk aplikasi itu adalah sebagai berikut: System.err.println("error : " + e);
e.printStackTrace(System.out);
//idl Source Java-ORB }
// file : javaidl.idl }
module javaidl { }
interface Iface_java {
float tambah(in float a, in float b);
float kurang(in float a, in float b); //*****JAC server source
}; //file : serverJAC.java
};
import org.omg.CORBA.*;
//idl source JAC import java.io.*;
//file : jacidl.idl import jacidl .*;
module jacidl { import org.omg.PortableServer.*;
interface Iface_jac { import org.omg.PortableServer.POA;
float kali(in float a, in float b);
float bagi(in float a, in float b); cla ss servantJac extends Iface_jac {
}; public float kali (float a, float b) {
}; float c = a * b;
return c;
}
Dua file tersebut kemudian dikompilasi dengan
menggunakan IDL Compiler yang dimiliki oleh Java- public float bagi(float a, float b) {
ORB dan JAC-ORB. float c = a / b;
return c;
Langkah berikutnya membuat aplikasi server untuk
}
kedua ORB yang digunakan. }
44
Konsep Pemrograman Jaringan dengan Memanfaatkan Middleware CORBA-ORB ... (Maman Somantri)
45