What is the difference between a JavaBean and an Enterprise JavaBean?
It is natural to be confused regarding the relationship between JavaBeans and Enterprise JavaBeans (EJBs), because they share a common
word in their names. However, the two component models share very little in common. You should interpret JavaBean as a synonym for Java component. The fundamental difference between JavaBeans and EJBs is that EJBs are distributed components and JavaBeans are local program components, usually GUI elements.
JavaBeans are reusable software components for Java programs that can be manipulated in a visual builder tool. Most often a JavaBean is simply a class that subclasses java.awt.Component and implements object serialization or externalization. JavaBeans follow a standard
set of method-naming conventions that allow application builder tools to automatically detect the properties, actions, and events supported
by a JavaBean through introspection. The primary intent of JavaBeans is to support visual application development environments, but the
patterns defined by the JavaBeans specification are applicable to class libraries in general. By default, many Java classes are beans simply because they follow JavaBeans method-naming and
Enterprise JavaBeans are also reusable software components, but they provide a distributed component model rather than program-local components. The purpose of EJBs is to isolate business logic and data access in server-side components. EJBs can also be accessed in visual development tools to link events (perhaps originating from a client JavaBean) to EJB actions. Where JavaBeans require Java 1.1 or Java 2 Standard Edition, Enterprise JavaBeans require Java 2 Enterprise Edition.