一种用于普适计算的软件架构的制作方法

文档序号:6469268阅读:139来源:国知局

专利名称::一种用于普适计算的软件架构的制作方法
技术领域
:本发明属于普适计算架构的设计与应用领域,特别是涉及一种针对于普适计算中人机交互协作的架构。
背景技术
:普适计算是一种新一代的,以提供无处不在的计算与通讯服务的计算环境。用户通过它可以随时随地地享受到丰富的资源与服务。随着可移动设备的计算与存储性能的提高,在普适计算环境下有关于人机交互协作应用也越来越多,如智能协作,移动网络游戏等。这些领域的应用在传统的个人电脑环境中,已经发展得相当成熟。但是,在普适计算领域中,出现了跟传统的环境所不一样的新特性,其中最显著的特性是设备的多样性,从而也导致了性能的差别更加的悬殊。因此,当应用传统环境下的人机交互协作领域的计算架构时,就会出现不同程度的不适应性。从而导致设备资源利用不充分,甚至资源的浪费,导致系统的整体性能下降。针对于普适计算屮人机交互协作的软件架构是解决以上困难的有效手段。根据系统中不同设备的自身状况,可方便地动态地调整其工作负荷,让计算性能强的设备多计算,计算性能弱的设备少计算,同理对于存储性能也适用。从而达到系统中的各设备物尽其用,极大地提高系统的整体性能。目前国内外的研究状况来看,主要集屮在传统的架构如何在普适计算环境中应用等高层的领域上,例如开发出一些普适计算环境中的学习系统,卫生监控系统,以及不少的移动网络游戏等。但是,这些系统均不能解决上述的问题。而从根本出发,对于针对普适计算中人机交互协作的软件架构的研究几乎没有。传统的软件架构采用Agent作为计算单位,一般来说,Agent都是自主思考的,并且具有自己的目标,独立的环境Environment感知系统,和独立的动作输出系统。即Agent是处于某个环境中的计算机系统,该系统有能力在这个环境巾自主行动以实现其设计目标。Agent与环境的交互如附图1所示。Agent通过与环境的不断交互,最终实现其设计的目标。所述环境是一种具有广泛意义的环境,可以代表实实在在的真实环境,也可以只是一种通过计算模拟的虚拟环境,也有些系统,环境就是系统中其他的Agent,这类系统通过Agent的互相作用最终实现系统目标。一般情况下,Agent与环境,Agent之间通过网络进行连通。传统的多Agent软件架构已经被国内外很多的软件开发者所应用,基于这种架构已经有着不少的成功案例。这种传统的多Agent软件架构如附图2所示,其中各Agent以独立进程的形式在不同的设备上运行。在通过研究发现,实际的多Agent应用中,往往还会对这种经典的基础架构进行扩充。例如,虛拟环境的个数也可以大于1个,在一个大的多Agent系统中,有可能有多个环境,还有一些情况是,Agent之间能互相通讯和作用。但在普适计算环境中应用这种传统软件架构,将会出现设备资源利用不均匀等问题。因此,有必要对于不同的应用或者不同的Agent的运行载体,在继承这种传统架构的核心思想的同时对其进行发展。
发明内容本发明的目的在于提供一种针对普适计算中人机交互协作的软件架构。能5够根据普适计算环境下系统的各设备的性能特点,方便可操作地调整工作负荷。达到设备计算资源的有效利用,提高系统整体性能,从根本上解决了传统架构在普适计算环境中所出现的资源利用不均匀等问题。为了实现上述发明目的,采用的技术方案如下一种用于普适计算的软件架构,所述架构以计算代理Agent为单位,Agent每一个周期接收环境的感知信息,然后通过计算,返回一个动作作用于环境,最终完成其计算任务,所述Agent采用一个或多个,且每一个计算代理都安置在代理槽AgentSlots中,由AgentSlots与环境进行交互,包括接收感知信息以及发送动作信息。本发明设置有多个AgentSlots,每个AgentSlots均与环境交互,且每个AgentSlots以进程的形式运行于每一个设备中。所述AgentSlots还设置有动作信息管理模块ActionManager,所述ActionManager的输入端与该AgentSlots所有Agent的输出端连接,而输出端则与环境的输入端连接,ActionManager对每个计算代理返回的动作进行统一管理,然后向环境发送所有的动作信息。所述AgentSlots还设置有感知信息管理模块SenseManager,所述SenseManager的输入端与环境的输出端连接,而输出端则与该AgentSlots内所有Agent的输入端连接,所述AgentSlots从环境巾接收到对应Agent数量的感知信息,SenseManager处理所接收的感知信息,然后根据感知信息的所属,转发至各个对应的Agent。所述AgentSlots还设置有人工控制模块ManualAgent,所述ManualAgent与ActionManager连接,其接收人工输入信息,并将该输入信息传送给ActionManager。所述ManualAgent与ActionManager之间连接有动作转换模块ActionTransform,所述ActionTransform屏蔽ManualAgent与Agent之间的差异,实现ManualAgent与Agent之间的一体化。所述AgentSlots还设置有显示模块Display,所述Display的输入端与SenseManager的输出端连接。本发明是基于多Agent的思想而建立的软件架构。架构中以一个计算Agent为单位,计算Agent是一个独立的运算者,Agent每一个周期接收环境的感知信息,然后通过计算,返回一个动作作用于环境,最终完成其讣算任务。根据设备性能的不同,可对设备指派适当数量的计算Agent,从而达到计算负荷的方便可调节。另外针对于人机交互方面,本发明实现了一种人工控制Agent,可以被加载到有控制功能的设备中,达到人机交互,和人机协作。本发明还通过动作转换模块,用于屏蔽人机交互时,人工控制Agent与普通的计算Agent之间的差异,从而达到外层通讯,协作与交互作用的一体化。因为计算Agent的计算频率很高,计算的结果是一种细粒度的动作,而相对的人工控制的频率比较慢,而且控制的动作一般是粗粒度的动作。将粗粒度的动作转换成细粒度的动作就是动作转换模块的任务。本发明还通过感知信息管理模块和动作信息管理模块,对被加载至同一设备中的Agent所接收的感知信息(动作信息)进行统一从环境中取得(作用于环境),统一分配到各Agent(从各Agent处接收)和集中的管理。这种集中的管理能取消了设备中各Agent与环境的直接连接,从而可以节省通讯资源。本发明对于设计的软件架构釆用Wright/ADL语言对架构进行精确地描述,从而更有利于此架构的应用和实现,以及对架构的二次开发与完善。图1为计算Agent的工作示意图;图2为传统软件环境下的多Agent的架构图;图3为本发明的软件架构示意图;图4为本发明的应用实现方案示意图。具体实施例方式下面结合附图对本发明做进一步的说明,本发明的软件架构如附图3所示,架构中,各个Agent没有与Environment进行直接交互,每一个Agent都安置在对应的AgentSlots屮,AgentSlots与Environment进行交互,接收感知信息,以及发送动作信息。在这个软件架构中,每一个设备运行一个AgentSlots进程,根据设备运算性能的强弱,可以加载适当数量的计算Agent进去。如AgentSlotsO有n个Agent。因为某些普适计算设备的操作系统并不支持多进程(如uCLinux),所以一般情况下,每一个Agent是由对应的AgentSlots主进程所创建的子线程。而且多线程能让在同一Slots下的Agent更方便地共享数据。除了多线程技术以外,还可以采用各Agent轮流执行的策略,首先Agent01获取其感知信息,然后进行计算,再返回一个动作。接着到Agent02获取感知信息......如此轮流执行。各个Agent将思考的结果,即所返回的动作(ActionChannel)传递至ActionManager。ActionManager负责对各Agent返回的动作进行统一管理,然后向Environment发送所有的动作信息。ActionManager的工作内容根据不同的应用系统而有所不同,一般来说,ActionManager需要记录清楚接收到的动作的对应发出者,并在发送到Environment的动作信息中加上发送者标记,如Action01等。每一个AgentSlots从Environment中接收到对应Agent数量的感知信息,接收信息后经过SenseManager的处理,然后根据感知信息(SenseChannel)的所属,转发至各个对应的Agent。SenseManager还可以对一些公共信息进行保存,提供给各Agent共享访问(例如一场足球比赛,比赛余下的时间,当前的比分等信息可以成为共享信息保存在SenseManager中)。SenseManager与ActionManager是一对对偶的处理模块。本发明还设置有人工控制模块ManualAgent。ManualAgent不同于其他Agent,其主要功能在于接收用户的输入,而不是自主思考。由于人工的输入的动作会不同于普通Agent所输出的动作,例如人的输入频率一般会低于普通Agent计算出动作的频率;另外,不同于普通Agent输出微观动作(可以让实现的动作组合更加灵活),人工输入一般更倾向于宏观概念上的动作(如在足球游戏控制中,用户会更倾向于输入一条盘带球的指令,而不会去关心如何移动,如何向足球轻轻踢一下这种较微观的操作),所以在架构中还增加了ActionTransform模块,这个模块负责将用户的宏观动作翻译成一系列的微观动作,并根据普通Agent的频率,向ActionManager发送动作信息。经过了Actiontransform模块处理后,ActionManager所接收到的动作信息与普通Agent的动作信息是统一的,艮卩Actiontransform屏蔽了ManualAgent与普通Agent之间的区别。有时用户需要观察整个系统或者某一个Agent的运行情况。而且,在需要人工控制的时候,运行过程必须被显示。Display就是用于显示运行过程的模块。一般来说,显示模块可以根据接收的感知信息进行显示。本发明的应用如附图4所示,是一款基于上述架构进行开发的普适计算Environment下的人工智能教育型软件,AIEleven。用户可以根据给定的接口,编写若干个足球球员的智能,或者通过键盘操作,控制某一个球员。通过互联网,多个用户可以共同组成一个球队,和网络上的其他球队进行比赛。AIEleven提供了运行在PC上的标准客户端,以及运行在手机或PDA上的简单版客户端。但无论是什么客户端,都可以进行互联比赛,让用户随时随地都可以参与进来。AIEleven基于ADL描述构建出其软件的架构,并且在此架构上面进行实现。从而可以达到Agent的可动态配置,即在不同的硬件平台上,可以运行适合其性能的若干个智能Agent,然后共同完成一场足球比赛这一系统目的。下表阐述了AI迈even的系统架构与Wright/ADL描述的对应关系,以及模块的功能。<table>tableseeoriginaldocumentpage10</column></row><table>经过与WrightZADL各组件建立的对应关系,可以很清晰地开发出AIEleven的软件架构。在每一个客户端上运行一个Gamer(CAgentSlot)主进程,在Gamer中所安置的每一个FootballPlayer(CAgent)代表用户所导入的一个智能程序。而Controller(CManualAgent)实现了用户操作的输入功能。在Environment中,采用了ODE物理模型进行球场状态的仿真。在Environment中维护着一个时间管理器,每过一个仿真周期(0.1s)向所有比赛中的FootballPlayer(CAgent)发送球场的感知信息。并且接收各个FootballPlayer思考后的动作信息,信息的传输是VirtualEnvironment与Gamer(CAgentSlot)之间进行的,由AgentSlots的Actioner(CActionManager),Sensor(CSemeManager)进行管理。所有的动作信息接收完毕后,进行ODE物理仿真,从而得出下一个仿真周期的新的球场状态,如此循环。对于AIEleven中的基本Action,提供了Kick(floatPower,floatTheta),Drive(VectorPower)两种基本接口。这两个基本的接口是微观的操作,适合于编程实现的FootballPlayer,因为这样能让用户编程时实现出更加灵活的动作组合。但这些微观动作不便于用户进行直接控制。所以提供了几个能与用户直接打交道的宏观操作,如Pass,Shoot,Dribble操作,经过ControllerAdatper(CActionTransform)模块后转化成微观操作的组合,发送至Actioner(CActionManager)中。AIEleven充分地利用了本发明提出的软件架构所带来的好处。首先,每一个客户端都可以运行合适个数的球员智能,设备资源有效利用。其次,用户控制可以简单地集成到系统中,增加了系统的灵活性,可操作性,充分体现了架构在人机交互协作上面的优势。再有,由于显示模块是独立的,从而可以方便11地根据不同的设备而选择一种适合的显示技术。另外,对于游戏中足球比赛的公共信息,如球赛剩余时间,比分,球员的当前位置,球的当前位置,以及球场规格的公共数据等都可以通过SenseManager达到同一设备中多个Agent之间共享,节省资源。本发明的软件架构与传统的软件相比,在对普适计算Environment特点的适应上,有着明显的优越性。首先体现在对普适计算设备的适应性上,对于系统中性能差异比较人的各种普适计算设备,这种架构在设备资源的利用上更为优化。设计者可以设计轻量级的Agent,在资源相对缺少的设备(如PDA,手机等)上运行,而对于资源相对充足的设备(如手提电脑),则可以运行多个Agent。从而达到资源的合理利用,使用更少的设备就能达到预期的运算目的。在这种架构中,显示层是独立的一个模块,这个模块的输入是场景信息或者是某个Agent的感知信息。而模块的输出可以根据设备显示处理能力而使用不同的显示技术,也体现出这种架构对普适计算设备多样性的适应。另外,本发明提出的软件架构增加了人工控制的Agent模块,让此架构更具有灵活性,适应更加多的应用(尤其对于普适计算Environment下的游戏,或者工业控制等人机交互协作领域的应用)。而且由于使用了AgentSlots进行Agent的集中管理,公共资源的共享更加方便,节省设备的存储资源,而且也能对属于同一个AgentSlots中的Agent间通讯进行优化,节省设备的网络资源。权利要求1、一种用于普适计算的软件架构,所述架构以计算代理为单位,计算代理每一个周期接收环境的感知信息,然后通过计算,返回一个动作作用于环境,最终完成其计算任务,其特征在于所述计算代理采用一个或多个,且每一个计算代理都安置在代理槽中,由代理槽与环境进行交互,包括接收感知信息以及发送动作信息。2、根据权利要求1所述的用于普适计算的软件架构,其特征在于设置有多个代理槽,每个代理槽均与环境交互,且每个代理槽以进程的形式运行于每一个设备中。3、根据权利要求1或2所述的用于普适计算的软件架构,其特征在于所述代理槽还设置有动作信息管理模块,所述动作信息管理模块的输入端与该代理槽内所有计算代理的输出端连接,而输出端则与环境的输入端连接,动作信息管理模块对每个计算代理返回的动作进行统一管理,然后向环境发送所有的动作信息。4、根据权利要求3所述的用于普适计算的软件架构,其特征在于所述代理槽还设置有感知信息管理模块,所述感知信息管理模块的输入端与环境的输出端连接,而输出端则与该代理槽内所有计算代理的输入端连接,所述代理槽从环境中接收到对应计算代理数量的感知信息,感知信息管理模块处理所接收的感知信息,然后根据感知信息的所属,转发至各个对应的计算代理。5、根据权利要求4所述的用于普适计算的软件架构,其特征在于所述代理槽还设置有人工控制模块,所述人工控制模块与动作信息管理模块连接,其接收人工输入信息,并将该输入信息传送给动作信息管理模块。6、根据权利要求5所述的用于普适计算的软件架构,其特征在于所述人工控制模块与动作信息管理模块之间连接有动作转换模块,所述动作转换模块屏蔽人工控制模块与计算代理之间的差异,实现人工控制模块与计算代理之间的一体化。7、根据权利要求6所述的用于普适计算的软件架构,其特征在于所述代理槽还设置有显示模块,所述显示模块的输入端与感知信息管理模块的输出端连接。全文摘要本发明提供一种用于普适计算的软件架构,所述架构以计算代理为单位,计算代理每一个周期接收环境的感知信息,然后通过计算,返回一个动作作用于环境,最终完成其计算任务,所述计算代理采用一个或多个,且每一个计算代理都安置在代理槽中,由代理槽与环境进行交互,包括接收感知信息以及发送动作信息。采用本发明的软件架构,使得普适计算系统可以适应更多的设备,以及进一步节省资源。文档编号G06F9/44GK101464795SQ200810199068公开日2009年6月24日申请日期2008年10月10日优先权日2008年10月10日发明者刘发贵,刚吴,张功胜,李胜文申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1