Kamis, 24 Januari 2013

API (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.
Contoh terapan API:
Facebook API dimanfaatkan pada platform mobile

Twitter API dimanfaatkan pada Blackberry

API Google Maps dimanfaatkan pada mobile

ref : http://mudafiqriyan.com/2012/03/api-application-programming-interface/

virtualisasi beserta softwarenya



Teknologi virtualisasi diperkirakan menjadi teknologi yang semakin tren pada masa mendatang. Selain penghematan biaya (listrik atau pembelian server baru), teknologi virtualisasi juga memudahkan deploy-and-destroy untuk keperluan pengujian dan pengembangan aplikasi.

Melihat tren ini, vendor-vendor hardware juga mendukung teknologi virtualisasi ini. Intel dan AMD adalah vendor yang menjadi pionir dalam mendukung teknologi virtualisasi melalui produk processor yang dihasilkannya. 

Sebelum processor dapat menunjang virtualisasi, tulang punggung dari virtualisasi adalah software. Semua dikontrol melalui software virtualisasi. Namun, pada tahun 2006, AMD memproduksi AMD Virtualization (AMD-V) sebuah processor yang mula-mula berkodekan “Pacifica” yang diklaim sebagai processor pertama yang mendukung teknologi virtualisasi. Kemampuan AMD-V ini tersedia pada keluarga processor Athlon 64 dan Athlon 64 X2, Turion 64 X2, generasi ke-2 dan ke-3 Opteron, processor Phenom dan Phenom II. Sedangkan untuk Intel, processor dengan teknologi virtualisasi ini mulanya dikenal dengan kode “Vanderpool”. Lalu Intel meluncurkan dukungan teknologi virtualisasi ini dengan brand VT-x pada tahun 2006 yang dikhusukan untuk platform x86. Perlu dicatat bahwa tidak semua processor Intel terbaru dapat mendukung teknologi virtualisasi. Beberapa processor yang mendukung VT-x adalah beberapa tipe Core 2 Duo, Core 2 Quad, Core 2 Extreme, seri Xeon (3000, 5000, 7000), processor Intel i7, processor Dual Core E6300, dan beberapa versi E5300 dan E5400. Fitur dukungan virtualisasi ini perlu diaktifkan terlebih dahulu melalui BIOS, sebelum aplikasi dapat memanfaatkannya karena beberapa produsen motherboard/BIOS/chipset secara default men-disable fitur ini. 

Dari dukungan processor tersebut, kemudian muncullah istilah “hardware-assisted virtualization” atau orang biasa menyebut “hardware virtualization” yang sebenarnya kurang begitu cocok karena menimbulkan kesan bahwa hardware-lah yang berfungsi sebagai virtualisasi. Padahal maksud dari “hardware-assisted virtualization” sebenarnya adalah processor yang lebih dioptimasi untuk menangani lingkungan virtual. Dan itu hanya dapat dilakukan ketika software virtualisasi dijalankan. 

Ada beberapa software yang cukup populer yang digunakan untuk melakukan virtualisasi ini antara lain :

  • Microsoft Hyper-V atau yang sebelumnya bernama Windows Server Virtualization merupakan virtualisasi yang bersifat hypervisor-based untuk sistem x64. Versi beta dari Hyper-V dipasarkan dengan edisi Windows Server 2008, dan versi finalnya dirilis tanggal 26 Juni 2008. Microsoft menyatakan bahwa produk ini merupakan suatu usaha dari Microsoft untuk menyediakan sebuah sistem operasi terbaik yang mendukung teknologi virtualisasi.
  • Virtual Box merupakan software virtualisasi yang mulanya dibuat oleh perusahaan software Jerman, yaitu Innotex. Saat ini, Virtual Box dikembangkan secara penuh oleh Sun xVM. Sistem operasi host yang didukung oleh Virtual Box adalah Linux, MAC OS X, OS/2 Warp, Windows XP atau Vista, serta Solaris. Sedangkan untuk sistem operasi guest yang didukung termasuk DragonFlyBSD, FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows, dan Solaris. Versi terakhir dari Virtual Box ini dapat mendukung Windows 7 beta. Menurut survei di tahun 2007 yang diadakan oleh DesktopLinux.com, VirtualBox menduduki software virtualisasi terpopuler ke-3.

ref : http://soulofmyheart.blogspot.com/2010/04/software-virtualisasi-dan-mitos-seputar.html

spesifikasi & arsitektur open service gateway initiative (osgi)


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.


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.





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 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

    ref : http://bluewarrior.wordpress.com/2009/12/01/open-services-gateway-initiative-osgi/