帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程 >
用J2EE技术实现基于Web的智能推理引擎
作者:未知 发布时间:2005-03-12 来源:JSP天空网
作者:guo_jerry

1、引言

  二十世纪九十年代是计算机软件技术迅猛发展的时期,计算机软件的应用也同时得到了空前的发展。然而,随着软件应用的不断扩展,人们对软件功能的需求也愈来愈大,人们已不满足于现有软件的简单功能,他们期盼着软件应具有更多、更高级的具有一定智能的功能。于是,出现了智能软件技术。智能软件技术是一种基于人工智能、知识工程等的现代软件开发技术,它的覆盖面非常广,尤其是在专家系统、决策支持系统、ERP等软件开发中得到了广泛的应用。智能软件是软件发展的最终目标之一,所以智能软件技术也会逐步得到更深层次的发展和应用。
  二十世纪九十年代也是计算机网络技术飞速发展的年代,尤其是Internet的应用更是渗透到了各行各业,并进入了千家万户。Internet改变了人们传统的工作与生活模式,借助于这一强大的工具,不仅可以实现网上办公、网上娱乐,而且利用电子商务还可以实现网上购物等。Internet的发展离不开基于Web的应用程序,它使得Internet具有强大的功能和友好的用户界面。这种基于Web的应用程序不仅改变了传统的软件开发模式,也为传统的软件技术提供了新的发展方向,智能软件技术自然也不例外。基于Web的智能软件技术已成为当今的热点,并具有广阔的发展和应用前景。
  在智能软件中,推理是一个不可缺少的部分。如今,在许多基于Web的应用领域中,都存在着对推理引擎的需求,如基于Web的专家系统、联机分析系统、数据挖掘系统、智能搜索引擎等等。如果能够开发一个开放的、对象化的、基于Web的推理引擎,势必会节省大量的重复开发工作,从而促进基于Web的智能软件开发及发展,本文论述了如何使用当今比较流行的J2EE技术来实现一个这样的推理引擎。


2、J2EE技术简介

  J2EE即Java2 Platform Enterprise Edition,是一个方便于服务器方应用程序开发的中间件服务集,它利用Java2 技术来简化诸多与企业解决方案的开发、部署和管理相关的复杂问题。由于J2EE技术的核心就是Java2平台,所以它不仅继承了Java2平台的一些优点,如:平台无关性,安全性等,而且增加了一整套核心企业应用程序编程界面,而所有这些界面均为标准的模块化组件,其中包括:Servlets,EJB(Enterprise JavaBeans),JSP,JDBC等。

2.1 Servlets
  Servlets是一些运行于Web服务器方的Java小程序,用来扩展Web服务器的功能。Servlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGI,ISAPI等),Servlets也同样使用HTTP协议与客户端进行通讯,所以有时也称Sevlets为"HTTP Servlets"。Servlets 实现了一个用来处理客户与服务器之间消息的公共的请求/应答结构,Java Servlet API为这个结构定义了完整的、标准的接口。
  Servlets可以嵌入在不同的Java服务器之中,因为我们用来编写Servlets的Servlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性。

2.2 EJB
  EJB不是一个具体的产品,它是一个Java服务器端组件开发的规范,它的目的是为了定义一个用来开发面向对象分布式应用组件的标准方法。使用EJB,Java程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构起分布式应用程序。EJB规范在简化分布式应用程序开发复杂性方面也做了大量的工作,所以EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题。
  EJB分为两种:会话EJB和实体EJB,会话EJB向客户提供一定的服务,如:特定的商业逻辑、数据库查询等;而实体EJB则代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进行交互。
  使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能;另外,EJB的定义明确又增强了整个系统程序的可靠性、可管理性和可移植性。

2.3 JDBC
  JDBC是一组API,其定义了用来访问数据源的标准Java类库,使用这个类库我们可以以一种标准的方法、方便地访问数据库资源。JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。



3 、系统设计

  推理引擎就是应用系统中用来完成推理功能的模块,也可以称作推理机。推理机一般包括调度器,执行器和一致性协调器三部分。调度器控制整个推理流程,使得推理可以按照一定的流程进行下去;执行器执行调度器所选定的动作,并且负责读取知识库中的知识和全局黑板中的信息;一致性协调器保持推理中间结果的一致性,主要用于反向推理中。
  推理引擎根据知识表示的不同采取的控制策略也是不同的,在这里我们所实现的是基于产生式规则集的知识表示。选择这种知识表示是因为其具有很多的优点,尤其是其易于理解、易于获取、易于管理,并且在现今的大多数智能应用系统中都采用了这种知识表示方法。基于这种知识表示的推理引擎采?quot;识别-动作"的方式来循环执行规则,它的工作流程如图1:


图1. 基于规则的推理机流程  

  面向对象、组件化的软件开发方法成为当今软件开发的趋势,为了开发一个通用的、具有良好的"即插即用"性的推理引擎,就必须采用这种软件开发思想及开发流程。基于这种思想,我们可以将推理机进行封装,只提供给用户必要的、简单的接口及部署规范,用户使用这些接口就可以得到想要的推理服务,这样就可以取得内部复杂、完备而外部通用、简单这一组件化软件的效果。一个典型的使用这种推理引擎的智能软件的体系结构如图2.。



图2. 典型的智能软件系统结构


4、系统实现

  Java语言是一种纯的面向对象的设计语言,与J2EE技术的结合,使得我们实现推理引擎变得更加简单,在整个实现的过程中,我们可以只关心内部结构的实现以及核心推理算法的实现,而不必花费太多的精力来考虑各个部分的接口实现问题,因为无论是Servlets还是EJB,其接口的定义和实现都十分方便。
  我们将整个推理引擎实现成一个Java类包,用Servlets与外部应用系统进行数据交换;内部的推理核心使用无状态的会话EJB来实现,这样可以使多个用户同时使用,满足了基于Web应用程序多用户并发的特性;使用实体EJB通过JDBC访问知识库中的相关数据。整个推理引擎的结构如图3..


图3. 基于Web的推理引擎结构图

  在这个结构中接收器用Servlet实现,即最终实现为一组Servlet类,它的基本功能是给用户提供使用这个推理引擎的服务,这些服务是基于HTTP协议的请求/应答模式的,用户只需在自己的HTML、ASP、JSP网页或其它的客户端应用程序中按照HTTP协议请求这个Servlet类并传入相应的输入事实数据,便可以启动这个推理引擎,推理引擎经过推理得到结论,通过Servlet中的Response对象发送给客户端。
  知识库的创建需遵循我们给出的规范,在这个规范中我们给出了事实表、规则表、数据字典表、控制表和临时表的结构。我们用多个实体EJB代表知识库中的各个表的记录集,实体EJB通过JDBC访问知识库,其中的JDBC连接串、数据库服务器名称、用户名和口令以一个XML文件的形式部署在服务器方。
  推理核心部分需构件一个知识库类库,这个类库可以表示出整个基于产生式规则的知识库的结构,将这个知识库类库用一个无状态的会话EJB进行封装,一方面它可以定义一套完备的接口供接收器Servlets启动推理服务,另一方面它还需与代表知识库的实体EJB进行数据交换:访问事实、规则,存取临时数据等等。



5、特点

  用J2EE技术实现的对象组件式的基于Web的智能推理引擎比其它技术(如微软的DCOM技术)所实现的推理引擎更具有优势,其主要特点如下:
层次清晰
  J2EE技术本身就是一个定义非常明确的基于Web应用开发的界面,在这个技术规范下所实现的推理引擎自然秉承了这一优点,整个引擎分三层:控制层、推理层、数据访问层,每一层都有完备的接口和明确的功能。
有很强的可移植性
  Java语言的"平台无关性"、"一次编写,处处使用"的特色已经得到了软件开发界的认可,所以这个推理引擎也是平ㄎ薰氐模?渲忻挥杏胩囟ㄆ教ㄏ喙氐牟糠郑?梢栽诵杏诙嘀种С?2EE的平台,如:Windows、Unix、Linux等,满足不同用户的需求。
可扩展性
  这个推理引擎完全遵守J2EE规范,所以可以很容易地向其中添加其它的Java类库或组件完成给强大的功能;另外,推理核心部分是用EJB技术实现的,所以可以将这一部分单独使用。
效率高
  将复杂的事务处理和数据处理都放到了服务器方,减少了客户端和服务器端相互传输的数据量,使得该系统相对于传统的基于C/S的系统效率要高许多。由于EJB Server提供了多种组件事务服务,使系统更能够应付大量的并发用户和管理复杂的事务逻辑。


6、结束语

  本文所设计的基于Web的智能推理引擎提供了完备的接口和规范,在实际应用中,遵照规范可以通过嵌入的方式使用这个基于Web的智能推理引擎,在其上增加其它的用来处理专业事务的Servlets和一些处理用户界面JSP页面,便可以快速的建立起基于Web的智能应用软件,也可以将这个推理引擎与其它的推理引擎混合使用,建构起更加复杂、功能更加完备的推理引擎。


参考文献

1. Liu Dayou ,Guo Fei, Yu Qiangyuan .The Designing and Application of Web-based Agriculture Expert System. ISIAIT Beijing 2000, P.71-74
2. Stephen Asbury, Scott R. Weiner. Developing Java Enterprise Applications. John Wiley & Sons, Inc., 1999
3. 管纪文,刘大有. 知识工程原理. 长春:吉林大学出版社,1988
(Guan Jiwen, Liu Dayou. The principle of knowledge engineering. Changchun: Jilin University Press, 1998)
4. 万江平,严明,杨建梅. 用Java语言开发专家系统. 计算机应用研究, 2000, Vol 17, No. 5, P.62-64
(Wan Jiangping, Yan Ming, Yang Jianmei. Developing Expert System using Java language. Computer application research, 2000 , Vol 17, No. 5, P.62-64)
5. 凌星,金树福. 基于EJB的分布式应用开发.计算机应用研究, 1999, Vol 11, P.42-43
(Ling Xing, Jin Shufu. The development of EJB-based distributing application. Computer application research, 1999, Vol 11, P.42-43)
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·放眼未来 帝国近期将有重大举措!
·PHPWind6.3.2版通行证发布
·帝国备份王2008版正式发布
·帝国备份王2008版发布
·phpcms2007转帝国CMS5.0程序发布
·dedecms5.1转帝国CMS5.0程序发布
·帝国网站管理系统V5.0商业购买说明
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统