`
xihongshi414
  • 浏览: 35751 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

EJB商业探讨的白皮书2

阅读更多
5 平台的成熟性

   自从1996年12月MTS发布以来,WINDOWS DNA,COM+的服务器端构件服务被不断发展,而J2EE、EJB产品则是从1998年开始的。
   看起来好像WINDOWS DNA 是一个成熟的平台。然而事实上,现在基于J2EE平台的高端产品包含一些重要的事务逻辑,而这些事务逻辑应用在产品中许多年了。提供J2EE平台商业实现的供应商(如IBM、BEA)都有很长的、得到认可的发布中间件产品的历史。这些中间件产品能实现大宗的事务系统。这些供应商不是从零开始构造服务器端平台(微软的MTS却是如此),一些供应商是通过在已得到验证的现有技术上开发一个基于J2EE平台的具有可移植性的层来实现J2EE平台。这包括CORBA产品、事务处理监视器、数据库、和/或应用服务器,以上这些技术以前都是各企业专用的。在一些基于J2EE平台的产品内的技术实现着大批的现今的商业事务,这些技术早在微软进入服务器端商业领域以前就已产生。拥有早已得到认可的技术的J2EE产品供应商有:
   IBM´s WebSphere 逻辑上脱胎于IBM´s MQSeries、 CICS 与 Encina,而今天大多数重要的实时任务系统的事务都依靠这些产品来运转。
   BEA´s WebLogic 这个产品自从微软1996年首次推出MTS就已被投入市场。WEBLOGIC提供到M3和Tuxedo的连接,能够让IT部门使用事务处理监视器技术,这项技术有浓厚的可靠性历史。
   Oracle´s Oracle 8i 能够支持以下技术:数据库服务、服务器端构件以及单个物理层上的WEB服务。Oracle 8i 是以ORACLE公司在市场上占领导地位的数据库技术和在线交易处理技术为基础的。
   Netscape´s Netscape Application Server 基于Kiva应用服务器技术。 1996年开始使用,现在很多大型商业网站都靠它来驱动。
   IONA´s iPortal Application Server 基于OrbixWeb技术, OrbixWeb是一种CORBA产品,它有很长的发布历史,提供一系列强大的高级中间件服务。
   Inprise´s Inprise Application Server 基于VISIBROKER,这是一种CORBA产品,长期以来一直被业界采用,并被部署在一些大型公司的站点上。
   因为IT部门可以利用已有的、历经考验的技术,这在很大程度上减少了危险因素。

6 可伸缩性

   公司必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。Windows 2000 Datacenter Server在2000年2月份被认为是微软最具伸缩性的方案。据称每台机器可支撑到16个处理器,若通过OEM则可达到32个处理器。把多个装有Windows 2000机器集簇到一起,在理论上则可达到上百个处理器。要达到这样高水平的伸缩性,服务器平台必须具有跨多台机器传送客户请求的功能。微软的构件负载平衡技术就是为了在多个COM+构件上传送客户请求。
   遗憾的是,微软最近宣布由于功能不够完善,构件负载平衡技术已经从´WINDOWS 2000´2000年2月发布版中取消。这意味着涉及到COM+的中间层被限定到一台机器上,进而不能提供大型商业网站所需要的伸缩性。
   然而基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
   通过伸缩性的例子,我们也可看出选择专有技术如WINDOWS DNA的危险性。客户没有选择余地,只能等待供应商完成指定的特性。然而选择J2EE这种开放结构,客户可以选择产品,还能保留在现有应用开发方面的投资。如果基于J2EE平台的应用程序设计正确,客户可以变更产品供应商,以最小的移植代价来满足一定的伸缩性或功能需要。

7 长期的可用性

   一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。随着INTERNET越来越成为主要的交易平台,这种事态现着愈发严重了。
   J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun´sSolaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。
   基于微软技术的部署过去还不能达到这样高水平的可用性。WINDOWS DNA绑在WINDOWS 操作系统上,而这种操作系统过去一直由于可靠性不高受到批评。微软自己高度赞扬他的WIN 2000具有高度的可用性。但是否能达到以上这些操作系统的水平仍待观察。尽管微软的一些老客户要选择WINDOWS 2000,任务时实性很强主流商务站点会采取保守姿态。

8 产品的总体成本

   购买服务器端平台,我们必须考虑拥有这个产品的总体成本。它包括:服务器平台的价格、在这个平台上开发和改进方案的成本、维护费用、由于伸缩性、不稳定性问题所消耗的部署时间、由于平台的缺陷所损失的客户。较低的总体成本是拥有大宗业务、要求时实性强的商业站点所必需的。
   基于J2EE平台的产品价位范围很广,各种类型的公司都可以找到满足他们预算水平,所需求服务的产品。产品有完全免费(如代码公开的Bullsoft´s JOnAS)、每机2500美元(Valto´s Ejipt)、每CPU35000美元(IBM´s WebSphere EntERPrise Edition)。而微软指定的最初价位是:Windows 2000 Advanced Server每机3999美元外加1999美元(由于INTERNET连接造成无限授权的INTERNET用户)。
   微软的价位是处在基于J2EE产品价位的中低档。微软还没有宣布Windows 2000 Datacenter Server, Windows 2000 AppCenter Server价格,因此现在我们还无法把微软的高端平台与大部分J2EE平台相比。以后会因为竞争的存在,各中间件供应商包括微软会按照所提供的服务水平而达成相近的价位。
   无论价格战的结果如何,J2EE架构都会比Windows DNA节省更多的整体成本。这是因为采用J2EE架构,IT部门可更充分利用在应用程序、中间件技术、操作系统方面已有的投资。基于J2EE开发的成本(最初的、后续的成本)也会显著降低。这是因为对于程序员,开发面向J2EE平台程序时,一些棘手的中间件任务可被隐式地完成,而WINDOWS DNA则不可以。开发符合J2EE规范的应用程序时,程序员可以花费更多的时间专注于业务逻辑的实现,提高了开发效率。

9 多种选择与限定在某个供应商

   Windows DNA 与 J2EE一个很大的不同点是:微软的方案是专用的,排除了竞争的可能(导致垄断)而J2EE公开标准,引入竞争(自由市场)。
   竞争的好处是:价格被降低;优秀的产品会出现;客户有选择权和灵活性而不是固定在某一个供应商的方案上;极大降低客户的风险水平。竞争的缺点是:制定开放的标准需要额外的工作来确保兼容。一些开放标准如SQL、CORBA在过去都曾因缺乏这种保证而深受其害,结果一些专用产品出现了。
   Sun Microsystems为解决这个问题在J2EE发布中包括了一个称为´J2EE兼容性测试套件´的产品。所有中间件供应商必须成功通过这个测试才能获得J2EE认证标志。这就确保了J2EE应用程序代码可以只开发一次,然后在任何基于J2EE平台的产品中编译、运行。客户有选择的机会,避免了依赖某一个供应商。
   事实上,Sun Microsystems已成功地应用测试套件的方法来保证J2SE(Java2平台标准版)的兼容性。现在你可以创建基于JAVA2平台的程序仅一次,然后可以部署到任何兼容的JAVA虚拟机上。这个方法在J2EE上也是行得通的。J2EE兼容性测试套件是解决不兼容的服务器端平台的关键。读者也应该注意到,由于J2EE领域激烈的竞争,供应商业会提供超越J2EE标准的便利服务。这由供应商来决定增加哪些特性是适宜的。

10 支持异构环境

   一些大的公司拥有异构的服务器端部署环境,使用多种操作系统、硬件、中间件产品。异构的环境在以下情况也可能出现:要完成多个不同项目的机构;对拥有不同部署环境的公司进行合并、收购。在以上情形中,跨异构操作系统的可移植性与互操作性是非常重要的。
   J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构公司计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。
   WINDOWS DNA(包含COM+组件)只能应用到WINDOWS 2000上,不能在现有的系统上使用。这对任何一个拥有异构环境的公司都是难以接受的。另外,选择WINDOWS DNA,公司要在异构环境中引入新的操作系统,使整个系统更加复杂。公司购买现成的组件也只能部署在WIN 2000上,限制了它的使用。
   在异构环境中,不同系统的互操作或通信是非常重要的。在两个不同的J2EE系统中,同种J2EE产品可以相互通信。两个不同供应商的产品也可通信,但是由于缺乏标准机制,不同供应商的产品的事务、安全信息不能互操作。在新版的J2EE规范中将会制订一个标准协议实现完全互操作性,并且不影响已有的程序代码。微软不想遵循这个协议,所以它的服务器端产品仍是专用的,不能和其他供应商的产品互操作。

11 可维护性

   通常,公司只评估一个项目整个部署过程中的成本。然而整体成本应包括一个已实现的方案的维护费用。使用J2EE要比利用WINDOWS DNA开发的应用程序更易于维护。基于J2EE平台产品支持更广泛的组件类型和中间件服务,可以让开发人员投入精力在亟待解决的商业问题而不是中间件上。开发人员利用底层平台构造灵活、易维护的企业系统,这类系统不用作大的调整就可以适应新的中间件、数据库或数据库规划。
   与此相比WINDOWS DNA 部提供如此广泛的中间件功能。在构造系统时要编写更多代码,增加了程序的复杂性,不能把商业逻辑与中间件功能清晰地分开。而且终端程序将难于维护,当开发组变更,项目交接时情况更糟。

总结:二十一世纪,随着Internet日益成为主要的商业交易平台,具有可伸缩性、灵活性、易维护性的商务系统是人们关注的焦点。而J2EE恰好提供了这样一个机制。通过以上对比,使用J2EE的好处显而易见,并且随着时间的推移,将会愈发显出它的生机。
此白皮书译自(The Business Benefits of EJB and J2EE Technologies over COM+ and Windows DNA)

分享到:
评论
1 楼 xihongshi414 2009-01-13  
本文从商业角度对EJB进行的了分析。
可以对应老板提出的“企业支撑”

相关推荐

    EJB白皮书EJB白皮书

    本篇将深入探讨EJB 3.0版本,该版本引入了许多改进,简化了API,提高了开发效率。 **EJB 3.0核心规范(ejb-3_0-fr-spec-ejbcore.pdf)** EJB 3.0的核心规范主要关注实体Bean(Entity Beans)和会话Bean(Session ...

    JSF和EJB白皮书.zip

    本文将深入探讨这两个技术,并结合给定的白皮书资源进行详细阐述。** **JSF(JavaServer Faces)** JSF是一种用于构建用户界面的MVC(Model-View-Controller)框架,专门设计用于Java Web应用。它简化了创建用户...

    实战角度比较EJB2和EJB3的架构异同

    【实战角度比较EJB2和EJB3的架构异同】 EJB,即Enterprise JavaBeans,是Java EE(企业版Java)平台的核心组件之一,用于构建可复用、分布式的服务器端应用程序。EJB2和EJB3是EJB技术的两个主要版本,它们在架构上...

    实战EJB 实战EJB 实战EJB

    2. **容器**:管理和执行EJB组件,提供诸如事务管理、安全性、持久化和生命周期管理等服务。 3. **EJB组件**:封装业务逻辑,可以是会话Bean或实体Bean。 **EJB开发人员的角色分配** 1. **Business Logic ...

    Mastering EJB 2nd edition

    2. **组件模型**:详细讲解EJB组件的生命周期、状态管理和事务管理,以及如何设计和实现符合EJB规范的bean。 3. **容器服务**:涵盖EJB容器提供的服务,如安全性、持久化、调度和并发控制,以及如何利用这些服务来...

    ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b

    在 ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b 这个压缩包中,我们看到的是针对EJB 2.1规范的一个登录实例,它涉及到了两种主要的实体Bean管理策略:CMP(Container-Managed Persistence,容器管理持久化)和 BMP(Bean-...

    一个较初级的EJB商业应用的例子

    本例子提供了一个初级的EJB商业应用,涵盖了网络订购和会员登录的功能,非常适合Java新手学习和理解EJB的工作原理。 **EJB的类型**: 1. **会话Bean(Session Beans)**:代表一次客户端会话,可以分为无状态会话...

    EJB方面 ejb pdf

    ### EJB技术详解 #### EJB 2.0与EJB 1.1的主要区别及其应用场景 EJB(Enterprise JavaBeans)技术自1998年首次推出以来,经历了多个版本的演进,其中EJB 2.0是EJB 1.1的重要升级版,带来了诸多改进和新特性,旨在...

    java源码:一个较初级的EJB商业应用的例子.rar

    【标题】中的“java源码:一个较初级的EJB商业应用的例子”表明这是一个关于Java编程语言的项目,特别地,它涉及到企业级JavaBeans(EJB)技术,这是一种用于构建可部署在Java EE(Java Platform, Enterprise ...

    EJB+struts2整合示例

    **EJB(Enterprise JavaBeans)和Struts2是两种在Java Web开发中广泛使用的框架,它们分别处理业务逻辑和表现层。本示例是将这两种技术整合在一起,以实现更高效、更模块化的应用程序开发。** **EJB(Enterprise ...

    一个很好的EJB商业应用的例子

    这个压缩包文件“一个很好的EJB商业应用的例子”提供了一个具体的EJB应用实例,帮助开发者理解如何在实际业务环境中运用EJB技术。 EJB主要包含三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和...

    基于java的一个较初级的EJB商业应用的例子.zip

    本教程将通过一个初级的EJB商业应用例子,帮助你了解EJB的基本概念和工作原理。 1. **EJB概述** - EJB作为Java EE的一部分,提供了服务器端组件的规范,用于处理事务管理、安全性、状态管理和并发控制等复杂任务。...

    ejb2的资料,作者雨夜。

    EJB2是EJB规范的第二个主要版本,相较于EJB1,它提供了更多的功能和改进,使得企业级开发更加方便。 在EJB2中,主要存在三种类型的Bean: 1. **Session Bean**:处理复杂的业务逻辑,它们是无状态或有状态的。无...

    javax.ejb.jar下载

    Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....

    java的ejb.jar包

    javax.ejb.AccessLocalException.class javax.ejb.CreateException.class javax.ejb.DuplicateKeyException.class javax.ejb.EJBContext.class javax.ejb.EJBException.class javax.ejb.EJBHome.class javax.ejb....

    EJB2.rar_ejb 2.0 demo_ejb2_ejb2 demo

    - **EJB2**:这是一个目录,里面可能包含EJB 2.0的项目结构,包括Bean的源代码、部署描述符(deployment descriptor,如ejb-jar.xml)、以及可能的测试用例。EJB Bean的源代码通常遵循特定的接口,如Remote接口...

    JAVA源码一个较初级的EJB商业应用的例子

    JAVA源码一个较初级的EJB商业应用的例子

    EJB配置部署打包实例

    本实例将探讨EJB的配置、部署和打包过程,帮助你深入理解如何在实际项目中运用这些技术。 ### EJB配置 1. **EJB组件**:EJB主要包括三种类型:Session Beans(会话bean)用于处理客户端请求,Message-driven Beans...

    j2ee without ejb 中文 part2

    j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee without ejb 中文 part2j2ee ...

    EJB教程,EJB参考书

    本文旨在深入探讨EJB的核心技术及其在实际应用中的角色分析,为初学者提供全面的入门指南。 **1.1 EJB中的六大角色** - **1.1.1 EJB组件开发者(Enterprise Bean Provider)**:负责设计和实现EJB组件,包括定义其...

Global site tag (gtag.js) - Google Analytics