Jumat, 11 Januari 2013

Pengertian Open Source, OSGI, Virtualization dan API


  • Open Source
A. Pengertian Open Source
Sumbe Terbuka (Open Souce) adalah sistem pengembangan yang tidak dikoordinasi oleh satu individu / lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source code) yang tersebar dan tersedia bebas. Pola pengembangan ini mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika suatu komunitas menggunakan sebuah program Open Source dan telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak.
Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab.

  • Gateway Initiative (OSGI)
A. Pengertian Gateway Initiative (OSGI)
OSGI adalah sebuah rencana industri untuk cara standar dalam menghubungkan suatu perangkat seperti perangkat rumah tangga dan sistem keamanan ke internet. OSGI berencana untuk menentukan suatu program aplikasi antarmuka (API) untuk pemrograman yang memungkinkan komunikasi dan kontrol antara penyedia layanan dan perangkat di dalam rumah atau usaha kecil. Pada dasarnya OSGI ini di kembangkan dengan menggunakan bahasa pemrograman JAVA.

B. Manfaat OSGI
1. Mengurangi Kompleksitas
Dengan cara menyembunyikan bundel (modul) internal berarti memberikan lebih banyak kebebasan untuk berubah nantinya. Hal ini berguna tidak hanya untuk sekedar mengurangi jumlah bug, tetapi juga membuat kumpulan sederhana untuk berkembang.
2. Reuse
Membuat model OSGI menjadi lebih mudah dalam menggunakan banyak komponen dalam satu aplikasi. Serta peningkatan jumlah proyek-proyek sumber terbuka memberikan JAR mereka untuk siap di buat OSGI.
3. Real Word
Karena OSGI merupakan kerangaka kerja yang dinamis, maka dapat memperbarui bundel on the fly dan pelayanan yang datang dan pergi.
4. Easy Deployment
Teknologi OSGI bukan hanya sebuah standard untuk komponen saja, tetapi juga menentukan bagaimana komponen diinstal dan di kelola.
5. Dynamic Updates
Model komponen OSGI adalah model dinamis, karena komponennya dapat diinstal, play, stop, updates, dan delete tanpa harus menurunkan keseluuhan sistem.
6. Simple
OSGI API sangat sederhana karena API inti hanya terdiri dari satu paket dan kurang dari 30 kelas.
7. Small (kecil)
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 mampu berjalan pada berbagai macam perangkat : dari yang sangat kecil, kecil dan untuk mainframe.
8. 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.

  • Virtualization
A. Pengertian Virtualization
Virtualization atau Virtualisasi memiliki banyak pengertian. Dalam kamus bahasa indonesia sendiri belum ditemukan secara jelas pengertian dari virtualisasi. Namun jika kita melihat pada kamus OXFORD istilah virtualization merupakan turunan dari kata virtualize yang memiliki makan "mengubah sesuatu (mengkoversi) ke bentuk simulasi dari bentuk nyata yang ada". Di bidang teknologi informasi, virtualization digunakan sebagai sarana untuk improvisasi skalabilitas dari hardware yang ada.
Dengan visualization, beberapa sistem operasi dapat berjalan secara bersamaan pada satu buah CPU. Hal ini tentunya dapat mengurangi biaya yang dapat dikeluarkan oleh sebuah perusahaan.
Dalam hardware visualization, perangkat lunak bekerja membentuk sebuah virtual machine yang bertindak seolah-olah seperti sebuah komputer asli dengan sebuah sistem operasi terinstal didalamnya. Sebagai salah satu contoh yang mudah misalkan terdapat satu buah komputer yang telah terinstal GNU/Linux Ubuntu. Kemudian dengan menggunakan perangkat lunak virtualization semisal virtualbox kita dapat menginstal dua buah sistem operasi lain sebagai contoh WindowsXP dan Free BSD.
Perangkat lunak yang digunakan untuk menciptakan virtual machine pada host machine biasa disebut sebagai hypervisor atau Virtual Machine Monitor (VMM). Menurut Robert P. Goldberg pada tesisnya yang berjudul “Architectural Principles For Virtual Computer Systems” pada hal 23 menyebutkan bahwa tipe-tipe dari VMM ada 2 yaitu :
• Type 1 berjalan pada fisik komputer yang ada secara langsung. Pada jenis ini hypervisor / VMM benar-benar mengontrol perangkat keras dari komputer host-nya. Termasuk mengontrol sistem operasi-sistem operasi guest-nya. Contoh implementasi yang ada dan sudah saya coba secara langsung ialah VMWare ESXi. Adapun contoh yang lain yang ada seperti Microsoft Hyper-V
• Type 2 berjalan pada sistem operasi diatasnya. Pada tipe ini tentunya guest sistem operasi nya berada di layer diatasnya lagi.


  • API (Application Program Interface)
A. Pengertian API (Application Program Interface)
Merupakan suatu dokumentasi yang terdiri dari antar muka, fungsi, kelas, struktur dan sebagainya untuk membangun suatu perangkat lunak. Dengan adanya API ini maka akan mempermudah seorang programmer untuk membongkar suatu software untuk kemudian dapat dikembangkan atau diintegrasikan dengan perangkat lunak yang lain.
API dapat dikatakan sebagai penghubung suatu aplikasi dengan aplikasi lainnya. Suatu rutin standar yang dilakukan seorang programmer menggunakan system function. Proses ini dikelola melalui operating system. Keunggulan dari API ini adalah memungkin kan suatu aplikai saling berintegrasi dengan aplikai lainnya.

B. Keuntungan memprogram dengan menggunakan API

  1. Portabilitas : Programmer yang menggunakan API dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah terinstal API tersebut.
  2. Lebih mudah dimengerti : Karena API menggunakan bahasa yang lebih terstruktur dan lebih mudah dimengerti dari pada bahasa system call. System call interface ini berfungsi sebagai penghubung antara API dan system call yang dimengerti oleh sistem operasi. System call interface ini akan menerjemahkan perintah dalam API dan kemudian akan memanggil system calls yang diperlukan.

Sumber :
http://id.wikipedia.org/wiki/Sumber_terbuka
http://hilaliyah.wordpress.com/2013/01/04/osgi-open-service-gateway-initiative-virtualization-dan-api/
http://smartcapp.wordpress.com/2009/02/19/what-is-api/