Rabu, 19 Oktober 2011

Common Object Request Broker Architecture (CORBA)

1.1.  Pengertian CORBA
CORBA (Common Object Request Broker Architecture) merupakan sebuah arsitektur dan spesifikasi untuk membuat, mendistribusikan dan mengelola pendistibusian program berorientasi object (OO) dalam jaringan dengan paradigma client-server.
Dengan CORBA, berbagai object heterogen yang terdistribusi dapat saling berhubungan. Sebelum populer penggunaannya pada World Wide Web (www) serta secara khusus pada bahasa pemrograman java. CORBA merupakan solusi obyek terdistibusi yang digunakan oleh pengembang C++.

 Perbedaan CORBA dengan RMI diuraikan seperti berikut ini :
1. CORBA dapat diimplementasikan dengan berbagai bahasa pemrograman dan pada heterogeneus computer (sistem operasi dan software yang berbeda), sedang RMI hanya dapat diimplementasikan dengan bahasa java.
2.    CORBA terdiri dari beberapa mekanisme, dimana RMI dapat termasuk di dalamnya.

1.2.   Arsitektur CORBA

 
Arsitektur CORBA (Common Object Request Broker Architecture) yang pertama kali dikembangkan oleh OMG (Object Management Group), bertujuan untuk pengembangan pemrograman berorientasi pada obyek yang terdistribusi. CORBA itu sendiri bukanlah merupakan suatu bahasa pemrograman, tetapi merupakan suatu spesifikasi standard arsitektur untuk mengembangkan obyek-obyek terdistribusi.
Beberapa software yang mengimplementasikan CORBA misalnya ORBIX (oleh Technologies), VisiBroker (oleh msprise), dan Java IDL (oleh JavaSoft). CORBA memiliki arsitektur yang berbasiskan model obyek. Model ini diturunkan strak Core Object Model yang didefiniskan OMG di dalam OMA (Object agement Architecture). Model mi merupakan gambaran abstrak yang tidak dapat diimplementasikan tanpa menggunakan teknologi tertentu. Dengan model tersebut, suatu aplikasi dapat dibangun dengan standard yang telah ditentukan.
Sistem CORBA terdiri dari obyek-obyek yang mengisolasi suatu client dari suatu server dengan menggunakan interface enkapsulasi yang didefinisikan secara ketat. Obyek CORBA dapat berjalan di atas berbagai platform, dapat terletak dimana saja dalam suatu network, dan dapat dikodekan dengan bahasa pemrograman apapun asal memiliki mapping.

          Aplikasi enterprise tradisional kebanyakan adalah monolitik artinya data store, business logic, dan user interface. Perubahan yang sedikit saja mengakibatkan seluruh system perlu dikompilasi ulang. Dengan demikian reusability dari modul-modul adalah rendah sedang aplikasi terdistribusi yang dikembangkan dengan CORBA, komponen-komponennya dapat dipisahkan. Contoh dalam suatu aplikasi modular 3-tier, setiap komponen menjadi bagian yang terpisah. Semua komponen yang berupa obyek dapat dipakai oleh obyek-obyek lain dimana obyek-obyek itu tidak perlu ditulis dalam bahasa yang sama, tidak perlu berada pada platform yang sama atau pada mesin yang sama. Sekali obyek dibuat maka obyek itu dapat digunakan dari klien mana saja. User interface tier yang menampilkan informasi kepada pemakai akan menjadi tipis. Hal ini disebabkan karena obyek telah dipindahkan ke service tier yang bertindak sebagai middle war. Pada lapisan obyek logic ini terdapat CORBA object. Obyek-obyek inilah yang kemudian akan mengakses database yang berada pada data store tier.

Dengan CORBA beban dari suatu layanan bisa disebar ke beberapa server lain. CORBA dapat juga membuat bahasa pemrograman, misalnya Java, dan dapat berkomunikasi dengan obyek yang dibuat dengan bahasa yang lain dimanapun. Berkat kemampuan dinamic invocatioan interface dan dynamic skeleton interface CORBA, sebuah obyek (obyek Java) misalnya yang menjadi pelayan dapat memberi informasi mengenai jati dirinya kepada obyek lain agar obyek lain tersebut dapat meminta suatu layanan yang tersedia. Sebagai balasannya, ketidaktergantungan platform dari Java (write once – run anywhere) tentu memudahkan administrator dalam memutuskan di  mesin mana obyek CORBA yang dibuat akan diletakkan asalkan ada Java Virtual Machine pasti akan jalan.

1.3.   CORBA sisi Server
Pada sisi server, CORBA dibangun oleh beberapa layer/komponen, yakni :
1.    Server Side ORB Interface, merupakan interface yang berhubungan langsung dengan ORB pada sisi server dan tidak tergantung pada interface suatu object atau object adapter (OA), stub, skeleton, maupun dynamic invocation.
2.    Static IDL Skeleton,merupakan method untuk generate code saat kompilasi IDL
3.  Dynamic Skeleton Interface (DSI), menyerupai DII, namun terletak di sisi server. DSI memungkinkan server ditulis tanpa harus mempunyai skeleton skeleton atau informasi tentang  waktu kompilasi dan untuk obyek mana server ini diimplementasikan. Fungsi utamanya adalah mendukung implementasi gateway antara ORB yang memiliki protocol komunikasi berbeda.
4.   Object  Adapter, merupakan cara utama bagi semua Object Implementation (OI) untuk mengakses  service yang disediakan oleh ORB. Tugas utamanya adalah melakukan masking (menutupi) perbedaan dalam implementasi obyek untuk memperoleh protability yang lebih tinggi.
5.     Server Side Implementation, merupakan implementasi pada sisi server.

1.4.   CORBA pada sisi Client
Pada sisi server, CORBA dibangun dari beberapa komponen, yakni :
1. Client aplication, yang akan menginisiasi obyek ORB, mengambil referensi obyek dari name service dan kemudian memasukkan hasil pengambilan obyek referensi ke suatu variable object lokal dan memanipulasi object lokal tersebut.
2. Client IDL Stub, adalah bagian kode yang membuat antarmuka (interface) dapat diakses (available) oleh client. Stub melakukan encoding terhadap request, untuk mempaketkan semua informasi tentang RMI untuk dikirim ke tujuan, dengan kata lain, stub berkomunikasi dengan remote object. Stub dapat dihasilkan dengan dua cara, yakni SII (static invocation interface) dan DII (dynamic invocation interface).
3. Dynamic invocation interface (DII), memungkinkan aplikasi di sisi client untuk menggunakan server object tanpa perlu mengetahui type type object tersebut saat kompilasi. Dengan kata lain, DII memungkinkan client untuk mendapatkan instance dari object CORBA dan membuat invocation pada object tersebut dengan menciptakan request yang sifatnya dinamis.
4. Interface Repository (IR), digunakan client untuk mempelajari tentang interface object yang tidak diketahui, yang selanjutnya akan dipanggil menggunakan DII methode. Jadi IR adalah online database yang berisi meta informasi tentang tipe dari object ORB. Meta informasinya meliputi modul, interface. Operasi, atribut dan ekspresi dari object.
5. Client Side ORB Interface, merupakan interface yang berhubungan langsung dengan ORB pada sisi client dan tidak tergantung pada interface suatu object atau object adapter (OA), stub, skeleton, maupun dynamic invocation.
6. ORB Core, yang berfungsi untuk menghubungkan client ke IR dan membantu client dalam menyusun suatu permintaan (invocation) ke object server secara dinamis.

1.5.   Langkah Langkah Pengembangan CORBA

 
Untuk pengembangan CORBA, diperlukan langkah langkah sebagai berikut :
1.  Mendefenisikan interface yang berisi layanan layanan yang tersedia oleh object server menggunakan bahasa IDL.
2.    Mengkompilasi bahasa IDL ke bahasa java dengan menggunakan IDL to java compiler. Hasil dari kompilasi ini dihasilkan client stub dan skeleton server.
3.    Untuk menghasilkan aplikasi client, kita perlu menuliskan aplikasi client dan dikompilasi. Setelah itu, di-link bersama library CORBA serta client stub yang dihasilkan dari IDL compiler.
4.    Pada sisi server, dibuat sebuah class yang merupakan implementasi dari interface . Jadi aplikasi server dihasilkan dari kompilasi dan linking antara kode program aplikasi server, implementasi obyek dan skeleton.

Dari berbagai sumber ^_^

Tidak ada komentar:

Posting Komentar