Selasa, 26 November 2013

JURNAL KONSEP PEMROGRAMAN JARINGAN DENGAN MEMANFAATKAN MIDDLEWARE ORB (OBJECT REQUEST BROKER )

UNIVERSITAS GUNADARMA
FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI




TUGAS PENGANTAR TELEMATIKA





            Nama & NPM             :  Herul Fitman Hermawan | 13110293
                                       Aditya Nurahman | 10110202
                                       Gendian Barran Permana | 12110971
            Fakultas                       :  Ilmu Komputer dan Teknologi Informasi
            Jurusan                        :  Sistem Informasi
            Kelas                           :  4KA11




Depok
2013

ABSTRAKSI

 Herul Fitman Hermawan | 13110293
Aditya Nurahman | 10110202
Gendian Barran Permana | 12110971
Tugas Pengantar Telematika. Jurusan Sistem Informasi, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Gunadarma, 2013
Kata Kunci : Middleware, Pengantar Telematika, Platform

(iii + 11 halaman)

Dalam pemrograman client server tingkat lanjut,adalah memungkinkan untuk membangun sebuahaplikasi dengan dasar platform pemrograman yang berbeda-beda. Dalam pemrograman jaringan biasa / konvesional, maka tidak akan mampu untuk mengkoneksikan dua atau lebih platform yang berbeda.
Untuk membangun aplikasi itu maka dibutuhkan sebuah lapisan yang bisa menghubungkan platform pemrograman yang berbeda, lapisan yang dimaksudkan adalah diistilahkan sebagai ‘middleware’. Middleware pada tataran implementasi merupakan sebuah paket program instan yang dipakai pada suatu platform permograman tertentu, sedangkan pada tataran konsep, middleware mer upakan sebuah lapisan untuk lalulintas penghubung komunikasi antar objek dari sistem yang berbeda. Ada beberapa jenis middleware, seperti ORB (Object Request Broker), RMI (Remote Method Invocation), dan MOM (Message Oriented Middleware).
Dalam tulisan ini akan dibahas tentang pemahaman dan tujuan umum dari middleware, lingkungan komputasi dari middleware, memahami kebutuhan middleware, serta mengenal contoh-contoh middleware.

Daftar Pustaka (2012-2013)





ii

DAFTAR ISI

Halaman
Halaman Judul.............................................................................................................................i
Abstraksi....................................................................................................................................ii
Daftar Isi...................................................................................................................................iii
Bab I  PENDAHULUAN...........................................................................................................1
1.1  Latar Belakang Masalah............................................................................................1
1.2  Batasan Masalah........................................................................................................1
1.3  Tujuan Penulisan........................................................................................................2
1.4  Metode Penelitian......................................................................................................2
Bab II TINJAUAN PUSTAKA..................................................................................................3
2.1 Middleware dan Enterprise ApplicationIntegration.................................................3
2.2 Middleware ORB dalam framework CORBA.........................................................3
2.3 Software CORBA-ORB...........................................................................................6
2.4 Interface Definition Language (IDL).......................................................................7
Bab III ANALISA DAN PEMBAHASAN................................................................................8
           3.1 Implementasi Pemrograman Jaringan Menggunakan Middleware CORBA-ORB...8
           3.2 Implementasi Pemrograman......................................................................................9
Bab IV PENUTUP...................................................................................................................10
           4.1 Kesimpulan..............................................................................................................10
DAFTAR PUSTAKA..............................................................................................................11

iii

I. 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

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

II. 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.
3

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).
4

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.



5

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.
6
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:





7
III. 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.
8
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.

9
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.






10
Daftar Pustaka

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


11


Open Service Gateway Initiative (OSGi)

Open Service Gateway Initiative (OSGi) adalah sebuah system dan aplikasi interoperability berbasis komponen platform yang terintegrasi. OSGi merupakan system modul dinamik untuk Java. Teknologi OSGi adalah Universal Middleware. Teknologi OSGi menyediakan sebuah service-oriented, lingkungan yang berbasis komponen untuk pengembang dan menawarkan jalan standard untuk mengatur siklus hidup software. Kemampuan ini dapat menambah nilai jangkauan dari computer dan peralatan yang menggunakan platform Java dengan sangat hebat. Teknologi OSGi mengadopsi keuntungan dari menambah time-to-market dan mengurangi biaya pengembangan karena teknologi OSGi menyediakan subsistem komponen yang terintegrasi dari pre-build dan pre-tested. Teknologi ini juga mengurangi biaya perawatan dan memberikan kesempatan aftermarket yang baru dan unik karena jaringan dapat digunakan untuk update secara dinamik dan mengirimkan service dan aplikasi di lapangan.


OSGi ARSITEKTUR
OSGi adalah sebuah set spesifikasi yang mendefinisikan sebuah komponen system dinamik untuk Java. Spesifikasi ini memungkinkan sebuah model pengembangan dimana aplikasi (secara dinamik) terdiri dari berbagai komponen yang berbeda. Spesifikasi OSGi memungkinkan komponen-komponennya untuk menyembunyikan implementasinya dari komponen lainnya ketika berkomunikasi melalui services dimana biasanya ketika hal ini berlangsung implementasi antar komponen dapat terlihat jelas. Model yang simple ini telah jauh mencapai efek dari segala aspek dari proses pengembangan software.
Lapisan OSGi
Model lapisan dari OSGi adalah sebagai berikut :

Definisi :
a.Bundles : bundles adalah komponen OSGi yang dibuat oleh pengembang/developer.
b.Services : lapisan service menghubungkan bundles dalam sebuah jalan dinamik dengan menawarkan model publish-find-bind untuk objek Java yang lama.
c.Life Cycle : API untuk menginstall, memulai, menghentikan, update dan menguninstall bundles.
d.Modules : lapisan yang menjelaskan bagaimana bundles dapat mengimport dan mengexport kode.
e.Security : Lapisan yang memegang aspek keamanan.
f.Execution Environment : menjelaskan class dan method apa yang ada di platform.

KEUNTUNGAN TEKNOLOGI OSGi
Menjelaskan teknologi OSGi kepada yang belum familiar dengan teknologi ini sangatlah sulit. Ada begitu banyak artikel yang menjelaskan teknologi OSGi tetapi hal itu masih belum bisa dimengerti oleh user yang benar-benar awam karena teknologi OSGi menyediakan solusi untuk permasalahan yang banyak orang menganggap bahwa maslah itu merupakan aspek instrinsik dari Java.
Permasalahan ini sebenarnya bukan masalah instrinsik dari Java dan teknologi OSGi dapat mengatasi itu semua. Alasan utama mengapa teknologi OSGi dapat sukses karena teknologi ini menyediakan komponen system yang benar-benar matang yang dapat bekerja di lingkungan yang sangat banyak jumlahnya. Komponen system yang biasa digunakan untuk membangun aplikasi yang tingkat kekompleksannya sangat tinggi seperti IDEs (Eclipse), aplikasi server (GlassFish, IBM Websphere, Oracle/BEA Weblogic, Jonas, JBoss), aplikasi framework (Spring, Guice), otomatisasi industry, telepon dan banyak lainnya.
Keuntungan dari teknologi OSGi antara lain adalah sebagai berikut :
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
11.Kinerjanya cepat
12.Malas : Malas dalam software itu berarti bagus. Teknologi OSGi mempunyai banyak mekanisme hanya ketika dibutuhkan saja.
13.Aman
14.Sederhana
15.Tidak Mengganggu Kinerja Aplikasi Lainnya
16.Berjalan dimana saja
17.Digunakan secara luas
18.Didukung Oleh Berbagai Perusahaan : OSGi juga didukung oleh berbagai perusahaan seperti Oracle, IBM, Samsung, Nokia, IONA, Motorola, NTT, Siemens, Hitachi, Deutsche Telekom, Redhat, Ericsson, dan masih banyak lagi.

Jika sedang mengembangkan Java maka teknologi OSGi merupakan langkah lanjut yang harus ditempuh karena teknologi OSGi dapat memecahkan masalah yang mungkin tidak akan terbayangkan sebelumnya. Keuntungan menggunakan teknologi OSGi yang begitu berguna jika kita menggunakan Java, maka sudah seharusnya teknologi OSGi masuk berada dalam kotak peralatan kita.

OSGi Specifications
OSGi Service Platform Release 4
OSGi Service Platform Release 4 was first released in October 2005. Version 4.1 was released in May 2007. Version 4.2 was released in September 2009.
-Errata
-API Javadoc
-XML Schemas

Sumber :
http://www.osgi.org/Specifications/HomePage