Sabtu, 29 November 2014

Tugas Pertemuan Ke-3 : Soal Tentang OSGI

Teknologi OSGi

Apa development platforms dan application frameworks?
Dalam kontek pengembangan software, suatu development platform adalah sekumpulan pustaka (libraries) dan alat bantu (tools) software yang membantu pengembangan komponen-komponen software, dan lingkungan runtime yang sesuai akan dapat menampung komponen-komponen yang dikembangkan, sebagaimana dapat dilihat pada gambar 1.

Gambar 1. Suatu platform pengembangan mencakup software framework dan lingkungan runtime yang mendukungnya.

Lingkungan runtime mencakup hardware, sistem operasi (OS), dan pustaka runtimeyang mendukungnya. Salah satu contoh lingkungan runtime adalah Java Runtime Environment (JRE), yang meliputi Java Virtual Machine (JVM) yang mengisolasi pengembang dari detil dasar OS dan hardware.
Software framework adalah jenis khusus dari pustaka dan alat bantu suatu development platform. Wikipedia mendefinisikan software framework sebagai suatu “abstraksi untuk menyediakan fungsionalitas generik yang dapat secara selektif dikhususkan untuk menyediakan fungsionalitas tertentu.”
Application framework adalah suatu jenis software framework yang bertujuan untuk menyediakan suatu struktur dalam membuat aplikasi software. Aplikasi adalah program yang memungkinkan pengguna untuk melakukan tugas-tugas yang terkait bersama-sama.


Gambar 2. Pengembang membuat suatu aplikasi, yang digunakan oleh pengguna, dan mengembangkan suatu framework.

Suatu development platform memungkinkan pengembang untuk membuat aplikasi-aplikasi dan menampung aplikasi-aplikasi ini untuk dapat digunakan oleh pengguna akhir, sebagaimana pada gambar 2. Software development platform juga disebut sebagaiSoftware Development Kits (SDKs).
Secara historis, development platform selalu memainkan peran impor dalam software.Java platform, yang dikenal sebagai Java Standard Edition (JSE), adalah salah satu contohnya. Dalam kasus ini, Java Development Kit (JDK) menyediakan softwareframework, dan Java Runtime Environment (JRE) menyediakan lingkungan runtime.
Open Service Gateway initiative (OSGi) Service Platform adalah contoh lain daridevelopment platform, yang menggunakan JRE sebagai lingkungan runtime-nya. Sebagai tambahan, OSGi menyediakan suatu application framework yang ditempatkan di lapisan atas JDK.
OSGi dibentuk Maret 1999 oleh suatu konsorsium perusahaan-perusahaan teknologi terkemuka dengan misi untuk mendefinisikan suatu platform integrasi untuk interoperabilitas aplikasi dan servis secara universal.
OSGi menyediakan platform pengembangan baru, berbasis pada modular decoupledcomponents dan model layanan dinamis plugable.

Domain masalah yang mendasari kehadiran OSGi
Masalah 1: Mengatasi pemrograman API yang beragam.
Masalah pertama adalah portabilitas. Dibutuhkan platform pemrograman tunggal yang mengabstraksi aplikasi dari OS dan hardware yang mendasari. Dengan kata lain, dibutuhkan suatu mesin virtual, tentu saja, Java bisa digunakan untuk memecahkan masalah ini dengan JVM-nya.
Masalah 2: Kemampuan perangkat yang bervariasi.
Platform universal harus memudahkan aplikasi untuk memisahkan kontrak layanan dari implementasi layanan. JSE  tidak memiliki layanan registri atau kerangka kerja manajemen layanan yang dapat membantu memecahkan masalah ini.
Masalah 3: Dukungan perubahan yang dinamis.
Platform harus memungkinkan deployment yang dinamis dan undeployment aplikasi yang aman. Apakah JSE memiliki dukungan untuk ini? Belum tentu. Mungkin pemecahan masalah ini bisa dengan Java class loaders, tapi tidak akan mudah, dan tidak ada cara sederhana untuk membongkar class saat telah dimuat, belum lagi bahwa tidak ada konsep application deployment unit. Konsep yang paling dekat denganapplication deployment unit adalah JAR  (Java Archives), tapi JAR sendiri tidak menyediakan semua metadata yang dibutuhkan, seperti skema penamaan yang unik untuk aplikasi.
Seperti masalah sebelumnya, kita dapat mengimplementasikan solusi kita sendiri untuk deployment aplikasi secara dinamis atau mencoba untuk memanfaatkan sesuatu dari JEE.
Masalah 4: Menyediakan sistem yang ringan.
Masalah terakhir,  apapun solusi yang dipilih, harus ringan. Memang layanan direktori seperti JNDI dari JEE bisa dimanfaatkan atau menggunakan arsitektur dari Web Server, tapi solusi ini akan gagal bila dihadapkan dengan kendala berdasarkan pada pertimbangan ukuran dan  memori perangkat terhadap platform, sehingga kurang cocok sebagai solusi dan bukan pilihan yang layak.
Solusi: Suatu sistem modul dinamis untuk JAVA
 Java bisa menangani masalah portabilitas, namun tidak memiliki dukungan yang tepat untuk manajemen layanan dinamis.
Dalam definisi yang paling singkat, OSGi Service Platform adalah sistem modul dinamis untuk Java. Dalam terminologi OSGi, modul Java disebut bundel. The OSGi ServicePlatform terdiri dari dua komponen utama, OSGi framework dan OSGi services, seperti yang ditunjukkan pada gambar 3.
Gambar 3. OSGi Service Platform terdiri dari OSGi framework dan OSGI services.

OSGi FRAMEWORK
OSGi framework menyediakan:
•           Sebuah lingkungan eksekusi portabel dan aman berbasis Java
•           Sebuah sistem manajemen pelayanan, yang dapat digunakan untuk mendaftar dan berbagi layanan di seluruh bundel dan memisahkan layanan penyedia dari layanan pengguna
•           Sebuah sistem modul dinamis, yang dapat digunakan untuk install dan uninstallmodul Java, yang disebut bundel di OSGi, secara dinamis.
•           Sebuah solusi ringan dan terukur
OSGi framework adalah struktur inti dari OSGi Service Platform. Jika diasumsikan bahwa sebuah bundel dapat menjadi sebuah aplikasi, maka definisi OSGi frameworkadalah sesuai dengan definisi tentang application frameworks. Artinya, OSGi frameworkadalah contoh dari sebuah application framework.

OSGi SERVICES
OSGI Service Platform mencakup beberapa layanan umum, dan layanan ini bisa dianggap sebagai aplikasi asli dari OSGi Service Platform. Beberapa layanan ini adalah fungsi-fungsi horisontal yang selalu dibutuhkan, seperti logging service danconfiguration service. Beberapa protokol terkait juga dicakup, seperti HTTP service, yang dapat digunakan oleh aplikasi berbasis web. Dan terakhir, OSGi Service Platform juga berisi layanan yang secara intrinsik terikat pada framework, yang berarti frameworktak bisa bekerja tanpa mereka, seperti bundle wiring, yang mengelola sistem modul dinamis itu sendiri, dan start-level service, yang mengelola proses bootstrap dariframework.

Enterprise OSGi
 Seperti dapat disimpulkan dari sejarah, OSGi awalnya digunakan pada pasar embedded. Tetapi dengan seiring dengan popularitas dan kedewasaan yang semakin meningkat, OSGi bergerak ke pasar enterprise. Untuk mengatasi kebutuhan ini, OSGi Enterprise Expert Group (EEG) membuat OSGi Service Platform Enterprise Specification (Enterprise OSGi). Spesifikasi ini menggabungkan layanan-layanan OSGi yang dapat digunakan secara selektif untuk menyediakan fungsionalitas perusahaan. Layanan-layanan ini dikelompokkan ke dalam fitur enterprise.
Gambar 4. Enterprise OSGi terdiri dari OSGi framework dan beberapa OSGi services, bersama-sama mereka menyediakan fitur enterprise.

Contoh fitur enterprise, seperti yang ditunjukkan pada gambar 4, adalah sebagai berikut:
ü  Manajemen dan konfigurasi – Kelompok ini mencakup layanan konfigurasi admin serta layanan JMX Management Model dan layanan Metatype.
ü  Distribusi – fitur ini memungkinkan komunikasi titik-titik akhir diantara remote instances dari  OSGi framework instances. Beberapa layanan dalam kelompok ini adalah Remote Service dan SCA Configuration Type.
ü  Akses data – fitur ini meliputi dukungan untuk JDBC, JPA, dan JTA.

Manfaat OSGI
1.      Mengurangi Kompleksitas (Reduced Complexity)
Mengembangkan dengan teknologi OSGi berarti mengembangkan bundel: komponen OSGi. Bundel adalah modul. Mereka menyembunyikan internal dari bundel lain danberkomunikasi 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 prosespembangunan
2.      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 jugamenjadi tersedia sebagai bundel siap pakai.
3.      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 lebih daripada yang telah dilaksanakan selama satu solusi khusus.
4.      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.
5.      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.
6.      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 menghapus mereka dan mencakup semua pendengar dan keamanan kelas.
7.      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.
8.      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 dan Kekurangan OSGI
Kelebihan :
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
Kekurangan :
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


SARAN :
   Dari uraian diatas kita dapat menyimpulkan dengan teknologi OSGI kita dapat mempermudah pekerjaan yang berkaitan dengan elektronik. Karena fungsi dari OSGI sendiri adalah menggabungkan berbagai fungsi salam satu aplikasi. Berjalan dimana saja dan digunakan secara luas. Aman, sederhana dan tidak mengganggu kinerja aplikasi lainnya.

Referensi :

Tidak ada komentar:

Posting Komentar