EJB2 vs EJB3
EJB (Enterprise JavaBeans) adalah Java API (Antarmuka Pemrograman Aplikasi) yang ditemukan dalam spesifikasi Java EE (Platform Java, Enterprise Edition). EJB menjelaskan model arsitektur untuk pengembangan aplikasi perusahaan. Ini adalah model sisi server yang dikelola yang dapat menangkap logika bisnis dari aplikasi perusahaan. IBM adalah pencipta asli EJB yang mengembangkannya pada tahun 1997. Sun Microsystems mengadopsinya pada tahun 1999.
Sebelum diperkenalkannya EJB, ditemukan bahwa solusi untuk masalah yang ditemukan dalam kode bisnis back-end sering diajukan kembali oleh para programmer. Akibatnya, EJB diperkenalkan untuk mengatasi masalah umum ini seperti kegigihan, integritas transaksional dan keamanan. EJB menyediakan cara standar untuk menangani masalah latar belakang ini, dengan menentukan bagaimana server aplikasi harus memproses transaksi, berintegrasi dengan layanan JPA (Java Persistence API), menangani kontrol konkurensi, menangani acara JMS (layanan pesan JAVA), menyelesaikan masalah penamaan dengan JNDI (JNDI ( Java Penamaan dan Antarmuka Direktori), kembangkan program yang aman dengan JCE (ekstensi kriptografi Java) dan JAAS (layanan otentikasi dan otorisasi Java), menggunakan komponen, berkomunikasi jarak jauh dengan RMI-IIOP (Java Remote Doa Interface melalui Internet Inter-Orbor Protocol)) , kembangkan layanan web, panggil 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 Java dengan menggabungkan alat yang dikembangkan oleh vendor yang berbeda. Salah satu tujuan utama EJB2 adalah untuk memungkinkan pemrogram untuk mengembangkan aplikasi perusahaan dengan lebih mudah tanpa harus memahami detail tingkat rendah, seperti multi-threading dan pengumpulan koneksi. Tujuan lain adalah untuk memungkinkan programmer menulis "kacang" sekali dan berlari di mana saja tanpa kompilasi ulang (mematuhi slogan "Write Once, Run Anywhere" dari bahasa pemrograman Java). Selain itu, EJB2 dimaksudkan untuk memungkinkan komponen yang dikembangkan oleh vendor yang berbeda untuk dengan mudah beroperasi, dan memungkinkan vendor menulis ekstensi untuk produk mereka yang dapat mendukung EJBS.
EJB3
EJB3 (EJB 3.0) dirilis pada 11 Mei 2006. EJB3 menjadikan programmer hidup sangat mudah dengan memungkinkan mereka menggunakan anotasi sebagai pengganti deskriptor penyebaran yang digunakan dalam versi sebelumnya. EJB3 berisi antarmuka bisnis dan kacang entitas tertentu yang dapat mengimplementasikan antarmuka bisnis itu, menghilangkan kebutuhan untuk menggunakan antarmuka home/remote dan EJB-JAR.file xml. Kinerja keseluruhan EJB3 jauh lebih baik dibandingkan dengan EJB2, dan ada peningkatan yang cukup besar dalam 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 (objek java tua biasa) dengan deskriptor penyebaran metadata dan xml oleh EJB3 alih -alih pencarian JNDI yang digunakan dalam EJB2 untuk referensi objek. Konfigurasi EJB3 jauh lebih sederhana karena programmer tidak perlu menerapkan antarmuka home/jarak jauh dan lainnya (e.G. Sessionbean), yang menghilangkan kebutuhan untuk menggunakan metode panggilan balik wadah (seperti ejbactivate dan ejbstore).
Selain itu, EJB3 lebih baik daripada EJB2 di bidang fleksibilitas dan portabilitas. Misalnya, mudah untuk mengonversi entitas EJB3 menjadi DAO (objek akses data) dan sebaliknya karena entitas EJB3 ringan (berbeda dengan entitas EJB2 kelas berat, yang menerapkan antarmuka yang disebutkan di atas). Kueri basis data yang ditulis dalam EJB3 sangat fleksibel karena menggunakan EJB-QL yang disempurnakan, sebagai pengganti versi EJB-QL yang lebih lama, yang memiliki beberapa keterbatasan. EJB3 Menghapus semua masalah portabilitas EJB2 (yang menggunakan biji entitas untuk akses basis data) 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 wadah (ini dimungkinkan karena tidak menerapkan antarmuka standar). Tidak seperti EJB2, EJB3 mudah dicolokkan dengan penyedia persistensi yang ditawarkan oleh pihak ketiga. Perbedaan penting lainnya antara EJB3 dan EJB2 adalah bahwa EJB3 dapat menggunakan keamanan berbasis anotasi, sedangkan EJB2 menggunakan Penerapan Penerapan Penerapan Berbasis Keamanan. Ini berarti bahwa tugas konfigurasi dan pengaturan jauh lebih mudah di EJB3, dan ada pengurangan yang cukup besar dalam overhead kinerja dibandingkan dengan EJB2.