EJB规范说明定义了Java的服务器端构件模型,目前已有很多可供使用的、由第三方供应商提供的、用于客户机端的构件,但用于服务器端的构件还不多,由于服务器端构件很缺乏或很难构造,因此基本上每一个开发人员还是不得不从头开始构造服务器体系结构,这是一个很糟糕的结果。EJB的出现恰恰是为了解决这个问题,EJB方法扩充了Java的客户端构件模型JavaBeans以及支持服务器端应用系统的开发,在EJB规范说明中,服务器中的很多功能由EJB容器提供,开发人员可以集中精力于应用系统的核心功能上。采用EJB技术可以大大减轻开发服务器端应用系统的工作量,因此EJB规范说明一经发布,立即引起许多开发人员的极大兴趣。

  Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。采用EJB可以使得开发商业应用系统变得容易,应用系统可以在一个支持EJB的环境中开发,开发完之后部署在其他的EJB环境中,随着需求的改变,应用系统可以不加修改地迁移到其他功能更强、更复杂的服务器上。

  EJB简化了多层体系结构应用系统的开发过程。在分布式应用系统的开发中,采用多层体系结构的方法有很多优点,如增加了应用系统的可伸缩性、可靠性、灵活性等。因为服务器端构件可以根据应用需求加以修改,且构件在网络中的位置和应用无关,因此系统管理员可以很容易重新配置系统的负载。多层体系结构非常适合于大数据量的商业事务系统,特别是在基于Web的应用中,需要多层体系结构支持瘦客户机及浏览器的快速Applet下载,目前越来越多的系统开始采用多层体系结构的方法,所谓的多层结构,可以用下图来帮助理解:


  在多层结构中,数据库算是一层,客户端算一层,而客户端和数据库之间统称为N-2层,N-2层主要是表示程序的逻辑。EJB的作用就是在这N-2层里面负责表示程序的逻辑和提供访问数据库的接口。EJB分为两类,一类是实体Bean(Entity Bean),这种EJB和数据库中的表有一一对应的关系,可以在数据改变的时候自动更新表里的内容。还有一类是对话Bean(Session Bean),这种EJB用于和客户端交互,代表了程序的逻辑,我们可以用这两种EJB来方便的构建自己的多层系统。

  EJB把Java的"write once, run anywhere"思想提到了一个新的高度,服务器端构件在构件执行系统内执行,规范说明定义了构件执行系统所需要的服务,遵从EJB规范说明开发的构件可以在任何一个支持EJB的系统中执行。EJB其实是在容器里执行的,Sun公司也发布了EJB容器的规范,EJB可以在任何符合规范的容器中运行,容器其实就是给EJB提供服务的,比如说EJB需要的事务处理,多线程和安全机制等服务。