6b1606ebb29530d9f3aeae9ca3d48686.ppt
- Количество слайдов: 121
高级人 智能 第十五章 分布智能 (二) 史忠植 中国科学院计算技术研究所 2018/3/19 史忠植 高级人 智能 1
内容提要 • 概述 • MAGE简介 • 主体建模 • 开发平台 • 运行平台 • 移动主体 • 应用 2018/3/19 史忠植 高级人 智能 2
概述 http: //www. agentlink. org/resources/agentsoftware. php Agent Software Total: 116 MAGE: Multiagent development environment is an integrated tool suite for constructing multiagent systems 2018/3/19 史忠植 高级人 智能 3
Agent. Cities Beijing! 2018/3/19 史忠植 高级人 智能 4
MAGE简介 l 多主体环境MAGE l l 目标 l l 实现基于主体的应用集成(软件重用的最佳解决方案) 主要特点 l l l 2018/3/19 面向主体的软件开发、集成和运行环境 功能 l l Multi-AGent Environment 分布式计算平台 多种软件重用方案 多种主体生成方式 图形用户界面、强大的管理功能 丰富的行为模板、主体行为调度模型 史忠植 高级人 智能 5
MAGE的总体结构 系统开发 / 主体生成 需 求 分 析 系 统 设 计 行 为 层 主体统一建模平台 AUMP 2018/3/19 主 体 层 主 体 社 会 可视化主体开发环境 VAStudio 史忠植 高级人 智能 系 统 部 署 、 运 行 MAGE 运行环境 6
MAGE 主体系统结构 Agent kernel Sensor Function Module Interface Function Component Engine Plug-INs Plug-in Manager Communicator Negotiation Scheduling Resource Database 2018/3/19 Reasoning Co-Operation Task Database 史忠植 高级人 智能 others 7
情感智能主体结构 规划 传感器 信念 情感推理机 情感知识库 环境 理性推理机 效应器 意图 愿望 2018/3/19 史忠植 高级人 智能 8
主体 作周期 2018/3/19 史忠植 高级人 智能 9
主体统一建模平台AUMP l l AUMP:Agent Unified Modeling Platform l 功能:为需求分析和系统设计提供可视化的建模支持 l 类比: UML(统一建模语言)建模 具:Rational Rose AUML(主体统一建模语言)建模平台:AUMP建模结果例 2018/3/19 史忠植 高级人 智能 10
多主体系统设计过程 功能描述 一 行为描述 用例模型 活动模型 状态机模型 交互协议模型 二 反应规则模型 三 主体描述 主体类模型 本体描述 配置描述 四 2018/3/19 史忠植 高级人 智能 推理模型 规划模型 组织关系模型 本体模型 部署模型 11
UML中的表示法(抽象语法) l OMG发布的UML定义规范中,模型的抽象语法是通过类图表 示的各结构成分之间的关系给出的。 2018/3/19 史忠植 高级人 智能 UML中用例包的抽象语法 12
UML中的表示法(静态语义) l l 模型结构成分之间的约束(即静态语义)是通过OCL语言描述的规则 表示的。 例如:Actor只能与Use. Case、Subsystem和Class发生关联,并且关联 是二元的。此约束表示如下: self. associations -> for. All (a | a. connection -> size = 2 and a. all. Connections -> exists(r | r. type. ocl. Is. Kind. Of(Actor)) and a. all. Connections -> exists(r | r. type. ocl. Is. Kind. Of(Use. Case) or r. type. ocl. Is. Kind. Of(Subsystem) or r. type. ocl. Is. Kind. Of(Class) ) ) 2018/3/19 史忠植 高级人 智能 13
AUMP 主体 交互 本体 主体系统 结构 本体图 主体 系统 系统 类型图 配置图 结构图 AUML 2018/3/19 类图 分布图 史忠植 高级人 智能 结构图 协议图 角色图 协作图 14
AUML扩展UML 在AUML中,我们引入了四种面向主体的图来描述一个多主体系统: l l 2018/3/19 本体图:定义用来描述世界状态用到的实体以及它们之间的关系。 主体系统结构图:描述多主体系统的结构。 协议图:描述主体之间的交互协议。 角色图:描述主体在交互中扮演的角色。 史忠植 高级人 智能 15
AUMP的表示法(属性图) l l AUML的图形模型都是属性图。属性图是带属性的多重有向图。 属性图的形式化定义如下: Attribute. Graph=(V, E, s, d, ) s, d:E V :(E∪V) (A U) 其中,V是节点集合,E是边的集合,s, d是边到节点的函数,分 别表示边的起点和终点。 是边和节点到属性描述的函数,属性 描述是属性名称到属性值的函数,A表示属性名称集合,U表示 属性值集合。 2018/3/19 史忠植 高级人 智能 16
AUMP的表示法(Meta表示法) l 描述程序设计语言抽象语法的Meta表示法由两部分组成: l (1)构造的有限集合。 l (2)产生式的有限集合,每个产生式和一个构造对应。 l 聚集产生式:表示一个构造有固定数目的成分。 例Conditional = test: Boolean_expression; ∆ thenbranch: Command; elsebranch: Command; l 选择产生式:表示一个构造可以选择几种类型。 例Command = Skip | Assignment | Compound | Conditional | Loop ∆ l 表产生式:表示一个构造是另一个构造的实例序列。 例Compound ∆ Command+ = 2018/3/19 史忠植 高级人 智能 17
AUMP的表示法(结合属性图和Meta表示法) l l 基本思想:将模型、节点、边、属性都看作构造,模型是非终结 构造,节点、边和属性是终结构造,模型通过一定的产生式由节 点、边和属性构成。 扩充:扩充Meta表示法表示属性图中的函数关系。因为函数关 系是实体到另外实体的映射关系,而不是构造关系。所以,符号 = 仍然表示构造关系,新加入符号 表示函数关系。如:状态 ∆ ∆ 机模型中的转移描述为: Transition source states; target states; rule: ECARule ∆ 如果t是Transition的一个实例,那么用t source,t target, t. rule来表示t的起点、终点和转移规则。 2018/3/19 史忠植 高级人 智能 18
AUMP的表示法(状态机模型的抽象语法) 状态机模型由状态集合、目标集合、转移集合、驱动集合构成: State. Chart. Model∆= states: State. Set; goals: Goal. Set; transitions: Transition. Set; drives: Drive. Set; ∆ State. Set∆= {State}; Goal. Set = {Goal}; Transition. Set∆ {Transition}; Drive. Set ∆ {Drive}; = = 状态是起始状态、结束状态和一般状态之一: State∆ Initial | Final | Common. State; = 转移连接两个状态实例,并且有一条ECA规则描述: Transition source states; target states; rule: ECARule; ∆ ECA规则由事件、条件和动作构造: ECARule ∆ event: Event; condition: Condition; action: Action; = 驱动连接目标实例和状态实例: Drive goals; states; ∆ 2018/3/19 史忠植 高级人 智能 19
AUMP的表示法(静态语义的表示) l l l 通过前面的表示法,已经将模型的抽象语法表示成为了集合和关 系的形式,那么就可以用集合表示法中的各种约束表示法来描述 模型的静态语义。 例如,状态机模型中起始状态的合法性描述为:有且只有一个起 始状态;起始状态有离开的转移,没有进入转移;离开起始状态 的转移的ECA规则中事件和条件为空。 形式化描述如下: 2018/3/19 史忠植 高级人 智能 20
活动图动态语义简介 l l l 活动图为主体 作流建模,是描述主体行为最常用的方式。因此, 活动图动态语义研究是AUML动态语义研究的重要组成部分。 活动图描述的是 作流的过程维度,即活动在时间上的先后顺序, 而不考虑资源维度。 AUML在语法上对活动图并没有扩充,而是从语义上需要对UML定义 的活动图语义进行扩充。 2018/3/19 史忠植 高级人 智能 21
活动图的语法 活动图是一个有向图,包括节点和有向边。 activity wait compound activity fork/join decision/merge start end 活动图中的节点 l l 2018/3/19 Activity节点表示一个活动的执行。 Wait节点表示等待某个事件的出现。 史忠植 高级人 智能 22
主体统一建模平台AUMP l AUMP:Agent Unified Modeling Platform l l l 功能:为需求分析和系统设计提供可视化的建模支持 类比: UML(统一建模语言)建模 具:Rational Rose AUML(主体统一建模语言)建模平台:AUMP 在AUMP上建模 fork/join表示并发结构,decision/merge表示分支结构。 边实际上是一条ECA规则e[c]/a,其中e是事件表达式,c是限制条件, a是动作表达式。这三个部分每个都是可选的。具有e[c]/a标记的边具 有如下含义:如果系统处于源状态,事件e出现,并且限制条件c满 足,那么系统离开源状态,执行动作a,进入目标状态。 2018/3/19 史忠植 高级人 智能 23
活动图的语义(执行算法) Initialize; While (C ≠ final configuration) do – Repeat until I ≠ [ ]; // wait for input events – Retrieve the valuation of the local variables; – Take a super-step: Repeat 1. Compute a step; 2. Compute the internal events generated in the step; 3. Compute the next configuration; 4. Update C with the next configuration; 5. Empty the input I and fill it with the generated internal events; 6. Switch new relevant timers on and irrelevant timers off; 7. Update the bag of active edges by handling control nodes; Until I is empty and there are no enabled edges; End while ; 2018/3/19 史忠植 高级人 智能 24
执行示例 有了动态语义,活动图就可以被执行。例如: l Role 1 Activity 1 Terminates Role 2 Initial State Conditio n 1 Activity 2 : Goal 1 Conditio n 2 Output 1 Activity 4 Input 1 Initial State 2018/3/19 {Output 1} {Input 1} {Activity 3} State 1 State 2 State 3 State 4 State 1 State 2 State 3 Activity 1 Activity 4 Activity 2 Terminates {Activity 2, {Activity 1} {Activity 2} Activity 4} Run 3 Initial State 作流描述(活动图) Activity 3 Terminates Activity 1 Activity 2 Activity 4 Terminates {Activity 2, {Activity 1} {Activity 4} Run 2 Activity 3 Input 1 Terminates {Activity 1} Run 1 Activity 1 Output 1 Terminates State 1 State 2 State 3 运行 史忠植 高级人 智能 25
AUMP 界面 2018/3/19 史忠植 高级人 智能 26
AUMP对于UML 的支持、重用 目前很多仍采用Rational Rose等平台,进行面向对象的设计(O-O), 为了支持UML, 我们提供了对于UML 的支持。它具有通用性,适用于广泛 应用领域的大规模软件系统设计。因此,除了支持描述多主体系统的自主 性、主动性外,AUMP支持UML 1. x的用例图、状态图、活动图、协作图、 部署图等的绘制 2018/3/19 史忠植 高级人 智能 27
计算模型 交互关系: 请求/服务 主体 请求/服务 特点: 网络化 分布式 开放式 主体 请求/服务 软总线 主体服务 2018/3/19 史忠植 高级人 智能 28
面向主体的软件开发环境 大型软件系统CARBA 主体领域模式 App. Pattern 主体应用框架 App. Facilities 主体请求代理(ARB) 主体服务 Agent. Services 2018/3/19 史忠植 高级人 智能 29
可视化主体开发 具 VAStudio 系统结构 Agent Society Agents Agent Library Behaviours Behaviour Library Editor 2018/3/19 史忠植 高级人 智能 30
VAStudio系统界面 2018/3/19 史忠植 高级人 智能 31
行为库 • 数据包 package intsci. ace. data • 神经网络包 package intsci. ace. neural • 学习包 package intsci. ace. learning • 数据挖掘包 package intsci. ace. mining • 语言处理包 package intsci. ace. language 2018/3/19 史忠植 高级人 智能 32
行为库 • 图形处理包 package intsci. ace. graphics • 图象处理包 package intsci. ace. image • 搜索引擎包 package intsci. ace. search • 专家系统包 package intsci. ace. expert • 模型包 package intsci. ace. model • 决策支持包 package intsci. ace. decision 2018/3/19 史忠植 高级人 智能 33
可视化主体开发 具VAStudio l VAStudio:Visual Agent Studio l 功能:可视化的多主体系统设计环境 当前主体社会 中的主体、行 为 2018/3/19 史忠植 高级人 智能 34
可视化主体开发环境VAStudio l VAStudio:Visual Agent Studio l 功能:可视化的多主体系统设计环境 行为库中的已有行为, 包括数据访问、神经网 络算法、机器学习算法、 数据挖掘算法、画图接 口、推理引擎、数值计 算模型等 2018/3/19 史忠植 高级人 智能 35
用VAStudio编写一个主体例(1) 1. 加入行为库 中的现有行为 2018/3/19 史忠植 高级人 智能 36
用VAStudio编写一个主体例(2) 2. 填写行为参 数 2018/3/19 史忠植 高级人 智能 37
用VAStudio编写一个主体例(3) 3. 主体编辑完成, 代码已自动生成 2018/3/19 史忠植 高级人 智能 38
用VAStudio编写多主体应用系统(1) l 拍卖、竞拍系统 1. 编写拍卖发起主 体(即拍卖方): 采用有限状态自动 机方式,画出状态 图转换并指定通信 方式即可,代码将 自动生成 2018/3/19 史忠植 高级人 智能 39
用VAStudio编写多主体应用系统(2) 2. 编写两个拍卖响 应主体(即竞拍方) :同样采用有限状 态机方式,两个同 样的竞拍主体可以 直接复制得到 2018/3/19 史忠植 高级人 智能 40
用VAStudio编写多主体应用系统(3) 3. 拍卖系统开发完成, 编译通过 2018/3/19 史忠植 高级人 智能 41
用VAStudio编写多主体应用系统(4) 4. 在MAGE 运行环境中 运行系统 2018/3/19 史忠植 高级人 智能 42
用VAStudio编写多主体应用系统(5) 运行结果(1): 一个竞拍主 体的运行过 程 2018/3/19 史忠植 高级人 智能 43
用VAStudio编写多主体应用系统(6) 运行结果(2): 拍卖主体的 运行过程 2018/3/19 史忠植 高级人 智能 44
构建主体 l mage. core. behaviours. * l l mage. core. Agent l l l 在主体setup中添加行为 add. Behaviour 简单行为组合复杂行为 l l 2018/3/19 各种类型Behaviour 流程图 FSM 史忠植 高级人 智能 45
构建主体 l Behaviour l Simple. Behaviour l l l One. Shot. Behaviour Cyclic. Behaviour Composite. Behaviour Sequential. Behaviour l Parallel. Behaviour l FSMBehaviour l 2018/3/19 史忠植 高级人 智能 46
主体间通信结构 2018/3/19 史忠植 高级人 智能 47
主体通信语言(ACL) Ø ACL Ø 通信模块 Ø 并发对话机制 2018/3/19 史忠植 高级人 智能 48
主体通讯 2018/3/19 史忠植 高级人 智能 49
主体通讯 l mage. lang. acl. * l l l 通讯必须通过主体进行 l l l ACLMessage. Template 发送消息send 接收消息receive或blocking. Receive 行为中发送或者接受消息 l 2018/3/19 通过所属主体实例my. Agent 史忠植 高级人 智能 50
ACL 构造 2018/3/19 史忠植 高级人 智能 51
MAGE运行平台体系结构 软件 MAGE 目录服务 主体DF 主体管理 系统AMS 主体 主体 主体库 主体 功能构件 消息传输系统 MTS (Message Transport System) 其它主体平台 2018/3/19 史忠植 高级人 智能 52
Directory Facilitator l What is Directory Facilitator and why dose MAGE need DF. l What can be done through DF? l View l Register l Deregister l Modify l Search l Federal search 2018/3/19 史忠植 高级人 智能 53
GUI of DF 2018/3/19 史忠植 高级人 智能 54
MAGE GUI 2018/3/19 史忠植 高级人 智能 55
主体容器 container l Providing plenty of agent management function: create. Agent, suspend. Agent, resume. Agent, wait. Agent, wake. Agent change. Agent. Principal, change. Container. Principal, move. Agent, copy. Agent, kill. Agent, dispatch, ping, install. MTP, uninstall. MTP, enable. Sniffer, disable. Sniffer, enable. Debugger, disable. Debugger. l Providing toolkit for agent: handle. Start, handle. End, handle. Move, handle. Clone, handle. Send, handle. Posted, handle. Received, handle. Changed. Agent. State, handle. Changed. Agent. Principal l l 2018/3/19 Providing event handling Demonstrate l Start new agent l Install a new MTP l Uninstall a MTP l Kill l Container. Frame 史忠植 高级人 智能 56
MAGE 具 l Sniffer: Debugging tool, show communication between agents with graphic interface. l Dummy: Debugging tool, demonstrate conversation between agents conveniently. l l DF: Directory facilitator, a service providing yellow page service DLRM: A description logic based reasoning machine, providing reasoning service. l ALM: Managing AAP and AAF, it will be further developed to build application via AAP and AAF. 2018/3/19 史忠植 高级人 智能 57
Dummy. Agent 2018/3/19 史忠植 高级人 智能 58
Sniffer 2018/3/19 史忠植 高级人 智能 59
移动主体 l Mobility in MAGE platform l Supports user-defined content language and ontology. l Inter-operation between MAGE and other agent or non-agent software. l …… 2018/3/19 史忠植 高级人 智能 60
Introduction to l Mobile Agents What is Mobile Agents? l l Mobility: Agents that can travel in network Autonomy: migrate at times and to place of their own choosing l Compare to. . l l l 2018/3/19 Stationary agent Mobile code (Applets) Mobile object 史忠植 高级人 智能 61
Network Computing Paradigms Client-Server Paradigm Code-on. Demand Paradigm Server Client Know- how Download (Applet) Know Client how Know- how Server Mobile Agent Paradigm Agent Know- how Agent Network Host 2018/3/19 Know- how Host 史忠植 高级人 智能 62
Compare Client/Server & Mobile Agent Model l Limitation of Client/Server l l Advantage of Mobile Agents l l l 2018/3/19 Scaling -- Multiple servers Quality of network connection Reliability , latency , bandwidth Protocol Every node is a server Request Network connection No application-level protocol 史忠植 高级人 智能 63
Mobile Agents 优点 l l l l 2018/3/19 Reduce network load Overcome network latency Encapsulate protocols Execute asynchronously and autonomously Adapt dynamically Naturally heterogeneous Fault-tolerant 史忠植 高级人 智能 64
Mobile Agent Systems l Java-based: l l l Odyssey. General Magic Inc. Concordia. Mitsubishi’s Aglets. IBM Voyager. Object. Space Others: l l 2018/3/19 Tacoma: Univ. of Tromso and Cornell Univ. Agent TCL: Dartmouth College 史忠植 高级人 智能 65
Mobile Agent Model l Key concepts: l Agent -- the main entity in Mobile Agent System l Place -- the environment where agents operate 2018/3/19 史忠植 高级人 智能 66
Agent l State: l l Implementation: l l needed for recognize and locate traveling agents Principals l 2018/3/19 needed for agent communication Identifier l l needed for location-independent agent execution Interface l l needed for resume computation after traveling needed to determine legal and moral responsibility 史忠植 高级人 智能 67
Place l Engine l l Resources l l The network address of a given place Principals l 2018/3/19 Databases, processors, and other services provided by the host Location l l Workhorse and virtual machines for one or more places Those legally responsible for the opration of a place 史忠植 高级人 智能 68
The Agent Model Pyramid Host Engines Places Agents 2018/3/19 史忠植 高级人 智能 69
Place and Engine Host Agent Place Resources Engine 2018/3/19 史忠植 高级人 智能 70
Agent Behavior(1) Creation and Disposal l Creation: l l Disposal l l 2018/3/19 Instantiation and identifier assignment Initialization Autonomous execution Preparing for disposal Suspension of execution 史忠植 高级人 智能 71
Agent Behavior(2) Transfer – dispatching/receiving l Dispatch and Receive: Sender Receiver Suspend Execution Resume Execution Serialize Agent Deserialize Agent Encode Data Decode Data Transfer Data Receive Data Network 2018/3/19 史忠植 高级人 智能 72
Agent Behavior(2) Transfer – agent class transfer l Agent Class Transfer Server Class code Class at Server(code on demand) Origin Agent Server Agent Class code Class at origin 2018/3/19 Class at destination 史忠植 高级人 智能 73
移动主体系统—Telescript l Telescript平台是用Telescript语言来完成的,该语言是一种用 于开发大型分布式系统的面向对象的解释性语言,它有点类似于 Java和C++,可以被编译成字节码运行在宿主机的虚拟机上。 Telescript Agent之间的通信有两种方式:两个Agent运行在同 一个空间,互相调用对方的方法;在不同的空间之间建立连接, 两个Agent可以相互传递对象。尽管Telescript是一个比较成功 的移动Agent平台,它的安全性,容错性,执行效率都非常好, 但是由于Java的迅速流行,必然导致它的失败。 2018/3/19 史忠植 高级人 智能 74
移动主体系统—D’Agent(以前称为Agent Tcl)是美国Dartmouth大学研究的 移动Agent系统。它从支持单一语言Tcl发展到目前支持多种 语言:Tcl, Java, Scheme. D’Agent提供一个go指令(仅适用 于Tcl和Java),可以自动捕获和恢复移动Agent的完整状态, 即意味着Agent可以在任意点中断执行,然后移动到其他环 境中执行。D’Agent服务程序的实现采用的是多线程方式, 相比于多进程方式,虽然实现难度增加,但是进程间通信大 大降低,提高了系统的执行效率。D’Agent采用公钥系统来 管理Agent对资源的访问,但是可以授权访问某种资源,还 可以限制使用(如:CPU使用超时)。D’Agent的通信方式 可采用RPC, RMI等不同的方式,而且支持异步或同步的通信 模式。 2018/3/19 史忠植 高级人 智能 75
移动主体系统—Grasshoper是IKV++公司的产品。Grasshoper环境包括Agent 处(Agency)和域注册器,通过专有的ORB(Grasshoper ORB)互联。Agency(相当于MASIF中的Place)是Agent实际 的运行环境,数个Agency结合构成域,由域注册器(相当 于MASIF中的MAFFinder)提供名字服务。Grasshoper的通 信基础设计非常巧妙,可以通过CORBA来进行通信,还可 以通过Java RMI和Socket连接进行通信,整个通信结构实现 采用插件技术,具有很好的扩充性,并同时支持异步或同步 的通信,动态消息机制和多点发送。Grasshoper的安全服务 中采用X. 509证书实现身份认证,采用SSL来保证传输中的 安全性,通过用户定制的安全管理器来完成资源访问控制, 并实现了数字签名。 2018/3/19 史忠植 高级人 智能 76
移动主体系统—Voyager 的最大特点是以Voyager ORB作为核心,将 Agent和分布式计算紧密结合在一起的。但Voyager 只支持 纯Java的对象的通信,与CORBA和MASIF不兼容,它还支 持异步或同步的通信,动态消息机制和单向多点发送。在容 错服务方面,Voyager支持任意时间的显式地存储,其安全 机制主要是通过Voyager Security类进行编程设置。 2018/3/19 史忠植 高级人 智能 77
移动主体系统— Aglet l Aglet是由IBM公司用纯Java开发的移动Agent技 术,并提供着实用的平台—Aglet Workbench, 让人 们开发或执行移动Agent系统。Aglet是一个较为成 功和全面的系统,主要表现在:它提供了一个简单 而全面的移动Agent编程模型;它为Agent间提供 了动态和有效的通信机制;它还提供了一套详细且 易用的安全机制。 2018/3/19 史忠植 高级人 智能 78
Aglet的系统框架 2018/3/19 史忠植 高级人 智能 79
ATP的示意图 2018/3/19 史忠植 高级人 智能 80
Aglet对象模型 Aglet系统首先提供一个上下文环境(context) 来管理Aglet的基本行为:如创建(create)Aglet, 复制(clone)Aglet, 或分派(dispatch)Aglet到 远程机器,召回(retract)远端的Aglet, 或暂停( deactive), 唤醒(active)Aglet, 以及清除( dispose)Aglet等。见下图。 2018/3/19 史忠植 高级人 智能 81
Aglet 生命周期模型 l Fundamental operations: l l l 2018/3/19 Context A Creation Cloning Dispatching Retraction Activation and deactivation Disposal Clone 史忠植 高级人 智能 Aglet Dispose Context B Dispatch Aglet Retract Create Class File Deactivate Activate Disk storage 82
Aglet的生命周期模型 2018/3/19 史忠植 高级人 智能 83
Aglet之间的通信 l Aglet与Aglet之间的通信,则可用消息传递的方法 来传递消息对象。此外,基于安全上的考虑,Aglet 并非让外界直接存取其信息,而是透过一个代理( proxy)提供相应的接口与外界沟通(见图 4)。这 样做的好处,Aglet的所在位置会透明化,也就是 Aglet想要与远端的Aglet沟通时,只在本地主机上 的上下文环境中产生对应远端Aglet的代理,并与此 代理沟通即可,不必直接处理网络连接与通讯的问题 2018/3/19 史忠植 高级人 智能 84
Aglet基本通信模型 2018/3/19 史忠植 高级人 智能 85
Aglet Workbench l Aglet Workbench是一可视化环境,它被用来建立 使用移动Agent的网络应用。它提供的 具包括:移动 Agent Aglet框架,ATP, JDBC, Jo. Dax, Tazza, Tahiti, Fiji等。 2018/3/19 史忠植 高级人 智能 86
Aglet的程序包 l l l Com. ibm. aglet: Com. ibm. aglet. event: Com. ibm. aglet. system Com. ibm. aglet. util: Com. ibm. aglet. patterns: 2018/3/19 史忠植 高级人 智能 87
Aglet中的设计模板 l 模板就是从系统中抽象提取出来的一些具有共 性的东西,以便于重用。这一观念现已被许 多行业在设计复杂系统时有效地采用。模板 通常是用意图,动机,适合场合,参与者, 合作性和结论等多个成分来描述。对于Agent 系统,设计模板只要有三大类,每一大类中 又包括一些子类。 2018/3/19 史忠植 高级人 智能 88
巡行模板(travelling) 巡行是移动Agent的本性,巡行样式处理移动时各方面 的问题,如路由服务和服务质量。其子类有: 巡行路线(itinerary)模板:负责到达目的地的路由, 它维护着所有目的地的列表,定义了路由策略,并能处理 异常情况。 发送(forwarding)模板: 提供发送所有的或者特定 的Agent到远端机器的机制。 标签(ticket)模板:负责管理服务质量,权限等为 题。 2018/3/19 史忠植 高级人 智能 89
任务模板(task) l 它主要负责任务的分解,以及怎样把任务分派给不同 的Agent去执行。其子类有: l 主从(master-slave)模板:一种基本的样式,提 供允许主Agent把任务委派给从Agent,从Agent移动 到指定的目的地,完成指定的任务后返回结果的机制。 l 2018/3/19 规划(plan):用 作流的方式策划,来让多个任 务顺序或者并行地在多个Agent上执行。 史忠植 高级人 智能 90
交互模板(interaction) l l l 2018/3/19 它提供定位Agent的机制以及方便Agent间 交互的一些机制。其子类有: 会议(meeting)模板 寄存柜(locker)模板 信使(messenger)模板 服务设施(facilitator)模板 组织化的群体(organized group)模板 史忠植 高级人 智能 91
Aglet安全性 l Aglet系统中的安全主要涉及主机对Aglet的攻击, Aglet之间的攻击,Aglet对主机的攻击,以及来自 底层网络的攻击。Aglet Workbench目前主要支持前 面两种攻击的预防。以下简要分析Aglet系统的安全 对策。 2018/3/19 史忠植 高级人 智能 92
Aglet安全性 l 对用户和域的认证: l 数据完整性检查: l 另外还有类似jdk安全模型的授权。 2018/3/19 史忠植 高级人 智能 93
Aglet API : Aglet Class Create a customized aglet: import com. ibm. aglet. *; Public class My. First. Aglet extends Aglet{ //put aglet’s methods here } Overriden methods: public void on. Creation(Object init){ //do some initialization here… } public void run() { //do something here; }//main entry point //e. g. call dispatch(new URL(“atp: //some. host. com//context”)); 2018/3/19 史忠植 高级人 智能 94
Aglet API : Aglet Class l What happens when “dispatch”? • Object Serialization State Byte Code Host • Transfer Sending • Deserialization and re-create state Host 2018/3/19 史忠植 高级人 智能 Host Receiving State Byte Code Host 95
Aglet API : Aglet. Proxy l l Why Aglet. Proxy? l Acts as a shield object that protects an aglet from malicious aglets l Provide the aglet with location transparency How to get a proxy? l Get proxy from a newly created aglet: l l l Aglet. Context. create. Aglet(), Aglet. Proxy. clone() Get proxy from existing aglets l l l Aglet. get. Proxy() – get its own proxy Aglet. Context. get. Aglet. Proxies() – retrieve an enum. of proxies in a context Aglet. Context. get. Aglet. Proxy() – get an aglet proxy for a given aglet ID Message passing – passed as an argument Aglet. Context. set. Property – put proxy into context property and share it. 2018/3/19 史忠植 高级人 智能 96
Aglet API : Aglet. Context l l An aglet context is the equivalent of a place. An aglet uses Aglet. Context interface to: l l l Get information about its environment Send message to the environment, including other aglets currently active in that environment How it works: context=get. Aglet. Context(); context. create. Aglet(); context. retract. Aglet(remote. Context. URL, aglet. ID); 2018/3/19 史忠植 高级人 智能 97
Aglet API : Message Class l Aglets communicate by exchanging objects of the Message class. l “kind” field: distinguishes messages Message my. Name=new Message(“my name”, “Jacob”); Message yourname=new Message(“your name? ”); l Methods to send message(defined in Aglet. Proxy class): l Object send. Message(Message msg) l Future. Reply send. Future. Message(Message msg) l Void send. Oneway. Message(Message msg) 2018/3/19 史忠植 高级人 智能 98
Aglet API : Message Class handle. Message method: Public boolean handle. Message(Message msg){ if(msg. samekind(“my name”)){ String name=(String)msg. get. Arg(); return true; //Yes, I handled this message } else if(msg. samekind(“your name? ”)) { msg. send. Reply(“Yina”); //Return its name return true; //Yes, I handled this message } else return false; //No, I did not handle this message } 2018/3/19 史忠植 高级人 智能 99
Aglet API : Aglet. ID Class l Identity: l l l Globally unique Throughout lifetime Aglet. ID object l l l Use : l l 2018/3/19 Hides the implementation-specific representation Immutable Aglet. ID aid=proxy. get. Aglet. ID(); proxy=context. get. Aglet. Proxy(aid); 史忠植 高级人 智能 100
Anatomy of an Aglet l l l Creation & Disposal Clone Mobility – Dispatch and Retract l Persistence – Activate and Deactive 2018/3/19 史忠植 高级人 智能 101
Creation l public final Aglet. Context Aglet. get. Aglet. Context() //Example: get. Aglet. Context(). create. Aglet(get. Code. Base(), ”Some. Aglet”, null); l Methods that can be overridden protected Aglet() Public void Aglet. on. Creation(Object init) Public void Aglet. run() create. Aglet() on. Creation run() 2018/3/19 史忠植 高级人 智能 102
Disposal public final void Aglet. dispose(); public void Aglet. on. Disposing(); Dispose() on. Disposing() run() 2018/3/19 史忠植 高级人 智能 103
Event l Event Types: l l Delegation-Based Event Mode l l l 2018/3/19 Clone. Event Mobility. Event Persistency. Event Clone. Listener Clone. Adapter Mobility. Listener Mobility. Adapter Persistency. Listener Persistency. Adapter 史忠植 高级人 智能 104
Cloning Public final Object Aglet. clone() Public final void Aglet. add. Clone. Listener(Clone. Listener listener) Public final void Aglet. remove. Clone. Listener(Clone. Listener listener) public Clone. Adapter() public void Clone. Adapter. on. Cloning(Clone. Event event) public void Clone. Adapter. on. Cloned(Clone. Event event) 2018/3/19 史忠植 高级人 智能 105
l Cloning (continued) public class Cloning. Example extends Aglet{ boolean _the. Clone=false; public void on. Creation(Object o) { add. Clone. Listener(new Clone. Adapter(){ public void on. Cloning(Clone. Event e){ // print to the console } public void on. Cloned(Clone. Event e){ // print to the console } } ); run() } on. Cloning() on. Cloned() on. Clone() public void run() { if (! _the. Clone) { //the original runs here… try{ clone(); } catch (Exception e) { System. out. println(e. get. Message()); } else {//the clone runs here…} } original clone run() 2018/3/19 史忠植 高级人 智能 106
Mobility l -- Dispatching run( ) dispatch( ) on. Dispatching( ) on. Arrival( ) run( ) l Origin Destination -- Retracting retract. Aglet( ) on. Arrival( ) run( ) on. Reverting( ) 2018/3/19 Local Remote 史忠植 高级人 智能 107
Persistence l Aglet Context Persistence Activate Deactivate run( ) deactivate( ) on. Deactivating( ) on. Activation( ) run( ) 2018/3/19 Before After 史忠植 高级人 智能 108
Inside Aglets … l Architecture Overview Services and User-defined aglets Aglet API Aglet Runtime Layer • Core Framework • Management Components • Cache. Manager • Security. Manager • Persistance. Manager Communication API Communication Layer 2018/3/19 史忠植 高级人 智能 109
Communication Layer l l Communication API Agent Transfer Protocol(ATP) l l An ATP request consists of : a request line, header fields, content. Four standard request method: l l 2018/3/19 Dispatch Retract Fetch Message Host ATP HTTP Host HTTP Tunneling of ATP 史忠植 高级人 智能 110
Aglet Security l Principal l l l Permissions Protection Policy & Authority l l l 2018/3/19 Aglet Context & Server Network Domain Aglet owner Context owner Network Domain owner 史忠植 高级人 智能 111
MAGE 比较 Agent Platform Phase Agent. Builder Jack Zeus MAGE Completeness: ★★★ ★★★★★ Applicability: ★★★ ★★★★ Complexity: ★★★★★ ★★★★ Reusability ★★★ ★★★ ★★★★★ Completeness: ★★★ ★ ★★★★★ Applicability: ★★★ ★★★★ Complexity: ★★★★ ★ ★★ Reusability ★★ ★★★ ★★★★ Completeness: ★★★★★ Applicability: ★★★★★ Complexity: ★★★★ ★★★ Reusability ★★ ★★★★★★ ★★ ★★★ Completeness: ★★★ ★★★★★ Applicability: ★★★ ★★★★★ ★ Analysis Design Development Deployment 2018/3/19 Complexity: Reusability ★★★★ 史忠植 高级人 智能 112
应急联动与社会综合服务系统GEIS 支撑平台 呼叫管理中间件 外部系统 CTI IVR IFR… CAD MAP MIS 业务汇聚 RMS… 指挥决策系统 预案管理 情报管理 指挥控制… GPS 监控 大屏 调度 其它… 城市应急联动 和社会综合服务系统 数据库系统 RDBMS ODBMS 专业应用系统 公安 市政 医疗 防汛 其它… 主体网格智能平台 AGr. IP 有无线通信系统 联动中心终端设备 中心辅助系统 2018/3/19 史忠植 高级人 智能 113
GEIS系统结构 2018/3/19 史忠植 高级人 智能 114
成果应用亚洲宽带—异文化协作 合作单位: l l l l NTT Communication (日本) Kyoto京都大学(日本) Wakayama和歌山大学(日本) Osaka大阪大学(日本) JST日本科技公司(日本) 中国科学院计算技术研究所(中国) 北京大学(中国) 2018/3/19 史忠植 高级人 智能 115
成果应用(2) 亚洲宽带—异文化协作 MTS User Agent Chinese Academy of Science Agent Platform AMS Asynchronous Collaboration Tool 2018/3/19 Client DF 1 2 3 Kyoto U/Wakayama U Synchronous Collaboration Tool User Agent P 2 P Collaboration Platform Machine Morphological Translation Analysis Server 史忠植 高级人 智能 User RDF DB Management Synchronous Collaboration Tool Asynchronous Collaboration Tool Client 116
成果应用-配电网故障恢复决策系统 恢复策略 2018/3/19 史忠植 高级人 智能 117
成果应用-战争仿真 决策训练 决策分析 指挥训练 武器体系 方案分析 战略层 战役层 武器系统 战术层 合成训练 合成分析 技能训练 武器运用 武器 程 “方案” “武器” 2018/3/19 “人” 史忠植 高级人 智能 技术层 118 对象
成果应用--- 电子商务系统结构 Browser Java. Bean JSP Servlet Application Services Browser Interface Agent Search. Agent Platform Management Bargain. Agent RMA Agent Data. Base 2018/3/19 史忠植 DF Agent Strategies Models 高级人 智能 … Users Web Application … Info. Agent … MAGE Agent Platform AMS Agent Information Resources 119
成果应用--- 电子商务示范1 2018/3/19 史忠植 高级人 智能 120
成果应用--- 电子商务示范2 2018/3/19 史忠植 高级人 智能 121
6b1606ebb29530d9f3aeae9ca3d48686.ppt