第2卷第3期 智能系统学报 Vol.2 N23 2007年6月 CAAI Transactions on Intelligent Systems Jun.2007 CIAgent平台上基于MAS的企业分布式 数据库集成应用研究 杨力,曹谢东1,陈毅红2,袁海燕 (1.西南石油大学计算机科学学院,四川成都610500:2.西南民族大学计算机科学学院,四川成都610041) 摘要:为了克服传统多数据库集成技术的诸多不足,提出了利用多Ag©t技术集成分布式数据库的新方法.结合 分布式人工智能中的多代理系统(MAS)与分布式数据库技术,集成一个企业的多个现有数据库而成为一个新的同 构异质分布式数据库,在不影响原来的数据库应用的条件下,提供全局模式,在CIAgent平台上构建网络通信模块, 设计了多Agent系统结构,实现多Agct交互.运用该方法构建的油田分布式数据库系统能克服传统集成技术的许 多不足,具有良好的开放性适应性和互操作性.实践表明,该方法为分布式数据库的集成提供了新的组织方式,为 油田的信息集成提供一种科学的新手段. 关键词:企业信息集成;分布式数据库;多Agent;CIAgent,分布式事务;DIAgent 中图分类号:TP18,TP311.133.1文献标识码:A文章编号:1673-4785(2007)030073-06 Application research on enterprise distributed data base integration using MAS with CIAgents YANG Li',CAO Xie-dong',CHEN Yi-hong?,YUAN Hai-yan (1.School of Computer Science,Southwest Petroleum University,Chengdu 610500,China;2.Computer Science Institute, Southwest Nation University,Chengdu 610041,China) Abstract:To overcome many of the deficiencies of current multi-database integration technologies,this paper presents a new method for integrating distributed databases with Multi-agent-system (MAS)tech- nology.Using MAS with heterogeneous databases allows the integration of multiple existing databases in an enterprise into a new distributed database with great heterogeneity,yet a global database platform is present without changing former database applications.This novel method of information integration based on MAS was applied to the management of oil-field data and network communication modules using a CIAgent platform.Workflow of MAS in the distributed database is discussed in detail,and the distributed database system was found to show good openness,adaptability,and interoperability.These results show the method provides a new way to organize the integration of distributed databases. Key words:enterprise information integration;distributing database;MAS;Clagent platform;DIAgent 到目前为止出现了一系列信息集成技术,从总 CORBA/JAVA BEAN等分布式中间件集成,一般 体上可以分为2类:静态方法和传统的动态方法. 采用模块式结构,实现起来比较复杂,修改维护不 其中静态方法中包括数据转移、通用SQL API、通便,并且不同的中间件难于实现互操作山.为此,通 用数据访问结构ODBC和数据库网关等,他们通常 过分析分布式数据库技术与多Agent技术,利用A- 是点对点的集成,当信息系统增多时,其问题的复杂 gent的智能性、移动性、跨平台性及交互性,提出了 性成指数级增长,传统的动态方法包括DCOM/ 用多Agent技术动态方式集成现有数据库系统为 分布式数据库,同时支持在此基础上的全局应用,结 收稿日期:200607-07. 合油气田信息系统的实际,构建了一个基于CIA- 基金项目:国家高技术研究发展计划(863)资助项目(2003AA414 030). gent平台的MAS(多代理系统)信息集成系统,为 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第 2 卷第 3 期 智 能 系 统 学 报 Vol. 2 №. 3 2007 年 6 月 CAA I Transactions on Intelligent Systems J un. 2007 CIAgent 平台上基于 MAS 的企业分布式 数据库集成应用研究 杨 力1 ,曹谢东1 ,陈毅红2 ,袁海燕1 (1. 西南石油大学 计算机科学学院 ,四川 成都 610500 ;2. 西南民族大学 计算机科学学院 ,四川 成都 610041) 摘 要 :为了克服传统多数据库集成技术的诸多不足 ,提出了利用多 Agent 技术集成分布式数据库的新方法. 结合 分布式人工智能中的多代理系统(MAS) 与分布式数据库技术 ,集成一个企业的多个现有数据库而成为一个新的同 构异质分布式数据库 ,在不影响原来的数据库应用的条件下 ,提供全局模式 ,在 CIAgent 平台上构建网络通信模块 , 设计了多 Agent 系统结构 ,实现多 Agent 交互. 运用该方法构建的油田分布式数据库系统能克服传统集成技术的许 多不足 ,具有良好的开放性、适应性和互操作性. 实践表明 ,该方法为分布式数据库的集成提供了新的组织方式 ,为 油田的信息集成提供一种科学的新手段. 关键词 :企业信息集成 ;分布式数据库 ;多 Agent ;CIAgent ;分布式事务 ;DIAgent 中图分类号 : TP18 ,TP311. 133. 1 文献标识码 :A 文章编号 :167324785 (2007) 0320073206 Application research on enterprise distributed database integration using MAS with CIAgents YAN G Li 1 , CAO Xie2dong 1 , CH EN Yi2hong 2 , YUAN Hai2yan 1 (1. School of Computer Science , Southwest Petroleum University , Chengdu 610500 , China ; 2. Computer Science Institute , Southwest Nation University , Chengdu 610041 , China) Abstract :To overcome many of t he deficiencies of current multi - database integration technologies , this paper presents a new met hod for integrating distributed databases wit h Multi2agent2system (MAS) tech2 nology. Using MAS wit h heterogeneous databases allows t he integration of multiple existing databases in an enterprise into a new distributed database wit h great heterogeneity , yet a global database platform is present wit hout changing former database applications. This novel met hod of information integration based on MAS was applied to the management of oil - field data and network communication modules using a CIAgent platform. Workflow of MAS in the distributed database is discussed in detail , and the distributed database system was found to show good openness , adaptability , and interoperability. These results show t he met hod provides a new way to organize t he integration of distributed databases. Keywords :enterp rise information integration ; distributing database ; MAS; CIagent platform ; DIAgent 收稿日期 :2006207207. 基金项目 :国家高技术研究发展计划(863) 资助项目(2003AA414 030) . 到目前为止出现了一系列信息集成技术 ,从总 体上可以分为 2 类 : 静态方法和传统的动态方法. 其中静态方法中包括数据转移、通用 SQL API、通 用数据访问结构 ODBC 和数据库网关等 ,他们通常 是点对点的集成 ,当信息系统增多时 ,其问题的复杂 性成指数级增长 ; 传统的动态方法包括 DCOM/ CORBA/J AVA BEAN 等分布式中间件集成 ,一般 采用模块式结构 ,实现起来比较复杂 ,修改维护不 便 ,并且不同的中间件难于实现互操作[1 ] . 为此 ,通 过分析分布式数据库技术与多 Agent 技术 ,利用 A2 gent 的智能性、移动性、跨平台性及交互性 ,提出了 用多 Agent 技术动态方式集成现有数据库系统为 分布式数据库 ,同时支持在此基础上的全局应用 ,结 合油气田信息系统的实际 ,构建了一个基于 CIA2 gent 平台的 MAS(多代理系统) 信息集成系统 ,为
·74 智能系统学报 第2卷 油气田信息集成提供了一种新的方法 布式人工智能,分布式人工智能分为分布式问题求 1 多Agent与分布式数据库相结合 解及多Agent技术.所以分布式数据库技术及多A- gent技术都源于分布式技术,它们都是分布式技术 的优势 与其他技术相结合产生的,故把这2种技术结合也 多Agent技术与分布式数据库管理技术结合 是很自然的 有如下优势 1.1智能相似性 2 CIAgent平台介绍 运用多Agent技术可以充分发掘分布式数据 Joseph P.Bigus和Jennifer Bigus研制了一个 库管理中的智能性.要实现分布式数据库,必须建立 构建智能Agent环境CIAgent(constructing intel- 数据字典.字典中的一些内容,如:数据的分片、分 ligient agents)).CIAgent全部采用Java语言编写, 配、角色等信息,均可视为规则知识;另外,查询优化 可以在JDK1.1环境下运行.CIAgent智能主体环 算法中的优化规则也是一种规则知识,这与人工智 境具有下列特点:I)很容易在己有的Java应用系 能的知识表示是类似的,对这些规则的使用,就是推 统中加入主体;2)提供生成主体的图形构建工具, 理.传统的分布式数据库管理系统对规则的管理和 JDKI.1包含Java.beans软件包,具有可视建造工 使用,没有智能性,存在一定局限性.而文中提出的 具,并且可以嵌套定义;3)主体能支持相当强的事件 采用多Agent技术是分布式人工智能技术的一种, 处理能力:4)可以将领域知识加到主体知识库中;5) 充分体现了对规则进行管理及使用的智能性,为数 主体具有一定的学习功能:6)多主体是永久的,可以 据库管理系统技术开辟了新的视野 随时将它写入文件或装入运行四 1.2复杂性一致 该开发工具的一个最大优点是源代码是开放 利用多Agent技术可以解决分布式数据库管 的,通过深入分析源代码,确保在应用开发时正确地 理中的复杂性问题.对于涉及由大量具有主动性的 使用开发包,同时为用户扩展它的功能提供了方便, 个体组成的复杂系统,如经济社会系统、交通系统 同时笔者对本开发工具进行了扩充,增加了网络通 等,由于其动态性、随机性很强,很难仅仅依赖数据 信模块,解决了网络环境下多Agent之间的交互 数学模型进行仿真.由于分布式数据库系统的分布 另外,基于Java的开发包有利于集成异种平台上数 性,造成了系统固有的复杂性,采用传统的模块化方 据库系统」 法,无法完全满足分布式数据库技术的要求,考虑实 3 CIAgent平台上基于MAS的企业 现的代价,目前能够完全实现分布式功能的商业化 分布式数据库集成体系结构 产品几乎没有,只是部分实现,如果用多Agent技 术,则可以在一定程度克服这些问题 3.1基于MAS的企业信息集成框架的提出 1.3系统结构类似性 以中石化川西采输处为试验基地,由于采输处的 多Agent系统结构与分布式数据库管理系统之 组织结构为机关总部管理着多个采气分队和输气分 间具有结构一致.多Agent系统是由多自治的Aget 队,其组织结构为一种主从式层次结构,所以本系统 组成的,各Agent之间相互协作,分布式数据库系统 的多Agent组织采用行政管理型),其DIAgent(ds 中是由多个局部数据库系统组成的,各个局部数据库 tribute intelligence agent)分为3类:l)管理DIAgent, 系统之间为了实现分布式查询、事务处理、并发控制 具有所管理的DIAgent名字、地址、能力:2)处理分布 等需要相互协作.由此可以看出它们的相似性,所以 查询的查询分解DIAgent,3)处理分布事务的事务协 应用多Aget技术实现分布式数据库具有天然优势. 调DIAgent!).设计DIAgent系统结构如图1.表12 1.4并行性一致 是图1中的各个DIAgent的名称 多Agent系统与分布式数据库管理系统之间 表1各采气队DIAgent表 具有并行性一致的特点.多Agent系统中各Agent Table 1 Gas production team DIAgent table 之间具有高度的并行性.而分布式数据库系统中各 采气队名 物理查询DIAgent子 事务DIAgent 局部数据库系统也是并行,二者相类似, 采气l队YDSub TransactionDIAgent YDPhyQueryDIAgent 1.5同源于分布式技术 采气2队SDSub TransactionDIAgent SDPhyQueryDIAgent 分布式数据库技术是分布式技术与数据库技术 采气3队TDSub TransactionDIAgent TDPhyQueryDIAgent 结合的产物.分布式技术与人工智能结合产生了分 采气4队FDSubTransactionDIAgent FDPhyQueryDIAgent 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
油气田信息集成提供了一种新的方法. 1 多 Agent 与分布式数据库相结合 的优势 多 Agent 技术与分布式数据库管理技术结合 有如下优势. 1. 1 智能相似性 运用多 Agent 技术可以充分发掘分布式数据 库管理中的智能性. 要实现分布式数据库 ,必须建立 数据字典. 字典中的一些内容 ,如 :数据的分片、分 配、角色等信息 ,均可视为规则知识 ;另外 ,查询优化 算法中的优化规则也是一种规则知识 ,这与人工智 能的知识表示是类似的 ,对这些规则的使用 ,就是推 理. 传统的分布式数据库管理系统对规则的管理和 使用 ,没有智能性 ,存在一定局限性. 而文中提出的 采用多 Agent 技术是分布式人工智能技术的一种 , 充分体现了对规则进行管理及使用的智能性 ,为数 据库管理系统技术开辟了新的视野. 1. 2 复杂性一致 利用多 Agent 技术可以解决分布式数据库管 理中的复杂性问题. 对于涉及由大量具有主动性的 个体组成的复杂系统 ,如经济社会系统、交通系统 等 ,由于其动态性、随机性很强 ,很难仅仅依赖数据 数学模型进行仿真. 由于分布式数据库系统的分布 性 ,造成了系统固有的复杂性 ,采用传统的模块化方 法 ,无法完全满足分布式数据库技术的要求 ,考虑实 现的代价 ,目前能够完全实现分布式功能的商业化 产品几乎没有 ,只是部分实现 ,如果用多 Agent 技 术 ,则可以在一定程度克服这些问题. 1. 3 系统结构类似性 多 Agent 系统结构与分布式数据库管理系统之 间具有结构一致. 多 Agent 系统是由多自治的 Agent 组成的 ,各 Agent 之间相互协作;分布式数据库系统 中是由多个局部数据库系统组成的 ,各个局部数据库 系统之间为了实现分布式查询、事务处理、并发控制 等需要相互协作. 由此可以看出它们的相似性 ,所以 应用多 Agent 技术实现分布式数据库具有天然优势. 1. 4 并行性一致 多 Agent 系统与分布式数据库管理系统之间 具有并行性一致的特点. 多 Agent 系统中各 Agent 之间具有高度的并行性 ,而分布式数据库系统中各 局部数据库系统也是并行 ,二者相类似. 1. 5 同源于分布式技术 分布式数据库技术是分布式技术与数据库技术 结合的产物. 分布式技术与人工智能结合产生了分 布式人工智能 ,分布式人工智能分为分布式问题求 解及多 Agent 技术. 所以分布式数据库技术及多 A2 gent 技术都源于分布式技术 ,它们都是分布式技术 与其他技术相结合产生的 ,故把这 2 种技术结合也 是很自然的. 2 CIAgent 平台介绍 Jo sep h P. Bigus 和 J ennifer Bigus 研制了一个 构建智能 Agent 环境 CIAgent (constructing intel2 ligient agents) . CIAgent 全部采用 J ava 语言编写 , 可以在 JD K1. 1 环境下运行. CIAgent 智能主体环 境具有下列特点 : 1) 很容易在已有的 J ava 应用系 统中加入主体 ;2) 提供生成主体的图形构建工具. JD K1. 1 包含 J ava. beans 软件包 ,具有可视建造工 具 ,并且可以嵌套定义 ;3) 主体能支持相当强的事件 处理能力 ;4) 可以将领域知识加到主体知识库中 ;5) 主体具有一定的学习功能 ;6) 多主体是永久的 ,可以 随时将它写入文件或装入运行[ 2 ] . 该开发工具的一个最大优点是源代码是开放 的 ,通过深入分析源代码 ,确保在应用开发时正确地 使用开发包 ,同时为用户扩展它的功能提供了方便. 同时笔者对本开发工具进行了扩充 ,增加了网络通 信模块 ,解决了网络环境下多 Agent 之间的交互. 另外 ,基于 J ava 的开发包有利于集成异种平台上数 据库系统. 3 CIAgent 平台上基于 MAS 的企业 分布式数据库集成体系结构 3. 1 基于 MAS 的企业信息集成框架的提出 以中石化川西采输处为试验基地 ,由于采输处的 组织结构为机关总部管理着多个采气分队和输气分 队 ,其组织结构为一种主从式层次结构 ,所以本系统 的多 Agent 组织采用行政管理型[3 ] ,其 DIAgent (dis2 tribute intelligence agent)分为 3 类 :1) 管理 DIAgent , 具有所管理的 DIAgent 名字、地址、能力;2)处理分布 查询的查询分解 DIAgent ;3) 处理分布事务的事务协 调 DIAgent [4 ] . 设计 DIAgent 系统结构如图 1. 表 1、2 是图 1 中的各个 DIAgent 的名称. 表 1 各采气队 DIAgent 表 Table 1 Gas production team DIAgent table 采气队名 物理查询 DIAgent 子 事务 DIAgent 采气 1 队 YDSub TransactionDIAgent YDPhyQueryDIAgent 采气 2 队 SDSubTransactionDIAgent SDPhyQueryDIAgent 采气 3 队 TDSub TransactionDIAgent TDPhyQueryDIAgent 采气 4 队 FDSubTransactionDIAgent FDPhyQueryDIAgent · 47 · 智 能 系 统 学 报 第 2 卷
第3期 杨力,等:CIAgent平台上基于MAS的企业分布式数据库集成应用研究 ·75 ANS DIAgent 采输处DB Facilitator DIAgen 地址薄 功能数据库 任务IAgent 采输处 事务解析DIAgent 查询解析DIAgent 计划任务 本体DIAgent 选择任务 事伤协调IAgent 采气队 协作任务 子事务DIAgent 子事务DIAgent 子事务DIAgent 于事务DIAgent 事务任务 事务任务 事务任务 事务任务 4 采气:队DB 采气2队DB 采气3队DB 采气4队DB 管理查询DIAgent 管理查询DIAgent 管理查询DIAgent 管理查询DIAgent 事务任务 事务任务 事务任务 事务任务 图1多Agent系统结构 Fig.1 MAS system structure 表2采输处各DIAgent的端口号表(CSCAgent Port) gent之间的交互过程分析如下(B-G是分布式查询 Table 2 Gas production team DIAgent Port table 处理过程,HN是分布式事务处理过程).协议对故 DIAgentName IPAdress portID rem 障处理办法:采用超时方法处理.当在规定的时间内 名字解析服务 没有收到回复,则认为失败 ANSDIAgent 192.168.2.11 2501 DIAgent 1)任务DIAgent接收任务,判断是查询,还是 功能解析服务 事务,如果是查询,则把任务交查询解析DIAgent, FacilitatorDIAgent 192.168.2.11 2502 DIAgent 转2);如是事务,则把任务交事务分解DIAgent,转 OntologyDIAgent 192.168.2.11 2503 本体DIAgent 8) 2)查询解析DIAgent分析该查询并按照一定 TaskAnalyse 192.168.2.112504 任务DIAgent DIAgent 的算法把分布查询分解为物理查询. 事务解析 3)查询解析DIAgent按照物理查询的功能要 TransactionPlan 192.168.2.11 2505 DIAgent DIAgent 求到功能解析服务DIAgent(即facilitator DIA 查询解析 gent)查询哪一DIAgent能够完成此任务,facilita- Query Plan 192.168.2.11 2506 DIAgent DIAgent tor DIAgent找到后,则返回DIAgent名称.在规定 时间内,如不能解析则结束本次查询任务处理 Transaction 事务协调 192.168.2.11 2507 CorDIAgent DIAgent 4)查询解析DIAgent利用3)步得到的DIA gent名称,从自已熟悉DIAgent列表中查询地址 3.2 DIAgent交互过程 如找不到,则到名字解析DIAgent查询该DIAgent 分布式查询或分布式事务处理时,多个DIA 对应的地址(包括P地址和端口号).在规定时间 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
图 1 多 Agent 系统结构 Fig. 1 MAS system structure 表 2 采输处各 DIAgent 的端口号表( CSCAgent Port) Table 2 Gas production team DIAgent Port table DIAgentName IPAdress portID rem ANSDIAgent 192. 168. 2. 11 2501 名字解析服务 DIAgent FacilitatorDIAgent 192. 168. 2. 11 2502 功能解析服务 DIAgent OntologyDIAgent 192. 168. 2. 11 2503 本体 DIAgent TaskAnalyse DIAgent 192. 168. 2. 11 2504 任务 DIAgent TransactionPlan DIAgent 192. 168. 2. 11 2505 事务解析 DIAgent QueryPlan DIAgent 192. 168. 2. 11 2506 查询解析 DIAgent Transaction CorDIAgent 192. 168. 2. 11 2507 事务协调 DIAgent 3. 2 DIAgent 交互过程 分布式查询或分布式事务处理时 ,多个 DIA2 gent 之间的交互过程分析如下 (B2G 是分布式查询 处理过程 , H2N 是分布式事务处理过程) . 协议对故 障处理办法 :采用超时方法处理. 当在规定的时间内 没有收到回复 ,则认为失败. 1) 任务 DIAgent 接收任务 ,判断是查询 ,还是 事务 ,如果是查询 ,则把任务交查询解析 DIAgent , 转 2) ;如是事务 ,则把任务交事务分解 DIAgent ,转 8) . 2) 查询解析 DIAgent 分析该查询并按照一定 的算法把分布查询分解为物理查询. 3) 查询解析 DIAgent 按照物理查询的功能要 求到功能解析服务 DIAgent (即 facilitator DIA2 gent) 查询哪一 DIAgent 能够完成此任务 ,facilita2 tor DIAgent 找到后 ,则返回 DIAgent 名称. 在规定 时间内 ,如不能解析则结束本次查询任务处理. 4) 查询解析 DIAgent 利用 3) 步得到的 DIA2 gent 名称 ,从自已熟悉 DIAgent 列表中查询地址. 如找不到 ,则到名字解析 DIAgent 查询该 DIAgent 对应的地址 (包括 IP 地址和端口号) . 在规定时间 第 3 期 杨 力 ,等 :CIAgent 平台上基于 MAS 的企业分布式数据库集成应用研究 · 57 ·
·76 智能系统学报 第2卷 内,如不能解析则结束本次查询任务处理 事务DIAgent发“提交”报文,此时每个相关的子事 5)查询解析DIAgent按地址向目的物理查询 务DIAgent知道其他的相关的子事务DIAgent将 DIAgent发送查询处理消息,重复3)、4)5)直接把复 “赞成”提交,故它可以收到“提交”"报文后就进行提 合查询的物理查询处理完成为止.在规定时间内,如 交5.6 果某一个物理查询任务不能提交到目的物理查询 3.3网络通信模块的设计 DIAgent,则本次查询失败,结束本次查询任务处理」 3.3.1设计思想 6)各物理查询DIAgent完成查询任务后,返回 网络分布环境中各DIAgent之间需要通信,是 查询结果到查询解析DIAgent..在规定时间内,如不 通过网络通信模块进行的,每个DIAgent都需要一 能返回结果,则本次查询失败 个网络通信模块,设计网络通信模块要考虑以下几 7)查询解析DIAgent综合物理查询结果,提交 个因素: 任务DIAgent,由任务DIAgent交给用户/应用系 1)网络通信模块支持与外界双向通信,与外界 统,结束本次查询任务处理.如果某一个物理查询 的通信接口应该有收发2个端口. DIAgent不能返回查询结果,则结束本次查询任务 2)网络通信模块支持与宿主双向通信,所以与 处理 宿主的通信接口应该有2个端口 8)事务分解DIAgent分析接收的任务是不是 3)网络通信模块内应该具体缓冲区,保证通信 分布式事务,如是分布式事务,则按照一定的算法把 的可靠性,防止因拥塞而掉包发生 分布式事务分解为一系列子分布式事务 4)网络通信模块作为服务方接收信息时,应支 9)事务分解DIAgent按照子事务/事务的功能 持多客户访问 要求到功能解析服务DIAgent(即Facilitator DIA- 为此,根据每个通信的要求设计了下列网络通信 gent)中查询哪一个DIAgent能够完成此任务,Fa 模块图:本模块特点是各部分高度并行运行,保证了 cilitator DIAgent找到后,则返回DIAgent名称.如 在有多个Aget的条件下通信要求,其结构如图2. 不能解析,则结束本次事务处理 3.32网络通信模块组成 1O)事务分解DIAgent利用9)步得到的DIA- Socket接口:功能是将直接与协议有关的通信部 gent名称从自己熟悉DIAgent列表中查询地址.如 分组合在一起,并给网络通信模块的其他部分提供一 找不到,则到名字解析服务DIAgent查询该DIA- 种通信方式,使网络通信模块的其他部分不用考虑与 gent对应的地址(包括IP地址和端口号).如不能 发送协议有关的部分,各部分的工作原理如下: 解析则结束本次事务处理.重复9)、10)直接把分布 服务线程:它使用ServerSocket不停地监听本 式事务的子事务按上述要求作完 DIAgent的端口地址,一旦发现消息来,主动启动一 11)事务分解DIAgent把上面的所有处理子事 个消息线程处理这个消息,然后继续监听,它支持多 务的DIAgent的地址及子事务内容以消息方式告 客户」 知事务协调DIAgent.事务协调DIAgent把所有的 消息线程:由服务线程启动.它的任务是读入消 子事务发送到处理子事务的目的DIAgent(即各采 息,并将消息送到接收缓冲区 气队的子事务DIAgent). 客户线程:客户线程由发送线程启动,任务是将 12)事务协调DIAgent向所有相关的子事务DF 消息通过Socket发出 Agent发送“开始提交"”消息.由于每个相关的子事务 接收缓冲区:用来缓存外界发来的消息,它的访 DIAgent据自己的情况进行投票,只有收到所有的相 问方式采用同步,即互斥访问 关的子事务DIAgent均赞成,提交才进入第2阶段 发送缓冲区:用来缓存向外发送的消息,以免连 13)和第3阶段14),如在规定时间内收不到回复,则 续发送多个消息而使系统出错.向外发送的消息一 认为参与者拒绝处理事务,结束本事务处理」 般是通过调用网络通信模块的消息发送函数进入发 13)事务协调DIAgent向所有相关的子事务 送缓冲区.根据本模块情况,发送缓冲区和接收缓冲 DIAgent发送“准备提交"消息.相关的子事务DIA- 区按队列原理工作 gent收到该报文后,若已经准备好提交,则回答“准 发送线程:是一个常驻线程,它的任务是不断监 备就绪”消息否则结束本事务处理 视发送缓冲区,一旦有消息进入发送缓冲区就启动 14)当事务协调DIAgent收到所有的相关的子 Socket接口中的方法来将消息发出.Socket接口中 事务DIAgent'“准备就绪”回答,就向所有相关的子 的方法将产生一个客户线程来将消息发出。 1994-2008 China Academic Journal Electronie Publishing House.All rights reserved.http://www.cnki.net
内 ,如不能解析则结束本次查询任务处理. 5) 查询解析 DIAgent 按地址向目的物理查询 DIAgent 发送查询处理消息 ,重复 3) 、4) 、5) 直接把复 合查询的物理查询处理完成为止. 在规定时间内 ,如 果某一个物理查询任务不能提交到目的物理查询 DIAgent ,则本次查询失败 ,结束本次查询任务处理. 6) 各物理查询 DIAgent 完成查询任务后 ,返回 查询结果到查询解析 DIAgent. 在规定时间内 ,如不 能返回结果 ,则本次查询失败. 7) 查询解析 DIAgent 综合物理查询结果 ,提交 任务 DIAgent ,由任务 DIAgent 交给用户/ 应用系 统 ,结束本次查询任务处理. 如果某一个物理查询 DIAgent 不能返回查询结果 ,则结束本次查询任务 处理. 8) 事务分解 DIAgent 分析接收的任务是不是 分布式事务 ,如是分布式事务 ,则按照一定的算法把 分布式事务分解为一系列子分布式事务. 9) 事务分解 DIAgent 按照子事务/ 事务的功能 要求到功能解析服务 DIAgent (即 Facilitator DIA2 gent) 中查询哪一个 DIAgent 能够完成此任务 ,Fa2 cilitator DIAgent 找到后 ,则返回 DIAgent 名称. 如 不能解析 ,则结束本次事务处理. 10) 事务分解 DIAgent 利用 9) 步得到的 DIA2 gent 名称从自已熟悉 DIAgent 列表中查询地址. 如 找不到 ,则到名字解析服务 DIAgent 查询该 DIA2 gent 对应的地址 (包括 IP 地址和端口号) . 如不能 解析则结束本次事务处理. 重复 9) 、10) 直接把分布 式事务的子事务按上述要求作完. 11) 事务分解 DIAgent 把上面的所有处理子事 务的 DIAgent 的地址及子事务内容以消息方式告 知事务协调 DIAgent. 事务协调 DIAgent 把所有的 子事务发送到处理子事务的目的 DIAgent (即各采 气队的子事务 DIAgent) . 12) 事务协调 DIAgent 向所有相关的子事务 DI2 Agent 发送“开始提交”消息. 由于每个相关的子事务 DIAgent 据自己的情况进行投票 ,只有收到所有的相 关的子事务 DIAgent 均赞成 ,提交才进入第 2 阶段 13)和第 3 阶段 14) ,如在规定时间内收不到回复 ,则 认为参与者拒绝处理事务 ,结束本事务处理. 13) 事务协调 DIAgent 向所有相关的子事务 DIAgent 发送“准备提交”消息. 相关的子事务 DIA2 gent 收到该报文后 ,若已经准备好提交 ,则回答“准 备就绪”消息 ,否则结束本事务处理. 14) 当事务协调 DIAgent 收到所有的相关的子 事务 DIAgen“t 准备就绪”回答 ,就向所有相关的子 事务 DIAgent 发“提交”报文 ,此时每个相关的子事 务 DIAgent 知道其他的相关的子事务 DIAgent 将 “赞成”提交 ,故它可以收到“提交”报文后就进行提 交[5 - 6 ] . 3. 3 网络通信模块的设计 3. 3. 1 设计思想 网络分布环境中各 DIAgent 之间需要通信 ,是 通过网络通信模块进行的 ,每个 DIAgent 都需要一 个网络通信模块 ,设计网络通信模块要考虑以下几 个因素 : 1) 网络通信模块支持与外界双向通信 ,与外界 的通信接口应该有收发 2 个端口. 2) 网络通信模块支持与宿主双向通信 ,所以与 宿主的通信接口应该有 2 个端口. 3) 网络通信模块内应该具体缓冲区 ,保证通信 的可靠性 ,防止因拥塞而掉包发生. 4) 网络通信模块作为服务方接收信息时 ,应支 持多客户访问. 为此 ,根据每个通信的要求设计了下列网络通信 模块图:本模块特点是各部分高度并行运行 ,保证了 在有多个 Agent 的条件下通信要求 ,其结构如图 2. 3. 3. 2 网络通信模块组成 Socket 接口 :功能是将直接与协议有关的通信部 分组合在一起 ,并给网络通信模块的其他部分提供一 种通信方式 ,使网络通信模块的其他部分不用考虑与 发送协议有关的部分 ,各部分的工作原理如下: 服务线程 :它使用 ServerSocket 不停地监听本 DIAgent 的端口地址 ,一旦发现消息来 ,主动启动一 个消息线程处理这个消息 ,然后继续监听 ,它支持多 客户. 消息线程 :由服务线程启动. 它的任务是读入消 息 ,并将消息送到接收缓冲区. 客户线程 :客户线程由发送线程启动 ,任务是将 消息通过 Socket 发出. 接收缓冲区 :用来缓存外界发来的消息 ,它的访 问方式采用同步 ,即互斥访问. 发送缓冲区 :用来缓存向外发送的消息 ,以免连 续发送多个消息而使系统出错. 向外发送的消息一 般是通过调用网络通信模块的消息发送函数进入发 送缓冲区. 根据本模块情况 ,发送缓冲区和接收缓冲 区按队列原理工作. 发送线程 :是一个常驻线程 ,它的任务是不断监 视发送缓冲区 ,一旦有消息进入发送缓冲区就启动 Socket 接口中的方法来将消息发出. Socket 接口中 的方法将产生一个客户线程来将消息发出. · 67 · 智 能 系 统 学 报 第 2 卷
第3期 杨力,等:CIAgent平台上基于MAS的企业分布式数据库集成应用研究 ·77 环境 DIAgent 过滤器 地址薄 服务线程 客户线程 消息发送函数 良线程 接收线程 接收缓冲区 发送缓冲区 发送线程 444 图2网路通信模块结构 Fig.2 Network communication module structure 接收线程:是一个常驻线程,任务是不断检查接 bean的子类)设置一个属性,当过滤器收到KQML 收缓冲区的数据,一旦有消息进入接收缓冲区就启 消息后,就存放在属性中,于是就会产生一个属性改 动一个过滤线程来接受消息进行解释和处理 变事件,对应此事件,有一个监听者,在其中实现一 过滤器:过滤器解释并处理一些简单的且仅与 系统的处理KQML消息函数(即所谓注册函数) 网络通信模块有关的一些通信原语.如查询地址或 4 者告诉地址register,unregister等.网络通信模块 结束语 的过滤器功能比较弱,大部分与DIAgent有关的消 MAS系统是一种新分布式信息集成模式的核 息还是交给DIAgent去处理,过滤器对ANSDIA- 心技术.作为分布式数据库集成的一种方案,MAS gent特别有用 其实是对传统的静态和动态集成方法的一次革命 地址簿:网络通信模块保留DIAgent的地址信 通过在中石化川西采输处的实施,把MAS技术应 息.地址薄中包含DIAgent熟人的地址,比如: 用到采输处各分队相对独立的子数据库的集成中, Query PlanDIAgent保存有PhyQueryDIAgent 证明本系统具有良好的开放性、适应性和可操作性, 地址,不需查询ANSDIAgent,当然也可查询.对于 通过引入了DIAgent对支持网络分布计算环境的 通信服务器而言,地址簿保存有系统中所有己登记 支持,使得各计算机系统中的DIAgent实现问题协 的DIAgent地址, 作处理;虽然它在企业专网上实现,但它的跨平台 消息发送函数:网络通信模块的消息发送函数 性、移动性和弱连接性决定了它同样适合Internet 首先查阅地址薄中有没有目标DIAgent的地址,如 广域网,其本身所具有的优越性和强大生命力决定 果没有,先产生一个Query_address消息(增加的语 了它的发展前景必然十分广阔 用词),向通信服务器查询目标DIAgent的地址,然 参考文献: 后将自己挂起一段时间,直到地址薄中出现目标 DIAgent的地址.如果持续一段时间还是得不到地 [1]GU P,BALASUBRAMANIAN S,NORRIE D H.Bid- 址,则发送失败.在知道了目标DIAgent的地址后, ding based process planning and scheduling in a multi-a- 消息发送函数把消息存放在发送缓冲区.网络通信 gent system[J ]Computers Industry Engineering,1997, 32(2):477.496. 模块主要是按照上层提供的逻辑地址,将其转换为 [2]HEECHEOL J CHARL ES P,MARK R C.A Java Agent 地下(消息接收则相反),并将KQML消息线型化 infrastructure with message routing[A].Stanford Center for (或反之),然后打包发送或解包.消息发送函数与发 Design Research (CDR)[C].Stanford,USA,1999. 送线程之间均需要访问发送缓冲区,二者是生产者 [3]张洁,高亮,李培根.多Agent技术在先进制造中的 与消费者的关系,二者需进行同步 应用[M].北京:科学出版社,2004. 消息接收实现原理:在bean类(CIAgent是 [4]CARVER Z,CVETANOVIE Z,L ESSER V.Sophisti- 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
图 2 网络通信模块结构 Fig. 2 Network communication module structure 接收线程 :是一个常驻线程 ,任务是不断检查接 收缓冲区的数据 ,一旦有消息进入接收缓冲区就启 动一个过滤线程来接受消息进行解释和处理. 过滤器 :过滤器解释并处理一些简单的且仅与 网络通信模块有关的一些通信原语. 如查询地址或 者告诉地址 register , unregister 等. 网络通信模块 的过滤器功能比较弱 ,大部分与 DIAgent 有关的消 息还是交给 DIAgent 去处理 ,过滤器对 ANSDIA2 gent 特别有用. 地址簿 :网络通信模块保留 DIAgent 的地址信 息. 地址薄中包含 DIAgent 熟人的地址 ,比如 : QueryPlanDIAgent 保存有 PhyQueryDIAgent 地址 ,不需查询 ANSDIAgent ,当然也可查询. 对于 通信服务器而言 ,地址簿保存有系统中所有已登记 的 DIAgent 地址. 消息发送函数 :网络通信模块的消息发送函数 首先查阅地址薄中有没有目标 DIAgent 的地址 ,如 果没有 ,先产生一个 Query_address 消息 (增加的语 用词) ,向通信服务器查询目标 DIAgent 的地址 ,然 后将自己挂起一段时间 ,直到地址薄中出现目标 DIAgent 的地址. 如果持续一段时间还是得不到地 址 ,则发送失败. 在知道了目标 DIAgent 的地址后 , 消息发送函数把消息存放在发送缓冲区. 网络通信 模块主要是按照上层提供的逻辑地址 ,将其转换为 地下(消息接收则相反) ,并将 KQML 消息线型化 (或反之) ,然后打包发送或解包. 消息发送函数与发 送线程之间均需要访问发送缓冲区 ,二者是生产者 与消费者的关系 ,二者需进行同步. 消息接收实现原理 : 在 bean 类 ( CIAgent 是 bean 的子类) 设置一个属性 ,当过滤器收到 KQML 消息后 ,就存放在属性中 ,于是就会产生一个属性改 变事件 ,对应此事件 ,有一个监听者 ,在其中实现一 系统的处理 KQML 消息函数(即所谓注册函数) . 4 结束语 MAS 系统是一种新分布式信息集成模式的核 心技术. 作为分布式数据库集成的一种方案 ,MAS 其实是对传统的静态和动态集成方法的一次革命. 通过在中石化川西采输处的实施 ,把 MAS 技术应 用到采输处各分队相对独立的子数据库的集成中 , 证明本系统具有良好的开放性、适应性和可操作性 , 通过引入了 DIAgent 对支持网络分布计算环境的 支持 ,使得各计算机系统中的 DIAgent 实现问题协 作处理 ;虽然它在企业专网上实现 ,但它的跨平台 性、移动性和弱连接性决定了它同样适合 Internet 广域网 ,其本身所具有的优越性和强大生命力决定 了它的发展前景必然十分广阔. 参考文献 : [1 ] GU P , BALASUBRAMANIAN S , NORRIE D H. Bid2 ding2based process planning and scheduling in a multi2a2 gent system[J ]. Computers Industry Engineering , 1997 , 32 (2) :477 - 496. [2 ] HEECHEOL J ,CHARL ES P ,MARK R C. A Java Agent infrastructure with message routing[A]. Stanford Center for Design Research (CDR) [C]. Stanford , USA ,1999. [3 ]张 洁 ,高 亮 ,李培根. 多 Agent 技术在先进制造中的 应用[ M]. 北京 :科学出版社 ,2004. [4 ]CARV ER Z , CV ETANOVIE Z , L ESSER V. Sophisti2 第 3 期 杨 力 ,等 :CIAgent 平台上基于 MAS 的企业分布式数据库集成应用研究 · 77 ·
·78· 智能系统学报 第2卷 cated cooperation in FA/C distributed problem solving 曹谢东,男,1954年生,教授,硕士 systems [A].Proceedings of the 9th national conference 生导师,中国人工智能学会智能系统工 on Artificial Intelligence[C].Anaheim,CA,1991. 程专业委员会副主任,主要研究方向为 [5]CORA B EXCEL ENT TOL EDO.The dynamic selection 人工智能与分布式计算.完成国家、省、 of coordination mechanisms in Multi-agent Systems[D]. 部级项目多项,其中2项获四川省科技 Southampton:University of Southampton,2003. 进步三等奖.著专著3部,专利1项,在 [6]CUTKOSY M R,TENENBAUMJ M,BROWN D R. 国内外学术会议和刊物发表论文60多 Working with multiple representations in a concurrent 篇 design system [J].Journal of Mechanical Design,1992, 陈毅红,男,1973年生,硕士,讲师, 114(3):515,524 主要研究方向为人工智能与分布式计 作者简介: 算.参加过多个实际工程项目,其中参 杨力,男,1975年生,讲师,主要研 与的气田安全整改项目获得四川省科 究方向为人工智能与分布式计算,参加过 技进步三等奖;在计算机类核心期刊上 国家“十五”科技攻关项目在内的多个大 发表多篇论文 型项目,其中一项获得四川省科技进步二 等奖,在计算机类核心期刊上发表论文多 篇 E mail scncyl @126.com. 计算智能及安全国际会议 2007 International Conference on Computational Intelligence and Security (CIS2007) International Conference on Computational Intelligence and Security (CIS)is a major annual interna- tional conference to bring together researchers,engineers,developers and practitioners from academia and industry working in all areas of two crucial fields in information processing:computational intelligence (CI)and information security (IS),to share the experience,and exchange and cross-fertilize ideas.In particular,the series of CIS conference provides an ideal platform to explore the potential applications of CI models,algorithms and technologies to IS.Following the great success of CIS2005 and CIS2006,CIS2007 serves as a forum for the dissemination of state-of-the-art research,development,and implementations of systems,technologies and applications in these two broad fields.CIS2007 is co-organized by Harbin Insti- tute of Technology and Guangdong University of Technology.Also,it is co-sponsored by Xidian Universi- ty,IEEE(Hong Kong)Computational Intelligence Chapter,and Hong Kong Baptist University. Prospective authors are invited to submit high-quality manuscripts written in English.The submission of a paper implies that the paper is original and has not been submitted to elsewhere for possible publica- tion.All submissions will be blindly reviewed by experts in the field based on originality,significance, quality and clarity.Authors must not reveal any author information in the submitted paper(s),otherwise the paper(s)will be rejected immediately without going through the reviewing process.Authors should use the Latex style files or MS-Word templates provided by the IEEE to format their papers.The length of a submitted paper should not exceed 4 pages in two-column format.The accepted papers will be included in the conference proceedings published by the IEEE that is indexed by EI. Authors should submit a soft copy of their manuscripts with the pdf format only to the conference via the online submission system.For more details,please visit the conference web site at:http://cis2007. hit.edu.cn 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
cated cooperation in FA/ C distributed problem solving systems [A ]. Proceedings of the 9th national conference on Artificial Intelligence[C]. Anaheim , CA , 1991. [5 ]CORA B EXCEL EN T TOL EDO. The dynamic selection of coordination mechanisms in Multi2agent Systems[D ]. Southampton :University of Southampton ,2003. [6 ]CU T KOSY M R , TENENBAUM J M , BROWN D R. Working with multiple representations in a concurrent design system[J ]. Journal of Mechanical Design , 1992 , 114 (3) : 515 - 524. 作者简介 : 杨 力 ,男 ,1975 年生 ,讲师 ,主要研 究方向为人工智能与分布式计算 ,参加过 国家“十五”科技攻关项目在内的多个大 型项目 ,其中一项获得四川省科技进步二 等奖 ,在计算机类核心期刊上发表论文多 篇. E2mail :scncyl @126. com. 曹谢东 ,男 ,1954 年生 ,教授 ,硕士 生导师 ,中国人工智能学会智能系统工 程专业委员会副主任 ,主要研究方向为 人工智能与分布式计算. 完成国家、省、 部级项目多项 ,其中 2 项获四川省科技 进步三等奖. 著专著 3 部 ,专利 1 项 ,在 国内外学术会议和刊物发表论文 60 多 篇. 陈毅红 ,男 ,1973 年生 ,硕士 ,讲师 , 主要研究方向为人工智能与分布式计 算. 参加过多个实际工程项目 ,其中参 与的气田安全整改项目获得四川省科 技进步三等奖 ;在计算机类核心期刊上 发表多篇论文. 计算智能及安全国际会议 2007 International Conference on Computational Intelligence and Security ( CIS’2007) International Conference on Comp utational Intelligence and Security (CIS) is a major annual interna2 tional conference to bring together researchers , engineers , developers and practitioners from academia and industry working in all areas of two crucial fields in information processing : comp utational intelligence (CI) and information security ( IS) , to share the experience , and exchange and cross - fertilize ideas. In particular , t he series of CIS conference provides an ideal platform to explore the potential applications of CI models , algorit hms and technologies to IS. Following t he great success of CIS’2005 and CIS’2006 , CIS’2007 serves as a forum for the dissemination of state2of2t he2art research , development , and implementations of systems , technologies and applications in t hese two broad fields. CIS’2007 is co2organized by Harbin Insti2 t ute of Technology and Guangdong University of Technology. Also , it is co2sponsored by Xidian Universi2 ty , IEEE ( Hong Kong) Comp utational Intelligence Chapter , and Hong Kong Baptist University. Prospective authors are invited to submit high2quality manuscripts written in English. The submission of a paper implies t hat the paper is original and has not been submitted to elsewhere for possible p ublica2 tion. All submissions will be blindly reviewed by experts in t he field based on originality , significance , quality and clarity. Aut hors must not reveal any aut hor information in the submitted paper (s) , ot herwise t he paper (s) will be rejected immediately wit hout going t hrough t he reviewing process. Aut hors should use t he Latex style files or MS2Word templates provided by t he IEEE to format t heir papers. The lengt h of a submitted paper should not exceed 4 pages in two2column format. The accepted papers will be included in t he conference proceedings p ublished by t he IEEE t hat is indexed by EI. Aut hors should submit a soft copy of their manuscripts with the p df format only to t he conference via t he online submission system. For more details , please visit t he conference web site at : http :/ / cis2007. hit. edu. cn · 87 · 智 能 系 统 学 报 第 2 卷