CN1218223A - 执行移动对象的方法以及存储移动对象的记录介质 - Google Patents

执行移动对象的方法以及存储移动对象的记录介质 Download PDF

Info

Publication number
CN1218223A
CN1218223A CN98122521.7A CN98122521A CN1218223A CN 1218223 A CN1218223 A CN 1218223A CN 98122521 A CN98122521 A CN 98122521A CN 1218223 A CN1218223 A CN 1218223A
Authority
CN
China
Prior art keywords
place
carrying
concrete
carry out
mobile object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN98122521.7A
Other languages
English (en)
Other versions
CN1172239C (zh
Inventor
铃木俊宏
南和宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1218223A publication Critical patent/CN1218223A/zh
Application granted granted Critical
Publication of CN1172239C publication Critical patent/CN1172239C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

为移动到各地点上把定义着要在各地点上执行的作业的具体活动358放在载运智能体352上载运。另一方面,移动对象的实体350持有代理活动355,后者向载运智能体保持的具体活动发送执行指令。移动对象的实体350发送指令,以便执行移动到各地点的具体活动358。

Description

执行移动对象的方法以及 存储移动对象的记录介质
本发明涉及用于把移动智能体移动到网络上的远程服务器中并且在分布式计算机环境下的远程服务器中形成一条指令的移动智能体技术,本发明具体地涉及一种用于把移动智能体移动到远程服务器的系统。
已经存在用于把移动智能体移动到网络上的远程服务器中以在分布式计算机环境下形成一条指令的移动智能体技术(PUPA 7-182174(USP5,603,031),PUPA7-509799(国际申请号:PCT/OS94/07397,国际公布号:WO97/02219),Fumihiko Nishida、SusumuFujiwara等的“Latest Internet Technology,Nikkei Communication,separate volume”pp104-117,Nikkei BP Co.)。
这种移动智能体包括二种基本要素,即“移动智能体”和“地点(place)”。移动智能体可以在保持其内部状态下绕网络上存在的各地点移动。移动智能体可在一个地点上和其它的智能体(移动智能体或非移动智能体)接触以便接受必要的服务。“地点”是由智能体移动到的网络上已有服务器提供的地点,它支持智能体间的接触并消除硬件之间及平台之间的差异。
这样的移动智能体允许移动智能体执行迄今仍由人完成的工作,诸如根据雇员的时间或会议室的使用安排调整内部会议的安排以及获得分布在网络上的所需信息。
如由本申请的申请者于1997年4月10日归档的日本专利申请9-92091(本申请归档时其仍待公开)中所公开的那样,如果提供用以定义移动介质的所需行为模式的模板(仲裁模板)、并且控制移动智能体作为前驱(前一地点处的活动作业)和后继(后一地点处的活动作业)漫游到的各地点上发出请求的活动,存在着把移动介质的复杂行为分类成基本行为模式技术。
借助这种技术,移动智能体绕各地点漫游和持有所有定义着要在每个地点中执行的工作的活动,并且产生这样的问题,即,当移动时信息量很大从而网络上的负载过重并且在每个地点地占用过多的存储区。
此外,因为仅对预定的协同算法(方案)应用模型,不能实现灵活的行为,诸如在释放移动智能体后的移动期间进行重新装配或增添要被执行的作业。
本发明的一个目的是提供一种在移动期间使网络负载为最小的移动智能体。
本发明的另一个目的是提供一种使各地点处所占据的资源为最小的移动智能体。
本发明的又一个目的是提供一种允许在移动期间灵活地修改要被执行的作业的移动智能体。
本发明的再一个目的是缩短从开始释放移动智能体到回送结果为止所需的处理时间。
本发明中,在载运智能体上载运用于移动到各个地点上的定义着要在各地点上执行的作业的具体活动。另一方面,移动对象的实体持有一个代理活动,该代理活动向载运智能体上载运的具体活动发送一个要被执行的指令。移动对象实体绕各地点循环并向移动到各地点的具体活动发送一条要执行的指令。
在本发明的一种形式中,提供一种执行移动对象的方法,以在网络上分布的不同地点上执行不同的作业,该方法包括步骤:
(a)生成第一载运智能体,其持有定义着要在第一地点上执行的一项作业的第一具体活动;
(b)生成第二载运智能体,其持有定义着要在第二地点上执行的一项作业的第二具体活动;
(c)生成移动对象实体,其含有说明所述第一载运智能体的信息并含有说明所述第二载运智能体的第二信息,指示所述第一载运智能体在所述第一地点执行所述第一具体活动,并指示所述第二载运智能体在所述第二地点执行所述第二具体活动;
(d)把所述第一载运智能体移动到所述第一地点;
(e)把所述第二载运智能体移动到所述第二地点;
(f)把所述移动对象的实体移动到所述第一地点;
(g)通过使所述移动物象的实体说明所述第一载运智能体和指示所述第一具体活动执行作业,在所述第一地点执行所述第一具体活动的作业;
(h)把所述移动对象的实体移动到所述第二地点;以及
(i)通过使所述移动对象的实体说明所述第二载运智能体和指示所述第二具体活动执行作业,在所述第二地点执行所述第二具体活动的作业。
在本发明的另一种形式中,提供一种执行移动对象的方法,以在网络上分布的至少一个地点处执行一项作业,该方法包括步骤:
(a)生成一个载运智能体,其持有定义着要在所述地点执行的一项作业的具体活动;
(b)生成移动对象的实体,其含有说明所述载运智能体的信息并指示所述载运智能体在所述地点执行所述具体活动;
(c)把所述载运智能体移动到所述地点;
(d)把所述移动对象的实体移动到所述地点;以及
(e)通过使所述移动对象的实体说明所述载运智能体和指示所述具体活动执行一项作业,在所述地点执行所述具体活动的作业。
在本发明的另一种形式中,提供一种执行移动对象的方法,以在网络上分布的至少一个地点处执行一项作业,该方法包括步骤:
(a)把一个持有定义着要在所述地点执行的一项作业的具体活动的载运智能体移动到所述地点;
(b)把移动对象的实体移动到所述地点,移动对象含有说明所述载运智能体的信息和指示所述载运智能体在所述地点执行所述具体活动的一项作业;以及
(c)通过使所述移动对象的实体说明所述载运智能体和指示所述具体活动执行该作业,在所述地点执行所述具体活动的作业。
在本发明的另一种形式中,提供一种记录介质,用于存储至少一部分的移动对象,这些移动对象在网络上分布的不同地点上执行不同的作业,该记录介质包括:
(a)第一载运介质,其持有定义着要在第一地点上执行的一项作业的第一具体活动;
(b)第二载运介质,其持有定义着要在第二地点上执行的一项作业的第二具体活动;以及
(c)移动对象的实体,它们含有说明所述第一载运智能体的信息并含有说明所述第二载运智能体的第二信息,它们指示所述第一载运智能体在所述第一地点执行所述第一具体活动的作业,并且指示所述第二载运智能体在所述第二地点执行所述第二具体活动的作业。
在本发明的另一种形式中,提供一种存储移动对象的记录介质,用于在网络上所分布的各地点上执行一项作业,该记录介质包括:
(a)载运智能体,其持有定义着要在所述地点处执行的一项作业的具体活动;以及
(b)移动对象的实体,它们含有说明所述载运智能体的信息并指示所述载运智能体在所述地点执行所述具体活动的一项作业。
在本发明的一种形式中,提供一种记录介质,用于存储至少一部分的移动对象,这些移动对象在网络上分布的不同地点上执行不同的作业,该记录介质包括:
(a)第一代理活动,其含有说明所述第一载运智能体的信息,所述第一载运智能体持有定义着要在第一地点处执行的一项作业的第一具体活动,该第一代理活动还指示所述第一载运智能体在所述第一地点执行所述第一具体活动的作业;
(b)第二代理活动,其含有说明所述第二载运智能体的信息,所述第二载运智能体持有定义着要在第二地点处执行的一项作业的第二具体活动,该第二代理活动还指示所述第二载运智能体在所述第二地点执行所述第二具体活动的作业;以及
(c)一个次序表,其定义执行所述第一代理活动及所述第二代理(活动)的次序。
在本发明的另一种形式中,提供一种记录介质,用于存储响应移动对象的实体的指令执行作业的移动对象,移动对象的实体包含着抵达到网络上分布的某地点的代理活动,该记录介质包括:
(a)一个定义着要在所述地点上执行的一项作业的具体活动,
(b)一个提供给所述代理活动的具体活动表,用于为所述代理活动说明所述具体活动,以及
(c)一种用来接收一条指令消息以执行来自所述代理活动的作业的方法。
在本发明的另一种形式中,提供一种用于存储移动对象的记录介质,响应由包含着抵达到网络上分布的某地点的代理活动的移动对象的实体所提供的指令,这些移动对象执行作业,该记录介质包括:
(a)一个定义着要在所述地点上执行的一项作业的具体活动,以及
(b)一种用来接收一条指令消息以执行来自所述代理活动的作业的方法。
图1表示分布式网络环境,本发明生成的移动智能体在其中运行。
图2表示一种方式的例子,在该方式下本发明生成的移动智能体在分布式网络上移动。
图3是本发明的最佳实施方式中的移动智能体生成系统的硬件配置原理图。
图4是一个功能方块图,表示本发明的移动智能体生成系统中的处理部件的一种实施方式。
图5是从GUI方案定义数据生成部分观察时本发明的移动智能体生成系统中的处理部件的一种实施方式的功能方块图。
图6是一个功能方块图,表示在本发明的移动智能体生成系统生成的移动智能体的运行期间的处理部件的一种实施方式。
图7是本发明的最佳实施方式中生成的移动智能体的对象图。
图8是本发明的最佳实施方式中生成的移动智能体的对象图。
图9是本发明的最佳实施方式中生成的方案定义数据的对象图。
图10表示本发明的最佳实施方式中对象之间的消息流。
图11表示本发明的最佳实施方式中的移动智能体生成系统的用户接口。
图12表示本发明的最佳实施方式中的移动智能体生成系统的用户接口。
图13表示本发明的最佳实施方式中的移动智能体生成系统的用户接口。
图14表示本发明的最佳实施方式中的移动智能体生成系统的用户接口。
图15表示本发明的最佳实施方式中的移动智能体生成系统的用户接口。
图16表示本发明的最佳实施方式中的移动智能体生成系统的用户接口。
图17是一个流程图,表示本发明的最佳实施方式中的一个根据方案定义数据生成运行代码(方案)的过程。
图18是一个流程图,表示本发明的最佳实施方式中的一个根据方案定义数据生成运行代码(方案)的过程。
图19是一个流程图,表示本发明的最佳实施方式中的一个生成载运智能体并且传输到各地点的过程。
图20是一个流程图,表示本发明的最佳实施方式中的一个生成载运智能体并且传输到各地点的过程。
图21是一个流程图,表示本发明的最佳实施方式中的方案对象的执行进程。
图22是本发明的最佳实施方式中的仲裁模板的功能方块图。
图23是本发明的最佳实施方式中的一个地点的示意图。
图24是一个流程图,表示本发明的最佳实施方式中对仲裁模板的简要处理。
图25是一个示意图,表示一种状态,在该状态下本发明的最佳实施方式中的移动对象从起始地点移动到目的地点。
图26是一个示意图,表示一种状态,在该状态下本发明的最佳实施方式中的移动对象从起始地点移动到目的地点。
图27是一个流程图,表示本发明的最佳实施方式中处理起点处的迭代(Iteration)模板的过程。
图28是一个示意图,表示一种状态,在该状态下本发明的最佳实施方式中的移动对象从起始地点移动到目的地点。
图29是一个示意图,表示一种状态,在该状态下本发明的最佳实施方式中的移动对象从起始地点移动到目的地点。
图30是一个流程图,表示本发明的最佳实施方式中处理起点处的与分离(ANDSplit)模板的过程。
图31是一个流程图,表示本发明的最佳实施方式中决定当前节点的逻辑。
图32是一个流程图,表示本发明的最佳实施方式中处理目的地点的与连接(ANDJoin)模板的过程。
图33是一个流程图,表示本发明的最佳实施方式中处理目的地点的与连接(ANDJoin)模板的过程。
图34表示一个进程概要,在该进程中本发明的最佳实施方式里的移动对象接收结果(Result)。
图35是一个示意图,表示一种状态,在该状态下本发明的最佳实施方式中的移动对象从起始地点移动到目的地点。
图36是一个流程图,表示本发明的最佳实施方式中处理起点处的或分离(ORSplit)模板的过程。
图37是一个示意图,表示一种状态,在该状态下本发明的最佳实施方式中的移动对象从起始地点移动到目的地点。
图38是一个流程图,表示本发明的最佳实施方式中处理目的地点的或连接(ORJoin)模板的过程。参考数字的说明
100:节点系统
201:GUI方案节点库
203:GUI仲裁模板
205:GUI活动
207:GUI方案定义数据
209:GUI方案定义数据生成部分
211:运行代码生成部分
213:方案生成部分
215:方案ID生成部分
221:方案对象
222:代理活动
223:方案配置部分
224:方案分离部分
225:次序表
227:方案ID
229:网络拓朴
230:载运智能体
231:输入事件获取部分
232:目的地地点地址
233:方案对象操作部分
234:载运智能体ID
236:具体活动表
237:方案对象属性修改部分
243:方案显示部分
249:运行代码生成部分
251:仲裁智能体
253:移动智能体生命周期控制部分
255:方案执行部分
261:方案对象
263:方案执行部分
265:次序表
267:当前节点
269:具体活动表
270:移动对象的实体
271:仲裁模板
273:仲裁智能体控制部分
275:方案步骤执行部分
277:地址引用部分
280:载运智能体
281:代理活动
282:具体活动
283:代理活动执行部分
284:具体活动执行部分
285:消息子例程
286:消息子例程
291:作用智能体
293:消息子例程
295:消息处理部分
A.概述
现在参照各附图说明本发明的一种实施方式。图1表示一个执行根据本发明生成的移动对象的分布式网络环境150。各服务器112-117配备有地点102-107,在各个地点可对移动智能体125、135、141等提供服务。该分布式网络环境中的地点组称为一个群。
在客户系统101中存在一个用于生成移动智能体的移动智能体生成部分113。移动智能体生成部分113向仲裁智能体111发送一个生成的方案,通过执行该方案该仲裁智能体111可移动到指定的地点。
移动智能体125等可以和每个地点102-107处存在的另一个智能体(和移动智能体接触以便提供服务的智能体具体地称为作用智能体)接触,可以发送请求并接收该请求的结果。地点支持智能体之问的接触。此外,移动智能体125等可以在结果139、143、153、163中持着从作用智能体接收的请求结果,继续移动并且可以在移动期间向结果施加各种工作,例如结果的组合和分离。
在本发明中,通过仲裁模板181-187控制转动智能体的移动、分离和消除,用户可以通过组合处理方式所需的各种模板简单地定义包含着分离和合并的复杂工作,如图2中所示。B.硬件配置
图3表示本发明的最佳实施方式中的移动智能体生成系统的硬件配置原理图。移动智能体生成系统100包含中央处理机(CPU)1和存储器4。通过总线2,CPU1和存储器4与作为辅助存储器的硬盘机13等连接。经过软盘控制器19(或诸如IDE控制器25、SCSI控制器27之类的控制器),软盘机20(或诸如MO、CD-ROM等的介质驱动机13、26、28、29、30)和总线2连接。
软盘(或诸如MO、CD-ROM等的介质)被插入到软盘机20(或诸如MO、CD-ROM等的介质驱动机26、28、29)中。可以在软盘中和硬盘机13、30的记录介质中以及ROM14中记录一种计算机程序代码,该计算机程序代码向CPU发出指令以和操作系统合作实现本发明,通过装入到存储器4中可执行该程序代码。可压缩该计算机程序代码,或把该程序代码分段以便记录在多块介质上。
此外,移动智能体系统100可以是一个备有用户接口硬件的系统,用户接口硬件包括用于输入屏幕位置信息的指点器7(鼠标、操纵杆、跟踪球等),用于支持击键输入的键盘6,以及用于向用户呈现图象数据的显示器11、12。扬声器23经放大器22接收来自声频控制器21的声频信号,以作为语音输出。
作为本发明的移动智能体生成系统100的一种输入的GUI方案节点库(后面说明)被存储在硬盘30中并且经过SCSI接口27输入到数据库检索系统。还有可能和其它的计算机等通信,以通过串行端口15和调制解调器或者诸如令牌环的通信适配器,访问其它系统的数据库或者访问在诸如软盘24等的记录介质上存在的数据库。
因此,容易理解本发明可以用常规个人计算机(PC)、工作站、在家用电器例如电视机和传真机中提供的计算机以及它们的组合来实现。但是请注意,这些部件是按示范目的给出的,并不意味着所有这些部件都是本发明不可缺少的部件。具体地,由于本发明的目的是生成移动智能体,对于本发明的一种形式一些部件,其中包括串行端口15、通信适配卡18、声频控制器21、放大器22和扬声器23,不是不可缺少的。
对于操作系统,那些缺省下支持GUI多窗口环境的操作系统,例如Windows(微软公司的商标)、OS/2(IBM公司的商标)、AIX(IBM公司的商标)上XWINDOW系统(MIT的商标),是合乎需要的,但是本发明使用的操作系统不限定在任何特定的操作系统环境下。
尽管图3示出独立环境下的系统,本发明可在客户/服务器系统中实施,在客户/服务器系统中客户机是通过以太网、令牌环等和服务器连接的LAN,在服务器一侧配置下面描述的方案分离部分等而其余功能配置在客户侧。因此,在设计时要决定把什么功能放在服务器一侧以及把什么功能放在客户机一侧。多个计算机的组合的各种改进、这些计算机的功能的分配以及这些方面的实施方式属于本发明的原理之内。C.系统配置
现参照图4和图5的方块图,说明本发明的最佳实施方式中的移动智能体生成系统的系统配置。
图4是一个功能方块图,表示移动智能体生成系统210中处理部件的一种实施方式。运行代码生成部分241包括方案生成部分213和方案ID生成部分215。方案ID生成部分215对方案分配一个在网络上是唯一的方案ID。在本发明的最佳实施方式中,方案ID生成部分215通过把互联网的URL、端口号、智能体ID(被分配给移动智能体生成部分)以及序列号(每当生成一个方案ID时移动智能体生成部分分配该号)组合起来生成方案ID。
方案生成部分213生成仲裁智能体和基于GUI方案定义数据209的方案。所生成的方案包括方案配置部分223和次序表225,方案配置部分223控制要运行的仲裁模板的信息及活动等,次序表225定义仲裁模板及活动的次序。方案配置部分223具有与方案节点对象(一个仲裁模板和一项活动的集合名称)有关的信息并产生网络拓朴231。
GUI方案定义数据生成部分207利用GUI方案节点库201中的信息,生成GUI方案定义数据209。
方案分离部分为各个地点生成载运智能体230,该智能体移动到地点以便形成由运行代码生成部分211生成的一个方案。此外,方案分离部分用代理活动222代替和次序表关联的活动205(称为具体活动以和下面说明的代理活动区分)。
代理活动222包含使具体活动205被执行的消息但不包含用于执行本发明的最佳实施方式中的实体对象的代码。载运智能体230被传送到各个目的地地点,等待移动对象221的实体的到达(与此相反,存在着移动对象221的实体等待载运智能体230到达的情况)并且响应移动对象的实体提供的指令执行具体活动205。
图5是一种从GUI方案定义数据生成部分207观察时,移动智能体生成部分210中的处理部件的实施方式的功能方块图。
向GUI方案定义数据生成部分207提供输入信息的输入事件获取部分231获取诸如来自用户的击键输入或鼠标器点击的事件,并把该事件变换成一条消息,该消息可由GUI方案定义数据生成部分207的方案对象操作部分233解释以发送给部分233。
方案对象操作部分231生成例如GUI活动或GUI模板的对象,并且根据事件的种类设定对象的属性。
方案对象属性修改部分237提供一个用来修改特定对象的属性的对话窗口。经过方案对象操作部分231把修改后的信息反映到GUI方案定义数据239。
GUI方案定义数据保持部分243保持构成方案的活动、模板的逻辑信息以及图形图象信息。
方案显示部分245根据GUI方案定义数据243的图形图象信息在屏幕上显示方案的结构。
运行代码生成部分241生成运行代码249(方案),用于根据GUI方案定义数据的逻辑信息生成已定义的方案。
图6是在运行由移动智能体生成部分210生成的移动智能体270、280时的一种处理部件的实施方式的功能方块图。移动对象的实体270包括一个仲裁智能体251、一个方案对象261、一个仲裁模板271以及一个代理活动281。仲裁智能体251包括移动智能体生命周期控制部分253和方案执行部分255。移动智能体生命周期控制部分253对移动对象的实体270执行移动、复制、擦除等。方案执行部分255识别到达新地点并且指示方案对象261执行方案。
另一方面,方案对象261包括方案执行控制部分263、当前节点267和次序表265。一旦从仲裁智能体的方案执行部分接收到执行某方案的指令,方案执行控制部分263就参照当前节点267和次序表265确定当前要执行的方案节点对象271、281,并且请求方案节点对象271、281执行。
当前节点267相当于后面要说明的方案节点迭代器并且监视当前在执行哪一个方案节点对象。次序表265是一个规定将要执行的方案节点对象271、281的表。当不出现分支等时,方案对象271、281请求方案节点按次序表265的次序执行。
仲裁模板271包括仲裁智能体控制部分273、方案步骤执行部分275和地址引用部分277。仲裁智能体控制部分273请求仲裁智能体251的移动智能体生命周期控制部分253移动、复制和擦除移动对象的实体270。根据仲裁模板的种类以及在前一地点或下一地点中执行的控制指令,各不相同地定义方案步骤执行部分275。地址引用部分277的作用是从代理活动281获取地址并向仲裁智能体控制部分273通知目的地地址。
代理活动281包括代理活动执行部分283和消息子例程285。代理活动执行部分283通过消息子例程285与载运智能体交互,以判定该载运智能体是否是具有对应于该代理活动的具体活动282的载运智能体280并且提示对应的具体活动282执行一项作业。具体活动表269是一个规定被执行的具体活动282的表。
具体活动282包括活动执行部分284和消息子例程286。活动执行部分284具有存储要在移动智能体所环绕的各地点上执行的指令以及存储从每个地点接收到的结果的功能。消息子例程286具有与作用智能体291交换消息的功能。
作用智能体291是在地点上存在的另一种智能体,并且具有对具体活动282的请求提供服务的功能。作用智能体291也具有一个消息子例程293以便和活动交换消息,并且具有一个消息处理部分295,用于确定请求的内容和提供服务。
虽然说明了图4至图6的各个功能块,这些功能块只是逻辑功能块,并不意味着每个框是用集成的硬件或软件实现的。它们可以用统一的或共亨的硬件或者软件实现。此外,并不意味着图4至图6中所示的功能块是本发明必不可少的部件。例如,由于当前节点控制部分267可以直接控制当前节点并且可以在与连接“ANDJoin”处理中规定获取其它结果的仲裁智能体,次序表265不是必不可少的部件。另外可以通过把运行代码生成部分放置在对其发送GUI方案定义数据的另一个计算机上,来生成运行代码。D.对象配置D-1.移动智能体的对象配置
图7和图8是本发明的移动智能体270、280的对象图。类仲裁智能体303、类方案305、类方案ID以及类方案迭代器307各具有一种方法,而类方案节点311、类活动313、仲裁模板315以及模板321至326(例如链)各具有数据和一种方法。
在图7和图8中,三角形302、314、316表示继承来自父类的数据和方法,圆点312表示存在多个子类。方案节点是一种抽象的类并且通过公用接口定义仲裁模板和活动二种类。从而在生成以及执行方案期间,方案可以类似地处理这二种类。
移动智能体301是当前在分布式计算机环境上的每个地点中设置的一个函数(地点类),用户可以通过向该类发出一个标识创建移动智能体的API,方便地创造一个移动智能体(仲裁智能体)。前面在现有技术的说明中所描述的Java库和Telescript的移动对象当前都支持这种函数。
在本发明的最佳实施方式中,提供下述方法以便用代理活动替换具体活动并生成载运智能体。[表1]
    SetProxyActivity(index,agentid){

      //交换活动

     conAct=-plan.elementAt(index);

     address=conAct.getdestination 0;

     proxyAct=new ProxyActivity(sddress,agentid);

     -plan.setPlanNode(proxyAct,index);

    //生成载运智能体

    carrierAgent=context.getAglet(agentid)
    carrierAgent.sendMessage(″store″,conAct,index);

    }
方案节点类具有一个前驱表和一个后继表并且控制多个方案节点之间的关系。方案节点类提供方法“setPredecessor(设置前驱)”、“setSuccessor(设置后继),并且定义节点之间的关系。方案节点的具体的类可以辨别各种方法之间的关系。
仲裁模板具有区分起点(移动前的地点)和目的地(移动后的地点)的状态信息以便连接在不同地点上执行的活动。在本发明的最佳实施方式中,仲裁模板只能连接活动对象。仲裁模板备有多个其中包括着“Chain”(链)的模板,并且允许设置一种基本的使多个分离的仲裁智能体在规定的独立作业上工作的机制。
活动持有在其上执行作业的地点的地址信息。活动可以通过响应来自外部的诸如“execute Activity(执行活动)”的指令指示“abstractActivity”(抽象活动),执行一个内部持有的作业。代理活动具有载运智能体ID的信息并指示具体活动执行作业,该载运智能体ID规定持有对应的具体活动的一个载运智能体。[表2]
     executeActivity{

         index=-plan.indexof(this)

        agent=context.getAglet(id)
				
				<dp n="d15"/>
        table=agent.sendMessage(″gettable″)

        conAct=table.elementAt(index);

        object result=conAct.executeActivity 0;

     }
D-2.GUI方案定义数据的对象配置
图9是本发明的最佳实施方式中的GUI方案定义数据239的对象图。类GUI活动403、类GUI仲裁模板413、类GUI地点405以及类链接407各具有数据和一个方法。
在本图中,三角形302、314、316表示从父类继承数据及方法,黑圈312表示存在多个子类。
GUI活动403是一种按GUI编码程序上的一项活动显示的对象,它具有后继表和前驱表的数据以便规定一个链接着在显示器上显示时的坐标值(显示起始位置:X1,Y1以及显示结束位置:X2,Y2)的对象。
类似地,GUI仲裁模板409是一种按GUI编码程序上的一个仲裁模板显示的对象,它具有后继表和前驱表的数据以便规定一个链接着在显示器上显示时的坐标值(显示起始位置:X1,Y1以及显示结束位置:X2,Y2)的对象。它还具有用来说明仲裁模板类型的模板类型数据。
链接对象407是一种用于显示GUI活动403和GUI仲裁模板409之间的链接关系的对象,它具有后继表和前驱表的数据以便规定一个链接着在显示器上显示时的坐标值(显示起始位置:X1,Y1以及显示结束位置:X2,Y2)的对象。
GDI地点405是一种用于显示在其上执行每个活动的地点的对象,它具有所包含的要被显示的GUI活动的坐标值信息(各GUI活动的显示起始位置:X1,Y1以及显示结束位置:X2,Y2)的数据并具有该地点的地址信息。D-3.各种移动智能体的消息流
图10表示本发明最佳实施方式中所有类的主要消息流。仲裁智能体351向方案353发出“nextStep”(指示执行下一步骤的指令),方案353对此响应向方案节点对象(仲裁模板357或代理活动355)发出“nextStep”指令。根据其类型或状态,仲裁模板357向代理活动355发送“getARL”(发送地址的指令)和“isMarked”(标记)。仲裁模板357还向仲裁智能体351发出“clone”(请求准备克隆)、“dispatch”(请求移动)和“dispose”(请求消除)。
代理活动355向载运智能体352发出“getTable”以得到具体活动表354,它还利用所持有的作为关键字的一个索引(次序表的索引)从具体活动表354得到相应的具体活动358。然后代理活动355向具体活动358发出“executeActivity”(请求执行活动)以使具体活动358执行用户规定的请求。
具体活动358对上述作出响应向作用智能体359发出“sendMessage”(请求发送消息)以便执行用户规定的请求。E.准备方案定义数据
本发明提供一种使用户可简单地生成移动智能体的开发支持工具。图11至图16表示本发明的最佳实施方式中的该开发支持工具的用户接口。通过利用该开发支持工具,用户可以简单地生成上述方案定义部分的编码。
首先,当用户从下拉菜单中选择“New”(新方案)371并用指点器点击时,方案对象操作部分233显示一个用来输入方案名的对话框375。从而用户可以为该方案考虑一个名字,该名字不同于方案ID并且对用户来讲是熟悉的。用户接着向方案名的输入条目376输入方案名并且按下“OK”按钮以便打开定义方案的窗口380。当选择下拉菜单中的“Save”(保存)372或“End”(结束)374时,可显示输入方案名的对话框375。
接着用户利用指点器拖动活动框420的一个活动图标(ACT1)并放在用来定义方案的窗口380中。从而基于GUI方案节点库201中的原型数据生成GUI活动403以及GUI地点405的各个对象。调用所生成的GUI活动403的“Display”(显示)方法并在方案定义窗口380中显示GUI活动如图12中所示。在GUI活动403的前驱表以及后继表中设置“O”,以表示“不存在被链接的对象”。
如图9中所示,GUI活动431具有“Select”(选择)方法和“Move”(移动)方法,从而它能执行对应于用鼠标器点击“Select”而造成的处理并且能通过拖动鼠标修改显示位置。
用户接着利用指点器拖动模板框390中的“与分离(ANDSplit)”图标392并放在方案定义窗口380中。从而基于GUI方案节点库201的原型生成如图9所示的GUI仲裁模板410以及链接407的各个对象(生成2个链接对象)。调用所生成的GUI仲裁模板413的显示“Display”方法以及链接对象407的显示“Display”方法,以如图13中所示在方案定义窗口380中显示GUI仲裁模板433及链接对象432、434。
此刻,在链接对象432的后继表中设置GUI仲裁模板433的信息并在链接对象434的前驱表中设置GUI仲裁模板433的信息。另一方面,在仲裁模板433的前驱表中和后继表中分别设置规定链接对象432、434的信息。各链接对象的显示位置设置成根据GUI仲裁模板433的位置信息计算出的数值。
如图9中所示,GUI仲裁模板433还具有选择“Select”方法和“Move”方法,从而它能执行对应于用鼠标器点击“Select”而造成的处理并且能通过拖动鼠标修改显示位置。当移动GUI仲裁模板433时,根据移动量,更新由GUI仲裁模板433的前驱表和后继表所说明的对象的显示位置并且更新和这些对象链接着的一系列对象的显示位置,以便利用Display方法重画屏幕。
此后,当如图14中所示用户拖放链接对象432并且放在GUI活动431的上面时,方案对象操作部分233通过对GUI活动的显示位置和现在拖动的鼠标器的位置进行比较,规定被链接的GUI活动,并在GUI活动431的后继表中设置规定链接对象432的信息,以及在链接对象432的前驱表中设置规定GUI活动431的信息。方案对象操作部分233还把链接对象432的显示位置更新成一个相符于GUI活动431的显示位置的值,以便利用显示方法重画屏幕。
以这种方式,用户可以根据移动智能体所完成的作业的性质及过程,排列一个所需执行次序的活动,如图15中所示。此后,当用户通过保持按下控制键并点击位置图标399选择希望在相同的地点上执行的一个所希望的活动时,显示出包含着被选活动的矩形501至503并且显示出地点属性设置窗口510。
在本发明的最佳实施方式中,通过沿X坐标轴对所选活的中心坐标进行排序,并计算其中心位于相邻活动的中心坐标的线段上的给定宽度的矩形,得到矩形501至503。顺便地说,可以用以上矩形代替其焦点位于活动的中心坐标上的椭圆。
当在本发明的最佳实施方式中的同一地点上规定多于2个的活动时,去掉各矩形的重迭部分以显示出单个多边形。此外,对代表GUI各地点的矩形或多边形赋予不同的彩色属性,从而操作者可以区分不同的地点。
虽然可以在按下键盘的控制键同时点击地点图标399来选择希望在同一地点上执行的活动,这也可以通过定点并拖动鼠标器以包围希望在同一地点上执行的活动来完成选择,也可以在选择后利用点击取消所做的选择。
当用户设置地点名或地点地址时,它们被设置成所选GUI活动403的GUI地点405的地址和地址名(图9)。F.生成方案
图17是一个流程图,表示根据方案定义数据生成运行代码(方案)的过程。首先,生成方案对象(框603)。方案生成通常包括生成方案ID的步骤以及建立一个与位于低于该方案对象的位置中一个对象的链接的步骤。
在本发明的最佳实施方式中,对方案对象分配一个在全局网络中为唯一的方案ID。在本发明的最佳实施方式中,方案ID生成部分215(图4)通过把互联网的URL、端口号、智能体ID(分配给移动智能体生成部分)以及序列号(移动智能体生成部分每次生成方案ID时分配)组合起来生成方案ID。
在表3中示出方案ID生成部分的一个编码示例。在本发明的最佳实施方式中,向用户提供作为一个程序部分的方案ID生成部分的各指令。[表3]
public class Planner extends StationaryAgent{

       private Plan_plan;

       private PlannerFramef;

       private URL_home;

       private AgletIdentifier-id;

       private int_planlndex=0:

         public void onCreation(Object args){

               //生成一个方案选择窗口

               f=new PlannerFrame(″JMT-PlannerAgent″,this);

               f.show();

               try{

               //获取存在移动智能体生成部分的URL

              _home=getAgletContext 0.getHostingURL 0;

              //获取移动智能体生成部分的ID

               _id=getldentifier();

             }catch(InvalidAgletException e){

                Utility.print(this,e.getMessage());

            }
}
在本发明的最佳实施方式中,用来生成方案对象的“NewOperator”是以一个Java函数的形式提供的,通过把方案ID作为一个参数执行该类生成新的方案对象。
如前面所述,仲裁智能体是通过利用当前在各地点处提供的函数(地点类)产生的.在本发明的最佳实施方式中,通过把指示生成移动智能体的API施加到Java库的移动智能体的Aglets类生成仲裁智能体。
接着,生成一个和顶层GUI活动对应的活动(框605)。具体地,根据该GUI活动的活动类型获得运行时期类名(本情况下为A1),然后把类名“A1”作为关键字生成其实例。把生成的活动增添到方案对象上(框607)。
产生一个FIFO(先进先出)队列以存储处理中的GUI对象(GUI活动、GUI仲裁模板或链接对象)(框609)并把顶层GUI对象(GUI活动)放在该队列中(块611)。通过查看前驱表是否为空等判定顶层GUI对象。
然后从生成的队列中取出一个元素(GUI对象)以执行一个子程序(框613),该子程序增添后继表里存在的一个活动或一个仲裁模板,如图18中所示。
图18是一个表示该子程序的处理过程的流程图。首先,把后继表的元素数量和值i进行比较以判定是否要对后继表中的所有元素执行这种处理(框665)。
当后继表的元素数量>i时,取出后继表的第i个GUI对象(框657)。
接着判定该取出的GUI对象是否已经存在在该队列中(框658),仅当不存在时才把该元素放入到在图17的框609中生成的队列中(框609)。
然后判定该取出的元素(GUI对象)是否是GUI活动或GUI仲裁模板(块660)。若取出的元素是GUI活动或是GUI仲裁模板,则生成对应的活动或仲裁模板(框661)。此刻,若它是一个GUI活动,则获取对应GUI地点的地址信息。
接着从当前GUI对象的前驱表的链接对象获取前驱索引,以便设置它自己的前驱表。在除顶层之外的GUI活动或GUI仲裁模板里,先驱表必定包含链接对象的信息。由于在顶层GUI活动的先驱表中设置空信息,在其自己的前驱表中也设置空。
然后,把生成的元素(活动或仲裁模板)增添到方案,并且在为该当前GUI对象的后继的链接对象中设置该方案中的次序表的索引。该链接对象把该值保持为前驱索引,该前驱索引被用作为用来产生该活动或该仲裁模板的前驱表的信息。
若所取出的元素不是GUI活动或不是GUI仲裁模板,则不生成对应的活动或仲裁模板而处理下一个元素。
在和后继表的元素数量相等的次数下重复框657至665的处理后,流程返回到图17以判定在该队列中是否存在元素。若存在元素,则取出元素(框612)并重新执行图18所示的子程序以增添后继表中存在的活动或仲裁模板。G.生成载运智能体、用代理智能体替换以及向各地点传输载运智能体
在生成一个方案后,启动如图4中所示的方案分离部分224,以便为每个目的地地点生成载运智能体230并且用代理活动222替换与次序表相关的具体活动205。并且把生成的载运智能体传送到各个目的地地点。
图19和图20是流程图,表示方案分离部分224以及载运智能体230进行的处理过程,以便生成载运智能体、用代理智能体替换并把载运智能体传输到各地点。
当启动该过程时(框731),首先初始化“ⅰ”(框732)并从该方案中取出第ⅰ个元素(框(733)。判定所取出的元素是否是一个活动(具体活动)(框734)。若取出的元素不是一个活动,则取下一个元素(块735、733)。
虽然在本发明的最佳实施方式中用代理活动替换所有的具体活动并且在一个载运智能体上载运各具体活动以传送到各地点上,通过修改框734来判定元素是否是特定的具体活动可以实现用一个代理活动替代部分具体活动。
若取出的元素是一个活动,则生成一个代理活动(框736)并设置从该具体活动中取出的目的地地点的地址(框737)。然后查阅一个字表以判定是否存在一个具有相同目的地地点地址的载运智能体。
当不存在一个具有相同目的地地点地址的载运智能体时,生成一个载运该具体活动的载运智能体(框739)并且在该生成的载运智能体中设置一个智能体ID以及该目的地地点地址(框740)。顺便地说,载运智能体ID是根据方案ID和对应于该地点的一个序列号生成的。
然后,在工作表中设置该载运智能体的ID以及该目的地地点地址。并且,在该载运智能体的具体活动表的第ⅰ个位置中设置第ⅰ个具体活动(框742)。在该载运智能体中可以设置一个时间炸弹并且在预定的时刻熄灭。
当存在过去曾用来保持相同的具体活动并被发送到相同的地点上的某载运智能体(这可以通过在给定的时间间隔内保持一个工作表得到确定)时,可以用索引信息替换智能体ID,这样可在不必生成载运智能体下命令规定并执行一个和过去曾发送到某代理智能体的具体活动相同的某载运智能体的具体活动。
当存在具有相同目的地地点地址的某载运智能体时,设置该载运智能体的具体活动表的第ⅰ项(框742)。
另一方面,在代理活动中设置该载运智能体的ID,而该代理活动又被设置(替换)到次序表的第ⅰ项中。通过对所有方案的各元素执行从框733到框744的处理,完成了对应于每个目的地地点的载运智能体的生成并且完成用代理智能体替换移动对象的实体的具体活动(框745,746)。
然后,把生成的各载运智能体发送到对应的目的地地点(框748)。
上面所说明的示例是一种实施方式,其一旦生成持有具体活动的方案就用代理活动替换具体活动,这种实施方式是对另一种实施方式的改进,后一种实施方式中在直接持有具体活动下移动对象的实体被移动。然而,可以在生成移动对象的实体时生成直接持有代理活动的方案。本发明的思想也包括着这样的实施方式。H.执行方案H-1.包括着链模板的拓扑情况
现在参照图21至25说明带有“Chain”(链)模板拓扑情况下的移动对象的操作。图21是表示方案执行过程的流程图,而图22是仲裁模板的功能方块图。图25是一个状态示意图,在该状态下移动对象从起点位置移动到目的地地点。首先参照图21。当生成仲裁智能体31并且分配方案353时(框843),该仲裁智能体自动地执行该方案(框845)。
响应从仲裁智能体351发送给方案对象353的“Nextstep”(下个步骤)指令,方案对象353首先取出当前方案节点(块847)。在本发明的最佳实施方式中,响应方案对象353的询问,保存哪一步方案节点中的方案迭代对象是当前对象的控制,并提供哪一步骤是当前步骤的信息(当前)。
当方案迭代器对象352响应当前的查询回送“1”(第一步)时,该方案对象353取出“act1”并接着要求“act1”具有为在其中执行该请求而定义的活动,该请求由该活动控制(框849)。
该活动判定其中所持有的智能体类名(智能体名)是否存在于该相同的地点。如图23中所示,仲裁智能体350一旦到达地点360便通知地点360它的智能体名,地点360利用智能体表369控制智能体名。因为地点具有回送“Agent List”(智能体表)的函数,地点360处存在的智能体可以通过对地点360发出“get AgentList”(得到智能体表)指令提出查询来寻找相同地点处存在的某智能体。
由于“act1”已被一个代理活动替换,它判定是否存在一个和其持有的载运智能体ID相对应的智能体,若不存在该智能体,则等待载运智能体的抵达(进入休眠方式)。
当存在对应的智能体时,“act1”指示该载运智能体执行具体活动表的对应索引(和该代理活动相关的次序表号)的活动。
对此响应,具体活动根据内部持有的消息的内容搜索一个作用智能体。该具体活动把其中持有的一个消息(请求)发送到所找出的智能体(作用智能体)361。该作用智能体361响应该请求又对提出请求的具体活动358发送一个回送对象。该具体活动358再向提出请求的代理活动发送所接收的对象执行指令以作为其回送。该代理活动把所接收的对象存储到“Result”的记录525中。
该代理活动通知方案对象353已完成所请求的作业,并且方案对象353标记“act1”以表明该过程已完成(框855)。接着方案对象353要求方案迭代器352向前移动步骤(框859),从而方案迭代器352向方案对象353提供当前信息。
因为当前值为“1”(第二步),该方案对象取出“Chain”(链)模板(框845、847)对象并要求“Chain”执行(块849)。
“Chain”的仲裁控制管理器603查询当前状态的状态控制部分601。由于缺省时状态控制部分601处于起点状态,它通知仲裁控制管理器603它是起点。一旦接收到来自状态控制部分601的状态信息,仲裁控制管理器603就要求状态控制部分切换状态。状态控制部分601对此作出响应把状态从起点切换到目的地。
图24中示出模板完成的状态切换以及起点处或目的地处的处理流程。该流程图表示对于多种模板为相同的操作,但是框825中的起点处以及框831中的目的地处的处理内容是随不同类型的模板变化的。
仲裁控制管理器603要求起点仲裁模块605执行。在起点仲裁模块605以及目的地仲裁模块607中控制一组由模板在各地点上执行的指令。
起点仲裁模块605通过查询仲裁智能体引用模块599获得当前仲裁智能体351所存在的地点的地址。
起点仲裁模块605还要求后继表609发送在其中登记的活动的地址。后继表609从登记的活动(“act2”)得到地址并把该地址发送到起点仲裁模块605。
起点仲裁模块605把该活动的地址和当前仲裁模板存在着的地址进行比较,若地址不匹配则把该仲裁智能体移动到该活动的起址。具体地,起点仲裁模块605发出一条命令经过仲裁智能体引用模块进行移动的指令。若地址匹配,该处理结束。
方案对象再次要求方案对象在目的地处执行步骤1。类似地,它取出当前方案节点。该方案对象要求“Chain”执行下一步骤。“Chain”确认状态信息并执行目的地的处理。把状态信息恢复成起点状态。
当方案确认完成链“Chain”的目的地处理时,它取出下一个当前方案节点(“act2”)并要求执行该活动。“act2”获取“act1”内部保存的结果。
在本发明的最佳实施中,目的地模块607查阅前驱表591,并且发出要求“Chain”发送处理结果的“getResult”(取结果)的指令。对此响应,“Chain”搜索它保持的结果“Result”。但是,由于“Result”并不持有“Result”,它转向在前驱表591中登记的对象(“act1”)以获取“Result”并且进一步查阅前驱表591把结果“Resalt”回送给“act2”。当在前驱表591中不存在登记的对象时,向“act2”发送“Dummy”(哑元)以指出不持有“Result”。备择地,这也可以通过在模板中准备一个存储“Result”的记录来实现。
“act2”利用内部持有的智能体的类名作为关键字得到存在于同一地点上的一个报告智能体的指针。“act2”向该报告智能体发送一个内部持有结果的消息,该结果是从作为参数“act1”得到的。方案取出下一个当前节点。在本情况下,由于不存在当前节点,该方案检测出这种情况并终止处理。目的地仲裁模块607经过仲裁智能体引用模块599向该仲裁智能体发出一条取消该仲裁智能体的指令。H-2.包含着迭代“Iteration”模板的拓扑情况
图26表示由“Iteration”(迭代)模板控制的移动对象的操作概要。观参照图22解释包含着迭代模板的拓扑情况下的处理。类似于链“Chain”的情况,生成仲裁智能体351,然后发送一个作为参数准备的方案对象353,并一步一步地执行方案353。类似于“Chain”在起点处执行处理的情况,该方案对象353也取出当前方案节点(Chain)。同样,方案对象353在目的地处和活动“act1”处执行处理,如在“H-1.包含着链模板的拓扑情况”一节中所说明的那样。
当处理完“act1”后,方案353接着要求迭代“Iteration”执行下一步骤。图27是一个流程图,表示在“Iteration”模板的起点处的处理过程。在“Iteration”模板起点处的处理中,它确定能否处理下一步骤,例如,“act1”的结果信息是否与预定条件匹配(框873)。
若满足该条件,则在后继表中存储内部持有的后继信息(框875)。从该后继表的“act2”中取出地址(框877)并把仲裁智能体移动到该地址(框879)。当不满足该条件时,则把状态设置成起点(框881)。从回送的节点索引获得该方案节点的指针,在该方案节点中替换后继表的元素,并且流程进行到下一步骤(框883)。实质上,如“H-1.包含着“Chain”模板的拓扑情况”一节中所说明那样,“act2”被处理并且完成整个处理。H-3.包含着与分离“ANDSplit”模板和与连接“ANDJoin”模板的拓扑情况
图28和图29是由与分离模板及与连接模板控制的移动对象的操作概要。下面参照图22说明包含着与分离模板及与连接模板的拓扑情况。类似于链“Chain”情况,生成仲裁智能体351,接着传送作为参数准备好的方案对象353,并且一步一步地执行方案353。
以类似于“Chain”情况的方式,方案对象353取出与分离,后者是一个当前方案节点。方案353要求与分离执行下一步骤。图30是一个流程图,表示在与分离模板中处理起点的过程。
仲裁控制管理器603搜索状态控制部分601的状态信息,并获得缺省值“起点”信息。仲裁控制管理器603要求起点仲裁模块605在起点处处理。仲裁控制管理器603要求状态控制部分把状态改变成目的地(框893)。与分离参照后继表取出后继表的第一个活动(框897)并且在标记索引595中设置“0”(框899)。
接着仲裁控制管理器603要求仲裁智能体351经过仲裁智能体引用模块599准备该仲裁智能体的一份拷贝(框901)。响应这个请求的仲裁智能体还准备所有对象,其中包括该仲裁智能体、该仲裁智能体持有的一个方案、一个模板及一个活动的拷贝。
由复制准备出的拷贝的仲裁智能体把它自己的智能体ID通知到仲裁智能体引用模块599,以对完成拷贝的准备做出响应。仲裁智能体引用模块599通知起点仲裁模块605已完成拷贝的准备。
对此响应的起点仲裁模块605获取对应于来自后继表609的标记索引值(0)的那个活动(“act1”)的地址。起点仲裁模块605要求仲裁智能体351经过仲裁智能体引用模块599把拷贝移动到和“act1”的地址对应的地点上(框903)。
起点仲裁模块605参照后继表609判定是否登记着下个活动。若登记,则起点仲裁模块605通过类似的过程准备另一个拷贝并把它移动到“act2”的地点(框897-903)。此时,与移动到“act1”的拷贝相反,移动到“act2”的拷贝的标记索引595保持为“1”。
在处理了要移动到“act2”的拷贝的准备及移动后,起点仲裁模块605参照后继表609判定是否登记着下一个活动(框897)。由于在本例中后继表609里不存在登记的活动,起点仲裁模块605辨别出已完成对克隆的准备及移动的处理。
对此作出响应,起点仲裁模块605发出经过仲裁智能体引用模块599擦除保持在仲裁智能体351的原始地点(起始地点)处的仲裁智能体351(框905)的指令。
另一方面,克隆的仲裁智能体在各自的地点上执行下个方案步骤。此刻,再次取出与分离,以作为当前节点。在图31中示出决定下个当前节点的逻辑的流程图。仲裁控制管理器603参照状态控制部分601获取状态信息,识别出现行状态是目的地,并且要求目的地仲裁模块607执行处理。
仲裁控制管理器603把状态信息恢复成起点状态。当方案确认完成对与分离的目的地的处理时,它取出和标记索引(“act1”或“act2”)对应的方案节点并且要求执行该活动。
方案对象353参照方案迭代器352取出下一个当前节点。此时,方案迭代器参照后继表609以及标记索引595确定登记值(图31)。
“act1”和“act2”获取由前一执行的活动持着的结果。在本例中,由于在该“ANDSplit”模板之前未执行过任何活动,所以“act1”和“act2”最终不能得到由前一执行的活动保持的结果。
最初在和“act1”对应的克隆智能体中把与连接选择为下一当前节点。方案对象353要求与连接模板的仲裁控制管理器603执行下个步骤。仲裁控制管理器603从状态控制部分601的信息辨别出应处理当前起点,并对起点仲裁模块605发出执行请求。它还要求状态控制部分601改变状态。
起点仲裁模块605参照后继表609获取在后继表609中登记的活动(“act3”)的地址信息,并且指示仲裁智能体351经仲裁智能体引用模块599移动到和所获取的地址信息相对应的地点。
对应于“act2”的克隆智能体也按类似于“act1”的方式处理,并且移动到“act3”的地点。由于这二个仲裁智能体到达新地点,所以它们分别执行下一步骤。方案对象353取出与连接模板作为当前节点并执行下个步骤。
图32和33是流程图,表示与连接模板目的地处的处理过程。与连接模板的仲裁控制管理器603参照状态控制部分601判定当前状态是目的地,并要求目的地仲裁模块607执行。
每个仲裁控制管理器603把状态恢复到起点状态。和“act1”对应的克隆的目的地仲裁模块607参照前驱表591取出标记成已完成的活动(本情况下为“act1”)(框913)。它判定所取出的活动是否具有前驱索引表中的最小下标(框915),并且若判定出它具有下标索引则接收其它的克隆智能体的结果。
具体地,目的地仲裁模块607要求同一地点智能体引用模块597获取同一地点处存在的智能体表。对此作出响应,同一地点智能体引用模块597对地点360发出“getAgentList”指令以获取智能体表。该地点回送“AgentList”以得到该同一地点处存在的智能体表。
同一地点的智能体引用模块597把该表发送给目的地仲裁模块607。目的地仲裁模块607从该表中查找具有相同方案ID的智能体框921。
当找到具有相同方案ID的某智能体时,获取该智能体的方案。接着确定所获取的方案的当前节点(框929),并且若它是相同的与连接接收该智能体的结果。在本发明的最佳实施方式中,还要判定当前节点索引是否相同(框931,933),并且仅当相同时才进入合并处理。这样做是为了防止与连接要处理的主题未被辨别。目的地仲裁模块607参照前驱表查出存在多少个前驱,并且接收和前驱数量相同的结果。
具体地,目的地仲裁模块607参照接收到的方案的前驱表591,取出标记成已完成的一个活动并且接收该活动持有的结果。把该结果设置成对应活动的结果。方案节点本身可能被替换(框935)。图34表示接收结果的处理的概要。
当目的地仲裁模块607检测出完成对结果的设置时,它向对应的仲裁智能体351发出一条指示经过仲裁智能体引用模块擦除的指令(框937)。接收到该指令的对应仲裁智能体擦除该仲裁智能体以及它所控制的对象(方案、模板、活动等)。
另一方面,和“act2”对应的智能体到达新的地点后立即执行下个步骤。该智能体的目的地仲裁模块607还参照前驱表591取出标记着已完成的活动(该情况中为“act2”)(框913)。它判定所取出的活动是否具有前继索引表中的最小下标(框915),并且确定它不是最小的下标。在本情况下,进入休眠状态以等待发送其它克隆智能体的结果(框925)。
回到和“act1”对应的克隆,目的地仲裁模块607接收数量和前驱表的数量相同的结果(前驱表的元素数量-1),并且方案取出下一个方案节点(“act3”)和在完成克隆的擦除后要求执行该活动。
“act3”获取“act1”和“act2”内部持有的结果。在本发明的最佳实施方式中,目的地仲裁模块607向“act1”及“act2”(和该“act1”对应的克隆)发出指令“getResult”(取结果)以要求发送处理结果。对此作出响应,“act1”和“act2”发送它们持有的结果。
“act3”利用作为关键字的内部持有智能体的类名得到在同一地点处存在的某智能体的指针。“act3”向报告智能体发送带有结果的内部持有消息,该结果是从作为参数的“act1”、“act2”处得到的。
该方案取出下个当前节点。由于本情况中不存在这样的当前节点,该方案查出这种情况并终止处理。仲裁智能体检测出处理的终止,并且擦除它控制的仲裁智能体及各对象以结束处理。H-4.包含着或分离模板的拓扑情况
图35表示由或分离模板控制的移动对象的操作概要。在或分离情况中,对起点的处理如图36中所示,其与链和与分离情况不同。或分离模板具有一个前驱活动和多个后继活动。在起点地点,通过调用的“chooseActivity”(选择活动)方法从后继表选择一个活动,并仅执行该选出的活动。
在处理或分离的地点中,首先把状态改变成目的地(框982)。接着调用函数“choose Activity”,以选择一个要被执行的满足选出的预定条件的活动(框983)。该活动的索引变成一个标记索引(框984)。获取该选出活动的地址并请求把仲裁智能体351移动到该地址(框985)。H-5.包含着或连接模板的拓扑情况
图37表示或连接模板控制的移动对象的操作概要。在“ORJoin”情况下,对目的地的处理如图38中所示,其与链和与连接的情况不同。或连接模板具有多个前驱活动和一个后继活动。在目的地处,或连接执行一个处理,在该处理中首先抵达的移动智能体生成一个“清除”(Dispose)智能体并擦除其它移动智能体。
首先到达目的地690的移动对象的或连接模板694发出“findDisposeAgent”方法,以判定是否在同一地点存在一个清除智能体(框943)。若不存在,则生成一个擦除其它智能体的清除智能体(框945)。此刻,以参数方式传送方案以及前驱表中的活动数目-1。清除智能体等待前驱表中的活动数目-1个移动对象以便擦除该对象,并且在履行其作用之后擦除自己。虽然在本发明的最佳实施方式中生存条件取决于一个对象是否首先到达目的地690,结果的内容可以是继续进行处理的条件。
另一方面,其它移动对象的或连接模板696类似地发送“findDisposeAgent”方法以判定在同一地点上是否存在清除智能体(框943)。由于本情况中已存在清除智能体,所以进入一个由清除智能体擦除的进程。具体地,该进程判定该清除智能体是否持有相同的方案(框947)或持有相同的当前节点索引(框949),以便确认它是要被擦除的清除智能体。
当确认该清除智能体是应该擦除的时,向该清除智能体发送“Countdown(递减计数)”消息以递减清除智能体的处理次数(框951)。接着,或连接模板696向仲裁智能体692发送一个除去请求以消除它。
虽然本发明的最佳实施方式还提供部分连接“Join”模板,这种模板具有多个前驱活动以及其数目少于这些前驱活动的多个后继活动,但省略掉对这种模板的说明,因为这种模板可以用前面说明的模板的组合实现。例如可以通过把多个前驱活动、一个链接某个后继活动的或连接模板、一个用于确定已执行所需数量的或连接模板的活动、一个根据较后的活动是否清除所需的条件的判定向该或连接模板回送的迭代模板、一个“哑元”活动以及一个分离到所需数量的与连接组合起来实现这种部分的连接模板。
如上面所说明,本发明在不需要高级编程知识下允许程序员用减小的开发量和开发时间开发移动智能体。
并且,可以尽可能多地减少开发移动智能体所需的开发量和开发时间。
此外,本发明可以提供一种用户友好的开发移动智能体的环境,该环境允许开发者直觉地领会其功能。

Claims (8)

1.一种执行移动对象的方法,以在网络上分布的不同地点处执行不同的作业,该方法特征在于包括步骤:
(a)生成第一载运智能体,其持有定义着要在第一地点执行的一个作业的第一具体活动;
(b)生成第二载运智能体,其持有定义着要在第二地点执行的一个作业的第二具体活动;
(c)生成移动对象实体,其含有说明所述第一载运智能体的信息并含有说明所述第二载运智能体的第二信息,和指示所述第一载运智能体在所述第一地点执行所述第一具体活动,并指示所述第二载运智能体在所述第二地点执行所述第二具体活动;
(d)把所述第一载运智能体移动到所述第一地点;
(e)把所述第二载运智能体移动到所述第二地点;
(f)把所述移动对象的实体移动到所述第一地点;
(g)通过使所述移动对象的实体说明所述第一载运智能体和指示所述第一具体活动执行作业,在所述第一地点执行所述第一具体活动的作业;
(h)把所述移动对象的实体移动到所述第二地点;以及
(i)通过使所述移动对象的实体说明所述第二载运智能体和指示所述第二具体活动执行作业,在所述第二地点执行所述第二具体活动的作业。
2.一种执行移动对象的方法,用于在网络上分布的至少一个地点上执行一个作业,该方法特征在于包括步骤:
(a)生成一个载运智能体,其持有定义着要在所述地点上执行的一项作业的一个具体活动;
(b)生成移动对象的实体,其含有说明所述载运智能体的信息,并指示所述载运智能体在所述地点执行所述具体活动;
(c)把所述载运智能体移动到所述地点;
(d)把所述移动对象的实体移动到所述地点;以及
(e)通过使所述移动对象的实体说明所述载运智能体和指示所述具体活动执行作业,在所述地点执行所述具体活动的作业。
3.一种执行移动对象的方法,用于在网络上分布的至少一个地点上执行作业,该方法特征在于包括步骤:
(a)把一个载运智能体移动到所述地点,该载运智能体持有定义着要在所述地点执行的一个作业;
(b)把移动对象的实体移动到所述地点,移动对象含有说明所述载运智能体的信息并指示所述载运智能体在所述地点执行所述具体活动的作业;以及
(c)通过使所述移动对象的实体说明所述载运智能体和指示所述具体活动执行作业,在所述地点执行所述具体活动的作业。
4.一种存储至少一部分的移动对象的记录介质,这些移动对象在网络上分布的不同地点处执行不同的作业,该记录介质特征在于包括:
(a)第一载运智能体,其持有定义着要在第一地点执行的某作业的第一具体活动;
(b)第二载运智能体,其持有定义着要在第二地点执行的某作业的第二具体活动;以及
(c)移动对象的实体,它们含有说明所述第一载运智能体的信息及说明所述第二载运智能体的第二信息,并指示所述第一载运智能体在所述第一地点执行所述第一具体活动的作业,而且指示所述第二载运智能体在所述第二地点执行所述第二具体活动的作业。
5.一种存储移动对象的记录介质,这些移动对象用于在网络上分布的多个地点上执行某作业,该记录介质特征在于包括:
(a)载运智能体,其持有定义着要在所述地点执行的作业的具体活动;以及
(b)移动对象的实体,它们含有说明所述载运智能体的信息并指示所述载运智能体在所述地点执行所述具体活动的作业。
6.一种存储至少一部分的移动对象的记录介质,移动对象在网络上分布的不同地点执行不同的作业,其特征在于记录介质包括
(a)第一代理活动,其含有说明所述第一载运智能体的信息并指示所述第一载运智能体在第一地点执行第一具体活动的作业,所述第一载运智能体持有定义着要在所述第一地点执行的某作业的所述第一具体活动;
(b)第二代理活动,其含有说明所述第二载运智能体的信息并指示所述第二载运智能体在第二地点执行第二具体活动的作业,所述第二载运智能体持有定义着要在所述第二地点执行的某作业的所述第二具体活动,以及
(c)一个次序表,该次序表定义所述第一代理活动和所述第二代理的执行次序。
7.一种存储移动对象的记录介质,这些移动对象响应移动对象的实体的指令执行作业,移动对象的实体含有到达在网络上分布的某地点处的代理活动,该记录介质特征在于包括:
(a)具体活动,其定义着要在所述地点执行的某作业;
(b)提供给所述代理活动的具体活动表,以使所述代理活动说明所述具体活动;以及
(c)一种用于从所述代理活动接收执行该作业的指令消息的方法。
8.一种存储移动对象的记录介质,这些移动对象响应移动对象的实体的指令执行作业,移动对象的实体含有到达在网络上分布的某地点的代理活动,该记录介质特征在于包括:
(a)具体活动,其定义着要在所述地点执行的某作业;以及
(b)一种用于从所述代理活动接收执行该作业的指令消息的方法。
CNB981225217A 1997-11-26 1998-11-19 执行移动对象的方法 Expired - Fee Related CN1172239C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP324945/97 1997-11-26
JP9324945A JPH11184699A (ja) 1997-11-26 1997-11-26 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体
JP324945/1997 1997-11-26

Publications (2)

Publication Number Publication Date
CN1218223A true CN1218223A (zh) 1999-06-02
CN1172239C CN1172239C (zh) 2004-10-20

Family

ID=18171389

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB981225217A Expired - Fee Related CN1172239C (zh) 1997-11-26 1998-11-19 执行移动对象的方法

Country Status (3)

Country Link
US (1) US6434595B1 (zh)
JP (1) JPH11184699A (zh)
CN (1) CN1172239C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100438430C (zh) * 2005-02-04 2008-11-26 南京邮电学院 一种安全的片上智能体方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
EP1185928A1 (en) * 1998-12-16 2002-03-13 Kent Ridge Digital Labs Process oriented computing environment
EP1192539B1 (en) * 1999-06-11 2003-04-16 BRITISH TELECOMMUNICATIONS public limited company Communication between software elements
US6738806B1 (en) * 1999-06-14 2004-05-18 Wind River International, Ltd. Method and system of deploying an application between computers
US6678743B1 (en) * 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
JP3861559B2 (ja) * 2000-03-31 2006-12-20 株式会社日立製作所 移動エージェント制御方法
WO2002005119A1 (en) * 2000-07-07 2002-01-17 Consilient, Inc. Method and apparatus for providing process-container platforms
US7861252B2 (en) * 2001-03-21 2010-12-28 Andrzej Uszok Intelligent software agent system architecture
US7367028B2 (en) * 2001-08-14 2008-04-29 National Instruments Corporation Graphically deploying programs on devices in a system
US7246325B2 (en) 2001-12-20 2007-07-17 Nokia Corporation System and method for functional elements
US7313766B2 (en) 2001-12-20 2007-12-25 Nokia Corporation Method, system and apparatus for constructing fully personalized and contextualized user interfaces for terminals in mobile use
US7103671B2 (en) * 2002-03-14 2006-09-05 Yahoo! Inc. Proxy client-server communication system
US7370072B2 (en) * 2002-07-08 2008-05-06 Electronic Evidence Discovery, Inc. System and method for collecting electronic evidence data
US7475107B2 (en) * 2002-07-08 2009-01-06 Electronic Evidence Discovery, Inc. System and method for managing distributed computer processes
US20040078256A1 (en) * 2002-10-21 2004-04-22 Roch Glitho Method, system, and mobile agent for event scheduling
US8108455B2 (en) * 2002-10-31 2012-01-31 Oracle America, Inc. Mobile agents in peer-to-peer networks
US7454673B2 (en) 2005-07-15 2008-11-18 Kyocera Wireless Corp. Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory
US20070250507A1 (en) * 2006-04-21 2007-10-25 Topia Technology Electronic file sharing
JP2009534762A (ja) * 2006-04-21 2009-09-24 トピア・テクノロジー 電子ファイル共有
US20140108564A1 (en) * 2012-10-15 2014-04-17 Michael Tolson Architecture for a system of portable information agents
US9189206B2 (en) * 2013-05-21 2015-11-17 Red Hat, Inc. System and method for managing immutable objects

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603031A (en) * 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US6233601B1 (en) * 1996-11-14 2001-05-15 Mitsubishi Electric Research Laboratories, Inc. Itinerary based agent mobility including mobility of executable code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100438430C (zh) * 2005-02-04 2008-11-26 南京邮电学院 一种安全的片上智能体方法

Also Published As

Publication number Publication date
US6434595B1 (en) 2002-08-13
CN1172239C (zh) 2004-10-20
JPH11184699A (ja) 1999-07-09

Similar Documents

Publication Publication Date Title
CN1172239C (zh) 执行移动对象的方法
CN101044498A (zh) 工作流服务体系结构
CN1154935C (zh) 设备控制装置及设备判断方法
CN1222896C (zh) 用户简档数据的管理
CN1276575A (zh) 数据库存取系统
CN1266512A (zh) 适用于面向对象编程语言的硬件加速器
CN1928861A (zh) 用于进行项目共享的即时通信客户机和方法
CN1836235A (zh) 用于确定网络系统的用户之间的关系的系统和方法
CN1795434A (zh) 程序执行控制设备,程序执行控制方法,控制程序和记录介质
CN1435043A (zh) 呼叫中心运用方法及装置
CN1200514A (zh) 信息处理方法和装置及存储服务器控制程序的存储器媒体
CN1809815A (zh) 管理锁定和事务
CN1610323A (zh) 控制系统设定装置和控制系统设定方法及设定程序
CN1568458A (zh) 无需修改现有代码即可增加新软件特征的方法
CN1629871A (zh) 工作流管理设备及方法
CN1734438A (zh) 信息处理设备、信息处理方法和程序
CN1111795C (zh) 利用网络的信息分发系统
CN1637714A (zh) 远程复制网络
CN1181545A (zh) 信息获取代理系统和信息传送管理系统
CN1285032C (zh) 外部事件处理器系统和方法
CN1601543A (zh) 工作流管理设备及方法
CN1691005A (zh) 信息处理系统、信息处理方法和计算机程序
CN1293476C (zh) 使用信息图片的信息图片使用系统
CN1263254C (zh) 信息处理系统、便携式终端及信息处理服务器
CN1532754A (zh) 联合处理装置和联合处理方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20041020

Termination date: 20101119