EJB memiliki banyak bagasi. Sebagian dari bagasi itu berasal dari fakta bahwa ia ditargetkan pada audiens yang salah. Bagian lain adalah bahwa dua versi pertama adalah omong kosong.
Jika Anda melihat versi EJB asli, desainnya adalah pengembang EJB dapat membuat solusi paket yang dapat digunakan dalam wadah yang sesuai dengan EJB. Untuk toko di rumah, tingkat abstraksi ini tidak perlu. Itu adalah solusi sempurna untuk membuat pasar yang berkembang untuk vendor komponen EJB pihak ketiga. Namun, vendor Container terlalu bersemangat dalam pemasaran mereka dan membuat ton menjual produk mereka sebagai solusi yang layak untuk pengembangan setiap hari. Ini akan sama dengan membangun semua kode aplikasi Anda sebagai komponen COM +.
Untuk lebih banyak latar belakang pada spesifikasi J2EE asli, sebagian besar vendor yang terlibat memiliki server CORBA dan ingin memanfaatkan produk-produk tersebut di masa mendatang. EJB spec dibangun di atas protokol IIOP (sebenarnya Java RMI yang merupakan lapisan tipis di atas IIOP). CORBA telah ditolak karena kerumitannya, dan EJB hanyalah CORBA yang menyamar sehingga membawa banyak masalah yang dimiliki CORBA. Sebenarnya, abstraksi EJB membuatnya lebih sulit untuk dikerjakan dibandingkan dengan implementasi CORBA murni.
Begitu karet menyentuh trotoar, orang-orang menyadari bahwa kinerja dengan EJB mengerikan. Dengan setiap panggilan menjadi panggilan jarak jauh dan kesulitan untuk memulai dan menjalankan aplikasi dengan benar, orang dengan cepat mencari alternatif. Menjalankan Hibernate dan Spring dalam wadah JSP menjadi solusinya.
EJB 3 "mengadopsi" pendekatan ini. Tapi itu masih kompromi umum yang tidak memberikan banyak manfaat. Masih belum ada pasar komponen EJB pihak ke-3 sehingga benar-benar tidak ada gunanya menggunakan wadah EJB untuk membangun solusi Anda.
Singkat cerita. Sementara EJB 3 adalah peningkatan besar selama dua iterasi pertama, itu masih tidak memberikan manfaat yang cukup untuk melebihi biaya.