Sunday, March 29, 2009

EJB 3 Overview

Setelah lama bergelut dengan Spring, pingin juga rasanya berpaling ke framework lain untuk urusan J2EE. Dan kali ini pilihan jatuh pada EJB3. Sebelumnya saya belum pernah menggunakan EJB, baik EJB1 maupun EJB2 karena mendengar reviewnya yang cukup menyedihkan. Tapi untuk EJB3 ini orang bilang sudah banyak pengembangan dan perubahan yang dilakukan.

EJB adalah sebuah platform untuk membangun aplikasi yang portable, reusable, dan scalable menggunakan Java. Menggunakan EJB berarti kita tidak perlu repot memikirkan hal-hal seperti transaction, security, automated persistence dsb yang biasanya diperlukan untuk membangun sebuah aplikasi berskala besar. Pendek kata, developer hanya perlu fokus pada bisnis logic tanpa harus khawatir dengan infrastructure code.

Dari sudut pandang developer, EJB adalah Java code yang dieksekusi pada sebuah runtime environment yang disebut EJB container yang menyediakan banyak service seperti transaction, security, dll.

EJB sendiri terdiri dari beberapa komponen. Komponen-komponen ini akan dijalankan di EJB container, dan komponen lain yang ingin mengaksesnya hanya perlu tahu atribut apa saja yang perlu dikirimkan dan apa hasil yang diharapkan tanpa perlu tahu isi detil komponen tersebut. Ada tiga komponen dalam EJB yaitu session bean, message-driven bean, dan entity.

Banyak orang beranggapan bahwa membangun aplikasi web yang simple menggunakan EJB terlalu lebay. Anggapan ini tidak sepenuhnya benar. Sebagai analogi, saat kita membangun rumah, kita tidak membuat semuanya mulai awal bukan? Melainkan kita membeli material atau menyewa kontraktor. Hal ini berlaku juga dalam membangun software. Kebanyakan aplikasi server-side memiliki kesamaan seperti adanya bisnis logic, manajemen application state, query database, manajemen transaction, security, adanya asynchronous process, system integration, dll. EJB container menyediakan itu semua. Ini berarti kita bisa membangun aplikasi lebih cepat daripada yang kita bayangkan.

Dua hal utama yang membuat EJB3 diakui banyak orang sebagai improvement adalah penggunaan annotation dan dependency injection serta pemisahan persistence API sebagai standard sediri. Annotation dan dependency injection sendiri sebenarnya juga sudah digunakan banyak framework sejak kemunculannya di Java 1.5. Dengan dependency injection kita tidak perlu melakukan lookup resource dan bagi yang tidak begitu suka dengan xml deployment descriptor bisa meminimalkan penggunaan xml. Dan pemisahan persistence API sebagai standard sendiri adalah untuk mengakomodasi kebutuhan interaksi aplikasi dengan database walaupun aplikasi yang dibangun tersebut tidak membutuhkan banyak service dari EJB container, misalnya aplikasi yang dibangun dengan J2SE yang memerlukan akses ke database.

0 comments:

 

©2009 Stay the Same | by TNB