Kurumsal Java Çekirdekleri(Enterprice JavaBeans – EJB) dağıtık bileşenleri inşa etmek için ortaya çıkarılmıştır. CORBA mimarisinin bütün karmaşıklıklarını ve bütün problemleri çözeceği sözüyle gelmiştir. J2EE’nin kalbi olarak EJB, çok fazla gözden geçirmeden geçti ve gelişti. Geliştiricilerin çoğu EJB’yi hemen kabullendi ve projelerinde gereksiz bile olsa kullanmaya başladı.
Kurumsal Java Çekirdekleriyle çalışmak roket bilimi değildir fakat ona yakındır. En azından EJB, Java dilini bilen ve seven ve anlaşılması kolay ve küçük web uygulamalarında kullanan programcılar için yeni bir jenerasyona bir yol olarak görülebilir.
Bir ironi olarak EJB programcılara birçok şeyi kolay yapmasını sağlamak için getirilmişken, dağıtık hesaplama, güvenlik, kalıcılık ve birçok diğerleri için ara katman yazılımı gibi servisler sağlamak çok fazla karışıklık getirdi. Bu durumun gerçekleşmesi olağandır, çünkü EJB, programcıların bilgisiz olduğu birçok bağlantılı teknolojiyi kapsamaktadır. EJB’den optimumda faydalanmak için ise çok fazla bir öğrenme gerektirmektedir. EJB’yi kullanacak kişinin çekirdeklerin farklı tiplerini, onların birbirleriyle ilişkilerini, J2EE server-side programlama modelinde nasıl kullanılacağını, vs bilmesi gerekmektedir. EJB bileşenlerinin daha rahat bir şekilde kullanılabilmesi için ise EJB3.0 geliştirilmiştir. EJB bileşenleri yazmayı birleştirmenin bir yolu Kap Tabanlı Kalıcılık (Container –Managed Persistence – MP) modelini kullanmak olabilir. Ancak çok komplekstir. Bu nedenle POJO (Plain Old Java Objects)’ya bakılmıştır. CMP’de olduğu gibi tüm arayüz bileşenlerine ihtiyaç duymazlar.
EJB’nin karmaşıklıkları:
- Bir sürü gereksiz geri çağrı metodlarının implementasyonu ve bir sürü arayüz bileşeninin yaratımını gerektirmektedir.
- Bileşen arayüzleri EJBObject ya da EJBLocalObjext’in implementasyonunu ve bir çok gereksiz aykırı durumunun tutulmasını gerektiriyor.
- EJB yayımlama belirticisi(deployment descriptor) karmaşık ve hata eğilimlidir.
- CMP’nin geliştirmesi ve yönetmesi çok zordur.
- EJB bileşenleri, kalıtım ya da çok biçimlilikte kullanmak için kısıtlara sahiptir. Bu da nesne yönelimli değilmiş gibi bir görüntü vermektedir. Birden fazla gözden kaçan özellik bulunmaktadır. EJBQL çok fazla limite sahiptir.
- EJB taşıyıcısının dışından EJB modülü test edilemez ya da taşıyıcının içinde EJB’ye hata ayıklama yapmak ise geliştiriciler için kabus gibidir.
Referanslar:
http://adtmag.com/Articles/2004/06/01/Simple-EJB-Is-it-ready-yet.aspx?Page=1
http://www.javaworld.com/javaworld/jw-08-2004/jw-0809-ejb.html
http://www.theserverside.com/news/1364156/Simplifying-EJB-development-with-EJB-30
Leave a Reply