Kamis, 24 Januari 2013

Open Service Gateway Initiative, Virtualization, dan API

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)


Tidak ada komentar:

Posting Komentar