Rabu, 04 Desember 2013

Penulisan 3 - Tulis 2



Sumber :

Proses Komunikasi JAVA berserta Virtual Machinenya

Java Community Process atau JCP, didirikan pada tahun 1998, merupakan sebuah proses formal yang memungkinkan pihak-pihak yang tertarik untuk terlibat dalam definisi versi dan fitur dari platform Java. Java dikembangkan mengacu pada standar yang ditentukan oleh komite didalam JCP (Java Community Process). Spesifikasi Java tidak sekedar fondasi VMnya, tetapi menyangkut hampir semua aspek, mulai dari mekanisme mengakses devices I/O, komponen pertukaran objek, sampai pengembangan container. JCP merupakan badan yang bertanggung jawab terhadap standar teknologi Java.
Bagi orang-orang yang bekerja atau terlibat dibidang teknologi, khususnya ilmu komputer, tentunya sudah tidak asing lagi dengan bahasa pemrograman java (Java Programming). Dengan berbagai kelebihan dan keunggulannya, java menjadi begitu populer dalam mengembangkan sebuah aplikasi. Bukan hanya aplikasi desktop, tetapi juga aplikasi mobile, enterprise, web (applet) dan sebagainya. Selain itu juga Java sangat fleksibel karena mendukung konsep multi platform dan yang terpenting Java bersifat open source (dikeluarkan oleh Sun Microsystems) sehingga dari waktu ke waktu bahasa Java dapat dikembangkan dengan sangat cepat melalui umpan balik yang diberikan oleh para user.
Mengingat kepopuleran dari Java ini, maka banyak terdapat komunitas-komunitas yang dapat memberikan umpan balik dalam mengembangkan bahasa Java. Komunitas ini dikenal dengan istilah Proses Komunitas Java (Java Community Process / JCP) yang didirikan pada tahun 1998, adalah mekanisme formal yang memungkinkan pihak yang berkepentingan untuk mengembangkan spesifikasi teknis standar untuk teknologi Java. Siapapun bisa menjadi Anggota JCP dengan mengisi formulir yang tersedia di situs JCP. Keanggotaan JCP untuk organisasi dan entitas komersial membutuhkan biaya tahunan tetapi bebas untuk individu.
JCP melibatkan penggunaan Permintaan Spesifikasi Java (Java Spesification Request / JSRs), yaitu dokumen formal yang menggambarkan spesifikasi yang diusulkan dan teknologi untuk menambah platform Java. Ulasan publik Formal JSRs akan muncul sebelum JSR menjadi final dan Komite Eksekutif JCP menilainya di atasnya. Sebuah JSR akhir menyediakan implementasi referensi yang merupakan implementasi bebas dari teknologi dalam bentuk kode sumber dan Kompatibilitas Kit Teknologi untuk memverifikasi API spesifikasi. Sebuah JSR menggambarkan JCP itu sendiri. Seperti tahun 2009 , JSR 215 menggambarkan versi sekarang (2.7) dari JCP.
Sebagai sebuah platform, Java memiliki dua buah bagian penting, yaitu Java Virtual Machine dan Java Application Programmig (Java Api).
Virtual Machine
Sekilas pengertian Mesin virtual (Virtual Machine) dalam ilmu komputer adalah implementasi perangkat lunak dari sebuah mesin komputer yang dapat menjalankan program sama seperti layaknya sebuah komputer asli. Sedangkan dalam konteks JVM merupakan mesin virtual yang digunakan secara khusus mengeksekusi berkas bytecode java. Bytecode java sendiri dihasilkan saat proses kompilasi file java berekstensi .java menjadi .class. Selain itu JVM merupakan perangkat lunak yang dikembangkan secara khusus agar terlepas dari ketergantungan atas perangkat keras serta sistem operasi tertentu. JVM menyediakan lingkungan kerja yang dibutuhkan untuk menjalankan aplikasi berbasis java serta mengotomatisasikan fitur-fitur seperti penanganan kesalahan.
Virtual machine (VM) adalah suatu environment, biasanya sebuah program atau system operasi, yang tidak ada secara fisik tetapi dijalankan dalam environment lain. Dalam konteks ini, VM disebut “guest” sementara environment yang menjalankannya disebut “host”. Ide dasar dari virtual machine adalah mengabtraksi perangkat keras dari satu komputer (CPU, memori, disk, dst) ke beberapa environment eksekusi, sehingga menciptakan illusi bahwa masing-masing environment menjalankan komputernya [terpisah] sendiri. VM muncul karena adanya keinginan untuk menjalankan banyak sistem operasi pada satu komputer.
Sebuah mesin virtual (VM) adalah sebuah perangkat lunak implementasi sebuah mesin (misalnya komputer) yang melaksanakan program-program seperti mesin fisik.
Mesin virtual dipisahkan ke dalam dua kategori utama, berdasarkan tingkat penggunaan dan korespondensi untuk mesin nyata. Sebuah sistem mesin virtual yang lengkap menyediakan platform sistem yang mendukung pelaksanaan lengkap sistem operasi (OS). Sebaliknya, mesin virtual sebuah proses yang dirancang untuk menjalankan sebuah program, yang berarti bahwa ia mendukung satu proses. Karakteristik penting dari sebuah mesin virtual yang berjalan di dalam perangkat lunak adalah terbatas pada sumber daya dan abstraksi yang disediakan oleh mesin virtual tidak dapat keluar dari dunia virtual.  
Salah satu penerapan penting dari teknologi VM adalah integrasi lintas platform. Beberapa penerapan lainnya yang penting adalah:
  • Konsolidasi server.
Jika beberapa server menjalankan aplikasi yang hanya memakan sedikit sumber daya, VM dapat digunakan untuk menggabungkan aplikasi-aplikasi tersebut sehingga berjalan pada satu server saja, walaupun aplikasi tersebut memerlukan sistem operasi yang berbeda-beda.
  • Otomasi dan konsolidasi lingkungan pengembangan dan testing.
Setiap VM dapat berperan sebagai lingkungan yang berbeda, ini memudahkan pengembang sehingga tidak perlu menyediakan lingkungan tersebut secara fisik.
  • Menjalankan perangkat lunak terdahulu.
Sistem operasi dan perangkat lunak terdahulu dapat dijalankan pada sistem yang lebih baru.
  • Memudahkan recovery sistem.
Solusi virtualisasi dapat dipakai untuk rencana recovery sistem yang memerlukan portabilitas dan fleksibilitas antar platform.
  • Demonstrasi perangkat lunak.
Dengan teknologi VM, sistem operasi yang bersih dan konfigurasinya dapat disediakan secara cepat.

Kelebihan Virtual Machine (VM):
  • Hal keamanan.
VM memiliki perlindungan yang lengkap pada berbagai sistem sumber daya, yaitu dengan meniadakan pembagian sumber daya secara langsung, sehingga tidak ada masalah proteksi dalam VM.
  • Memungkinkan untuk mendefinisikan suatu jaringan dari Virtual Machine (VM).
 Tiap-tiap bagian mengirim informasi melalui jaringan komunikasi virtual. Sekali lagi, jaringan dimodelkan setelah komunikasi fisik jaringan diimplementasikan pada perangkat lunak.

Kekurangan Virtual Machine (VM):
·         Sistem penyimpanan.
Sebagai contoh kesulitan dalam sistem penyimpanan adalah sebagai berikut: Andaikan kita mempunyai suatu mesin yang memiliki 3 disk drive namun ingin mendukung 7 VM. Keadaan ini jelas tidak memungkinkan bagi kita untuk dapat mengalokasikan setiap disk drive untuk tiap VM, karena perangkat lunak untuk mesin virtual sendiri akan membutuhkan ruang disk secara substansial untuk menyediakan memori virtual dan spooling.
  • Pengimplementasian sulit.
Meski konsep VM cukup baik, namun VM sulit diimplementasikan.

Gambar Java Virtual Machine Architectur

Application Programming

Sebuah application programming interface (API) adalah antarmuka bahwa sebuah program perangkat lunak alat untuk memungkinkan perangkat lunak lain untuk berinteraksi dengan itu, banyak cara yang sama seperti perangkat lunak mungkin akan mengimplementasikan antarmuka pengguna untuk memungkinkan manusia untuk menggunakannya. API dilaksanakan oleh aplikasi, perpustakaan dan sistem operasi untuk menentukan bagaimana perangkat lunak lain dapat membuat panggilan ke atau layanan permintaan dari mereka. Sebuah API menentukan kosa kata dan konvensi memanggil para pemrogram harus mempekerjakan untuk menggunakan layanan . Ini mungkin termasuk spesifikasi untuk rutinitas, struktur data, kelas objek, dan protokol yang digunakan untuk berkomunikasi antara konsumen dan pelaksana API.
API adalah seperangkat fungsi standar yang disediakan oleh OS atau Bahasa. Dalam Java, API dimasukkan ke dalam package-package yang sesuai dengan fungsinya. Platform Java sendiri terbagi menjadi 3 bagian utama, yaitu :
·      Java Standard Edition (SE), sebuah standar API untuk merancang aplikasi desktop dan applets dengan bahasa dasar yang mendukung grafis, keamanan, konektivitas basis data dan jaringan.
·   Java Enterprose Edition (EE), sebuah inisiatif API untuk merancang aplikasi server dengan mendukung penggunaan basis data.
·       Java Micro Edition (ME), sebuah API untuk merancang aplikasi yang berjalan pada perangkat kecil seperti telepon genggam.
Sehingga untuk masing-masing platform tersebut memiliki pustaka (library) APInya masing-masing yang digunakan untuk mengembangkan sebuah aplikasi. Cara untuk menggunakan API dalam java yaitu dengan melakukan import package atau class yang sudah tersedia dalam java. Contoh dari package Java antara lainI/O, String, Math, Utility, Swing dan sebagainya.

Gambar beberapa API pada Package Java

Stuktur Navigasi 2

Struktur Navigasi Penulisan 3 



Penulisan 3 - Tulis 1

Sumber :


Kolaborasi Antarmuka Otomotif Multimedia
Antarmuka Otomotif Multimedia Telematika yang dimaksud disini adalah Automotive Multimedia Interface Collaboration atau yang lebih dikenal dengan singkatan AMI-C, adalah suatu bentuk pengembangan dan standarisasi yang umum multimedia dan telematika otomotif untuk kendaraan antarmuka jaringan komunikasi.
 Adapun tujuan dari adanya AI-C ini adalah :
1.      Untuk menyediakan interface yang berstandar, sehingga memungkinkan seorang pengendara kendaraan (mobil) dapat menggunakan perangkat lain melalui berbagai media, komputer, perangkat komunikasi dari sistem navigasi dan handsfreeyang biasa digunakan pada telepon selular.
2.      Untuk meningkatkan berbagai macam pilihan yang dapat digunakan oleh user dan juga untuk mengurangi keusangan sistem elektronik kendaraan.
3.   Untuk memotong biaya yang dikeluarkan untuk keseluruhan informasi kendaraan dan juga peralatan hidubran dengan meningkatkan ukuran pasar yang efektif dan memperpendek waktu pengembangan  industri otomotif efektif. Karena banyak jumlah kendaraan yang sering mengandung berbagai adat mengembangkan komponen dan platfor yang khas hanya sekitar 50.000 unit.
4.      Untuk menawarkan standar terbuka dan spesifikasi bagi informasi interface dalam kendaraan dan antara kendaraan dengan dunia luar.

Pada dasarnya kolaborasi antarmuka otomotif multimedia itu sendiri adalah sebuah organisasi yang mana organisasi ini dibentuk guna menciptakan standarisasi dunia yang digunakan dalam mengatur bagaimana sebuah perangkat elektronik dapat bekerja sebagaimana yang diharapkan. Dimana setiap alat elektronik ini harus dapat bekerja dengan selaras sehingga kendaraan dapat lebih handal ketika digunakan. Sebelum memasang perangkat ini, alangkah baiknya untuk terlebih dahulu mencocokkan dengan jenis atau tipe kendaraan yang digunakan, karena pada dasarnya belum tentu perangkat yang akan dipasang akan selalu cocok dengan kendaraan yang digunakan, karena itulah perlu dibuat standarisasi kolaborasi antarmuka multimedia.

FUNGSIONAL KOLABORASI ANTARMUKA OTOMOTIF MULTIMEDIA
Fungsional Kolaborasi Antarmuka Otomotif Multimedia Telematika,sebelumnya menjelaskan pengertian dari kata-kata tersebut agar lebih jelas dan mudah dipahami. Sebuah organisasi yang dibentuk untuk menciptakan standarisasi dunia yang digunakan dalam mengatur bagaimana sebuah perangkat elektronik dapat bekerja disebut Kolaborasi Antar muka Otomotif Multimedia.

The Automotive Multimedia Interface Kolaborasi (AMIC) didirikan pada Oktober 1998 dengan tujuan untuk mengembangkan serangkaian spesifikasi umum untuk multimedia interface ke sistem elektronik kendaraan bermotor untuk mengakomodasi berbagai berbasis komputer perangkat elektronik di dalam kendaraan. Inisiatif ini-yang pendiri Daimler-Chrysler, Ford, General Motors, Renault dan Toyota – sekarang kelompok semua auto utama pembuat, dan dengan demikian menyediakan kesempatan strategis baru untuk mencapai suatu set umum industri mobil.

Automotive Multimedia Interface Collaboration (AMI-C) sudah memiliki anggota : Fiat, Ford, General Motors, Honda, Mitsubishi, Nissan, PSA Peugeot-Citroen, Renault. AMI-C mengembangkan dan men-standarisasi antarmuka multimedia dan telematika otomotif yang umum untuk jaringan komunikasi kendaraan.

STRUKTURAL KOLABORASI ANTARMUKA OTOMOTIF MULTIMEDIA
       Automotive Multimedia Interface Kolaborasi (AMIC) mengatakan akan menjadi tuan rumah tiga update internasional briefing untuk menjadi pemasok otomotif, komputer dan teknologi tinggi industri elektronik. Briefing akan diadakan 23 Februari di Frankfurt, Jerman; Februari 29 di Tokyo; dan Maret 9 di Detroit.
      “AMIC telah membuat suatu kemajuan yang signifikan dalam satu tahun terakhir ini dalam menyelesaikan struktur organisasi dan mencapai kesepakatan mengenai persyaratan yang diperlukan untuk hardware dan software baik di masa depan mobil dan truk,” Jurubicara AMIC Dave Acton berkata, “Dan sekarang sudah saatnya bagi kita untuk bertemu dengan pemasok dan mereka yang tertarik untuk menjadi pemasok untuk memastikan kami pindah ke tahap berikutnya pembangunan kita bersama-sama. “ 
       Acton menekankan bahwa AMIC terbuka untuk semua pemasok yang tertarik bisnis elektronik. AMIC dibentuk pada bulan September l998 dan saat ini dipimpin oleh 12 produsen otomotif dan anak perusahaan yang meliputi: BMW, DaimlerChrysler, Ford, Fiat, General Motors, Honda, Mitsubishi, Nissan, PSA / Peugeot-Citroen, Renault, Toyota, dan VW. Seorang juru bicara mengatakan kelompok AMIC berencana untuk mendirikan sebuah kantor di San Francisco di masa depan.
    Organisasi seperti Otomotif Kolaborasi Multimedia Interface (AMI-C) memiliki kesempatan untuk menjadi kekuatan pendorong di belakang upaya standardisasi. The Otomotif Multimedia Interface Collaboration (AMI-C) mengumumkan di seluruh dunia cipta penugasan dari 1394 spesifikasi teknis otomotif ke Trade Association 1394 AMI-Cberikut dokumen sekarang milik 1394TA:
  • AMI-C 3023 Power Management Specification
  • AMI-C 3013 Power Management Architecture
  • AMI-C 2002 1.0.2 Common Message Set Power Management
  • AMI-C 3034 Power Management Test Documents
  • AMI-C 4001 Revision Physical Speci .cation
Mengetahui bagaimana Arsitektur Kolaborasi Antarmuka Otomotif Multimedia
  • Pengertian dari Kolaborasi Antar muka Otomotif Multimedia adalah sebuah kelompok yang dibuat oleh pembuat untuk menciptakan standar umum yang digunakan untuk mengatur bagaimana cara kerja perangkat elektronik, seperti komputer dan hiburan unit, berkomunikasi dengan kendaraan. Automotive Multimedia Interface Collaboration (AMIC) mengatakan akan menjadi tuan rumah tiga update internasional briefing untuk menjadi pemasok otomotif, komputer dan teknologi tinggi industri elektronik. Briefing akan diadakan 23 Februari di Frankfurt, Jerman; Februari 29 di Tokyo; dan Maret 9 di Detroit.
  • “AMIC telah membuat suatu kemajuan yang signifikan dalam satu tahun terakhir ini dalam menyelesaikan struktur organisasi dan mencapai kesepakatan mengenai persyaratan yang diperlukan untuk hardware dan software baik di masa depan mobil dan truk,” Juru bicara AMIC Dave Acton berkata, “Dan sekarang sudah saatnya bagi kita untuk bertemu dengan pemasok dan mereka yang tertarik untuk menjadi pemasok untuk memastikan kami pindah ke tahap berikutnya pembangunan kita bersama-sama”. Acton menekankan bahwa AMIC terbuka untuk semua pemasok yang tertarik bisnis elektronik. AMIC dibentuk pada bulan September l998 dan saat ini dipimpin oleh 12 produsen otomotif dan anak perusahaan yang meliputi: BMW, Daimler-Chrysler, Ford, Fiat, General Motors, Honda, Mitsubishi, Nissan, PSA / Peugeot-Citroen, Renault, Toyota, dan VW. Seorang juru bicara mengatakan kelompok AMIC berencana untuk mendirikan sebuah kantor di San Francisco di masa depan.
  • Kolaborasi Antar muka Otomotif Multimedia adalah sebuah kelompok yang dibuat oleh pembuat (maker) untuk menciptakan standar umum yang digunakan untuk mengatur bagaimana cara kerja perangkat elektronik, seperti komputer dan hiburan unit, berkomunikasi dengan kendaraan. Memiliki anggota: Fiat, Ford, General Motors, Honda, Mitsubishi, Nissan, PSA Peugeot-Citroen, Renault. Sedangkan pengertian AMI-C adalah organisasi global yang mewakili mayoritas dunia produksi kendaraan.

Penulisan 3 - Tulis 3



Sumber :

Open Service Gateway Initiatif
OSGi merupakan suatu layanan untuk membuka jembatan dari berbagai jalan. Maksudnya adalah OSGi merupakan suatu teknologi dimana dapat menggabungkan berbagai fungsi dalam satu tujuan atau aplikasi atau suatu cara untuk menggabungkan berbagai bagian-bagian dimana bagian-bagian tersebut telah menjadi sebuah aplikasi yang dapat digunakan dengan berbagai macam kegunaan. Sebenarnya teknologi ini berawal dari suatu pemikiran bagaimana cara mengubah program tanpa membongkar coding. Kemudian dari sanalah teknologi ini mulai dikembangkan dalam bahasa pemrograman mulai dari instalasi, jalannya program, update dan sampai uninstall tanpa perlu memperbarui coding. 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 semua coding yang telah dibuat ini kita dapat satukan dengan dan dibungkus dari komponen-komponen OSGi ini.
      Efisiensi biaya, dalam hal ini untuk pengembangan sebuah software dapat 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 berbagai framework 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 Jini dan 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 industry
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 merupakan framework untuk melakukan OSGi didalam program Java. Dan juga eclipse IDE merupakan OSGi framework yang dikembangkan oleh eclipse dan berbasis GUI. Dan masih banyak juga dalam server serta program-program lain yang mengembangkan teknologi OSGi ini.
 
Adapun siklus hidup OSGi yang digambarkan dibawah ini:



Sedangkan Sistem Layer OSGi, sebagai berikut:



Arsitektur OSGi
            Teknologi OSGi adalah seperangkat spesifikasi yang mendefinisikan sistem komponen dinamis untuk Java. Spesifikasi ini memungkinkan suatu model pengembangan aplikasi dimana terdiri dari banyak perbedaan komponen. Spesifikasi yang memungkinkan komponen OSGi untuk menyembunyikan implementasi dari komponen lain saat berkomunikasi melalui layanan, yang merupakan objek yang secara khusus dibagi antar komponen. OSGi adalah teknologi pertama yang benar-benar berhasil dengan sistem komponen yang memecahkan banyak masalah nyata dalam pengembangan perangkat lunak. Teknologi OSGi diciptakan untuk sebuah lingkungan perangkat lunak kolaboratif.

Struktur OSGi
Struktur OSGi digambarkan melalui model layar (layer) yang berlapis-lapis, sebagai berikut:



Setiap kerangka yang menerapkan standar OSGi menyediakan suatu lingkungan untuk modularisasi aplikasi ke dalam kumpulan yang lebih kecil. Setiap bundel adalah erat-coupled, dynamically loadable kelas koleksi, botol, dan file-file konfigurasi yang secara eksplisit menyatakan dependensi eksternal mereka (jika ada).  Kerangka kerja konseptual yang dibagi dalam bidang-bidang berikut:
            Bundles
Bundles adalah normal jar komponen dengan nyata tambahan header
            Services
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek (POJO).
            Services
API untuk jasa manajemen (ServiceRegistration, ServiceTracker dan ServiceReference).
            Life-Cycle
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall) bundel.
            Modules
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).
            Security
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.
            Execution Environment
Mendefinisikan metode dan kelas apa yang tersedia dalam platform tertentuTidak ada daftar tetap eksekusi lingkungan, karena dapat berubah sebagai Java Community Process menciptakan versi baru dan edisi Jawa. Namun, set berikut saat ini didukung oleh sebagian besar OSGi implementasi:

•    CDC-1.1/Foundation-1.1 CDC-1.1/Foundation-1.1
•    OSGi/Minimum-1.0 OSGi/Minimum-1.0
•    OSGi/Minimum-1.1 OSGi/Minimum-1.1
•    JRE-1.1 JRE-1.1
•    From J2SE-1.2 up to J2SE-1.6 Dari J2SE-1.2 hingga J2SE-1,6
•    CDC-1.0/Foundation-1.0 CDC-1.0/Foundation-1.0

Spesifikasi OSGi
            Spesifikasi OSGi membutuhkan referensi spesifikasi implementasi untuk masing-masing aspek. Namun, karena spesifikasi pertama selalu ada perusahaan komersial yang telah menerapkan spesifikasi serta implementasi open source. Saat ini, terdapat 4 open source implementasi dari kerangka dan terlalu banyak untuk menghitung implementasi dari layanan OSGi. Industri perangkat lunak yang terbuka telah menemukan teknologi OSGi dan semakin banyak proyek artefak menyampaikan sebagai kumpulan.
Spesifikasi OSGi secara matang dan komprehensif memberikan model komponen yang sangat efektif melalui API. Mengkonversi monolitik atau plugin yang ditanam untuk sistem berbasis OSGi hampir selalu memberikan peningkatan besar dalam keseluruhan proses pengembangan software.
OSGi spesifikasi yang dimulai pada tahun 1998 dan ditujukan untuk pasar otomatisasi rumah, berusaha untuk memecahkan masalah dan 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 sesuai dengan OSGi yang dirancang untuk memecahkannya. Banyak proyek mengadopsi spesifikasi OSGi karena mereka melihat bahwa OSGi dapat berfokus pada masalah nyata dan tidak terlalu khawatir tentang infrastruktur, serta menjadi lebih mudah untuk digunakan dalam proyek lainnya.
Manfaat 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 lebih 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 menghapus 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.