Kamis, 24 Januari 2013

Open Service Gateway Initiative

Open Service Gateway Initiative (OSGi) adalah sebuah system dan aplikasi interoperability berbasis komponen platform yang terintegrasi. OSGi merupakan system modul dinamik untuk Java. Teknologi OSGi adalah Universal Middleware. Teknologi OSGi menyediakan sebuah service-oriented, lingkungan yang berbasis komponen untuk pengembang dan menawarkan jalan standard untuk mengatur siklus hidup software. Kemampuan ini dapat menambah nilai jangkauan dari computer dan peralatan yang menggunakan platform Java dengan sangat hebat. Teknologi OSGi mengadopsi keuntungan dari menambah time-to-market dan mengurangi biaya pengembangan karena teknologi OSGi menyediakan subsistem komponen yang terintegrasi dari pre-build dan pre-tested. Teknologi ini juga mengurangi biaya perawatan dan memberikan kesempatan aftermarket yang baru dan unik karena jaringan dapat digunakan untuk update secara dinamik dan mengirimkan service 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 Allianceyang memiliki kepatuhan program yang hanya terbuka untuk anggota. Pada Oktober 2009, daftar bersertifikat OSGi implementasi berisi lima entri.


 Arsitektur


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:
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 tertentu. Tidak 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
Manfaat OSGI
1. Mengurangi Kompleksitas (Reduced Complexity)
Mengembangkan dengan teknologi OSGi berarti mengembangkan bundel: komponenOSGi. Bundel adalah modul. Mereka menyembunyikan internal dari bundel lain danberkomunikasi melalui layanan didefinisikan dengan baik. Menyembunyikan internals berartilebih banyak kebebasan untuk berubah nanti. Hal ini tidak hanya mengurangi jumlah bug, itu juga membuat kumpulan sederhana untuk berkembang karena bundel ukuran benarmenerapkan sepotong fungsionalitas melalui interface didefinisikan dengan baik. Ada sebuahblog menarik yang menjelaskan teknologi OSGi apa yang mereka lakukan bagi prosespembangunan
2. 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 jugamenjadi tersedia sebagai bundel siap pakai.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
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.
Implementasi OSGI
Teknologi Osgi sudah sangat banyak dikembangkan untuk berbagai macam keperluan dalamsehari hari maupun di bidang teknologi informasi dan industry serta di bidang ilmu komputer.
1. 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 microsistem yaitu Java Embedded Server. Teknologi ini dinamakan home network dan jinni adalah salah satu standart untuk pembuatan home nerwork yang berbasis java.
2. Teknologi dan industry
Dalam hal ini pengembangan OSGI dalam Teknologi dan industri adalah untuk otomatisasi industri. Seperti otomatisnya system dalam gudang yang dapat meminta dalam PPIC untuk mengadakan bahan baku, dan masih banyak yang lain.
3. 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 frameworkyang dikembangkan oleh eclipse dan berbasis GUI. Dan masih banyak juga dalam server serta program-program lain yang mengembangkan teknologi OSGI ini.
Sumber : http://andhirapradana.blogspot.com/2012/11/spesifikasi-dari-open-service-gateway.html
http://bluewarrior.wordpress.com/2009/12/01/open-services-gateway-initiative-osgi/
http://agungrastafun.blogspot.com/2012/12/bagaimana-spesifikasi-dari-osgi-open.html



Virtualization

Pengertian Virtualization

Jika merujuk pada kamus Oxford istilah virtualization merupakan turunan dari kata virtualize yang memiliki makna: “convert (something) to a computer-generated simulation of reality”  yaitu “mengubah sesuatu (mengkonversi) ke bentuk simulasi dari bentuk nyata yang ada”.
Dengan virtualization, beberapa sistem operasi dapat berjalan secara bersamaan pada satu buah CPU. Hal ini tentunya dapat mengurangi biaya yang dapat dikeluarkan oleh sebuah perusahaan.  Dan tren ke depan virtualization ini akan banyak digunakan baik di perusahaan yang bergerak dibidang IT (information technology) maupun yang tidak murni bergerak di bidang IT namun menggunakan IT sebagai sarana untuk memajukan usahanya.
Menurut Alan Murphy dalam papernya “Virtualization Defined – Eight Different Ways” menyebutkan setidaknya terdapat delapan istilah dalam penerapan virtualization. Diantaranya ialah operating system virtualization, application server virtualization, application virtualization, management virtualization, network virtualization, hardware virtualization, storage virtualization dan service virtualization.
Tujuan lain dari virtualisasi adalah untuk memaksimalkan pemanfaatan sebuah fasilitas infrastructure seperti processor, network, dan communication channel.  Tanpa disadari bahwa processor lebih banyak tidak bekerja daripada sibuk bekerja.
Dengan cloud computing teknik virtualisasi ini sangat penting gunanya yaitu karena:
1. Bisa meningkatkan UTILITY atau pemanfaatan infrastructure mencapai 100% atau semaksimalnya.
2. Bisa menciptakan imunisasi atau security dimana 1 user tidak bisa mengganggu atau merusak user lainnya karena mereka masing masing terselubung dalam 1 virtual machine.
3. Bisa memberikan elastisitas atau ketidakterbatasan infrastructure kepada setiap user.
4. Bisa menciptakan virtual machine atau virtual desktop yang sesuai dengan spesifikasi prosesor, memory, harddisk, dsb yang dibutuhkan oleh user.  Sehingga user cukup pakai sebuah IPAD saja untuk mengoperasikan sebuah virtual super desktop atau komputer secanggih apapun karena semua proses dilakukan di cloud host/server dan IPAD itu hanya berfungsi sebagai kepanjangan monitor dan keyboard saja.


Sumber : http://andrey.web.id/blog/2012/04/11/apa-itu-virtualization/
http://www.purwadhikapress.com/cloud-computing-virtualization.html

Application Programming Interface (API)

Pengertian Application Programming Interface (API) adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu. API memungkinkan programmer untuk menggunakan fungsi standar untuk berinteraksi dengan sistem operasi.
Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam system callsdengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil system callssesuai dengan sistem operasinya. Tidak tertutup kemungkinan nama dari system callssama dengan nama di API.
Keuntungan memprogram dengan menggunakan API adalah:
  • Portabilitas. Programmer yang menggunakan API dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah ter- install API tersebut. Sedangkansystem call berbeda antar sistem operasi, dengan catatan dalam implementasinya mungkin saja berbeda.
  • 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.
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.
Cara Memakai API
* 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)
Sumber :          http://www.ipangsan.web.id/api-application-program-interface/
http://id.wikipedia.org/wiki/Antarmuka_pemrograman_aplikasi

Open Source

Definisi Open Source sendiri memiliki tujuan untuk melindungi proses Open Source dan menjamin perangkat lunak yang didistribusikan dengan menggunakan lisensi Open Source akan tersedia untuk peer review secara bebas dan dapat mengalami perbaikan terus menerus hingga dapat mencapai tingkat kehandalan serta menjaga kemungkinan menjadi produk yang Close Source. Istilah dari Open Source sendiri tidak semata-mata hanya berarti adanya keterbukaan untuk mengakses Source Code perangkat lunak, namun sebenarnya memiliki cakupan arti yang lebih luas.
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.
definisi open source yang asli seperti tertuang dalam OSD (Open Source Definition) yaitu:
• Free Redistribution
• Source Code
• Derived Works
• Integrity of the Authors Source Code
• No Discrimination Against Persons or Groups
• No Discrimination Against Fields of Endeavor
• Distribution of License
• License Must Not Be Specific to a Product
• License Must Not Contaminate Other Software
LATAR BELAKANG PEMBERIAN LISENSI OPEN SOURCE
Sumbangan teknologi Informasi Digital kepada dunia adalah kemudahan kita untuk menyalin serta merubah informasi. Komputer menjanjikan untuk memudahkan hal tersebut untuk kita semua. Namun adanya sistem Hak Cipta untuk program komputer berpemilik menghalangi masyarakat untuk mendapat manfaat dari program komputer. Tidak pihak semua pihak tidak menerima konsep kepemilikan tersebut diatas, Richard Stallman beranggapan bahwa perangkat lunak merupakan sesuatu yang seharusnya boleh selalu dimodifikasi. Menurutnya menyamakan Hak Cipta program komputer dengan barang cetakan merupakan perampasan kemerdekaan berkreasi.
Dalam sejarahnya, pertama kali program komputer dikembangkan adalah dengan budaya gotong royong. Program komputer tidak hanya diciptakan dan dikembangkan oleh satu perusahaan atau satu pencipta saja. Tetapi ada kerja sama dari berbagai perusahaan dan kampus-kampus. Unix adalah program komputer pertama yang dibuat oleh perusahaan AT&T, sebuah perusahaan yang bergerak dibidang telekomunikasi di Amerika. Awalnya pengembangan Unix dilakukan bersama-sama dengan beberapa perusahaan seperti IBM, Hewlet Packard, Sun Microsystem, serta kampus Berkeley University dan Machassuset Institute of Technology. Dalam perkembangannya, muncul penilaian bahwa program komputer memiliki nilai komersial maka AT&T menarik Source Code dari UNIX yang dikembangkannya dan memberikan konsep perihal komputer berpemilik. Langkah AT&T mendaftarkan Hak Cipta dari Unix atas namanya sendiri menyebabkan Universitas Berkeley selaku kontributor utama dari Unix mengembangkan versi Unix-nya sendiri dengan nama BSD (Berkeley Software Distribution) dan disebarluaskan sendiri menggunakan linsensi BSD.
Dengan demikian muncullah era Open Source yang menghasilkan banyak Open Source software. Open Source Software (OSS), menurut Esther Dyshon didefinisikan sebagai perangkat lunak yang dikembangkan secara gotong royong tanpa koordinasi resmi, dengan menggunakan kode program (Source Code) yang tersedia secara bebas serta didistribusikan melalui internet. Dengan definisi di atas, maka untuk pengguna OSS mempunyai beberapa hak yang dijamin oleh Open Source :
• Untuk membuat salinan program, dan mendistribusikan program tersebut.
• Untuk mengakses Source Code, sebelum melakukan perubahan.
Melakukan perbaikan pada program. Dengan semakin tersebarnya Open Source , dikalangan pengguna komputer, kemudian berkembanglah sistem lisensi Open Source .
Jenis Lisensi Open Source
Menurut Microsoft dalam dokumen “The Hallowen Document” ada beberapa jenis lisensi yang dapat digunakan untuk program komputer.
• Lisensi Commercial ialah jenis lisensi yang biasa ditemui pada piranti lunak seperti Microsoft, Lotus, Oracle.
• Lisensi Trial Software ialah jenis lisensi yang biasa ditemui pada piranti lunak untuk keperluan demo. Karena bersifat demo, seringkali piranti lunak dengan lisensi ini tidak memiliki fungsi dan fasilitas selengkap versi komersilnya. Contoh program misalnya Netfushion Object Trial Versial 30 days.
• Lisensi untuk non commercial use, biasanya diperuntukkan untuk kalangan pendidikan atau untuk keperluan pribadi. Contohnya adalah Star Office.
• Lisensi Shareware biasanya ditemui pada piranti lunak perusahaan kecil. Piranti lunak dengan lisensi ini memiliki fasilitas dan fungsi selengkap versi komersilnya, contohnya Winzip, Paint Shop Pro, MCafee anti Virus.
• Lisensi freeware, biasanya ditemui pada piranti lunak yang bersifat mendukung atau memberikan fasilitas tambahan. Contohnya adalah program untuk mengkonversikan favorite test-IE ke bookmark-Netscape. f.Lisensi Royalty-Free Binaries serupa dengan freeware, hanya saja produk yang ditawarkan adalah library dan bukan merupakan suatu piranti lunak.
Lisensi yang lain adalah lisensi yang berasal dari konsep Open Source, misalnya GNU/GPL, The FreeBSD, The MPL. Program yang memakai lisensi Open Source misalnya Linux, sendmail, apache, freeBSD.
Beberapa contoh lisensi yang memenuhi Open Source Definition adalah:
• The GNU-GPL, GNU General Public License. Dengan lisensi GPL, berarti suatu program dapat digunakan, dimodifikasi, didistribusikan oleh pihak lain tanpa ada pembatasan dari sipembuatnya.
• The LGPL-Library GNU GPL.
• The BSD License, Berkeley Software Distribution License. Lisensi ini relatif memiliki lebih sedikit keterbatasan pada apa yang boleh dilakukan para developer. Termasuk boleh membuat karya turunan yang bersifat proprietary.
• The X Concortiun License. Lisensi yang digunakan oleh distribusi X Window. Lisensi ini hampir membolehkan modifikasi apapun.
• The Artistic Adalah lisensi yang digunakan oleh perl. Lisensi ini memodifikasi beberapa aspek yang bersifat kontroversial pada GPL. Lisensi ini melarang penjualan perangkat lunak, akan tetapi membolehkan penyertaan program lain yang dijual.
• The MPL, Mozilla Public License Lisensi ini digunakan oleh netscape ketika melepaskan Source Code browser netscape. Juga memperbolehkan para developer untuk karya derivatif yang bersifat proprietary.
• The QPL, Q Public License Lisensi yang digunakan Trolltech ketika melepaskan library Q.

Sumber : http://diazhandsome.wordpress.com/2008/12/16/apa-itu-open-source/
thoha.files.wordpress.com/2011/06/opensource.doc