陈 超,刘才铭
(1.四川理工学院 网络管理中心,四川 自贡 643000;2.乐山师范学院 计算机科学学院,四川 乐山 614000)
中间件技术产生以前,开发人员都是在操作系统、数据库管理系统、硬件以及网络操作系统等基础之上进行软件开发。然而,由于操作系统、硬件等处于计算机系统最底层,十分复杂,例如繁杂的网络程序设计、管理,数据分散处理带来的不一致性问题、性能和效率、安全,复杂多变的网络环境,操作系统的多样性等[1],这必然导致开发人员面临诸多困难。上述困难虽然同用户的业务没有直接关系,但不解决又无法完成用户业务,这大大浪费了开发人员的大量宝贵时间和精力。在这种情况下,研究者提出一个疑问:能否将软件开发时面对的诸多的共性问题进行提炼、抽象,以便在紧邻操作系统处形成一个可复用的部分,从而为开发时提供复用。在这一技术构想的驱动下,中间件技术应运而生[2]。
中间件(middleware)是一类基础软件,属于可复用软件的范畴[3]。从这个定义来看,中间件是一种位于操作系统软件和用户软件之间的软件。中间件位于操作系统、网络和数据库系统之上,处于应用软件之下,其作用是为处于其上层的用户软件提供运行与开发环境,以便协助开发人员快速、高效地开发和集成较为复杂的应用软件[4]。中间件技术的出现促使计算机体系结构发生了巨大改变,用户可以采用中间件技术把传统计算机体系两层结构扩展为三层或三层以上,此时就产生了多层分布式系统。
在传统计算机系统C/S结构中,应用程序逻辑一般位于客户端和数据库服务器端之间,客户端负责发送数据资源访问请求给数据库服务器端,而数据库服务器端负责将最终请求结果返回客户端。此种系统结构缺点如下:随着客户端数目的不断增加,系统将无法进行负载均衡,从而导致数据库服务器的性能急剧降低[5];如果应用需求发生改变,处于客户端和服务器端之间的应用程序逻辑必须进行相应地修改,这样就造成系统维护成本的大幅增加,同时也给系统升级产生极大阻力;如果传输的数据量较大,就会加重网络和数据库的负担,容易使数据在传输时出现不完整、不一致甚至丢失的情况。为了解决上述C/S结构的不足,两层计算机体系结构只有向多层分布式系统转变。网络的飞速发展、普及以及中间件技术的产生,进一步助长了多层分布式系统的兴起。
在多层分布式系统中,客户端和数据库服务器之间增加一层或多层基于中间件的应用服务程序,这种应用服务程序称为 “应用服务器”(Application Server)。开发者可以把应用程序逻辑放于中间层服务器,使它们脱离客户端,从而在确保客户端功能的前提下,为用户提供一个精简的界面[5]。在此情况下,如果应用程序代码需要修改,那么仅在一处(中间层服务器上)修改就可满足要求,而不必费尽心思去修改众多客户端应用程序。这样就可以让开发者专注于系统核心业务逻辑的分析、设计和开发,也很大程度简化了企业系统的开发、更新和升级工作,极大增强了系统的灵活性和伸缩性,并且还有助于系统容错能力和负载平衡能力的提升。
分布式系统具有很多内在的优点,尤其是与集中式系统相比较而言。而且,有些应用程序本质上就是分布式的。一般来说,分布式系统[6]:
1)产生较高的性能;
2)提供较高的可靠性;
3)允许递增的发展。分布式计算比单个中央处理器提供的返回率高;
4)构建由大量的用高速网络连接起来的中央处理器组成的系统,既可行又易行;
5)满足了共享分散在这些中央处理器上的数据的需要;
6)提供了共享昂贵的外围设备的方法;
7)允许一个用户在许多不同的机器上运行程序。
作为人工智能最重要的一个应用研究领域,尽管专家系统在过去的30多年中取得了很大的进展和丰硕的成果,但距离社会和科技的要求以及人类专家的水平仍然很远,为此,需要在传统专家的基础上寻找新的生长点来发展新型专家系统,从而使专家系统“更上一层楼”[7]。
据权威专家讲现代新型专家系统应该有以下特点[8]:
1)并行与分布处理:基于各种并行算法,采用各种并行推理和执行技术,适合在多处理器的硬件环境中工作,即具有分布处理的功能。
2)多专家系统协同工作:在这种系统中,有多个专家系统协同合作。
3)高级语言和知识语言描述:专家系统生成系统就能自动或半自动地生成所要的专家系统。
4)具有自学习功能:新型专家系统应提供高级的知识获取与学习功能。
5)引入新的推理机制:在新型专家系统中,除演绎推理之外,还应有归纳推理,各种非标准逻辑推理,以及各种基于不完全知识和模糊知识的推理等。
6)具有自纠错和自完善能力:为了排错必须首先有识别错误的能力,为了完善必须首先有鉴别优劣的标准。
7)先进的智能人机接口:理解自然语言,实现语声、文字、图形和图象的直接输入输出是如今人们对智能计算机提出的要求。
由于现代网络的飞速发展、普及以及中间件技术的产生促使了多层分布式系统的产生并使它成为人们关注的焦点,可以利用分布式技术,采用中间件技术来构建分布式专家系统。
下面来分析一下传统的专家系统结构中存在的缺陷,传统专家系统结构如图1所示。
图1 专家系统结构简图Fig.1 Simplified structure diagram of expert system
从图1可以看出知识库、事实库与推理机是相互独立的,虽然把系统的知识与控制分离是专家系统很有价值的特征,但是它们却直接相连接,这给系统潜在的带来一些危机与局限性。
推理机的推理是利用知识库与事实库中的知识与事实进行推理的,推理时直接利用用户所给的事实和事实库中已知的事实与知识库中的专家知识相匹配,而且当产生冲突时需要根据一定的策略在知识库中来消除,并且有时候还得对事实库和知识库进行频繁的删除、增加、修改工作,所有的这些动作都是直接在数据库中进行,也即把系统的应用和一些不适合在数据库中执行的代码都绑死在数据库中了,这些频繁的操作会大大增加数据库的负担,降低了数据库的执行效率,容易造成数据的不完整、不一致甚至丢失。这样,系统的容错能力与负载能力就不会太高,从而降低了系统的稳定性。
传统专家系统不易甚至不能扩展。传统专家系统是基于两层结构模式构造的,这种构造方式本身就存在一些缺点。现代社会是信息的时代,我们不能孤军奋战,要尽可能地利用一切可利用的知识协同工作,专家系统也应该如此,但传统专家系统两层结构模式就大大限制了多专家系统协同工作的机会。传统的专家系统总体上是串行与集中处理,一个环节出错就会全盘皆输。
要发展新型专家系统,要就克服传统专家系统的缺点。为此,可以用中间件来克服以上所说的缺点,来构造一个分布式专家系统,其简化结构如图2所示。
图2 分布式专家系统结构简图Fig.2 Simplified structure diagram of distributed expert system
图2中知识库、事实库、中间件、客户端都可以根据实际情况设置多个,当然,这时推理机的设计就会较复杂了。图2虽然是对传统专家系统结构的小小改动,但是却有很多优点。在推理机和知识库、事实库之间加入一种中间件,如:应用服务器,当推理机进行推理时,根据推理机的要求把知识和事实存取到应用服务器,让推理机在应用服务器上进行匹配、解决冲突操作,这样就可以减轻数据库的负担,从而提高数据库的效率。如果推理机对应用服务器上的知识和事实进行了更改,可以不立即送到数据库,当更改的数据达到一定数量时再集中写到数据库,从而保持了数据的一致性、完整性。而且一个推理机可以连接多个中间件,而让每个中间件都连接不同的知识库和事实库,实现多专家系统协同工作。
让推理机通过中间件与客户端相连,这里所说的客户端可以是多个。客户端可以通过网络与中间件相连接,这时的中间件可以是Web中间件。这样,用户就可以用Web浏览器发送请求,客户的请求通过Web中间件传给推理机,推理机向应用服务器发出要求,服务器根据推理机的要求从相应的数据库取出数据以供推理机进行推理,推理机把结果通过Web中间件传达给用户,从而在一定程度上实现了分布式专家系统。
文中提出的基于中间件的分布式专家系统结构,在一定程度上能够反映新一代专家系统体系结构的发展要求,根据这种结构构建的专家系统可以体现新型专家系统的特征,从而使得笔者提出的专家系统体系结构能够被广泛采用。
[1]符春.中间件技术的现状及其发展[J].软件导刊,2009,8(9):7-8.FU Chun.Development of middleware technology[J].Software Guide,2009,8(9):7-8.
[2]LIU Jing-yong,ZHONG Yong,CHEN Yong,et al.Middlewarebased distributed systems software process[C]//Proc of International Conference on Convergence and Hybrid Information Technology 2009(ICHIT 2009),Korea:Daejeon,2009:345-348.
[3]郑英姿.浅谈中间件技术[J].中国高新技术企业,2010,168(33):31-32.ZHENG Ying-zi.Simple Discussion on middleware technology[J].China High-Tech Enterprises,2010,168(33):31-32.
[4]Schiefer A,Gruhn V,Hrushchak R.VESBA:A middleware oriented architecture for virtualized embedded systems[C]//Proc of the 1st Workshop on Critical Automotive Applications:Robustness and Safety, Spain:Valencia,2010:47-50.
[5]王晓鹏,苏亮,韩伟红,等.大型分布式系统部署一致性的研究与实现 [C]//Proc of 2006年全国开放式分布与并行计算机学术会议论文集,中国陕西:西安,2006:12-14.
[6]特尼博姆著.辛春生等译.分布式系统原理与范型[M].2版.北京:清华大学出版社,2008.
[7]杨珺.基于虚拟植物生长模型的分布式农业专家系统研究 [C]//Proc of 2006年全国开放式分布与并行计算机学术会议论文集,中国陕西:西安,2006:229-231.
[8]蔡自兴,约翰·德尔,龚涛.高级专家系统:原理、设计及应用[M].北京:科学出版社,2005.