Jumat, 25 Januari 2013

Open source Gateway Initiative (OSGI), Virtualization dan API

Open source Gateway Initiative (OSGI)
OSGi Alliance (sebelumnya dikenal sebagai Open Services Gateway inisiatif, sekarang nama kuno) adalah terbuka organisasi standar yang didirikan pada Maret 1999. Aliansi dan anggota-anggotanya telah ditentukan yang Java berbasis layanan platform yang dapat dikelola dari jarak jauhInti bagian dari spesifikasi adalah sebuah kerangka kerja yang mendefinisikan suatu manajemen siklus hidup aplikasi model, layanan registry, sebuah lingkungan Eksekusi dan Modul. Berdasarkan kerangka ini, sejumlah besar OSGi layers, API, dan Jasa telah ditetapkan.
OSGi teknologi adalah sistem modul dinamis untuk Java ™
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.
Pengadopsi teknologi OSGi 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 spesifikasi yang dikembangkan oleh para anggota dalam proses terbuka dan tersedia untuk umum secara gratis di bawah Lisensi Spesifikasi OSGi. OSGi Alliance yang memiliki kepatuhan program yang hanya terbuka untuk anggota. Pada Oktober 2009, daftar bersertifikat OSGi implementasi berisi lima entri.
 

arsitektur

http://bluewarrior.files.wordpress.com/2009/12/osgi-arsitektur.jpg 

etiap 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:
  1. Bundles
    Bundles adalah normal jar komponen dengan nyata tambahan header
  2. Services
    Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek (POJO).
  3. Services
    API untuk jasa manajemen (ServiceRegistration, ServiceTracker dan ServiceReference).
  4. Life-Cycle
    API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall) bundel.
  5. Modules
    Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).
  6. Security
    Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.
  7. 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

VIRTUALIZATION
Virtualization adalah salah satu teknologi yang dapat membagi satu server menjadi beberapa Operating System yang dapat berjalan secara bersama-sama.

Keuntungan dari Virtualization :
- irit ruang
- mengurangi biaya operasional
- mengurango coast invesment
- go green

Konsep Virtualiasasi
Walauun konsep virtualisasi ini sudah dikembangkan sejak akhir tahun 60-an, namun kenyataannya teknologi ini masih belum dikenal secara luas hingga saat ini. Hal ini mungkin karena masyarakat IT khususnya di Indonesia sudah merasa puas degan server yang mereka gunakan. Microsoft sendiri sejak tahun 2004 sudah mulai memperkenalkan Virtual PC dan Virtual Server ataupun VMWare. Walaupun konsep virtualisasi sangat berbeda dibandingkan dengan Virtual PC ataupun Virual Server.Virtualization sudah diperkenalkan sejak puluhan tahun lalu, yang waktu itu kalangan industri masih memanfaatkan komputer mainframe di akhir akhir tahun 60an. Ketika itu komputer masih memanfaatkan Punch card dan juga IBM 360 mainframe.
Sejalan dengan berkembangnya teknologi, perubahan pun berlanjut dan komputer semakin ramping dan bukan lagi merupakan barang mewah yang hanya dimiliki oleh perusahaan atau orang tertentu saja.Dengan pesatnya perkembangan teknologi dan semakin derasnya arus globalisasi, persaingan bisnis berbasis IT juga semakin ketat. Melihat kenyataan ini, raksasa software dunia, Microsoft menghadirkan teknologi server yang mendukung Virtualization. Fitur canggih ini ada dalam Windows Server 2008 64 bit yang kini sudah mulai banyak diimplementasikan. Konsep virtualisasi yang langsung terintegrasi dengan role server, yaitu Windows Server Virtualization atau lebih dikenal dengan Hyper-V. Hyper-V akan menjadi sebuah role dalam sistem operasi Window Server 2008 R2 dengan mengoptimalkan virtualisasi sistem operasi server. Seperti diketahui Hyper-V tersebut mendukung virtulisasi server baik untuk versi 64 bit.

Arsitektur
Sebuah arsitektur akan sangat menentukan ketika sebuah konsep diimplementasikan. Demikian juga dengan arsitektur Windows Server Virtualization sangat berbeda dibandingkan dengan arsitektur Virtual PC, Virtual Server 2005, ataupun VMWare. Dalam hal ini konsep virtualisasi di Windows Server 2008 R2 memperkenalkan Hypervisor dan mengadopsi konsep microkernelized. Implementasi dari microkernelized memungkinkan sebuah instance virtual machine berperan sebagai partisi parent daninstance yang lain sebagai partisi child.

Semua instance virtual machine akan berjalan diatas hypervisor. Setiap partisi dapat memanfaatkan satu atau lebih prosesor, hal ini tentu saja jika menggunakan prosesor kelas dual core atau quad core.Partisi parentbertanggung jawab untuk mengorganisasi partisi child, dan manajemenvirtualization stack. Partisi parent juga bisa disebut sebagai partisi rootkarena partisi ini dibuat pertama kali saat inisialisasi hardware server. Partisiroot adalah pusat dari power management, organisasi hardware, dan manajemen hypervisor. Peran partisi parent sebagai virtualization stacksehingga software component berkerja diatas hypervisor dan berkerja bersama untuk mendukung virtual machine di system. Virtualization stackberkomunikasi dengan hypervisor dan melakukan semua fungsi virtualisasi. Partisi parent pun dianggap sebuah instance, sehingga IT Administrator dapat dengan mudah mengubah sebuah child menjadi parent jika dibutuhkan.

API

API atau Application Programming Interface adalah sebuah protokol yang digunakan sebagai antar muka oleh komponen software untuk berkomunikasi dengan yang lainnya.
Saat ini API banyak digunakan sebagai konten pembagi. Singkatnya, API dapat membolehkan para komunitas web untuk membuat sebuah API yang berguna untuk membagi konten dan data diantara para komunitas lainnya. Dalam hal ini, konten yang dibuat dalam suatu tempat secara dinamik dapat dipost dan diupdate pada lokasi yang berbeda-beda pada web.
COntohnya speerti:
  • Foto dapat dibagi dari website seperti flickr, photobucket ke sosial website seperti facebook dan myspace.
  • Konten dapat di embed, seperti embed dari slideShare pada profil LinkedIn.
  • Konten video dapat di embed pada website yang disediakan berlainan host.
  • Dan masih banyak lagi.
API yang dimaksudkan untuk digunakan oleh lebih dari satu bahasa tingkat tinggi pemrograman sering memberikan, atau ditambah dengan fasilitas yang secara otomatis memetakan API untuk fitur (sintaksis atau semantik) yang lebih alami dalam bahasanya. Hal ini dikenal sebagai language binding, dan API itu sendiri. Tujuannya adalah untuk merangkum sebagian besar fungsi yang diperlukan dari API, meninggalkan lapisan tipis yang tepat untuk setiap bahasa.