传感器网络系统和传感器网络的数据处理方法

文档序号:7622918阅读:276来源:国知局
专利名称:传感器网络系统和传感器网络的数据处理方法
技术领域
本发明涉及一种利用来自连接于网络上的多个传感器之信息的技术,尤其是涉及利用地域中分散的多个传感器收集信息、并用于现状把握、异常发现、预测、最佳化等意思决定支持的传感器网络系统。
背景技术
近年来,通过网络来取得从多个传感器节点得到的传感数据之传感器网络的技术不断发展。传感器网络将传感器取得的信息通过网络用于远处,必需对应于宽地域、多种环境观测。在宽地域执行多种观测的情况下,需要多种的多个传感器节点。若原样由服务器接收全部这些传感器节点的观测事件(测定结果的通知),则服务器中产生负荷集中。为了避免这种问题,需要执行配送给服务器的事件之信息集约、过滤,削减事件数量。因此,已知在传感器节点或服务器中设置事件处理器,分别协调来执行事件的集约、过滤的方法(非专利文献1-3)。
传感器网络中,一般将传感器节点发送、并配送到各个系统的信息称为事件,另外,将处理事件的机构称为事件处理器。传感器网络的处理体系中,传感器节点为主体,向服务器或Web Service、客户机配送环境观测信息,并分别以预定的规则来执行处理。例如,在非专利文献1中,公开了检测环境的变化后执行规定处理的事件处理器,公开了使用扩展SQL(Structured Query Language)的脚本(script)语言来构成针对预定传感器节点的事件处理器。
另外,在非专利文献2、3中,公开了利用脚本语言来控制传感器节点的技术。
非专利文献1Samuel Madden,Michael Franklin,JosephHellerstein,and Wei Hong.TinyDBAn Acquisitional QueryProcessing System for Sensor Networks.ACM TODS(2005),“PDF”,平成17年5月12日检索’,因特网<URLhttp//astragalus.lcs.mit.edu/madden/html/tinydb_tods_final.pdf>
非专利文献2Philip Levis and David Culler,‘“MateA TinyVirtual Machine for Sensor Networks”,Computer Science Division,University of California,Berkeley,California,Intel ResearchBerkeley,Intel Corporation,Berkeley,California,“PDF”,“平成17年5月12日检索”,因特网<http//www.cs.berkeley.edu/pal/pubs/mate.pdf>
非专利文献3A.Boulis,C.C.Han,and M.B.Srivastava,“Designand Implementation of a Framework for Efficient and ProgrammableSensor Networks”,“PDF”,“平成17年5月12日检索”,因特网<http//www.ee.ucla.edu/boulis/phd/SensorWare-Mobisys03.pdf>
上述现有例的事件处理器是安装在传感器节点或服务器等各节点上的程序,事件处理器的动作流程在动作前被确定,在运用中固定。为了变更事件处理器的动作流程,需要再登录安装于节点上的程序。节点上的程序的尺寸是巨大的,由于有时不能由无线通信发送,所以为了变更动作流程,有时也需要回收节点,通过有线通信来交换程序。
在此,利用传感器网络的用户可将从传感器节点收集到的信息加工成各种信息后加以利用。此时,通过变更各节点的动作流程,可对应于用户的请求。但是,为了变更各节点的动作流程,必然如上述现有例那样再登录多个节点的程序,存在不容易变更动作流程等问题。
在此,作为需要变更动作流程的因素,考虑如下因素。
第一因素在于用户目的的变化。在不是假设特定目的的小规模传感器网络、而是可用于多个目的的大规模传感器网络的情况下,一般地开始运用传感器网络宾,为了实现多样的用户目的,确定多个动作流程。另外,动作流程与用户目的的变化相一致地动态变化。在上述现有例中,传感器网络的处理者难以对应于全部用户目的的变化来变更动作流程。
第二因素在于状况的变化。例如就监视移动体的传感器网络而言,知道移动体不存在的传感器节点执行观测是无用的。另外,就根据温度传感器节点的观测来启动空调机的传感器网络而言,在发生火灾时该温度传感器节点执行观测是无用的。上述现有例的固定事件处理器难以对应于这种状况的变化来变更动作流程。

发明内容
鉴于上述问题的存在,本发明的目的在于提供一种能容易地对应于用户的请求或状况来动态变更各节点的动作流程之传感器网络。
本发明是一种传感器网络的数据处理方法,将传感器节点观测到的信息作为事件,从中间节点依次发送给上位客户机节点,其特征在于包含如下步骤,所述客户机节点或中间节点的上位节点从事先设定针对多个节点的处理之脚本中,抽取针对下位节点的脚本来向所述下位节点分配所述抽取到的脚本;根据所述脚本来执行针对自节点的处理;接收所述下位节点分配的脚本,并执行针对该节点的处理;和所述下位节点从所述脚本中抽取针对比自节点还下位的节点的脚本,若存在针对下位节点的脚本,则向所述下位节点分配所述抽取出的脚本,利用各节点执行的脚本,经上位的中间节点(路由器节点、服务器),向客户机节点发送来自最下位传感器节点的事件。
因此,本发明可由一个脚本来控制在各节点分散执行事件的处理之动作流程。由此,由于能对应于存在多个、不能一般化的动态变化的用户目的来动态变更,所以可在单一的传感器网络上反映多种用户目的。因此,由于由多个用户分担设置、维修费用,所以可实现观测宽地域环境的大规模传感器网络基础。
另外,通过本发明,可对应于动态变化的状况来动态变更分散事件处理的动作流程,所以与事先执行固定的事件处理的情况相比,不必执行无用的处理,结果,可削减配送的事件数量,所以可使对服务器的负荷集中减少。另外,因为可在不要时停止各节点的处理,所以可抑制各节点的功耗。


图1是表示本发明第1实施方式的传感器网络的框图。
图2是实现该第1实施方式的分散事件处理之本发明传感器网络的各节点主要功能之框图。
图3是表示节点间通信一例的说明图。
图4是该第1实施方式中的传感器节点的设备构成图。
图5是该第1实施方式中的路由器节点的设备构成图。
图6是该第1实施方式中的服务器的设备构成图。
图7是该第1实施方式中的客户机的设备构成图。
图8是该第1实施方式的脚本管理器与上位应用程序的连接界面的框图。
图9是该第1实施方式的脚本管理器的内部构造图。
图10是该第1实施方式的标签树的构造说明图。
图11是该第1实施方式的脚本之基本执行顺序的说明图。
图12是该第1实施方式的包含非同步指令的脚本之执行顺序的说明图。
图13是该第1实施方式的包含并列指令的脚本之执行顺序的说明图。
图14是说明该第1实施方式中的postAction界面的算法之处理流程图(PAD图)。
图15是说明该第1实施方式中的postCommand界面的算法之处理流程图(PAD图)。
图16是说明该第1实施方式中的parseCommand界面的算法之PAD图。
图17是说明该第1实施方式中的onEvent界面的算法之处理流程图(PAD图)。
图18是说明该第1实施方式中的事件待机指令的动作流程的序列图。
图19是说明该第1实施方式中的通信指令的动作流程的序列图。
图20是说明该第1实施方式中使事件待机指令与通信指令组合时的动作流程的序列图。
图21是说明该第1实施方式中的并列指令or和any的动作之脚本说明图。
图22是该第1实施方式中的压缩脚本的构造说明图。
图23是说明该第1实施方式中的相对压缩脚本的postCommand界面的算法之流程图(PAD图)。
图24是说明该第1实施方式中的相对压缩脚本的parseCommand界面的算法之流程图(PAD图)。
图25表示本发明的第2实施方式,是说明二维事件识别符问题的系统构成图。
图26表示本发明的第3实施方式,是说明规则数量爆发问题的系统构成图。
图27表示该本发明的第3实施方式,是说明规则数量爆发问题的逻辑记述的说明图。
图28表示本发明的第4实施方式,是说明Ad-Hoc问题的系统构成图。
图29表示该本发明的第4实施方式,是脚本变更例的说明图。
图30表示本发明的第5实施方式,是传感器节点上的脚本的说明图。
图31表示本发明的第6实施方式,是利用硬件中断的传感器节点主要部分的构成图。
图32表示本发明的第7实施方式,是平时、紧急时都可利用的传感器网络的构成图。
图33表示本发明的第8实施方式,是说明Ad-Hoc传感器网络的图。
图34表示该本发明的第8实施方式,是使用恢复构造的脚本的说明图。
图35表示本发明的第9实施方式,是本发明的名片节点的用户界面的说明图。
图36表示本发明的第10或第11实施方式,是传感器网络的构成图。
图37表示本发明的第12实施方式,是表示用于生成脚本的用户界面的图。
图38表示该本发明的第12实施方式,是将用户请求的宣言型语言之脚本变换为记述实际动作的手续型语言脚本的实例说明图。
图39表示本发明的第13实施方式,是对象管理系统一例的说明图。
符号说明102脚本106、117部分脚本201传感器节点202路由器节点203服务器204客户机404、409、414、419脚本管理器具体实施方式
下面,参照附图来说明本发明的一实施方式。
图1是表示适用本发明的传感器网络一例的框图。
传感器网络是如下系统,由在环境中分散的多个传感器节点201、206、207来观测环境信息,经由通过无线通信或有线通信连接的路由器节点202,集约、配送观测信息,并由中央服务器203收集观测信息,从而支持人们的意思决定。将收集于服务器203中的观测信息配送给对应于用户目的而存在的多个Web服务(WEB服务器)204,最终配送给作为用户终端的客户机205。另外,有时与传感器节点202一样分散在环境中的多个致动器节点208也控制环境。另外,在本发明中,一般将构成传感器网络的传感器节点201、路由器节点202、服务器203、Web Service204、客户机205、致动器节点208称为‘节点,。
传感器节点201、206、207具有识别温度传感器或湿度传感器等传感器或个人的识别符,连接于路由器节点202、209上。在路由器节点202上连接多个传感器节点201、206,收集来自这些传感器节点的观测信息。路由器节点202将从下属的传感器节点201、206收集到的观测信息发送给服务器203。另外,在路由器节点209上连接传感器节点207与致动器节点208,将从传感器节点207收集到的观测信息发送给服务器203,根据来自服务器203的指令,控制致动器节点208。致动器节点208根据客户机205的用户等设定的条件动作,例如,由空调机等构成。
服务器203收集从路由器节点202、209发送的观测信息,经多个WEB服务204向客户机205发送观测信息或基于观测信息的通知。
传感器网络的主要应用程序重要的是知道环境变化的定时。因此,传感器网络的处理体系采取如下方式,传感器节点201为主体,将环境观测信息配送到服务器203或WEB服务204、客户机205,分别按预定的规则来执行处理。一般来说,将传感器节点201发信并被配送给各个系统的信息称为事件,另外,将处理事件的机构称为事件处理器。
事件处理器的处理由接收事件(Event)、执行条件判定(Condition)、执行与之对应的活动(Action)等三个阶段构成。这一般被称为ECA(Event-Condition-Action)。一般来说,所谓活动是与事件相对比的概念,是提供给事件的处理请求的含义。作为活动的种类,有发行新的事件、执行致动器节点208的控制等。
另外,在本实施方式中,将传感器节点201侧设为下位节点,将客户机205设为上位侧节点。例如,传感器节点201向作为所属上位节点的路由器节点通知基于观测信息的事件或结果,路由器节点向作为所属上位节点的服务器203通知事件,服务器203经web服务向作为上位节点的客户机205通知事件。
另外,存在于下位传感器节点201与上位客户机205之间的路由器节点202、服务器(服务器节点)203、web服务(web服务器节点)204作为中间节点,中继传感器节点201与客户机205的通信,另外,执行来自客户机205的脚本。
<传感器网络的节点与脚本的构成>
图2是传感器网络中实施分散事件处理的功能要素之框图。在此,所谓分散事件处理是指各节点分散执行传感器网络上的节点之间的事件通知。即,通知事件发生的节点直接向下一层的节点通知事件。
图2中,在传感器节点201、路由器节点202、服务器203、客户机205中想执行事件处理的节点中设置作为本发明脚本执行引擎的脚本管理器404、409、414、419,代替各个事件处理器,并执行分散事件处理。图2中,省略执行事件处理的WEB服务204。另外,图1所示的传感器节点206、207或致动器节点208、路由器节点209以及客户机205也同样构成。
想在传感器网络中设置分散事件处理的动作流程之用户420利用客户机205来记述定义动作流程整体的脚本418,委托脚本管理器419来执行。脚本418在内部包含递归地执行各节点中的事件处理之部分脚本413、408、403。
客户机205的脚本管理器419在脚本执行的过程中,向另一节点(服务器203)412的脚本管理器414发送部分脚本413,执行委托脚本执行的活动415。通过递归地重复上述动作,可向全部节点201、202、203、205分配脚本403、408、413、418。
即,在脚本418中,按对应于传感器网络分层的顺序,将多个节点的脚本配置成嵌套状。由客户机205执行的脚本418内含由服务器203执行的脚本413。在该脚本413中,内含由路由器节点202执行的脚本408,并且,在脚本408中,内含由传感器节点201执行的脚本403。
若客户机205的脚本管理器419执行脚本418,则如上所述,抽取脚本413,发送给服务器203。在服务器203中,若执行脚本管理器414接收到的脚本413,则抽取内含的脚本408,发送给路由器节点202。路由器节点202在脚本管理器409执行从服务器203接收的脚本408时,抽取内含的脚本403,发送给传感器节点201。传感器节点201中,脚本管理器404执行脚本403。
这样,由客户机205定义的嵌套状的脚本在由各节点依次抽取后被发送,可由各节点的脚本管理器执行,若定义一个脚本,则可控制多个节点。在此,示出对一个传感器节点201和一个路由器节点202分配部分脚本408、403并执行的实例,但通过在一个脚本中,内含针对多个传感器节点201的脚本或针对多个路由器节点202的脚本,可由一个脚本来控制多个节点。
传感器节点201的观测事件402由传感器节点201的脚本管理器404按照脚本403的规则来判定,作为脚本403的指令执行完成事件405配送给路由器节点202。
之后,作为指令执行完成事件411、416,依次从路由器节点202向服务器203、再从服务器203向客户机205与上位节点发送。
<脚本的构成>
图3是上述图2的节点间执行的处理说明图。图3中,示出通信源节点101的脚本102与通信对象节点107的脚本117的关系,脚本102例如是图2的客户机205的脚本418,脚本117例如是服务器203的脚本413。
作为本发明的脚本执行引擎的脚本管理器接收由作为与Lisp等函数型语言一样的表述法的、指令的树构造表述的脚本102,以解释方式来执行该脚本。
基本的指令执行顺序规则与函数型语言一样,具有如下处理体系,即在通信源节点101的母指令103执行之前,按出现顺序执行全部子指令(104、105),并将指令返回数据设为母指令103的自变量。
并且,作为本发明的新的指令执行顺序规则,导入非同步指令。在非同步指令执行时,通过在非同步指令处理主体中使用如下功能作为指令执行请求112,即将(1)唯一识别执行中的脚本的活动ID109、(2)在脚本内唯一识别该非同步指令的指令ID、和(3)以该非同步指令为基础的部分脚本106作为部分脚本111,发送给通信对象节点107,并由通信对象节点107委托执行部分脚本111,由通信源节点101保存脚本102后暂时停止脚本的功能;和作为指令执行完成事件116,与返回数据115一起由通信源节点101接收该活动ID113与该指令ID114,从由该指令ID115识别的指令位置开始,根据该执行顺序规则,再次开始处理的功能,从而可进行非同步的处理。
安装等待接收特定事件的事件处理器,作为根据该非同步指令调用的非同步指令的处理主体,在非同步指令执行时,向作为存在于各节点上的Pub/Sub模块)(Publish/Subscribe模块)的安装之事件出版社执行事件配送预约,在配送事件的时刻设为非同步指令的返回,由此可实现‘基于脚本的事件处理器’。
另外,至通信对象节点107的通信功能作为根据该非同步指令调用的非同步指令的处理主体安装,作为至通信对象节点107的通信内容,除作为至该非同步指令处理主体的发送内容之活动ID109、指令ID110、111外,加入通信源节点ID108来安装,由此可实现通信源节点101向通信对象节点107执行脚本执行委托和功能。作为通信到通信对象节点的部分脚本106,通过发送上述‘基于脚本的事件处理器’,可从单一的脚本向多个节点分配事件处理器。
由于可利用用户输入的脚本来向多个节点分配、登录事件处理器,所以可对应于用户目的的变化来动态变更传感器网络的动作流程。另外,由于各节点的脚本管理器可根据脚本来分配事件处理器,所以如某个事件的条件判定结果、分配、登录新的事件处理器那样,可对应于状况来动态变更传感器网络的动作流程。
另外,在各节点之间通信的节点ID108由管理传感器网络整体的服务器203在传感器网络上作为唯一的识别符来确定、管理。
另外,活动ID109、113由后述的脚本管理器的活动处理器列表902作为活动活动列表内唯一的识别符来提供。另外,指令ID110、114在执行脚本处理的定时由脚本管理器的活动处理器105提供。
<传感器网络的构成要素细节>
下面,参照图4-图7来说明图2所示的传感器网络的各构成要素细节。
<传感器节点的细节>
图4是表示传感器节点201的设备构成的框图。另外,虽未图示,但图1所示的传感器节点206、207也一样构成。
传感器节点201是观测环境后发行事件的节点,由存储器502、CPU503、执行数据长期记录的闪存504、执行环境观测的传感器器件505、执行通信的通信器件506、通信连接器507构成。传感器节点201在启动时,将记录于闪存504中的程序(404、509-513)读入存储器502上,由CPU503执行,由此执行处理。
读入存储器502上的程序由作为本发明的脚本执行引擎的脚本管理器404、作为构成脚本的指令之处理主体集合的指令库509、利用传感器器件505来执行观测的传感器驱动器510、连接传感器驱动器510与脚本管理器404的传感器适配器511、利用通信器件506或网络连接器507来执行通信的通信驱动器512、连接通信驱动器512与脚本管理器404的通信适配器513、对应于用户目的来适当设置的应用程序514构成。
通信器件506和网络连接器507只要与具有特定识别符的另一节点执行双向通信即可,例如安装有线通信标准Ethernet(注册商标)、无线通信标准Blue Tooth、IEEE802.15.4、ZigBee等。
传感器器件505例如是温度传感器、湿度传感器、照度传感器、检测伏特平缓的变形传感器、检测落座于椅子上或门的开闭之压力传感器、检测人的存在之红外线传感器、检测脉搏的红外线传感器等。另外,图36所示的名片节点也是传感器节点201的一种,检测用户的按钮输入3603、3604、3605的开关构成传感器器件505。
另外,图7所示的客户机205也是传感器节点201的一种。键盘808或鼠标809构成传感器器件505,用户可通过是否现在执行操作来执行在座确认、通过检测现在操作的应用程序名来观测正在做什么等信息。
图1所示的致动器节点208的设备构成图除分别将传感器适配器511、传感器驱动器510、传感器器件505置换成致动器适配器、致动器驱动器、致动器器件外,与图5所示的传感器节点201的设备构成图一样,所以省略。作为致动器器件的实例,例如空调机、警报、扬声器、具有减光功能的灯等。
作为使传感器节点与致动器节点组合的节点,例如自移动型机器人。例如向观测对象移动的机器人、利用观测信息移动的清扫机机器人等。通过利用本发明,可利用来自服务器203的脚本来自由变更其举动。另外,即便在因自移动而与路由器节点的连接暂时中断的情况下,脚本管理器404也可根据来自传感器器件505的输入,执行动作的判断,利用致动器器件执行移动。
<路由器节点的细节>
图5是表示路由器节点202的设备构成的框图。另外,与图1所示的路由器节点209一样构成。
路由器节点202是中继通信的节点,由存储器602、CPU603、执行数据长期记录的闪存604、执行通信的通信器件606、通信连接器607构成。在路由器节点601启动时,将记录于闪存604中的程序(409、608-610)读入到存储器602上,由CPU603执行,由此执行处理。
读入到存储器上的程序由作为本发明的脚本执行引擎之脚本管理器409、作为构成脚本的指令处理主体集合之指令库608、利用通信器件605来执行通信的通信驱动器609、连接通信驱动器609与脚本管理器409的通信适配器610、对应于用户目的来适当设置应用程序611构成。
连接无线通信与有线通信的网关节点也是路由器节点的一种。此时,网络适配器610、网络驱动器609、网络器件605、网络连接器606构成具有有线用、无线用两组的构成。另外,执行无线通信的路由器节点202也可与检测‘与新的节点连接’、‘连接的节点脱离’这样的事件的传感器节点201连接。例如图36所示的名片节点3601所示,不保障人携带的传感器节点始终与固定的路由器节点连接。利用该性质,与名片节点连接的路由器节点中确认‘携带名片节点的人到来,、名片节点脱离的路由器节点可观测‘携带名片节点的人离去,等事件。
<服务器节点的细节>
图6是表示服务器203的设备构成的框图。
图6中,服务器203是执行观测信息的收集、累积、配送的节点,由存储器702、CPU703、执行数据的长期记录的硬盘704、执行通信的通信器件705、通信连接器706构成。在服务器203启动时,将记录在硬盘704中的程序(414、708-712)读入到存储器702上,由CPU703执行,由此进行处理。另外,也可使用SAN或NAS存储装置来代替硬盘704。
读入到存储器702上的程序由作为本发明的脚本执行引擎的脚本管理器414、作为构成脚本的指令处理主体集合的指令库708、利用通信器件705来执行通信的通信驱动器709、连接通信驱动器709与脚本管理器414的通信适配器710、对应于用户目的来适当设置的应用程序711、数据库712构成。
网络适配器710以各种手段向客户机205传输事件,所以考虑安装各种协议。例如,考虑按SIP(Session Initiation Protocol)执行发射通知或数据传输、按SMTP(Simple Mail Transfer Protocol)执行邮件发送、按HTTP(Hyper Text Transfer Protocol)发送以HTML(HyperText Markup Language)或XML等记述的事件等。另外,也可将上述协议反过来用作从客户机向服务器执行脚本的传输、执行委托的路径。WEB服务(WEb服务器)204的设备构成图与图6所示的服务器203的设备构成图一样,所以省略。
<客户机节点的细节>
图7是表示客户机205的设备构成的框图。
客户机205是作为与用户的界面执行来自用户的请求输入和结果或事件提示的节点,由存储器802、CPU803、执行数据的长期记录的硬盘804、执行通信的通信器件805、通信连接器806、向用户提示结果或事件的显示器807、接收来自用户的请求输入的键盘808或鼠标809构成。客户机205启动时,将记录在硬盘804中的程序(419、811-814)读入存储器802上,由CPU803执行,由此进行处理。
读入到存储器802上的程序由作为本发明的脚本执行引擎的脚本管理器419、作为构成脚本的指令处理主体集合的指令库811、利用通信器件805来执行通信的通信驱动器812、连接通信驱动器812与脚本管理器419的通信适配器813、对应于用户目的来适当设置的应用程序814构成。
<脚本管理器的概要>
用图8来说明本发明的脚本管理器901与上位应用程序905的连接界面。图8的脚本管理器901相当于图2的脚本管理器404、409、414、419。在此,所谓上位应用程序是指使用本发明的脚本管理器901的全部程序。上位应用程序的实例是与图2中的脚本管理器404连接的指令库509、传感器适配器511、通信适配器513、图6中的应用程序711、数据库712。
为了方便,将构成上位应用程序905的中心之程序块称为核心逻辑块(Application Core Logic)906。在图7的客户机205等中,还存在具有与用户执行交换的用户界面907之核心逻辑块906。
脚本管理器901由管理多个执行中的脚本之活动处理器列表902、作为上述Pub/Sub模块的安装之事件出版社903、管理可由脚本执行的指令的指令处理器列表904构成。
脚本管理器901与上位应用程序的关系大致可分为(1)上位应用程序委托脚本管理器901处理、(2)脚本管理器901委托上位应用程序处理这两种。
在上位应用程序委托脚本管理器901处理的情况下,使用postAction界面910与onEvent界面912。上位应用程序通过将脚本作为自变量,调用postAction界面910来执行脚本。将同步活动的执行结果作为返回,或将非同步活动的执行结果由onEvent界面912返回事先登录的事件处理器908。
在脚本管理器901委托上位应用程序处理的情况下,使用addCommand界面913与postCommand界面914。addCommand界面913在脚本管理器901中登录新的指令与作为处理主体的指令处理器909。在出现以脚本的上下文登录的指令的情况下,脚本管理器901经由指令处理器909的postCommand界面914,委托上位应用程序处理。
在脚本管理器901内含含作为Pub/Sub模块安装的事件出版社903,具有由onEvent界面911向脚本管理器901发送事件的功能、和通过由subscribe界面915向脚本执行事件配送预约来由onEvent界面912配送事件的功能。
<脚本管理器的细节>
用图9来说明图8的脚本管理器901的内部构造。
脚本管理器901在内部具有活动处理器列表902、指令处理器列表904、事件出版社903。
活动处理器列表902是管理多个执行中的脚本之块。活动处理器列表902存储0个以上的活动处理器1005。活动处理器1005管理从上位应用程序委托处理的脚本,作为展开为指令单位的树构造之标签树1008。另外,活动处理器1005具有作为用于在活动处理器列表902内唯一识别活动处理器的识别符之活动ID1007。活动ID1007在委托脚本处理的定时由活动处理器列表902提供。
指令处理器列表904是管理登录在脚本管理器901中的可执行的指令群之块。指令处理器列表904存储0个以上的指令处理器1009。指令处理器1009是针对构成脚本的指令的处理主体。指令处理器1009在指令名称1011中具有唯一表示指令名的识别符。
事件出版社903存储0个以上事件处理器1012。事件处理器1012是针对预约的事件向事件出版社903响应的处理主体。另外,作为接收本发明的后述图12中说明的非同步指令之指令执行完成事件的特别事件处理器,有时也存储活动处理器1005。
用图10来说明上述图9的活动处理器1005的标签树1008这构造。
标签树1008具有类似于作为W3C(World Wide Web Consortium)提倡的XML(eXtended Markup Language)之标准模块之一的DOM(Document Object Model)的构造。
标签树1008采用以标签1101为根,递归地具有0个以上分支的构造。例如,根标签1101的分支为标签1102和1103,标签1103的分支是标签1104和1105。
各标签具有作为用于在图9的活动处理器1005内唯一识别标签位置的识别符之指令ID1106、和表示指令或数据名称的标签名称1107,作为属性。指令ID1106在委托脚本处理的定时由活动处理器1005提供。
通过调用图9的脚本管理器901的postAction界面910,委托执行脚本,在活动处理器列表902内重新制作活动处理器1005,将脚本展开成标签树1008。活动处理器1005从图10所示的标签树1008的根标签1101(参照图10)开始,按照后述的执行顺序,解析标签,并调用标签名称1107与指令处理器列表904内的、与指令名称1011一致的指令处理器904的postCommand界面914,由此委托指令的处理。
<脚本的体系>
下面,说明接受本发明的脚本管理器901的脚本之语言体系。本发明的脚本表述法是递归的分层构造。在下面的说明中,用XML来表现脚本,但只要具有递归的分层构造,则也可以是lisp或scheme等S式表现、ConciseXML等XML亚流表现等其他构造。
首先,由EBNF(Extended Backus Naur FormISO/IEC 14977)记法来定义该脚本的格式。
(式1)<Script>::=<CommandLine>
(式2)<CommandLine>::=<Command><Param>*
(式3)<Param>::=<CommandLine>|<Date>
(式4)<Command>::=<SyncCommand>|<AsyncCommand>
(式5)<Command>::=<SequentialCommand>|<Parallel Command>
从此可知,脚本<Script>由以单一指令<Command>为根、作为其自变量<param>、具有0个以上指令<Command>或数据<Data>、递归地重复上述结构等构造来表现。
另外,指令分类为同步指令<SyncCommand>与非同步指令<AsyncCommand>之一、串行指令<SequentialCommand>与并行指令<parallelCommand>之一。
同步指令与非同步指令是基于指令自身的处理是同步处理还是非同步处理的分类。
同步指令是执行同步处理的指令。即,不返回控制,直到指令的处理结束。同步指令的实例是加法指令、乘法指令等四则运算指令。
非同步指令是执行非同步处理的指令。即,在指令处理的结束之前返回控制。非同步指令用于有可能指令处理时间长得不能无视、或不稳定、或未返回指令处理结果的情况中。非同步指令的实例是执行统计处理等长时间计算的指令、底部用户等待返回输入的指令、作为基于脚本的事件处理器安装的事件待机指令、通信指令等。来自非同步指令处理主体的非同步处理的返回作为指令执行完成事件到来,经图9的活动处理器1005的onEvent界面1006返回活动处理器1005。
串行指令与并行指令是基于是否并行执行位于该指令分支中的指令群的分类。
串行指令不执行并行执行。即,该指令的某个子指令在该子指令自身或其子孙指令为非同步指令的情况下,停止处理,直到该非同步指令的指令执行完成事件到来。
并行指令执行并行执行。即,该指令的某个子指令在该子指令自身或其子孙指令为非同步指令的情况下,不等待该非同步指令的指令执行完成事件到来,执行该子指令的弟指令。
通过利用图8的addCommand界面913,可利用脚本管理器901的制作者、传感器网络的管理者、用户之一或全部来自由扩展指令。
<脚本的执行顺序>
<1.基本的执行顺序>
下面,用图11-图14来说明脚本的执行顺序。
首先,用图11的实例来说明仅由同步指令、串行指令构成的脚本的执行顺序。仅由同步指令、串行指令构成的脚本的执行顺序与函数型语言一样,基于以下规则。
脚本从根(母)指令开始执行。
指令在执行全部子指令之后,将执行结果作为自变量,执行自己自身。
指令在指令执行之后,将自己自身置换为作为执行结果的数据。
在根指令结束的情况下,脚本结束。
通过按照该规则,图11的脚本由以下步骤执行。
首先尝试执行根指令1201。由于指令1201具有子1202和1203,所以尝试执行指令1202。由于指令1202具有子1204和1205,所以尝试执行指令1204。
由于指令1204不具有子指令,所以原样执行,被置换为作为执行结果的数据1206。之后,尝试执行作为指令1204的弟之指令1205。另外,弟指令是指同一分层指令中执行顺序相对低的指令。即,图11中,指令1202、1204是兄指令,指令1203、1205是弟指令。
由于指令1205不具有子指令,所以原样执行,被置换为作为执行结果的数据1207。
由于执行指令1202的全部子指令,所以执行指令1202自身,置换为作为执行结果的数据1208。
通过递归地重复上述动作,可执行以树构造记载的全部指令。在将根指令置换为数据的时刻,脚本结束,将作为结果的数据返回用户。
通过以上处理,从构成树构造的末端之子指令向根(母)指向依次执行具有树构造的指令的脚本,将各子指令的执行结果置换成数据,将最后执行的根指令的执行结果发送给用户。
<2.包含非同步指令时的执行顺序>
下面说明包含非同步指令的脚本的执行顺序。包含非同步指令的脚本的执行顺序除上述[rule 1]、[rule 2]、[rule 3]、[rule 4]外,还依照如下规则。
非同步指令不等待执行完成,立刻以未完成状态结束。
串行指令在子指令以示完成状态结束的情况下,以未完成状态结束自己自身。
根指令在以未完成状态结束的情况下,脚本以未完成状态结束。
在接收到指令执行完成事件的情况下,从该非同步指令开始再次开始处理。
在利用指令执行完成事件再次开始的脚本结束的情况下,将脚本执行完成事件发送给用户。
通过依照上述规则,图12的脚本以如下步骤执行。另外,在本例中,设作为串行指令(Sequencial)1301、串行指令1302的子指令,有非同步指令1304。
首先,在step11中,先尝试执行根指令1301。由于根指令1301具有子1302和1303,所以尝试执行子指令1302。由于指令1302具有子指令1304和1305,所以尝试执行指令1304。由于指令1304不具有子指令,所以原样执行。由于指令1304是非同步指令,所以委托非同步指令处理主体执行,以未完成状态结束。串行指令1302由于子1304以未完成状态结束,所以自己自身也以未完成状态结束。作为根的串行指令1301由于子1302以未完成状态结束,所以自己自身也以未完成状态结束。由于根指令1301以未完成状态结束,所以脚本以未完成状态结束,将控制返回到用户。
接着,在step12中,在非同步指令1304的处理主体的处理完成的时刻,发行指令执行完成事件,由此,将非同步指令1304置换成作为指令执行结果的数据1306。串行指令1302尝试执行相当于非同步指令1304的弟之指令1305。在串行指令1302的全部子指令完成之后,执行指令1302。串行指令1301接收子1302的执行完成,尝试执行子1302的弟指令1303。在根指令1301的全部子指令完成之后,将脚本执行完成事件发送给用户。
通过以上处理,在树构造的脚本中包含非同步指令的情况下,非同步指令委托非同步指令处理主体执行,以未完成状态结束。另外,若在非同步指令的处理主体处理完成的时刻发行指令执行完成事件,则依次执行以未完成状态结束的其他子指令。
<3.包含并行指令时的执行顺序>
下面说明包含并行指令的脚本的执行顺序。包含并行指令的脚本的执行顺序除上述[rule 1]至[rule 9]外,还依照如下规则。
并行指令无论特定的子指令之结束状态是完成状态、未完成状态之一,都尝试执行全部子指令。
并行指令在执行全部子指令的阶段,若存在未完成状态的子指令,则以未完成状态结束自己自身。
通过依照该规则,图13的脚本以如下步骤执行。另外,在本例中,设在串行指令1401的子指令中,有并行指令1402,作为并行指令1402的子指令,有非同步指令1404、1406、同步指令1405。
首先,在step21中,先尝试执行根指令1401。由于根指令1401具有子1402和1403,所以尝试执行指令1402。由于指令1402具有子1404、1405、1406,所以尝试执行指令1404。由于指令1404不具有子指令,所以原样执行。由于指令1404是非同步指令,所以委托非同步指令处理主体执行,以未完成状态结束。并行指令1402尝试执行非同步指令1404的弟指令1405。指令1405由于是同步指令,所以立刻完成执行,被置换成数据1408。并行指令1402尝试执行同步指令1405的弟指令1406。由于指令1406是非同步指令,所以委托非同步指令处理主体执行,以未完成状态结束。执行了全部子指令的并行指令1402由于子1404和1406未完成,所以自己自身也以未完成状态结束。串行指令1401由于子1402以未完成状态结束,所以自己自身也以未完成状态结束。由于根指令1401以未完成状态结束,所以脚本以未完成状态结束,将控制返回到用户。
在step22中,在非同步指令1404的处理主体的处理完成的时刻,发行指令执行完成事件,由此,将非同步指令1404置换成作为指令执行结果的数据1407。并行指令1402确认全部子指令的处理是否完成,由于子1409未完成,所以自己自身也以未完成状态结束。串行指令1401由于子1402以未完成状态结束,所以自己自身也以未完成状态结束。由于根指令1401以未完成状态结束,所以脚本以未完成状态结束。
之后,在step23中,在非同步指令1406的处理主体的处理完成的时刻,发行指令执行完成事件,由此,将非指令1406置换成作为指令执行结果的数据1410。并行指令1402确认全部子指令的处理是否完成,由于全部子指令的执行完成,所以执行自己自身。串行指令1401接收子1402的执行完成,尝试执行子1402的弟指令1403。在根指令1401的全部子指令完成之后,将脚本执行完成事件发送给用户。
通过以上处理,在作为并行指令的情况下,并行指令并行地执行子指令。另外,在子指令或其子孙指令为非同步指令的情况下,不等待非同步指令的指令执行完成事件的到来,执行子指令的弟指令。
<脚本的执行算法>
下面,参照图14、图15、图16、图17来说明脚本执行的算法。
<基本处理>
用图14来说明执行图8、图9的postAction界面910时,即上位应用程序向脚本管理器901输入表示活动的脚本,并请求执行该活动时的基本处理流程。
重新制作针对上位应用程序输入的脚本之活动处理器1005,追加到活动处理器列表902中。
活动处理器列表902重新制作在活动处理器列表中唯一的识别符,存储在作为活动属性的活动ID1007中。
活动处理器1005将自己自身作为事件处理器,登录到事件出版社903。
活动处理器1005将脚本展开成标签树1008,在图10所示的各节点之属性标签名称1107中,存储脚本中记载的标签名。
活动处理器1005通过递归地搜索标签树1008的全部节点,将活动处理器1005内唯一的识别符存储在指令ID1106中。
活动处理器1005执行由标签树1008的根1101指定的指令。即,从指令处理器列表904中搜索由图10所示的根指令1101的属性标签名称1107指定的名称之指令,若发现具有与标签名称1107相同的指令名称1011之指令处理器1009,则调用该指令处理器1009的postCommand界面1010。
<postCommand界面>
用图15来说明图14的step36调用出的、图9的指令处理器1009的postCommand界面914之算法。
判定当前处理的指令(自己自身)是串行指令还是并行指令。
在串行指令的情况下,对全部子指令调用后述的图16中说明的parseCommand界面。在返回为‘未完成’的情况下,立刻切断处理,以未完成状态结束。
在并行指令的情况下,对全部子指令调用parseCommand界面。
在对全部子指令结束执行后,在哪怕只有一个返回为‘未完成’的子指令的情况下,都以未完成状态结束。
执行自己自身的指令以外的处理。
以‘完成’状态结束。
<parseCommand界面>
用图16来说明图15的step42和step43调用出的、活动处理器1005的parseCommand界面1018之算法。
在当前处理的指令为非同步指令、并且指令执行完成事件还未到来的情况下,以未完成状态结束。
从指令处理器列表904中搜索对应的指令之指令处理器1009。在结果没有对应的情况下,由于该标签不是指令而是数据,所以原样以完成状态结束。
调用对应的指令处理器1009的postCommand界面914。在返回为‘未完成’的情况下,立刻切断处理,以未完成状态结束。
置换指令与作为其返回结果的数据。
以‘完成’状态结束。
<onEvent界面>
下面,用图17来说明响应于非同步指令的处理主体结束非同步处理时的‘指令执行完成事件’的、事件出版社903的onEvent界面911。
比较图3的指令执行完成事件116的活动ID113、与由图14的step33登录在事件出版社903中的活动处理器1005的活动ID1007,检索管理目的脚本的活动处理器1005,并调用该活动处理器1005的onEvent界面1006。onEvent界面1006中,比较指认ID114(参照图3)与图10的指令ID1106,搜索完成了的非同步指令的位置。
置换搜索到的指令与作为其返回结果的数据。
将当前参照的指令(自己)移位至搜索到的指令之母指令。
重复step65-step68,直到当前参照的指令(自己)为根指令。
判定母指令是串行指令还是并行指令。
在串行指令的情况下,对自己自身调用图16中说明的parseCommand界面。在返回为‘未完成’的情况下,将‘脚本未完成’标志设为真。
在并行指令的情况下,对全部兄弟指令调用图16中说明的parseCommand界面。在返回为‘未完成’的情况下,将‘脚本未完成’标志设为真。
将当前参照的指令(自己)移至母指令。
确认‘脚本未完成’标志,若为未完成,则执行step70-step71。
向用户发行脚本完成事件。
废弃脚本。
结束。
<指令的体系>
将脚本中使用的一般指令存储在上述图4-图7所示的各节点的指令库509、608、708、811中。指令考虑如下情况。
<progn指令与parallel指令>
<progn>::=“<progn>”<CommandLine>*“</progn>”<parallel>::=“<parallel>”<CommandLine>*“</parallel>”progn指令与parallel指令任一均按顺序执行子指令群。另外,progn指令是串行指令,parallel指令是并行指令。
<if指令>
<i>::=“<if>”<condition-param><then-CommandLine>[<else-CommandLine>]“</if>”<condition-param>::=<param>
<then-CommandLine>::=<CommandLine>
<else-CommandLine>::=<CommandLine>
If指令执行条件判定。在上述实例中,若第一子条件为真,则执行第二子,否则执行第三子。在不存在第三子的情况下,什么都不执行。If指令返回第一子的结果。
<asyncro指令>
<asyncro>::=“<asyncro delay=’”NUMBER“’>”<CommandLine>
“<asyncro>”asyncro指令是在待机由属性delay指定的数秒之后,执行子的非同步指令。
<When指令>
<When>::=“<When event=’”TEXT“’>”[<condition-param]>[<then-CommandLine>]]“</When>”when指令是待机事件的非同步指令。在由属性event指定的名称之事件到来时,执行第一子的条件评价,若结果为真,则返回事件,结束。在存在第二子的情况下,在结束之前执行第二子。若不存在第一子、第二子,则无条件返回事件,结束。
用图18的序列图来说明when指令的动作。另外,指令处理器(When)1902是图9民的指令处理器1009之一,When处理1903是事件处理器安装,是事件出版社903内的事件处理器1012之一,事件源1905是任意的事件发生源。
1906中示出用于执行when指令说明的采样脚本。这是在observed等种类的事件到来时,事件的参数Name为Temperature的情况下,向标准输出输出‘Temperature Observed’等消息的脚本。脚本1906作为标签树1008,展开为在if指令1907下有when指令1908、messageBox指令1910、在when指令1908下有equalTo指令1909的构造。该脚本由以下步骤执行。
从活动处理器1005中调用指令处理器(When)1902的postCommand界面。这相当于图16的step53。
指令处理器(When)1902生成作为事件处理器的安装之When处理1903。这相当于图15的step45。
When处理1903对事件出版社903进行预约,以在when指令1908的属性中记载的种类之事件到来时,调用自己自身。
事件源1905向事件出版社903发行事件。
事件出版社903向step83中登录的when处理1903配送事件。
When处理1903按照when指令1908的子要素中记载的规则,执行条件判定。
在条件为真时,When处理1903对事件出版社903取消step83中预约的事件配送预约。另外,通过省略step87,还可对继续发生的事件安装继续待机事件的指令‘whenever’。
When处理1903向事件出版社903发行指令执行完成事件。
事件出版社903根据指令执行完成事件的活动ID113,向图14的step33中事先登录的目的活动处理器1005配送指令执行完成事件。由此,调用图17的onEvent界面,继续处理。
<whenever指令>
<whenever>::=“<Whenever event=’”TEXT“’>”[<condition-param>[<then-CommandLine>]]“</Whenever>”whenever指令是继续待机事件的非同步指令。与when指令的差异在于when指令执行例如‘山田氏一来就执行’等仅1次的事件待机,相反,whenever指令以例如‘温度以1℃单位上升、下降时就报告’等多次到来的事件待机为目的。Whenever的动作与when一样,但包含whenever的脚本不结束。
.killAction指令<killAction>::=“<killAction id=’”NUMBER“’/>”killAction指令是强制结束由属性id指定的执行中的脚本之指令。强制结束when指令等非同步指令的返回等待状态的脚本。Whenever指令仅可由该指令强制结束。识别脚本的id是图9的活动ID1007,可作为上述图14的postAction界面之最终返回,提示给用户或上位系统(上位节点)。
<set指令>
<set>::=(“<set>”“<XPath>”<XPath>“</XPath>”<CommandLine>“</set>”)|(“<set Xpath=’”<XPath>“’>”<CommandLine>“</set>”)set指令是设定脚本内构成范围的变量之指令。<XPath>是以W3C执行标准化的、由作为表示XML文件位置的语言之Xpath指定的、表示变量位置的指标,例如第1个建筑的第2间房屋的温度可表现为Building[1]/Room[2]/Temperature。在XPath中,可如Temperature那样用作单独的变量,也可如Room[2]那样,用作1维排列。也可定义将多个脚本间设为范围的全局的set指令。另外,也可定义将值代入数据库中的set指令。
另外,由取得上述<XPath>指定的、上述set指令设定的变量之get指令、执行加减乘除的plus指令、minus指令、multiply指令、divide指令、或取一个以上的子、得到合计的sum指令、取一个以上的子、得到平均值的average指令等指令构成。
<通信指令>
图3的指令执行请求112所示的节点间通信功能可由作为本发明的非同步指令之一的通信指令[ask]实现。
用图19的序列图来说明ask指令的动作。另外,指令处理器(Ask)2002是图9的指令处理器1009之一,Ask客户机2003是通信客户机,与通信对象系统(通信对象节点)上的Ask服务器2004相互执行通信。活动处理器2005是通信对象系统上的活动处理器1005。
执行Ask客户机2003和Ask服务器2004的说明用的采样脚本示于2006中。这是执行四则运算(1+2)+3的脚本,由通信对象系统执行四则运算(1+2)的部分。脚本2006作为标签树1008,展开为在plus指令2007之下有ask指令2008、Value数据2012,在ask指令2008之下有plus指令2009,在plus指令2009之下有Value数据2010和2011的构造。该脚本由以下步骤执行。
从活动处理器1005中调用指令处理器(Ask)2002的postCommand界面。这相当于图16的step53。
指令处理器(Ask)1902生成作为通信客户机的Ask客户机2003。这相当于图15的step45。
Ask客户机2003向地ask指令属性中的目的地通信对象系统发送作为子的部分脚本(2009、2010、2011)。
通信对象系统的Ask服务器2004委托通信对象系统的活动处理器2005执行脚本。这相当于调用图14中说明的postAction界面。脚本2009由于仅由同步指令构成,所以立刻返回结果,将结果返回给Ask客户机2003。
Ask客户机2003向图中省略的事件出版社903发行指令执行完成事件,事件出版社903根据指令执行完成事件的活动ID113,向活动处理器1005配送指令执行完成事件。由此,调用onEvent界面,继续处理。
图2的活动406、410、415所示的事件处理器之配送、登录通过由本发明的ask指令配送when指令来实现。
即,通信指令在向通信对象节点发送作为子指令的通信指令与指令识别符和通信源节点的识别符之后,以未完成状态使通信指令的母指令结束。之后,一直待机到有来自通信对象节点的执行结果的返回,将来自通信对象节点的执行结果和指令识别符的返回作为契机,再次开始执行对应于以未完成状态结束的指令识别符之母指令,由此实现发送接收。
<非同步事件待机指令>
用图20来说明在图19的非同步通信指令ask的子指令中设置图18的非同步事件待机指令when的实例。另外,指令处理器(Ask)2102是图9的指令处理器1009之一,Ask客户机2103是通信客户机,与通信对象系统(通信对象节点)上的Ask服务器2104相互进行通信。活动管理器2105是通信对象系统上的活动处理器1005,事件源2105是通信对象系统上的任意事件发生源。
2107中示出说明本实例的采样脚本。这执行由通信对象系统待机事件observed,一有返回通信源系统就显示消息的动作。脚本2107作为标签树1008,展开为在if指令2108之下有ask指令2109、messageBox指令2111,在ask指令2109之下有when指令2110的构造。该脚本由以下步骤执行。
从活动处理器1005中调用指令处理器(Ask)2102的postCommand界面。这相当于图16的step53。
指令处理器(Ask)2102生成Ask客户机2103。这相当于图15的step45。
Ask客户机2103向通信对象系统发送作为子的部分脚本(2110)。
通信对象系统的Ask服务器2104委托通信对象系统的活动处理器2105执行脚本。这相当于图14中说明的调用postAction界面。
通信对象的源2104向图20中省略的通信对象的事件出版社903配送事件,事件出版社903最终向活动处理器2105配送指令执行完成事件。
活动处理器2105向活动执行源的Ask服务器2104配送脚本执行完成事件。
通信对象系统的Ask服务器2104向通信源系统的Ask客户机2103配送指令执行完成事件。
通信源系统的Ask客户机2103向图20中省略的通信源之事件出版社发行指令执行完成事件,事件出版社903最终向活动处理器2101配送指令执行完成事件。由此,调用onEvent界面,继续处理。
<并行指令>
下面,使用图21来说明作为本发明并行指令的最佳扩展之逻辑或指令‘or’截止指令‘any’。
图21的2201中示出说明并行逻辑或指令‘or’的动作之采样脚本。这是向id由a、b识别的客户机205配送、执行委托作为非同步指令的询问、回答请求指令questionBox,若任一回答为真,则输出消息的脚本。另外,questionBox指令是通过操作客户机的用户按下‘YES’按钮或‘NO’按钮来返回真假的指令。
因为or指令是并行指令,所以可对多个客户机一起发行询问句。另外,作为逻辑或的性质,由于只要任一子为真,则成立,所以作为其安装,若任一子指令完成事件到来,并其值为真,则可在剩余的子指令完成事件到来之前,以完成状态结束。由此,因为可不等待全部回答地继续处理,所以可执行有效的处理。这作为图15所示的postCommand界面的or指令之特别安装,通过在step44执行上述判定来实现。同样,逻辑与and指令也可安装。
图21的2202中示出说明并行截止指令‘any’的动作之采样脚本。这是如下脚本,即作为民意测试,向节点的id由a、b、c识别的客户机205一起配送、执行委托作非同步指令的询问、回答请求指令questionBox,利用any指令,将回答截止数n设为2个,另外,将回答截止时间limit设定为10分钟,利用average指令平均化其结果,由set指令代入变量x,并由messageBox指令输出到标准输出。
因为any指令是并行指令,所以可向多个客户机(节点)一起发行询问句。作为民意测试功能,可设定截止数、截止时间。any指令也与or指令一样,在图15所示的postCommand界面的step44中,在有未完成的子指令的情况下,不在未完成状态下结束,在完成指令到达指定的个数的时刻、或超过截止时刻的时刻,移动到step45即可。
作为并行截止指令‘any’的另一特征,可解决作为传感器网络课题的‘节点的低可靠性问题’。传感器网络是具有通过大量敷设基本上低价格的传感器节点来以数量覆盖各传感器节点的可靠性的不足等原理的系统,必需认识因故障等原因不保证传感器节点的返回一定返回等事实。但是,一般事件处理器在未发生事件时也执行任何动作。因此,需要对不返回事件的情况采取对策。
让误检测或看漏故障而重复的传感器节点一起观测想观测的事项,通过使用并行截止指令‘any’的回答截止数,可统计地抽取想要的事件。
另外,一般称为DMS(Dead Man Switch)的、在没有定期联络时就判定为节点故障的逻辑块可通过使用并行截止指令‘any’的回答截止时间来安装。
<压缩脚本>
下面,用图22来说明作为本发明的最佳扩展之压缩脚本。
一般来说,图2中的传感器节点201或路由器节点202从价格或电力方面看,与服务器203相比,多由存储器尺寸、CPU处理速度、通信速度上不足的硬件来实现。此时,若由XML来记载本发明的脚本,则可能在通信成本或CPU处理成本、存储器消耗量方面产生问题。因此,期望以压缩构造来发送脚本。
图22的脚本2302是传感器节点201的事件处理器的记述例,是‘若温度为26℃以上则发行事件’等脚本。另外,图中,greaterThan指令是大小比较指令,getTemp指令是温度观测值取得指令,throw指令是事件发行指令。若由C语言来记载该脚本,则如图22的2301所示。
图22的2303中示出由压缩脚本来记载本例的实例。本压缩脚本的压缩方法基于以下规则。
指令名映射到对应的指令识别符。
在指令的子数为固定个数的情况下,作为压缩者、展开者间双方已知的,省略。
在指令的子数可变的情况下,在全部子的开头中记载子数。
另外,指令识别符的名称空间尺寸可通过使用非专利文献‘WAPBinary XML Content Format W3C NOTE 24 June 1999’中公开的Multi-byte Integers来自由扩展。另外,指令识别符的名称空间的冲突问题可通过节点启动时向服务器发送该节点适用的指令名与指令识别符的映射表格来解决。
用图23、图24来说明在不足的硬件上的压缩脚本执行之算法。
通过使用下述算法,不必将压缩脚本展开为树构造,仅使用具有指令个数尺寸的排列result就可处理脚本。
图23是不足硬件上的压缩脚本中之图9的指令处理器1009的postCommand界面914的安装,相当于图15。
将压缩脚本的指针ptr增加指令识别符大小。
调用预定子数的图24的parseCommand。
执行自己自身的指令以外的处理。另外,将从最后数第n个子值存储在排列result的存储数resultNum-n+1中。
将排列result的存储数减去子数大小,存储自己自身的返回值,将存储数加1。
图24是不足硬件上的压缩脚本中之图9的活动处理器1005的parseCommand界面1018,相当于图16。
搜索对应于压缩脚本的指针ptr值的指令之指令处理器1009。结果,在没有对应值的情况下,前进到step122-step124。
在压缩脚本的指针ptr的值为数据<Value>的情况下,因为下一值为数据,所以将数据追加到排列result中,将ptr与指令识别符前进数据尺寸大小。
在压缩脚本的指针ptr的值为真假值<true/>的情况下,将真值追加到排列result中,将ptr前进指令识别符大小。
在压缩脚本的指针ptr的值为真假值<false/>的情况下,将假值追加到排列result中,将ptr前进指令识别符大小。
调用对应的指令处理器1009的图23所示的postCommand界面。
如上所述,根据本发明,因为可对应于存在多个、不能一般化地动态变化的用户目的来动态变更传感器网络节点上的分散事件处理之动作流程,所以可在单一的传感器网络上反映多种用户目的。因此,因为可由多个用户来费用分担传感器网络的设置、维修费用,所以可实现观测宽地域环境的大规模传感器网络基础。
另外,因为通过本发明可对应于动态变化的状况来动态变更分散事件处理之动作流程,所以与执行事先固定的事件处理的情况相比,不必执行无用的处理,结果,可削减配送的事件数量,故可减少向服务器的负荷集中。
另外,通过从客户机205向传感器网络指示具有树构造的指令之脚本,可容易地控制多个节点,用户只要定义一个脚本即可,所以可从具备庞大数量的传感器节点201之传感器网络来很容易地利用期望的信息。并且,通过适当变更脚本,可对应于用户的请求变化来容易地变更利用的传感器网络的信息。
<第2实施方式>
图25表示第2实施方式,表示具备持有不同目的的多个客户机的传感器网络。
图25中,假设由传感器节点2601、服务器2607、具有不同目的的客户机2614和2615构成的传感器网络。利用客户机2614和2615的请求,传感器节点2601上的事件处理器2602分别执行不同的事件加工,发行两种二维事件2605。其他构成与上述第1实施方式一样,传感器节点2601、2607与上述第1实施方式的图4一样,服务器2607与服务器203一样构成。
在此,说明作为现有传感器网络课题的‘二维事件识别符问题’及其解决策略。
一般来说,事件2605由识别事件种类的识别符与事件的参数构成。在此,产生谁决定识别事件种类的识别符的问题。不能由客户机2615来决定识别符。否则,有可能在不同的客户机2614和2615之间发生识别符的冲突。但是,也不能由服务器2607一维管理、动态分配识别符。否则,有可能在覆盖不同区域的服务器2607和服务器2609之间发生识别符的冲突。另外,也不能标准化二维事件识别符。这是因为所谓标准化二维事件识别符是指由标准化组织来固定事件处理器的规则,削减用户制作事件处理器的自由度。通过将唯一识别事件请求源的客户机之识别符、与由客户机自由决定的识别符相组合后的识别符用作二维事件的识别符,来解决上述问题。但是,二维事件的识别符之尺寸变大,适用于以处理大量事件为前提的传感器网络领域不现实。
在本发明中,如上述第1实施方式的图3所示,由作为非同步活动的返回之活动完成事件116来代替二维事件,利用活动ID113和指令ID114来决定事件返回对象,所以不产生上述的二维事件识别符问题。
用图25来说明作为现有传感器网络课题的‘事件泄漏问题’及其解决策略。
传感器节点2601的事件处理器2602中的信息加工之结果输出的二维事件2605是对应于用户请求制作的有价值的信息,不让持有相反利益的其他用户知道。在通信路径上窃听事件2605的情况下,有可能泄漏事件的种类或事件返回对象。
在本发明中,如图3所示,由于在活动完成事件116中不包含表示事件种类的信息、唯一识别事件请求源的客户机之识别符,所以不产生上述问题。
<第3实施方式>
图26、图27表示第3实施方式,表示一个客户机利用多个路由器来处理多个传感器节点的实例。
图26中,示出传感器网络由发行‘人检测事件’的人检测传感器节点2701、发行‘温度观测事件’的温度传感器节点2702、安装了接收这些事件的事件处理器2704的服务器2703构成的实例,其他构成与上述第1实施方式一样。另外,传感器节点2701、2702与上述第1实施方式的传感器节点201一样构成,服务器2703与上述第1实施方式的服务器203一样构成。
服务器2703的事件处理器2704中考虑安装如下规则。
若人所在的房间为30℃以上,则启动空调。
在房间温度为40℃以上的情况下,判断为火灾,若有人,则发行避难劝告。
在此,说明作为现有传感器网络课题的‘规则数量爆发问题’及其解决策略。一般来说,设当事件处理器管理N个状态变量,接收M种事件,执行状态转变时,将应记述的状态转变这规则数量设为N×M个以上。因此,有可能由于事件处理器制作者的规则记载泄漏而无意诱发活动。这被称为规则数量爆发问题。
在现有实例中,如图27的列表2801所示记述事件处理器。列表2801由于是以到来事件为中心的记述,所以不容易表现上述规则,可读性低。另外,需要执行多个状态变量、条件判定。若状态变量或事件数增大,则列表2801的复杂度爆发地增大,可容易类推,事件处理器制作者的规则记载泄漏发生概率也增大。
作为本发明的脚本,通过利用上述第1实施方式所示的并行指令、非同步待机指令,可如列表2802所示记述上述规则。列表2802可容易地表现上述规则,另外,可排列状态变量,所以可抑制事件处理器制作者的规则记载泄漏。
<第4实施方式>
图28、图29表示第4实施方式,表示节点间的构成动态变化的情况。
图28中,设传感器节点2901和2902利用路由器节点2903、2904、2905、2906与服务器2907连接。在此,提供若用户指定的观测对象区域2908之平均湿度偏移指定值,则传感器节点2901、2902输出消息等功能。另外,并行配置路由器节点2904、2905。
另外,传感器节点2901、2902与上述第1实施方式的传感器节点201一样构成,路由器节点2903-2906与上述第1实施方式的路由器节点202一样构成,另外,服务器2703与上述第1实施方式的服务器203一样。
在此,在现有的传感器网络中存在‘Ad-Hoc问题’等问题,说明其解决策略。传感器网络是基本上具有Ad-Hoc性的网络系统。即,可利用的传感器节点的位置或个数、能力由于传感器节点的故障、传感器节点的追加、移动、撤消等原因,可能在用户不能控制的定时变化。因此,用户不能事先制作动作流程,而必需在运用时对应于状况来动态制作。
图28中,不在服务器2907中引起负荷集中,另外,通信量最小的最佳方式是将传感器节点2901和2902的观测值累积于路由器节点2903中,利用路由器节点2903的事件处理器来执行平均化处理与指定值偏移判定的方式。但是,观测对象区域2908对应于用户目的或状况变化,对应的传感器节点2901、2902或路由器节点2903-2906的构成也变化,所以有必要动态发现传感器网络的变化,由此对各节点设定最佳的动作流程。
在本发明中,因为可将分散节点间的动作流程记载为单一的脚本,所以可仅通过执行脚本的变更来变更动作流程。
用图29来说明脚本的变更方式。
列表3001是用户执行服务器2907执行的脚本实例。getTempFromRegion指令取得由子指定的矩形区域(观测对象区域2908)的平均湿度。由此,若由矩形表示的观测对象区域2908的平均温度超过30℃,则列表3001显示‘温度为30℃以上’等消息。
安装在服务器2907中的getTempFromRegion指令的处理主体具有搜索包含于观测对象区域2908中的传感器节点2901、2902的节点搜索部、和搜索分别使通信到达该传感器节点群的最佳路径(路由器节点)2906-2904-2903-2901和路径2906-2904-2903-2902之路径搜索部。上述节点搜索部件和路径搜索部件例如可利用Ad-Hoc的无线通信标准ZigBee中采用的AODV(Ad-hoc On-demand Distance Vector)等手段。
图29的列表3001中通过使用该节点搜索部和路径搜索部来变形脚本,可得到列表3002。列表3001的第3行至第6行的getTempFromRegion指令被置换为列表3002的第3行至第10行。在此,列表3002的第4行至第6行经由路径2906-2904-2903-2901执行委托传感器节点2901温度观测事件getTemp。列表3002的第7行至第9行经由路径2906-2904-2903-2902执行委托传感器节点2902温度观测指令getTemp。列表3002的第3行利用平均计算指令average来计算子的返回平均。
通过在列表3002中适用下示的规则后变形脚本,可得到列表3003。变形脚本的基本规则为数学领域公知的交换法则与分配法则。
分配法则AB·AC=A(B·C)[rule32]交换法则A·B=B·A作为交换法则与分配法则的适用条件,使用如下规则。
通信指令与该通信指令的母指令在通信指令不具有兄弟指令,并且保证该母指令在通信源节点与通信对象节点执行相等的动作的情况下,可适用[rule31]的交换法则。
在通信指令具有兄弟指令,并且保证全部兄弟指令在通信源节点与通信对象节点执行相等的动作的情况下,可适用[rule31]的交换法则。
在通信指令具有针对相等的通信对象之通信指令作为兄弟指令的情况下,可适用[rule32]的分配法则。
通过适用这些规则,列表3002的第4行和第7行一起在列表3002的第1行和第2行之间移动。由此,列表3003经由路径2906-2904-2903在路由器节点2903执行平均化处理与指定值范围判定,如上所述,可得到对应于运用状况的最佳动作流程。
另外,节点搜索部通过从存在于由脚本指定的空间区域内的多个传感器节点中选择该请求精度必需的充分的传感器节点群,也可累计空间区域内的传感器节点之观测结果,取得该空间区域的特征量。
<第5实施方式>
图30示出第5实施方式,表示可变更上述第1实施方式的传感器节点201之举动的脚本一例。另外,传感器网络的构成与上述第1实施方式一样。
图30的列表3101是记载若观测值超过阈值则发送事件的规则之脚本。首先,loop指令下重复子。接着,在sleep指令下,停止由属性delay指定的时间,然后,若由getTemp指令观测到的温度超过30℃,则发行unusual事件。
列表3102是记载观测值一变化就发送的规则等的脚本。由getTemp指令取得的温度一从old等密钥的温度履历变化,就发行Change事件。
列表3103是记述发送时间平均值的规则之脚本。在执行3次观测之后,发行具有该平均值的AVE事件。
列表3104是温度、湿度等多个观测值的判定条件实例。在温度超过25℃、并且湿度超过60%时,发行Disconfort事件。
列表3105是记述发送最大值、最小值、平均值等规则的脚本。
通过向传感器节点201发送并执行委托从列表3101至3105的脚本,可在传感器网络运用中使传感器节点的举动动态变化。由此,可弹性地动作传感器网络。
<第6实施方式>
图31表示第6实施方式,表示在将上述第1实施方式的传感器节点201设为节能型时的传感器器件与微机的主要部分,其他构成与上述第1实施方式的图4一样。
构成传感器节点201的微机3220一般可切换功耗少的停止模式与功耗多的激活模式。停止模式时的微机3220利用来自中断端口的中断移动到激活模式。
通过设置与微机连接的中断端口3218,利用计时器中断使微机移动到激活模式,继续执行脚本的处理,可实现以时间事件驱动的脚本服务器。
例如,作为记载于上述图30的列表3101第2行中的非同步停止指令之sleep指令的安装,在计时器3219中设定停止时间,存储图3的指令ID,并使微机移动到停止状态,微机一启动,则再次开始根据存储的指令ID的处理,从而可实现仅在观测时间移动到激活模式的能量效率好的传感器节点。
另外,同样,通过由硬件安装观测值与固定值简单的比较、逻辑判定运算电路,可实现由观测值事件驱动的脚本服务器。
图31中,传感器节点201a具有温度传感器3201与湿度传感器3202,各传感器的输出由比较器3207-3210比较上限值与下限值。另外,由OR门电路和AND门电路判定比较器3207-3210的输出后,输入到微机3220。
在微机3220中,设置中断端口3216、中断端口3217之一或双方。中断端口3216在‘温度观测值超过指定范围的情况下或湿度观测值超过指定范围的情况下’产生中断。中断端口3217在‘温度观测值超过指定范围的情况下且湿度观测值超过指定范围的情况下’产生中断。
另外,温度传感器3201和湿度传感器3202始终输出表示观测值的电压。下限温度3203、上限温度3204、下限湿度3205、上限湿度3206是参照电压生成电路,利用来自微机的输出端口3215的选择信号,输出事先定义的参照电压。比较器3207、3208、3209、3210比较输入的电压,在(+)输入电压比(-)输入电压高的情况下,输出表示真值的电压。
该参照电压生成电路3203-3206例如可由带隙参考电路等构成。作为带隙参考电路,例如可适用<http//www.sony.co.jp/-semicon/japanese/img/sonyj01/e6801283.pdf>中记载的‘10比特80MSPS 1chD/A置换器’的第4页中记载的电路。通过将使用带隙参考的独立恒定电压源输出端子连接于VREF上,可得到不依赖于电源电压变动的稳定的电压。
比较器3207在观测温度低于下限温度时返回真。比较器3208在观测温度高于上限温度时返回真。比较器3209在观测湿度低于下限湿度时返回真。比较器3210在观测湿度高于上限湿度时返回真。OR电路3211、3212、3213分别在输入逻辑或为真的情况下输出真,AND电路3214在输入逻辑与为真的情况下输出真。
如上所述,可由硬件来安装观测值与固定值简单的比较、逻辑判定运算电路。另外,因为传感器节点201a在不必处理时停止,所以可抑制传感器节点201a的功耗,尤其是在适用于可移动的无线式传感器节点201a的情况下,可延长电池的充电周期或寿命。
<第7实施方式>
图32表示第7实施方式,表示可在平时、紧急时都可利用的传感器网络。另外,传感器节点与服务器等与上述第1实施方式一样构成。另外,虽未图示,但也可在传感器节点3301与服务器3302之间设置多个路由器节点。
通过本发明,可提供对应于状况来变更事件处理器的动作流程之传感器网络。作为传感器网络的意义,除可时常获得宽地域环境的观测信息之外,还具有可在紧急时获得必需的环境信息的潜能。例如,在地震、火灾、水灾等灾害发生时,在电力网截断时、具有自立电源的节点构成的无线网络存在的意义大。但是,仅在紧急时敷设传感器网络的效率与费用比差,期望取得即便在平常时也可两全的状态。另外,紧急时必需的粒度(空间间隔和时间间隔)的信息在平时一般不需要,时常取得无用的信息费电。
用图32来说明可在平时、紧急时都可利用的传感器网络的功能。平常时,不使观测对象区域3301的全部传感器节点运行,例如仅环境监视必需的充分空间间隔的传感器节点(图中3305所示的黑节点)运行。为了实现功耗的平均化,也可定期将运行的传感器节点群3301交换成未运行的节点。紧急时,启动全部传感器节点来详细收集环境信息,或例如仅运行火灾发生地点周围等临界地点3305的周围传感器节点3304。作为这种实例,敷设于大厦中的人检测传感器节点可实现在平常时用于混杂状况监视、火灾发生时用于发现要避难者的传感器网络,敷设于山中、森林内的音响传感器节点可实现平常时用于动物的生息状况监视、发生遇难者时用于遇难者搜索的传感器网络,敷设于沿岸的浮杆上的海水湿度传感器节点可实现平常时用于学术上的利用、异常温度发生时为了防止扇贝坏死而使养殖笼下降的传感器网络。
<第8实施方式>
图33、图34表示第8实施方式,表示通过由所述第1实施方式所示的路由器节点执行脚本,执行传感器节点的搜索与观测请求、结果的收集的实例。另外,其他构成与上述第1实施方式一样。
设图33为在Ad-Hoc上连接传感器节点3401-4、3408、3412和路由器节点3405-7、3409-11、3413、3414的传感器网络。所谓Ad-Hoc的传感器网络是指服务器3415、传感器节点和路由器节点利用无线连接,可检测通信范围内的邻接节点的存在,但因为动态变更传感器节点、路由器节点的构成,所以服务器3415不能把握整体构成的传感器网络。
设各传感器节点具有温度传感器,用户执行‘想知道区域的温度最大值’等请求。因此,需要搜索存在于区域中的传感器节点,由该传感器节点来执行观测,计算结果的最大值。
实现上述请求的脚本可由图34来实现。第2行的defun指令定义用户定义函数func。函数func由第7行递归地调用自己自身。由第13行的set指令在变量maxTemp中存储作为func函数的执行结果之最大温度,由第14行向客户机3416发送最大温度。
第3行的max指令从一个以上的子中选择取得最大值的子。第4行的broadcast指令向通信范围内的全部邻接节点发送作为子的部分脚本。为了防止环路,拒绝具有相同活动ID的脚本之双重接收。第6行的isRouterNode指令若为路由器节点则返回真。
通过服务器3415执行图34的脚本,将作为broadcast指令的子的第5至第9行传输给路由器节点3411、3414。路由器节点3411向isRouterNode指令返回真,执行第7行,递归地执行第2行之后的指令,将作为broadcast指令的子的第5至第9行传输给路由器节点3407、路由器节点3410、服务器3415。为了防止环路,无视服务器3415的通信。通过递归地重复上述动作,部分脚本到达传感器节点3401、3402、3403、3404、3408、3412。传感器节点向isRouterNode指令返回假,执行作为第8行的温度观测指令的getTemp指令。其结果变为broadcast指令的返回,由搜索路径上的路由器节点利用max指令选择最大值,最终向服务器3415返回全部传感器节点观测到的温度之最大值。
这样,本发明的脚本服务器通过使用恢复构造,可紧凑地记载执行传感器节点搜索的路由器节点的举动、观测温度的传感器节点的举动、集约其返回的路由器节点的举动。另外,通过将第6行的isRouterNode的部分变更成各种各样,可安装例如避免使用电池余量少的路由器节点等各种路由搜索算法。另外,通过将第8行的getTemp指令变更为非同步事件待机指令whenever,可实现继续的观测。另外,因为该动作由脚本来记载,所以可对应于用户的请求来实现多彩的动作。
<第9实施方式>
图35表示第9实施方式,表示所述第1实施方式中的传感器节点201中的用户界面的一例。
图35表示作为对人类简单的交流工具、在将传感器节点201设为名片节点的情况下、传感器节点201中的用户界面一例。
名片节点3601是图2的传感器节点201的一种,是兼任人的名片之传感器节点。名片节点3601便携于人身上,具有利用按钮按下来检测人的意志显示的功能。名片节点3601具有显示询问句的液晶画面等显示装置3602、和用于回答的按钮(返回按钮3603、选择按钮3604、确定按钮3605),具有至使用无线的路由器节点202或服务器203的通信功能。并且,也可提供用于唤起用户从其他节点到达询问句用的蜂鸣器功能、出版功能、LED等灯功能。并且,也可提供产生人携带的传感器节点等的性质、且执行环境计测的温度传感器、湿度传感器、执行人的行动计测的加速度传感器等。
在从其他人(或节点)发行询问的情况下,如画面3602所示,显示询问句及其回答一览。人通过多次按下选择按钮3604,从回答一览中选择回答,通过按下确定按钮3605,确定回答。在发行多个询问的情况下,通过按下返回按钮3603,利用状态转变3607,在画面3606中显示未回答的询问句一览。在显示询问句一览的状态下,多次按下选择按钮3604,通过按下确定按钮3605,确定想回答的询问句,并可利用状态转变3608返回到画面3602。
名片节点如画面3606所示,必需保持多个询问句的功能。另外,包含名片节点的传感器网络还需要向进行询问的人适当配送针对询问句的回答的功能。
通过适用本发明,可实现包含名片节点的传感器网络。将上述第1实施方式的脚本管理器901安装在名片节点上,向该脚本管理器901发行作为具有‘将询问句显示于画面中,并待机人的回答按钮按下事件’等功能之非同步指令的询问回答请求指令,作为图19中说明的非同步通信指令ask的子。动作序列与图20一样。在本发明中,因为可利用图3的返回116之活动ID113来识别进行询问的服务器侧的脚本,所以可向询问者适当配送询问的回答。
并且,作为针对名片节点的通信指令ask的子,通过与图18的条件判定指令if1907组合后,递归地将询问回答请求指令制作成树状,可容易地安装对应于询问回答的再询问等复杂的处理。
<第10实施方式>
图36表示第10实施方式,在建筑物的各房间中设置作为路由器节点的网关节点,在各网关节点之下设置传感器节点,设置管理各网关节点的服务器与作为致动器节点的家电制品(例如空调机)。
图36中,配置由网关节点3707、服务器3710、空调机节点3708构成的传感器网络系统。网关节点3707通过无线通信与作为同时具有人携带的传感器节点及客户机功能的节点之可移动节点3704进行无线通信。
作为致动器节点的空调机节点3708与空调机连接,具有通过适当的指令来将室内保持在指定的温度、湿度的功能。当携带可移动节点3704的用户370来到该建筑物内时,该传感器网络系统以用户3703喜好的温度来控制空调机节点3708。
在本实施方式中,服务器3710相当于上述第1实施方式的服务器203,网关节点3707、3708相当于路由器节点202,可移动节点3704、3705相当于传感器节点201和客户机205,空调机节点3708相当于致动器节点208,其他构成与上述第1实施方式一样。
该功能的实现利用以下方法来进行。在可移动节点3704中登录‘以与用户3703的喜好(例如18℃)一致的温度、湿度来控制空调机’等脚本,对应于从网关节点3707至可移动节点3704的连接事件,可移动节点3704经由网关节点3707向服务器3710发行该脚本。服务器3710通过执行该脚本,在指定的温度、湿度下来使空调机节点3708运行。
若由现有的传感器网络来实现本功能,则传感器网络管理者侧必需事先登录该功能,作为服务器3710的事件处理器。因此,必需执行不是用户单独的喜好而是平均喜好的温度控制,或将用户的喜好事先登录在服务器3710中。若使用本发明,则只要仅将本发明的脚本管理器登录在服务器3710或空调机节点3708中即可。本适用在用户3703例如为咳嗽或感冒的情况、或早产儿等传感器网络管理者不能预测的特殊事情的情况下有效。
<第11实施方式>
图36表示第11实施方式,在建筑物的各房间中设置作为路由器节点的网关节点,设置管理各网关节点的服务器。网关节点3707通过无线通信与作为同时具有人携带的传感器节点及客户机功能的节点之可移动节点3704进行无线通信。
认为有需要彼此进行商洽的的社员3703和3760。设两个社员3703出差多,很忙,执行商洽的日程调整。若知道两个社员3703和3706偶然在同一出差目的地,则可在那里执行商洽,由此改善业务效率。以前不能有效活用这种偶然。
该功能的实现利用以下方法来进行。在可移动节点3704中登录‘用户3706的可移动节点3705一连接到传感器网络,就通知给可移动节点3704’等脚本,对应于从网关节点3707至可移动节点3704的连接事件,可移动节点3704经由网关节点3707向服务器3710发行该脚本。
服务器3710通过执行该脚本,待机可移动节点3705的连接。用户3706到来,该脚本的事件待机指令接收来自可移动节点3705的连接事件,向可移动节点3704发行活动执行完成事件。可移动节点3704接收该事件,提示给用户3703,由此用户3703知道用户3706到来。
若由现有的传感器网络来实现本功能,则必需在社员有可能出差的全部出差目的之服务器3710的事件处理器中登录上述功能。但是,现有的传感器网络中没有登录这种单独请求的功能,另外,事先登录在全部出差目的中就服务器3710的处理负荷而言也是不现实的。
本功能也可通过脚本的修正,进一步容易地扩展为‘一旦确认用户3706的到来,则向用户3706打听商洽的程度,若了解,则通知用户3704’等规则。在可移动节点3705中登录上述图35中说明的名片节点之界面与询问回答请求指令,作为来自可移动节点3705的连接事件之响应处理,向可移动节点3705发行该询问回答请求指令,仅在结果为允诺的情况下,才对可移动节点3704发行活动执行完成事件。
<第12实施方式>
图37说明用于生成脚本的用户界面,作为图2所示的客户机205中的用户界面的安装例。
在图2所示的客户机205的脚本生成画面中,以表形式显示属性条件式设定画面3810、关系条件式设定画面3811、逻辑式设定画面3812、整体式设定画面3813。
属性条件式设定画面3810具有下拉菜单3814和3815,表示‘指定的对象或其属性’3814变为‘指定的状态’3815时成立的条件式。关系条件式设定画面3811具有下拉菜单3816、3817和3818,表示‘指定的对象或其属性’3816与‘指定的对象或其属性’3817具有‘指定的关系’3818时成立的条件式。逻辑式设定画面3812具有下拉菜单3819、3820和3821,表示‘指定的条件’3819与‘指定的条件’3821在‘逻辑或或逻辑与’3820成立时成立的条件式。在此,‘指定的条件’选择属性条件式3810、关系条件式3811、逻辑式3812之一。事件式设定画面3813具有下拉菜单3822和3823,是设定‘指定的条件’3822成立时、执行‘指定的活动’3823的画面。另外,显示于各下拉菜单中的数据是从服务器3710的未图示的数据库中取得的数据。
在脚本生成画面中,仅在初始状态下记述整体式设定画面3813,通过用户的条件追加操作,可任意追加属性条件式3810、关系条件式3811、逻辑式3812。
为了实现用户的简便设定,考虑用户在选择下拉菜单时,根据用户的选择操作来分层地显示画面的方法。
下拉菜单3814、3816、3817都指定对象或其属性。首先显示对象的计划者显示画面3805,选择对象的种类。对象的种类考虑例如场所(设施名)、区域、人物。若用户选择场所,则显示场所选择画面3803,以选择场所。
在用户想进一步设定场所的属性的情况下,显示属性选择画面3801,以选择基于该场所的属性。若在画面3805中用户选择区域,则显示地图,作为区域选择画面3804,并利用鼠标形成的矩形或多边形输入,选择区域。在用户还想进一步设定区域的属性的情况下,显示属性选择画面3802。若在画面3805中用户选择人物,则显示人物选择画面3806,以选择人物。在用户想进一步设定人物的属性的情况下,显示属性选择画面3807,以选择该人物的属性。
在下拉菜单3815中指定对象或属性的状态。最初显示关系选择画面3824,让用户选择关系,然后,显示常数值输入画面3808,输入值。同样,在下拉菜单3815中指定两个对象或属性间的关系。最初显示关系选择画面3809,让用户选择关系,然后,显示常数值输入画面3808,输入值。
通过使用这种图形用户界面,可收集用于生成脚本的信息。
用图38来说明将图37的用户界面输入的用户请求变换为脚本的方法,作为图36所示服务器3710或图2所示服务器203的安装例。
图38中,设脚本3901为图37的用户界面输入的用户请求。这例如通过使用图37的关系条件式设定画面3811,在画面3806中,对下拉菜单3816选择‘山田氏’,在画面3803中,对下拉菜单3817选择‘第一会议室’,对下拉菜单3818选择‘包含关系’,使用整体式设定画面3813,对下拉菜单3822选择上述关系条件式3811,对下拉菜单3823设定显示‘山田氏来了’等消息来得到。脚本3901是宣言型语言,仅记述用户的请求。如何执行不进行说明。以这为初始式,通过变换,变换为终止式3906。终止式3906记述为‘根据由XPath指定的条件,从数据库中取得存在于名称为第一会议室的会议室中的人检测传感器节点之节点ID,对该节点ID请求部分脚本的执行,部分脚本具有‘一旦检测节点检测事件,则判定该检测到的节点之节点ID是否等于从数据库中取得的、山田等名称的人物具有的名片节点之节点ID’等内容。另外,一旦返回其结果,则显示山田氏来了等消息’。
这可通过对初始式3901适用定理3902、3903来实现。定理3902、3903存储在图5所示的服务器之数据库712中。定理3902表示‘人物在房间内≡人物的名片节点在房间内’的逻辑,定理3903表示‘名片节点在房间内≡名片节点被房间内的人检测传感器检测’的逻辑。由此,初始式3901的isInside以下的指令展开成中间式3904。中间式3904中使用的指令isInside2被定义为模板3905。结果,可将初始式3901展开为终止式3906。这样,服务器203的管理者通过事先准备定理3902、3903、模板3905,可使作为用户请求的宣言型语言的初始式3901变化为手续型语言的终止式3906。通过执行该终止式3906,得到目的的结果。
<第13实施方式>
图39表示第13实施方式,表示将所述第1实施方式的传感器网络适用于执行进步管理的计划管理系统中的实例。
一般来说,在计划管理的领域中,开展TOC(Theory OfConstraints制约)理论等理论体系的整备,提供各种计划管理系统。但是,现有的计划管理系统是始终以执行计划管理者的支援为目的的静态被动的系统。通过适用本发明,可构筑动态的能动的计划管理系统。
用图39来说明本发明的计划管理系统的功能。进行计划管理的服务器4001使用进步管理曲线4005,管理构成计划的各业务的进步。进步管理曲线4005管理计划管理者4004事先根据预测的业务所需天数算出的预定曲线4006、和表示计划的实际进步之进步曲线4007。担当业务的作业者4002通过定期利用活动4010来更新进步曲线4007。
通过适用本发明,可进行各种事件处理。例如,检测业务的进步超过一定比例4008的时刻,作为事件,向该业务之后的业务之作业者4003发行事件,并通知再之后业务的开始日。另外,检测计划的进步比预定晚了规定天数的时刻作为事件,向作业者4002发行事件4011,可向计划管理者4004发行事件4013,由此可请求业务延迟的对策。同样,检测业务终止预定日的规定日前4009,在计划的进步比预定晚的情况下,向作业者4002发行事件4011,或向计划管理者4004发行事件4013,由此可请求业务延迟的对策。在作业者4002执行进步登录活动4010的情况下,利用计时器事件,判定没有登录活动4010,向作业者4002发行事件4011,请求输入,可向计划管理者4004发行事件4013,请求对策。
作为所述第1实施方式所示的脚本执行引擎之脚本管理器被设置在构成图2的传感器网络中的传感器节点201、路由器节点202、服务器203、WEB服务204、客户机205的全部或任一节点中的、想执行事件处理之节点中。图1中省略,但路由器节点202也可串行存在多个。
另外,在所述第1实施方式中,也可从不需要事件处理之节点中删除脚本管理器。在从传感器节点201中删除脚本管理器404的情况下,传感器节点201发行固定的事件。在从路由器节点202删除脚本管理器490的情况下,执行在通信路径途中的事件集约处理。在从服务器203、WEB服务204、客户机205中删除脚本管理器的情况下,由各个设备执行事件处理。因此,只要在必需事件处理的节点中安装脚本处理器即可。
综上所述,本发明由于对应于动态变化的用户目的,在任意的时刻动态变更传感器网络上的分散事件处理之动作流程,所以可在单一的传感器网络上反映多样的用户目的。因此,由于可由多个用户分担设置、维修费用,所以可实现观测宽地域环境的大规模传感器网络基础。
权利要求
1.一种传感器网络系统,具备根据观测的信息向上位节点发送事件的传感器节点;向下位节点发送预定的脚本,并接收来自所述传感器节点的事件的客户机节点;和转达从所述传感器节点至客户机节点的通信的中间节点,其特征在于所述客户机节点具有第1脚本管理器,执行事先设定针对多个节点的处理之脚本,抽取针对下位节点的脚本来向所述下位节点分配所述抽取出的脚本,所述中间节点具有第2脚本管理器,执行所述第1脚本管理器分配的脚本,并执行针对该中间节点的控制,抽取针对下位节点的脚本来向该节点分配所述抽取出的脚本,所述传感器节点具有第3脚本管理器,通过执行所述第2脚本管理器分配的脚本,将基于观测到的信息之事件发送给上位节点。
2.根据权利要求1所述的传感器网络系统,其特征在于所述脚本以嵌套构造内含针对所述下位节点的脚本,作为部分脚本,所述第1脚本管理器抽取针对比自节点还下位的节点的部分脚本,来向所述下位节点分配部分脚本,所述第2脚本管理器抽取针对比自节点还下位的节点的部分脚本,来向所述下位节点分配部分脚本。
3.根据权利要求1所述的传感器网络系统,其特征在于将所述脚本和部分脚本记述为树构造的指令,所述第1-第3脚本管理器在执行相当于树构造的根之母指令之前,按其出现顺序执行全部子指令,并将子指令的执行结果置换为数据后,设为母指令的自变量。
4.根据权利要求3所述的传感器网络系统,其特征在于所述指令包含不等该指令的执行完成就立刻以未完成状态结束的非同步指令,所述第1-第3脚本管理器具有活动处理器,在执行非同步指令作为所述子指令时,在指令所述子指令执行之后,在未完成状态下使该子指令的母指令结束,一直待机到有来自所述子指令的执行结果的返回,所述活动处理器以来自子指令的执行结果的返回为契机,再次开始执行在所述未完成状态下结束的母指令。
5.根据权利要求4所述的传感器网络系统,其特征在于所述活动处理器对所述非同步指令设定在脚本内唯一确定的指令识别符,来给与该非同步指令的子指令,该子指令在将执行结果返回所述活动处理器时,与所述指令识别符一起返回执行结果,所述活动处理器从由来自所述子指令的指令识别符识别的指令位置,再次开始执行母指令。
6.根据权利要求3所述的传感器网络系统,其特征在于所述指令包含并列执行该指令的子指令的并列指令,所述第1-第3脚本管理器在将并列指令作为所述子指令执行时,与子指令的结束状态无关地执行全部子指令。
7.根据权利要求4所述的传感器网络系统,其特征在于所述第1-第3脚本管理器具有活动处理器,在所述非同步指令出现的时刻,该非同步指令的母指令按从子到母的顺序扫描所述树构造,在母指令中存在并列执行子指令的并列指令的情况下,对该并列指令的子指令中在子孙中具有该非同步指令的指令的全部弟指令按出现顺序执行后,存储所述树构造而结束脚本,所述活动处理器在返回该并列指令的全部子指令之非同步指令的时刻,再次开始处理并列指令,并可在非同步指令返回之前执行其他指令。
8.根据权利要求5所述的传感器网络系统,其特征在于所述非同步指令包含与其他节点进行通信的通信指令,所述第1-第3脚本管理器具有活动处理器,在向通信对象节点发送作为子指令的通信指令与所述指令识别符和该节点的识别符之后,在未完成状态下使该通信指令的母指令结束,一直待机到从所述通信对象节点返回执行结果,所述活动处理器以来自通信对象节点的执行结果与指令识别符的返回为契机,再次开始执行对应于在所述未完成状态下结束的所述指令识别符的母指令。
9.根据权利要求6所述的传感器网络系统,其特征在于所述并列指令包含向多个节点请求回答的截止指令,所述第1-第3脚本管理器仅对在经过事先设定时间的时刻从请求回答的节点有返回的节点再次开始指令,并无视其他的返回。
10.根据权利要求1所述的传感器网络系统,其特征在于所述中间节点具备搜索所述脚本中记述的传感器节点的节点搜索部;搜索从所述搜索到的传感器节点至该中间节点的最佳路径的路径搜索部;和根据所述节点搜索部搜索的传感器节点和所述路径搜索部搜索的路径来最佳化所述脚本的最佳化部。
11.根据权利要求10所述的传感器网络系统,其特征在于所述最佳化部在所述脚本中母指令是非通信指令的子指令中包含通信指令时,在该非通信指令与通信指令之间成立交换法则的情况下,交换该非通信指令与通信指令,然后执行该子指令。
12.根据权利要求10所述的传感器网络系统,其特征在于所述节点搜索部从存在于指定的空间区域内的多个传感器节点中选择该请求精度下充分必要的传感器节点群,所述路径搜索部选择到达所述选择到的特定传感器节点的最佳中间节点的路径,适用结合法则和交换法则来累积该空间区域内的传感器节点群的观测结果。
13.一种传感器网络系统,从自节点向下位节点发送预定的脚本,并接收来自所述下位节点的事件,其特征在于所述自节点具有脚本管理器,抽取针对比自节点还下位的节点的部分脚本,向所述下位节点分配部分脚本,并执行针对自节点的脚本,所述脚本管理器在记述为树构造的指令之脚本中包含不等所述指令的执行完成就立刻在未完成状态下结束的非同步指令的情况下,在将非同步指令作为子指令执行时,在对所述子指令指令了执行之后,使该子指令的母指令在未完成状态下结束,一直待机到从所述子指令返回执行结果,以来自子指令的执行结果的返回为契机,再次开始执行在所述未完成状态下结束的母指令,所述活动处理器对所述非同步指令设定在脚本内唯一确定的指令识别符,来给与该非同步指令的子指令,所述子指令在将执行结果返回所述活动处理器时,与所述指令识别符一起返回执行结果,所述活动处理器从由来自所述子指令的指令识别符识别的指令位置再次开始执行母指令。
14.一种传感器网络的数据处理方法,将传感器节点观测到的信息作为事件,从中间节点依次发送给上位客户机节点,其特征在于包含如下步骤所述客户机节点或中间节点的上位节点从事先设定针对多个节点的处理之脚本中,抽取针对下位节点的脚本来向所述下位节点分配所述抽取到的脚本;根据所述脚本来执行针对自节点的处理;接收所述下位节点分配的脚本,并执行针对该节点的处理;和所述下位节点从所述脚本中抽取针对比自节点还下位的节点的脚本,若存在针对下位节点的脚本,则向所述下位节点分配所述抽取出的脚本。
15.根据权利要求14所述的传感器网络之数据处理方法,其特征在于所述脚本以嵌套构造内含针对所述下位节点的脚本,作为部分脚本,所述分配脚本的步骤,抽取针对比自节点还下位的节点的部分脚本,来向所述下位节点分配部分脚本。
16.根据权利要求15所述的传感器网络之数据处理方法,其特征在于将所述脚本和部分脚本记述为树构造的指令,所述分配抽取到的脚本的步骤包含如下步骤,在执行相当于所述树构造的根之母指令之前,按其出现顺序执行全部子指令;和将所述子指令的执行结果置换为数据后,设为母指令的自变量。
17.根据权利要求16所述的传感器网络之数据处理方法,其特征在于所述指令包含不等该指令的执行完成就立刻以未完成状态结束的非同步指令,所述执行针对自节点或该节点的处理的步骤包含如下步骤在执行非同步指令作为所述子指令时,指令所述子指令执行;在指令所述子指令之后,在未完成状态下使该子指令的母指令结束;一直待机直到有来自所述子指令的执行结果的返回;和以来自所述子指令的执行结果的返回为契机,再次开始执行在所述未完成状态下结束的母指令。
18.根据权利要求17所述的传感器网络之数据处理方法,其特征在于指令所述子指令执行的步骤包含如下步骤,即对所述非同步指令设定在脚本内唯一确定的指令识别符,来给与该非同步指令的子指令,再开始执行母指令的步骤包含如下步骤在该子指令将执行结果返回所述活动处理器时,与所述指令识别符一起返回执行结果;和从由来自所述子指令的指令识别符识别的指令位置,再次开始执行母指令。
19.根据权利要求16所述的传感器网络之数据处理方法,其特征在于所述指令包含并列执行该指令的子指令的并列指令,所述执行针对自节点或该节点的处理的步骤在将并列指令作为所述子指令执行时,与子指令的结束状态无关地执行全部子指令。
20.一种传感器节点,具备检测环境的观测值的传感器和将所述传感器的观测值发送给上位节点的控制部,其特征在于所述控制部具备比较所述传感器的观测值与预定的观测值的范围的比较部;当所述比较结果满足规定条件时发生中断的中断发生部;和如果接收到所述中断就执行预定的处理的控制器。
全文摘要
对应于用户的请求或状况来动态变更各节点的动作流程。客户机(205)包含步骤(415),从事先设定针对多个节点的处理之脚本中抽取针对下位节点的脚本来向下位节点分配所述抽取到的脚本;根据脚本执行对自节点的处理的步骤;下位节点接收分配的脚本、执行针对该节点的处理的步骤;和步骤(410),下位节点从脚本中抽取针对比自节点还下位的节点之脚本,若存在针对下位节点的脚本,则向所述下位节点分配抽取出的脚本,利用各节点执行的脚本,经中间节点向客户机(205)发送来自最下位传感器节点的事件。
文档编号H04L29/02GK1878065SQ200510096690
公开日2006年12月13日 申请日期2005年8月31日 优先权日2005年6月9日
发明者室启朗 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1