EJB 2.x is broadly adopted server side component architecture for J2EE.
1. EJB is a remote, distributed multi-tier system and allows protocols like IIOP, JRMP, and HTTP etc.
2. It enables rapid development of versatile, reusable, and portable business elements which are scalable and transactional.
3. EJB is a specified for J2EE servers. EJB elements contain only business logic and system level programming and produces like transactions, instance pooling , security, multi-threading, persistence etc are allowed by the EJB Container and hence simplify the programming load.
4. Message driven EJBs have to allow for asynchronous communication.
Having said that EJB 2.x is a broadly adopted server side component, EJB 3.0 is having ease of development very majorly and has adjusted its model to allow the POJO (Plain Old Java Object) persistence and the new O/R mapping model based on Hibernate. In EJB 3.0, all models of enterprise beans are just POJOs. EJB 3.0 extensively needs Java annotations, which reduces excessive XML based configuration files and reduces the need for the hard component model added in EJB 1.x, 2.x.