Академический Документы
Профессиональный Документы
Культура Документы
1, Juni 2005 : 26 – 30
26
Membangun Sistem Komputasi Terdistribusi dengan Pemrograman C++ (Maman Somantri)
IDL (Interface Definition Language) sistem operasi linux. Untuk pengujian client
IDL adalah bukan bahasa pemrograman. IDL hanya server dengan 2 komputer atau lebih maka
bahasa untuk mendeklarasikan atau mendefinisikan MICO-C++ ini harus diinstalasi pada semua
interface-interface yang akan digunakan. IDL adalah komputer yang akan digunakan. MICO-C++
bagian paling utama yang harus dikembangkan ketika yang digunakan adalah versi 2.3.11 yang sangat
pertama kali akan mengembankan sistem komputasi selaras dan mendukung CORBA spesifikasi 2.3.
terdistribusi berbasis CORBA. - Implementasi yang akan dipakai untuk uji coba
Dalam IDL hanya menyebutkan interface yang akan program adalah aplikasi perbankan. Dalam
dijadikan layanan (what), tidak menjelaskan aplikasi ini ada beberapa layanan diantaranya
bagaimana detail layanan itu (How). Script IDL withdraw, balance dan deposit.
memang mirip script bahasa C, tetapi bukan bahasa
C. IDL ini akan dikompilasi dengan IDL Compiler b. Pemrograman MICO-C++
yang dimiliki setiap software ORB. Jika yang akan Sesuai dengan analisa kebutuhan sistem diatas maka
digunakan untuk membangun sistem terdistribusi aplikasi yang akan dipakai adalah bank account.
adalah bahasa Java maka IDL Compiler akan men- Bank account menawarkan 3 layanan, withdraw yaitu
generate class-class bahasa Java. Begitu pula jika pengambilan sejumlah uang, deposit yaitu
untuk bahasa C++. IDL Compiler yang mendukung menyimpan sejumlah uang, dan balance yaitu
bahasa C++ adalah MICO-C++ dari Mico.org. MICO aplikasi bank untuk menghitung jumlah uang yang
ini akan men-generate class C++ yaitu *.h dan *.cc. ada.
Maka untuk bisa membangun aplikasi berbasis Langkah pertama adalah membuat file IDL. Untuk
framework CORBA, seorang programmer harus aplikasi bank account ini maka file IDLnya adalah
mengetahui terlebih dahulu konsep pemrograman sebagai berikut:
IDL. interface Account {
void deposit (in unsigned
Teknik Pemrograman C++ Terdistribusi long amount);
Langkah-langkah teknis pemrograman C++ dengan void withdraw(in unsigned
menggunakan Compiler MICO-C++ adalah sebagai long amount);
berikut: long balance();
- membuat file IDL dan mengkompilasi file };
tersebut. kita dapat melihat bahwa aplikasi bank account ini
- Membangun aplikasi server. memiliki 3 layanan deposit dan withdraw dengan
- Membangun aplikasi client nilai input amount, dan layanan balance. File IDL ini
- Mengkompilasi file-file aplikasi server dan client disimpan dengan nama file account.idl dan kemudian
yang sudah dibuat itu. dikompilasi dengan compiler IDL yang ada didalam
MICO-C++. Kompilasi yang dilakukan adalah
Selain langkah-langkah diatas beberapa konsep sebagai berikut:
pemrograman yang penting untuk membangun
aplikasi CORBA adalah pemrograman IDL (interface c/>idl --boa –nopoa account.idl
definition language). IDL ini sangat penting dan
pertama kali yang harus dipersiapkan pada saat mulai hasil kompilasi file tersebut akan men-generate file
pengembangan program. account.h dan account.c. Dalam file-file itu memuat
Hal sangat penting dan perlu diperhatikan dalam deklarasi class sebagai dasar class untuk
konsep pemrograman distribusi berbasis CORBA implementasi objek account. Untuk setiap
adalah CORBA memisahkan interface dan layanan/interface yang dideklarasikan di file idl maka
implementasi dalam modul terpisah. Berbeda dengan IDL Compiler akan men-generate sebuah C++ class.
konsep Remote Method Invocation (RMI) yang Untuk lebih jelas bagaimana aplikasi MICO ini
dimiliki Java Teknologi. RMI menggabungkan dibangun, maka dapat diperhatikan gambar berikut :
interface dengan implementasi.
27
Transmisi, Vol. 9, No . 1, Juni 2005 : 26 – 30
28
Membangun Sistem Komputasi Terdistribusi dengan Pemrograman C++ (Maman Somantri)
(“/home/maman/tmp/account.objid”); server
char_ref[1000];
in >> ref; Menjalankan Client
in.close();
Client bisa dijalankan dengan memanggil class
//membaca file objek ID yang masih
//dalam bentuk string aplikasi client dengan perintah sebagai berikut:
client
CORBA::Object_var obj =
orb->string_to_object (ref); Aplikasi client bisa dilakukan di sebuah komputer
//menkonversi string ke objek ID yang sama dengan server atau di mesin komputer
yang berbeda.
Account_var client =
Account::_narrow(obj);
Respon dari hasil setelah client dijalankan adalah
//objek client
sebagai berikut:
client->deposit (1000); Balance is 500
client->withdraw (500);
cout << “Balance is “ << Sedangkan jika server dimatikan respon yang muncul
client->balance() << endl; adalah sebagai berikut:
//memanggil aplikasi sambil memberi
//nilai untuk diproses
return 0;
} Analisa dan Pembahasan
Langkah berikutnya adalah mengkompilasi program Dengan menggunakan IDL Compiler milik MICO
server dan client yang sudah dibuat menjadi objek maka secara otomatis file idl, yang memuat deklarasi
(.o). Untuk mengkompilasi dengan menggunakan interface-interface yang akan digunakan, akan
MICO-Compiler maka digunakan perintah berikut: membangkitkan class -class dasar yang akan
digunakan untuk hubungan client/server. Programmer
mico-c++ -I. –c account_server.cc –o tidak perlu sulit untuk memikirkan class-class apa
account_server.o yang harus dibuat untuk antarmuka dan bagaimana
menghubungkan client/server dengan memanfaatkan
mico-c++ -I. –c account_client.cc –o antarmuka yang ada. Yang perlu dilakukan hanya
account_client.o
mendeklarasikan interface ke dalam file idl,
kemudian di kompilasi.
mico-c++ -I. –c account.cc –o account.o
File-file yang digenerate oleh compiler MICO IDL
objek-objek yang sudah dibuat kemudian dikompilasi secara otomatis akan memisahkan client dan server.
lagi untuk membuat sebuah program yang bisa Bagian client ini kemudian disebut client stub, dan
dieksekusi. Perintahnnya adalah: bagian untuk server disebut server skeleton, kedua
bagian ini merupakan ker angka yang akan digukan
mico-ld –o server account_server.o arsitektur CORBA untuk bisa mengintegrasikan
account.o –lmico2.3.11 semua objek yang dikembangkan.
Pemrograman C++ memang cukup powerful untuk
mico-ld –o client account_client.o aplikasi client/server terdistribusi, namun disisi client
account.o –lmico2.3.11
interfacenya sederhana. Untuk bisa membangun
aplikasi berbasis web maka disisi client harus
Pengujian menggunakan bahasa pemrograman yang mendukung
Setelah semua class yang di-generate oleh Compiler untuk aplikasi web. Misalnya Java dengan teknologi
IDL di kompilasi, aplikasi server dan client juga JSP dan Servletnya bisa digunakan untuk
didevelop dengan acuan kerangka dari class-class membangun aplikasi berbasis web. Dan disisi server
yang sudah ada, langkah berikutnya adalah running tetap bisa menggunakan C++ untuk aplikasinya. Hal
ini bisa dilakukan dengan menggunakan CORBA.
program dan pengujian program. Program yang
harus pertama kali dijalankan adalah class Server,
Daftar Pustaka
berikutnya baru dari sisi client dijalankan aplikasi
client. Untuk pengujian ini hal yang pertama kali ---, Mico Documentaion, http://mico.org
harus di perhatikan adalah koneksi dari client ke D. Allen, 1996, CORBA Technology for Cross -
server, dalam hal ini kemampuan untuk sebuah objek domain Interoperability in Embedded Military
koneksi ke objek lain dan mampu melakukan Systems, and Issues in Its Use, Proceeding of
interoperasi, atau dalam istilah lain disebut WORDS ’96 Second Workshop, pp. 173-178.
interoperabilitas. Interoperabilitas adalah kemampuan S. Baker, Addison Wesley, November 1997, CORBA
antara 2 sistem atau lebih untuk bisa saling bertukar Distributed Objects: Using Orbix.
informasi dan menggunakan informasi tersebut. Cetus Links, CORBA Links, <URL:
http://www.cetus-links.org/oo_corba.html>.
Menjalankan Server Chris Exton, Damien Watkins and Dean Thompson,
Server bisa dijalankan dengan memanggil class Department of Software Development, Faculty
aplikasi server sesuai dengan perintah berikut: of Computing & Information Technology,
29
Transmisi, Vol. 9, No . 1, Juni 2005 : 26 – 30
30