J2EE技术实现基于Web的智能推理引擎


J2EE技术简介

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

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具有很强的可移植性。

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

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

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

基于规则的推理机流程  
  面向对象、组件化的软件开发方法成为当今软件开发的趋势,为了开发一个通用的、具有良好的"即插即用"性的推理引擎,就必须采用这种软件开发思想及开发流程。基于这种思想,我们可以将推理机进行封装,只提供给用户必要的、简单的接口及部署规范,用户使用这些接口就可以得到想要的推理服务,这样就可以取得内部复杂、完备而外部通用、简单这一组件化软件的效果。一个典型的使用这种推理引擎的智能软件的体系结构
系统实现
  Java语言是一种纯的面向对象的设计语言,与J2EE技术的结合,使得我们实现推理引擎变得更加简单,在整个实现的过程中,我们可以只关心内部结构的实现以及核心推理算法的实现,而不必花费太多的精力来考虑各个部分的接口实现问题,因为无论是Servlets还是EJB,其接口的定义和实现都十分方便。
  我们将整个推理引擎实现成一个Java类包,用Servlets与外部应用系统进行数据交换;内部的推理核心使用无状态的会话EJB来实现,这样可以使多个用户同时使用,满足了基于Web应用程序多用户并发的特性;使用实体EJB通过JDBC访问知识库中的相关数据。

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

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


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

你可能感兴趣的:(JAVA,java-ee,前端,搜索引擎)