EJB2 vs EJB3
EJB (Enterprise JavaBeans) adalah API Java (Antara Muka Pemrograman Aplikasi) yang terdapat dalam spesifikasi Java EE (Java Platform, Enterprise Edition). EJB menerangkan model seni bina untuk pembangunan aplikasi perusahaan. Ini adalah model sisi pelayan yang dikendalikan yang dapat menangkap logik perniagaan aplikasi perusahaan. IBM adalah pencipta asal EJB yang membangunkannya pada tahun 1997. Sun Microsystems menerimanya pada tahun 1999.
Sebelum pengenalan EJB, didapati bahawa penyelesaian kepada masalah yang terdapat dalam kod perniagaan back-end sering dilaksanakan oleh pengaturcara. Akibatnya, EJB diperkenalkan untuk menangani masalah-masalah biasa seperti kegigihan, integriti transaksi dan keselamatan. EJB menyediakan cara-cara piawai untuk menangani masalah akhir ini, dengan menyatakan bagaimana pelayan aplikasi harus memproses urus niaga, mengintegrasikan dengan perkhidmatan JPA (Java Persistence API), mengendalikan pengendalian concurrency, mengendalikan JMS (Java Message Service), menyelesaikan masalah penamaan dengan JNDI ( Java Naming and Interface Directory), membangunkan program-program yang selamat dengan JCE (Java Cryptography Extension) dan JAAS (Perkhidmatan Pengesahian dan Kebenaran Java), mengerahkan komponen, berkomunikasi dengan jarak jauh dengan RMI-IIOP (Interpolasi Penyambungan Cara Jauh Java melalui Protokol Inter-Orb Internet) , membangunkan perkhidmatan web, menggunakan kaedah tak segerak dan gunakan perkhidmatan Pemasa.
EJB2
EJB2 (EJB 2.0) dikeluarkan pada 22 Ogos, 2001. Ia menerangkan spesifikasi untuk membangunkan aplikasi berorientasikan objek yang diedarkan di Jawa dengan menggabungkan alat yang dibangunkan oleh vendor yang berbeza. Salah satu matlamat utama EJB2 adalah untuk membolehkan para pengaturcara untuk membangunkan aplikasi perusahaan dengan lebih mudah tanpa perlu memahami butiran peringkat rendah, seperti penyebaran multi-threading dan sambungan. Matlamat lain adalah untuk membolehkan pengaturcara menulis "Bean" sekali dan lari ke mana-mana tanpa kompilasi (berpegang pada "menulis sekali, jalankan mana-mana" slogan bahasa pengaturcaraan Java). Selain itu, EJB2 bertujuan untuk membolehkan komponen yang dibangunkan oleh vendor yang berbeza untuk berinteraksi dengan mudah, dan membolehkan vendor untuk menulis pelanjutan untuk produk mereka yang boleh menyokong EJB.
EJB3
EJB3 (EJB 3.0) dikeluarkan pada 11 Mei, 2006. EJB3 membuat kehidupan pengaturcara sangat mudah dengan membenarkan mereka menggunakan anotasi sebagai pengganti deskriptor penempatan yang digunakan dalam versi terdahulu. EJB3 mengandungi antara muka perniagaan dan kacang entiti tertentu yang boleh melaksanakan antara muka perniagaan itu, menghapuskan keperluan untuk menggunakan antara muka rumah / jauh dan fail ejb-jar.xml. Prestasi keseluruhan EJB3 jauh lebih baik berbanding dengan EJB2, dan terdapat peningkatan yang besar dalam konfigurasi, fleksibiliti dan mudah dibawa dalam pelepasan EJB ini.
Apakah perbezaan antara EJB2 dan EJB3??
EJB3 mempunyai peningkatan yang jelas dalam konfigurasi dan prestasi ke atas EJB2. Salah satu sebab untuk peningkatan prestasi ini ialah penggunaan POJO (Plain Old Java Object) dengan metadata dan XML Deployment Descriptors oleh EJB3 dan bukannya JNDI lookups yang digunakan dalam EJB2 untuk rujukan objek. Konfigurasi EJB3 jauh lebih mudah kerana pemrogram tidak perlu melaksanakan antaramuka Home / Remote dan lain-lain (mis. SessionBean), yang menghilangkan keperluan untuk menggunakan kaedah panggilan balik kontena (seperti ejbActivate dan ejbStore).
Selain itu, EJB3 lebih baik daripada EJB2 dalam bidang fleksibiliti dan mudah alih. Sebagai contoh, mudah untuk menukar entiti EJB3 ke DAO (Data Access Object) dan sebaliknya kerana entiti EJB3 adalah ringan (berbanding dengan entiti EJB2 kelas berat, yang melaksanakan antaramuka yang disebutkan di atas). Pertanyaan pangkalan data yang ditulis dalam EJB3 sangat fleksibel kerana menggunakan EJB-QL halus, sebagai ganti versi lama EJB-QL, yang mempunyai beberapa batasan. EJB3 membuang semua isu mudah alih EJB2 (yang menggunakan kacang entiti 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 (Java Virtual Machine) tanpa perlu menggunakan bekas (ini mungkin kerana ia tidak melaksanakan antara muka standard). Tidak seperti EJB2, EJB3 mudah dipasang dengan pembekal ketekunan yang ditawarkan oleh pihak ketiga. Satu lagi perbezaan penting antara EJB3 dan EJB2 ialah EJB3 boleh menggunakan keselamatan berasaskan penjelasan, manakala EJB2 menggunakan keselamatan berasaskan deskriptor. Ini bermakna tugas konfigurasi dan persediaan lebih mudah dalam EJB3, dan terdapat pengurangan yang banyak dalam overhed prestasi berbanding dengan EJB2.