CLICK HERE FOR BLOGGER TEMPLATES AND MYSPACE LAYOUTS »

Jumat, 20 November 2009

Open Service Gateway Intiative (OSGI)

Manfaat Menggunakan OSGi

Menjelaskan teknologi OSGi kepada orang-orang asing dengan itu adalah sangat sulit. Ada banyak artikel di web yang agak kesal memberitahu Anda bahwa tidak ada penjelasan baik teknologi OSGi dan bahwa artikel akan memecahkan itu. Sayangnya, cukup sering artikel-artikel masih gagal untuk menjelaskannya kepada pendatang baru mutlak karena teknologi OSGi memberikan solusi untuk masalah-masalah yang banyak orang hanya lihat sebagai aspek-aspek intrinsik dari pengembangan perangkat lunak di Jawa dan menyebut mereka tidak akan masalah.

Yah, masalah ini tidak intrinsik dan teknologi OSGi memecahkan banyak dari mereka. Artikel ini mencoba untuk menjelaskan mengapa teknologi OSGi relevan dan mengapa pengembang perangkat lunak, serta orang-orang yang strategis, perlu diperhatikan. Beberapa orang mengatakan teknologi OSGi dirahasiakan terbaik dari industri komputasi. Mari kita mencoba untuk mengubah ini.

Alasan kunci teknologi OSGi saat ini begitu sukses adalah bahwa ia menyediakan komponen yang sangat dewasa sistem yang benar-benar bekerja dalam jumlah yang mengejutkan lingkungan. Sebuah sistem komponen yang benar-benar digunakan untuk membangun aplikasi yang sangat kompleks seperti IDE (Eclipse), aplikasi server (GlassFish, IBM Websphere, Oracle / BEA Weblogic, Jonas, JBoss), penerapan kerangka kerja (Spring, Guice), otomasi industri, perumahan gateway, telepon, dan banyak lagi.

Jadi, apa manfaat tidak OSGi 's sistem komponen memberikan Anda? Yah, cukup daftar:

  • Mengurangi Kompleksitas - Mengembangkan dengan teknologi OSGi berarti mengembangkan bundel: komponen yang OSGi. Adalah kumpulan 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 antarmuka yang didefinisikan dengan baik. Ada yang menarik blog yang menggambarkan teknologi OSGi apa yang mereka lakukan bagi proses pembangunan.
  • Reuse - Para model komponen OSGi membuatnya sangat mudah untuk menggunakan banyak komponen pihak ketiga dalam sebuah aplikasi. Peningkatan jumlah proyek-proyek sumber terbuka memberikan botol-botol 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 buntalan on the fly dan jasa bisa datang dan pergi. Pengembang digunakan untuk lebih tradisional Jawa 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 dunia nyata skenario yang cocok dengan model layanan yang dinamis ini. Oleh karena itu dapat menggunakan kembali aplikasi yang kuat dari layanan primitif registry (pendaftaran, mendapatkan, daftar filter dengan bahasa yang ekspresif, dan menunggu untuk layanan muncul dan menghilang) dalam domain mereka sendiri. Hal ini tidak hanya menghemat menulis kode, itu juga menyediakan visibilitas global, debugging tools, dan fungsionalitas lebih daripada yang telah dilaksanakan selama satu solusi khusus. Menulis kode pada lingkungan yang dinamis seperti terdengar seperti mimpi buruk, tetapi untungnya, ada dukungan kelas dan kerangka kerja yang mengambil sebagian besar, jika tidak semua, dari rasa sakit itu.
  • Easy Deployment - OSGi teknologi yang bukan hanya sebuah standar untuk komponen. 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, 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 - Para komponen OSGi model adalah model dinamis. Kumpulan dapat diinstal, mulai, berhenti, diperbarui, dan dihapus tanpa menurunkan keseluruhan sistem. Jawa Banyak pengembang tidak percaya ini dapat dilakukan pada awalnya dipercaya dan karena itu tidak menggunakan dalam produksi. Namun, setelah menggunakan ini dalam pembangunan selama beberapa waktu, sebagian besar mulai menyadari bahwa itu benar-benar bekerja dan secara signifikan mengurangi penyebaran kali.
  • Adaptif - Para model komponen OSGi dirancang dari bawah ke atas untuk mengizinkan pencampuran dan pemaduan komponen. Ini membutuhkan dependensi komponen perlu ditentukan dan membutuhkan komponen untuk hidup dalam lingkungan di mana mereka dependensi opsional tidak selalu tersedia. Layanan yang OSGi registri registri yang dinamis di mana kumpulan dapat mendaftar, mendapatkan, dan mendengarkan layanan. Model layanan dinamis ini memungkinkan kumpulan untuk mengetahui kemampuan apa yang tersedia di sistem dan menyesuaikan fungsi dapat mereka berikan. Hal ini membuat kode lebih fleksibel dan tahan terhadap perubahan.
  • Transparansi - Kumpulan dan jasa adalah warga negara kelas pertama di lingkungan OSGi. Manajemen API menyediakan akses ke keadaan internal seikat serta bagaimana terhubung ke kumpulan lain. Sebagai contoh, sebagian besar kerangka memberikan perintah shell yang menunjukkan keadaan internal ini. Bagian dari aplikasi dapat dihentikan untuk debug masalah tertentu, atau bundel diagnostik dapat dibawa masuk Bukannya menatap garis jutaan penebangan output dan reboot panjang kali, aplikasi OSGi sering dapat hidup debugged dengan perintah shell.
  • Versi - teknologi OSGi JAR menyelesaikan neraka. JAR neraka adalah masalah bahwa perpustakaan yang bekerja dengan perpustakaan B; versi = 2, tapi perpustakaan C hanya dapat bekerja dengan B; versi = 3. Dalam lingkungan OSGi, semua bundel secara hati-hati diversi dan hanya buntalan yang dapat berkolaborasi yang dihubungkan bersama di dalam ruang kelas yang sama. Hal ini memungkinkan kedua bundel A dan C untuk berfungsi dengan perpustakaan mereka sendiri. Meskipun tidak disarankan untuk merancang sistem dengan versi ini masalah, dapat menjadi penolong dalam beberapa kasus.
  • Kecil - The OSGi Release 4 Kerangka dapat diimplementasikan dalam tentang JAR 300KB. Ini adalah sebagian kecil overhead untuk jumlah fungsi yang ditambahkan ke salah satu aplikasi dengan memasukkan OSGi. OSGi karena itu 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 kerja OSGi memuat kelas-kelas dari bundel. Di Jawa tradisional, tong-tong benar-benar terlihat dan ditempatkan pada daftar linear. Pencarian sebuah kelas memerlukan pencarian melalui ini (sering sangat panjang, 150 tidak umum) daftar. Sebaliknya, pra-kabel OSGi bundel dan tahu persis untuk setiap bundel bundel yang menyediakan kelas. Kurangnya pencarian yang signifikan faktor mempercepat saat startup.
  • Malas - malas perangkat lunak yang baik dan teknologi telah banyak OSGi mekanisme tempat untuk melakukan sesuatu hanya bila mereka benar-benar diperlukan. Sebagai contoh, kumpulan dapat dimulai dengan penuh semangat, tetapi mereka juga dapat dikonfigurasi untuk hanya mulai 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 - Jawa memiliki yang sangat kuat model keamanan berbutir halus di bagian bawah tetapi memiliki ternyata sangat sulit untuk mengkonfigurasi dalam praktek. Hasilnya adalah bahwa aplikasi Java paling aman adalah berjalan dengan biner pilihan: tidak ada keamanan atau kemampuan yang sangat terbatas. Model keamanan yang OSGi memanfaatkan berbutir halus model keamanan tetapi meningkatkan kegunaan (serta pengerasan model asli) dengan memiliki pengembang bungkusan menentukan rincian keamanan yang diminta dalam bentuk yang mudah diaudit sementara lingkungan operator tetap bertanggung jawab sepenuhnya. Secara keseluruhan, kemungkinan OSGi memberikan salah satu aplikasi yang paling aman lingkungan yang masih dapat dipakai pendek dilindungi hardware platform komputasi.
  • Humble - Banyak kerangka mengambil alih seluruh VM, mereka hanya membolehkan satu contoh untuk berjalan dalam sebuah VM. Fleksibilitas dari spesifikasi OSGi ditunjukkan dengan bagaimana bahkan dapat dijalankan di dalam sebuah J2EE Application Server. Banyak pengembang ingin berlari OSGi tapi perusahaan mereka tidak memungkinkan mereka untuk menyebarkan guci normal. Sebaliknya, mereka termasuk sebuah kerangka OSGi dalam file dan dimuat War buntalan 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 karena alasan ini, tidak ada antarmuka khusus diperlukan untuk layanan OSGi, bahkan sebuah String Jawa objek dapat bertindak sebagai layanan OSGi. Strategi ini membuat kode aplikasi lebih mudah untuk port ke lingkungan lain.
  • Menjalankan Di mana-mana - Yah, itu tergantung. Tujuan asli Jawa untuk menjalankan mana-mana. Jelas, tidak mungkin untuk menjalankan semua kode di mana-mana karena kemampuan VMS Jawa berbeda. Sebuah VM pada ponsel kemungkinan akan tidak mendukung perpustakaan yang sama sebagai mainframe IBM menjalankan aplikasi perbankan.. Ada dua masalah untuk mengurus. Pertama, OSGi API seharusnya tidak menggunakan kelas-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 mengurus 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, mobile telephony, otomasi industri, gateway & router, pertukaran cabang pribadi, fixed line telepon, dan banyak lagi. Sejak 2003, yang 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. Gerhana 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 Application Server, Oracle (sebelumnya BEA) Weblogic, Sun GlassFish, dan Redhat's JBoss.
  • Didukung oleh Key Perusahaan - OSGi menghitung beberapa perusahaan komputer terbesar dari set yang beragam industri sebagai anggota. Anggota dari: Oracle, IBM, Samsung, Nokia, IONA, Motorola, NTT, Siemens, Hitachi, Deutsche Telekom, Redhat, Ericsson, dan banyak lagi.


OSGi spesifikasi yang dimulai pada tahun 1998 dan ditujukan untuk pasar otomatisasi rumah, berusaha untuk memecahkan masalah bagaimana membangun aplikasi dari komponen-komponen independen. Dalam dekade terakhir ini, industri perangkat lunak secara mendasar berubah karena ledakan di proyek sumber terbuka. Sepuluh tahun yang lalu, aplikasi sebagian besar terdiri atas kode yang ditulis secara khusus. Hari ini, sebagian besar sebagian besar perangkat lunak open source pengkabelan atas artefak yang sering tidak dirancang untuk bekerja bersama-sama. Ini adalah masalah yang serupa OSGi dirancang untuk memecahkan. Banyak proyek sumber terbuka Oleh karena itu, mengadopsi spesifikasi OSGi karena mereka melihat bahwa mereka dapat berfokus pada masalah nyata dan tidak terlalu khawatir tentang infrastruktur, serta menjadi lebih mudah untuk digunakan dalam proyek lainnya. Tren ini dipercepat.

Jika Anda mengembangkan software di Jawa maka teknologi OSGi harus menjadi langkah logis berikutnya karena memecahkan berbagai masalah yang mungkin Anda bahkan tidak menyadari dapat dipecahkan. Keuntungan dari teknologi OSGi begitu banyak sehingga jika Anda menggunakan Java, maka harus dalam OSGi alat dada Anda.

Sumber :

(http://www.osgi.org/)

0 komentar: