Servlet Pelayan Aplikasi Web

Hari Sabtu tanggal 24 Februari 2007 saya menjelaskan mengenai konsep dasar servlet API di acara JaMU (Java User Meeting) dari JUG Indonesia.

Ini adalah source code aplikasi web yang saya buat:

http://jroller.com/resources/s/sfranklyn/Pelayan.jar

Info: Aplikasinya terpaksa saya kompresi pakai jar soalnya weblog ini cuma mau menerima upload file dalam bentuk jar. Tapi tentu saja anda bisa dekompresi jar ini dengan utility zip yang biasa anda pakai.

Advertisements

Sam Review: NetKernel dan Tibco GI = Arsitektur berbasis AJAX

Kalau misalnya banyak software developer di tanya
teknologi apa yang lagi trendy maka salah satu jawaban mereka
pasti adalah AJAX. AJAX adalah kumpulan
singkatan yaitu “Asynchronous JavaScript+CSS+DOM+XMLHttpRequest”.
AJAX adalah pendekatan arsitektur untuk membangun sebuah aplikasi.

Dalam pendekatan AJAX maka sebuah aplikasi web bukan dibangun
dengan menggunakan kumpulan halaman web yang berinteraksi
satu sama lain. Aplikasi web dibangun dengan menggunakan User Interface
yang berupa JavaScript yang memanipulasi DOM (Document Object Model)
dari browser. Tampilan dikendalikan juga oleh CSS.
Nah untuk berinteraksi dengan server maka JavaScript menggunakan
XML yang dikirimkan lewat protokol HTTP secara asynchronous.

Untuk lebih lengkapnya bisa dibaca di essay pencipta istilah AJAX
yaitu Jesse James Garet.


http://www.adaptivepath.com/publications/essays/archives/000385.php

Pendekatan AJAX mulai populer terutama setelah Google
membangun aplikasi-aplikasi dengan memakai pendekatan ini.
Akan tetapi banyak orang menyebutkan bahwa perusahaan besar
pertama yang memakai pendekatan ini adalah Microsoft dan
aplikasinya adalah Outlook Web Access.

Nah tahun lalu saya menjadi Technical Architect di Bank Danamon.
Dalam proyek ini pemimpin proyek saya yaitu Ruli Ahdiat
mengundurkan diri dan pindah kerja ke Tibco. Nah salah satu
produk Tibco yang paling terkenal ternyata adalah Tibco General
Interface (Tibco GI).

http://developer.tibco.com/

Karena dipromosikan oleh Ruli akhirnya saya belajar-belajar produk ini.
Ternyata produk ini inovatif sekali dan memang pantas produk ini
mendapatkan beberapa penghargaan.

Inovasinya dimana? Tibco GI saya lihat adalah satu-satunya teknologi
AJAX yang IDE-nya dibangun dengan AJAX juga. Untuk memakai Tibco GI
kita cukup launch halaman HTML maka IDE-nya akan diload.
Aplikasi yang kita buat akan berbentuk halaman HTML yang didalamnya
mengandung JavaScript yang kita tulis dan framework Tibco GI.
Jadi kita bisa merancang GUI dari aplikasi AJAX kita dengan cara
visual dan drag-n-drop macam Visual Basic. Ini benar-benar inovatif
kalau menurut saya. JavaScript yang kita tulis juga bisa didebug
oleh IDE. Selain itu komponen yang disediakan oleh Tibco GI
juga sangat berlimpah dan cukup bermanfaat untuk membangun
UI AJAX yang sangat kaya/rich.

Tapi tentu saja Tibco GI kalau menurut saya hanyalah
separuh dari arsitektur yang dibutuhkan untuk membangun aplikasi
AJAX yang bagus. Tibco GI hanyalah front-end dan kita
masih membutuhkan back-end. Tibco GI berkomunikasi
dengan back-end menggunakan XML atau SOAP.

Nah saya pribadi berpendapat SOAP itu hanyalah kerumitan
yang tidak perlu karena itu saya sendiri tidak menganjurkan
pemakaian SOAP kecuali untuk alasan tertentu. Mengingat
sifat komunikasi dari GI yang XML dan asynchronous maka
jelas sekali kita membutuhkan back-end yang bisa mengolah
XML dan pengolahannya dilakukan secara asynchronous.

Nah soal mengolah XML sebetulnya servlet Java biasa juga
bisa akan tetapi pengolahan nya tidak asynch. Kalau ingin
pengolahan asynch di Java kita harus menggunakan multi-threading
atau messaging. Nah messaging di Java umumnya dilakukan
dengan menggunakan teknologi JMS yang sudah matang dan teruji.
Sayangnya JMS tidak mengerti XML dan HTTP. Jadi kita harus mengekspos
JMS lewat HTTP dan mengolah XML secara manual kalau
kita mau back-end yang benar-benar cocok dengan paradigma AJAX.

Tapi ternyata saya menemukan sebuah teknologi yang benar-benar
cocok menjadi back-end dari aplikasi AJAX yaitu NetKernel.

http://www.1060.org/

NetKernel adalah teknologi yang lahir dari proyek riset
di HP. Pencipta NetKernel mengatakan bahwa NetKernel
adalah “REST-based microkernel”. Kalau menurut saya
NetKernel adalah teknologi pengolahan XML secara asynchronous.
Semua proses dalam NetKernel dilaksanakan secara asynchronous
dan NetKernel itu sangat berpusatkan XML. Tiga bahasa untuk
mengolah XML diikutsertakan dalam NetKernel: DPML, XRL dan STM.
DPML adalah Declarative Processing for Markup Language.
Ini adalah bahasa untuk melakukan pengolahan XML secara
deklaratif. XRL adalah XML Recursion Language adalah bahasa
untuk melakukan penggabungan dari beberapa fragment XML menjadi
fragment XML yang lebih besar. STM adalah Simple Tree Manipulation
language. Dokumen XML umumnya berupa tree dan ini bisa dimanipulasi
dengan STM. Jadi bisa dilihat bahwa para pencipta NetKernel
ini benar-bener paham dan cinta mati akan XML.

Nah selain bisa melakukan pengolahan XML dengan bahasa
unik NetKernel maka pengolahan XML juga bisa dilakukan
dengan scripting language: BeanShell, JavaScript/E4X,
Python, Groovy dan Java. Nah mungkin bakal ada yang protes:
“Hey Sam, Java itu bukan bahasa scripting”. Memang bukan.
Tapi di NetKernel Java susah dibedakan dengan bahasa scripting
soalnya kita tidak perlu kompilasi Java. Tulis saja
sourcenya dan taruh di direktori yang kita konfigurasi
maka NetKernel otomatis akan mendeteksi apakah source
tersebut perlu dikompilasi atau tidak. Jadi kita tinggal
edit source dan refresh browser untuk melihat efek
perubahan source Java yang kita tulis. Cool eh?

Tapi sebenarnya bahasa scripting yang paling menarik
di NetKernel adalah JavaScript/E4X. Mungkin banyak yang berkata:
“Ya aku tahu JavaScript tapi apa itu E4X?”.
E4X adalah singkatan dari ECMAScript for XML
yaitu extension dari JavaScript sehingga XML menjadi
bagian dari bahasa JavaScript. XML dan JavaScript lebur jadi
satu dalam JavaScript/E4X.

Saya berpendapat Tibco GI dan NetKernel adalah arsitektur
berbasis AJAX yang paling AJAX. Tertarik?
Silakan mencoba. Tibco GI dan NetKernel adalah open source
dan gratis.