第三种武器 技术传承——应用服务器是基于组件的
J2EE应用程序遵循广泛采用的面向组件的方法。它们被分割成运行在客户端或服务器上的应用程序。客户端寄宿应用程序和applets,服务器寄宿Java小服务器程序、JavaServer页面和企业级JavaBean(EJB)技术。
可以在应用服务器上部署的主要的组件文件类型有:Web档案文件(WAR)和企业级jar(EAR)文件。客户端应用程序都被打包成JAR文件。我们可以把组件准备好,在Sun应用服务器上部署它,而大多数准备工作是在向导的帮助下或使用工具(例如部署工具、asant和管理控制台等等)来自动地完成的。
应用服务器技术的面向组件的特性与软件工程文化的趋势是一致的。有趣的是,软件架构的演化在描述给定架构的软件元素的时候趋向于不使用组件这个单词。作为代替的是,在某个组件不仅仅是运行时实体的时候,推荐使用元素来描述它。应用服务器技术是否需要更多的架构细节也是很有意思的。
第四种武器 团队工作——应用服务器提供了软件协同工作的能力
J2EE的根基之一是XML,它日益成为粘合各种应用程序的"胶水"。在网络管理领域,由于XML允许我们简单地定义服务并把它们转换为软件,从而显得光芒耀眼。XML作为改善软件(特别是寄宿在应用服务器上的软件)之间协同工作能力的一种途径,其重要性还会不断增加。
J2EE还提供了对数据库事务的支持。使用ATM取钱就是事务的一个例子。如果在事务的过程中出现电力中断或网络故障,你不希望帐号多次记入贷方,除非你中了彩票(哈哈)。因此,事务支持是应用服务器基础构造的一个重要的元素,它在J2EE中占据着重要的位置。
第五种武器 想象力——应用服务器是高度抽象的
我经常在想,软件从业人员提升价值链的最好办法就是使用抽象事务。我们不是在分散的和有限的事务上孤独地工作,而是找出不太明确的抽象事务。抽象事务的例子包括建立存储备份策略、定义某个重要的应用程序特性的需求等等。
抽象事务是很大的挑战,它强迫大脑分而治之。应用服务器为运行在它上面的软件使用了一个相当抽象的模型。例如,J2EE允许你的软件访问后台的数据库,用这种方法提供了抽象的支持。它同时还考虑资源情况,隐藏了特定数据源的复杂性。
第六种武器 独立性——J2EE与Sun的应用服务器是独立的、截然不同的
这是一个很基本的观点:J2EE本质上是一个高级的API,但是它的确包含了一些在应用服务器环境之外运行部件。其中一个例子是XSLT,它允许我们把传统的数据转换为XML,反之亦然。
J2EE的重要性还在持续增长;有些软件架构专家甚至于把J2EE作为21世纪软件工程文化首要的改造部分。它与环球网在90年代改变软件工程文化的情况类似--这也是花费精力了解J2EE和相关技术的另一个原因。更深一层的原因是微软和Sun目前在让它们的产品协同工作方面积极地合作。
第七种武器 发展——应用服务器:软件未来之窗
应用服务器对企业中的软件集中执行的能力是强大的、引人注目的。它可能使IT业对已部署的软件的控制能力提高了一个很高的层次。当主要的软件组件基于应用服务器的时候,我们可以应用体系结构方面的品质属性,例如安全性、可修改性和可靠性。
这样,J2EE和应用服务器技术无疑会成为软件未来的桥梁。它还符合软件架构专家和面向服务的架构典型。
结论
不要害怕应用服务器技术!即使很便宜的PC也可以寄宿高级的软件套件(例如Sun的J2EE和它的应用服务器产品)。当然你也可以使用开放源代码的。其要点是这种技术越来越流行,同时越来越易于使用。
通过使用这种技术,你将了解软件工程文化的发展趋势,并会看到某些重要工作的产物。每个人都在谈论Web服务,但是都没有使用和建立自己的例子那么全面。即使企业级JavaBeans、Servlets和其它的J2EE技术