Sebenarnya postingan ini adalah bentuk penyaluran kekesalan penulis dikarenakan pada ujian mata kuliah  Sistem Terdistribusi yang diikutinya tidak ada satu soal pun mengenai CORBA. Padahal penulis sudah mempelajari nyaris lebih dari 2 jam…


CORBA dan Sejarahnya

Dalam dunia yang terus berkembang ini, kebutuhan komputer yang mengaplikasikan sistem terdistribusi menjadi sangat tinggi. Sistem komputer yang terdistribusi adalah sebuah sistem yang memungkinkan aplikasi komputer beroperasi secara terintegrasi pada lebih dari satu lingkungan yang terpisah secara fisik dan memiliki karakteristik concurrency, synchronization, dan failures. Adalah tidak mungkin untuk mengembangkan sistem terdistribusi yang homogen, karena secara alamiah sistem komputer terdistribusi tumbuh dari lingkungan yang heterogen baik dalam hal perangkat keras, sistem operasi, maupun bahasa pemrogaman. Dari sini lah muncul istilah interoperabilitas yang artinya adalah kemampuan kerjasama antar sistem komputer.

Interoperabilitas sudah banyak dikenal orang. Salah satunya adalah protokol komunikasi data yang kita kenal dengan istilah TCP/IP. Namun ada satu hal yang belum banyak dikenal, yaitu interoperabilitas pada level perangkat lunak aplikasi. Dalam konteks sistem komputer terdistribusi, walaupun komponen aplikasi dibuat dengan bahasa pemrogaman yang berbeda, menggunakan development tools yang berbeda, dan beroperasi di lingkungan yang beragam pula, mereka harus tetap dapat saling bekerjasama.

Dari kebutuhan tersebut lah maka berdasarkan “kesepakatan” antara sejumlah vendor dan pengembanga perangkat lunak terkenal semacam IBM, Hewlett-Packard, dan DEC, yang tergabung dalam sebuah konsorsium bernama Object Management Group (OMG) lahirlah CORBA.

CORBA

CORBA adalah sebuah arsitektur software yang berbasis Object Oriented dengan paradigma client-server. Dalam terminologi tersebut, sebuah objek berkomunikasi dengan objek lain dengan cara pengiriman pesan (message passing). Diterjemahkan dalam model client-server, satu objek berperan sebagai si pengirim pesan (client) dan yang lain bertindak sebagai penerima dan pemroses pesan (server).

Keunikan dari CORBA adalah arsitektur ini memiliki Object Request Broker (ORB) yang memungkinkan untuk client dan server diimplementasikan dalam hardware, sistem operasi, bahasa pemrogaman, dan dilokasi yang berbeda, tapi tetap bisa saling berkomunikasi. Secara gampangnya ORB ini akan menjadi “broker/pialang” yang akan menjebatatani heterogenitas antara kedua objek. ORB akan menangani perbedaan platform, pelacakan lokasi objek, dan proses transfer pesan sedemikian rupa sehingga transparan terhadap kedua objek. Dengan demikian pemrogaman client dan implementasi objek bisa berkonsentrasi sepenuhnya pada aspek fungsionalitas keduanya.

Interface Definition Language (IDL)

Bagaimana caranya dua objek yang dikembangkan terpisah, dengan perangkat dan bahasa yang berbeda, serta dijalankan di komputer yang berbeda, dapat saling bekomunikasi? Konsep tentang interface dapat “mempertemukan” perbedaan-perbedaan itu. Mari kita bayangkan interface sebagai “ikatan kontrak” antara dua objek yang akan saling berkomunikasi.

Bagi objek server, interface akan berfungsi untuk meng”iklan”kan kepada client tentang apa saja yang bisa dikerjakannya.

Bagi objek client, interface berfunsi sebagai “pemandu” untuk mengetahui layanan-layanan apa saja yang disediakan oleh server.

Dalam CORBA, spesifikasi interface adalah hal pertama yang dilakukan, seperti dalam kehidupan nyata, sebelum transaksi terjadi maka akan dibuat kontrak. Spesifikasi tersebut dibuat dengan bahasa khusus yang bersifat standar yang disebut Interface Definition Language (IDL).

Object Management Architecture (OMA)

Di atas kita telah membicarakan interoperabilitas pada level objek. Pada kenyataannya, interoperabilitas pada level aplikasi jauh lebih kompleks.Keterkaitan antara satu program dengan program yang lain begitu beragam, hal ini menyulitkan penyediaan dukungan yang lebih komprehensif secara terstruktur. Dengan teknologi berbasis CORBA, OMG mencoba menuangkan visinya tentang aplikasi terdistribusi dalam sebuah arsitektur yang disebut Object Management Architecture (OMA). OMA mengelompokkan jenis-jenis interaksi antar program untuk memudahkan penyediaan dukungan.

OMA melakukan strukturisasi dunia aplikasi ke dalam dua kelompok besar:

  • kategori layanan CORBA (CORBA services)

Layanan CORBA menyediakan fungsi-fungsi dasar yang digunakan oleh hampir setiap obyek dalam berbagai aplikasi. Fungsi-fungsi ini biasanya bersifat generik dan tidak tergantung pada jenis domain aplikasi. Sebagai contoh adalah layanan penamaan (naming service). Bayangkan bila kita memerlukan sebuah layanan tapi tidak tahu ke mana harus mencari server yang menyediakan layanan tersebut. Layanan penamaan dapat membantu kita layaknya sebuah “halaman kuning” (yellow pages); dia bisa menyiarkan direktori layanan yang terdaftar padanya. Karena sifatnya yang generik, layanan penamaan dapat digunakan oleh aplikasi dari berbagai domain.

  • kategori fasilitas CORBA (CORBA facilities).

Fasilitas CORBA lebih tinggi levelnya. Ia menyediakan layanan pada level aplikasi. Ada dua jenis fasilitas: horizontal, yang diperlukan oleh berbagai jenis domain (misalnya, user-interface), dan vertikal, yang berlaku khusus untuk domain tertentu (misalnya, dalam kasus kita, domain kesehatan). Fasilitas horizontal fungsinya mirip dengan layanan CORBA, tetapi beroperasi pada level yang lebih tinggi karena berhubungan langsung dengan aspek fungsional dari aplikasi. OMG secara terus-menerus melakukan standarisasi terhadap interface untuk komponen-komponen di masing-masing kategori. Semakin banyak layanan dan fasilitas yang distandarisasi, semakin mudah untuk mencapai komputasi terdistribusi berbasis komponen dalam berbagai bidang secara plug-and-play, tanpa terganggu oleh masalah heterogenitas.

Untuk lebih memperjelas, berikut ilustrasi arsitektur CORBA:

corba1