Perbezaan Antara EJB2 dan EJB3

Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) adalah Java API (Interface Programming Application) yang terdapat dalam Java EE Spesifikasi (Platform Java, 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 standard untuk menangani masalah akhir ini, dengan menyatakan bagaimana pelayan aplikasi memproses urus niaga, mengintegrasikan dengan perkhidmatan JPA (Java Persistence API), mengendalikan kawalan concurrency, mengendalikan JMS (Java Message Service) Acara, menyelesaikan masalah penamaan dengan JNDI (Java Naming dan Direktori Interface), 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), mengembangkan 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 membangunkan aplikasi perusahaan dengan lebih mudah tanpa perlu memahami butiran peringkat rendah, seperti multi-threading dan penyatuan sambungan. Matlamat lain adalah untuk membolehkan pengaturcara menulis "Bean" sekali dan berjalan di mana-mana tanpa pengompilasi (mematuhi "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 sambungan untuk produk mereka yang boleh menyokong EJBs.

- EJB3 (EJB 3. 0) telah dikeluarkan pada 11 Mei, 2006. EJB3 membuat kehidupan pengaturcara sangat mudah dengan membenarkan mereka menggunakan anotasi sebagai pengganti deskriptor penempatan yang digunakan pada sebelumnya versi. EJB3 mengandungi antara muka perniagaan dan kacang entiti tertentu yang boleh melaksanakan antara muka perniagaan itu, mengeluarkan keperluan untuk menggunakan antara muka rumah / jauh dan ejb-jar. fail xml. Prestasi keseluruhan EJB3 jauh lebih baik berbanding dengan 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 jelas dalam konfigurasi dan prestasi berbanding EJB2. Salah satu sebab untuk peningkatan prestasi ini adalah penggunaan POJO (Plain Java Old 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 programmer tidak perlu melaksanakan antaramuka Home / Remote dan lain-lain (e.g. SessionBean), yang menghilangkan keperluan untuk menggunakan kaedah panggilan balik kontena (seperti ejbActivate dan ejbStore).

Tambahan pula, EJB3 adalah 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 (bertentangan dengan entiti EJB2 kelas berat, yang melaksanakan antaramuka yang disebutkan di atas). Pertanyaan pangkalan data yang ditulis dalam EJB3 sangat fleksibel kerana ia 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 transaksi data.

Berbeza dengan EJB2, yang memerlukan bekas EJB untuk dilaksanakan, EJB3 boleh dilaksanakan dalam JVM bebas (Mesin Maya Maya) tanpa perlu menggunakan bekas (ini mungkin kerana ia tidak melaksanakan antara muka standard). Tidak seperti EJB2, EJB3 mudah digenggam 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.