The Enterprise JavaBeans specification defines a standard architecture for implementing the business logic of multi-tier applications as reusable components
In addition to Enterprise JavaBeans components, the architecture defines three other entities:
This architecture incorporates several design goals:
Enterprise JavaBeans servers are designed to wrap around legacy systems to provide fundamental services for "containers and the components they contain"
Enterprise JavaBeans containers are designed to handle details of "component" life-cycle, transaction, and security management
Component developers are free to focus on business logic, since containers provide services automatically by interceding in component method calls. A simple set of callback interfaces are all that a developer needs to implement to participate in container provided services.
A client's view of an Enterprise JavaBean remains the same regardless of the container it is deployed in. Any container in which an Enterprise JavaBean is deployed presents the same interfaces to the client. This extends to containers from different vendors, running against different servers and different databases, on diverse systems on a network. This client transparency ensures wide scalability for multi-tier applications.