EJB2 vs EJB3
EJB (Enterprise JavaBeans), Java EE (Java Platform, Enterprise Edition) belirtiminde bulunan bir Java API'sidir (Uygulama Programlama Arayüzü). EJB, kurumsal uygulamaların geliştirilmesi için bir mimari model tanımlar. Bu, kurumsal uygulamanın iş mantığını yakalayabilen, yönetilen bir sunucu tarafı modelidir. IBM, EJB'yi 1997'de geliştiren orijinal yaratıcısıdır. Sun Microsystems, bunu 1999'da benimsemiştir.
EJB'nin tanıtılmasından önce, arka uç iş kodunda bulunan sorunlara çözümlerin programcılar tarafından sıklıkla yeniden uygulandığı bulundu. Sonuç olarak, kalıcılık, işlem bütünlüğü ve güvenlik gibi bu yaygın sorunları ele almak için EJB tanıtıldı. EJB, uygulama sunucusunun işlemleri nasıl işlemesi gerektiğini, JPA (Java Persistence API) hizmetleriyle bütünleşmesini, eşzamanlılık kontrolünü ele alması, JMS (Java Mesaj Hizmeti) Olaylarını işlemesi, JNDI ile adlandırma sorunlarını çözmesi gerektiğini belirterek bu arka uç sorunlarının üstesinden gelmek için standart yollar sağlar (Java Adlandırma ve Dizin Arayüzü), JCE (Java Cryptography Extension) ve JAAS (Java Authentication and Authorization Service) ile güvenli programlar geliştirin, bileşenleri dağıtın, RMI-IIOP (Inter-Orb Protokolü üzerinden Java Uzak Yöntem Çağırma arabirimi) ile uzaktan iletişim kurun., web hizmetleri geliştirin, eşzamansız yöntemleri çağırın ve Zamanlayıcı hizmetini kullanın.
EJB2
EJB2 (EJB 2.0) 22 Ağustos 2001'de yayınlandı. Farklı satıcılar tarafından geliştirilen araçları birleştirerek Java'da dağıtılmış nesne yönelimli uygulamalar geliştirmeye yönelik özellikleri açıklar. EJB2'nin ana hedeflerinden biri, programcıların çoklu iş parçacığı oluşturma ve bağlantı havuzu oluşturma gibi düşük düzeyli ayrıntıları anlamalarına gerek kalmadan kurumsal uygulamaları daha kolay geliştirmelerine olanak tanımaktı. Diğer bir amaç, programcıların bir kez bir “Bean” yazmasına ve yeniden derlemeye gerek kalmadan herhangi bir yerde çalışmasına izin vermekti (Java programlama dilinin “bir kez yaz, her yerde çalıştır” sloganına bağlı kalarak). Ayrıca, EJB2, farklı satıcılar tarafından geliştirilen bileşenlerin kolayca birlikte çalışmasına ve satıcıların ürünleri için EJB'leri destekleyebilecek uzantılar yazmasına izin vermeyi amaçladı.
EJB3
EJB3 (EJB 3.0) 11 Mayıs 2006'da piyasaya sürüldü. EJB3, önceki sürümlerde kullanılan dağıtım tanımlayıcıları yerine açıklamaları kullanmalarına izin vererek programcıların hayatını çok kolaylaştırdı. EJB3, ev/uzak arabirimleri ve ejb-jar.xml dosyasını kullanma ihtiyacını ortadan kaldırarak, bu iş arabirimini uygulayabilen bir iş arabirimi ve belirli bir varlık çekirdeği içerir. EJB3'ün genel performansı, EJB2'ye kıyasla çok daha iyileştirildi ve EJB'nin bu sürümünde yapılandırılabilirlik, esneklik ve taşınabilirlikte önemli bir artış var.
EJB2 ve EJB3 arasındaki fark nedir?
EJB3, yapılandırma ve performansta EJB2'ye göre gözle görülür bir gelişmeye sahiptir. Bu performans iyileştirmesinin bir nedeni, nesne referansları için EJB2'de kullanılan JNDI aramaları yerine, meta veriler ve XML Dağıtım Tanımlayıcıları ile POJO'nun (Düz Eski Java Nesnesi) kullanılmasıdır. EJB3'ün konfigürasyonu çok daha basittir çünkü programcının Ev/Uzak arayüzleri ve diğerlerini (örn.
Ayrıca, EJB3, esneklik ve taşınabilirlik alanlarında EJB2'den daha iyidir. Örneğin, EJB3 varlıklarını DAO'ya (Veri Erişim Nesnesi) dönüştürmek kolaydır, çünkü EJB3 varlıkları hafiftir (yukarıda belirtilen arabirimleri uygulayan ağır EJB2 varlıklarının aksine). EJB3'te yazılan veritabanı sorguları çok esnektir çünkü EJB-QL'nin çeşitli sınırlamaları olan eski sürümünün yerine iyileştirilmiş bir EJB-QL kullanır. EJB3, tüm veri işlemleri için daha genelleştirilmiş JPA'yı destekleyerek EJB2'nin (veritabanı erişimi için varlık çekirdeklerini kullanan) tüm taşınabilirlik sorunlarını ortadan kaldırır.
Yürütmek için bir EJB kapsayıcısına ihtiyaç duyan EJB2'nin aksine, EJB3, kapsayıcıları kullanmak zorunda kalmadan bağımsız bir JVM'de (Java Sanal Makinesi) yürütülebilir (standart arabirimleri uygulamadığından bu mümkündür). EJB2'den farklı olarak, EJB3, üçüncü şahıslar tarafından sunulan kalıcılık sağlayıcıları ile kolayca takılabilir. EJB3 ve EJB2 arasındaki bir diğer önemli fark, EJB3'ün açıklama tabanlı güvenliği kullanabilmesi, EJB2'nin ise dağıtım tanımlayıcılarına dayalı güvenlik kullanmasıdır. Bu, yapılandırma ve kurulum görevlerinin EJB3'te çok daha kolay olduğu ve EJB2'ye kıyasla performans ek yüklerinde önemli bir azalma olduğu anlamına gelir.