文档库 最新最全的文档下载
当前位置:文档库 › 软件中间件技术现状及发展

软件中间件技术现状及发展

软件中间件技术现状及发展
软件中间件技术现状及发展

软件中间件技术现状及发展

梅宏

北京大学信息科学技术学院软件研究所,北京 100871

{E-mail:meih@https://www.wendangku.net/doc/7510530273.html,}

1 前言

“中间件”这一术语最早出现在1980年代后期,主要用于描述网络连接管理软件。在1990年代中期,随着网络技术快速发展,中间件的概念日益普及。中间件在学术界和产业界均得到长期、广泛的研究与实践,尽管目前尚没有统一的中间件定义,但对于中间件的意义与内涵已有基本共识。如,IEEE的分布系统专家组认为“中间件通过提供简单、一致、集成的分布编程环境,简化分布应用的设计、编程和管理。本质上,中间件是一个分布软件层(或平台),抽象了底层分布环境(网络、主机、操作系统、编程语言)的复杂性和异构性”[19];美国国家自然基金委员会认为“中间件是建立在网络传输服务之上、辅助开发新应用与网络服务、适用于多个应用的一种软件”[30];对象管理组织OMG认为“中间件就是解决网络环境下互操作问题的软件,它同时还提供事务、目录、事件等其它基本服务”[44];CMU软件工程研究所认为“中间件是一组支持软件连接的服务的集合,允许在一个或多个主机上运行的多个过程通过网络进行交互。中间件是将大型机应用移植到客户/服务器应用、以及跨异构平台通信的基础机制,最初用于解决客户/服务器体系的互操作问题(20世纪90年代)”[7]。不难看出,这些定义从不同角度、采用不同字眼所描述的中间件具有相同的目标——解决分布应用开发中诸如互操作等共性问题,以及相同的内涵——提供这些共性问题的具有普适性的支撑机制。

一般说来,中间件有两层含义。从狭义的角度,中间件意指Middleware,它是表示网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,通过API的形式提供一组软件服务,可使得网络环境下的若干进程、程序或应用可以方便的交流信息和有效的进行交互与协同。简言之,中间件主要解决异构网络环境下分布式应用软件的通信、互操作和协同问题,它可屏蔽并发控制、事务管理和网络通信等各种实现细节,提高应用系统的易移植性、适应性和可靠性。从广义的角度,中间件在某种意义上可以理解为中间层软件,通常是指处于系统软件和应用软件之间的中间层次的软件,其主要目的是对应用软件的开发提供更为直接和有效的支撑。

本文余下部分组织为:第2章介绍中间件研究现状,包括中间件封装的分布应用开发共性问题、主要的中间件技术与产品、现有中间件实现关键技术以及中间件国内外市场;第3章通过中间件研究热点阐述其发展趋势;第4章考察中间件发展驱动力并据此预测中间件的未来趋势;第5章总结全文。

2 研究现状

中间件的主旨是简化分布系统的构造,其基本思想是:抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量。在构造分布系统的过程中,开发人员经常会遇到网络通信、同步、激活/去活、并发、可靠性、事务性、容错性、安全性、伸缩性、异构性等问题。中间件正是辅助应用开发者解决这些问题的软件系统,一般提供如下功能:

(1)通信支持

大多数基于中间件的系统包含有分布式操作,也就是说,系统需要于其它分布式服务或系统进行交互。现代操作系统一般提供一组网络操作的编程接口(如套接字),中间件则提供通信支持以屏蔽这组底层、复杂的接口。基于中间件的应用分布式交互主要包括远程过程调用(Remote Procedure Call,RPC)和消息两种方式。

远程过程调用允许一个应用程序(称为客户端)调用另外一个应用程序(称为服务器)提供的服务,而在客户端源程序中写法与普通的过程调用相同。远程过程可以与客户端运行在同一台计算机上,也可以是通过网络连接的其它计算机上。因此,提供远程过程调用的支持,事实上需要中间件完成数据传输和网络编程的功能。中间件负责使用操作系统提供的编程接口完成网络连接的建立、数据传输的可靠性等底层、复杂和容易出错的工作,而对上层系统只提供非常简单的编程接口或编程模型。

与远程过程调用固有的同步方式不同,消息提供异步交互的机制。一类应用(称为消息的生产者)只在将产生的消息放入某个消息队列或主题中之后,并不等待而是继续执行下去;而另一类应用(称为消息的消费者)则得到通知并从消息队列或主题中取出消息进行处理。

(2)并发支持

分布式应用系统一般需要具有较强的处理能力,也就是说,系统可以处理很多的客户请求。为尽量利用硬件的计算能力,一般系统实现时采用并发技术(如多进程或多线程),对多个客户请求同时进行处理。但并发技术的使用是一个复杂而且容易出错的过程:并发执行的程序单元之

间可能会互相影响、竞争资源,也可能会产生系统内部状态的不一致。因此,应用程序使用并发技术后,其自身复杂度会有很大提高。

中间件为应用系统提供并发支持,是指提供一种“单线程”或“单进程”的编程模型,开发者在开发系统时,无需考虑并发对程序的影响,可以假设程序是串行执行的,从而极大的简化了程序开发和维护的复杂度,也减少了程序出错的可能性。

(3)公共服务

公共服务是对应用中共性功能或约束的抽取。中间件提供一个或一组公共服务,供系统使用,这组公共服务不特定于某一种或某一类系统;应用系统在实现和运行时直接使用这些公共服务。公共服务的好处在于一方面将应用中的共性抽取出来由中间件实现,减少了系统开发的工作量;另一方面使得应用开发者更能关注业务功能的需求、设计和实现,有助于提高软件质量。

不同中间件中提供的公共服务有可能存在差别,其中主要的公共服务包括:名字和目录服务,提供动态的查找功能,应用系统可以在运行时刻按照名字或目录查找需要使用或进行交互的其它系统或系统组成部分。事务服务,提供对应用操作事务性的保证,包括声明型的自动完成事务的启动、提交或回滚,和编程型的事务接口由应用程序控制事务流程。另外,很多中间件还提供分布式的事务支持。安全服务,从通信、访问控制等多个层次上保证应用系统的安全特性。持久化服务,提供一种管理机制,应用系统可以管理其持久化的数据。例如,在基于面向对象方法设计和实现的系统中完成对象——关系映射,将对象存储到关系型数据库中。

2.1 主要技术与产品

随着分布式应用的快速发展,各种中间件技术和产品不断涌现。由于中间件技术和产品正在快速的发展,要精确的给出其完整的分类目前尚有一定的困难。因此下文主要对一些典型的中间件技术和产品加以介绍。

(1)事务式中间件(Transactional Middleware)

事务式中间件又称事务处理管理程序(Transaction Processing Monitor)。其主要功能是提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理和其他必要的服务。

事务式中间件由于其可靠性高、性能优越等特点而得到了广泛的应用,是一类比较成熟的中间件,其主要产品包括IBM的CICS,BEA的Tuxedo,和Transarc的Encina等。(2)过程式中间件(Procedural Middleware)

过程式中间件又称远程过程调用(Remote Procedure Calls, RPCs)中间件。远程过程调用模型是经典的过程调用思想在网络环境下自然拓广。过程式中间件使得一个主机上的应用可以在网络环境下用过程调用的方式来调用部署在另一个主机上的应用中的过程。新近发展起来的一项技术是XML RPC,它使得在Internet异构环境下应用能够使用RPC。

一般说来,过程式中间件有较好的异构支持能力,简单易用,但在易剪裁性和容错方面有一定的局限性。过程式中间件是一项比较经典的技术,其主要产品有Open Software Foundation 的DCE,Microsoft的RPC Facility等。

(3)面向消息的中间件(Message-Oriented Middleware)

面向消息的中间件,简称为消息中间件,是一类以消息为载体进行通信的中间件。按其通信模型的不同,消息中间件的通信模型有两类:消息队列和消息传递。消息队列是一种间接通信模型,其通信基于队列来完成。而消息传递是一种直接通信模型,其消息被直接发给感兴趣的实体。近年来,对消息中间件技术有较大影响的是J2EE规范中的JMS。

消息中间件在支持多通信规程,可靠性、易用性和容错能力等方面有其特点,比较易于使用。面向消息中间件是一类常用的中间件,其主要产品有IBM的MQSeries,Microsoft 的Messaging Queuing,以及Sun的Java Message Queue等。

(4)面向对象中间件(Object Oriented Middleware)

面向对象中间件又称分布对象中间件(Distributed Object Middleware),简称对象中间件。分布对象模型是面向对象模型在分布异构环境下的自然拓广。分布对象中间件支持分布对象模型,使得软件开发者可在分布异构环境下面向对象方法和技术来开发应用。OMG组织是分布对象技术标准化方面的国际组织,它制定出了CORBA标准等,DCOM是微软推出的分布对象技术。COM+和.NET是其进一步的发展与深化。

总的说来,对象中间件是一种标准化较好、功能较强的中间件;它全面支持面向对象模型,具有良好的异构支持能力,可适用于广泛的一类应用。分布对象中间件是一类常用的中间件,其主要产品有,OMG的CORBA产品系列,Microsoft的COM系列,Java RMI 等。(5)Web 应用服务器(Web Application Server)

概念上,Web应用服务器是Web服务器和应用服务器相结合的产物,它是处于目前主流的三层或多层应用结构的中间的核心层次,直接与应用逻辑关联,对分布应用系统的建造具有举足轻重的影响。应用服务器中间件技术为支持应用服务器的开发而发展起来的软件基础设施,它不仅支持前端客户与后端数据和应用资源的通信与连接,而且还采用面向对象、构件化等先进技术等提供了事务处理、可靠性和易剪裁性等多方面的支持,大大简化网络应

用系统的部署与开发。EJB和J2EE是目前应用服务器方面的主流标准。

应用服务器由于直接支持三层或多层应用系统的开发而受到广大用户的欢迎,它是目前中间件市场上竞争的热点,其主要产品有,BEA的Web Logic(遵循J2EE规范), IBM 的WebSphere等。

(6)Web Services中间件(Web Services Middleware)

为了支持跨边界的企业应用系统的集成,出现了Web Services及其相关的标准。一般说来,Web Services中间件是指支持UDDI(Universal Description, Discovery, and Integration),XML (eXtensible Makeup Language), SOAP(Simple Object Access Protocol), WSDL(Web Services Description Language),WSFL(Web Services Flow Language)等各种相关标准的中间件。此类中间件可支持在各种不同类型中间件环境中开发的应用系统在统一的模式下进行灵活的应用集成和互操作。

Web Services近年来发展起来的新兴技术,有较好的市场发展前景。与之相关的主要工作有:Microsoft 的.NET, Sun的SunOne,Oracle的Oracle9i,Oracle9i,以及BEA,HP,Borland 等对Web Services的支持。

(7)其它

新的应用需求、新的技术创新、新的应用领域促成了新的中间件产品的出现。例如,商务流程自动化的需求推动了工作流中间件的兴起;企业应用集成的需求引发了企业应用集成服务器(EAI服务器)的出现;动态B2B集成的需要又推动了Web服务技术和产品的快速发展,Web服务技术的发展又必将推动现有中间件技术的变化和新中间件种类的出现;中间件应用到通信环境,服务于移动电子商务,就出现了移动中间件;而对中间件在开放环境下的灵活性和自适应能力的需求导致了所谓自适应中间件、反射式中间件和基于Agent 的中间件等新型中间件的研究。这些新型中间件将在“发展趋势”中详细介绍。

2.2 关键实现技术

如前所述,中间件主要提供通信支持、并发控制以及各种公共服务,如何高效、经济地实现并运营这些功能,就是现有中间件技术与产品的关键技术。由于应用领域和主要目标的不同,各种中间件技术与产品所封装的分布应用支撑机制各具特色。本节将以面向消息中间件和面向对象中间件为实例,介绍中间件关键技术。

(1)面向消息中间件的关键技术

消息中间件通过消息交换支持分布应用的通信,典型的产品有IBM MQSeries和Java Message Service。在网络通信方面,客户使用消息中间件向服务器发送消息,该消息既可通知某个事件发生,也可请求服务器执行某个服务。如果是请求服务的消息,则消息中包含了相关的参数,而服务器处理完毕会返回一个包含结果的应答消息;在分布协调方面,面向消息中间件的主要特点在于“天生”支持异步的消息传输模式。客户将待发送的消息交给消息中间件后,可继续处理其它业务,其后客户可在适当时刻查询结果是否返回。这种异步消息机制松散了客户与服务器之间的耦合关系,提高了系统的伸缩性。但是,这也导致客户/服务器之间的同步通信变得复杂,客户必须自己处理通信的同步。此外,消息中间件的另一个特点是支持组通信,即,将同一条消息发送给多个服务器;在可靠性方面,面向消息中间件实现容错的主要途径就是实现消息队列,该队列将消息缓存到永久存储器中从而保证消息的持久性。客户将消息输入队列后,如果服务器不可用,则队列将该消息保存直至服务器重新可用,将消息发送给服务器后将从队列中删除该消息;在伸缩性方面,消息中间件对访问透明性的支持不是很好,因为客户往往使用消息中间件与远程构件通信,使用其它机制与本地构件通信。访问透明性的不足导致消息中间件对迁移透明性和复制透明性的支持也不够,进而导致伸缩性的实现变得复杂。另一方面,消息队列必须由系统管理员设置,且消息队列的使用必须硬编码在客户代码和服务器代码中,这些都降低了整个系统的灵活性与适应性;在异构性方面,消息中间件对平台异构性的支持不够,因为编程人员必须手工编写消息的打包和解包代码。目前大部分消息中间件产品都支持多种编程语言。

(2)面向对象中间件

面向对象中间件是从过程中间件发展而来的,其发展历程类似C++脱胎于C语言,面向对象概念是其主要推动力,主流的对象中间件包括CORBA、RMI和DCOM。在网络通信方面,面向对象中间件支持分布化的对象调用请求和应答,即,客户对象可调用远程或本地服务对象的方法。客户对象必须拥有服务对象的引用,而调用参数和返回结果与底层消息的转换是由桩完成;在分布协调方面,面向对象中间件缺省的通信模式是同步调用请求,即,客户对象调用服务对象后必须阻塞直至返回应答。面向对象中间件还支持其它的通信模式,如CORBA 3.0支持同步调用、延迟同步调用、单向调用、异步调用等模式。面向对象中间件支持多种激活策略,如按需激活或始终处于激活状态,对象中间件还提供多种线程策略,如每到达一个请求就分配一个线程、每个服务对象分配一个线程、整个服务器使用一个线程池等等。CORBA还支持基于事件服务和通告服务的组通信模式;在可靠性方面,对象调用请求的缺省传输语义是at-most-once。面向对象中间件还支持例外处理,即,客户可以捕捉

到请求处理过程中产生的例外,该例外可能产生在客户端或服务器端。CORBA消息服务和通告服务支持exactly-once传输语义。而事务性是面向对象中间件的主要特征之一,如,CORBA定义了事务服务,DCOM集成了微软事务服务器,RMI制定了Java事务服务;在伸缩性方面,面向对象中间件具有一定的伸缩性,主要体现在良好的访问透明性和位置透明性。而面向对象中间件对复制透明性和迁移透明性的支持还不够;在异构性方面,对象中间件着重解决分布应用的异构性问题。CORBA和DCOM都支持多种编程语言,并定义了标准的数据表示规则解决数据跨平台传输的问题。RMI仅支持Java一种语言,但利用Java虚拟机的跨平台能力解决了平台异构的问题。而不同面向对象中间件之间也可互操作,如CORBA与DCOM、CORBA与RMI。

2.3 国内外市场

2003年,全球中间件软件市场成长迅速,总营业额约为70亿美元,比上年增长27%,中间件软件正在成为全球软件行业新的技术与经济增长点。2003年,美国市场的中间件产品销售额达到48亿美元,占全球中间件市场总销售额的68.6%,是名副其实的中间件生产和应用大国。据《中国软件产业发展研究报告,2004》统计,2003年,中国中间件软件市场的销售总额达6.5亿元,比2002年增长了1.6亿元,增长率为33%,高于中国IT市场的整体增长速度。2003年,中国的中间件软件应用主要集中于如下应用领域:其中,邮电领域销售额为2.09亿,占32%;金融领域销售额为1.55亿,占24%;电子政务与政府销售额为1.1亿,占17%;能源领域销售额为0.75亿,占12%;交通领域销售额为0.5亿,占8%;其它领域销售额为0.5亿,占8%。

鉴于中间件软件的重要性,国际上主要的计算机系统公司纷纷推出自己的中间件软件平台战略计划和应用解决方案,呈现群雄争霸的局面。1999年10月,Sun公司开始免费提供办公软件StarOffice及其Web浏览器版StarPortal,宣布开放Solaris操作系统的源代码,并发起了网络计算联盟,推出SUN ONE计划和开发平台,已经并将继续在网络计算领域发挥重要影响。IBM公司在提出了面向网络应用的“旧金山计划”之后,为继续发挥其在Internet 上影响,领头开展了WEB SERVICE的战略计划。Oracle公司正在积极扩展ASP服务,并制定推出了以Oracle 9i为中心的网络软件平台发展计划。作为中间件的独立厂商BEA,推出了系列化的中间件产品WEBLOGIC等,作为新一代基于Java的Web应用服务器,在提供传统的应用服务器功能的同时,针对当今的Internet技术和Java技术的需要提供了功能丰

富的支持机制。面对Internet应用和新型客户端这个庞大的市场,2000年6月,微软公司推出Microsoft .Net计划并大力宣传,以其作为微软公司走向Internet的全盘规划。

就我国的情况而言,早在“九五”期间,国家863高技术计划就开始关注中间件技术与产品的研究与开发,并进行了相应的部署。基本掌握了CORBA中间件和消息中间件等中间件的主流技术,开发出“分布计算软件平台StarBus”和“网络通信中间件ISMQ”等通用中间件产品。随着863高技术计划十五期间研发工作的深入,我国在中间件技术和产品方面的技术水平有了进一步的提升,取得一批研究、开发和应用成果。主要技术产品包括“基于CORBA技术的中间件软件产品Starbus系列”、“基于消息中间件的中间件产品网驰(ONCE)系列”、“基于Web Services技术的中间件产品SABASE系列”和“基于J2EE的中间件产品PKUAS“等,在中间件的关键技术、推广应用、国际标准的介入等方面取得突破性进展,推动了我国中间件产业的发展。

中创软件在863高技术计划的支持下,基于863核心技术产品推出了一系列的中间件产品,主要有InfoBus、InfoWeb,InfoEAI和InfoFlow等,成为中间件产业的一支新军。东方通科技继原有中间件产品之后,于2003年6月推出新产品TongIntegrator企业应用集成平台,该产品能够为需要数据集成的应用提供数据流服务、能够提供应用集成框架、具有支持不同地域系统集成的功能,并支持多种数据格式、还能提供强有力的数据加工处理能力,实现系统的互联互通。金蝶于2003年11月发布了其中间件产品的新版本Apusic应用服务器3.0,该产品增加了支持JAAS、支持Kerberos用户认证、完整实现RMI/IIOP、支持Web Services 等更多新的特性;同时,新版本在安全性、性价比、中文支持、本地化、服务响应等方面具有一定优势。

3 发展趋势

中间件技术近年取得了很大的成功,不仅成为产业界开发分布系统的首选,也吸引了学术界的众多研究。随着应用的普及和研究的深入,以及Internet的发展,如图 1所示,目前的中间件技术主要呈现出三方面的趋势:

图 1. 中间件发展趋势示意图

首先,中间件越来越多地向传统运行层(操作系统)渗透,提供更强的运行支撑,特别地,分布式操作系统的诸多功能逐步融入中间件,如,在CORBA和RMI中,中间件往往以类库的形式被上层应用主动地载入应用运行空间,与之相反,在CCM和EJB中,中间件是独立的运行程序,负责装载上层应用并为之提供运行空间。此外,基于服务质量的资源管理机制以及灵活的配置与重配置能力也是目前的中间件研究热点。

其次,应用软件需要的支持机制越来越多地由中间件提供,中间件不再局限于提供适用于大多数应用的支持机制,那些适用于某个领域内大部分应用的支持机制(这些机制往往无法在其它领域使用)也开始得到重视。如,在最新的CORBA规范中,增加了对实时应用和嵌入式应用的支持,而特定于无线应用的移动中间件、支持网格计算的中间件也是目前的研究热点。

其三,中间件也开始考虑对高层设计和应用部署等开发工作的支持,如,CORBA和RMI提供了支持基于构件的软件开发的CCM和EJB构件模型,J2EE提出了包括构件开发、构件组装、应用部署等在内的基于构件的软件开发过程模型,OMG提出的模型驱动体系(Model-Driven Architecture)则考虑如何利用UML更有效地开发基于中间件的应用系统。对于目前的AOP(Aspect Oriented Programming),中间件由于其封装的共性特征及其动态配置能力,成为支持侧面动态编织的主流支撑平台。

具体而言,目前的中间件研究热点包括:

(1)支持基于构件的软件开发

基于构件的软件复用方法经过多年的研究与实践,得到了广泛的认可。中间件技术更是在实现层次直接支持构件的部署和运行。由于面向对象技术具有对构件的自然支持,因此,对象中间件正在或已经发展成为构件中间件。

为了推动基于Java的服务器端应用开发,Sun在1999年底推出了Java2技术及相关的

J2EE规范[46]。J2EE的目标是:提供平台无关、可移植、支持并发访问和安全、完全基于Java的服务器端中间件标准。在J2EE中,Sun给出了基于Java语言开发面向企业分布应用的完整规范。其中,在分布互操作协议方面,J2EE同时支持JRMP和IIOP;而在服务器端分布式应用构造方面,则包括了Java Servlet、JSP(Java Server Page)、EJB(Enterprise JavaBean)等多种形式。针对不同的业务需求,EJB定义了四种构件类型,即,无态会话构件、有态会话构件、实体构件和消息驱动构件;为了提高服务器端的运行效率,EJB将接口划分为远程接口和本地接口,远程接口通过RMI-IIOP调用,而本地接口则直接通过Java语言调用机制;为了解决构件与后台数据库的关联问题,EJB不仅通过实体构件封装后台数据,还提供了特殊的查询语言支持用户对构件进行复杂的关系型操作,换言之,EJB通过实体构件及其之间的关系屏蔽了后台数据库的异构性和复杂性;EJB还定义了作用于构件的事务和安全机制[45]。由于其完整的实现模型和开发模型,EJB是目前采用构件技术开发系统的首选。

CORBA是分布异构系统互操作的工业标准。正在制定中的CORBA 3规范增加了面向Internet的特性,服务质量控制和CORBA构件模型。增强的Internet特性包括针对 IIOP传输的防火墙和可互操作的命名服务。服务质量控制包括提供消息质量控制的异步消息服务、嵌入式CORBA、实时CORBA与容错CORBA。CORBA构件模型(CORBA Component Model,CCM)参考EJB规范在POA和CORBA对象服务的基础上发展而来,定义了构件模型与元模型、容器结构、编程模型、构件定制与部署等基本概念与关键技术[31]。CCM 规范草案自1999年2月发布至今,尚无可用的参考实现,因此阻碍了CORBA 3规范正式出台的进程。

COM最初的设计原则之一就是支持构件技术,由此发展出了Distributed COM (DCOM), COM+, Microsoft Message Queuing(MSMQ), Microsoft Transaction Server (MTS), ActiveX Controls等相关技术[28]。由于微软的技术背景,COM技术得到了底层操作系统和开发工具的强大支持,其易用性优于前两种面向对象中间件。但也正因为依赖Windows,COM在其它操作系统平台如UNIX和Linux上无法发挥作用。

(2)支持Internet应用与Web服务

在局域网取得巨大成功的中间件在Internet环境中暴露出了诸多弊端,如网络地址不固定、二进制编码、与现有Internet标准不兼容等等。更重要的是,Internet的开放性意味着各个节点可能采用不同的中间件技术,而现有中间件对技术细节进行了过多的约束,导致基于不同中间件的系统难以跨Internet进行交互。

1999年到2000年,第一个版本的SOAP(Simple Object Access Protocol)发布[52]。SOAP

的引入产生了解决中间件跨Internet交互的新型中间件技术Web Services。W3C在第一次Web Services国际研讨会上给出了Web Service较为准确的定义[3]:“Web Services是由URI (Uniform Resource Identifier)标识的软件应用,该应用的接口和绑定可通过XML制品进行定义、描述和发现,同时,该应用可通过基于Internet的XML消息协议与其它软件应用直接交互”。值得一提的是,Web Services的出现并没有代替已有的中间件和互操作技术,而是更多地被应用于中间件集成[50]。不同的Web Services可以选择不同的技术实现,只需要发布使用WSDL(Web Service Description Language)描述的服务接口并在UDDI(Universal Description, Discovery, and Integration)中注册,就可以被其它应用或客户端使用,并且对其它应用和客户端的实现技术没有要求。

Web Services 在提供标准的互操作基础设施的基础上,通过定义标准的组装方式提供复用遗产系统、快速开发基于Internet 业务系统的能力。协奏(orchestration)和编排(choreography)是组装Web Services 创建业务流程的两个不同的方面[34]。协奏描述了Web Services 如何能够在消息层次上相互交互,包括商业逻辑和交互的执行顺序。这些交互可以跨越应用程序和/或企业组织,并产生一个长时间、事务性的多步骤的流程模型[35]。协奏通常从交互的一方的角度来描述控制,这一点不同于编排,后者更强调一种协作,允许参与交互的每一方描述所参与交互的内容。编排跟踪交互的多方(包括客户、提供者以及商业伙伴)之间的消息序列(通常是发生在Web Services 之间的公共消息交换),而不是一方执行的业务流程。当前的标准有:(1)BPEL4WS(Business Process Execution Language for Web Services)[1],它基于微软的XLANG和IBM 的WSFL(Web Services Flow Language);(2)由业务过程管理组织(Business Process Management Initiative)提出的BPML(Business Process Management Language)[8]和WSCI(Web Services Choreography Interface)[53],后者是由Sun、SAP、BEA 和Intalio 提出的描述Web Services协作的语言。

(3)支持移动应用

现有中间件产品往往假设底层网络具有较高的带宽和可用性,但无线网络或者带宽较低,如GSM一般提供9600波特的带宽,或者可用性较低,如无线局域网(WaveLAN)提供较高的带宽但离开基站几百米就无法正常工作。这些特点导致现有中间件技术无法支持基于无线网络的移动应用,由此产生了新的研究热点——移动计算中间件。移动计算中间件与传统中间件的主要区别在于通信模式、计算负载、运行上下文:在通信模式上,传统中间件针对永久可用的网络连接采用同步通信,而移动计算中间件针对断断续续的网络连接采用异步通信;在计算负载上,传统中间件运行于固定设备之上支持重负载,而移动计算中间件运

行于移动设备之上仅支持轻量计算;在运行上下文方面,传统中间件运行于静态、封闭环境中而忽略运行上下文,但移动计算中间件所处的动态、开放环境要求其必须对运行上下文敏感[26]。

研究人员或者扩展传统中间件或者实现一个全新的中间件来适应移动计算。其中,DOLMAN开发了一种轻载的IIOP协议,通过缓存机制和应答机制适应不可靠的无线网络[38];文献[37]则通过一个网关进行WAP和IIOP之间的转换从而允许移动用户访问CORBA 服务;Mobiware 是一种支持服务质量的CORBA中间件,可通过服务质量的适配支持移动应用[2];UIC是一种反射式中间件,允许用户根据运行环境定制平台的功能进而调整中间件所需的计算和存储资源,如,UIC允许在Palm上运行仅18kb的CORBA客户端[47];Nexus 是一种位置敏感的中间件,提供了在移动设备上运行的用户界面、支持多种定位机制、支持GSM、Wireless-LAN、BlueTooth等多种无线协议[16];Odyssey是一种数据共享中间件,通过数据复制提高无线网络中数据的可用性[39]。现阶段的移动计算中间件着重解决无线网络带宽和可用性、以及移动设备的资源问题,今后的研究重点在于无线网络的异构性、安全性、服务的动态发现等等[26]。

(4)支持反射机制

中间件抽象出分布系统的共性问题并封装了相关的支撑机制,允许上层应用以“黑盒”方式复用这些功能,从而屏蔽底层环境的异构性和复杂性。但是,Internet的发展促使应用环境从封闭、静态转变为开放、动态,这要求软件系统具有足够的灵活性以适应开放、动态的运行环境。开放中间件平台内部细节,允许上层应用以“白盒”方式复用中间件的功能,是中间件满足上层应用灵活性的有效途径。由此产生了下一代中间件的研究热点之一——反射式中间件。

“反射性”的概念首先在人工智能领域出现,然后被引入计算机的其它领域,如逻辑编程、功能编程、面向对象编程等。如果一个系统能够通过某种方式描述并表现自身,就称该系统具有自述性。如果系统的自述性与其真实的运行状态和行为具有一种因果关联,即系统自述的变化会导致系统状态和行为的改变,反之亦然,就称该系统具有反射性[24]。反射式系统具有内省(introspection)与调整(intercession)两种基本能力:内省指系统监测并推理自身状态的能力,调整则是指系统改变自身执行状态或内部语义的能力。

将反射性引入中间件能够开放平台内部的实现,从而提高中间件的定制能力和运行时自适应能力。反射式中间件就是一种能够通过与系统运行状态和行为具有因果关联(casual-connected)的系统自述(self-representation)来监测并调整系统状态和行为的中间

件系统[12]。目前反射式中间件的研究与试验大多集中于CORBA:OpenCorba是法国école des Mines de Nantes大学采用反射式语言NeoClasstalk实现的反射式CORBA。通过元类(meta-classes),OpenCorba将CORBA ORB的内部特性分离并单独实现,从而允许系统在运行过程中监测并调整这些内部功能单元[23];dynamicTAO是在华盛顿大学的ORB软件TAO的基础上研制的一种反射式CORBA软件,其反射能力体现在对系统服务的配置与重配置,即,通过配置管理器将特定的策略(如安全策略、调度策略等)及其实现机制关联起来[22]。mChaRM是一种反射式的RMI分布调用机制,它将方法调用看成通过一个逻辑信道传输的消息,在该逻辑信道上实现一个关联对象,以监测信道中传输的消息并动态增加一些额外的消息处理功能[10]。PKUAS是北京大学自行研制开发的遵循J2EE规范的反射式构件运行支撑平台,它提供基于软件体系结构的平台和应用反射能力[54]。

(5)支持服务质量

QoS(Quality Of Service)的定义最初由CCITT(国际电报与电话顾问委员会)给出:QoS是一个综合指标,用于衡量使用一个服务的满意程度,描述关于一个服务的某些性能特点。网络协议的结构是分层结构,下一层向上一层提供的功能被称为“服务”。从中间件在ISO网络协议栈所处位置考虑,众多研究者提出了中间件的QoS概念,即,中间件对上层应用提供的功能应该具有服务质量[40]。中间件的QoS功能包括QoS规约(特定于应用领域的、用户可理解的QoS参数的指定)、QoS映射(将领域特定的QoS参数映射成中间件、操作系统、网络等底层支撑软件所理解的QoS参数,并预留所需资源)和QoS执行(系统运行过程中按照QoS规约与QoS映射指导、监控相关的活动,并可能根据运行情况对QoS 进行降级或升级以达到整个系统最优的运行质量)。

BBN的QUO设计了一个质量描述语言QDL,由契约描述语言CDL、结构描述语言SDL 和资源描述语言RDL组成。CDL用来描述客户和某个对象间的QoS契约,包括客户期望的QoS和对象能提供的QoS,监测和控制QoS的系统对象,以及监测到QoS改变时采取的行动。SDL描述了QUO应用的结构。RDL描述可获得的系统资源及其状态。这些语言与CORBA IDL一起完整地描述一个应用的各个方面。QUO首次提出了QoS开发者的概念,即,QoS开发者负责用上述QDL开发QUO契约,开发系统对象来实现QoS监测和控制,以及开发回调机制来实现监测到QoS改变时采取的行动[48]。Washington大学在QoS方面的研究体现在TAO中的调度服务和ACE 中的AQoSA。TAO调度服务为应用开发者提供了接口来指定对象操作的执行周期、最坏情况执行时间、重要程度、紧急程度等QoS参数,根据系统中所有操作的QoS进行调度分析,并映射到ORB中的分发优先级。AQoSA是在

ACE中提供了统一的QoS API来为上层屏蔽底层的不同的QoS协议和接口。这些QoS API 可以通过TAO向应用提供,也可与高层的中间件服务集成[43]。文献[41]在TAO中提供了多种支持QoS的机制,关注于如何协调和动态选择合适的机制来保证端到端的QoS需求。马德里理工大学的de Miguel[29]在EJB模型中加入QoSContext、QoSBean和QoSNegotiation 接口,提供一种支持QoS的EJB容器,为EJB构件提供资源预留、服务质量协商和资源竞争等机制的支持。

(6)支持网格计算

与90年代计算机应用体系结构的主流是客户机/服务器结构相比,Internet的发展使许许多多不同类型的服务器都连接在网上,计算机系统的发展趋势开始从客户机/服务器结构转变为客户机/网络(Client-Network)结构。各种服务器在高层系统软件控制下形成一个具有巨大计算数据处理能力的服务“环境”,对各行各业和社会大众提供一体化的信息服务。这种环境通常称为“网格”(Grid),也称为“元计算”(Metacomputing),被视为Internet技术发展的下一代目标。可以说,Internet实现了计算机硬件的连通,Web实现了网页的连通,而网格试图实现互联网上所有资源的全面连通,包括计算资源、存储资源、通信资源、软件资源、信息资源、知识资源等等。在Internet/Web上,数据和计算资源零散地分布在各个网络站点;而在信息网格中,资源可统一管理和使用。用户可以通过网格门户(Portal)之类的技术,透明地使用整个网络资源。他们看到的是一个逻辑门户上的若干与自己相关的频道,而不用在成千上万个网站中去搜索自己想要的信息。

支持网格计算的中间件为应用开发者提供对分布式资源的统一的访问、管理、控制、监测、通信和安全支持。由网格管理的资源一般是地理上分布的、体系结构和管理上异构的计算和数据资源,而用户系统能够以更快的速度和更简便的方式使用这些资源。这也就意味着中间件的责任是解决开发者使用这些资源时遇到的由资源的分布和大规模带来的问题。

在国外,最著名的网格计算研究是美国的Globus项目。该项目的主要研究目标有两个:其一是网格技术的研究;其二是相应软件的开发和标准的制定。同时,Globus项目还涉及到网格应用的开发及试验床的建立。最近,Globus项目提出的网格体系结构模型包括如下几个部分[17]:网格结构层(Grid Fabric),提供资源相关、站点相关的基本功能,便于高层分布式网格服务的实现;网格服务层(Grid Services),实现资源无关和应用无关的功能,网格服务的实现涉及到地域和机构的分布;网格应用工具层(Grid Application Toolkits),提供更为专业化的服务和组件用于不同类型的应用;应用层(Application),由用户开发的应用系统组成,网格用户可以使用其它层次的接口和服务完成网格应用的开发。

(7)支持自治计算

计算技术的普及,使得IT人员紧缺。即使人员充足,系统的复杂性也可能增长到人类能力无法控制的地步。IT产业必须保证计算系统能力的持续增长,这意味着计算系统复杂性的增加是持续的、不可避免的,为此,IBM提出了自治计算(Autonomic Computing)[18]。一个自治计算系统必须至少具备8个特性:自治计算系统必须能够标识自身及其组成构件;自治计算系统必须能够在不同的条件(甚至是预料之外的条件)下配置或重配置自身;自治计算系统永远不会停滞于某种状态,而是不断调整状态以获得最优性能;自治计算系统必须具备自我复原的能力;自治计算系统必须具有足够的自我保护能力;自治计算系统知道外部环境以及自身活动的上下文,并能做出相应的动作;自治计算系统必须能够在开放环境中运行;自治计算系统在隐藏复杂性的同时,能够预先最优化需要的资源。从系统管理的5大基本能力而言,上述8个特性可以归结为自我配置、自我优化、自我修复和自我保护(不涉及计费)。

从中间件现有功能以及呈现出的新特性来看,下一代中间件的功能更多、更强,中间件的管理(尤其是配置)更加复杂,而CORBA、EJB、Web Services等中间件使用的繁杂都能说明这一点。另一方面,中间件的应用领域和环境越来越丰富,且大多具有很强的变化性。如在开放的Internet环境中,系统可用资源、用户请求情况和QoS等方面都会不断变化,要求中间件能够随着环境变化随时对自身的配置进行动态调整。因此,自治性也将成为下一代中间件的主要特性之一。

DynamicTAO[22]支持运行时刻以一种安全的方式对构件的并发控制、安全和监测等方面进行重新配置,以及自动的装载截取器,实现特定功能(如日志、加密和访问控制等等);另外,DynamicTAO使用动态软实时调度机制,实现根据用户请求、系统资源状态和QoS 需求及满足程度进行动态的QoS控制和管理、资源预留和协商和实时调度。OpenORB[4][6]则针对分布式多媒体系统中不同用户QoS需求不同的特点,根据不同QoS需求对系统资源的消耗,进行细粒度的资源协调和管理以及QoS降级操作。JAGR[9]通过对JBoss进行扩展实现对应用系统的自动修复。其中使用的关键技术包括:使用插错技术构造故障依赖图;加入监测器监视系统运行情况;发生故障时根据故障依赖图递归重起EJB容器。自治愈中间件[27]关注于辨识、组织、推理和控制中间件可靠性的属性、威胁和可以获取可靠性的途径。自治愈中间件中对一个故障和错误可能存在多种容错机制,由中间件根据当时的系统情况和用户的可靠性需求选择合适的机制进行处理。

4 思考与探讨

从前文对中间件方方面面系统化的介绍,不难看出,由于学术界的研究与探索以及产业界的推广与实践,中间件已经成为网络时代最主要、也是最活跃的软件形态之一。面对中间件技术研究与实践的“百花齐放”,人们不禁要问:“是什么力量驱动了中间件的发展?”,如果这些驱动力依然有效,“5年或10年后的中间件是什么样子?”。

4.1 关于中间件发展驱动力的思考

(1)从软件形态看中间件的发展

软件是客观世界中问题空间与解空间的具体描述,其基本模型为实体元素以及这些元素之间的连接和交互。考察软件基本模型的发展,汇编语言(机器语言)的基本单元是指令,指令的序列构成程序,其控制机制主要是顺序和转移;高级语言则通过顺序、循环和条件等三种基本控制结构来控制高级语句,而函数(过程)等程序元素增大了实体元素的粒度;近20年来,面向对象程序设计语言的诞生并逐步流行,为人们提供了一种以对象为基本计算单元,以消息传递为基本交互手段的软件模型,该模型以拟人化的观点来看待客观世界(客观世界由一系列对象构成,这些对象间的交互就形成了客观世界的活动),符合人们的思维模式和现实世界的结构;对软件复用的关注,又使得人们试图寻找比对象粒度更大、更易于复用的基本单元,因而面向构件的计算模型被视为新一代的软件模型。

网络的出现与普及,使得编程语言提供的基本通信机制无法支持软件模块之间的远程交互,由此导致了中间件的产生。此外,软件自身的日益复杂导致软件模块之间的交互也变得复杂,为此,中间件不得不提供越来越多的功能以屏蔽交互的复杂度,如,异步通信、组通信、并发、安全、事务等复杂功能成为中间件必备的高级特征,而Web Services更是考虑到了交互之间的时序约束以及多个模块交互之间的全局约束。因此,从软件形态的角度看,中间件主要解决软件模块之间的交互问题。

(2)从软件本质看中间件的发展

在整个信息技术体系中,微电子是基础,计算机和通信设施是载体,软件则是核心。如何更高效地发挥硬件资源所提供的计算能力,是软件技术发展的主要驱动因素之一。以操作系统为例,随着计算机硬件的发展,单机操作系统从最初的引导程序,发展到管理诸多硬件资源的管理程序,进而产生发挥CPU与外设作用的多道程序,直至今日追求软硬件高效利用的资源管理系统。

随着通信设施的发展,如何高效、经济地发挥通过网络互联、种类繁杂、数量众多的硬件资源的计算能力,导致了中间件的产生。除了经典的远程通信问题,越来越多的与硬件相关的问题

及其解决方案也开始在中间件中得以体现,如,实时中间件(realtime middleware)重点考虑现实世界严格的时间约束问题,嵌入式中间件(embedded middleware)着重解决嵌入式设备计算能力较弱、存储空间较小、网络带宽有限、电源供应不足等问题,而移动计算中间件(mobile middleware)则提供位置敏感、断连操作等支持。因此,从软件本质的角度看,中间件也可视为“网络操作系统”。

(3)从软件开发看中间件的发展

软件开发是典型的知识密集型活动,复杂度高、开发周期长、可靠性难以保证。尽可能多地凝练共性并复用,是提高软件开发效率和质量的主要途径。从共性凝练的角度看,操作系统将管理硬件资源、控制程序运行等直接作用于裸机的共性问题提取出来,简化应用对计算机的管理和使用;而中间件则将网络环境下应用开发经常遇见的共性问题,如通信、安全、事务等,以及特定于某些领域的问题,如电信中的事件过滤与通告、音视频传输、运输领域的空中交通管制、制造领域的计算机辅助设计、生命科学领域的基因表达等抽取出来,大大简化了网络应用的开发和维护。

随着可复用共性的增多,软件开发也逐步从手工作坊式向软件工业化生产演变。典型的工业化软件生产技术包括终端用户编程、模型驱动开发和随需即取等。终端用户编程允许用户在无需掌握复杂的编程语言和过多的技术细节的条件下,可以快速开发出满足需求的软件。在模型驱动开发中,用户只需关注高层建模,复用包含复杂技术细节的低层模型,即可自动生成代码。随需即取则根据用户需求,由服务提供商快速正确地构造出相应服务。在这些工业化软件生产技术中,中间件都扮演了极为重要的“基础设施”的角色。因此,从软件开发的角度看,中间件是一种高效实用的共性凝练与复用手段。

(4)从软件市场看中间件的发展

市场竞争、技术升级以及保护投资等因素往往导致软硬件的异构,而市场合作以及系统升级又要求解决异构问题。回顾软件技术的发展,操作系统从某种程度而言,屏蔽了计算机硬件的异构性;为了屏蔽操作系统和编程语言的异构性,产生了支撑软件和中间件。中间件的发展和多样化导致了中间件的异构性,由此产生了Web Services。另一方面,从产品为中心转向服务为中心的“软件即服务”以及“业务按需即取”等新型市场模式,均依赖于中间件技术的支撑。

从软件产业的角度,采用中间件技术和产品可有效缩短应用解决方案进入市场的时间,提高解决方案的竞争力,其大量的开发与使用可有效提高软件企业的产品质量和生产效率。从技术的角度而言,中间件技术和产品包含了对Internet平台的抽象、开放应用模式和结构的理解、基础的程序设计模型、新型软件方法学等多项软件核心技术,是Internet环境下众多软件新方法和新

技术的综合载体。从产品角度而言,中间件是处在经典系统软件和应用系统之间的一组软件,它们不仅可在多种主流平台上运行,对现行的主流软件技术和产品具有良好的兼容性,还能够适应Internet多样性特征、开放性应用的多样性特征和多种用户的个性化需求。因此,从软件市场的角度看,中间件使得各种软硬件技术与产品能够适应各种市场模式或策略。

从软件形态、软件本质、软件开发、软件市场等四个角度考察,尽管难以保证其结果的完备性,但确实揭示了中间件发展驱动力的重要内容。同时,作者相信,这四个指标在未来的5-15年间仍然将是中间件技术(甚至是软件技术)发展的主导因素,因此,由此得出驱动力仍将主导中间件的发展,为我们预测中间件的未来趋势提供主要的依据。

4.2 关于中间件未来趋势的探讨

从前面对中间件研究现状与发展趋势的介绍以及驱动力的探讨可见,Internet平台和环境的出现及其发展,对中间件近十多年的研究与实践起到了决定性的影响。无疑,Internet 在未来5-15年内将得到进一步的普及和发展,因此,本文将以Internet为背景探讨中间件的未来趋势。

Internet作为不同于传统计算机的硬件平台,具有如下基本特征:无统一控制的“真”分布性;节点的高度自治性;节点链接的开放性和动态性;人、设备和软件的多重异构性;实体行为的不可预测性;运行环境的潜在不安全性;使用方式的个性化和灵活性;网络连接环境的多样性。由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的Internet平台的转变,软件系统作为计算机系统的灵魂,随着其运行环境的演变也经历了一系列的变革。目前,面向网络的计算环境正由Client/Server发展为Client/Cluster,并正朝着Client/Network和Client/Virtual Environment的方向发展。那么,未来的基于Internet平台的软件系统又将会呈现出一个什么形态呢?

从技术的角度看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于Internet的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其它软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息Web类似的Software Web。Software Web不再仅仅是信息的提供者,而是各种服务(功能)的提供者。由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种Software Web并不能够像传统软件那样一蹴而就,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整

和动态的演化,以使系统具有尽可能高的用户满意度。本文将这样一种新的软件形态称为网构软件(Internetware)。

网构软件是在Internet开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征[55]:

自主性:指网构软件系统中的软件实体具有相对独立性、主动性和自适应性。自主性使其区别于传统软件系统中软件实体的依赖性和被动性;

协同性:指网构软件系统中软件实体与软件实体之间可按多种静态连接和动态合作方式在开放的网络环境下加以互连、互通、协作和联盟。协同性使其区别于传统软件系统在封闭集中环境下单一静态的连接模式;

反应性:指网构软件具有感知外部运行和使用环境并对系统演化提供有用信息的能力;

反应性使网构软件系统具备了适应Internet开放、动态和多变环境的感知能力;

演化性:指网构软件结构可根据应用需求和网络环境变化而发生动态演化,主要表现在其实体元素数目的可变性,结构关系的可调节性和结构形态的动态可配置性;演化性使网构软件系统具备了适应Internet开放、动态和多变环境的应变能力;

多态性:指网构软件系统的效果体现出相容的多目标性。它可根据某些基本协同原则,在动态变化的网络环境下,满足多种相容的目标形态。多态性使网构软件系统在网络环境下具备了一定的柔性和满足个性化需求的能力。

传统的软件理论、方法和技术等在处理网构软件时遇到了一系列的挑战。以软件开发技术为例,由于所基于的平台是封闭静态框架,传统软件系统的开发基本都是采用自顶向下的途径,确定系统的范围(即Scoping)总是建立需求的第一步,然后通过分解而实施分而治之的策略,整个开发过程处于有序控制之下。而网构软件系统的开发所基于的平台是一个有丰富基础软件资源但同时又是开放、动态和多变的框架,开发活动呈现为通过基础软件资源组合为基本系统,然后经历由“无序”到“有序”的往复循环过程,基本上是一种自底向上、由内向外的螺旋方式。其它挑战还包括软件基本模型由于所处平台的特性和开放应用的需求而变得比任何传统的计算模型都更为复杂,软件生命周期由于“无序”到“有序”的循环而呈现出不同于传统生命周期概念的“大生命周期概念”,程序正确性由于目标的多样化而表现为传统正确性描述的一个偏序集,软件体系结构侧重点从基于实体的结构分解转变为基于协同的实体聚合,软件生产过程和环境的变化导致基于Internet的面向用户的虚拟工厂的形成。

综上所述,Internet及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。这种新型的软件形态将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。

归结起来,网构软件理论、方法、技术和平台的主要突破点在于实现如下转变,即,从传统软件结构到网构软件结构的转变,从系统目标的确定性到多重不确定性的转变,从实体单元的被动性到主动自主性的转变,从协同方式的单一性到灵活多面性的转变,从系统演化的静态性到系统演化的动态性的转变,从基于实体的结构分解到基于协同的实体聚合的转变,从经验驱动的软件手工开发模式到知识驱动的软件自动生成模式的转变。建立这样一种新型的理论、方法、技术和平台体系具有两个方面的重要性,一方面,从计算机软件技术发展的角度,这种新型的理论、方法和技术将成为面向Internet计算环境的一套先进的软件工程方法学体系,为二十一世纪计算机软件的发展构造理论基础;另一方面,这种基于Internet 计算环境上软件的核心理论、方法和技术,将为我国在未来5-10年建立面向Internet的软件产业打下坚实的基础,在基于Internet新型中间件平台等方面形成具有特色的技术标准和技术专利,为我国软件产业的跨越式发展提供核心技术的支持。

5 结语

作为“中国计算机科学技术发展报告(2004)”的一部分,按照该系列报告“总结热点问题和现状,展望未来发展趋势,为政府部门的决策提供依据,为科研人员、高校教师及学生提供参考”的主旨,本文讨论了中间件技术的国内外研究现状、关键技术及发展趋势。同时,作为该系列报告中一篇关于软件中间件的文章,本文还介绍了中间件的基本概念、主要特征、历史回顾等基础知识。最后,本文从软件形态、软件本质、软件开发、软件市场等四个角度考察了中间件技术发展的驱动力,并以Internet为背景,探讨了未来5-15年中间件的发展趋势。希望本文能为从事中间件技术研究和开发的同行提供一个参考。

参考文献

1. Andrews, T., Francisco Curbera, Hitesh Dholakia, Yaron Goland, Johannes Klein, Frank Leymann, Kevin

Liu, Dieter Roller, Doug Smith, Satish Thatte, Ivana Trickovic, Sanjiva Weerawarana, Business Process

中间件技术原理与应用复习资料

第一章 1、简述中间件的概念、组成结构和作用。 定义:中间件是介于应用系统和系统软件之间的一类软件,是位于操作系统和应用软件之间的一个软件层,向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的情况下,通过网络互通信息。 组成结构:(1)执行环境软件(2)应用开发工具 作用:使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。 2、中间件的特性 (1)易用性 (2)位置透明性:应用不必知道对方网络和应用的地址;不经重新编译,就可把一个应用从一台机器上转移到另一台机器 (3)消息传输的完整性:消息不应丢失或重复 (4)消息格式的完整性:消息格式不应被破坏 (5)语言透明性:使用中间件的程序应能与另一个用不同语言编写的程序通信;如果用不同语言重写一个程序,其他程序应不受影响3、中间件的分类 事务处理中间件(TP Monitor: Transaction ProcessMonitor) 消息中间件(MOM: Message-Oriented Middleware) 数据库中间件(Database Middleware) 远程过程调用中间件(RPC: Remote Process Call)

对象请求代理中间件(ORB: Object Request Broker) J2EE中间件 4、RPC: 工作原理: 1.调用客户端句柄;执行传送参数 2.调用本地系统内核发送网络消息 3..消息传送到远程主机 4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器句柄 7.服务器句柄返回结果,调用远程系统内核 8.消息传回本地主机 9.客户句柄由内核接收消息 10.客户接收句柄返回的数据 5、RMI存根和框架的作用: Stub为客户端编码远程命令并把他们发送到服务器,等待服务器返回结果,stub再解码返回调用结果给客户端。 Skeleton是把远程命令解码,调用服务端的远程对象的方法,把结果再编码发给stub。 6、RPC相关概念

中间件技术

中间件技术 定义: 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。 中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 中间件特点: ?满足大量应用的需要; ?运行于多种硬件和OS平台; ?支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能; ?支持标准的协议; ?支持标准的接口。 由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机

制的不同,我们将平台分为以下主要几类: ?远程过程调用中间件(Remote Procedure Call) ?面向消息的中间件(MesSAge-Oriented Middleware) ?对象请求代理中间件(object RequeST Brokers) ?事务处理监控(Transaction processing monitors) 1、远程过程调用 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server 提供一个或多个远程过程;client向server发出远程调用。server和client 可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。 2、面向消息的中间件 MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。 3、对象请求代理 对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。 4、事务处理监控 事务处理监控(TPM)最早出现在大型机上,为其提供支持大规模事务处理

《软件构件与中间件技术》全真试题

学习中心_________ 姓名_____________ 学号 西安电子科技大学网络与继续教育学院 《软件构件与中间件技术》全真试题 (开卷90分钟) 题号一二总分 题分31 69 得分 一.多项选择题(共12小题,31分。按照要求的选项个数选择) 1. 在3层结构的分布式系统中,()包含了系统的核心业务逻辑。(选1,2分) (A)客户层(B)中间层(C)数据层(D)以上都不是 2. 典型的集成中间件为开发人员提供的三种基本支撑为:(选3,3分)() (A)提供构件运行环境(B)提供互操作机制 (C)提供公共服务(D)提供数据库管理 3. 构件通过封装隐藏其实现细节,构件接口是构件对外公布的唯一信息,使用者只能通过接口了解并使用组件。CORBA对象的接口是用()定义的,EJB构件的接口是用()定义的,Web Service的接口是用()定义的。(各选1,3分) (A)WSDL (B)Java interface (C)自然语言(D)OMG IDL 4. 在支持分布式对象访问的桩/框架(Stub/Skeleton)结构中,负责替客户端完成底层通信相关工作的是(),负责替服务端完成底层通信相关工作的是()。(各选1,2分) (A)客户端桩(Stub)(B)构件的接口 (C)服务端框架(Skeleton)(D)分布式对象自身 5. 在下图所示的OMA参考模型中,哪些涵盖了我们开发一个基于CORBA的应用时 可以直接使用、不需自己实现的功能:(选3,3分)()

(A)对象服务(B)领域接口(C)公共设施(D)应用程序接口 6. CORBA IDL文件中可以定义模块、类型、常量、异常、接口、值等6种规格说明,其中IDL文件的核心内容是:(选1,2分)()(A)类型(B)常量(C)接口(D)值 7. CORBA规范可以实现的可互操作性包括:(选3,3分)() (B)不同平台(如不同操作系统)与语言之间的可互操作性 (C)不同厂商ORB产品之间的可互操作性 (D)不同体系结构中的组件的互操作性(部分支持) (E)不同CORBA规范版本之间的可互操作性 8.下面关于EJB的会话构件(Session Bean)的描述正确的有:(选2,2分)() a)Session Bean存在于客户应用与应用服务器交互的时间段内,Session bean 中的数据不保存在数据库中。 b)Session Bean与数据库中的数据具有相同的生存期,Session bean中的数 据要保存在数据库中。 c)有状态Session Bean的对象需要保存与客户端交互的中间状态,因此需要 为每个客户端生成一个对象供其专用。 d)无状态Session Bean的对象需要保存与客户端交互的中间状态,因此需要 为每个客户端生成一个对象供其专用。 9.下面关于EJB的实体构件Entity Bean的描述正确的有:(选2,2分)() a)Entity Bean的主要作用是提高数据库访问效率,向使用者提供JDBC接口, 利用需要开发。 b)Entity Bean的主要作用是封装数据库操作,将数据库操作转嫁到Entity Bean对应的Java类/对象上,从而简化数据库相关应用的开发。 c)使用者调用CMP(容器维护的持久性)类型Entity Bean的Home接口中 create操作会导致在数据库中插入记录。 d)使用者调用CMP(容器维护的持久性)类型Entity Bean的Home接口中 create操作不会导致在数据库中插入记录,只会创建一个Entity Bean 类的对象。

DSP技术应用现状以及发展趋势精

DSP技术应用现状以及发展趋势(精)

————————————————————————————————作者:————————————————————————————————日期: 2

DSP技术应用现状以及发展趋势 一、数字信号处理结构。 实时数字信号处理系统:采集系统+DSP芯片 非实时系统:pc机上进行处理系统的模拟与仿真或仿真库+DSP芯片。 1 DSP、MCU、MPU的关系 微控制器MCU通俗的称呼是单片机,它与微处理器MPU是微机技术的两大分支。MPU的发展动力是人类对无止境的海量数值运算的需求,速度越来越快。MC U的发展是为了满足被控制对象的要求,向高可靠性、低功耗、低成本发展。一般MCU的引脚数在60以下,MCU以8位机为主、32位机为辅。有趋势提高MCU的运算功能,将DSP集成到MCU中,比如32位的MC68356集成了Motorola的DSP560 02。 微控制器MCU一直存在两种基本结构:哈佛(Harvard)结构和冯诺依曼 (von Meumann)结构,还可进一步讲是对应成复杂指令集计算机CISC和精简指令计算机RISC。冯诺伊曼结构具有单一总线PRAM或DRAM都映射到同一地址空间,总线宽度与CPU类型匹配。哈佛结构具有独立的程序总线和数据总线,CISC的指令一般是微码miccode,每条指令由CPU解码为许多基本指令,基于CISC的微控制器一般很复杂,都采用冯诺伊曼结构,所需要的程序存储器比RISC产品少。微码在CPU产生而限制了CISC器件的带宽,其指令集也比RISC器件大。 68000的MPU是准32位的MPU,内部32位,外部总线是16位。苹果机就是用68000系列,它的运行分成系统态和用户态,其设计是面向分时多任务或实时操作系统的,68000的总线后来变成VME总线标准。到68020就是全32位了。 1991年IEEE1149.1即JTAG的公布满足了IC制造商的措施需求,也给ASIC、MCU 、MPU、DSP、PLD、FPGA等的用户带来方便。一般十万门以上的IC都有JTAG 接口,1993年IEEE1149.5对JTAG作了修正(5线接口)。IC的测试分成晶片级、IC 封装级、电路板与系统极,JTAG完成了前两者的测试。适于68000系列的32位机的开发工具ICD32是一段扁平电缆,一端接IC的JTAG的5线接口,一端通过25芯头(里面有GAL)接PC机并口。传统上,微控制器MCU与微处理器MPU是两大分支,而DSP是MCU的一种特殊变形。但是从实质讲,MPU多半是CISC,除了DSP 之外的MCU也是CISC。而DSP是RISC。所以比较时更适合DSP与MPU相比,MP U适宜于相同管理这样的应用中,以条件判断为主的应用,以软件管理的操作系统为核心的产品,MPU的设计侧重于不妨碍程序的 流程,以保证操作系统支持功能及转移预测功能等。而DSP侧重于保证数据的顺利通行,结构尽量简单。 2 冯·诺依曼结构和哈佛结构 3

第1章:中间件技术介绍

第一章:中间件技术介绍 1.1两层结构与三层结构 长期以来,我们一直使用着"客户端/服务器"的两层结构,这种两层的结构曾让无数人为之兴奋和惊叹,即客户端提供用户界面、处理业务逻辑,数据库服务器接受客户端SQL 语句并对数据库进行查询,更新等操作,然后操作结果返回给客户端,如图所示。 在一个比较简单的计算机应用系统中,采用两层体系结构的确给人们带来了相当的灵活性。但随着计算机应用水平的飞速发展、企业信息化水平的不断深入、企业客户的不断增加,以及新业务的不断出现,越来越多的用户对计算机应用系统提出了更高的要求: 1.要能够同时支持成千上万乃至更多用户的并发服务请求 2.由单一的局域网向跨多个网络协议的广域网扩展 3.不仅要支持一般的信息管理,而且还要支持关键业务的联机交易处理 4.从支持单一的系统平台和数据源转向支持异构的多系统平台和多数据源 面对用户的新需求,二层结构的应用模式由于采用客户机与服务器直接联接的方式形成了其固有的一些缺陷: 1.难以维护 client/server结构用户界面、业务逻辑和数据逻辑相互交错,通常在第一次部署的时候比较容易,但难于升级或改进,而且经常基于某种专有的协议(通常是某种数据库协议)。它使得重用业务逻辑和界面逻辑变得非常困难。 2.难以扩展 随着系统的升级,系统复杂程度大大增加,难以扩展,另外它是一个封闭的系统,很难与其他的应用系统实现互操作。 3.安全性差 客户端程序可以直接访问数据库,可通过编程语言或数据库提供的工具直接对数据库进行操作,不安全

4. 性能不好 客户端直接与数据库建立连接,当有大量的并发用户存在时,会使数据库不堪重负,性能迅速下降,甚至当机。 三层结构 为解决传统二层模式与应用需求日益突出的矛盾,以交易中间件为基础框架的三层应用模式应运而生,三层结构以中间层管理大量的客户端并为其联接、集成多种异构的服务器平台,通过有效的组织和管理,在极为宽广的范围内将客户机与服务器进行高效组合。同时中间件开创的以负载平衡、动态伸缩等功能为代表的管理模式,已被广泛证实为建立关键业务应用系统的最佳环境,使在二层模式下不可能实现的应用成为可能,并为应用提供了充分的扩展余地。这种模式的成功应用已为许多国际大型企业在应用的开发和部署方面节省了大量的时间和金钱。由此促使越来越多的系统开发商和用户采用三层结构模式开发和实施其应用。 三层客户机/服务器模式的核心概念是利用中间件将应用的用户界面、业务逻辑和数据逻辑分为三个不同的处理层,如图所示. 1.表示层(用户界面):它的主要功能是实现用户交互和数据表示,为以后的处理收集数据,向第二层的业务逻辑请求调用核心服务处理,并显示处理结果。这一层通常采用VB,PB,DELPHI等语言编写,或采用浏览器实现 2.中间层(业务逻辑):实现整个应用系统核心业务逻辑,通常把业务逻辑划分成一个个独立的模块,用中间件提供的API结合数据库提供的编程接口实现。客户端通过调用这些模块实现相应的业务操作。 3.数据层(数据逻辑):数据库负责管理整个应用系统的数据资源,完成数据操作。中间层上应用程序在处理客户端的请求时,通常要存取数据库。 随着市场竞争的日益加剧和企业电子信息化建设的不断深入,高度灵活、能快速部署新服务和新应用的三层结构应用系统将成为企业信息化的必由之路。采用以中间件为基础的三层结构来架构的应用系统不但具备了大型机系统稳定、安全和处理能力高等特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。可以很好解决两层结构所面临的问题。中间件作为构造三层结构应用系统的基础平台,在三层结构中起着关键的作用,下一节我们将对中间件技术做一个概括性的介绍。

为什么需要中间件

为什么要中间件? 计算机技术迅速发展。从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中,通常存在多种硬件系统平台(如PC工作站,小型机等)在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题。 中间件在实际的应用过程中,是对应用软件起到支撑作用,最终用户并不直接使用中间件,中间件不是大众消费类软件产品。因此,除非是一个行业专业人士,一般不大可能与中间件打交道,不太了解什么是中间件。 因此,在系统软件之中,操作系统、数据库、中间件的三驾马车,中间件是最“神秘”的。因为,好歹大家通过Windows基本上会了解操作系统是个什么东西,尽管不会很全面,很专业,毕竟是有感觉的。数据库,虽然没有直接见过,但基本上明白数据是要一个“仓库”来储存的,因此,也大致知道数据库管理系统是干什么的。 长期以来,中间件是一个专业化非常强的细分产业。因为中间件的技术门槛比较高,玩家也不多,无论是国外还是国内都是如此。因此,行业内对什么是中间件并不特别在意。而公司名称直接叫中间件的就更少了,“金蝶中间件”应该是国内外直接在公司名称中冠以中间件字眼最早,也是很少的公司之一。另一方面,因为中间件软件还处于发展阶段,还没有完全成熟,因此对中间件的定义也就没有深究,或者权威的说法。 但现在情况有点变化,其中一个原因在于2008年底,国家启动了“核高基”重大科技专项,在基础软件领域明确提出重点支持“操作系统、数据库、中间件、文字处理”等基础软件产业的自主创新,几乎一夜之间大大小小的软件公司都宣称是做中间件的了,只要不是做最终应用软件的,他们的产品都叫中间件了,一时间,中间件变得“蓬勃发展”起来了。 作为中间件行业内的专业化和领先企业来说,大家都重视起中间件来了,这是好事,说明社会上重视了。对行业的发展和繁荣固然重要,但这也隐含了重大的风险。中间件名字被滥用,无论是对用户,对这个产业,对政府和投资人来说,都会有负面的影响。“鱼目混珠,泥沙俱下”的局面,对中间件产业的正常发展未必就是好事情了,也可能对真正的中间件自主创新带来许多困扰,模糊了中间件的本质,可能会弱化中间件核心技术的创新和发展。 因此,在这种情况下,无论是对行业内,还是行业外,突然“什么是中间件”的问题变成了一个大问题了。

软件技术的现状和发展趋势

万方科技学院 毕业论文(设计) 题目:软件技术的现状和发展趋势 专业:计算机科学与技术 年(班)级:15计科升-1班 学号:1516353029 姓名:闫建勋 指导教师:马永强 完成日期:2015-12-1

摘要 计算机软件是计算机系统执行某项任务所需的程序、数据及文档的集合,它是计算机系统的灵魂。从功能上看,计算机软件可以分为系统软件、支撑软件和应用软件。系统软件和支撑软件也称为基础软件,它是具有公共服务平台或应用开发平台功能的软件系统,其目的是为用户提供符合应用需求的计算服务。因此,应用需求和硬件技术发展是推动软件技术发展的动力。 软件产业和软件服务业因其具有知识密集、低能耗、无污染、高成长性、高附加值,高带动性、应用广泛与市场广阔的特点,而成为知识生产型、先导性、战略性的新兴产业,成为信息技术产业的核心和国民经济新的增长点,也成为世 界各国竞争的焦点之一。 当前,我国进入了后PC 时代,人们对计算需求更为广泛,软件应用“无处不在”,市场前景广阔;不久我国将成为全球最大的软件应用市场,足见我国发展软件技术的迫切性和重要性。 【关键词】现状、趋势、意见

Abstract Computer software is a computer system to perform a certain task required procedures, data and document collection, it is the soul of computer system. Look from the function, the computer software can be divided into the system software, support software and application software. System software and support software basic software, it is a public service platform and application development platform software system, its purpose is to provide users with the application demand of computing services. Therefore, applications and hardware technology development is to promote the driving force for the development of software technology. Software industry and software service industry because of its advantages of knowledge intensive, low energy consumption, no pollution, high growth, high added value, high acceleration, wide application and broad market characteristics, and become the knowledge production, forerunner sex, strategical burgeoning industry, become the core of information technology industry and the growth of the national economy

中间件技术综述

中间件技术综述 摘要:介绍了中间件的产生与发展,详细阐述了中间件的定义、分类以及功能与作用。指出了中间件的优缺点,并分析了中间件技术的现状,最后介绍了中间件的应用前景和发展趋势。 关键词:统一软件开发平台、中间件技术 1 引言 随着Internet网络应用技术的发展,基于客户机/服务器(Client/Server)模式的系统设计方法己被广泛地应用于各种类型软件系统的设计与开发中。其编程方式改变了传统的应用程序设计和系统实现方式。为此人们提出了一种介于客户端和服务器端的软件--中间件(Middleware)。中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。 于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”伴随产生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。 2 中间件技术 2.1 中间件的分类 由于中间件所包括的范围十分广泛,而目前对中间件还没有一个比较精确的定义。因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。基于不同中间件的目的和实现机制的不同,一般将中间件主要分为以下几类:远程过程调用中间件(remote procedure call middle-ware); 面向消息的中间件(message oriented middleware); 对象请求代理(object request broker); 事务处理监控(transaction processing monitor); 数据库中间件(database middleware); 专用中间件(proprietary middleware)。 其中,前3类中间件称为管道,它们可向上提供不同形式的通讯服务,包括

浅谈未来中间件技术发展的两大趋势

浅谈未来中间件技术发展的两大趋势 中国的ERP开发与应用经过多年的发展,已经取得了很大的成就,“普及”与“深化应用”已经成为当前ERP市场的两大主题。不论普及还是深化都意味着越来越多的人更加关注ERP的实际应用效果,更加关注ERP能否为企业带来实际的效益。对于企业和ERP厂商来讲都是非常有意义的。 ERP应当普及,但如何理解普及?是不是仅依靠某种产品低价销售,或者跑马圈地的方式来普及?这有待于商榷。 首先ERP不能用一个标准的产品销售方式来推广。ERP在管理对象上非常复杂,特别是随着市场竞争的加剧,每个企业在生存和发展过程中都形成了自己的管理理念、流程和方法,不可能用一个标准的产品来适合不同的对象。 所以把ERP的普及比喻成当年的T型车,不是十分妥当。在那个年代大家对需求比较单纯,认为汽车只是交通工具,而现在人们对汽车的要求就很高,不同的型号、配置和特殊要求,需要按订单制造和装配,所以T型在这个年代是不适合的。 大家的需求非常复杂、多变,所以想用某种产品或某一类产品做成标准去推广、普及是不行的。而同时ERP确实需要普及,但如何普及则需要按ERP的发展和应用客观规律来做。首先就是企业流程优化,如果实施ERP不做流程优化,不改变企业传统模式和管理方法,不吸收一些行之有效的管理模式,其结果就是失败。 另外,ERP普及并不意味着ERP产品低价。ERP实施需要资深管理专家和专业的实施顾问,要做流程优化、设计、系统设置和培训等方面的大量工作,这些都是实实在在实施成本。从国外ERP市场情况来看,ERP整个后期实施的费用远远大于软件产品费用。所以用一个很低的软件费吸引客户采购,这种方法是危险的。 中间件(middleware),顾名思义,是处于操作系统与应用软件的之间的基础软件,其作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 10年前,中间件的概念刚刚提出,而如今中间件已成为一个拥有上百亿美元市场的关键软件分类,并成为构建网络分布式异构信息系统不可缺少的关键技术,与操作系统、数据库管理系统并列为基础软件体系的三大支柱。 中间件的价值在哪?中间件如何影响产业的变化? 随着IT系统对企业发展的重要性的不断提升,信息系统也变得越来越复杂,必然也无法避免多厂商产品并存的局面。于是,如何屏蔽不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂性,就成为人们不能不面对的现实问题。 显然,由一个厂商去统一众多产品之间的差异是不可能的,而单独由计算机用户在自己的应用软件中去弥补其中的大片空档,由于技术深度和技术广度的要求,必然也是勉为其难。于是,中间件应运而生。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。

浅谈软件工程技术现状和发展趋势

浅谈软件工程技术现状和发展趋势 发表时间:2019-08-15T15:07:31.650Z 来源:《信息技术时代》2018年11期作者:董庆森[导读] 随着科学技术的不断发展,信息产业已经逐渐成为了现代化产业中不可或缺的重要一环,信息产业在发展的过程中不断与传统行业进行交互与发展,促进了传统行业的变革与发展也为当前的经济发展注入了新的活力。(郑州工商学院工学院,河南省郑州市 450000) 摘要:随着科学技术的不断发展,信息产业已经逐渐成为了现代化产业中不可或缺的重要一环,信息产业在发展的过程中不断与传统行业进行交互与发展,促进了传统行业的变革与发展也为当前的经济发展注入了新的活力。软件工程作为信息产业的重要支柱学科,其随着信息产业的发展也迎来了发展的黄金时期,软件工程凭借其在数字信息时代的重要意义,也成为了当前信息产业中不可缺少的重要学科。本文将对软件工程技术的发展现状进行分析就技术未来的发展趋势进行简要的判断。关键词:软件工程技术现状;发展趋势 一、引言 信息产业的发展极大的改变了传统行业的发展面貌也使得现代化产业呈现出新的发展局面,软件工程作为信息产业中的重要基础学科,其在计算机学科领域有着十分重要的作用。随着经济社会的不断发展,信息产业还有着广泛的发展前景,软件工程顺应着信息产业的发展趋势也将迎来进一步的创新和提升,因此对于软件工程技术的发展现状和发展趋势进行分析判断有着十分重要的价值和意义。 二、软件工程概述 软件工程作为一门利用工程建设的手段来对软件进行分析维护的学科,其在学科内容上包括有软件的开发工具、程序设计语言以及数据库的内容,随着信息技术在人们生活中应用的越来越广泛,软件工程也在诸多领域得到了施展和应用,随着计算机学科领域的不断丰富与拓展软件工程也逐渐转变为计算机领域的一门重要独立学科。软件在种类和内容上十分丰富其一般包括有操作系统、数据库、社交软件以及游戏软件等,这些软件被广泛应用于传统工业、金融行业以及人们的日常生活当中,软件的不断丰富与拓展极大的改变了人们的日常生活,为人们的工作学习提供了诸多便利,对促进社会经济的发展与进步,改善人们的生活质量有着十分积极的影响。通常对软件质量的评价标准上往往会根据软件自身的实用性、安全性以及功能性等作为质量评判的重要依据。 三、软件工程技术发展现状 从20世纪末开始我国软件行业就呈现出良好的发展态势,自21世纪以来我国软件业务盈利更是以超过10%的增长速度逐年递增,而软件外包营收更是一度超过了80%的增长速度。软件产业有着良好的市场发展前景和广阔的市场空间,国家方面更是出台了一系列的政策来鼓励软件工程技术的发展。就目前而言,软件工程技术良好的发展前景具体表现为:软件工程技术人员有着良好的就业环境和就业形势。随着信息行业发展的不断增速,越来越多的互联网信息产业开始呈现出跨越式的扩增态势,随着信息产业发展规模都不断扩大,对于软件工程专业人才的需求也在逐年提升。同时相比传统行业,软件工程技术人员有着较为良好的工作环境和薪资待遇。 软件工程技术人员有着较为广泛的就业方向。软件工程学科对于从业人员有着较为严格的专业技能水平要求,这是由于软件工程在技术上包括了软件研发、测试以及应用等一系列内容,正是由于软件工程的复杂性和高要求性也使得软件工程的专业性人才有着较为广泛的就业渠道,随着信息化时代的到来,无论是互联网企业还是金融企业和政府部门都急需软件工程领域的专业性人才,软件开发和性能维护已经成为了当前现代化企业经营发展的必然趋势,因此一旦掌握了软件工程专业知识技能就能够拥有十分广阔的就业方向。 软件工程技术人员待遇丰厚。近年来随着软件技术人才的短缺,使得软件工程技术人员更容易受到企业的青睐和追求,在这样的发展背景下软件工程从业者往往能够获取更高的薪资待遇水平。 四、软件工程技术发展趋势 软件工程技术全球化。随着经济全球化进程的不断加快,软件工程技术全球化已成为了未来发展的重要趋势,软件工程凭借其专业技能上的广泛性和共通性,期待工程技术上的发展不仅仅局限于某一个地区或者国家,而是需要结合全球软件发展交互的共同性逐渐促使软件工程发展更为成熟。全球化的软件工程发展趋势符合当前经济发展的重要趋势,各国之间通过实践软件系统框架网络的建设,实现全球软件交互和通力协作,在全球化的软件工程概念下,软件工程的发展能够吸取不同地区和国家的先进经验,从而构建出更加符合人们需求的软件产品。 软件工程技术开放性。开放计算式当前软件工程技术发展的必然趋势和未来方向,通过开放计算能够提升企业之间软件开发研究的效率,通过实现企业软件的交互应用,能够简化未来软件工程在软件开发上的投资消耗,提升软件工程开发的灵活性和简易程度。在软件工程技术开放性的发展过程中需要个国家最先进的软件开发技术经验实现共享,以此来作为后续软件开发和投资的重要关键技术保障。 软件工程技术模板化。随着信息化时代的到来软件市场的竞争也不断加剧,面对日益复杂的软件开发和维护环境,为了能够在激烈的市场竞争中占得先机提升软件开发和维护的效率,企业需要加强其在业务能力上的灵活性通过以模板化的思维来提升企业在软件开发运用上的效率。模板化思维在企业经营发展中的应用能够有效的帮助企业对现有的软件实行分解组装,结合当前的软件系统根据不同的软件资源需求针对企业的业务来进行更加灵活的变动,使得软件工程技术的发展更加符合企业的利益。 五、结语 计算机技术的迅速发展也使得软件工程技术得到了进一步的提升,软件工程技术在发展的过程中不断向全球化、开放性以及模板化迈进,在这一过程中必须严格恪守软件开发所需要遵循的相关规律,结合软件工程技术的发展特征不断深入研究,共同促进我国软件工程技术的发展与提升。 参考文献 [1]刘宇洋.浅析软件工程的发展趋势[J].科学技术创新,2017(1):180-180. [2]施少杰.浅析软件工程技术的发展[J].明日风尚,2017(14):299-299. [3]冯勃达.浅谈软件工程标准化的现状[J].中国新通信,2017(20):52.

财务软件的现状及发展趋势

财务软件的现状及发展趋势 一、软件的现状 1、历史 自1992年以来,中国财务软件发展经历了5个阶段 (1)第一代“单项处理型财务软件”的系统是以简单核算为主,其目的主要是替代手工会计核算,减轻会计人员的劳动强度,提高会计信息的质量。应用操作也只是为了满足财务人员日常的凭证录入、记账、和相关的报表填报工作,属于低水平的财务软件。 (2)第二代“核算型财务软件”出现时,会计电算化已经在国内普及并迅速发展。第二代财务软件比之第一代财务软件,在核算的基础上加重了财务分支管理要素在系统整体中的比重,使财务工作从简单核算升级到以管理为目的、核算为手段的过渡阶段,其初衷在于提高企业管理水平与经济效益。 (3)第三代“管理型财务软件”以财务管理为核心,融合了财务预算、财务分析、财务决策、领导查询等决策分析型的组合应用,实现了集团型、跨地域型企业的各种远程控制(如远程记账、远程报表、远程查账、远程审计、远程监控等)和事中动态会计核算与在线财务管理,能够处理电子单据和进行电子货币结算的一种全新的财务管理模式,成为电子商务发展的一个重要组成部分。 (4)第四代“业务整合型财务软件”在中国切实落地虽然将财务与业务两者融会贯通,合二为一,但仍然没有能实现与税务的对接。然而随着国家金税工程的深入开展,税务信息化已经发展的非常成熟。同样,财务软件进入第四代也从理论到实践上,日臻完善。 (5)第五代“财税协同型财务管理软件”的内容应涉及到企业经营的全部流程,在应用需求和应用水平上都呈现出质的飞跃。其核心不再是单纯的软件开发技术,而是融合于产品之中的管理理念和管理思想,由管理技术与软件技术共同构筑产品核心竞争力。同时产品的竞争力还应该体现在产品的稳定性、易用性、可扩展性、良好的兼容性等方面。 2、现状分析 (1)市场规模逐年递增:近几年来,我国财务及企业管理软件的市场规模呈逐年快速递增状态。由于服务产业的应用需求和跨行业的应用需求,企业应用软件市场是

安防监控技术的现状和发展前景

安防监控技术的现状和发展前景 随着安防监控技术的快速发展和信息技术需求的多样化,信息系统变得越来越庞大、复杂和多变,为此中间件技术应运而生,成为了大型信息系统集成的利器。而安防系统作为信息系统的一个重要分支,也将越来越多的利用到中间件技术。 安防监控技术的现状和发展前景 信息系统综合集成的水平反映了一个企业、一个部门,乃至整个国家信息化建设的水平。制定和遵循相关技术标准是一件重要的工作,但是不能照搬工业化的做法。面对复杂而多变的网络世界,中间件就成为信息系统综合集成的利器。 中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。顺泰.伟成表示这些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。 到目前为止,确实有越来越多的用户开始接纳中间件了,甚至在一些大型采购招标项目之中,中间件已经被明确写入了招标书。目前来看,对于中间件的应用需求,还主要集中在行业市场上,与前几年仅仅局限在金融、电信、政府等几个领域的市场状况不同,安防行业市场对于中间件的需求也逐步开始了,并有望占据比较大的市场份额,但是在应用层次上,还是有比较大的区别。

软件工程技术现状与发展趋势

软件工程技术现状与发展趋势 发表时间:2019-01-02T14:22:17.797Z 来源:《信息技术时代》2018年3期作者:吴浩南[导读] 随着网络技术的不断发展,软件技术产业也在飞速的发展当中。而且软件工程有着如此的成就是因为在发展的过程不断地进行创新。而且由于人们生活水平的不断提高 (泉州师范学院软件学院,福建泉州 362000) 摘要:随着网络技术的不断发展,软件技术产业也在飞速的发展当中。而且软件工程有着如此的成就是因为在发展的过程不断地进行创新。而且由于人们生活水平的不断提高,对软件技术也有了更高的要求。结合当前软件技术的发展趋势,软件工程日后的发展趋势必将朝着更加智能化、人性化的特点不断迈进。本文就对当前软件的发展现状和发展趋势进行深入的分析。关键词:信息化时代;软件工程;发展趋势 一、简述软件工程的含义 现有的软件工程是一种以利用工程手段对软件进行维护的学科,这其中主要包括了相关的软件开发工具,程序语言设计、资料数据库以及有关的软件系统平台等研究内容,随着软件技术的不断发展,软件技术已经逐渐成为计算机领域中一门独立的学科。此外,由于科学技术手段的发展以及信息技术大范围的应用,软件技术也受到了各行各业的认可。其中最常见的软件主要有计算机操作系统、电子邮件以及相应的游戏软件等,其涉及到的领域包括工业,经济金融、水利、电力行业等。软件技术不断的成熟与发展为人们的生活也带来了更多的便利,不仅减轻了人们的工作负担,还有效的提高了工作的效率,并在一定程度上推动着企业和社会经济的发展。软件工程师是软件开发工程的核心,此外,要想更好地评判软件的优劣可以从软件的适用性和安全性等方面进行评估。 二、当前软件工程发展的现状 (一)软件技术的发展特征 随着信息化技术水平的发展和科学网络技术的应用,当前我国的软件行业已经呈现持续增长的良好趋势。分析相关的统计数据可以发现,目前我国有关软件工程的经济收入正在以每年10%的速度逐年增加,而相关的软件外包技术更是以每年近乎90%的增长速度在增长,同时北上广深四个一线城市也是软件工程发展良好的示范城市。所以,由此可以得知,无论是对软件工程技术的发展来讲,还是对国家制定的中职计算机应用基础课程中数字化教学资源的相关的工作人员也有了更严格的要求。软件工程技术当中一般包括软件开发、软件测试等多项内容,这就使得软件专业的人员可以在多个相关联的软件领域进行发展。例如一些软件开发企业、政府部门以及一些金融机构。第三,相关的软件技术人员在工作上的待遇十分优厚。在所有行业中来说,软件工程技术人员的薪资待遇相比较其他行业人员的薪资都有着较大的差距。而且工作经验丰富的软件工作者还会得到许多大型企业或是知名度高的企业的追捧。在当前我国实际情况当中,一般一线城市当中,软件工程技术的工作人员平均年薪为十万元以上,而在其他城市年薪相比较来说也较高,是行业当中的高收入人群。 (二)软件技术的发展要求 现有的软件工程技术包含了许多内容,包括操作软件系统以及游戏软件系统等,涉及到的领域十分广阔,所以软件工程技术人员有着良好的发展前景。但是要想在软件工程行业能够有较为长远的发展,软件工程人员必须具备独立自主的研发能力,而且软件工程行业对相关工作人员的也有着较高的要求,工作技术人员不仅要掌握扎实的基础知识,还应该具有较高的外语水平和研发软件的能力。 三、软件工程技术的发展趋势 (一)软件工程向着全球化发展 当前经济不断向着全球化的方向发展,与此同时软件工程技术也在不断的向着全球化的方向发展。当前的软件工程技术不管是研发还是发展状况已经不只局限在某一个国家,任何一个国家闭门造车都不能很好的发展软件技术。所以基于此种发展情况,许多国家已经开始了软件协作交互模式。现有的软件工程研发队伍可以通过美国实现相应的软件概念,通过欧洲可以实现对相关的软件系统框架的设计,通过中国实现软件测试,然后再通过日本为软件使用者提供良好的售后保障,进一步促进软件工程技术的全球化发展。 (二)向着开方性发展 分析现有的软件工程发展现状不难发现,软件工程技术日后的发展趋势必然不断向着“开放计算”靠拢。开放计算当中,涵括了开放软件、开放构架等多方面的内容。将开放标准进行统一,企业就能将各种软件应用到互联网当中去,软件之间实现集成应用。除此之外,还能实现不同国家之间技术经验的共享,用户在相关的软件领域的投资也能够获得更为安全的保障。 (三)向着模板化方向发展 因为软件技术的成熟,软件市场的竞争也变得越来越激烈。企业要想在激烈的竞争市场当中站稳脚步,就必须提高自身的创新能力以及业务灵活应用能力。现阶段当中,开放构架的主要代表是SOA,通过应用此种构架可以有效减少IT环境下软件工程发展当中遇到的问题,并能进一步提高软件工程技术的应用灵活度。应用模块化思想,可以使用较为抽象化或是层次化的技术手段对软件的应用以及相关构件的开展进行打包,有效提高企业软件的应用水平;此外,还可以将模块化思想和SOA技术相结合,对软件资源进行整合,满足业务灵活性的要求。 总结: 从文中分析可以了解到,软件工程技术的发展必然朝着全球化、开放性等方向不断发展。虽然现阶段我国软件工程技术已经取得了不小的成果,但是相比较其他国家来说依然存在着一定的差距,有关工作人员要加强技术的创新,不断研究并开发相关的软件,这样才能更好的促进我国软件工程技术的发展。 参考文献 [1]张恩泽.软件工程技术在网络时代的发展[J].电子技术与软件工程,2017(18):11. [2]王丹丹,陈康.软件工程技术现状与发展趋势[J].信息与电脑(理论版),2016(06):50-51. [3]吴若斌. 我国软件产业人才培养对策研究[D].浙江大学,2005.

中间件技术原理与应用课后习题(1-8章参考答案)

中间件技术原理与应用课后习题参考答案 S1.中间件产生背景及分布式计算环境 1.比较开放系统与分布式系统的异同。 分布式系统具备以下属性:远程性、并发性、异步性、异质性、自主性、联合性、伸缩性、发展性、移动性。 开放系统具备以下属性:开放的、集成的、灵活的、模块化的、可联合的、可管理的、满足服务质量需要、安全的、提供透明性。 2.简述开放系统的特性: 开放系统具有可移植性、可互操作性、可伸缩性、易获得性。 3.什么是互操作性,有哪几种层次的互操作性? 在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组人物,这种能力被称为互操作性。 有以下层次: Application-Collaboration-Application Transparency-Inter-operability- Transparency RPC-Inter-communication- RPC Comms-Inter-Connection- Comms 4.简述中间件产生的背景、概念、组成结构及核心技术。 定义:中间件是介于应用系统和系统软件之间的一类软件,它能使处于应用层中的各应用成分之间实现跨网络的协同工作。 组成结构:(1)执行环境软件(2)应用开发工具 核心技术:通信、资源管理、互操作性 5 .简述DCE的组成结构及其缺点。 DCE由分布式文件服务、安全服务、目录服务、时间服务、RPC、线程组成。 DEC的缺点:RPC设计不周,开发工具薄弱;性能差、适用系统少、适用困难;没有采用面向对象技术。 S2.面向对象中间件ODP 6.阐述面向对象的定义及其与面向过程的调用的区别。 面向对象的方法以一种更为直观的方法分析和构造系统,它将整个系统抽象并模型化,让人们能够更好地了解整个系统,使得在设计时就能发现其中可能存在的问题。 两者最大的区别是,在结构化的开发方法中,数据与功能室分离的,而在面向对象的开发方法中,数据与相关的功能是捆绑在一起的,更好地表示了系统中相对独立的对象。 7.简述ODP的关键技术。 观点和透明性。观点把对于一个系统的说明分成若干个不同的侧面;透明性屏蔽了由系统的分布所带来的复杂性,极大的减小了分布式标称的复杂性。 8.怎样理解ODP是元标准。 RM-ODP不仅是一个一般的标准,还是一个标准的标准,即规定了使用于开放式分布处理领域内的其他标准必须遵循的参考模型。 9.简述ODP的绑定模型。 ODP的绑定模型分为计算绑定模型和工程绑定模型。计算观点所描述的是,信息系统被分解成为在界面处交互的对象,以此来达到分布处理的目的;工程观点所描述的是,实现系统中分布式对象之间的交互所需的机制和手段。

相关文档