Jumat, 26 Desember 2014

open service gateway initiative (OSGi)


open service gateway initiative (OSGi)
OSGi untuk Pengembang
OSGi. Reuse komponen untuk membangun dan mengelola sistem yang sangat kompleks. Membuat kode lebih mudah untuk menulis, menguji dan menggunakan kembali. Mengelola penyebaran dinamis. Mendeteksi bug sebelumnya. Menyebarkan jarak jauh. Mendeteksi dan memecahkan masalah Anda mungkin tidak menyadari sekarang.
OSGi menyediakan arsitektur modular untuk skala besar sistem saat ini didistribusikan serta kecil, aplikasi tertanam dan jaringan perangkat. Membangun sistem dari dalam rumah dan off-the-rak modul secara signifikan meningkatkan penggunaan kembali produk perangkat lunak dan solusi dan meluas siklus hidup mereka, mengurangi biaya pengembangan dan pemeliharaan. Model pemrograman OSGi menyadari janji sistem berbasis komponen.
Teknologi OSGi berhasil karena memberikan sistem komponen yang sangat matang yang bekerja di sejumlah besar lingkungan. Sistem komponen OSGi digunakan untuk membangun aplikasi yang sangat kompleks seperti IDE, server aplikasi, kerangka aplikasi, telekomunikasi dan solusi layanan, otomasi industri, gateway perumahan, onboard, sistem telematika, dan banyak lagi.

BISNIS
Model modular dan dinamis OSGi mengurangi biaya operasional dan mengintegrasikan beberapa perangkat dalam lingkungan jaringan, menangani pengembangan aplikasi mahal, dan pemeliharaan.
Sistem komponen OSGi sebenarnya digunakan untuk membangun aplikasi yang sangat kompleks seperti IDE (Eclipse),
aplikasi server (GlassFish , IBM Websphere , Oracle / BEA Weblogic , Jonas , JBoss), kerangka aplikasi (musim semi , Guice), otomasi industri, gateway perumahan, telepon, dan banyak lagi.
Manfaat :
Mengurangi Kompleksitas - 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 internal 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 yang menarik blog yang menjelaskan apa teknologi OSGi lakukan untuk proses pembangunan mereka.
Reuse - Komponen OSGi Model membuatnya sangat mudah untuk menggunakan banyak komponen pihak ketiga dalam sebuah aplikasi. Peningkatan jumlah proyek open source menyediakan guci mereka siap dibuat untuk OSGi. Namun, perpustakaan komersial juga menjadi tersedia sebagai bundel siap dibuat.
Kerangka OSGi dinamis - Dunia nyata. Hal ini dapat memperbarui bundel dengan cepat dan layanan bisa datang dan pergi. Pengembang digunakan untuk lebih tradisional Java melihat ini sebagai fitur yang sangat bermasalah dan gagal untuk melihat keuntungan. Namun, ternyata bahwa dunia nyata sangat dinamis dan memiliki pelayanan yang dinamis bisa datang dan pergi membuat layanan yang cocok untuk banyak skenario dunia nyata. Sebagai contoh, sebuah layanan dapat model perangkat dalam jaringan. Jika perangkat terdeteksi, layanan terdaftar. Jika perangkat hilang, layanan ini tidak terdaftar. Ada sejumlah mengejutkan skenario dunia nyata yang cocok dengan model layanan yang dinamis ini. Aplikasi karena itu dapat menggunakan kembali primitif kuat dari layanan registri (mendaftar, mendapatkan, daftar filter dengan bahasa yang ekspresif, dan menunggu untuk layanan muncul dan menghilang) dalam domain mereka sendiri. Kode ini tidak hanya menghemat menulis, juga menyediakan visibilitas global, debugging tools, dan fungsionalitas lebih daripada yang telah dilaksanakan selama satu solusi khusus. Menulis kode dalam lingkungan yang dinamis terdengar seperti mimpi buruk, tapi untungnya, ada kelas dukungan dan kerangka kerja yang mengambil sebagian besar, jika tidak semua, dari rasa sakit dari itu.
Deployment mudah - Teknologi OSGi bukan hanya standar untuk komponen. Hal ini juga menentukan bagaimana komponen diinstal dan dikelola. API ini telah digunakan oleh banyak berkas untuk menyediakan sebuah agen manajemen. Agen manajemen ini bisa sesederhana sebagai perintah shell, sebuah TR-69 protokol manajemen pengemudi, OMA DM protokol sopir, awan komputasi 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.
Dinamis Update - Komponen OSGi model model dinamis. Bundel dapat diinstal, mulai, berhenti, diperbarui, dan dihapus tanpa menurunkan seluruh sistem. Banyak pengembang Java tidak percaya ini bisa dilakukan andal dan karena itu awalnya tidak menggunakan ini 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.
                Adaptive - Para model komponen OSGi dirancang dari bawah ke atas untuk memungkinkan 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. Layanan OSGi registri registri yang dinamis di mana kumpulan dapat mendaftar, mendapatkan, dan mendengarkan layanan. Model layanan yang dinamis ini memungkinkan bundel untuk mengetahui kemampuan apa yang tersedia pada sistem dan menyesuaikan fungsi mereka dapat menyediakan. Hal ini membuat kode lebih fleksibel dan tahan terhadap perubahan.
Transparansi - Kumpulan dan jasa adalah warga negara kelas satu di lingkungan OSGi. Manajemen API menyediakan akses ke keadaan internal bundel serta bagaimana terhubung ke kumpulan lain. Sebagai contoh, sebagian kerangka memberikan perintah shell yang menunjukkan keadaan internal ini. Bagian dari aplikasi dapat dihentikan untuk debug masalah tertentu, atau bundel diagnostik dapat dibawa dalam. Alih-alih menatap jutaan baris output logging dan reboot panjang kali, aplikasi OSGi sering dapat debugged dengan perintah shell hidup.
Versi - teknologi OSGi memecahkan JAR neraka. JAR neraka adalah masalah bahwa perpustakaan yang bekerja dengan perpustakaan B; versi = 2, tapi perpustakaan C hanya dapat bekerja dengan B; versi = 3. Di Java standar, Anda kurang beruntung. Dalam lingkungan OSGi, semua berkas secara hati-hati diversi dan hanya bundel yang dapat berkolaborasi secara kabel bersama-sama di ruang kelas yang sama. Hal ini memungkinkan kedua bundel A dan C berfungsi dengan perpustakaan mereka sendiri. Meskipun tidak disarankan untuk merancang sistem dengan masalah versi ini, dapat menjadi hidup hemat dalam beberapa kasus.
Sederhana - The OSGi API sangat sederhana. Inti API hanya satu paket dan kurang dari 30 kelas / interface. Inti API ini cukup untuk menulis kumpulan, menginstalnya, start, stop, update, dan menghapus mereka dan mencakup semua pendengar dan keamanan kelas. Ada sangat sedikit API yang menyediakan begitu banyak fungsi untuk begitu sedikit API.
Kecil - The OSGi Release 4 Kerangka dapat diimplementasikan dalam tentang file 300KB JAR. Ini adalah overhead kecil untuk jumlah fungsi yang ditambahkan ke aplikasi dengan memasukkan OSGi. Oleh karena itu OSGi berjalan pada berbagai macam perangkat: dari sangat kecil, kecil, untuk mainframe. Hanya meminta Java VM minimal untuk menjalankan dan menambahkan sangat sedikit di atasnya.
Cepat - Salah satu tanggung jawab utama dari kerangka OSGi memuat kelas-kelas dari bundel. Di Java tradisional, guci-benar terlihat dan ditempatkan pada daftar linear. Mencari kelas memerlukan pencarian melalui ini (sering sangat panjang, 150 tidak jarang) daftar. Sebaliknya, OSGi bundel-kabel pra dan tahu persis untuk setiap bundel bundel yang menyediakan kelas. Kurangnya pencarian adalah mempercepat faktor penting saat startup.
Malas - malas perangkat lunak yang baik dan teknologi OSGi memiliki banyak mekanisme untuk melakukan hal-hal hanya ketika mereka benar-benar dibutuhkan. Untuk contoh, bundel dapat dimulai dengan penuh semangat, tetapi mereka juga dapat dikonfigurasi untuk hanya dimulai ketika bundel lain menggunakan mereka. Layanan bisa didaftarkan tetapi hanya diciptakan ketika mereka digunakan. Spesifikasi telah dioptimalkan beberapa kali untuk memungkinkan semacam ini malas skenario yang dapat menghemat biaya runtime luar biasa.
Aman - Java memiliki model keamanan berbutir halus yang sangat kuat di bagian bawah tapi ternyata sangat sulit untuk mengkonfigurasi dalam praktek. Hasilnya adalah bahwa sebagian besar aplikasi Java aman berjalan dengan pilihan biner: tidak ada keamanan atau kemampuan yang sangat terbatas. Model keamanan OSGi memanfaatkan model keamanan berbutir halus tetapi meningkatkan kegunaan (serta pengerasan model asli) dengan memiliki pengembang bungkusan menentukan rincian keamanan yang diminta dalam bentuk yang mudah diaudit sementara operator lingkungan tetap bertanggung jawab sepenuhnya. Secara keseluruhan, kemungkinan OSGi menyediakan salah satu lingkungan aplikasi yang paling aman yang masih dapat dipakai pendek dilindungi hardware platform komputasi.
Humble - Banyak kerangka mengambil alih seluruh VM, mereka hanya memungkinkan satu contoh untuk dijalankan dalam VM. Fleksibilitas dari spesifikasi OSGi ditunjukkan oleh bagaimana bahkan dapat berjalan di dalam J2EE Application Server. Banyak pengembang ingin menjalankan OSGi tapi perusahaan mereka tidak memungkinkan mereka untuk menyebarkan guci normal. Sebaliknya, mereka termasuk kerangka OSGi dalam file WAR dan dimuat bundel mereka dari sistem file atau melalui jaringan. OSGi begitu fleksibel bahwa salah satu server aplikasi dapat dengan mudah host beberapa kerangka kerja OSGi.
Non intrusif - Aplikasi (bundel) di lingkungan OSGi diserahkan kepada mereka sendiri. Mereka dapat menggunakan hampir semua fasilitas VM tanpa OSGi membatasi mereka. Praktek terbaik dalam OSGi adalah menulis Plain Old Java Objects dan untuk alasan ini, tidak ada antarmuka khusus diperlukan untuk layanan OSGi, bahkan objek Java String dapat bertindak sebagai layanan OSGi. Strategi ini membuat kode aplikasi lebih mudah untuk port ke lingkungan lain.
Berjalan Di mana-mana - Yah, itu tergantung. Tujuan asli Java untuk dijalankan di mana saja. Jelas, tidak mungkin untuk menjalankan semua kode di mana-mana karena kemampuan VMS Java berbeda. Sebuah VM pada ponsel kemungkinan tidak akan mendukung perpustakaan yang sama sebagai mainframe IBM menjalankan aplikasi perbankan. Ada dua masalah untuk mengurus. Pertama, OSGi API seharusnya tidak menggunakan kelas yang tidak tersedia di semua lingkungan. Kedua, seikat seharusnya tidak dicoba jika itu berisi kode yang tidak tersedia di lingkungan eksekusi. Kedua isu ini telah diurus dalam spesifikasi OSGi.
Digunakan secara luas - The OSGi spesifikasi mulai keluar di pasar otomatisasi rumah tertanam tetapi sejak tahun 1998 mereka telah banyak digunakan di banyak industri: otomotif, telepon selular, otomasi industri, gateway & router, pertukaran cabang pribadi, fixed line telepon, dan banyak lagi. Sejak tahun 2003, sangat populer Eclipse Integrated Development Environment OSGi berjalan pada teknologi dan menyediakan dukungan luas bagi pembangunan bundel. Dalam beberapa tahun terakhir, OSGi telah diambil oleh perusahaan pengembang. Eclipse pengembang menemukan kekuatan teknologi OSGi tetapi juga Spring Framework membantu mempopulerkan teknologi ini dengan membuat ekstensi spesifik untuk OSGi. Hari ini, Anda dapat menemukan teknologi OSGi di fondasi IBM Websphere, SpringSource dm Server, Oracle (sebelumnya BEA) Weblogic, Sun GlassFish, dan Redhat yang JBoss.
Didukung oleh Perusahaan Kunci - OSGi menghitung beberapa perusahaan komputer terbesar dari set yang beragam industri sebagai yang anggotanya . Anggota berasal dari: Oracle, IBM, Samsung, Nokia, Progress, Motorola, NTT, Siemens, Hitachi, Deutsche Telekom, Redhat, Ericsson, dan banyak lagi.

Spesifikasi OSGi yang dimulai pada tahun 1998 dan ditujukan untuk pasar otomatisasi rumah, mencoba untuk memecahkan masalah bagaimana membangun aplikasi dari komponen independen. Dalam dekade terakhir ini, industri perangkat lunak secara fundamental berubah karena ledakan di proyek open source. Sepuluh tahun yang lalu, sebuah aplikasi terdiri kode sebagian besar khusus ditulis. Saat ini, sebagian besar perangkat lunak sebagian besar kabel sampai artefak open source yang sering tidak dirancang untuk bekerja bersama-sama. Hal ini mirip dengan masalah yang OSGi dirancang untuk memecahkan.

sumber :
www.osgi.org

Tidak ada komentar:

Posting Komentar