OSGi (Open Source Gateway Initiative)

OSGi (Open Source Gateway Initiative)

Ditulis kembali oleh : Rozaliyana

osgi

Brian Coyner mendefinisikan OSGi (Open source gateway initiative) sebagai sebuah platform untuk pengembangan dinamis, service-oriented applications. OSGI aplikasi dikembangkan untuk bahasa pemrograman java yang terhubung dengan perangkat berbasiskan jaringan seperti set-top boxes, mobile phone dan desktop.

Jadi apasih itu OSGi????

Sejarah OSGi dimulai pada tahun 1999 ketika embedded systems vendor yang notabenenya adalah non-profit oraganization bersama-sama membuat standar java-based service framework yang dapat dikelola dari jarak jauh.

Tujuan mereka adalah “How to let applications from different vendors work reliably together and share resources in an embedded/network computer”.

Gimana sih aplikasi dari berbagai vendor dapat bekerja dengan handal bersama-sama dan berbagi sumber daya dalam jaringan/komputer tertanam.”

Pada awalnya OSGi disusun sebagai gerbang (gateway) untuk mengelola aplikasi pintar dan perangkat-perangkat rumah yang terhubung dengan internet. Dimana perangkat-perangkat tersebut dapat dikelola dari jarak jauh. Jadi tujuannya dari adanya OSGi adalah untuk menciptakan sebuah middleware standar untuk perangkat cerdas dan membuat pengelolaan lintas-dependensi mudah bagi pengembang perangkat lunak.Organisasi OSGi saat ini dikenal sebagai OSGi Alliance yang memiliki alamat website www.OSGI.org. Dialamat ini kamu akan dapat mengetahui lebih lanjut tentang OSGi.

ARSITEKTUR OSGi

OSGi mendeskripsikan sebuah sistem modular dan sebuah layanan untuk Java programming yang diimplimentasikan sebuah componen model yang komplit dan dinamis, sesuatu yang tidak ada pada lingkungan standalone JAVA/VM . Framework yang mengimplementasikan OSGi menyediakan sebuah lingkungan untuk modularisasi aplikasi kedalam bentuk yang lebih kecil. Setiap bundle memiliki hubungan yang sangat erat serta memiliki kemampuan loadable dari kumpulan class, jars, dan konfigurasi file secara eksplisit yang dinamis.

LAYER

Layer OSGi memiliki model seperti dibawah ini.

layering-osgi

Berikut adalah penjelasannya.

Bundle
Merupakan komponen OSGi yang dibuat oleh pengembang. Bundle biasanya terdiri dari komponen-komponen seperti jar.

Services 
Lapisan servises menghubungkan bundle dengan cara yang dinamis dengan menwarkan publish-find-bind untuk Plain Old Java Interface (POJI) atau sekarang dikenal sebagai Plain Old Java Objects (POJO). Istilah ini menekankan bahwa Objek Java yang digunakan adalah Objek Java biasa.

Contoh POJO.

public class HelloWorldService {
 
    public String sayHello() {
        return "Hello, world!";
    }
}

Sedangkan Objek Khusus source kodenya seperti ini

public class Foo extends javax.servlet.http.HttpServlet { ...

atau

public class Bar implements javax.ejb.EntityBean { ...

Life-Cycle

Layer Life-Cycle menambahkan bundle yang dinamis untuk installasi, start, stopped, update dan uninstall. Bundle bergantung pada lapisan modul untuk class loading tetapi masih menambahkan API tu mengelola modules run time. Operasi pada Layer Life-Cycle sepenuhnya dilindungi arsitektur sekuriti, sehingga hampir tidak pernah terserang oleh virus.

Modules
Pada layer ini mendefinisikan bagaimana setiap bundle kode bisa import dan export. Modulariti adalah tentang hal-hal lokal dan tidak untuk sharing. Misalnya begini ada satu hal namun hal tersebut sulit untuk menjadi salah karena kamu tidak memiliki pengetahuan tentang hal itu dan tidak membuat asusmsi tentang hal tersebut intinya adalah ambigu. Nah untuk memperkecilkan digunakan sebuah bundle. Modularitas merupakan adalah inti dari spesifikasi OSGi yang diwujudkan dalam konsep bundle. OSGi menyembunyikan semuanya didalam JAR kecuali itu kodingan yang akan diexport atau diimport.

Security 
Sekuriti adalah layer yang berhubungan dengan keamanan dan membatasi fungsional bundle.

Execution Environment .
Mendefinisikan metode dan class yang tersedia pada paltform. Hal ini tergantung pada pengembangan versi-versi Java Enviromental. Saat ini ada beberapa set yang mendukung OSGi.

CDC-1.0/Foundation-1.0

CDC-1.1/Foundation-1.1

OSGi/Minimum-1.0

OSGi/Minimum-1.1

JRE-1.1

From J2SE-1.2 up to J2SE-1.6

OSGi Framework / OSGi Containers.

Selama bertahun-tahun, OSGi teknologi telah berkembang pada embedded systems dan network devices market (sistem dan perangkat jaringan tertanam). Sekarang eclipse merupakan framework OSGi yang saat ini layak dan berharga dalam pengembangn enterprise. Saat ini ada tiga OSGi containers yang populer.

Equinox

equino

Equinox adalah referensi implementasi untuk framework yang masih bagian dari layanan OSGi . Equinox adalah modular java runtime merupakan jantung dari Eclipse IDE, dan an melaksanakan semua wajib dan sebagian besar fitur opsional dari spesifikasi OSGi R4.

Knopflerfish

knopferlish

Open Source yang mengimplementasikan spesifikasi OSGi R3 dan OSGi R4 . Knopflerfish mengimplementasikan semua fitur wajib dan beberapa fitur opsional yang didefinisikan dalan R4 spesifikasi.

Website : www.knopflerfish.org.

Apache Felix

apache felix

merupakan OSGi container dari Apache Software Foundation.

Website. www.felix.apache.org

PELUANG DAN TANTANGAN PENGEMBANGAN OSGi

Dalam menjawab tantangan masa depan OSGi berusaha dalam mencapai misinya yaitu mengintegrasikan embedded-system/networking computer dari vendor yang berbeda sehingga dapat menjalankan aplikasi bersama.Seperti yang dikutip pada website OSGi.org , OSGi memberikan beberapa keuntungan dibawah ini.

Reduce Complexity (Mengurangi Kompleksitas).

Mengembangkan OSGi artinya adalah mengembangkan bundles OSGi komponen. Bundles itu sendiri adalah modular yang menyembunyikan bentuk internal dari bundle lain dan saling berkomunikasi dengan baik melalui layanan. Dengan tersembunyinya bentuk internal ini artinya dapat diubah kemudian yang akan mengurangi jumlah bugs tetapi juga membuat bundle lebih mudah di kembangkan.

Reuse

OSGi komponen model dapat digunakan kembali untuk bagian komponen ketiga didalam sebuah aplikasi.

Dynamic Updates

OSGi komponen model adalah model yang dinamis. Bundles bisa di install(installed), started, stopped, update, dan uninstalled tanpa merestart semua sistem.

Adaptive

model komponen OSGi didesain dari bawah ke atas untuk mengizinkan pencampuran dan pencocokan komponen. Ini membutuhkan dependensi komponen perlu ditentukan dan membutuhkan komponen untuk hidup dalam lingkungan di mana mereka dependensi opsional tidak selalu tersedia.

Simpe, Small,Fast

OSGi Api sangat simple, core API hanya ada satu paket dan kurang dari 30 classess/interface. Small (Kecil) karena OSGi terbaru direlease dan diimplementasi sekitar 300KB JAR File. Fast, Salah satu tanggung jawab utama dari kerangka OSGi memuat kelas-kelas dari bundel.

OSGI DIMASA DEPAN

Spesifikasi OSGi begitu luas berlaku karena platform adalah lapisan kecil yang memungkinkan komponen beberapa Java ™ berbasis efisien bekerja sama dalam satu Java Virtual Machine (JVM). Ini memberikan model keamanan yang luas sehingga komponen dapat berjalan dalam lingkungan terlindung. Namun, dengan izin yang tepat, komponen dapat digunakan kembali dan bekerja sama, tidak seperti lingkungan aplikasi Java lainnya. The OSGi Framework menyediakan array yang luas dari mekanisme untuk membuat kerjasama ini mungkin dan aman.

Kehadiran middleware berbasis teknologi OSGi dalam berbagai industri menciptakan pasar software besar untuk komponen software OSGi. Definisi kaku OSGi Service Platform memungkinkan komponen yang dapat berjalan di berbagai perangkat, mulai dari sangat kecil sampai yang sangat besar.

Adopsi spesifikasi OSGi karena itu dapat mengurangi biaya pengembangan perangkat lunak serta memberikan peluang bisnis baru.

TANTANGAN OSGi DIMASA DEPAN
Dalam perkembangan teknologi OSGi akan terdapat tantangan yang seringkali terjadi. Beberapa tantangan tersebut adalah :

Management Resource Management in OSGi environment.
Masalah OSGi adalah fi ne sistem modular yang dinamis yang memungkinkan banyak modul independen untuk hidup berdampingan dalam JVM tunggal .Mendukung tujuan bisnis yang menawarkan jasa pihak ke-3 di atas layanan supplier yang disediakan .TAPI: ada kebutuhan untuk melindungi platform terhadap buruk-ditulis / bundel berbahaya.

Security
Perkembangan malware yang semakin cepat dibendung dengan peningkatan pengamanan dalam aplikasi.

Integrasi Vendor Baru.
Adanya venfor pendatang baru memberikan tantangan OSGi agar dapat mengimplementasi dan mengintegarikan OSGi dengan teknologi baru.

Source

[1] Coyner,Brian. Open Services Gateway Initiative(OSGi).2006.”http://java.ociweb.com/javasig/knowledgebase/2006-02/index.html”. Akses 03 Januari 2015.

[2] Rouse, Margaret. OSGi(Open Services Gateway Initiative).2011.http://searchnetworking.techtarget.com/definition/OSGi. Akses 03 Januari 2015.

[3] Patil, Sunil. Hello, OSGi, Part 1: Bundles for beginners.2008.”http://www.javaworld.com/article/2077837/java-se/hello—osgi–part-1–bundles-for-beginners.html”.Akses 03 Januari 2015.

[4] wikipedia. OSGi. 2014. “http://en.wikipedia.org/wiki/OSGi#Architecture”. Akses 03 Januari 2015.

[5] OSGI spesifikasi .http://www.osgi.org/Specifications/HomePage

Leave a comment