EJB Menurut Saya

Enterprise Java Bean, pertama kali saya mendengar kata EJB terdengar seperti sesuatu yang besar, masif, raksasa, dan kompleks. Dan ternyata setelah berusaha untuk sok mendalami memang rumit. Eits, sebetulnya yang rumit bukan permasalahan EJBnya. Tetapi adalah studi kasus dan apa sih yang mau diEJBkan. Secara dasar, ketika kita belajar Java adalah sudah bukan lagi mengoprek OOP dengan Java namun adalah mengerti skleton class, serialize, dan remote programming.

Nah remote programming ini yang kadang orang tidak sadar akan manfaatnya. Mungkin sebagian besar dari kita pernah mendengar CORBA dan RMI (Remote Method Invoke). Kebetulan tugas akhir kuliah dan skripsi saya mengangkat topik tentang komputasi terdistribusi dengan memanfaatkan RMI dan Web Service. RMI menurut kacamata saya adalah :

Metode di mana object yang dapat serialized dapat melakukan transaksi melalui interface yang telah disediakan oleh suatu container. Kenapa melalui interface yang disediakan container? Kenapa tidak bebas dengan direct JDBC? Itulah tujuan dari remote, apa yang tersedia oleh server itulah yang dapat kita gunakan. Remote adalah agar dapat terkontrol.

Sebetulnya RMI sendiri adalah API dan protokol. Ya itulah RMI, tapi mari kembali ke topik. Lalu jika sudah memahami skleton dari sebuah class, serialize (marshalling), dan RMI apa hubungannya dengan EJB? EJB adalah bukan Bean standar yang dikenalkan pada jaman J2EE (agar data atau object yang terdapat disebarkan attributenya dan lebih cepat oleh developer untuk diproses di dalam JSP melalui expression).

EJB adalah bukan Java Bean standard sekali lagi (Red. menurut saya). Ketika sudah membahas enterprise maka akan berisi transaction, ah apa sih maksudnya? Bean di dalam EJB adalah sebuah metode untuk membuat proses menjadi modular. Misal ambil contoh di dalam sebuah aplikasi purchasing, maka proses purchase request akan dipisahkan dari purchase order dan invoice. Tampak simple kan? Belum terlihat perbedaannya dengan data access yang standard memang.

Kembali ke RMI tentang remote, maka agar tampak perbedaannya adalah di dalam class EJB segala sesuatu yang terjadi di modul-modul tersebut adalah transaksi remote. Sehingga aplikasi hanya akan mengakes modul-modul tersebut melalui interface dan tidak direct ke data accessnya. Nah lalu kenapa EJB namanya? bukan dinamakan RMI saja? Di dalam EJB, kita dapat mendeklarasikan class dengan expression dan anotasi untuk memenuhi kriteria transaksi sesuai proses bisnis.

EJB memanfaatkan RMI untuk controlnya, dan EJB sendiri adalah modular transaction method menurut bahasa kalbu saya. EJB dengan RMI dapat melakukan transaksi melalui interface yang telah disediakan oleh suatu container namun kaya akan expression dan anotasi, serta lebih mudah untuk dibagi per bagian atau modul. Juga ditujukan agar proses transaksinya terpisah antara client (desktop, web, aplikasi tier n to n) dengan server sehingga lebih terpusat dan terkendali jika terjadi perubahan. Itu semua pandangan saya tentang EJB, maaf kalau berasa berputar-putar dan ribet. Monggo jika ada sanggahan dan masukan.

Referensi :

  1. Simple EJB by Oracle
  2. What is RMI by Oracle
  3. Agar tidak tersesat ke dalam Java Bean standard? Java Bean Example

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s