JavaBean与EnterpriseJavaBean:有什么不同?(转)



编者注:下文基于圆桌讨论会参和者包括 IBM“组件代理”beta 支持小组 Ken Burget和 IBM Enterprise Java Bean 开发部门 Liane Acker、Jim Knutson 和 David Morrill[/BLOCKQUOTE]
您现在可能已在使用 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 上容器中在第 2步中部署工具采取些操作 - 这可能意味着生成如状态保存代码放入事务挂钩或执行安全性检查这样代码所有这些操作由部署工具生成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 “组件代理”功能将提供所有这些(还有后端访问)和对象事务管理器
有关作者
Mike Day 是 IBM 对象中间件市场营销小组成员他主持有关读者普遍感兴趣主题圆桌会议他们根据相关背景、经验或在讨论主题时表现来挑选圆桌会议佳宾如果想推荐要讨论话题请给我们来信来信地址 [email protected]
Tags: 

延伸阅读

最新评论

发表评论