Enterprise JavaBeans
Enterprise Java Bean (EJB) merupakan teknologi untuk mengembangkan komponen di sisi server yang scalable , transactional dan secure untuk aplikasi enterprise.
EJB dirancang untuk bisa scalable, yaitu untuk bisa menangani jumlah concurent user yang membesar. Scalability bisa dicapai dengan vertical scalability yaitu dengan menambahkan memory maupun processor dari sebuah mesin, atau dengan membuat cluster di mana EJB di- deploy di beberapa mesin
EJB dirancang untuk mendukung transaction, di mana satu rentetan perubahan data diperlakukan sebagai satu kesatuan. Sebagai contoh, dalam aplikasi e-banking, di mana user melakukan transfer uang dari satu account ke account lain. Dalam operasi ini terdapat dua buah perubahan data setidaknya yaitu pengurangan jumlah uang dari account pengirim, dan penambahan jumlah uang ke account penerima. Dua buah perubahan data ini dipandang sebagai satu kesatuan. Jika salah satu gagal, maka keduanya dibatalkan.
EJB juga bisa dirancang untuk secure, dengan menerapkan Role-Based Access Control di mana user-user dengan role tertentu saja yang bisa mengakses komponen-komponen EJB tertentu
EJB juga mendukung location transparancy, di mana EJB bisa di-deploy di enterprise application server yang lokasinya bisa di mana saja. Client dari EJB akan menemukan EJB ini dengan melakukan lookup ke directory server.
Untuk mengembangkan EJB, langkah pertama menuliskan source code, kemudian melakukan compilasi (compile), selanjutnya menuliskan deployment descriptor, dan langkah terakhir mendeploy ke application server.
Perlu ditekankan, EJB berbeda dengan Swing maupun JSP yang menyediakan user interface, namun EJB bekerja di back-end. EJB menyediakan service yang dipanggil oleh client. Client dari EJB bisa berupa stand alone application dengan Swing, ataupun web-based application dengan JSP.
3 Tipe Utama EJB :
Tipe Pertama SessionBean
Session Bean digunakan untuk mereprsentasikan proses, kendali dan alur kerja. Contohnya, session bean digunakan untuk melakukan validasi credit card, mencariketersediaan jadwal penerbangan, dan menyimpan shopping cart. Session Bean bisa Stateless atau Stateful. SessionBean tidak disimpan di dalam database, dan tidak akan survive jika server mengalami crash. Session bean hanya diakses oleh satu client, dan transactional.
Tipe Kedua EntityBean
Entity Bean digunakan untuk merepresentasikan business objek. Contohnya, entity bean digunakan untuk merepresentasikan Product, Order, Student, Course, Employee, dan To Do. Entity Bean tersimpan di database, jika server mengalami crash dia akan survive. Terdapat dua strategi penyimpanan yaitu Bean Managed Persistence dan Container Managed Persistence. Entity Bean adalah di-share oleh banyak client dan transactional.
Tipe Ketiga MessageDrivenBean
MessageDriven Bean digunakan untuk menyediakan layanan asynchronous messaging. Source Code dan Deployment Descriptor Untuk mengembangkan sebuah Enterprise Java Bean, dan wajib menuliskan source code untuk Home interface, Remote interface, dan bean implementation
Home interface ditulis dengan meng-extends EJBHome. Di home interface, Anda mendeklarasikan method untuk meng-create EJB object. Home interface akan diimplementasikan oleh enterprise application server, dan dikenal sebagai EJB home.
Remote interface ditulis dengan meng-extends EJBObject. Di remote interface, Anda mendeklarasikan method-method yang disediakan untuk melayani client. Di Session Bean, method-method ini bisa berupa business method. Di Entity Bean, method-method ini bisa berupa setter dan getter method.
Remote interface juga akan diimplementasikan oleh enterprise application server. Dalam implementasinya, yang dikenal sebagai EJB object, masing-masing method akan menginvoke method yang bersesuaian di bean implementation. EJB object menyediakan
service-service tambahan seperti security, dan transaction.
Bean implementation adalah Java class di mana Anda mengimplementasikan methodmethod yang telah Anda deklarasikan di Remote interface, sebagaimana juga di Home interface.
Cara Kerja EJB:
Dalam aplikasi EJB, Kita akan bekerja dengan EJB home, EJB object dan bean implementation.
EJB home menyediakan method-method create, finder dan remove untuk EJB Object.
EJB Object adalah jembatan antara client dengan bean implementation.
Dari sisi client, client tidak bisa meng-create secara langsung bean implementation. Dan client juga tidak pernah berhubungan langsung dengan bean implementation. Client bisa me-lookup Home object menggunakan Java Naming and Directory Interface.
Home object adalah class yang di-generate oleh enterprise application server, yang meng-implement Home interface. Melalui Home object ini, client meng-create EJB Object. Untuk Entity Bean, Home object juga mempunyai finder method dan remove method.
Selanjutnya client bisa meng-invoke method-method di EJB Object. EJB Object adalah class yang di-generate oleh enterprise application server, yang meng-implement Remote interface. Dalam implementasi dari method-method yang dideklarasikan di Remote interface, akan di- invoke method bersesuaian di bean implementation.