Open Service Gateway Initiative (OSGI)
OSGi teknologi
adalah sistem modul dinamis untuk Java ™ Teknologi OSGi Universal
Middleware. OSGi teknologi menyediakan layanan berorientasi, komponen berbasis
lingkungan untuk para pengembang dan menawarkan cara-cara standar untuk
mengelola siklus hidup perangkat lunak. Kemampuan ini sangat meningkatkan nilai
berbagai komputer dan perangkat yang menggunakan platform Java.
Dibentuk pada tahun 1999, Aliansi
OSGi awalnya berfokus pada solusi untuk Embedded Jawa dan perangkat jaringan
pasar. Akibatnya teknologi OSGi telah diterapkan dan digunakan dalam produk dan
solusi di seluruh dunia dan di berbagai pasar. Saat ini, teknologi OSGi juga
menikmati penerimaan luas dalam komunitas Open Source, seperti yang ditunjukkan
oleh Apache Derby Felix dan proyek-proyek, Eclipse Callisto, Equinox dan
proyek-proyek Corona, OSCAR, Knopflerfish, dan lain-lain. Akibatnya inti
teknologi OSGi kini semakin lazim di Enterprise, dan juga dipandang sebagai
komponen kunci dari generasi berikutnya Layanan Java Platform dinamis yang
memungkinkan penggelaran layanan Web 2.0 dan mashup.
Pengadopsi teknologi OSGI mendapat
manfaat dari peningkatan waktu ke pasar dan mengurangi biaya pengembangan
karena teknologi OSGi menyediakan integrasi pra-dibangun dan pra-komponen
subsistem diuji. Teknologi ini juga mengurangi biaya pemeliharaan dan kemajuan
aftermarket baru peluang unik karena jaringan dapat dimanfaatkan untuk secara
dinamis mengupdate atau memberikan layanan dan aplikasi di lapangan.
Spesifikasi
OSGi License, Versi 1.0.
The OSGi Alliance ( “OSGi Alliance”) dengan ini memberikan kepada Anda dibayar
penuh, non-eksklusif, tidak dapat dialihkan, di seluruh dunia, lisensi terbatas
(tanpa hak untuk mensublisensikan), di bawah Aliansi OSGi hak kekayaan
intelektual yang berlaku untuk melihat, mendownload, dan mereproduksi OSGi
Spesifikasi ( “Spesifikasi”) yang mengikuti Perjanjian Lisensi ini (
“Perjanjian”). Anda tidak diizinkan untuk menciptakan karya turunan dari
Spesifikasi. OSGi Alliance yang juga memberikan kepada Anda terus-menerus,
non-eksklusif, di seluruh dunia, disetor penuh, bebas royalti, lisensi terbatas
(tanpa hak untuk mensublisensikan) di bawah hak cipta yang berlaku, untuk
menciptakan dan / atau mendistribusikan pelaksanaan Spesifikasi bahwa: (i)
benar-benar mengimplementasikan Spesifikasi termasuk semua antarmuka dan
fungsionalitas yang diperlukan, (ii) tidak mengubah, subset, superset atau memperpanjang
Nama OSGi Space, atau menyertakan publik atau dilindungi setiap paket, kelas,
Jawa antarmuka, ladang atau metode dalam Ruang Nama yang OSGi selain yang
dibutuhkan dan disahkan oleh Spesifikasi. Penerapan yang tidak memuaskan
keterbatasan (i) – (ii) tidak dianggap sebagai pelaksanaan Spesifikasi, tidak
mendapatkan keuntungan dari lisensi ini, dan tidak boleh digambarkan sebagai
pelaksanaan Spesifikasi. Sebuah pelaksanaan Spesifikasi tidak boleh mengklaim
sebagai pelaksanaan sesuai Spesifikasi kecuali melewati Pengujian Kepatuhan
Aliansi OSGi untuk Spesifikasi sesuai dengan proses OSGi Alliance. “Nama OSGi
Space” akan berarti kelas publik atau deklarasi interface yang namanya dimulai
dengan “org.osgi” diakui atau penggantinya atau penggantian daripadanya.
Arsitektur
OSGI
Teknologi yang di gunakan OSGI
adalah seperangkat spesifikasi yang mendefinisikan sistem komponen dinamis
untuk Java. Spesifikasi ini memungkinkan suatu model pengembangan aplikasi di
mana (dinamis) terdiri dari banyak berbeda (reusable) komponen. Spesifikasi
yang memungkinkan komponen OSGi untuk menyembunyikan implementasi dari komponen
lain saat berkomunikasi melalui layanan, yang merupakan objek yang secara
khusus dibagi antara komponen. Mengherankan model sederhana ini telah mencapai
jauh efek untuk hampir semua aspek dari proses pengembangan perangkat
lunak. Meskipun komponen telah di cakrawala untuk waktu yang lama, sejauh
ini mereka gagal untuk membuat baik pada janji-janji mereka. OSGi adalah
teknologi pertama yang benar-benar berhasil dengan sistem komponen yang
memecahkan banyak masalah nyata dalam pengembangan software. Adopter dari
teknologi OSGi melihat kerumitan berkurang secara signifikan di hampir semua
aspek pembangunan. Kode lebih mudah untuk menulis dan menguji, menggunakan
kembali meningkat, membangun sistem menjadi sangat sederhana, penyebaran lebih
mudah dikelola, bug terdeteksi lebih awal, dan runtime memberikan wawasan yang
sangat besar apa yang sedang berjalan. Paling penting, ia bekerja seperti yang
dibuktikan oleh adopsi yang luas dan populer digunakan dalam aplikasi seperti
Eclipse dan Spring. Teknologi OSGi dibuat untuk menciptakan sebuah
lingkungan perangkat lunak kolaboratif. Kami tidak mencari kemungkinan untuk
menjalankan beberapa aplikasi dalam satu VM. Aplikasi server sudah melakukan
itu (walaupun mereka belum sekitar ketika kita mulai tahun 1998). Tidak,
masalah kita lebih sulit. Kami ingin aplikasi yang muncul dari menyatukan
berbagai komponen dapat digunakan kembali yang tidak memiliki pengetahuan a-priori
satu sama lain. Bahkan lebih keras, kita ingin bahwa aplikasi untuk merakit
secara dinamis muncul dari seperangkat komponen. Sebagai contoh, Anda memiliki
rumah server yang mampu mengelola lampu dan peralatan Anda. Sebuah komponen
dapat memungkinkan Anda untuk menghidupkan dan mematikan lampu di atas halaman
web. Komponen lain bisa memungkinkan Anda untuk mengontrol peralatan mobile
melalui pesan teks. Tujuannya adalah untuk mengizinkan fungsi-fungsi lain
tersebut akan ditambahkan tanpa memerlukan bahwa pengembang telah rumit
pengetahuan satu sama lain dan membiarkan komponen ini akan ditambahkan secara
independen.
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
Penerapan
OSGI (Open Service Gateaway Initiative)
Merupakan
serangkaian spesifikasi yang mendefinisikan sebuah sistem komponen dinamik
untuk Java. Spesifikasi ini memungkinkan sebuah model pengembangan dimana
aplikasi (secara dinamis) disusun dari bermacam komponen (yang dapat digunakan
ulang) berbeda. Spesifikasi OSGi memungkinkan komponen untuk menyembunyikan
implementasi mereka dari komponen lainnya sementara berkomunikasi menggunakan
service, dimana objeknya secara khusus dibagi diantara komponen. Model
sederhana ini secara mengejutkan telah mencapai efek untuk hampir semua aspek
dari proses pengembangan perangkat lunak. OSGi merupakan teknologi pertama yang
berhasil memecahkan masalah-masalah nyata dalam pengembangan perangkat lunak
dengan menggunakan sebuah komponen sistem. Pengguna teknologi OSGi melihat
pengurangan kompleksitas yang signifikan hampir dalam semua aspek pengembangan
perangkat lunak. Kode program yang lebih mudah ditulis dan diuji, dapat dipakai
ulang, membangun sistem menjadi lebih mudah, pembukaan yang lebih dapat diatur,
bugs yang dapat dideteksi lebih cepat dan runtime yang menyediakan sebuah tanda
yang memberitahu apa yang sedang berjalan.
Virtualization
Virtualization adalah penciptaan
sebuah versi virtual (bukan sebenarnya) suatu entitas, seperti sistem
operasi, server, perangkat penyimpanan atau sumber daya jaringan. -
beberapa macam virtualisasi:
Virtualisasi sistem operasi –
penggunaan perangkat lunak untuk memungkinkan satu perangkat keras untuk
menjalankan beberapa sistem operasi pada saat yang sama. Teknologi ini
dimulai pada mainframe beberapa dekade yang lalu agar administrator untuk
menghindari pemborosan daya proses mahal atau dengan kata lain meningkatkan
efisiensi.
Pada tahun 2005, perangkat lunak
virtualisasi diadopsi lebih cepat daripada yang dibayangkan, termasuk para
ahli. Tiga bidang IT di mana virtualisasi paling berkembang adalah
virtualisasi jaringan, virtualisasi penyimpanan dan virtualisasi server:
Virtualisasi jaringan (Network
virtualization) adalah metode menggabungkan sumber daya yang tersedia dalam
jaringan dengan cara membagi bandwidth yang tersedia ke dalam beberapa channel,
yang masing-masing saling independen satu dengan yang yang lain, dan masing-masing
yang dapat ditugasi (atau dialih-tugaskan) ke dalam beberapa server atau
perangkat secara real time. Idenya adalah bahwa virtualisasi menyembunyikan
kompleksitas jaringan dengan cara membagi jaringan menjadi bagian-bagian lebih
mudah dikelola, sangat mirip dengan konsep mempartisi harddisk untuk memudahkan
untuk pengelolaan file.
Virtualisasi penyimpanan adalah
penggabungan penyimpanan fisik dari jaringan beberapa perangkat penyimpanan ke
dalam apa yang tampaknya menjadi satu perangkat penyimpanan yang dikelola
oleh konsol pusat Penyimpanan virtualisasi yang umum digunakan di
storage area networks (SAN).
Virtualisasi server (Server
virtualization) adalah penyembunyian sumber daya server (termasuk jumlah dan
identitas individu server fisik, prosesor, dan sistem operasi) dari server
pengguna. Tujuannya adalah untuk menghindarkan pengguna dari keharusan untuk
memahami dan mengatur rincian rumit sumber daya server dengan tetap
memungkinkan resource sharing untuk meningkatkan pemanfaatan sumber daya dan
memelihara kapasitas untuk expansion.
Virtualisasi dapat dilihat sebagai
bagian dari trend secara keseluruhan di perusahaan IT yang meliputi autonomic
computing, sebuah skenario di mana lingkungan TI akan mampu mengelola dirinya
sendiri didasarkan pada aktivitas yang dihadapi, dan utility computing, di mana
kekuatan pemrosesan komputer dianggap sebagai utilitas yang hanya dibayar oleh
klien jika diperlukan atau digunakan. Tujuan umum virtualisasi adalah
sentralisasi tugas administratif dengan dan meningkatkan skalabilitas dan beban
kerja.
Contoh software:
1.
VMware,
2.
Xen,
3.
Citrix,
4.
KVM,
5.
virtual-box,
6.
Solaris Zones,
7.
dll.
Application
Programming Interface (API)
Application Programming
Interface adalah sekumpulan perintah, fungsi, komponen, dan protokol yang
disediakan oleh sistem operasi ataupun bahasa pemrograman tertentu yang dapat
digunakan oleh programmer saat membangun perangkat lunak.
Dalam API terdapat fungsi-fungsi
atau perintah-perintah untuk menggantikan bahasa yang digunakan dalamsystem calls dengan bahasa yang lebih terstruktur dan mudah
dimengerti oleh programmer.
Keuntungan menggunakan API:
1.
Probabilitas
API dapat digunakan untuk bahasa pemrograman ataupun untuk sistem operasi mana
saja asalkan paket-paket API sudah terpasang.
2.
Lebih Mudah Dimengerti
API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada
bahasa system call. Hal ini sangat penting dalam hal editing dan pengembangan.
3.
Mudah Dikembangkan
Dengan adanya API, memudahkan programmer untuk mengembangkan suatu sistem.
Java
mengandung ratusan kelas standar :
· J2SE:
Edisi standar
· J2EE:
Edisi enterprise (lebih banyak kelas)
· J2ME:
Subset kelas standar
Kelas-kelas
ini memungkinkan pembuatan program dengan mudah. API Java cukup lengkap, mulai
dari yang sederhana (misalnya struktur data Stack) Sampai yang kompleks
(seperti enkripsi dan akses file ZIP).
Penerapan
Dilakukan
dengan mengimpor package/kelas import java.util.Stack;
Ada
beberapa kelas bernama sama dipackage yang berbeda, yaitu :
· import
salah satu dan gunakan nama lengkap untuk yang lain, atau
· gunakan
nama lengkap semua kelas
Ada tiga
jenis Bahasa Pemrograman Java Application Programming Interface (API):
inti resmi
Java API, yang terdapat dalam JDK atau JRE, dari salah satu edisi dari Java
Platform. Tiga edisi dari Java Platform adalah Java ME (Micro edition), Java SE
(Standard edition), dan Java EE (Enterprise edition).
Resmi
opsional API yang dapat didownload secara terpisah. Spesifikasi API ini
didefinisikan sesuai dengan Spesifikasi Jawa Request (JSR), dan kadang-kadang
beberapa API ini kemudian dimasukkan dalam API inti dari platform (contoh yang
paling terkenal dari jenis ini adalah swing).
API tidak
resmi, yang dikembangkan oleh pihak ketiga, tetapi tidak berkaitan dengan JSRs
apapun.
Pihak-pihak
ketiga dapat dengan bebas mengimplementasikan spesifikasi JSR API resmi (bahkan
untuk API inti dari bahasa), memberikan bahwa mereka menyesuaikan diri dengan
Teknologi Kompatibilitas Kit (TCK) untuk JSR ini (yang TCK adalah paket tes
yang memeriksa kesesuaian dari implementasi untuk JSR). The result of this
freedom is that many official APIs have more implementations than the Sun’s
Reference implementation (RI). Hasil dari kebebasan ini adalah bahwa banyak API
resmi memiliki lebih implementasi daripada Matahari pelaksanaan Referensi (RI).
Anda dapat menggunakan kelas Java dan API untuk mengakses konten di berbagai
server konten.
The DB2
Content Management pusat informasi yang menyediakan dokumentasi API berikut:
· Kelas
Java dan API
· JavaBeans
· C
+ + kelas dan API
· Tabel
kontrol sistem
· Perpustakaan
pengguna server keluar
· DB2
Content Manager aturan sistem konektor
Berikut ini
adalah sebagian daftar Application Programming Interface (API) untuk Java
Programming Language.
· Java
Platform, Standard Edition (Java SE)
· Bundled
1.1.1 API (bagian dari standar download)
· Opsional
1.1.2 API (download terpisah)
· Java
Platform, Enterprise Edition (Java EE)
· Bundled
1.2.1 API (bagian dari standar download)
· Opsional
1.2.2 API (download terpisah)
· Java
Platform, Micro Edition (Java ME)
· Unofficial
API (Dirilis oleh pihak ketiga)