Jumat, 25 Januari 2013

API (Application Programming Interface)



Assalamu’alaikum wr.wb.
Salam Blogger. Pada tulisan kali ini saya akan mengulas tentang API (Application Programming Interface). Banyak dari kita belum mengenal istilah ini bukan, apa sih API itu sebenarnya. API atau Application Programming Interface adalah Seperangkat fungsi standar yang disediakan oleh OS atau Bahasa. Dalam Java, API dimasukkan ke dalam package-package yang sesuai dengan fungsinya.

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.
Java mengandung ratusan kelas standar seperti:
– 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).
Dalam contoh program sederhana di atas, dibutuhkan setidaknya ribuan system calls per detik. Oleh karena itu Kebanyakan programmer membuat aplikasi dengan menggunakan Application Programming Interface(API). Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil system calls sesuai dengan sistem operasinya. Tidak tertutup kemungkinan nama dari system calls sama 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. Sedangkan system 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.
Untuk membuka suatu file tersebut user menggunakan program yang telah dibuat dengan menggunakan bantuan API, maka perintah dari user tersebut diterjemahkan dulu oleh program menjadi perintah open(). Perintah open() ini merupakan perintah dari API dan bukan perintah yang langsung dimengerti oleh kernel sistem operasi. Oleh karena itu, agar keinginan user dapat dimengerti oleh sistem operasi, maka perintah open() tadi diterjemahkan ke dalam bentuk system call oleh system call interface. Implementasi perintah open() tadi bisa bermacam-macam tergantung dari sistem operasi yang kita gunakan.
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.

Virtualitation dan Software Virtual



Assalamu’alaikum wr.wb.
Salam Blogger. Pada tulisan kali ini saya akan mengulas tentang Virtualitation. Virtualisasi  adalah istilah umum yang mengacu kepada abstraksi dari sumber daya komputer. Definisi lainnya adalah "sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya logikal." (wikipedia).

Virtualization itu sendiri juga dapat berarti salah satu teknologi yang dapat membagi satu server menjadi beberapa Operating System yang dapat berjalan secara bersama-sama. 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.

Spesifikasi & Arsitektur Open Service Gateway Initiative



Assalamu’alaikum wr.wb.
Salam Blogger. Pada tulisan kali ini saya akan mengulas tentang Spesifikasi & Arsitektur Open Service Gateway Initiative beserta penerapannya dalam bidang TI. Teknologi Open Service Gateway Initiative  merupakan seperangkat spesifikasi yang mendefinisikan sistem komponen dinamis untuk Java salah satu contohnya. Spesifikasi ini memungkinkan suatu model mengembangkan aplikasi yang dinamis terdiri dari banyak komponen.  Spesifikasi OSGI yang sekarang digunakan dalam aplikasi mulai dari ponsel ke open source Eclipse IDE.  

Open Service Gateway Initiative (OSGi) juga merupakan sebuah sistem dan aplikasi interoperability berbasis komponen platform yang terintegrasi. OSGi merupakan sistem 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 komputer 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 memungkinkan komponen-komponennya untuk menyembunyikan implementasinya dari komponen lainnya ketika berkomunikasi melalui services dimana biasanya ketika hal ini berlangsung implementasi antar komponen dapat terlihat jelas. Model yang simple ini telah jauh mencapai efek dari segala aspek dari proses pengembangan software. Inti bagian dari spesifikasi OSGI adalah suatu kerangka kerja yang mendefinisikan aplikasi model manajemen siklus hidup, sebuah layanan registrasi, sebuah lingkungan eksekusi dan modul. Berdasarkan kerangka ini, sejumlah besar OSGI layers, API, dan Jasa telah ditetapkan. Spesifikasi OSGI yang dikembangkan oleh para anggota dalam proses terbuka dan tersedia untuk umum secara gratis di bawah Lisensi Spesifikasi OSGI.



Arsitektur OSGi:

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: