Rabu, 30 Desember 2015

OSGi ( Open Services Gateway Initiative)

OSGi adalah sebuah rencana industri untuk sebuah cara standar untuk menghubungkan perangkat seperti perangkat rumah tangga dan keamanan sistem ke internet. Dengan standar tersebut, pengguna rumah bisa, sebagai contoh, menginstal sebuah sistem keamanan dan bisa mengubah dari satu pelayanan monitoring ke yang lainnya tanpa harus menginstal sebuah sistem baru yang menggunakan kabel dan perangkat lain. Si “Gerbang Layanan” akan menjadi sebuah server aplikasi di dalam sebuah komputer yang menjadi gerbang antara internet dan sebuah rumah atau perangkat bisnis jaringan kecil. OSGi berencana untuk menentukan aplikasi program antarmuka (API) untuk pemrogram untuk menggunakan untuk memungkinkan komunikasi dan kontrol antara penyedia layanan dan perangkat di dalam rumah atau jaringan bisnis kecil. OSGi API akan dibangun pada bahasa pemrograman Java. Program Java secara umum dapat berjalan pada platform sistem operasi komputer. OSGi adalah sebuah antarmuka pemrograman standar terbuka. Perubahan akan berkembang melalui "Java Community Process."

OSGi dimaksudkan untuk menghubungkan Jini baru "peralatan pintar", Bluetooth kelompok perangkat nirkabel, serta set-top box TV, modem kabel, sistem alarm, sistem manajemen energi, dan perangkat lain ke situs internet yang dapat digunakan untuk mengelola mereka dari jarak jauh dan interaktif. Layanan gerbang (SG) dimaksudkan untuk mengelola interkoneksi ini dengan "administrasi nol."

Di antara beberapa aplikasi perangkat ke-internet populer diharapkan menjadi pengukuran energi dan manajemen beban di rumah; sistem keamanan rumah yang pemilik rumah dapat memantau dan mengontrol jauh dari rumah; pemantauan terus menerus pasien perawatan dan perawatan di rumah penting; dan kegagalan prediksi pelaporan untuk peralatan rumah. OSGi spesifikasi akan dirancang untuk standar perumahan yang ada, seperti yang dari LonWorks (lihat kontrol jaringan), CAL, Cebus, Havi, dan lain-lain.

Kelompok awal perusahaan yang dibentuk inisiatif adalah: Alcatel, Cable & Wireless, Electricite de France, Enron Komunikasi, Ericcson, IBM, Lucent Technologies, Motorola, NCI, Nortel Networks, Oracle, Philips Electronics, Sun Microsystems, Sybase, dan Toshiba .

Manfaat dalam penerapan OSGi ini adalah:

• Programmer dapat mengupdate atau mengupgrade codingnya dengan mudah. Misalnya programmer membuat aplikasi dimana terdapat bug yang harus ditambal, programmer ini tidak perlu melakukan pengkodingan ulang dan mengganti aplikasi yang lama dengan aplikasi baru yang memakan waktu dan biaya yang besar untuk menambalnya (patching). Seperti cara inject (suntik) ke dalam program yang telah dibuat. Dan ini tidak merubah struktur program dan kinerja program tersebut.
• Dengan teknologi OSGi dapat menyatukan berbagai fungsi di dalam aplikasi. Misalnya seperti plug-in yang dapat menambahkan fungsi dalam aplikasi.
• Mudah dalam penerapan, terutama bagi tim yang membuat aplikasi tentunya tugas mereka berbeda. Ada yang membuat desain antar muka atau GUI, ada yang membuat coding jalan softwarenya, ada yang membuat keamanannya, dan lain sebagainya. Nah dari semuacoding yang telah dibuat ini kita dapat satukan dengan dan dibungkus dari komponen-komponen OSGi ini.
• Efisiensi biaya, dalam hal ini untuk pengembangan sebuah softwaredapat menekan biaya yang dikeluarkan dalam pemeliharaan software.


Implementasi OSGi

Teknologi OSGi sudah sangat banyak dikembangkan untuk berbagai macam keperluan dalam sehari hari maupun di bidang teknologi informasi dan industri serta di bidang ilmu komputer.

• Dalam kehidupan sehari-hari
Dikembangkan untuk mengendalikan alat-alat elektronik dalam rumah tangga dengan internet, yaitu dengan menghubungkan berbagaiframework OSGi ini untuk mengendalikan alat-alat rumah tangga yang bersifat elektronik. Hal ini dilakukan dengan berbagai protocol network yaitu Bluetooth, uPnP,HAVi, dan X10. Dengan bantuan Jinidan standart OSGi dari sun microsystem yaitu Java Embedded Server. Teknologi ini dinamakan home network dan Jini adalah salah satu standart untuk pembuatan home network yang berbasis Java.

• Teknologi dan industri
Dalam hal ini pengembangan OSGi dalam teknologi dan industri adalah untuk otomatisasi industri. Seperti otomatisnya sistem dalam gudang yang dapat meminta dalam PPIC untuk mengadakan bahan baku, dan masih banyak yang lain.

• Ilmu Komputer
Dalam ilmu Komputer ini sangat banyak pengembang yang memanfaatkan teknologi OSGi ini. Dari surfing di internet banyak yang mengulas tentang Pemrograman Java yang mengapdopsi teknologi OSGi ini. Salah satu contoh adalah knopflerfish merupakanframework untuk melakukan OSGi didalam program Java. Dan jugaeclipse IDE merupakan OSGi framework yang dikembangkan oleheclipse dan berbasis GUI. Dan masih banyak juga dalam server serta program-program lain yang mengembangkan teknologi OSGi ini.


Kelebihan OSGi

- Mengurangi Kompleksitas (Reduced Complexity)
Mengembangkan dengan teknologi OSGi berarti mengembangkan bundel: komponen OSGi. Bundel adalah modul. Mereka menyembunyikan internal dari bundel lain dan berkomunikasi melalui layanan didefinisikan dengan baik. Menyembunyikan internals berarti lebih banyak kebebasan untuk berubah nanti. Hal ini tidak hanya mengurangi jumlah bug, itu juga membuat kumpulan sederhana untuk berkembang karena bundel ukuran benar menerapkan sepotong fungsionalitas melalui interface didefinisikan dengan baik. Ada sebuah blog menarik yang menjelaskan teknologi OSGi apa yang mereka lakukan bagi proses pembangunan.

- Reuse
Para model komponen OSGi membuatnya sangat mudah untuk menggunakan banyak komponen pihak ketiga dalam suatu aplikasi. Peningkatan jumlah proyek-proyek sumber terbuka memberikan JAR’s mereka siap dibuat untuk OSGi. Namun, perpustakaan komersial juga menjadi tersedia sebagai bundel siap pakai.

- Real World
OSGI kerangka kerja yang dinamis. Ini dapat memperbarui bundel on the fly dan pelayanan yang datang dan pergi. Ini dapat menghemat dalam penulisan kode dan juga menyediakan visibilitas global, debugging tools, dan fungsionalitas lebihy daripada yang telah dilaksanakan selama satu solusi khusus.

- Easy Deployment
Teknologi OSGi bukan hanya sebuah standard untuk komponen, tapi juga menentukan bagaimana komponen diinstal dan dikelola. API telah digunakan oleh banyak berkas untuk menyediakan sebuah agen manajemen. Agen manajemen ini bisa sesederhana sebagai perintah shell, TR-69 sebuah protokol manajemen pengemudi, OMA DM protokol sopir, komputasi awan antarmuka untuk Amazon EC2, atau IBM Tivoli sistem manajemen. Manajemen standar API membuatnya sangat mudah untuk mengintegrasikan teknologi OSGi dalam sistem yang ada dan masa depan.


- Dynamic Updates
Model komponen OSGi adalah model dinamis. Kumpulan dapat diinstal, mulai, berhenti, diperbarui, dan dihapus tanpa menurunkan keseluruhan sistem. Banyak pengembang Java tidak percaya ini dapat dilakukan pada awalnya oleh karena itu tidak digunakan dalam produksi. Namun, setelah menggunakan ini dalam pembangunan selama beberapa waktu, sebagian besar mulai menyadari bahwa itu benar-benar bekerja dan secara signifikan mengurangi waktu penyebaran.

- Simple
The OSGi API sangat sederhana. API inti hanya terdiri dari satu paket dan kurang dari 30 kelas / interface. API inti ini cukup untuk menulis kumpulan, menginstalnya, start, stop, update, dan penghapus mereka dan mencakup semua pendengar dan keamanan kelas.

- Kecil (Small)
The OSGi Release 4 Framework dapat diimplementasikan kedalam JAR 300KB. Ini adalah overhead kecil untuk jumlah fungsi yang ditambahkan ke salah satu aplikasi dengan memasukkan OSGi. Oleh karena itu OSGi berjalan pada berbagai macam perangkat: dari sangat kecil, kecil, dan untuk mainframe. Hanya meminta Java VM minimal untuk menjalankan dan menambahkan sangat sedikit di atasnya.

- Cepat (Fast)
Salah satu tanggung jawab utama dari Framework OSGi memuat kelas-kelas dari bundel. Di Java tradisional, JARs benar-benar terlihat dan ditempatkan pada daftar linear. Pencarian sebuah kelas memerlukan pencarian melalui daftar ini. Sebaliknya, pra-kabel OSGi bundel dan tahu persis untuk setiap bundel bundel yang menyediakan kelas. Kurangnya pencarian yang signifikan faktor mempercepat saat startup.

Kelebihan OSGi lainnya :

1) Berjalan dimana saja dan digunakan secara luas.
2) Aman, sederhana dan tidak mengganggu kinerja aplikasi lainnya.
3) Ukurannya kecil dan Kinerjanya cepat.
4) Transparan dan Banyak versinya.
5) Simple : OSGi API sangat simple.
6) RealWorld : OSGi framework dinamik.
7) Dapat digunakan kembali.
8) Mengurangi kompleksitas.

Contoh kelebihannya :

· Programmer dapat mengupdate atau mengupgrade codingnya dengan mudah. Misalnya programmer membuat aplikasi dimana terdapat bug yang harus ditambal, programmer ini tidak perlu melakukan pengkodingan ulang dan mengganti aplikasi yang lama dengan aplikasi baru yang memakan waktu dan biaya yang besar untuk menambalnya (patching). Seperti cara inject (suntik) ke dalam program yang telah dibuat. Dan ini tidak merubah struktur program dan kinerja program tersebut.

· Dengan teknologi OSGi dapat menyatukan berbagai fungsi di dalam aplikasi. Misalnya seperti plug-in yang dapat menambahkan fungsi dalam aplikasi.

· Mudah dalam penerapan, terutama bagi tim yang membuat aplikasi tentunya tugas mereka berbeda. Ada yang membuat desain antar muka atau GUI, ada yang membuat coding jalan softwarenya, ada yang membuat keamanannya, dan lain sebagainya. Nah dari semuacoding yang telah dibuat ini kita dapat satukan dengan dan dibungkus dari komponen-komponen OSGi ini.

· Efisiensi biaya, dalam hal ini untuk pengembangan sebuah softwaredapat menekan biaya yang dikeluarkan dalam pemeliharaan software.


Kekurangan OSGi

Software kompleksitas meningkat pada tingkat yang mengkhawatirkan. Hari ini, sebagian besar kompleksitas ini disebabkan oleh siklus produk yang singkat, persyaratan untuk fungsi secara drastis meningkat, dan peningkatan jumlah variasi produk yang sama (misalnya hardware yang berbeda dan sistem operasi). Kecenderungan ini telah menyebabkan biaya perangkat lunak menjadi persentase lebih besar dari biaya pengembangan hampir semua produsen.

Hari ini, pengembangan perangkat lunak sebagian besar terdiri dari mengadaptasi ada fungsionalitas untuk tampil di lingkungan yang baru. Dalam 20 tahun terakhir, sejumlah besar blok bangunan standar telah tersedia dan mereka sering digunakan dalam produk hari ini, sebuah contoh utama adalah keberhasilan perangkat lunak terbuka. Namun, penggunaan pustaka ini bukan tanpa masalah. Mengintegrasikan berbagai perpustakaan bisa menakutkan karena banyak perpustakaan telah menjadi kompleks dan memerlukan perpustakaan mereka sendiri untuk fungsi - bahkan jika fungsi yang tidak pernah diperlukan untuk produk.

Tren ini membutuhkan produk perangkat lunak monolitik untuk menjalani siklus pengujian berat. Tambahkan evolusi tidak sinkron dari library yang berbeda dan itu menjadi jelas mengapa pengembangan perangkat lunak begitu mahal saat ini.

Sebuah isu kunci adalah software yang saat ini berfokus pada lingkungan menulis software baru, bukan mengintegrasikan perangkat lunak yang ada ke dalam sistem baru. Pada kenyataannya, mengintegrasikan kode yang ada telah menjadi bagian besar dari pekerjaan pengembang perangkat lunak. Oleh karena itu, ada kebutuhan untuk alat-alat yang standarisasi aspek integrasi dari perangkat lunak sehingga penggunaan kembali komponen yang ada menjadi handal, kuat dan murah.

Kekurangan OSGi lainnya :

1) Ruang lingkupnya sangat kecil
2) Keamanan kurang terjaga dari kejahatan hacker
3) Biaya sangat mahat untuk pembuatan aplikasi dari OSGi
4) Rawan terjadinya pencurian data
5) Ukuran penyimpanan yang sangat kecil untuk data yang di simpan

Contoh Kerugiannya :

- Dalam platform layanan OSGi, setiap bundel layanan operator gerbang memerlukan otentikasi pengguna . Dengan hasil tersebut, pengguna harus menyelesaikan otentikasi berulang-ulang setiap kali pengguna ingin mengakses beberapa sejumlah layanan . Hal ini menyebabkan masalah keamanan potensial serta sulitnya akses pengguna .

- Pertama-tama , masalah keamanan utama dengan lingkungan jaringan rumah berbasis pada platform layanan OSGi adalah bahwa infrastruktur keamanan didistribusikan dan arsitektur ini biasanya membutuhkan bahwa fitur kunci keamanan dibangun ke dalam semua bagian dari sistem .

- Selain itu, pengguna harus menghafal username dan password untuk setiap layanan . Selain itu , administrator sistem mengelola banyak password dalam database dan dihadapkan dengan potensi masalah sistem tidak aman karena transmisi sering password ini di lokasi. SSO ( Single Sign -On ) adalah alternatif yang baik untuk memecahkan masalah ini . SSO adalah fitur keamanan yang memungkinkan pengguna untuk login ke berbagai layanan yang berbeda yang ditawarkan oleh sistem terdistribusi sementara hanya perlu menyediakan otentikasi sekali , atau setidaknya selalu dengan cara yang sama.

Saran

Penggunaan OSGi untuk mempermudah hidup user, karena semuanya bisa dilakukan melalui smartphone yang notabene sudah dimiliki oleh kebanyakan orang. Namun disisi lain dari segi keaman, OSGi sendiri masih rentan terhadap serangan kejahatan, sehingga orang lain yang tidak mempunyai hak bisa mendapatkan akses. Kelemahan tersebut ditutupi dengan adanya sistem autentifikasi yang berlapis, namun dari segi kepraktisan hal itu malah menjadi merepotkan, malah bisa menjadi celah untuk diakses oleh orang yang tidak mempunyai hak. Di sisi lain, belum semua user bisa mengimplementasikannya, entah karena tidak mengerti, tidak mempunyai akses atau pun karena hal lainnya. Oleh sebab itu, OSGi masih perlu dikembangkan, seperti dalam hal keamanan, fitur login untuk setiap layanan, pengintegrasian ke dalam perangkat dan masih dibutuhkan sosialisasi untuk penggunaannya.


Sumber :
http://searchnetworking.techtarget.com/definition/Open-Service-Gateway-Initiative
https://irfanrahman.wordpress.com/2013/01/23/spesifikasi-arsitektur-open-service-gateway-initiative-osgi/
http://dokumen.tips/documents/microsoft-word-pengertian-osgi.html
http://dewiwindows.blogspot.co.id/2014/12/open-service-gateway-initiative.html