EJB2 vs EJB3
EJB (Enterprise Javabeans) adalah Java API (Antara Muka Pengaturcaraan Aplikasi) yang terdapat dalam spesifikasi Java EE (Java, Enterprise Edition). EJB menerangkan model seni bina untuk pembangunan aplikasi perusahaan. Ini adalah model sisi pelayan yang diuruskan yang dapat menangkap logik perniagaan aplikasi perusahaan. IBM adalah pencipta asal EJB yang membangunkannya pada tahun 1997. Sun Microsystems mengadopsi pada tahun 1999.
Sebelum pengenalan EJB, didapati bahawa penyelesaian kepada masalah yang terdapat dalam kod perniagaan back-end sering dilaksanakan semula oleh pengaturcara. Akibatnya, EJB diperkenalkan untuk menangani masalah biasa seperti kegigihan, integriti dan keselamatan transaksional. EJB menyediakan cara standard untuk menangani masalah akhir ini, dengan menyatakan bagaimana pelayan aplikasi harus memproses urus niaga, mengintegrasikan dengan perkhidmatan JPA (Java Kegigihan API), mengendalikan kawalan konvensional, mengendalikan peristiwa JMS (Java Message Service), menyelesaikan masalah penamaan dengan JNDI ( Java Penamaan dan Antara Muka Direktori), membangunkan program yang selamat dengan JCE (Java Cryptography Extension) dan JAAS (Java Pengesahan dan Perkhidmatan Kebenaran), menggunakan komponen, berkomunikasi dari jauh dengan RMI-IIOP (Java Remote Method Interface melalui protokol internet internet) , mengembangkan perkhidmatan web, memohon kaedah asynchronous dan menggunakan perkhidmatan pemasa.
EJB2
EJB2 (EJB 2.0) dibebaskan pada 22 Ogos 2001. Ia menerangkan spesifikasi untuk membangunkan aplikasi berorientasikan objek yang diedarkan di Java dengan menggabungkan alat yang dibangunkan oleh vendor yang berbeza. Salah satu matlamat utama EJB2 adalah untuk membolehkan pengaturcara membangunkan aplikasi perusahaan dengan lebih mudah tanpa perlu memahami butiran peringkat rendah, seperti penyatuan multi-threading dan sambungan. Matlamat lain adalah untuk membolehkan pengaturcara menulis "kacang" sekali dan berjalan di mana -mana tanpa rekompilasi (mematuhi slogan "Tulis Sekali, Di Mana -mana" bahasa Java). Tambahan pula, EJB2 bertujuan untuk membolehkan komponen yang dibangunkan oleh vendor yang berbeza untuk berinteraksi dengan mudah, dan membolehkan vendor menulis sambungan untuk produk mereka yang dapat menyokong EJBS.
EJB3
EJB3 (EJB 3.0) dibebaskan pada 11 Mei 2006. EJB3 Made Programmer Life sangat mudah dengan membenarkan mereka menggunakan anotasi sebagai pengganti deskriptor penempatan yang digunakan dalam versi sebelumnya. EJB3 mengandungi antara muka perniagaan dan kacang entiti tertentu yang boleh melaksanakan antara muka perniagaan, menghapuskan keperluan untuk menggunakan antara muka rumah/jauh dan EJB-Jar.Fail XML. Prestasi keseluruhan EJB3 jauh lebih baik berbanding EJB2, dan terdapat peningkatan yang besar dalam konfigurasi, fleksibiliti dan mudah alih dalam pelepasan EJB ini.
Apakah perbezaan antara EJB2 dan EJB3?
EJB3 mempunyai peningkatan yang ketara dalam konfigurasi dan prestasi melalui EJB2. Salah satu sebab untuk peningkatan prestasi ini ialah penggunaan POJO (objek Java lama biasa) dengan metadata dan deskriptor penyebaran XML oleh EJB3 dan bukannya carian JNDI yang digunakan dalam EJB2 untuk rujukan objek. Konfigurasi EJB3 lebih mudah kerana pengaturcara tidak perlu melaksanakan antara muka rumah/jauh dan lain -lain (e.g. Sessionbean), yang menghilangkan keperluan untuk menggunakan kaedah panggilan balik kontena (seperti ejbactivate dan ejbstore).
Tambahan pula, EJB3 lebih baik daripada EJB2 dalam bidang fleksibiliti dan kebolehpercayaan. Sebagai contoh, mudah untuk menukar entiti EJB3 ke DAO (objek akses data) dan sebaliknya kerana entiti EJB3 ringan (berbanding dengan entiti EJB2 kelas berat, yang melaksanakan antara muka yang disebutkan di atas). Pertanyaan pangkalan data yang ditulis dalam EJB3 sangat fleksibel kerana ia menggunakan EJB-QL yang halus, sebagai ganti versi lama EJB-QL, yang mempunyai beberapa batasan. EJB3 menghilangkan semua isu mudah alih EJB2 (yang menggunakan entiti kacang untuk akses pangkalan data) dengan menyokong JPA yang lebih umum untuk semua urus niaga data.
Tidak seperti EJB2, yang memerlukan bekas EJB untuk dilaksanakan, EJB3 boleh dilaksanakan dalam JVM bebas (mesin maya Java) tanpa perlu menggunakan bekas (ini mungkin kerana ia tidak melaksanakan antara muka standard). Tidak seperti EJB2, EJB3 mudah dipasang dengan penyedia ketekunan yang ditawarkan oleh pihak ketiga. Satu lagi perbezaan penting antara EJB3 dan EJB2 ialah EJB3 boleh menggunakan keselamatan berasaskan anotasi, manakala EJB2 menggunakan deskriptor penyebaran berasaskan keselamatan. Ini bermaksud bahawa tugas konfigurasi dan persediaan lebih mudah dalam EJB3, dan terdapat pengurangan prestasi yang besar berbanding dengan EJB2.