Pemrograman CORBA Sederhana Kasus sederhana Akan dibuat layanan kepada client Sebuah fungsi Penjumlahan Pengurangan Perkalian Pembagian Serta informasi waktu server
Definisi IDL Layana yang disediakan untuk client Dituliskan dalam bahasa IDL MyMath.idl Module myMathModule{ Interface nyNath { Float Tambah(in float a, in float b); Float Kurang(in float a, in float b); Float Kali(in float a, in float b); Float Bagi(in float a, in float b); string info(); };
Sebuah modul diberi nama myMathMudule Membungkus sebuah interface layanan bernama myMath Dari interface layanan myMath, tersedia layanan. Tambah() Kurang() Kali() bagai()
Masing menerima sebuah nilia yg akan dioperasikan Menghasilkan nilia bertipe float Info() mengambil informasi waktu server; Misal akan disimpan ke folder C:\java\COBA1 Atau linux /home/pemakai/java/COBA!1
Kopilasi IDL Menterjamaha IDL ke java Hasil kompilasi secara umu bentuk skeleton dan stub Digunakan client atau server Menggunakan idlj Menghasilkan 2 macam penerapan objek adapter,baik BOA maupun POA Conto kompilasi dengam idjl (dari J2SE 1.4.x) $ idjl -fall myMath.idl
Hasil Kompilasi MyMathModule modul layanan yng didefinisikan Terjadi krn sebuah modul akan diterjemahkan sebagai package. Sebuah package java diwakili deng strutur direktori Dalam direktori myModule terdapat beberapa program jav terjemahan dari IDL ke java
Hasil kompilasi idl Hasil kompilasi MyMathPOA.java MyMathPOA merupakan sebuah abstract class yan diturunkan dari org.omg.PortableServer.Servant Penerapan interface org.omg.CORBA.portable.InvokeHandler dan MyMathOperations Jika akan menggunakan POA utk objek adapter, klas implementasi ditrurukan dari kelas ini
Sebuah objek mewakili remote CORBA objek _myMathStub.java Sebuah objek mewakili remote CORBA objek Kalas ini merupakan client stub Diturunkan dari org.omg.CORBA.portable.ObjectImpl dan merupakan intan myMath
MyMathHolder.java Menyediakan input (org.omg.CORBA.portable.InputStream) dan output stream (org.omg.CORBA.portable.OutputStream) Utk pengiriman/penerimaan data dari/ke ORB Kelas myMathHolder merupakan sebuah final class interface stream CORBA (org.omg.CORBA.portable.Streamable) Menyimpan objek bertipae myMath.
MyMathHelper.java Berisi beberapa methode client Membuat refrensi ke remote objek CORBA Fingsinya al. Narrow() Menjawab pembacaan dan penulisan tipe data ke input/ouput CORBA stream
MyMath.java MyMathOperation.java Sebuah interface yang diturunkan dari mMathOperation, Org.omg.CORBA.Object dan Org.omg.CORBA.porttable.IDLEntity MyMathOperation.java Mawakili definisi IDL Isi filenya sbb, yng merupakan hasil kompulasi IDL ke java
package myMathModule; public interface myMathOperation { float Tambah(float a, float b); float Kurang(float a, float b); float Kali(float a, float b); float Bagi(float a, float b); String info(); } // interface myMathOperation
Kompilasi idjlj -fall -oldImplBase myMath.idl hasil kompilasi : _myMathImplBase.Java bersisi, package myMathModule; public abastract class _myMathImplBase extends org.omg.CORBA.pertable.ObjectImpl implements myMathModule.myMath, org.omg.CORBA.portable.InvokeHandler { …. }// class _mymMathImplBase