当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>J2EE

详细解析 JavaBeans 与 Ejb 的区别


  您现在可能已在使用 Javabeans,但还不了解它。如果有支持 Java 的浏览器,那么,在桌面上使用 Javabeans 就没有限制。使用的 Web 页面可以将 beans 作为小应用程序的一部分。您很快就会和作为浏览器可视部分的 Javabeans 交互,然后,那些 Javabeans 将与服务器上的 EJB 接口。这种能力也可以扩展到因特网和内部网。
  
  Javabeans 和 Server beans(通常称为 Enterprise Javabeans (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 beans 的行为根据特定任务和所在环境的不同而有所不同。
  
  这开辟了巨大商机。因为 Javabeans 是与平台无关的,所以对于将来的解决方案,供应商可以轻易向不同用户推出其客户机方的 Javabeans,而不必创建或维护不同的版本。这些 Javabeans 可以与执行商业功能(例如订购、信用卡处理、电子汇款、存货分配、运输等)的 EJB 配合使用。这里有巨大潜力,而这正是组件代理(WebSphere Application Server 企业版)设计提供的那种潜力。
  
  Javabeans 是一种组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的 beans 可以询问和集成。可以构建一个 beans,而在以后构造时将其与其它 beans 绑定。这种过程提供了先构建,然后重复使用的方法,这就是组件的概念。可以将这种单一应用程序部署成独立程序、ActiveX 组件或在浏览器中。
  
  Javabeans 因其外部接口(即属性接口)而与纯对象不同。这种接口允许工具读取组件要执行的功能,将其与其它 beans 挂钩,以及将其插入其它环境。Javabeans 设计成对单一进程而言是本地的,它们在运行时通常可视。这种可视组件可能是按钮、列表框、图形或图表 - 但这不是必需的。
  
  ActiveX 对象可以将 Javabeans 部署成 ActiveX 对象,虽然 EJB 的代理也可以这样做,但是,因为 ActiveX 运行在桌面上,所以,EJB 本身不能成为 ActiveX 对象。要在与平台相关的、仅 Windows 平台上做到这一点,开发人员可以将 Javabeans 变换成 ActiveX 组件。
  
  EJB 的主要好处在于:构建 beans 时,beans 开发人员可以规定需要什么类型的行为,而不必规定如何去做。开发分为两部分:程序员开发 beans,然后验证:它可与构建工具一起工作,并包括标识所需服务质量行为种类的部署描述符。下一步,另一个程序员可以采用这个 beans,并使用读取 EJB 部署描述符的部署工具,然后将该 beans 安装到 Enterprise Java Server 上的容器中。在第二步中,部署工具采取一些操作,这可能意味着生成如状态保存代码,放入事务挂钩,或执行安全性检查这样的代码。所有这些操作由部署工具生成,beans 开发人员和部署人员可以是不同的人。
  
  可以通过使用部署工具,将任何独立于平台的 Javabeans 改写成具有可靠服务质量、特定于平台的 EJB,以满足现有商业系统和应用程序的特定需求。这就是 EJB 服务器对集成系统、网络和体系结构如此重要的原因所在。
  
  EJB 与 IBM WebSphere 企业版:
  在 IBM WebSphere 企业版中使用时,可以将 EJB 配置成被管理的商业对象。接受它们授权服务的容器是其安装到的容器。将 EJB 的持久性部分映射在数据或状态对象中。EJB 服务器为 EJB 提供不同的服务质量,选择正确的 EJB 服务器可能对满足完整的商业需求至关重要。“组件代理”功能极其健壮,该功能提供如负载均衡和支持服务器组中多台机器的高级功能。它还有大大超出 Enterprise Java Server (EJS) 规范所倡导的系统管理功能。因此,按照基本标准编写的 Javabeans 或 EJB 可以运行在使用“组件代理”功能的 WebSphere 企业版上,并获得那些所有的附加功能。
  
  EJB 服务器还提供独特的特性和服务质量,而且不完全相同。IBM“组件代理”有一些强大特性 - 例如,可伸缩性,它允许开发人员将 EJB 部署到从小型系统到大型网络的不同类型服务器。开发人员可以从小处入手,例如,在一个部门中,首先在 LAN 的 Java 服务器上部署,一旦准备好,就知道可以将在那里创建的 Javabeans 和 EJB 部署到全球网络。然后,开发人员可以测试并熟悉这些 beans,试运行,制作样本等等。
  
  满意之后,开发人员可以通过将其移至高性能服务器,来大幅度扩大其规模。Javabeans 和 EJB 不受任何计算机体系结构边界的限制。它们用 Java 编写,可以运行在任何具有 Java 虚拟机的系统上,并可以使用任何 Enterprise Java Server (EJS) 来部署对象。因此,开发人员现在可以在方便的系统上构建,以后在方便的系统上部署,而不必是同一台或同样类型的机器。
  
  IBM WebSphere 企业版支持将商业对象部署到多台服务器。EJB 作为商业对象集成到“组件代理”功能,并作为任何其它商业对象处理。因此,EJB 可以连接到所选的后端系统,并执行任何所需操作,以满足其商业需求。这就成为“组件代理”为 EJB 提供的基础设施。通过将“组件代理”用作 EJB 服务器,开发人员将能够继续使用当前旧有系统,并将其与电子商务接口一起提供。
  
  为使 EJB 能在 WebSphere“组件代理”环境中工作,可以使用“组件代理”部署工具将其安装在一台或多台服务器上,然后将其添加到命名服务器,以便可以全局查找到它。任何可以访问公共命名服务器的人都可以找到它,找到其宿主,并可以在宿主上执行方法,同时创建 EJB。这就是“代理组件”要做的事。
  
  让我们举一个在 Web 购物站点上可以看到的电子购物车的例子。用户的购物车是一个 Javabeans。用户将货架上的商品放入购物车,这些商品本身是 Javabeans。它们全部可视,并且面向用户。结帐时,将用户购物车中的商品发送到服务器上的 EJB,该 EJB 执行一些必要的操作,如检查信用卡授权和可用额度,生成封条,或生成给发货部门的有关提什么货和发货地点的特殊指示,这就是商业程序已在进行的活动。
  
  beans 的全部意义不只是其现有能力,更在于其可以为商业提供的有竞争力的潜在能力。IT 设计师和应用开发人员现在可以将精力完全集中在商业逻辑,而将如事务、持久性和安全性的底层工作留给服务器。WebSphere 的“组件代理”功能将提供所有这些(还有后端访问)和对象事务管理器。
相关内容
赞助商链接