JavaBean 是可复用组建,他是由容器自动创建的,所以他要实现可持久化接口。但是它不能跨计算机,跨线程访问。为了解决这个问题就出现的EJB,用到了JNDI,RMI,JDBC,JAT等技术,实现了跨计算机访问,也就是分布试。当可户访问时不是直接访问EJB,而是通过容器访问EJB组建。

解决方案 »

  1.   

    ava Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 
      

  2.   

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

  3.   

    ejb 与javabean的区别在于:
    javabean只能在程序内部使用的组件 ejb可以分布式使用
    以 jxdn_yang(张婷) 描述来说:javabean类似于com,ejb类似于dcom,这样是比较好理解的。我们再来讨论一下:EJB的灵魂,技术关键
    EJB的灵魂 是 分布式  服务  组件 还是什么?
    技术关键又是什么?jxdn_yang(张婷)才女,你上面说的很好,谢谢!
    大哥大姐们都说的很好,继续啊!