Component models provide a consistent framework for software reuse.
It is difficult to envision a component model that fits every problem context. By server-side Java, we are referring to tasks such as database connection, transaction control, persistence, fault tolerance, and caching. The EJB specification is the first attempt from Sun to address these types of activities and create a model for using Java in such environments. EJB is an attempt to provide a framework for these seemingly disparate systems without leaning towards one particular implementation. In fact, the EJB specification is intended mostly for vendors to make their products EJB compliant.