|
应用服务器又称为“应用服务器软件平台”(Application Server Software Platform,简称为ASSP),是最重要的一类中间件软件。中间件软件市场的演进,创造了许多种类的中间件,也使得清楚地了解中间件解决方案更加复杂化。 一、 应用服务器及基于应用服务器的软件系统总体结构 在1998年Giga 信息集团的报告《了解中间件——给IT管理者的策略和实现建议》中,绘制了一个非常经典的各类中间件位置的二维图,至今仍然适用。 ![]() 在上图中,纵轴表示与低层通信协议的距离。在图上的位置越高,意味着产品距离应用领域越近,具有应用中需要的更多的功能。 在上图中,横轴表示抽象的类型,从左边的数据开始移动,通过面向处理的抽象移动向右边,终止于基于对象和组件的抽象。 某些类中间件,如事务处理监控程序(TP Monitors,所谓“交易中间件”),桥接多种抽象(如数据和处理),纵向从低层跨向高层。其它的保持在高层,依赖于低层的中间件种类,如使用CORBA或J2EE技术,或DNA技术或TP Monitor技术的应用服务器。 应用服务器并非是老产品的位置重置。首先,它不是把ORB、MOM、交易管理、数据访问中间件和别的中间件产品和技术简单地打包在一起,因为当前的应用服务器软件都是基于对象或组件技术的,各种中间件功能必须以面向对象或组件的方式提供;此外,还需要把另外重要的、增加价值的功能加进来——如对象或组件的部署、运行时及管理功能。 按照1998年Giga的划分,按照应用服务器软件欲支持的应用类型,有四种类型的应用服务器软件:针对Web高端电子商务应用的、针对高端企业应用的、针对低到中规模的Web应用,以及多语言部门级应用。今天,针对企业级电子商务应用和一般企业应用的应用服务器软件一般归于同一类。仍然存在支持低到中业务规模的电子商务或企业部门应用的软件实现。 最近几年,除了微软独家提供与Windows操作系统棒定在一起的、基于DNA/DCOM技术的应用服务器软件功能外,主流应用服务器产品全部基于Java语言开发,并遵从J2EE/EJB规范。基于J2EE/EJB技术,提供Web或独立程序访问方式,支持企业Java组件(EJB)的开发、部署、运行和管理功能,提供对后台数据库系统和企业信息系统的访问能力,提供标准的消息传送机制等功能的应用服务器软件已经成为当前应用服务器软件的共同之处。 基于J2EE应用服务器的软件系统的整体结构如下图所示。 ![]() 整体上看,基于ASSP的整个软件系统由四个大层次构成。最底层是Java虚拟机(JVM)层,一般由计算机系统厂商免费用提供;上面就是ASSP,由ASSP开发商提供。这一层是整个应用系统开发、部署、运行和管理的基础架构层,是本项目要开发的内容。其上层的电子商务/企业应用框架是基于ASSP开发的、针对特定种类电子商务/企业应用的“标准”积木块,这一层产品由ASSP厂商或第三方软件厂商来提供。类似的产品有“电子商务服务器”等等。最上层是由应用软件开发商/开发人员定制开发的电子商务/企业应用。 纵向来看,底层的产品和技术最标准、最开放,层次越高,越不标准,需要定制的也越多。从价值角度来看,最向上就越接近最终的应用解决方案。底层软件的供应商如果能够向最顶层提供更多的内容,增值也就越多。 二、 ASSP技术发展的总体趋势 综合各技术与市场分析机构及我们的研究,可以把ASSP技术发展的总体趋势归纳为以下的五个大方向。总的来看,ASSP部分基本技术、基本框架未变。ASSP的核心内容更加标准化,ASSP包含的功能更丰富,ASSP横向与其它系统有更多的联系。ASSP本身也向上延伸,把部分应用框架方面的内容容纳入自身。上述动向具有普遍的意义。 趋势一、技术越来越“标准”化,遵循“标准”成为必须 2000年以前,随着核心的服务方Java应用编程接口的普及(如JSP、servlet),以及市场对企业Java构件(EJB)的期待,大量新生公司涌向建造服务器端产品的市场,以实现这些API。此时厂商的关注点还是构建和销售其特定API的产品。到1999年底和2000初,大约有30多个EJB服务器厂商,只有几个公司实现了完整的EJB1.0。整个行业的重点是EJB应用服务器,每个厂商都在努力以成为主流的EJB服务器供应商。J2EE 1.0最终规范要求要“符合J2EE”规范,必须提供完整的J2EE API产品套件。从2000年众应用服务器厂商的J2EE符合性测试的竞赛开始,“符合J2EE”就成了厂商争取竞争优势的必然选择。 整个J2EE体系包括四大部分:J2EE蓝图、J2EE规范、J2EE参考实现和兼容性测试套件。规范包括十余个部分,涉及表现层Java组件技术、企业Java组件技术等众多相关技术。几年来相关技术规范一直在不断的新增、扩充和完善中。目前J2EE及EJB的最新版本是1.4和2.0,EJB 2.1尚未正式推出。作为一个支持企业级构件应用开发的现代应用架构来说,EJB2.0中的一些内容如Local Interface、CMP、EJB-QL、MDB等都是非常重要的。 趋势二、扩展服务与功能是区分ASSP的重要特性 J2EE/EJB已经成为绝大多数应用服务器厂商的标准。原来区分不同应用服务器的因素已经消失了。激烈的竞争越来越表现在高层次上,不再是低技术层次。基本上,应用服务器由以下的核心服务/功能和扩展服务/功能构成。 ![]() 核心服务/功能方面,应用服务器厂商已经转移向J2EE“标准”。因为应用服务器在核心层正变得越来越标准,应用服务器的整个概念就如同操作系统一样正成为企业信息系统的标准部分。J2EE在标准化过程中正起着一个重要的作用。 许多关于ASSP的预测都认为由于J2EE成为应用服务器的公共标准,ASSP越来越廉价,差别越来越小,正在走向“物品化”。各ASSP厂商的意见是,标准使得编程更简单,但性能、可伸缩性和使产品更加快速地推向市场的各个特性是使各个ASSP相互区分,从而抗拒或延迟“物品化”的过程。这也是ASSP厂商大力推动应用开发框架、新技术应用的一个原因(见“趋势三”和“趋势四”)。因此,扩展服务与功能也就成为厂商开发ASSP的重点内容之一。 ASSP的各项扩展服务与功能可以归类入如下的中间件特性列表(摘自AberdeenGroup 2000年1月《中间件》报告)。 ![]() ASSP提供了支持企业应用开发、部署和管理的基础性框架。在实现一般企业应用或者特定类型应用的过程中,人们逐渐总结出了一些共性的、经过验证的分析、设计和实现方法、模式甚至是部分的实现。独立软件商或者ASSP厂商可以进一步把这些针对对一组类似的问题的公共设计和部分的实现抽象出来,提供一般化解决方案——应用开发框架,从而简化应用系统开发的开发。 基于对象技术的框架开发,核心功能一般实现为一组以特定的方式交互的抽象的类。在导出一个具体的应用时,这些抽象的类要用具体的子类去替换。其它具体的类要从一个由框架开发者提供的标准的组件库中选取。通过增加一些新的应用特定的类来完成定制。某些应用开发框架不针对特定的应用或业务种类,是一般性的,还有一些是针对某种类型的应用或业务的,通常把它们看成是某种应用或业务应用的平台软件。 趋势三、集成新的关键技术 最近几年,在分布式计算领域,可能没有一项技术的影响力最终会超过Web service。 尽管我们有了Web信息发布和浏览技术,J2EE/EJB、CORBA和DCOM等对象或组件开发技术,在解决使用不同的计算机语言、基于不同的应用架构开发的,运行在不同的操作系统上的信息系统间的互相通信和信息共享方面,仍然面临挑战。在B2B电子商务应用中,企业需要与合作伙伴、供应商、分销及代理商、银行等方面实现快速、方便及低成本地应用集成。现有EAI或其它中间件的解决方案繁琐、昂贵,且不便于实现动态的应用集成。 Web service技术可以有效地解决这一问题。根据IBM的定义,Web service是描述网络上可通过标准化的XML消息访问的、应用的一组操作的接口,Web service完成一个特定任务或一组特定任务。Web service 使用一个标准的、形式化的XML表示,即Web服务描述,提供需要与服务交互的所有细节,包括消息传递的格式(以此描述操作的细节)、传输协议和位置。接口性质隐藏了服务实现的细节,接口可以独立于实现接口的硬件或软件的平台、编写接口的编程语言而使用。这就允许和鼓励了基于Web service的应用实现的松偶合、面向组件和跨技术实现。Web service既可以独立使用,也可以与其它Web服务一起使用以执行一个复杂的集合或一个商务交易。因此,主要ASSP厂商、整个软件业都看好Web service,视其为解决电子商务、政务及其它各类应用的松偶合集成的最佳手段。 根据IDC 2002年6月发表的《西欧 ASSP 市场预测与分析2002-2006》(IDC #AD25J),IDC认为,正如2001年的发展,Web service越来越被认为是提供独立于技术的互操作的重要手段,主要厂商已经在其产品中加入了基本的Web service能力。到2002年对基础的Web service标准(SOAP和WSDL)的支持很可能是产品必有的特性。IDC确信届时不可能销售一个没有提供对WS的基本支持的产品。 在EJB 2.1规范正式推出之前,一些基于J2EE/EJB的ASSP产品中就已经有了对Web service的基本支持,如通过简单地内置一些传输处理程序和一个SOAP引擎,就可以把servlet和EJB封装成Web service。EJB 2.1规范中,明确地为EJB定义了支持Web service的组件接口,这使得EJB支持Web服务的编程和封装处理标准化。 | |
| 软件需求评审之五个案例和九条建议 细说软件工程的七条基本原理 如何有效的软件质量管理(下) 如何有效的软件质量管理(上) 开发技巧之"再用式"软件开发方法 开发技巧之如何在软件频繁改变时测试 细说微软软件开发过程与团队模型 五步走:软件需求的管理过程分析 教你组织软件开发过程中的评审会议 软件工程: 软件测试需要原则吗? |
| 文章评论 | |||