APP下载

基于JADE实现Java Web应用系统的智能化改进

2014-10-08朱忠旭刘旭光

关键词:推理机页面组件

朱忠旭,刘旭光

(1.安徽工贸职业技术学院计算机技术系,安徽淮南232007;2.安徽交通职业技术学院计算机系,安徽合肥230001)

当前存在着大量以Java为基础的Web应用系统.这些系统广泛用于信息的收集、传递、存储、加工、更新和维护,对提高机构的运作效率、支持决策等起到了重要作用.但已有的信息管理系统本身存在着智能程度不高、需要过多的人为参与等问题,而建造全新智能系统的代价又较高.利用人工智能技术,对现有的信息系统进行改造不失为一种高效率低成本的方法.

1 Agent与JADE简介

Agent[1]技术源于分布式人工智能的研究,Wooldridge和Jennings于1995年提出将软件Agent视为拥有自治性、响应性、预动性、社交能力等基本特性的软件系统.它们封装了某些状态和知识,并能经由消息发送与其他Agent进行通信,可视为分布对象技术的自然延伸.JADE[2]是一个完全由Java语言编写的多Agent开发框架,遵循FIPA规范,提供了基本的命名服务、黄页服务和通信机制等,可以有效地与其他Java开发平台和技术集成,极大地简化了开发多Agent系统的各个环节.

2 基于JADE的Java Web系统智能化改进的方法研究

Java EE是Sun公司推出的企业级分布式应用的开发平台,由一套规范和建立在Java SE平台之上的应用程序接口(API)组成,对开发基于Web的多层应用提供了功能支持[3].Java EE Web处理层采用Model 2模式,如图1所示,实现了控制逻辑与业务逻辑的分离和显示与数据的分离.

图1 Java Web Model 2模式Fig.1 Java Web Model 2

改进后的系统中,由新设计的Agent组件对输入数据进行即时分析和处理并对数据库中的历史数据进行分析以从中发现有用的知识.为了实现数据在Agent与Java EE组件之间的无缝传输,设计了Java EE表示层组件与JADE Agent之间的数据通道[4],该通道的功能是,①在不改变原系统数据流向的条件下,将由网页传来的用户数据传送给负责数据分析和处理的Agent;②将Agent处理后的结论传送到Web页面显现给用户.经过智能化改进后的系统由原有系统、新增显示组件、原有系统与智能化组件之间的数据传输通道、实现系统智能化的Agent组件4部分组成,见图2.

图2 系统总体架构Fig.2 General architecture of the system

原有系统是企业遗留的基于Java EE平台的应用系统,经过智能化改进后,原有系统的运行不受影响.新增显示组件包含一组新设计的JSP页面,用于显示智能组件的分析结果.系统智能化功能的实现由新增的基于JADE平台的多个Agent来实现.每一个Agent负责完成一类数据的分析和处理.智能组件与原有系统的通信由数据通道实现.根据数据来源的不同,数据传输通道由页面数据获取组件和数据库数据获取组件组成.系统的主要组件设计如下:

(1)系统显示组件的设计

改进后的系统数据显示界面由原有系统的显示页面和新增的Agent显示界面两部分组成.显示组件的设计包括原有页面的修改和新页面的设计.首先要对原系统的部分页面做简单修改,使其数据传输方向为改变后的控制器组件.另外,智能处理的结果要显示给用户,所以要增加一些JSP页面用于同Agent交互.

(2)数据传输组件的设计

数据传输组件包括从页面接收数据的组件和从数据库中获取数据的组件.页面数据的获取由Enhanced-Servlet组件和GatewayAgent组件协作完成,实现模型如图3所示.EnhancedServlet是原系统中相应Servlet组件的扩展,充当扩展后的系统的控制器,其作用是获取网页上的输入信息并将其传送给GateWayAgent组件;GateWayAgent组件从EnhancedServlet中提取消息的接收者和消息内容,然后把消息发送给接收Agent同时收集Agent的回复信息,发送给EnhancedServlet,然后由显示页面JSP显示给用户.DataBoard对象封装了要传送的数据,相当于在EnhancedServlet组件与GatewayAgent组件之间传达信息的黑板.

GatewaryAgent是JADE平台提供的用于实现其他平台代码与JADE平台通信的一个基础组件,mdGatewayAgent是其扩展,它从DataBoard对象中提取消息的接收者和消息内容,并将其转换成Agent之间通信时的消息格式ACL Message[5],然后把消息发送给接收Agent.Agent通过数据库数据获取组件并从数据库中读取数据,数据库数据获取组件基于JDBC设计,采用模板模式设计,见图4.DataGetAgent根据从其他Agent所接收到的数据查询请求,从数据库中查询数据,然后将查询结果封装为ACLMessage,传送给请求Agent.

图3 Web-Agent数据通道设计Fig.3 Data chanel between Web pages and Agent

(3)基于JADE平台的Agent设计

图4 数据库数据获取组件Fig.4 Data getting model of database

Agent是一个具有知识的智能组件,由知识库、推理机和数据筛选器等三部分构成,见图5.其数据来源有来自页面的用户输入数据和来自数据库的历史数据两种,来源为数据库的数据是Agent根据自己的要求主动获取的,而来自于页面的数据是由页面数据获取组件对网页事件的响应而获得的.数据筛选器根据推理机的需要对从页面传来的数据进行筛选,选出推理机需要的数据项.知识库将与应用领域相关的知识以一定的方式表示和存储,作为推理机进行推理的依据.知识库的开发工具有多种,其中JESS是一个完全用Java语言实现专家系统的开发工具.JADE Agent可以通过读取文件的方式加载JESS规则库[6].Agent的推理机由JESS推理机担当,JESS推理机激活位置定义于Agent的action()方法中.在JESS中,Rete.store()等方法实现了参数的存取[7].

图5 Agent模型Fig.5 Agent model

3 应用案例

3.1 待改进的系统概况

煤矿安全信息管理系统HBCMSMIS是为某矿业集团设计的一套以安全信息管理为主要功能的应用软件,系统的设计基于Java EE平台,采用浏览器/服务器结构.系统的主要功能包括矿管理、安全日报管理、奖惩管理、质量标准化管理、事故管理、职工信息与培训管理、三违隐患管理、职业病防治管理、安技措施管理、新闻通知管理、一通三防和系统用户管理等.

3.2 系统智能化改进的实现

系统中的Agent分为局Agent和矿Agent两类,局Agent运行于安全监督局,矿Agent运行于安监局所属各矿,Agent之间采用树形结构组织,见图6和图7.局信息综合分析Agent负责对局所属各矿的安全信息进行综合分析和处理,它从各矿上报的信息及全局数据库中获取所需数据进行分析;矿Agent负责处理每个煤矿的各种信息,矿信息处理Agent的种类和结构与局Agent相同.

图6 安监局信息处理AgentFig.6 Safety supervision bureau information handling Agent

图7 矿信息处理AgentFig.7 Mine information handling Agent

4 结束语

面对海量的用户数据,传统的信息管理系统已难以满足人们对信息处理的需要,人们希望利用人工智能技术实现对信息的自动分析与处理,从中挖掘出有用的知识.虽然当前已有许多专用的人工智能系统开发平台和工具,但是开发一个全新的智能系统仍需要较高的成本.基于Agent平台JADE对已有的Java企业应用系统进行智能化改进是一种高效率、低成本的方法,该方法要完成的主要工作包括遗留系统与多Agent系统的数据传输功能的实现以及智能组件的设计和实现.这种改进不影响原有系统的运行和功能,开发者可以专注于系统智能化需求的实现,可以降低开发难度并节省开发成本和时间.

[1]史忠植.高级人工智能[M].3版.北京:科学出版社,2011:430-494.

[2]Fabio B,Giovanni C.Dominic Greenwood Developing Multi Agent Systems with JADE[M].New Jersey:John Wiley & Sons,2007:30-50.

[3]李刚.经典Java EE企业应用实战[M].北京:电子工业出版社,2010:11-15.

[4]于卫红.基于JADE平台的多Agent系统开发技术[M].北京:国防工业出版社,2011:88-99.

[5]金明宇,翟玉庆.基于Web的Agent通信框架[J].计算机工程,2003,29(3):195-197.

[6]文君.基于MAS的民航机务人为因素控制专家系统研究[D].武汉:武汉理工大学,2006:23-25.

[7]林杰,陆耀华.专家系统辅助的多Agent蚁群算法研究[J].计算机工程与科学,2007,29(6):47-50.

猜你喜欢

推理机页面组件
刷新生活的页面
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
面向对象的几何定理推导系统的设计与实现
基于Naive Bayesian算法改进的智能诊病系统研究
继电保护整定计算模块的设计
风起新一代光伏组件膜层:SSG纳米自清洁膜层
网站结构在SEO中的研究与应用
几种页面置换算法的基本原理及实现方法