EJB2 vs EJB3
EJB (Enterprise JavaBeans) adalah Java API (Application Programming Interface) yang ditemukan dalam spesifikasi Java EE (Java Platform, Enterprise Edition). EJB menjelaskan model arsitektur untuk pengembangan aplikasi perusahaan. Ini adalah model sisi server yang dikelola yang mampu menangkap logika bisnis aplikasi perusahaan. IBM adalah pencipta asli EJB yang mengembangkannya pada tahun 1997. Sun Microsystems mengadopsinya pada tahun 1999.
Sebelum pengenalan EJB, ditemukan bahwa solusi untuk masalah yang ditemukan dalam kode bisnis back-end sering diimplementasikan kembali oleh para programmer. Sebagai hasilnya, EJB diperkenalkan untuk mengatasi masalah-masalah umum seperti ketekunan, integritas transaksional dan keamanan. EJB menyediakan cara standar untuk menangani masalah-masalah back-end ini, dengan menentukan bagaimana server aplikasi harus memproses transaksi, berintegrasi dengan layanan JPA (Java Persistence API), menangani kontrol concurrency, menangani Event JMS (Java Message Service), menyelesaikan masalah penamaan dengan JNDI ( Penamaan Java dan Antarmuka Direktori), kembangkan program aman dengan JCE (Java Cryptography Extension) dan JAAS (Java Authentication and Authorization Service), menyebarkan komponen, berkomunikasi dari jarak jauh dengan RMI-IIOP (antarmuka Java Remote Method Invocation melalui Internet Inter-Orb Protocol) , kembangkan layanan web, aktifkan metode asinkron dan gunakan layanan Timer.
EJB2
EJB2 (EJB 2.0) dirilis pada 22 Agustus 2001. Ini menjelaskan spesifikasi untuk mengembangkan aplikasi berorientasi objek terdistribusi di Jawa dengan menggabungkan alat yang dikembangkan oleh vendor yang berbeda. Salah satu tujuan utama EJB2 adalah untuk memungkinkan programmer untuk mengembangkan aplikasi perusahaan lebih mudah tanpa harus memahami detail tingkat rendah, seperti multi-threading dan koneksi pooling. Tujuan lain adalah untuk memungkinkan programmer untuk menulis "Bean" sekali dan menjalankan di mana saja tanpa kompilasi ulang (mengikuti slogan "menulis sekali, jalankan di mana saja" dari bahasa pemrograman Java). Lebih jauh, EJB2 dimaksudkan untuk memungkinkan komponen yang dikembangkan oleh vendor yang berbeda untuk dengan mudah dioperasikan, dan memungkinkan vendor untuk menulis ekstensi untuk produk mereka yang dapat mendukung EJBs.
EJB3
EJB3 (EJB 3.0) dirilis pada 11 Mei 2006. EJB3 membuat hidup programmer sangat mudah dengan memungkinkan mereka untuk menggunakan anotasi sebagai pengganti deskriptor penempatan yang digunakan dalam versi sebelumnya. EJB3 berisi antarmuka bisnis dan kacang entitas tertentu yang dapat mengimplementasikan antarmuka bisnis itu, menghilangkan kebutuhan untuk menggunakan antarmuka rumah / jarak jauh dan file ejb-jar.xml. Kinerja keseluruhan EJB3 jauh lebih baik dibandingkan dengan EJB2, dan ada peningkatan yang cukup besar dalam hal konfigurasi, fleksibilitas, dan portabilitas dalam rilis EJB ini..
Apa perbedaan antara EJB2 dan EJB3?
EJB3 memiliki peningkatan yang nyata dalam konfigurasi dan kinerja dibandingkan EJB2. Salah satu alasan untuk peningkatan kinerja ini adalah penggunaan POJO (Plain Old Java Object) dengan metadata dan XML Deployment Descriptors oleh EJB3 alih-alih pencarian JNDI yang digunakan dalam EJB2 untuk referensi objek. Konfigurasi EJB3 jauh lebih sederhana karena programmer tidak perlu mengimplementasikan antarmuka Home / Remote dan lainnya (mis. SessionBean), yang menghilangkan kebutuhan untuk menggunakan metode panggilan balik kontainer (seperti ejbActivate dan ejbStore).
Selain itu, EJB3 lebih baik daripada EJB2 di bidang fleksibilitas dan portabilitas. Sebagai contoh, mudah untuk mengkonversi entitas EJB3 ke DAO (Data Access Object) dan sebaliknya karena entitas EJB3 ringan (dibandingkan dengan entitas EJB2 kelas berat, yang mengimplementasikan antarmuka yang disebutkan di atas). Kueri basis data yang ditulis dalam EJB3 sangat fleksibel karena menggunakan EJB-QL yang disempurnakan, sebagai ganti EJB-QL versi lama, yang memiliki beberapa keterbatasan. EJB3 menghapus semua masalah portabilitas EJB2 (yang menggunakan entitas kacang untuk akses database) dengan mendukung JPA yang lebih umum untuk semua transaksi data.
Tidak seperti EJB2, yang membutuhkan wadah EJB untuk dieksekusi, EJB3 dapat dieksekusi dalam JVM independen (Java Virtual Machine) tanpa harus menggunakan kontainer (ini dimungkinkan karena tidak mengimplementasikan antarmuka standar). Tidak seperti EJB2, EJB3 mudah dicolokkan dengan penyedia kegigihan yang ditawarkan oleh pihak ketiga. Perbedaan penting lainnya antara EJB3 dan EJB2 adalah bahwa EJB3 dapat menggunakan keamanan berbasis anotasi, sementara EJB2 menggunakan keamanan berbasis deployment descriptors. Ini berarti bahwa tugas-tugas konfigurasi dan pengaturan jauh lebih mudah di EJB3, dan ada pengurangan besar dalam overhead kinerja dibandingkan dengan EJB2.