Senin, 26 Desember 2016

Tugas Softskill Pengantar Telematika

JOURNAL OSGI (Open Services Gateway Initiative)


ABSTRAKSI

SPESIFIKASI OSGI MENGGUNAKAN KOMPUTASI GRID SEBAGAI JAWABAN KETERBATASAN SUMBER DAYA KOMPUTASI

Tugas Pengantar Telematika. Jurusan Sistem Informasi, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Gunadarma, 2016
Kata Kunci: Spesifikasi OSGI, Komputasi Grid, Keterbatasan Sumber Daya Komputasi
Spesifikasi OSGI telah bergerak melampaui fokus asli gateway layanan, dan sekarang digunakan dalam beberapa aplikasi yaitu Dari ponsel ke open source Eclipse IDE, Area aplikasi lainnya termasuk mobil, Otomasi industri, Otomatisasi bangunan, PDA, komputasi grid, hiburan, armada manajemen dan aplikasi server. Grid ComputinG, suatu arsitektur sistem komputer berkinerja tinggi yang memanfaatkan teknologi grid computing yang ada (beberapa di antaranya: Globus Toolkit 4, Condor, PVM, MPI) sebagai komponen pembangunnya. Dengan terbentuknya infrastruktur komputasi grid computing ini, diharapkan kebutuhan para peneliti akan sumber daya komputasi dapat dipenuhi dan pada gilirannya dapat meningkatkan tingkat kompetitif.



BAB I
PENDAHULUAN

1.1  Latar Belakang
Saat ini, para peneliti sudah amat menyadari pentingnya peran komputer dalam pengembangan ilmu pengetahuan dan teknologi. Komputer memungkinkan para peneliti untuk menciptakan laboraturium virtual dalam komputer untuk melakukan eksperimen- eksperimen yang akan mahal sekali jika dilakukan di dalam sebuah laboraturium fisik atau bahkan tidak mungkin. Beberapa pihak bahkan telah memberikan nama tersendiri untuk menggambarkan kegiatan pengembangan ilmu pengetahuan dan teknologi yang berbasis komputer ini dengan sebutan e-Science 0.
Untuk melakukan eksperimen dengan menggunakan komputer dalam konteks pengembangan e-Science di atas umumnya dibutuhkan sumber daya komputasi yang berkinerja tinggi (atau juga dikenal dengan sebutan high performance computing). Pada beberapa dekade yang lalu, sumber daya komputasi berkinerja tinggi ini hanya dapat dipenuhi oleh komputer yang dikategorikan sebagai supercomputer (seperti komputer Cray X-MP, CDC, Illiac-IV). Supercomputer memang dapat memenuhi kebutuhan para peneliti e-Science, namun karena harganya yang mahal, hanya sedikit dari para peneliti tersebut yang dapat memilikinya/menggunakannya. Sejalan dengan perkembangan teknologi komputer, baik dari sisi perangkat keras maupun perangkat lunak, saat ini sumber daya komputasi berkinerja tinggi tidak lagi harus dipenuhi oleh komputer- komputer berkategori supercomputer. Bahkan dengan teknologi komputer yang dikenal dengan nama grid computing, sejumlah komputer yang lazim digunakan di perkantoran dapat digabung untuk secara bersama-sama melakukan eksperimen seperti yang dahulu biasa dilakukan oleh supe computer.
Bagi para peneliti di negara-negara yang kemampuan ekonominya terbatas maka solusi yang diberikan oleh teknologi grid computing ini merupakan suatu alternatif yang harus dipertimbangkan dengan amat serius. Pengembangan ilmu pengetahuan dan teknologi, termasuk yang dilakukan dengan menggunakan bantuan komputer (e-Science), tidak harus terhenti hanya karena keterbatasan dana. Teknologi grid computing memungkinkan para peneliti memanfaatkan sumber daya komputasi yang telah ada semaksimal mungkin. Dengan menggunakan teknologi ini, para peneliti dapat menggabungkan komputer-komputer yang berada di tempat-tempat yang secara geografis terpisah menjadi suatu kesatuan sistem komputer. Gabungan banyak komputer ini secara keseluruhan mampu menyediakan sumber daya komputasi yang setara atau bahkan lebih dengan komputer berkategori supercomputer. Lebih lanjut, sistem komputer ini dapat digunakan secara bersama-sama oleh para peneliti yang juga berasal dari instansi-instansi yang lokasinya berlainan. Secara keseluruhan, tidak saja teknologi grid computing memungkinkan para peneliti menerapkan e-Science untuk mengembangkan ilmu pengetahuan dan teknologi dengan biaya yang relatif “terjangkau”, tetapi juga dapat memanfaatkan sumber daya komputasi yang ada seefisien mungkin secara bersama-sama oleh banyak peneliti.
1.2 Tujuan Penulisan
Tujuan penulisan jurnal ini adalah untuk lebih memahami spesifikasi OSGI terutama pada aplikasi komputasi grid, serta apa saja yang terdapat pada komputasi grid dalam menjawab keterbatasan sumber daya komputasi.

1.3 Metode penulisan 
            Metode yang digunakan dalam pembuatan jurnal ini adalah dengan literature. Yaitu mencari informasi yang berhubungan dengan sepsifikasi OSGI terutama komputasi grid, baik itu melalui browsing maupun sumber-sumber literature tertulis (buku).





BAB II
TINJAUAN PUSTAKA

2.1 Definisi OSGI
OSGI (Open Service Gateway Initiative) adalah sebuah rencana industri untuk cara standar untuk menghubungkan perangkat seperti perangkat rumah tangga dan sistem keamanan ke Internet. OSGI berencana menentukan program aplikasi antarmuka (API) untuk pemrogram menggunakan, untuk memungkinkan komunikasi dan kontrol antara penyedia layanan dan perangkat di dalam rumah atau usaha kecil jaringan. OSGI API akan dibangun pada bahasa pemrograman Java. Program java pada umumnya dapat berjalan pada platform sistem operasi komputer. OSGI adalah sebuah interface pemrograman standar terbuka.
The OSGI Alliance (sebelumnya dikenal sebagai Open Services Gateway inisiatif, sekarang nama kuno) adalah sebuah organisasi standar terbuka yang didirikan pada Maret 1999. Aliansi dan anggota – anggotanya telah ditentukan sebuah layanan berbasis Java platform yang dapat dikelola dari jarak jauh. 

2.2  Sepsifikasi OSGI
Spesifikasi OSGI telah bergerak melampaui fokus asli gateway layanan, dan sekarang digunakan dalam beberapa aplikasi yaitu :Dari ponsel ke open source Eclipse IDE, 

·                     Area aplikasi lainnya termasuk mobil,
·                     Otomasi industri, 
·                     Otomatisasi bangunan, 
·                     PDA, 
·                      komputasi grid, 
·                       hiburan, 
·                     armada manajemen dan aplikasi server.

Adapun spesifikasi yang lain dimana OSGI akan dirancang untuk melengkapi standar perumahan yang ada, seperti orang – orang LonWorks (lihat kontrol jaringan), CAL, CEBus, HAVi, dan lain-lain. Inti bagian dari spesifikasi adalah suatu kerangka kerja yang mendefinisikan aplikasi model manajemen siklus hidup, sebuah layanan registrasi, sebuah lingkungan eksekusi dan modul. Berdasarkan kerangka ini, sejumlah besar OSGI layers, API, dan Jasa telah ditetapkan. Spesifikasi OSGI yang dikembangkan oleh para anggota dalam proses terbuka dan tersedia untuk umum secara gratis di bawah Lisensi Spesifikasi OSGI. OSGI Alliance yang memiliki program kepatuhan yang hanya terbuka untuk anggota. Pada Oktober 2009, daftar bersertifikat OSGI implementasi berisi lima entri.


2.3  Keuntungan Teknologi OSGI
Keuntungan menggunkan teknologi OSGI antara lain:
1.      Mengurangi kompleksitas : mengembangkan dengan OSGi berarti menembangkan bundles : salah satu komponen OSGi. Bundles adalah modul. Bundles menyembunyikan aspek internalnya dari bundles lainnya. Hal ini berarti ada banyak kebebasan untuk menggantinya di kemudian hari.
2.   Dapat digunakan kembali : model komponen OSGi sangat mudah digunakan dan dapat digunakan dengan aplikasi pihak ketiga.
3.      RealWorld : OSGi framework dinamik. Hal ini berarti OSGi dapat diupdate secara online.
4.      Mudah Penyebarannya : teknologi OSGi bukanlah sebuah teknologi standard. OSGi dapat dimanage sedemikian rupa serta dapat diatur cara penginstalannya.
5.      Update yang dinamik : OSGi komponen bisa diupdate secara dinamik.
6.      Adaptif : model komponen OSGi didesain sedemikian rupa hingga diperbolehkan untuk mengkombinasi dan mencocokan antar komponen.
7.   Transparan
8.   Banyak versinya
9.      Simple : OSGi API sangat simple. API OSGi hanya terdiri dari satu paket dan berjumlah kurang dari 30 kelas.
10.  Ukurannya kecil


2.4 Komputasi Grid 
           Komputasi grid secara konsep tidak seperti elektronik grid. Dalam elektronik grid, outlet dinding mempersilahkan kita untuk dapat berhubungan dengan sumber infrastruktur yang membangun, mendistribusikan, dan mengirimkan rekening listrik. Ketika kita terhubung dengan elektronik grid, kita tidak perlu mengetahui dari mana tenaga tersebut berasal atau bagaimana caranya bisa sampai kepada kita. Komputasi grid menggunakan middleware untuk mengkordinasi sumber-sumber IT yang terpisah di dalam suatu jaringan. Tujuan dari komputasi grid hampir sama dengan elektronik grid, di mana komputasi grid menyediakan akses bagi para pengguna kepada sumber yang mereka butuhkan.
            Gambaran Sistem Dan Proses Mobile agent dalam komputasi Grid Mobile agent dan komputasi grid merupakan kombinasi yang sangat baik untuk memecahkan masalah dalam dunia komputasi, karena banyak memiliki kecocokan karakteristik antara keduanya. Kami akan menunjukkan suatu contoh implementasi konsep dari sistem mobile agent dalam komputasi grid.
Ada tiga fitur middleware yang dibutuhkan untuk membentuk sebuah komputasi grid dari komputer desktop yang terdistribusi melalui internet:
1.      Mencari dan menjatahkan sumber daya sistem kepada suatu pekerjaan yang mungkin berubah secara dinamis.
2.      Berpindah tempat proses ke suatu mesin baru yang tersedia, khususnya ketika mesin tersebut sedang dikunjungi oleh pemilikinya atau bahkan pada saat mesin tersebut dalam keadaan OFF.
3.   Support komunikasi jaringan transparan diantara beberapa proses, beberapa diantaranya dapat dijalankan di dalam mesin yang berada di belakang gateway atau firewall







BAB III
PEMBAHASAN

3.1 Evolusi Grid Computin
Teknologi grid computing merupakan teknologi yang telah dikembangkan dalam waktu yang panjang. Secara evolusi kita melihat pengembangan teknologi sejenis mulai dari Condor 0, kemudian diikuti oleh PVM (Parallel Virtual Machine) 0 dan MPI (Message Passing Interface) 0, sampai dengan Globus Toolkit 0. Sejak awal, para peneliti di bidang komputasi berkinerja tinggi telah menggunakan dua pendekatan 0, (1) supercomputer, membangun sebuah komputer dengan teknologi perangkat keras berkinerja tinggi, dan (2) multicomputer, membangun sebuah sistem komputer dengan teknologi jaringan interkoneksi dan perangkat lunak. Pendekatan pertama umumnya menghasilkan sebuah komputer yang berkinerja tinggi, tetapi berharga amat mahal sehingga hanya dapat dimiliki oleh segelintir pihak saja. Pendekatan kedua menghasilkan suatu sistem komputer yang kinerjanya bervariasi sesuai jumlah komputer yang tergabung dan konfigurasi perangkat lunak yang digunakan.
Walaupun harga suatu sistem komputer berkinerja tinggi yang dibangun dengan pendekatan multicomputer lebih terjangkau dibandingkan dengan supercomputer, pemakaiannya masih terbatas. Sistem komputer berbasis jaringan tersebut umumnya diterapkan pada komputer-komputer yang terhubung dalam suatu jaringan lokal (LAN). Salah satu penyebabnya adalah masalah keamanan jaringan yang belum tertangani dengan baik. Selain itu, sistem perangkat lunak pendukung yang memungkinkan komputer-komputer tersebut bekerja sebagai satu kesatuan umumnya memiliki konfigurasi yang kompleks sehingga penggunanya harus memiliki keahlian tersendiri sebelum dapat memanfaatkan sistem komputer tersebut.
 Sejalan dengan perkembangan teknologi Internet dan teknologi- teknologi komputer yang berkaitan lainnya seperti protokol komunikasi data, teknologi keamanan jaringan, teknologi pemgrograman terdistribusi, dan teknologi bahasa pemrograman yang independen terhadap arsitektur komputer maka sistem komputer berkinerja tinggi berbasis jaringan menjadi lebih mudah untuk diimplementasikan dan digunakan.



3.2. Grid Computing & Solusi yang Ditawarkan
Pada beberapa tahun belakangan ini, sekelompok peneliti di bidang komputasi berkinerja tinggi secara serius memusatkan perhatian pada pengembangan sistem komputer berbasis jaringan seperti yang telah diuraikan di atas dengan menggunakan teknologi yang dikenal dengan sebutan teknologi grid computing 0.
Teknologi grid computing adalah suatu cara penggabungan sumber daya yang dimiliki banyak komputer yang terhubung dalam suatu jaringan sehingga terbentuk suatu kesatuan sistem komputer dengan sumber daya komputasi yang besarnya mendekati jumlah sumber daya komputasi dari komputer-komputer yang membentuknya. Lebih lanjut, sebagian atau seluruh sumber daya komputasi ini dapat dipakai oleh penggunanya sesuai kebutuhan masing-masing. Penamaan “grid” disini meminjam istilah yang digunakan dalam ketenagalistrikan 0, dimana pembangkit-pembangkit tenaga listrik dihubungkan satu sama lain untuk secara bersama-sama memasok kebutuhan tenaga listrik penggunanya. Masing-masing pengguna hanya menggunakan sebagian dari daya listrik yang dihasilkan oleh seluruh pembangkit tenaga listrik tersebut.
 Berbeda dengan teknologi-teknologi pendahulunya seperti Condor, PVM, atau MPI, teknologi grid computing dilengkapi oleh komponen-komponen yang memungkinkan pemanfaatan sumber daya komputasi yang terhimpun secara lebih optimal dan aman. Untuk melihat komponen-komponen dari teknologi grid computing ini, disini akan diuraikan dengan singkat sistem Globus Toolkit yang dikembangkan oleh para peneliti di Argonne National Laboratory, Amerika Serikat 0. Sistem Globus Toolkit merupakan salah satu teknologi grid computing yang populer dan banyak digunakan oleh pihak-pihak yang ingin mengintegrasikan sumber daya komputasi mereka yang tersebar menjadi satu kesatuan.
Secara spesifik, sistem Globus Toolkit yang akan dibahas disini adalah sistem Globus Toolkit versi 4 (GT4) 0, yang merupakan versi mutakhir dari sistem Globus Toolkit. Sistem GT4 dibangun dengan menggunakan teknologi Web Services 0 yang telah berkembang menjadi suatu standar dalam pengembangan perangkat lunak terdistribusi. Teknologi Web Services memungkinkan GT4 mengadopsi konsep berorientasi layanan (service-oriented) yang menggunakan layanan, bukan perangkat keras, sebagai komponen dasar bangunannya. Di atas Web Services ini GT4 membangun komponen-komponen utama dari sistem komputasi grid berikut ini.

3.3.Infrastruktur Komputasi Grid
Dengan meningkatnya kebutuhan para peneliti akan sumber daya komputasi untuk melakukan e-Science seperti telah disebutkan dimuka dan berkembangnya teknologi grid computing maka beberapa negara telah mengambil inisiatif untuk mengimplementasikan infrastruktur komputasi grid di tingkat nasional. Beberapa contoh di antaranya: India 0, Singapura 0, dan Jepang 0.
Suatu infrastruktur komputasi grid akan dapat menekan biaya investasi dibandingkan bila masing-masing institusi tersebut harus mengadakan perangkat komputasinya sendiri-sendiri. Lebih lanjut, sistem komputasi grid yang menuntut penggunaan sumber daya komputasi secara bersama-sama akan menumbuhkan semangat berkolaborasi di antara para peneliti tersebut. Suatu hal yang amat positif.
Melihat manfaat yang dapat diberikan oleh keberadaan suatu infrastruktur komputasi grid di tingkat nasional maka pada makalah ini diajukan rancangan RI-GRID, yaitu infrastruktur komputasi grid di tingkat negara Republik Indonesia yang bertujuan memanfaatkan sumber daya komputasi yang berada di institusi-institusi penelitian baik saat ini maupun di masa akan datang sehingga dapat digunakan oleh para peneliti di negara ini untuk mengembangkan ilmu pengetahuan dan teknologi.


3.4.Arsitektur GRID COMPUTING
 GRID COMPUTING dibangun dengan jalan menggabungkan sistem- sistem komputasi grid yang berada di institusi-institusi penelitian (GRID-2, 3, 4) menjadi satu kesatuan. Konfigurasi perangkat keras dan perangkat lunak masing-masing sistem di tingkat institusi dapat berbeda, namun dengan mengoperasikan teknologi grid computing seperti GT4 pada simpul-simpul penghubung dari masing-masing sistem, keseluruhan sistem membentuk satu kesatuan infrastruktur komputasi grid. Dengan konfigurasi seperti ini, jika dibutuhkan, pengguna di suatu institusi dapat memanfaatkan sumber daya komputasi yang berada di luar institusinya.
 Konfigurasi yang ditunjukkan pada Gambar 1 di atas tidak menuntut masing-masing sistem di tingkat institusi untuk merubah konfigurasi sistem masing-masing secara signifikan. Jika suatu institusi telah mengimplementasikan suatu teknologi grid computing tertentu seperti SUN Grid Engine (SGE) atau teknologi komputasi berbasis jaringan seperti PVM, MPI, Condor maka sistem GT4 dapat dikonfigurasikan untuk berkoordinasi dengan masing-masing teknologi tersebut.Salah satu prasyarat dari pembentukan GRID COMPUTING adalah tersedianya suatu backbone jaringan berkapasitas besar untuk menghubungkan simpul-simpul penghubung di masing-masing institusi (harus memiliki lebar pita mulai 2 Mbps sampai dengan 155 Mbps).

RAM: Grid Resource Allocation & Managemen
 Komponen ini bertanggung jawab dalam mengelola seluruh sumber daya komputasi yang tersedia dalam sistem komputasi grid. Pengelolaan ini mencakup eksekusi program pada seluruh komputer yang tergabung dalam sistem komputasi grid, mulai dari inisiasi, monitoring, sampai penjadwalan (scheduling) dan koordinasi antar-proses. Suatu hal yang menarik dengan sistem GT4 adalah kemampuannya untuk bekerja sama dengan sistem-sistem pengelolaan sumber daya komputasi yang telah ada sebelumnya seperti Condor, PVM, atau MPI. Dengan mekanisme ini maka program-program yang telah dibangun sebelumnya tidak perlu dibangun ulang atau kalaupun harus dimodifikasi, modifikasinya minimum, jika akan dijalankan dalam lingkungan komputasi grid berbasis GT4.

RFT/GridFTP: Reliable File Transfer/Grid File Transfer Protocol
Komponen ini memungkinkan pengguna mengakses data yang berukuran besar dari simpul-simpul komputasi yang tergabung dalam sistem komputasi grid secara efisien dan dapat diandalkan. Hal ini penting karena kinerja komputasi tidak saja bergantung pada seberapa cepat komputer-komputer yang tergabung dalam sistem komputasi grid ini mengeksekusi program, tetapi juga seberapa cepat data yang dibutuhkan dalam komputasi tersebut dapat diakses. Perlu diingat bahwa, data yang dibutuhkan oleh suatu proses tidak selalu berada pada komputer yang mengeksekusi proses tersebut.


MDS: Monitoring & Discovery Service
 Komponen ini memungkinkan pengguna sistem GT4 melakukan monitoring proses komputasi yang tengah berjalan sehingga masalah yang timbul dapat segera diketahui. Sementara itu, aspek discovery dari komponen ini memungkinkan pengguna mengidenti-fikasi keberadaan suatu sumber daya komputasi berikut karakteristiknya.

GSI: Grid Security Infrastructure
Komponen ini bertanggung jawab atas keamanan sistem komputasi grid secara keseluruhan. Komponen ini pula yang merupakan salah satu ciri pembeda teknologi GT4 dengan teknologi-teknologi pendahulunya seperti PVM atau MPI. Dengan diterapkannya mekanisme keamanan yang terintegrasi dengan komponen-komponen komputasi grid lainnya, sistem berbasis teknologi grid computing seperti GT4 dapat diakses oleh publik (WAN) tanpa menurunkan tingkat keamanannya. Sistem keamanan GT4 dibangun atas komponen-komponen standar keamanan yang telah teruji, yang mencakup proteksi data, autentikasi, delegasi, dan autorisasi. Konfigurasi dasar GT4 mengasumsikan baik pengguna maupun layanan menggunakan standar keamanan yang menggunakan standar kunci publik X.509.









BAB IV
PENUTUP

4.1 Kesimpulan
Spesifikasi OSGI telah bergerak melampaui fokus asli gateway layanan, dan sekarang digunakan dalam beberapa aplikasi yaitu Dari ponsel ke open source Eclipse IDE, Area aplikasi lainnya termasuk mobil, Otomasi industri, Otomatisasi bangunan, PDA, komputasi grid, hiburan, armada manajemen dan aplikasi server.
 Sistem komputasi berkinerja tinggi berbasis teknologi grid computing tidak identik dengan sistem komputer berharga mahal. Lebih lanjut, infrastruktur komputasi grid dapat dibangun dengan menggabungkan sumber-sumber daya komputasi yang telah ada menjadi satu kesatuan yang kemudian dapat berkontribusi pada pengembangan ilmu pengetahuan dan teknologi. Bahkan, prinsipkolaborasi yang melandasi teknologi grid computing dapat menjadi pelajaran berharga bagi kita untuk menerapkannya dalam konteks kehidupan yang lain.














DAFTAR PUSTAKA

http://fajar-ziqqy-sallasa.blogspot.co.id/2015/01/jurnal-open-service-gateway-initiative.html



Penulis : Yusuf Effendi

Kamis, 24 November 2016

Tugas Softskill Pengantar Telematika

PENGANTAR TELEMATIKA
JOURNAL MIDDLEWARE

1.      PENDAHULUAN
1.1 Latar belakang masalah
Untuk membangun sebuah aplikasi client server multi platform programming salah satu cara adalah dengan memanfaatkan middleware. Middleware bias dijelaskan pada 2 tataran, yaitu tataran konsep/paradigma dan tataran aplikasi pemrograman.
Pada tataran konsep, middleware digunakan sebagai jembatan atau penghubung dua aplikasi atau lebih yang memiliki perbedaan, middleware kadang disebut sebagai plumbing karena middleware digunakan untuk menghubungkan 2 bagian dari sebuah aplikasi dan digunakan untuk melewatkan data diantara mereka. Pada tataran implementasi, middleware adalah sebuah paket program instan yang digunakan untuk menghubungkan dua program yang berbeda platforma atau produk/vendor. Beberapa jenis middleware yang bisa digunakan untuk pemrograman adalah ORB, RPC, RMI, DCE, dan MOM. Produk Middleware biasanya di pakai oleh sebuah arsitektur atau framework pemrograman.
ORB (Object Request Broker) dimiliki oleh arsitektur atau framework pemrograman CORBA (Common Object Request Broker Architectur) dan JAVA, RMI (Remothe Method Invocation) dimiliki oleh teknologi JAVA. Pada tulisan ini akan dijelaskan konsep dan implementasi pemrograman middleware ORB pada framework CORBA, dengan kasus client server berbeda platform pemrograman. Tulisan ini akan dibagi menjadi beberapa bagian. Bagian berikutnya adalah bagian II akan membahas tentang middleware-middleware yang bisa membangun aplikasi bisnis (EAI).
Pada bagian ini juga akan dibahasa CORBA-ORB serta arsitektur frameworknya. Pembahasan tentang konsep dan implementasi pemrograman dengan middleware ini akan dibahas pada bagian III dan pada bagian IV akan dibahas tentang tinjauan kritis penggunaan middleware dalam membangun aplikasi client server.
1.2  Batasan Masalah
Berdasarkan masalah diatas maka ruang lingkup penulisan dibatasi pada pemanfaatan middleware ORB (Object Request Broker)
1.3 Tujuan Penulisan
Pembuatan makalah ini disusun untuk memberikan kemudahan dan pengetahuan tentang middleware telematika. Memberikan pengetahuan lebih tentang konsep pemrograman jaringan dengan memanfaatkan middleware ORB (Object Request Broker)

1.4 Metode Penelitian
Beragai data yang digunakan dalam penulisan ini diperoleh dari studi pustaka dengan mencari bahan dasar sebagai acuan teori dan bahan dari beragai buku dan situs-situs terpercaya pada internet serta beberapa referensi yang berhubungan dengan permasalahan yang akan dibahas penulis.

2.      TINJAUAN PUSTAKA
2.1 Middleware dan Enterprise ApplicationIntegration
Middleware adalah sebuah aplikasi yang secara logic berada diantara lapisan aplikasi (application layer) dan lapisan data dari sebuah arsitektur layer-layer TCP/IP . Middleware bisa juga disebut protokol. Protokol komunikasi middleware mendukung layanan komunikasi aras tinggi.
Biasanya program middleware menyediakan layanan pesan (messaging services) sehingga aplikasi-aplikasi yang berbeda-beda itu dapat berkomunikasi. Sistem middleware mengikat aplikasi-aplikasi yang terpisah. Penggunaannya dalam aplikasi bisnis dikenal sebagai Enterprise Application Integration (EAI).
Middleware EAI membuat penghubung antara aplikasi-aplikasi dalam berbagai cara, namun secara umum cara ini diistilahkan sebagai transformasi dan routing data dan mengatur aliran proses bisnis. Ada implikasi dalam hal ini bahwa aplikasi-aplikasi itu ber ada dalam sebuah dunia heterogenitas – perbedaan platform operasi, pemisahan model data dan penyimpan data, heterogenitas jaringan dan protocol komunikasi.

2.2 Middleware ORB dalam framework CORBA
CORBA (Common Object Request Broker Architecture) adalah sebuah standar system terdistribusi yang dikembangkan oleh OMG (Object Management Group), yaitu sebuah konsorsium yang terdiri dari lebih dari 800 perusahaan untuk membantu dalam pemrograman objek-objek terdistribusi. CORBA adalah sebuah cara bagi objekobjek untuk melakukan interoperasi lintas jaringan. Sejak spesifikasi CORBA versi 1.2 diperkenalkan pada tahun 1991, CORBA memberikan sebuah mekanisme standar bagi komunikasi antar objek lintas jaringan, kemudian spesifikasi CORBA tersebut berkembang dengan diperkenalkannya CORBA 2.0 di tahun 1994 dan CORBA 3.0 yang direlease tahun 2000. Hal yang penting untuk dicatat bahwa CORBA hanya sebuah spesifikasi untuk membuat dan menggunakan objek-objek terdistribusi, CORBA bukan sebuah produk atau bahasa pemrograman.
Vendor-vendor yang ingin membuat produk-produk yang mengikuti spesifikasi CORBA 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. Model ini berasal dari abstraksi inti model objek yang didefinisikan oleh OMG dalam sebuah petunjuk OMA (Object Management Architecture), yang dapat ditemukan dalam [2]. Beberapa hal penting yang perlu dicatat bahwa CORBA berbeda dengan pemrograman objek serupa adalah:
1.      Objek-objek CORBA dapat berjalan dalam berbagai platform.
2.      Objek-objek CORBA ditempatkan di manapun dalam jaringan.
3.      Objek-objek CORBA dapat ditulis dalam beberapa bahasa pemrograman yang memiliki pemeta IDL (IDL mapping).
Bersifat open, maksudnya bahwa CORBA bias dipakai oleh setiap orang yang ingin menggunakan standarisasi CORBA ini. Sehingga akan muncul perbedaan-perbedaan dalam menggunakannya, seperti perbedaan platform ataupun bahasa pemrograman. Tetapi hal ini justru menjadi kelebihan CORBA bahwa CORBA mampu mengkomunikasikan sistem yang memiliki perbedaan-perbedaan tersebut.
CORBA merupakan sebuah arsitektur yang menyediakan sebuah framework crossplatform untuk membangun dan mengembangkan sistem objek terdistribusi. Ide utama dibelakang CORBA adalah sebuah perangkat lunak perantara (intermedier) atau disebut middleware yang mengatur dan menyebarkan akses request ke sekumpulan data tertentu. Perangkat lunak perantara ini adalah Middleware ORB (Object Request Broker).
ORB melakukan interaksi dan membuat request ke berbagai macam objek. ORB ini terletak diantara layer data dan layer aplikasi dalam susunan arsitektur jaringan 7 layer model OSI. ORB akan melakukan negosiasi antara pesan request dari objek ke objek atau dari objek server ke sekumpulan data (data set). Tujuan CORBA adalah untuk membuat pemrograman lebih mudah dengan membuat aplikasi berbasis CORBA yang sangat portable. Untuk melihat lebih detail tentang arsitektur CORBA dan ORB berada didalamnya, maka CORBA memiliki sebuah arsitektur yang disebut OMA (Object Management Group).OMA mengelompokkan jenis-jenis interak si antar program untuk memudahkan penyediaan dukungan.
OMA melakukan strukturisasi dunia aplikasi ke dalam dua kelompok besar: kategori layanan CORBA (CORBAservices) dan kategori fasilitas CORBA (CORBAfacilities). 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 memerlukan sebuah layanan tapi tidak tahu kemana harus mencari server yang menyediakan layanan tersebut. Layanan penamaan dapat membantu 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 berbaga i domain.
Fasilitas CORBA 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. 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.

2.3 Software CORBA-ORB
Ada banyak software CORBA-ORB baik yang free dan opensource maupun yang komersil. Yang akan digunakan disini adalah software ORB dari Java yang disebut Java-ORB dan JAC-ORB dari Fu Berlin / Xtradine. Keduanya berbasis Java. Sementara software ORB yang lainnnya dapat dilihat dalam tabel berikut.
Ketika masuk ke pemrograman secara teknis maka yang perlu diketahui adalah sebuah bahasa interface yang digunakan untuk menghubungkan berbagai macam aplikasi. Bahasa ini disebut Interface Definition Language (IDL). Untuk mengenal tentang IDL maka berikut adalah pembahasan tentang IDL.

2.4 Interface Definition Language (IDL)
IDL merupakan inti untuk pembuatan aplikasi CORBA. IDL memuat sekumpulan tipe variabel yang kemudian akan dipetakan ke berbagai bahasa pemrograman. Suatu interface dalam CORBA menyediakan sebuah deskripsi fungsi-fungsi yang disediakan untuk sebuah objek. Atribut, method dan parameter adalah informasi-informasi yang dispesifikasi oleh sebuah interface. IDL adalah sebuah bahasa yang menggambarkan objek-objek interface dalam sebuah aplikasi CORBA.
IDL mendefinisikan tipe-tipe objeknya dengan mendefinisikan interface-interfacenya. Sebuah interface terdiri dari sekumpulan nama operasi dan parameter-parameter untuk operasi-operasi tersebut. Catatan bahwa IDL hanya digunakan untuk menggambarkan interface, dan bukan sebuah implementasi. IDL bukan pula bahasa pemrograman. Melalui IDL, sebuah implementasi objek tertentu memberitahukan pada client tentang operasi-operasi apa saja yang tersedia dan memberitahukan bagaimana cara untuk mengambilnya. Dengan definisi IDL, objek-objek CORBA harus dipetakan ke beberapa bahasa pemrograman yang akan digunakan untuk membangun aplikasi client dan juga server. Beberapa bahasa pemrograman yang memiliki pemeta IDL (IDL mapping) adalah C, C++, Java, Smalltalk, Lisp, Basic, Pascal dan Python. Setelah mendefinisikan sebuah interface untuk objek-objek dalam IDL, programmer bebas untuk mengimplementasikan objek-objek dengan menggunakan bahasa pemrograman yang sesuai yang memiliki pemeta IDL. Sebagai sebuah protokol kompiler, IDL bisa digambarkan sebagai berikut:

3.   ANALISA DAN PEMBAHASAN
3.1 Implementasi Pemrograman Jaringan Menggunakan Middleware CORBA-ORB
Untuk membangun aplikasinya ada beberapa langkah yang perlu diperhatikan dalam hal pemrograman menggunakan middleware CORBA-ORB. Langkah-langkah itu adalah :
1. Membuat rancangan dan analisa kebutuhan system
2. Men-download software yang akan digunakan (software yang akan digunakan adalah Java-ORB dan JAC-ORB)
3. Coding atau melakukan langkah-langkah teknis pemrograman
Untuk membangun pemrograman jaringan dengan Middleware CORBA-ORB, maka perlu dianalisa terlebih dahulu hal-hal yang diperlukan sebelum masuk ke langkah coding/pemrograman. Sesuai dengan tujuan yang ingin dibuat adalah aplikasi yang melakukan koneksi melalui ORB, dan bias menunjukkan aplikasi yang terpisah dan berbeda platform, maka bisa digambarkan sebagai berikut :
Dari gambar diatas terlihat bahwa ada 2 aplikasi yang jalan di dua platform pemrograman yang berbeda. Platform yang akan digunakan adalah Java-ORB dan Jac-ORB. 2 aplikasi tersebut juga akan diinstal pada platform sistem operasi yang berbeda. Sistem operasi yang akan digunakan adalah Linux untuk Jac-ORB dan Windows untuk Java-ORB.
Dua aplikasi itu pun berada pada mesin yang berbeda. Disisi lain client pun akan menggunakan platform yang berbeda dengan server-nya. Jika ingin mengakses Server Java-ORB, maka yang akan digunakan adalah ORB Name Product Bhs Pemrogrmn Licence JAVA ORB SUN MicroSystem Java Free VisiBroker Visigenic/Borland Java, C++, Delphi Evaluation JacORB Fu Berlin/XTRADyneJava Free MICO Mico.org/GPL Soft. C++ Free ISP Rusian Univ C++ Free ORBacus IONA Java, C++ Free OMNIORB OMNI Java, C++ Evaluation VBORB Visual Basic Free MTdORB Phyton Phyton Free. Aplikasi Client yang dibuat dengan JAC-ORB. Sedangkan jika client ingin mengakses aplikasi yang ada di platform JAC-ORB, maka akan digu nakan aplikasi client yang dibangun dengan Java-ORB.
3.2 Implementasi Pemrograman
Beberapa langkah yang harus dilakukan untuk membangun aplikasi sesuai dengan arsitektur diatas adalah :
1. Membuat bahasa definisi IDL
2. Membuat aplikasi Server
3. Membuat Aplikasi Client
4. Mengkompilasi semua class yang telah dibuat
Contoh kasus ini adalah program jumlah() dan kurang() untuk server Java-ORB dan program kali() dan bagi() untuk server JAC-ORB. Dua file tersebut kemudian dikompilasi dengan menggunakan IDL Compiler yang dimiliki oleh Java- ORB dan JAC-ORB.
Langkah berikutnya membuat aplikasi server untuk kedua ORB yang digunakan. Dua file server diatas sebelum diinstallkan di dua komputer server yang berbeda terlebih dulu di kompilasi. Karena secara default Client tidak bsa mengakses kedua server tersebut, maka langkah berikutnya adalah membuat aplikasi Client dengan CORBA (JAVA-ORB dan JAC-ORB) sebagai Middleware. Setelah CORBAdijalankan, Client dapat mengakses kedua server tersebut.
Hasil akhir dari percobaan ini adalah terbukti bahwa CORBA dapat menghubungkan server sebagai middleware yang berbeda platform dengan client.

4. PENUTUP
4.1  Kesimpulan
Kesimpulan yang diperoleh dari hasil penulisan makalah ini yaitu : Middleware CORBA-ORB bisa membangun dua buah sistem untuk bisa saling melakukan interoperasi. Kemudian Middleware CORBA-ORB juga sangat membantu untuk pengembangan skala program aplikasi. Dan kesimpulan yang terakhir Middleware CORBA-ORB dapat memudahkan untuk pengembangan tim developer.
Hal yang sangat menarik dari pemrograman dengan memanfaatkan middleware CORBA-ORB adalah isu tentang interoperasi, atau diistilahkan interoperabilitas. Isu ini memandang 2 sistem berbeda yang ingin melakukan komunikasi. Middleware CORBA-ORB bisa dijadikan suatu fasilitator untuk melakukan interoperasi itu. Middle ware CORBA-ORB juga bisa digunakan untuk penghubung dari banyak aplikasi yang berbeda platform bahasa pemrograman.
Isu yang lain yang juga terlibat dalam pemrograman middleware CORBA-ORB adalah masalah scalability. Isu ini dimaksudkan untuk penambahan / perluasan skala pengembangan aplikasi. Untuk membuat aplikasi jaringan client server tidak dibatasi dengan satu platform pemrograman saja tetapi bias lebih luas lagi dengan berbagai platform pemrograman.
Isu yang juga menarik adalah kemudahan pengembangan. Dengan sistem terpisah-pisah secara fisik maupun logika, maka tim developer bias dipecah-pecah secara mudah berdasarkan pemisahan itu. Ahli pemrograman Java bisa concern dengan aplikasi Java, ahli pemrograman C++ bisa concern dengan aplikasi C++, begitu juga programer Delphi dan lain-lainnya.

Daftar Pustaka
3.      Mahmoud H., Qusay , Distributed Programming With Java, Manning, 2000.
4.      Somantri, Maman, Pemrograman Lintas Bahasa Pemrograman dalam Arsitektur CORBA, Prosiding Seminar Nasional Teknologi Informasi, STTNAS Yogyakarta, Juni 2005.
5.      Somantri Maman. Konsep pemograman Jaringan dengan memanfaatkan jaringan Middleware ORB