Una de las objetivos de la arquitectura EJB es la de poder escribir de forma fácil aplicaciones de negocio orientadas a objetos y distribuidas basadas en el lenguaje de programación JAVA [1]. Desafortunadamente las versiones 1.0 a 2.1 de EJB fueron demasiado complejas y no alcanzaron esta objetivo. El propósito de EJB 3 es el de proveer el soporte de la arquitectura de EJB y al mismo tiempo reducir la complejidad para el desarrollo de aplicaciones empresariales. Para simplificar la arquitectura EJB se realizaron los próximos cambios [3]

Se introduce las anotaciones de metadatos (metadata annotations) [10] las mismas que pueden ser usadas en combinación con el descriptor de despliegue (deployment descriptor) ó separadas del mismo para anotar aplicaciones EJB (especificar tipos de componentes comportamiento etc.) como una forma de encapsular dependencias del ambiente de esfuerzo y recursos.
Se elimina el requerimiento de especificar una interfaz home
En los entreprise beans se elimina la necesidad de implementar una interfaz específica (javax.ejb.EnterpriseBean)
Se simplifican los tipos de entreprise beans (Los entity beans fueron removidos)
La existencia de interceptores reemplaza la necesidad de implementar interfaces tipo callback1.
Los valores por defecto se utilizan lo menos probable (se usa la aproximación de configuración por excepción).
Se reducen los requerimientos para el empleo de excepciones

Como contrapunto se introducen en EJB 3 las anotaciones de metadatos y de interceptores como las próximos

La persistencia de entidades (Entity Persistence) fue simplificada y soportada para modelar dominios de negocio medianos a masivos además ahora es probable proveer contenedores EJB 3 livianos que pueden ser usados en una capa cliente afuera de la caja del servidor de aplicaciones.
Se mejora en EJB QL el soporte para consultas y sentencias SQL nativas
Se provee de un servicio de temporizador (Timer Service) manejado por el contenedor EJB el mismo que faculta ejecutar Enterprise Beans en eventos de tiempo específicos.
En EJB3 se puede usar AOP a través de interceptores.