Component Transaction Monitors (CTMs) are relatively new types of application servers that perform a number of services, such as [2]:
Connectivity between distributed objects and their clients
Transaction handling
Concurrency
Persistence
Security
Resource pooling
Load-balancing
Connectivity is provided by object request brokers (ORBs). It is the other services that distinguish an ORB from a CTM. Developers using ORBs must handle those considerations, forcing them to deal with the same low-level issues for each application.
Enterprise JavaBeans are not revolutionary. The EJB architecture is essentially a specification and Java API that provide abstractions for the services of a CTM. It allows distributed Java components to be developed in a vendor-independent manner. Vendors may implement the services very differently, but they must all conform to the EJB specification and interfaces to be considered Java 2 Enterprise Edition (J2EE)-compliant.