本申请要求2016年10月6日提交的美国临时专利申请no.62/404,941的权益,该申请的公开内容特此通过引用并入,就如同整个被阐述一样。
背景技术:
m2m的潜在的益处已经促成若干个行业特定的应用或垂直应用启用机器彼此通信。例如,在健康保健行业、能量行业和汽车行业中找到解决方案。这些解决方案已经针对这些垂直应用进行了优化,但是未能实现全包式iot的前景,在全包式iot中,来自不同的垂直应用的机器和事物彼此交互。
为此,若干个标准体(例如,onem2m)正在开发定义用于在所有应用(甚至来自不同的工业行业的那些应用)之间交换和共享数据的单个水平平台的服务层。
从协议栈角度来讲,服务层通常位于应用协议层之上,并且为应用提供增值服务。因此,服务层通常被归类为“中间件”服务。例如,图1示出ip网络堆栈106和应用104之间的示例服务层102。
m2m服务层可以为应用和服务提供对于该服务层支持的一些面向m2m的能力(m2m服务)的访问。这些能力经由应用编程接口(api)而变为可供应用使用。例如,m2m服务层可以维护可以被m2m应用发现、检索或订阅的大量m2m数据(前提条件是这些m2m应用具有合适的访问权限)。服务层可以提供的m2m服务的另外的例子包括安全性、收费、装置管理、调配和连接管理。
典型的m2m部署(在图2中示出)将具有提供各种级别的m2m服务功能的若干个实体/节点。在非限制性例子中:
·托管m2m服务并且由m2m服务提供商运营的m2m服务器202;
·托管m2m服务的m2m中间节点(或网关)204、206、208、210和212;
·托管m2m服务的m2m装置214、216、218、220、222、224;以及
·通常不托管m2m服务的“轻”m2m装置226、228和230。
可以要么驻留在这些实体上、要么可以通过网络访问这些实体的m2m应用利用提供的m2m服务。如图2所示,这些m2m服务可以在本地提供,例如,m2m应用1可以使用m2m装置1提供的本地m2m服务来提供数据存储。另外,m2m服务还可以远程提供。例如,m2m应用2可以使用m2m服务器提供的服务来使其数据可发现。注意,所示的m2m服务部署本身是分层的,并且这是onem2m和etsim2m中描述的m2m服务层的典型。
onem2m是以m2m服务层的创建为目标的一个标准开发组织(sdo)。onem2m将其服务层描述为类似于操作系统的分布式软件层。该分布式软件层是在位于m2m应用和提供数据传输的通信硬件(hw)/软件(sw)之间的公共服务层中实现的。
公共服务层提供按照功能性一起分组到公共服务功能(csf)中的一组标准化的m2m服务。若干个实例化csf构成公共服务实体(cse)302。如图3所示,这些服务层(cse)302:
·通过mca参考点与应用(onem2m术语中的应用实体或ae304)通过接口连接;
·通过mcc(或mcc’)参考点与其他服务层(cse)通过接口连接;
·通过mcn参考点与底层网络(onem2m术语中的网络服务实体或nse306)通过接口连接。
图3中还示出了onem2m目前定义的十二个csf。下面简要地描述所述csf中的每个:
·应用和服务层管理csf:提供ae和cse的管理。这包括对cse的功能进行配置、故障排查和升级以及对ae进行升级的能力。
·发现csf:基于过滤器准则搜索关于应用和服务的信息。
·注册csf:提供用于使ae(或其他远程cse)向cse注册的功能。这使得ae(或远程cse)可以使用cse的服务。
·通信管理/递送处理csf:提供与其他cse、ae和nse的通信。该csf决定在什么时间递送通信以及哪个通信连接用于递送通信,并且如果必要、被允许的话缓冲通信请求以使得它们可以在稍后的时间被转发。
·群组管理csf;提供群组相关请求的处理。使得m2m系统能够支持多个装置、应用等上的批量操作。
·安全性csf:为服务层提供安全性功能,诸如包括识别、认证和授权的访问控制。
·数据管理和储存库csf:提供数据存储和调解功能(收集用于聚合的数据、重新格式化数据以及存储用于分析和语义处理的数据)。
·定位csf:提供使得ae能够获得地理位置信息的功能。
·服务收费和会计csf:为服务层提供收费功能。
·装置管理csf:提供m2m网关和m2m装置上的装置能力的管理。
·网络服务公开、服务执行和触发csf:管理与用于访问网络服务功能的底层网络的通信。
·订阅和通知csf:提供允许订阅事件以及当该事件发生时被通知的功能。
onem2m正在开发被称为图4所示的面向资源的架构(roa)的服务层架构。
在roa中,所述架构是围绕资源开发的。csf对这些资源进行操作以执行它们的服务。资源是所述架构中的具有可以通过rstful方法(诸如创建(create)、检索(retrieve)、更新(update)和删除(delete))操纵的表示的可唯一寻址的元件。通过使用统一资源标识符(uri)使得这些资源是可寻址的。资源可以包含(一个或多个)子资源和(一个或多个)属性。子资源是与父资源具有包含关系的资源。结果,资源可以被视为源于基本资源的分层树。父资源表示包含对于其(一个或多个)子资源的引用。子资源的寿命受父资源寿命的限制。每个资源支持存储与该资源相关的信息的“属性”集合。属性集合是所有资源共有的,而其他则仅适用于特定资源。后者被称为“资源特定的属性”。
在onem2m的roa内,托管在onem2m服务层中的资源和与onem2m系统交互的实体之间是有区别的。在服务层,所有的交互都是由实体(ae或cse)通过请求操作发起的,并且这些请求总是以资源为目标。对于这些请求中的每个的响应总是在两个实体之间。因此,在m2m服务提供商域内,每个资源需要用唯一资源id来识别,每个实体(ae和cse)需要用唯一实体id来识别。下面提供另外的非限制性细节:
·cse标识符(cse-id):该id识别cse,并且被用于与cse的所有来往交互。服务提供商将在服务提供商域内唯一的相对cse-id分配给每个cse。所述相对cse-id可以通过给唯一的m2m服务提供商id加前缀而变为全局唯一的。
·应用实体标识符(ae-id):这用于唯一地识别“驻留在m2m节点上的ae、或请求与m2m节点交互的ae”onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0。为了使用onem2m服务层提供的m2m服务,应用必须首先向cse注册。在该注册请求期间,应用实体可以要么请求服务提供商分配的ae-id(由in-cse分配),要么请求“本地”分配的ae-id(由应用向其注册的cse(也被称为注册方cse)分配)。如果由in-cse分配,则ae-id在服务提供商域内是唯一的。在这样的情况下,ae-id以“s”字符开头。相反,如果ae-id由注册方cse分配,则它仅在向该cse注册的所有应用之间是唯一的。在这样的情况下,ae-id以“c”字符开头。本地分配的ae-id可以通过给注册方cse的cse-id加前缀而变为在服务提供商域内是唯一的。
·资源id:大多数资源id是由正在托管资源的cse分配的。cse可以分配非结构化id或结构化id。非结构化id是唯一地识别托管cse内的资源的字符序列。相反,结构化id通过cse内的资源的父子关系来识别cse内的资源。在操作系统目录结构中,这非常类似于用文件名的路径识别文件名的方式。资源id可以通过给托管cse的cse-id加前缀而变为在服务提供商域内是唯一的。在这样的情况下,id被称为“服务提供商相关资源id”。具体地说,该id唯一地识别m2m服务提供商域内的资源以及其中托管该资源的cse。另外,任何资源id都可以通过给唯一的m2m服务提供商id加前缀而变为全局唯一的。在这样的情况下,id被称为“绝对资源id”。关于m2m资源id的一个重要的提醒是,它们不携带路由信息。所以例如,图5示出绝对资源标识符。该资源:
ο位于具有m2m服务提供id=“www.m2mprovider2.com”的服务提供商域内,
ο位于具有cse-id=cseoo1的cse内,
ο位于资源7ae1/”下面
ο具有资源名称“contoo1”
重要的是,资源不位于具有fqdnwww.m2mprovider2.com的服务器上。而是,它位于托管具有cse-idcseoo1的cse的服务器上。在onem2m中,该服务器的路由信息是在提供该cse的可路由位置的接入点(poa)属性中维护的。不过注意,poa可以包括表示托管具有cse-idcseoo1的cse的服务器的另一fqdn。
图6示出onem2m域内的交互的例子。在该图中,实体被示为框,资源被示为这些框内的椭圆形。onem2m中定义的所有服务层交互都是通过始发器和接收器之间的请求/响应交换。始发器可以是ae或cse,接收器通常是cse(参见图6a)。这是针对涉及资源的创建、检索、更新或删除(通过creatae、retrieve、update或delete请求实现)的交互的。然而,onem2m已经定义了其中接收器是ae的一个交互(参见图6b)。这是通过通知(notify)请求实现的通知交互。
如图6a所示,当接收器是cse时,请求来源于实体,并且可以以接收器cse上的特定资源为目标。相反,响应来源于接收器实体604,并且以始发器实体602为目标。注意,请求箭头指向特定的资源,而所有的其他的箭头开始于和结束于实体。在该图中可以看出,这些箭头指向始发器或接收器,而不是资源。在该图中,这用终止于框的边缘、而不是框内的资源的箭头来表示。
如图6b所示,对于给ae的通知请求,情况略有不同。在这样的情况下,来自始发器602的请求需要以“表示”ae的资源为目标。当ae向注册方cse注册时,这对应于在该cse上创建的<ae>子资源(该<ae>子资源在图6b中用绿色示出)。如果注册方cse606接收到以<ae>资源为目标的通知请求,则cse知道将这重新设为以注册的ae为目标。
为了使用服务层提供的服务,ae和cse必须首先向该服务层注册。这通过以注册方cse为目标的专门的创建操作来进行。
应用注册至少具有以下目标:
1.将ae-id分配给应用;
2.在注册方cse上创建<ae>资源以用于表示服务层内的应用/与服务层内的应用通信。
另外,应用具有以下选择:使ae-id由本地注册方cse分配,或者使服务提供商涉及该分配。如果它选择前者,则ae-id对于注册方cse是唯一的,但是在服务提供商域内不是全局唯一的。如果应用选择后者,则服务提供商将分配ae-id,另外,in-cse将公告<ae>资源(在<aeannc>资源中)。该公告使得应用可以被其他应用或cse发现。当ae-id由服务提供商分配时,它被保证在服务提供商域内是全局唯一的。
为了区分这两种类型的ae-id,onem2m在ae-id中使用单个字符前缀。也即是,
·如果ae-id由本地注册方cse分配,则它以“c”字符开头。
·如果ae-id由服务提供商分配,则它以“s”字符开头。
服务提供商分配的ae-id的使用使得服务层可以知道应用何时尝试重新注册(比如说因为它失去了连接或者其初始注册已经到期)。
onem2m定义的若干个m2m服务导致与ae的交互。下面更详细地对此进行简要的说明。
订阅/通知是允许始发器订阅资源并且当与该资源相关的某个准则已经得到满足时使通知发送的过程。始发器通过以下来创建对于资源的订阅:
1)创建<subscription>子资源;
2)提供将被监视的准则(在eventnotificationcriteria属性中定义)。例如,如果资源的大小降至阈值以下,如果资源被更新或删除,如果资源具有新的子资源,或者如果资源子资源中的一个被删除,则可以触发事件;
3)提供通知目标列表(在notificationurl属性中定义)。这是在托管订阅资源的cse需要发送事件的通知(通过通知请求/响应交换)的情况下。所述列表中的每个目标可以被格式化为遵循onem2m的资源id,或者被格式化为遵循onem2m支持的协议绑定的标识符;
4)提供其他的通知相关的策略。例如,始发器可以:
·限制将被发送的通知的最大数量(在expirationcounter属性中定义);
·请求批量通知(在batchnotify属性中定义);和/或
·限制发送通知的速率(在ratelimit属性中定义)。
典型的订阅例子在图7中示出。订户702向托管被订阅资源的cse发出订阅请求(步骤1)。如果托管cse704接受该请求,则它创建<subscription>子资源(步骤2),并且对订户做出响应,向它通知订阅已经成功(步骤3)。随后,当存在与订户规定的准则匹配的被订阅资源变化(步骤4)时,托管cse704将向通知目标列表上的所有目标发送通知(步骤5和步骤6)。当步骤6中的接收器是ae(ae1)708时,通知被发送给ae1注册方cse706,ae1注册方cse706负责将通知重新设为以ae1为目标(步骤8、9、10)。注意,订阅/通知过程的一些细节已经被省略以简化该图——也就是,关于在步骤2期间发生的订阅验证的细节。
在onem2m中,请求可以是三种类型:阻塞、非阻塞同步和非阻塞异步。每种类型定义始发器和中间cse在请求行进到它的目的地时如何处理该请求。具体地说,非阻塞异步请求被用在始发器或需要知道请求的结局的其他实体能够接收通知消息的情况下。也就是说,“执行被请求的操作的cse可以在任意时间向始发器或其他指示的实体发送未经征求的消息以向一个或多个通知目标发送被请求的操作的状态和结果”。始发器向cse发出请求,在该请求中,基本内容包括将被通知响应的通知目标(实体)的列表。简单的调用流程在图8中描绘,图8示出了尝试在托管cse704上更新资源并且将对于该请求的响应发送给cse1和ae1(步骤1)的始发器802。托管cse704存储目标信息(步骤2),并且向始发器802返回请求已经被接受的响应(步骤3)。在与资源更新相关的处理完成之后,托管cse704使用通知请求来告知目标(步骤5和步骤6)。注意,对于步骤6,目标是ae708,所以响应首先被发送给ae注册方cse706,ae注册方cse706然后将响应重新设为以ae708为目标。
服务层可以帮助始发器将群组请求发送给目的地资源集合。这些目的地资源通常是相同的类型,但是存在允许混合的资源类型的调配。作为例子,群组可以被创建为允许扇出到若干个<ae>资源的操作。
为了实现此,需要在托管cse的群组处创建<group>资源。<group>资源包含该群组的所有成员的资源id的列表(包括在memberids属性中)。在群组创建时,托管cse的群组创建作为该群组资源的孩子的虚拟资源(<fanoutpoint>)。随后,始发器可以发送以虚拟<fanoutpoint>资源为目标的请求操作,并且托管cse的群组将代表始发器将该请求扇出到该群组的各成员(memberids属性中列出的那些成员)。当接收到来自扇出的请求中的每个的响应时,托管cse的群组将在对始发器做出响应之前聚合结果。
服务层可以帮助始发器向远程cse公告资源。当始发器在托管cse上创建原始资源时,它可以请求该资源被公告给远程cse。在远程cse中创建的资源被称为被公告资源。被公告资源可以具有作为原始资源属性的镜像的属性集合,它还可以具有它自己的属性——特别是,回指原始资源的“链接”属性。公告资源具有两个主要目的:
1)帮助发现——原始资源可以通过其被公告资源来发现。事实上,onem2m将这看作进一步的步骤,因为它允许通过“链接”属性经由远程cse检索原始资源。在这种情况下,远程cse负责检索托管cse上的原始资源。
2)在远程cse处镜像属性——这些属性可以直接从远程cse检索。原始的托管cse负责确保原始的托管cse和远程cse中的属性同步。
若干种资源类型可以被公告——包括ae、容器、内容实例、群组和远程cse。
移动性管理是学术界和工业中的非常积极研究的领域——主要是解决移动装置的增长和用户使用这些装置的需求。它使得能够:
·定位管理:使得网络可以找出移动装置的附连点以便将流量递送给该移动装置
·切换管理:使得移动装置在它继续改变其附连点时可以保持其连接。
图9示出移动节点在改变其附连点——从一个lte基站变为另一个lte基站,然后变为wcdma基站,并且最后变为wifi接入点——时的例子。
移动性管理可以在协议栈的许多不同的层处处理。例如,它可以通过对于ip的增强在网络层处处理,和/或通过依赖于无线电接入网络在移动装置改变其附连点时保持与移动装置的连接的机制在链路层处处理。下面对两个机制以及分布式移动性管理(dmm)进行描述,dmm是不依赖于移动性锚的使用的方法。
移动ip(mip)背后的基本原理是,使移动节点(mn)保留其ip地址,而当它移出其家乡网络并且移到外地网络时,使用转交地址(coa)。在每个网络中,移动装置通过路由器(要么是家乡路由器,要么是外地路由器)进行通信。实现新的功能需要三个主要功能:
路由器(代理)发现:路由器周期性地广告它们的存在,或者移动节点可以发送发现这些路由器的广告征求。如果移动节点发现它在外地网络上,则该外地路由器给它分配coa。
注册:移动节点向其家乡路由器注册其coa,家乡路由器然后更新其移动性绑定表。同时,外地代理路由器保持到访的移动节点的列表——到访者列表。
转发:对于移动节点传出流量,这遵循正常的ip路由。对于移动节点传入流量,数据首先去到移动节点的家乡路由器,家乡路由器充当用于通信的锚。家乡路由器使用移动性绑定表来确定移动节点在外地网络中。它通过在它自己和外地路由器之间创建的隧道将数据发送到coa。外地路由器通过与它正在维护的到访者列表交叉引用来确定移动节点在其本地网络上,然后将流量递送给移动节点。
如下所述,mip需要对移动节点和路由器/代理做出改变。存在将所有的改变移到网络侧的强操作者推送。基于mobileipv6(mipv6)的pmipv6重新使用家乡路由器构思,但是在网络中定义必须代表移动节点用信号通知移动节点的位置变化的节点。移动访问网关(mag,mobileaccessgateway)代表附连到其访问链路的移动节点执行移动性相关的信令。核心网络内的本地移动性锚(lma,localmobilityanchor)维护用于连接到移动性域的每个移动节点的路由集合。它是用于送往mn的流量的锚点。
mn使用路由器征求附连到第一mag。mag然后通知lma将其地址与mn的身份相关联。lma将前缀分派给mn,并且与mag建立隧道。mag将前缀转发给mn,以使得man可以配置其地址。
当mn移动并且联系新的mag时,新的mag用新的mn位置更新lma。它还向mn广告相同的前缀——所以mn在它移动时具有相同的地址。
从外部发送到移动节点的下行链路分组到达lma,lma通过隧道将它们转发给服务mag。mag通过访问链路直接将分组发送到移动节点。
来源于移动节点的上行链路分组通过隧道从mag发送到lma,lma然后将分组转发到目的地。
在lte网络中,移动性是移动装置辅助的,但是网络控制的。当移动节点将其附连点从一个源基站变为目标基站时,移动性发生。如果所述两个基站属于同一服务网关(s-gw),则lte依赖于链路层移动性。基本前提是使用s-gw作为将流量从源基站转发给目标基站的锚点。这通过以下基本步骤来启用:
步骤1:移动装置提供对于源基站的测量,这些测量可以触发切换。
步骤2:源基站通过将移动装置上下文传送给目标基站并且在源基站和目标基站之间转发数据流量来为切换做好准备。
步骤3:源基站通知移动装置执行切换,此时,移动装置从源基站断开,并且连接到目标基站。一旦被连接,它就对目标基站确认切换请求。
步骤4:在传送期间,s-gw充当将流量移到源基站、然后移到目标基站的移动性锚点。
网络层移动性和链路层移动性(lte网络)中描述的所有的解决方案至少具有以下共同的方面:
·就保持会话标识符和转发之间的映射而言的位置信息是单个移动性锚;并且
·送往该会话标识符的分组被该锚转发。
此处认识到,由于以下原因,ietf努力找到集中式管理的替代方案:
·这些锚点变为漏斗——在网络中存在几个,并且它们可能变得负荷很重;
·这些锚点变为单个的故障点;和/或
·在许多情况下,网络正在变得更扁平——它们正在远离分层部署。
结果,ietf已经开发了dmm,在dmm中,移动性管理功能分布给多个网络,从而使得移动模式可以由具有适当的转发管理能力(fmc)的附近的功能来服务。
技术实现要素:
m2m服务层提供的一些服务将具有为了与应用交互而将使用的联系信息。例如,服务层可能需要将通知消息发送给应用。为了这样做,服务层依赖于存储的联系信息来知道如何到达应用。如果托管应用的装置移动并且应用改变其联系信息,则服务层中的联系信息是陈旧的。结果,这些服务将是低效的,或者在一些情况下,一起失败。
本文描述除了别的之外,解决以上问题并且更新m2m服务层中的陈旧的联系信息的机制。为了这样做,所述机制可以依赖于m2m服务器来传播新的联系信息。尽管所述问题和解决方案是关于应用实体(ae)移动呈现的,但是它们还适用于服务层可能正在移动并且改变其联系信息的情况。
下面在非限制性例子中简要地总结本文介绍的处理服务层中的陈旧的ae联系信息的系统和方法:
·m2m服务器通过其将重新注册尝试评估为ae移动性事件、传送有效的/进行中的m2m服务、更新所有的本地ae联系信息、并且向所有的其他服务层通知ae联系信息变化的机制;
·本地服务层通过其将重新注册尝试评估为ae移动性事件并且向m2m服务器通知联系信息变化的机制;
·使用基于ae联系信息的搜索准则的修正的发现方法;
·本地服务层通过其维护具有所有的ae联系信息的资源的机制;
·m2m服务器通过其维护用于每个服务层的所有ae联系信息的主列表的机制。m2m服务器基于来自服务层的添加请求和移除请求来更新该列表;以及
·其中始发器可以请求与资源没有关系的事件的监视的增强的订阅机制。例如,ae移动性事件。
另外,本申请还包括用于实现onem2m中的这些机制和增强的实施例,并且提供使得可以监视/显示ae联系信息并且触发以上列出的机制中的某些机制的图形用户界面。
提供本发明内容是为了以简化的形式介绍下面在具体实施方式中进一步描述的构思的选择。本发明内容并非意图认定要求保护的主题的关键特征或必要特征,也并非意图被用来限制要求保护的主题的范围。此外,要求保护的主题不限于解决本公开的任何部分中指出的任何一个或所有的缺点的限制。
附图说明
可以从以下结合附图举例给出的描述获得更详细的理解,其中:
图1是例示说明支持服务层的示例协议栈的示图;
图2是例示说明典型的具有分布式m2m服务的m2m部署的示图;
图3是例示说明公共服务功能的示图;
图4是例示说明面向onem2m资源的架构的示图;
图5是例示说明资源id的示图;
图6是例示说明资源、实体和ae目标重设的示图;
图7是例示说明订阅/通知的示图;
图8是例示说明非阻塞异步请求的示图;
图9是例示说明移动性管理的示图;
图10是例示说明移动性管理的高层视图的示图;
图11是例示说明具有警告的健康监视的示图;
图12是例示说明群组固件升级的示图;
图13是例示说明以移动ae为目标的通知目标设定的示图;
图14是例示说明服务提供商分配ae-id的情况1的示图;
图15是例示说明本地服务层分配ae-id的情况2的示图;
图16是例示说明发现受影响的服务层的示图;
图17是例示说明m2m服务器处的主列表的示图;
图18是例示说明对于ae移动性事件的订阅的示图;
图19是例示说明新移动性(mob)csf的示图;
图20是例示说明新的<aecontactsummary>资源的示图;
图21是例示说明新的<aecontactlist>资源的示图;
图22是例示说明用于cse的图形用户界面的示图;
图23a是例示说明其中可以实现一个或多个所公开的实施例的示例机器对机器(m2m)、物联网(iot)或万维物联网(wot)通信系统的系统图;
图23b是在图23a所示的m2m/iot/wot通信系统内可以使用的示例架构的系统图;
图23c是在图23a和23b所示的通信系统内可以使用的示例通信网络节点(诸如m2m/iot/wot装置、网关或服务器)的系统图;以及
图23d是其中可以实施图23a和23b的通信系统的节点的示例计算系统的框图。
具体实施方式
除非另有规定,否则在本文中使用以下定义。
除非另有规定,否则在本文中使用以下缩写:
adn应用专用节点
ae应用实体
api应用编程接口
app应用
asm应用和服务层管理
asn应用服务节点
cmdh通信管理和递送处理
cse公共服务实体
csf公共服务功能
dis发现
dmr数据管理和储存库
in基础设施节点
iot物联网
ip互联网协议
loc定位
m2m机器对机器
mn中间节点
mob移动性
nse底层网络服务实体
nsse网络服务公开、服务执行和触发
reg注册
roa面向资源的架构
sc服务能力
sca服务收费和会计
sec安全性
soa面向服务的架构
sub订阅和通知
udp用户数据报协议
uri统一资源定位符
以下描述例示说明移动m2m应用使用服务层提供的服务的两个示例使用情况。假定这些应用从本地服务层以及可能地若干个远程服务层获得m2m服务。
第一示例使用情况涉及远程健康监视,并且在图11中示出。在图11所示的使用情况下,高级护理设施里的两个医生(医生a和医生b)担心患者(患者a)的血糖水平。所述信息由患者的身体传感器收集,并且被存储在本地网关中。另外,所述信息还被发送到基于配置的阈值等提供警告的健康监视公司wemonitor。为了查看患者状态,两个医生都使用安装有一套m2m健康应用的平板。当他们在高级护理设施里移动时,他们的平板连接到不同的网关。
如果以下两种情况中任一情况,则两个医生都已经请求wemonitor通知他们:
·患者a的血糖水平降至40mg/dl以下,或者
·患者a的心率显著升高。
因为wemonitor没有记录每个医生在高级护理设施里的位置,所以他们两个都已经请求他们仅通过他们的家乡办公室网关被通知。这符合onem2m服务层如何基于ae的注册方cse将通知发送给ae。在时间t1,患者a的血糖水平降至阈值以下。当两个医生都在他们的办公室里时,他们能够接收警报/通知。幸运的是,他们两个都到访患者,并且开出所需药方——所有一切都很好。那天稍后(在时间t2),患者的心率开始升高。医生b仍在他的办公室里,但是医生a在会议室参加会议。因为医生b不在他的办公室网关上,所以他将不接收通知。
第二个示例使用情况涉及群组固件升级。公司已经购买了若干个现成的传感器,并且想要将它们安装在工业厂房里。一旦被安装,但是在使用之前,公司想要进行固件升级以保证所有的装置都正在运行同一软件版本。这些装置具有有限的通信范围,并且将与最近的网关进行通信。这些网关中的每个均为传感器提供m2m服务。在第一次启动时,装置连接到最近的网关和寄存器。它们现在准备好使用m2m服务。公司想要利用服务层的群组能力来使升级更有效率。当公司知道每个传感器已经在哪里注册时,它创建包括所有的传感器的群组,然后发送固件升级。服务层群组功能然后负责将固件升级递送给各装置。几个月后,新的补丁可获得,公司想要将此推送给其所有的传感器。在其间,传感器中的一些已经被移动,并且已经连接到不同的网关。例如,图12示出2个装置(sens3和sens4)不再连接网关1、而是现在连接到网关2的情况。在这种情况下,如果我们使用同一群组来发送固件升级#2,则2个装置将不被升级。
以上两种使用情况示出了涉及以m2m应用为目标的交互的典型的使用情况。这预期在m2m空间中非常常见地发生。然而,服务层(尤其是onem2m)的使用导致以上使用情况有一些问题。开发服务层的原理之一是缓解应用上的负担中的一些。意图是使这些应用具有将允许它们向服务层请求服务的api。结果,应用通常向服务层注册以便使用它们提供的m2m服务。
不幸的是,该处理因为以下原因导致若干个问题:
1)应用必须向服务层注册以获得m2m服务;
2)当应用移动时,它们可能必须重新向不同的服务层注册(例如由于邻近);
3)应用是通过它们的注册点联系的;以及
4)一些服务需要具有联系应用的方式。
对于特别是onem2m,当应用向cse注册时,它在该cse上创建<ae>资源。<ae>资源或其子资源中的任何一个经由唯一地识别该资源的uri被引用。该uri可以是分层的或非分层的(通过使用resourceid)。该uri可以作为托管在远程cse上的资源的属性存在,这使得远程cse可以为<ae>提供服务。在非限制性例子中,可以提供以下服务:
·公告服务:具有回指原始<ae>资源的“链接”属性。
·群组服务:当将消息扇出到群组时,这些群组成员中的一些可以与ae相关。例如,群组成员可以是<ae>资源或<ae>资源的子资源的resourceid。
·订阅/通知服务:作为订阅/通知的一部分,订户可以将<ae>资源规定为通知目标。
·轮询服务和目标重设:依赖于ae的注册点。
如背景技术章节中所提及的,m2m服务可以分布在各种实体(中间节点、网关、装置服务器等)内的服务层中。在这些服务层内,一些m2m服务将具有将引用应用的联系信息。如果应用改变其注册点,则其联系信息变化,结果,存储在服务层中的联系信息是无效的。在例如onem2m中,当ae“移动”并且向另一cse注册(在相同的或不同的sp域中)时,引用托管在原始注册方cse上的<ae>资源(或其子资源中的一个)的服务现在将具有陈旧的uri信息(因为uri中可能使用的sp-id以及cse-id可能已经改变)。这导致m2m服务低效,并且有时失败。
图13示出关于onem2m中的订阅/通知服务的问题。假定ae1302已经向cse1注册。此外,假定存在对于托管在in-cse上的资源/res1的远程订阅。cse1上的<ae>子资源作为订阅的通知目标中的一个包括在内。在时间1,/res1中有变化。in-cse的订阅服务将产生通知,并且通过cse1将它发送给ae。在时间2,ae失去与cse11304的连接,并且连接到cse31306。它向cse31306注册,并且现在只可以通过cse31306到达。还假定ae由于连接到cse31306而改变其网络地址。在时间3,在/res1中有另一变化。in-cse尝试通过cse1将通知发送给ae(时间4),但是现在该通知不能被重设为以ae1302为目标。所以总的来说,如果ae向cse1注册,则:
·cse11304中的旧的<ae>资源不能移动,
·如果ae移动,则它将在cse31306上创建新的<ae>资源,
·然而,通知总是与旧的<ae>资源相关联。
下面描述对于除了别的之外由应用移动性造成的问题的两个解决方案。第一个解决方案可以适用于应用向m2m服务器公告它们自己、并且m2m服务器在注册时向应用实体提供唯一标识符(ae-id)的情况。该ae-id在服务提供商域内是唯一的。第二个解决方案适用于m2m服务器可能甚至不知道应用、并且本地服务层(例如,在网关处)向应用提供标识符(ae-id)的情况。该ae-id仅在本地服务层内是唯一的。它在服务提供商域内可能不一定是唯一的。在两种情况下,主要构思是使m2m服务器确定ae移动性事件已经发生,然后采取积极的动作。
在下面,术语“ae移动性事件”用于表示应用将其注册点从一个服务层变为另一服务层、或者注册点的传输层地址改变(即,ip地址改变)的任何事件。这可以例如由于以下原因而发生:
·移动性:应用移动并且向新的cse(服务层实体)注册;
·无线电干扰:应用失去与一个服务层的连接,并且找到替代的服务层;和/或
·基于配置文件/策略:应用基于一些策略来改变服务层。例如:
○当日时间
○底层网络连接(例如实体可以选择wifi,而非蜂窝,如果这二者都可用的话),和/或
○可用功率(选择导致使用更少发送功率的服务层)。
假定应用可以选择当它经历ae移动性事件时它是否想要服务层采取积极的动作。在一些情况下,应用可能只想要来自本地服务层的服务。结果,应用对远程服务层中的服务由于ae移动性事件是否低效或失败并不感兴趣。应用可以将规定它是否想要服务层对ae移动性事件作出反应的指示符包括在它的给服务层的注册消息中。例如,应用可以将localregistration参数包括在其注册请求中。如果被设置为真(true),则在检测到ae移动性事件的情况下,应用请求服务层不采取积极的动作。如果被设置为假(false)或空(null),则当应用经历ae移动性事件时,应用请求服务层帮助它。可替代地,应用可以包括具有与localregistration类似的作用的另一标志。例如,trackregistrationpoints参数。如果被设置为假,则在检测到ae移动性事件的情况下,应用请求服务层不采取积极的动作。如果被设置为真或空,则当应用经历ae移动性事件时,应用请求服务层帮助它。
此外,我们使用术语“ae联系信息”来指代<ae>资源(或其子资源中的一个)的uri。ae联系信息可以是分层的uri或非分层的uri(通过使用资源id)。在onem2m中,ae联系信息通过在应用注册期间创建的<ae>资源与应用在其处被注册的服务层有关。如果ae重新向新的服务层注册,则其ae联系信息可能变化。服务层可以在例如以下内容中具有ae联系信息:
1)回指<ae>资源或<ae>子资源中的任何一个的公告链接属性;
2)存储的回指<ae>资源的通知目标列表(要么由于某个订阅,要么由于一些非阻塞异步请求);和/或
3)包括作为群组成员的<ae>资源(或其子资源中的一个)的群组成员关系(存储在memberids列表中)。
应意识到,本文中所描述的解决方案是从ae移动性的角度撰写的。然而,相同的解决方案可以适用于sl移动性,因为托管sl的节点移动并且sl向不同的服务层注册。
在第一个示例实施例中,情况1,m2m服务器可以知道ae注册。总流程在图14中示出。突出的步骤被编号,并且在下面描述。注意,假定存在3个本地服务层(网关1中的sl11404、网关2中的sl21406和网关3中的sl31408),并且这些已经向m2m服务器注册。
在图14的步骤1中,应用11402连接到网关11404处的本地服务层并且向该服务层注册,并且作为初始注册的一部分,应用11404要求其存在在m2m服务器1410处被公告并且使其标识符(ae-id)由m2m服务器1410分配。m2m服务器1410为应用1402创建公告,并且分配服务提供商唯一ae-id。在onem2m中,公告是通过在m2m服务器1410处创建被公告资源来实现的,并且ae-id具有前缀“s”以用信号通知它由m2m服务器1410提供。
在图14的步骤2中,应用11402开始使用若干个有效的/进行中的m2m服务。例如:
·应用11402可能正在使用m2m服务器1410和/或m2m网关1404、1406和1408中的服务层来公告其存在。公告将包含回到应用11402的链接。例如在onem2m中,这更具体地说是回到网关11404处的服务层托管的应用资源(<ae>)的链接。
·应用11402可能正在使用服务层(在m2m服务器1410和/或另一m2m网关处)的订阅/通知服务。例如,当服务提供商域中的、但是托管在与它自己的网关不同的网关上或m2m服务器上的一些服务层资源改变时,应用11402可以被通知。
·应用11402可能正在使用服务层(在m2m服务器和/或另一m2m网关处)的远程群组服务。远程群组可以包括作为其成员中的一个的应用11402。结果,托管服务的服务层将把请求扇出到应用11402。
在图14的步骤3中,m2m服务器1410还可以在应用11402公告时提供m2m服务,包括例如数据存储、语义发现、扇出功能、访问控制和订阅/通知服务。
在图14的步骤4中,应用11402移动且失去与网关11402的连接,并且找到网关21406。
在图14的步骤5中,应用11402开始向网关2服务层的重新注册过程。作为重新注册的一部分,应用1402供应其服务提供商唯一的ae-id(在onem2m中具有前缀“s”),并且再次要求其存在在m2m服务器1410处被公告。网关21406观察到,这是a)重新注册请求(因为ae-id已经由服务提供商从以前的注册提供)和b)来自未知应用的请求。这两种状况使得网关21406可以确定所述请求可能是移动性事件的结果。结果,它在m2m服务器1410处为应用创建新的公告。
注意,在ae-id在应用1402中被预先调配的情况下,那么应用1402可以将另一指示符供应给服务层以指示这是初始注册、还是重新注册。例如,应用1402可以将initialregistration指示包括在注册请求中(如果这是具有预先调配的ae-id的初始注册,则被设置为真,如果不是初始注册,则被设置为假或空)。可替代地,可以在ae-id中使用另一标记来用信号通知预先调配的ae-id(比如说使ae-id以“p”前缀开头)。在另一替代方案中,注册消息可以包括指示任何以前的注册的cse-id的新的字段。例如,在priorregistrarcseid字段中。当接收到注册消息时,接收cse可以将接收到的priorregistrarcseid字段与它自己的cse-id进行比较。如果它们匹配,则cse推断应用正在重新向同一cse注册。如果它们不同,则接收cse推断应用正在重新向新的cse注册。如果priorregistrarcseid为空,则接收cse推断这是初始注册。
在图14的步骤6中,m2m服务器1410检查新的应用公告以核实它是否正在使用先前分派的ae-id(来自步骤1),并且确定应用1402正在新的服务层处重新注册(因为应用1402正在供应m2m服务器提供的ae-id)(因为请求正在试图创建新的公告,而不是更新先前的公告)。m2m服务器1410创建新的公告。
在图14的步骤7中,m2m服务器1410将与sl1注册公告有关的任何有效的/进行中的服务移到sl2注册公告。这暗示着m2m服务器1410提供给sl1注册公告的任何服务都应被传送给sl2注册公告。这包括例如与数据存储、订阅/通知、群组管理、访问控制管理和语义发现相关的服务。传送涉及暂停进行中的与sl1注册公告相关的服务、将任何相关资源从sl1注册公告拷贝到sl2注册公告、以及重新开始进行中的与sl2注册公告相关的服务。特别地,m2m服务器将存储在被公告ae资源(被托管在m2m服务器1410上)下面的各种子资源从sl11404拷贝到来自sl21406的被公告ae资源(也被托管在m2m服务器1410上)。例如,在onem2m中,被公告ae资源<aeannc>可以包括以下子资源:<subscription>、<semanticdescriptor>、<container>、<flexcontainer>、<group>和<accesscontrolpolicy>。这些资源可以被拷贝到来自sl21406的被公告ae资源。
可替代地,m2m服务器1410可以维护两个注册公告,并且具有从sl1公告指向sl2公告的新的链接属性。当m2m服务器1410检测到移动性事件时,它可以更新sl1公告中的新的链接属性以使得它指向sl2公告。然后在m2m服务器1410接收到对于sl1公告的引用的任何时间,它可以得到指向sl2公告的sl1链接。
在图14的步骤8中,“禁用”sl1注册公告。这可以以若干种方式进行。例如,sl1注册公告可以被删除。可替代地,sl1公告可以被暂停,并且该公告将最终到期。可替代地,m2m服务器1410可以保存旧的注册公告,但是总是使用最新的注册公告(基于最后修改的时间或创建时间)来与应用1402进行任何交互。
在图14的步骤9中,因为应用1402不再被注册到sl11404,所以m2m服务器1410可以主动地从sl11404删除任何应用相关的上下文——例如,通过delete/cse1/s_ae1。m2m服务器1410可以在新的requestcause参数中提供关于删除的原因。在该调用流程中,requestcause可以被设置为“ue移动性事件”。
可替代地,m2m服务器1410可以禁用或暂停sl11404中的<ae>资源。有效地,这将暂停与<ae>资源有关的任何服务,但是将允许sl11404保存与该资源相关的上下文。因此,如果ae再次移动并且重新向sl11404注册/当ae再次移动并且重新向sl11404注册时,sl11404将知道该ae1402。这可以使得sl11404能够更高效地处理移动ae。例如,它可以维护用于ae1402的安全性证书,以使得sl11404可以减小必须从m2m服务器1410得到该信息的开销。这对于ae1402周期性地和/或重复地在cse之间移动的情况可能是有用的。
在图14的步骤10中,m2m服务器1410可以接收传入的以旧的注册公告(或其相关的子资源中的一个)为目标的请求。在这种情况下,m2m服务器1410可以对发送给sl1注册公告的任何请求重设目标。在m2m服务器1410接收到对于sl1注册公告资源或其子资源中的一个的请求的任何时间,m2m服务器1410将把这些重设为以sl2注册公告资源为目标。作为该目标重设的一部分,m2m服务器1410可以修改请求参数(例如,改变目的地/将参数传到sl2注册公告)。
在图14的步骤11中,m2m服务器1410更新任何本地维护的用于应用1402的联系信息。m2m服务器1410将仔细检查它在本地维护的所有的群组成员id、所有的公告链接和所有的通知目标中的联系信息,并且将更新指向sl11404的任何联系信息。特别地,m2m服务器1410通过用sl21406的cse-id替换sl11404的cse-id、并且如果必要的话用sl21406的sp-id替换sl11404的sp-id来更新引用<ae>资源的任何uri。
在图14中的步骤12中,m2m服务器1410将ae联系信息中的变化传播到子服务层以及可能地其他服务提供商域中的其他m2m服务器。如果m2m服务器1410知道受应用移动性影响的服务层,则它可以单独地联系这些服务层。可替代地,m2m服务器1410可以将向它们通知更新用于应用1402的联系信息的请求扇出到所有的服务层。这可以通过updatecontactinforeq/updatecontactinforesp消息交换来实现。请求消息可以将更新的原因包括在requestcause参数中。下面描述进一步的选项。
在图14的步骤13中,接收这些请求的服务层将仔细检查所有的通知目标、所有的公告链接和所有的群组成员id中的联系信息,并且将更新指向托管在sl11404上的对应的ae的资源的任何联系信息,以反映它现在被注册到的新的sl(即,sl21406)。
应意识到,执行图14所示的步骤的实体可以是可以以存储在被配置用于无线通信和/或网络通信的设备或计算机系统(诸如图23c或图23d所示的那些)的存储器中并且在该设备或计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体。也就是说,图14所示的(一种或多种)方法可以以存储在设备(诸如图23c或图23d所示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现,所述计算机可执行指令在被该设备的处理器执行时执行图14所示的步骤。还应意识到,图14所示的功能可以被实现为一组虚拟化的网络功能。所述网络功能可能不一定直接进行通信,相反,它们可以经由转发或路由功能来进行通信。应进一步意识到,图14所示的任何发送步骤和接收步骤可以由所述设备的通信电路在所述设备的处理器和它执行的计算机可执行指令(例如,软件)的控制下执行。
在第二个示例实施例中,情况2,m2m服务器可能不知道ae注册。情况1关注于m2m服务器1410向应用1402提供应用身份(ae-id)的解决方案。这为m2m服务器1410提供对于应用1402何时已经移动的一些洞悉。然而,存在可能不想被公告给m2m服务器1410或者可能不想与远程服务层通信的一些应用。在这样的情况下,应用身份(ae-id)通常由本地服务层提供,并且仅被保证在该本地服务层内是唯一的。本节描述针对这样的应用处理ae移动性事件的解决方案。
总流程在图15中示出。突出的步骤被编号,并且在下面描述。注意,假定存在3个本地服务层(网关1中的sl11404、网关2中的sl21406和网关3中的sl31408),并且这些已经向m2m服务器1410注册。注意,最后的假定(sl11404和sl21406分别被注册到m2m服务器1410中的服务层)不是所述解决方案的要求。事实上,所描述的方法适用于sl11404和sl21406具有到m2m服务器1410的通信路径的任何情况。
在图15的步骤1中,应用11402连接到网关11404处的本地服务层并且向该服务层注册,并且作为初始注册的一部分,应用1402要求使其标识符(ae-id)由本地服务层分配。网关1中的本地服务层分配本地唯一的ae-id。在onem2m中,这样的标识符以字符“c”开头。
在图15的步骤2中,应用11402开始使用本地sl11404支持的若干个有效的/进行中的m2m服务(如图14中的步骤2中所描述的)。
在图15的步骤3中,ae移动且失去与网关11404的连接,并且找到网关21406。
在图15的步骤4中,应用1402开始向网关2服务层的重新注册过程。作为重新注册的一部分,应用1402供应其ae-id。网关21406观察到这是来自未知应用的重新注册请求(因为ae供应ae-id),并且结果,确定该请求可能是ae移动性事件的结果。基于供应的ae-id的格式和/或值,网关21406知道ae-id是由另一服务层分配的。可替代地,应用1402可以向网关2服务层供应它已经连接到的服务层(对于这个例子来说,网关1服务层)的标识符。这将使得网关2服务层可以立即确定这是ae移动性事件。如果ae-id在网关21406中当前是可用的,则服务层维护ae-id,完成注册,并且用ae-id未被识别并且网关不同于ae1402先前被注册到的网关的指示做出响应。如果ae-id已经正被注册到网关21406的另一应用使用,则服务层将分配新的本地唯一的ae-id,并且提供网关不同于ae1402先前被注册到的网关的指示。
注意,在ae-id在应用1402中被预先调配的情况下,那么应用1402可以将另一指示供应给服务层以指示这是初始注册、还是重新注册。例如,应用1402可以将initialregistration指示包括在注册请求中(如果这是具有预先调配的ae-id的初始注册,则被设置为真,如果不是初始注册,则被设置为假或空)。可替代地,可以在ae-id中使用另一标记来用信号通知预先调配的ae-id(比如说使ae-id以“p”前缀开头)。
在图15的步骤5中,网关2通过发送updatecontactinforeq消息来向m2m服务器1410通知用于应用1402的联系信息的潜在变化。该消息包括用于应用1402的旧的和新的联系信息。包括在该消息中的应该是网关2的cse-id和sp-id以向m2m服务器通知该ae现在被注册到网关2。
在图15的步骤6中,m2m服务器1410更新用于ae1402的联系信息。在非限制性例子中,这可以包括:
·包括旧的联系信息的uri的任何通知目标。在onem2m中,这些可以是包括在m2m服务器中的<subscription>资源的一部分,或者作为对于非阻塞异步请求的未决响应的一部分,
·包括旧的联系信息的uri的任何公告链接。在onem2m中,这可以包括已经被公告给m2m服务器的任何<ae>资源的链接属性,和/或
·包括旧的联系信息的uri的任何群组成员关系。在onem2m中,这可以包括<group>资源的任何memberids属性。
在图15的步骤7中,m2m服务器1410将联系信息的变化传播到子服务层以及可能地其他服务提供商域中的其他m2m服务器。如果m2m服务器知道受应用移动性影响的子服务层,则它可以单独地联系这些子服务层。可替代地,m2m服务器1410可以将向它们通知更新用于应用1402的联系信息的请求扇出到所有的服务层。这可以通过updatecontactinforeq/updatecontactinforesp消息交换来实现。
在图15的步骤8中,服务层将更新通知目标、任何公告链接和任何群组成员关系中的联系信息。原始服务层(sl11404)可以删除或暂停与应用1402相关的上下文。如果被暂停,则sl11404将不删除资源,而是将暂停与该资源有关的任何服务层处理。如果应用1402在稍后的时间试图重新向服务层注册,则这将使得重新注册更简单。
应意识到,执行图15所示的步骤的实体可以是可以以存储在被配置用于无线通信和/或网络通信的设备或计算机系统(诸如图23c或图23d所示的那些)的存储器中并且在该设备或计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体。也就是说,图15所示的(一种或多种)方法可以以存储在设备(诸如图23c或图23d所示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现,所述计算机可执行指令在被该设备的处理器执行时执行图15所示的步骤。还应意识到,图15所示的功能可以被实现为一组虚拟化的网络功能。所述网络功能可能不一定直接进行通信,相反,它们可以经由转发或路由功能来进行通信。应进一步意识到,图15所示的任何发送步骤和接收步骤可以由所述设备的通信电路在所述设备的处理器和它执行的计算机可执行指令(例如,软件)的控制下执行。
如上所述,一旦m2m服务器1410知道已经存在ae移动性事件,它就需要在本地(在m2m服务器1410内)和在同一服务提供商域内的所有的子服务层中、以及可能地在其他的服务提供商域中更新ae联系信息。在一个解决方案中,m2m服务器1410可以创建包括所有这些其他的服务层的群组,然后将updatecontactinforeq扇出到所有的服务层。然而,这可能导致向服务层通知新的ae联系信息的大量的信令开销。为了改进效率和/或安全性,可以使用以下方法中的至少一种方法,其中每种方法在下面被更详细地描述:
1)m2m服务器1410可以发现受影响的服务层,并且将消息仅扇出到这些服务层;
2)m2m服务器1410可以维护受ae联系信息变化影响的sl的列表。当需要时,m2m服务器1410可以查询该列表,并且将updatecontactinforeg仅扇出到受影响的sl;以及
3)使子服务层在m2m服务器1410处创建当存在ae移动性事件时将送出通知的订阅。
m2m服务器可以发现受影响的服务层,并且将消息仅扇出到这些服务层。主要构思是使m2m服务器1410发现正在维护陈旧的ae联系信息的所有服务层(例如通过公告链接、群组成员id或通知目标)。一旦被找到,m2m服务器1410就可以使updatecontactinforeq仅以这些服务层为目标。它可以创建包括发现的服务层的群组,随后扇出updatecontactinforeq消息。
m2m服务器1410可以周期性地这样做,从而使得它可以构建在每个服务层中使用的ae联系信息的完整列表。可替代地,当m2m服务器1410需要找到受特定的ae移动性事件影响的服务层时,m2m服务器1410可以根据需要这样做。下面描述后一过程。假定ae1(具有资源名称:thermocontrol和资源id:tcoo1)最初被向服务层1(具有cse-idcseoo1)注册,在移动性事件之后,ae1被向服务层2(具有cse-idcse002)注册。
示例过程在图16中示出,并且在下面的步骤中描述。
在图16的步骤1中,当m2m服务器1410对ae1检测到ae移动性事件时,它向每个子服务层发出增强的发现请求。发现请求要求服务层查找陈旧的ae联系信息(如前所述,这可以包括与公共链接、群组成员id或通知目标相关的信息)。发现查询可以使用通配符(*)来帮助与ae1相关的ae联系信息的搜索。例如,搜索可以是针对与ae1的资源名称(例如,/cse001/*/thermocontrol/*)的任何匹配。可替代地,搜索可以是针对与ae1的资源id(例如,/cse001/*/tc001/*)的任何匹配。请求可以包括ae联系信息的列表。可选地,请求还可以规定搜索的根——以使得子服务层在该根处开始它们的搜索。
在图16的步骤2中,每个子服务层用布尔结果对发现请求做出响应:如果服务层具有匹配内容,则为真,或者如果服务层没有匹配内容,则为假。来自服务层的响应消息可以可选地包括关于匹配内容的统计信息——例如被公告链接属性已经被访问的次数、以ae为目标的群组操作的数量等。m2m服务器1410可以使用此来决定将updatecontactinforeq发送到哪些服务层。例如,如果服务层具有包括ae1的群组并且该群组很少或者从不被使用,则m2m服务器1410可以决定放弃更新ae联系信息。
在图16的步骤3中,m2m服务器1410构建已经响应了真的所有服务层的目录。
在图16的步骤4中,m2m服务器1410仅更新受ae移动性事件影响的那些服务层中的联系信息。
注意,在替代实现中,子服务层可以通过创建包括所有ae联系信息的列表的新的aecontactsummary参数来帮助发现。这样,m2m服务器1410仅需要通过aecontactsummary参数,而不是通过整个服务层来进行搜索。每次服务层观察到产生ae联系信息的请求,服务层就自动地将该联系信息的副本保存在aecontactsummary参数中。如果联系信息已经根据以前的请求而在那里,或者如果ae具有服务提供商分配的ae_id,则aecontactsummary资源无需被更新。如果ae联系信息不再被需要,比如说例如被公告资源被删除,则ae联系信息可以被从列表删除。作为另一替代方案,m2m服务器1410可以进行订阅以当该aecontactsummary参数有变化时被通知。结果,在aecontactsummary参数有变化的任何时间,m2m服务器1410被通知。通知消息可以包含已经被创建、修改或删除的ae联系信息。
要理解,执行图16所示的步骤的实体可以是可以以存储在被配置用于无线通信和/或网络通信的设备或计算机系统(诸如图23c或图23d所示的那些)的存储器中并且在该设备或计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体。也就是说,图16所示的(一种或多种)方法可以以存储在设备(诸如图23c或图23d所示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现,所述计算机可执行指令在被该设备的处理器执行时执行图16所示的步骤。还要理解,图16所示的功能可以被实现为一组虚拟化的网络功能。所述网络功能可能不一定直接进行通信,相反,它们可以经由转发或路由功能来进行通信。还要理解,图14所示的任何发送步骤和接收步骤可以由所述设备的通信电路在所述设备的处理器和它执行的计算机可执行指令(例如,软件)的控制下执行。
m2m服务器可以维护受ae联系信息变化影响的sl的列表。在该选项中,子服务层和相关联的ae联系信息的主列表被保存在m2m服务器1410处。子服务层负责保存最新的这个主列表。示出子服务层和m2m服务器1410之间的交互的典型的调用流程在图17中示出。如前一节中那样,假定ae1(具有资源名称:thermocontrol和资源id:tcoo1)最初被向服务层1(具有cse-idcseoo1)注册,在移动性事件之后,ae1被向服务层2(具有cse-idcse002)注册。
在图17的步骤0中,假定m2m服务器1410已经对参数aecontactlist进行了初始化,参数aecontactlist用于保存ae联系信息的主列表。例如,该参数可以被实现为m2m服务器1410上的资源。存储在该参数中的信息是每一子服务层的ae联系信息的列表。
在图17的步骤1中,网关2中的子服务层接收具有ae联系信息的请求。该子服务层将“添加”ae联系信息请求发送给m2m服务器1410。
在图17的步骤2中,m2m服务器1410从所述请求提取ae联系信息,并且更新aecontactlist中的适当的条目。例如如果步骤1中的请求是具有作为成员id的多个ae的群组创建,则所述请求可以包含多于一个的ae联系信息。
在某个稍后的时间,网关1中的子服务层1删除被公告资源。该资源具有ae联系信息。
在图17的步骤3中,子服务层1将“移除”ae联系信息请求发送给m2m服务器1410。
在图17的步骤4中,m2m服务器1410从所述请求提取ae联系信息,并且从aecontactlist移除对应的条目。在任何时间点,m2m服务器1410具有受ae移动性影响的所有的子服务层的完整视图。例如,用于onem2m部署的样例aecontactlist在表1中示出。
表1:示例aecontactlist
在图17的步骤5中,m2m服务器1410知道对于ae1发生了ae移动性事件。由于该ae移动性事件,ae联系信息/cseoo1/tcoo1是陈旧的,并且需要变为/cse002/tc001。m2m服务器1410查看aecontactlist,并且确定受该移动性事件影响的服务层。对于表1所示的例子,受影响的两个cse具有idcse004和cse009。m2m服务器将updatecontactinforeq仅发送给这些受影响的服务层。
应意识到,还可能的是实体进行订阅以被通知aecontactlist参数的变化。订阅可以是针对整个服务提供商域内的变化,或者针对特定的子服务层的ae联系信息的变化。
应意识到,执行图17所示的步骤的实体可以是可以以存储在被配置用于无线通信和/或网络通信的设备或计算机系统(诸如图23c或图23d所示的那些)的存储器中并且在该设备或计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体。也就是说,图17所示的(一种或多种)方法可以以存储在设备(诸如图23c或图23d所示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现,所述计算机可执行指令在被该设备的处理器执行时执行图17所示的步骤。还应意识到,图17所示的功能可以被实现为一组虚拟化的网络功能。所述网络功能可能不一定直接进行通信,相反,它们可以经由转发或路由功能来进行通信。应进一步意识到,图17所示的任何发送步骤和接收步骤可以由所述设备的通信电路在所述设备的处理器和它执行的计算机可执行指令(例如,软件)的控制下执行。
子服务层可以在m2m服务器处创建当存在ae移动性事件时可以送出通知的订阅。在头两个选项中,一般方法依赖于使m2m服务器1410找出需要被通知ae移动性事件的sl,然后将新的ae联系信息发送给这些sl。在这个第三选项中,sl进行订阅以如果存在新的ae联系信息的话被通知。
在该选项中,子服务层依赖于当存在ae移动性事件时被通知的订阅机制。样例调用流程在图18中描绘。
在图18的步骤0中,一开始假定m2m服务器1410维护所有对于ae移动性事件的有效订阅。该机制与onem2m中定义的订阅机制略有不同,因为它不一定与资源上正在发生的一些事件有关。相反,它与在m2m服务器1410处可能观察到的事件有关。每个订阅包含发出请求的服务层的地址以及正被监视的ae的ae联系信息。
在图18的步骤1中,服务层3接收具有用于ae1的ae联系信息的请求。在所示的例子中,该请求是群组创建请求。
在图18的步骤2中,服务层3进行订阅以被通知ae1的ae移动性事件。它还提供它想要被通知可能的移动性事件的地址。
在图18的步骤3中,m2m服务器1410更新其关于ae移动性事件的订阅信息。
在图18的步骤4中,稍后的某个时间,在服务层2处删除公告资源。公告资源具有回指ae2的链接属性。
在图18的步骤5中,网关2服务层(sl21406)要求m2m服务器1410取消其对ae监视事件的订阅。
在图18的步骤6中,m2m服务器1410更新其订阅信息,从而删除订阅。
在图18的步骤7中,移动性事件对于ae1发生。m2m服务器1410可以使用图14和15中的方法中的一种方法来确定该事件发生。m2m服务器1410然后可以仔细检查它的所有订阅以找到与ae1相关的那些订阅。与ae1相关的任何订阅都将被通知ae移动性事件。如果m2m服务器1410找到需要被通知的多个服务层,则它可以创建具有这些成员的群组,并且扇出updatecontactinforeq。
应意识到,执行图18所示的步骤的实体可以是可以以存储在被配置用于无线通信和/或网络通信的设备或计算机系统(诸如图23c或图23d所示的那些)的存储器中并且在该设备或计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体。也就是说,图18所示的(一种或多种)方法可以以存储在设备(诸如图23c或图23d所示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现,所述计算机可执行指令在被该设备的处理器执行时执行图18所示的步骤。还应意识到,图18所示的功能可以被实现为一组虚拟化的网络功能。所述网络功能可能不一定直接进行通信,相反,它们可以经由转发或路由功能来进行通信。应进一步意识到,图18所示的任何发送步骤和接收步骤可以由所述设备的通信电路在所述设备的处理器和它执行的计算机可执行指令(例如,软件)的控制下执行。
实施例
本节描述用于对于onem2m架构实现本文中所描述的方法/增强的实施例。另外,用户界面也包括在图22中以显示和/或配置相关参数和信息。
onem2m实施例
本文中所描述的新的功能可以在新的移动性(mob)csf1902中实现,mobcsf1902处理ae移动性事件以及可能地可能影响onem2m层的其他的移动性场景。
移动性csf1902可以在in-cse以及mn-cse和asn-cse中找到。这个新的mob1902支持如上面所描述的m2m服务器1410和子服务层之间的过程和处理。与服务层相关的资源和过程将在cse中实现。
可替代地,本文中所描述的新的功能可以在现有的csf中实现——例如发现、注册或定位csf。
应意识到,执行图19所示的功能可以以存储在无线装置或其他设备(例如,服务器1410、网关、装置或其他计算机系统)(诸如下面描述的图23c或图23d所示的那些中的一个)的存储器中并且在该装置或设备的处理器上执行的软件(即,计算机可执行指令)的形式实现。还应意识到,图19所示的功能可以被实现为一组虚拟化的网络功能。所述网络功能可能不一定直接进行通信,相反,它们可以经由转发或路由功能来进行通信。
映射updatecontactinforeq
使用通知请求
上述updatecontactinforeq消息可以通过通知(notify)操作来实现。to参数可以被设置为正被联系的cse。例如,这可以是:
1)<csebase>资源的resourceid,
2)<csebase>资源的分层地址,
3)cse的pointofaccess中cse发布的cse的pointofaccess(ip地址和端口、或fqdn)。
content参数可以包括更新的联系信息。例如,它可以包括旧的ae联系信息和/或新的ae联系信息。
多于一种形式的联系信息可以包括在内。例如,联系信息可以为资源名称(/mn-cseoo1/csebase/appname)的形式,或者资源id(/mn-cseoo1/aeoooo1)的形式,或者ae的绝对uri(ip地址/端口、fqdn等)的形式。
另外,请求还可以包括可选的requestcause参数,该参数向接收器通知请求被发出的原因。用于该参数的可能的值可以包括例如:
·ae移动性事件:由于检测到ae移动性事件,始发器已经发出该请求。
基本操作如onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0的第10.1.5节中所定义的那样,该文献整个地通过引用并入本文。下面对该过程的步骤003的细节进行修改:
对于mn-cse或asn-cse,
·cse在<subscription>资源的notificationtargets属性、<group>资源中的memberids属性、和被公告资源中的链接属性中搜索与供应的旧的ae联系信息匹配的uri;并且
·cse用新的ae联系信息替换找到的属性中的uri。
对于in-cse,
·in-cse触发ae移动性事件处理过程。
使用更新(update)请求
本文中所描述的updatecontactinforeq消息可以通过对于cse虚拟资源contactinfochange的更新操作来实现。content参数可以包括更新的联系信息,它可以包括旧的ae联系信息和/或新的ae联系信息。
多于一种形式的联系信息可以包括在内。例如,联系信息可以为资源名称(/mn-cseoo1/csebase/appname)的形式,或者资源id(/mn-cseoo1/aeoooo1)的形式,或者ae的绝对uri(ip地址/端口、fqdn等)的形式。另外,请求还可以包括可选的requestcause参数,该参数向接收器通知请求被发出的原因。用于该参数的可能的值可以包括例如:
·ae移动性事件:由于检测到ae移动性事件,始发器已经发出该请求。
基本操作如onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0的第10.1.5节中所定义的那样,该文献整个地通过引用并入本文。下面对该过程的步骤003的细节进行修改:
对于mn-cse或asn-cse,
·cse在<subscription>资源的notificationtargets属性、<group>资源中的memberids属性、和被公告资源中的链接属性中搜索与供应的旧的ae联系信息匹配的uri;并且
·cse用新的ae联系信息替换找到的属性中的uri。
对于in-cse,
·in-cse触发ae移动性事件处理过程。
对于ae注册请求的修改
作为ae注册过程的一部分,ae向注册方cse发出创建(create)请求。该请求可以包括以下可选参数:initialregistration、localregistration和currentregistrarcse。
initialregistration:适用于ae或cse注册请求的可选参数。如果被设置为真,则接收器cse将创建操作作为来自始发器的初始注册进行处理。例如,当始发器被预先调配ae-id或cse-id时,这可能发生。如果被设置为假或空,则接收器cse将创建操作作为重新注册请求进行处理。
localregistration:适用于ae注册请求的可选参数。如果被设置为真,则当ae移动性事件被检测到时,接收器cse将不采取任何积极的动作。如果被设置为假或空,则当ae经历ae移动性事件时,接收器cse将帮助ae。例如,它可以向in-cse通知移动性事件已经发生。
currentregistrarcse:适用于ae或cse注册请求的可选参数。。被始发器设置为当前的注册方cse的cse-id。如果接收器cse不同于供应的cse-id,则这向接收器cse指示这是重新注册请求,并且在始发器先前被注册的情况下,它向注册方cse提供cse的cse-id。
用于公告资源的新的属性
作为关于图14的描述的一部分,描述了在ae重新向新的注册方cse注册并且向in-cse公告其存在之后,in-cse将具有两个被公告资源——一个用于旧的注册,一个用于新的注册。因为可能存在保存旧的公告将有用的情况(比如说ae移回到原始cse),所以建议维护被公告资源,但是被置于“禁用”状态。为了实现此,如表2中用粗体示出的,新的status属性可以被引入到公告资源中。
表2:用于被公告资源的通用属性(摘自onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0)
用于发现的新的过滤器准则
作为关于图16的描述的一部分,描述了cse可以发出发现请求以找到所有的与ae联系信息的匹配(例如,在公告链接属性中,在群组成员id中,或者在通知目标中)。为了实现此,引入了新的过滤器准则以用信号向接收cse通知搜索需要通过它的所有ae联系信息来进行。它在表3中用粗体示出。
表3.过滤器准则条件
如果没有其他的信息可用于供始发器缩小搜索范围,则搜索的根可以被设置为目标cse的csebase。
用于<ae>资源的新的属性
作为关于图14的描述的一部分,描述了在ae重新向新的注册方cse注册并且向in-cse公告其存在之后,in-cse可以删除或禁用原始的<ae>资源。因为可能存在保存旧的公告将有用的情况(比如说ae移回到原始cse),所以建议维护被公告资源,但是被置于“禁用”状态。在处于这种状态时,cse维护与该资源有关的所有上下文,并且可以对该资源仅允许检索(retrieve)操作。以该资源为目标的任何其他的操作被用不成功的响应状态代码(responsestatuscode)拒绝。另外,响应消息的content可以包含附加的错误信息(例如“被禁用的资源”)。为了实现此,如表4中用粗体示出的,新的status属性可以被引入到<ae>资源中。
表4:用于<ae>资源的属性(摘自onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0)
对于订阅/通知的修改
如关于图18所描述的,cse可以进行订阅以当特定的ae移动性事件发生时被通知。结果,知道它具有用于ae1的ae联系信息的cse可以向in-cse进行订阅,以在对于ae1存在ae移动性事件时被通知。
这可以通过将一个新的属性引入到订阅资源并且添加新的通知准则来实现。
用于订阅的新的事件通知准则
新的事件通知准则允许cse监视cse处与订阅资源的父资源的一些变化无关、但与cse处发生的一些动作有关的特定事件。在关于图18提出的解决方案的上下文中,事件是ae监视事件。<subscription>资源可以在<csebase>资源或<node>子资源之一下面被创建。在表5的条目中提供了细节(新的条目用粗体示出)。
表5:eventnotificationcriteria条件
新的<aecontactsummary>资源
<aecontactsummary>资源支持关于图16提出的解决方案。它提供用于该cse的ae联系信息的列表。每次请求创建或删除ae联系信息,它就在内部被cse更新。资源可以例如:
·被远程cse发现或检索;
·被公告给/被镜像到远程cse;和/或
·被远程cse订阅。
这使得远程cse(通常是in-cse)可以确定托管cse是否受ae移动性事件的影响。它可以驻留在csebase的下面,并且在图20中被描绘。它具有表6中定义的一个属性(aecontactinfo)。
表6<aecontactsummary>的属性
<aecontactsummary>资源过程
为了使<aecontactsummary>资源实现上述交互,包括创建、检索、更新和删除的操作被允许。
创建<aecontactsummary>
如上所述,<aecontactsummary>资源的创建只可以在第一个被注册方cse向托管cse注册时隐式地在cse上进行。这将在<csebase>的下面创建<aecontactsummary>子资源。
托管cse可以遵循下面概述的过程。
步骤001:接收器可以:
1)对将被创建的<aecontactsummary>资源的resourceid和resourcename属性进行赋值。
2)对onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0(整个地通过引用并入本文)的条款9.6.1.3中规定的以下共同属性进行赋值:
a)parentid;
b)creationtime;
c)expirationtime:托管cse可以赋予与触发<aecontactsummary>资源的创建的<ae>资源的expirationtime一致的值。
d)lastmodifiedtime:等于creationtime;
e)statetag;
f)accesscontrolpolicyids:用包含以下内容的<accesscontrolpolicy>的一个id填充:
i)在privileges属性中:
1)允许对于正被创建到托管cse的<aecontactsummary>资源的检索、更新和删除操作。
2)允许对于正被创建到in-cse的该<aecontactsummary>资源的检索和删除操作。
3)在接收器策略的限制内分配<aecontactsummary>资源类型的任何其他的ro(只读)属性:
a)aecontactinfo:包括用于触发该<aecontactsummary>资源的创建的<ae>资源的ae联系信息的uri的列表。
步骤002:接收器可以创建<aecontactsummary>资源。
检索<aecontactsummary>
该过程可以用于检索<aecontactsummary>资源的属性(例如,被in-cse检索)。通用的检索过程在onem2m-ts-0001,onem2mfunctionalarchitecture-v-2.6.0(整个地通过引用并入本文)中的条款10.1.2中描述。
表7.<aecontactsummary>检索
更新<aecontactsummary>
如上面关于图16-18所描述的,<aecontactsummary>资源的更新无需被支持。由于<ae>资源在托管cse上被创建或删除,所以<aecontactsummary>资源的属性中的变化可以仅由托管cse进行。对于每个新的<ae>资源,托管cse更新aecontactinfo属性和expirationtime属性(例如,将它设置为具有最远的到期时间的<ae>资源的expirationtime)。
删除<aecontactsummary>
该过程可以用于删除现有的<aecontactsummary>资源。现有的<aecontactsummary>资源的删除可以使用于托管cse的ae联系信息的任何进一步处理终止。
表8.<aecontactsummary>删除
另外,当托管cse处的最后的<ae>资源被删除时,托管cse可以隐式地删除<aecontactsummary>资源。
新的aecontactlist资源
<aecontactlist>资源支持关于图17提出的解决方案。它提供用于服务提供商域中的所有cse的ae联系信息的列表。它仅在in-cse处被维护,并且当cse将添加/删除ae联系信息请求发送给in-cse时被更新。它可以驻留在csebase的下面,并且在图21中被描绘。它具有用于已经提供ae联系信息的每个cse的一个子资源(<cseref>)。<cseref>具有表9中定义的两个属性(cse-id和aecontactinfo)。
表9<cseref>的属性
新的cse属性(descendentaes)
作为使用通知或更新操作来映射updatecontactinforeq的替代实施例,信息可以通过派生cse交换而被隐式地从cse发送到in-cse。cse1的派生cse可以是指通过注册与cse1相关的所有的子cse。如果cse3被注册到cse2并且cse2被注册到cse1,则cse2和cse3是cse1的派生cse。作为被注册方cse和注册方cse之间的注册的结果,注册方cse将维护用于被注册方cse的<remotecse>资源。该<remotecse>资源包括被注册方cse的属性。
派生cse交换依赖于被注册方cse递归地将属性推送到它们的注册方cse(通过它们的<remotecse>资源)。所述属性从一个被注册方cse被推送到其注册方cse,然后从注册方cse(充当被注册方cse)被推送到其注册方cse,依此类推,一直直到该属性被推送到in-cse为止。例如,考虑cse3被注册到cse2,cse2被注册到cse1,cse1被注册到in-cse的情况。cse3更新其在cse2中的<remotecse>资源中的属性。cse2更新其在cse1中的<remotecse>资源中的属性,cse1更新其在in-cse中的<remotecse>资源中的属性。
所提出的属性是descendentaes属性。这是<cse>资源和<remotecse>资源的新属性。所述属性具有重数0..1(l),并且是可读的/可写的。
所述属性包含(cseid,应用实体资源id)对的集合的形式的aecontactlist。当<cse>资源被创建时,所述属性被初始化。
当具有应用实体资源id的服务被启动、更新或删除时,所述属性被修改。例如,当<subscription>资源具有包含应用实体资源id的notificationuri属性时,或者当<group>资源具有包含应用实体资源id的memberlist属性中的成员时,或者当被公告资源具有指向应用实体资源id的链接属性时。当<remotecse>资源的descendentaes属性被修改时,所述属性也被修改。
当服务被启动时,资源被创建,并且如果该资源包含对于应用实体资源id的引用,则托管cse将把(cseid,应用实体资源id)对包括在其descendentaes属性中。托管cse还将更新其在其注册方cse上的<remotecse>资源的descendentaes属性。
当服务被停止时,资源被删除,并且如果该资源包含对于应用实体资源id的引用,则托管cse将从其descendentaes属性删除(cseid,应用实体资源id)对。托管cse还将更新其在其注册方cse上的<remotecse>资源的descendentaes属性。
当服务被修改时,与服务有关的资源被修改,并且如果它具有对于添加的(或删除的)应用实体资源id的引用,则托管cse将把(cseid,应用实体资源id)对包括在其descendentaes属性中(或者移除(cseid,应用实体资源id)对)。托管cse还将更新其在其注册方cse上的<remotecse>资源的descendentaes属性。
当<remotecse>资源的descendentaes属性被改变时,注册方cse将相应地更新<cse>资源的descendentaes属性——相应地移除/添加/修改条目。
m2m/iot系统中的任何cse中的descendentaes属性中的每一个变化都被传播到in-cse。in-cse的descendentaes属性将具有如关于图17呈现的完整aecontactlist。
图形用户界面
诸如图形用户界面(gui)2202和2204的界面可以用于辅助用户控制或配置与应用的移动性管理相关的功能。用户界面可以被添加到cse以:
·在支持服务层的中间节点或终端装置处监视/显示ae联系信息结果。这使得用户可以查看如关于图16定义的aecontactsummary(例如,界面2202);
·在基础设施节点处监视/显示针对整个服务提供商域的ae联系信息结果。这使得用户可以查看如关于图17定义的aecontactlist(例如,界面2204);
·发现受ae移动性事件影响的cse(这在基础设施节点处);
·手动地更新cse(要么是支持服务层的中间节点、终端装置,要么是基础设施节点)处的ae联系信息;和/或
·触发mn-cse将updatecontactinforeq发送给in-cse(在支持服务层的中间节点或终端装置处)。
应意识到,界面2202和2204可以使用诸如下面描述的图23c-d所示的那些显示器之类的显示器来生成。
示例环境
图23a是示例的机器对机器(m2m)、物联网(iot)或万维物联网(wot)通信系统10的示图,在通信系统10中,可以实现一个或多个公开的实施例。一般来说,m2m技术为iotavot提供构建块,任何m2m装置、m2m网关、m2m服务器或m2m服务平台都可以是iotavot以及iotavot服务层等的组件或节点。图2-4、6-19或22中的任何一个所示的客户端、代理或服务器装置中的任何一个都可以包括通信系统的节点(诸如图23a-d所示的那些)。
服务层可以是网络服务架构内的功能层。服务层通常位于应用协议层(诸如http、coap或mqtt)之上,并且为客户端应用提供增值服务。服务层还在更低的资源层(诸如举例来说控制层和传输/访问层)处为核心网络提供接口。服务层支持多个类别的(服务)能力或功能,包括服务定义、服务运行时启用、策略管理、访问控制和服务聚类。最近,几个工业标准体(例如,onem2m)一直在开发m2m服务层以解决与m2m类型的装置和应用到诸如互联网/web、蜂窝网络、企业网络和家乡网络的部署中的整合相关联的挑战。m2m服务层可以为应用和/或各种装置提供对于可以被称为cse或scl的服务层支持的一批或一组上述能力或功能的访问。几个例子包括,但不限于,各种应用通常可以使用的安全性、收费、数据管理、装置管理、发现、调配和连接管理。这些能力或功能经由使用m2m服务层定义的消息格式、资源结构和资源表示的api而使得可供这样的各种应用使用。cse或scl是可以用硬件和/或软件实现的功能实体,该功能实体提供显露于各种应用和/或装置的(服务)能力或功能(即,这样的功能实体之间的功能接口)以便使它们使用这样的能力或功能。
如图23a所示,m2m/iot/wot通信系统10包括通信网络12。通信网络12可以是固定网络(例如,以太网、光纤、isdn、plc等)或无线网络(例如,wlan、蜂窝等)或异构网网络。例如,通信网络12可以由向多个用户提供内容(诸如语音、数据、视频、讯息、广播等)的多个接入网络组成。例如,通信网络12可以采用一种或多种信道接入方法,诸如码分多址(cdma)、时分多址(tdma)、频分多址(fdma)、正交fdma(ofdma)、单载波fdma(sc-fdma)等。此外,通信网络12可以包括其他网络,诸如举例来说核心网络、互联网、传感器网络、工业控制网络、个域网、融合个人网络、卫星网络、家庭网络或企业网络。
如图23a所示,m2m/iot/wot通信系统10可以包括基础设施域和场域。基础设施域是指端对端m2m部署的网络侧,场域是指通常在m2m网关后面的区域网络。场域和基础设施域这二者都可以包括网络的各种不同的节点(例如,服务器、网关、装置等)。例如,场域可以包括m2m网关14和装置18。将意识到,任何数量的m2m网关装置14和m2m装置18可以根据期望包括在m2m/iot/wot通信系统10中。m2m网关装置14和m2m装置18中的每个被配置为经由通信网络12或直接无线电链路使用通信电路发送和接收信号。m2m网关14允许无线m2m装置(例如,蜂窝的和非蜂窝的)以及固定网络m2m装置(例如,plc)通过运营商网络(诸如通信网络12)或直接无线电链路进行通信。例如,m2m装置18可以经由通信网络12或直接无线电链路收集数据并且将数据发送到m2m应用20或其他的m2m装置18。m2m装置18还可以从m2m应用20或m2m装置18接收数据。此外,如下所述,数据和信号可以经由m2m服务层22被发送给m2m应用20并且从m2m应用20接收。m2m装置18和网关14可以经由各种网络(包括例如蜂窝、wlan、wpan(例如,zigbee、6l0wpa、蓝牙)、直接无线电链路和导线)进行通信。示例性m2m装置包括,但不限于,平板、智能电话、医疗装置、温度和天气监视器、连接的汽车、智能仪表、游戏机、个人数字助理、健康和健身监视器、灯光、恒温器、电器、车库门以及其他的基于致动器的装置、安全性装置和智能插座。
参照图23b,场域中的例示说明的m2m服务层22为m2m应用20、m2m网关14、m2m装置18和通信网络12提供服务。将理解,m2m服务层22可以根据需要与任何数量的m2m应用、m2m网关14、m2m装置18和通信网络12进行通信。m2m服务层22可以由网络的一个或多个节点来实现,所述一个或多个节点可以包括服务器、计算机、装置等。m2m服务层22提供适用于m2m装置18、m2m网关14和m2m应用20的服务能力。m2m服务层22的功能可以以各种方式实现,例如,被实现为web服务器、在蜂窝核心网络中实现、在云中实现、等等。
类似于例示说明的m2m服务层22,在基础设施域中存在m2m服务层22’。m2m服务层22’为基础设施域中的m2m应用20’和底层通信网络12提供服务。m2m服务层22’还为场域中的m2m网关14和m2m装置18提供服务。将理解,m2m服务层22’可以与任何数量的m2m应用、m2m网关和m2m装置进行通信。m2m服务层22’可以通过不同的服务提供商与服务层交互。m2m服务层22’可以由网络的一个或多个节点来实现,所述一个或多个节点可以包括服务器、计算机、装置、虚拟机(例如,云计算/存储群等)。
还参照图23b,m2m服务层22和22’提供不同的应用和垂直面可以利用的核心的一组服务递送能力。这些服务能力使得m2m应用20和20’能够与装置进行交互,并且执行诸如数据收集、数据分析、装置管理、安全性、记账、服务/装置发现等的功能。本质上,这些服务能力使应用没有实现这些功能的负担,从而使应用部署简化并且降低成本和缩短进入市场的时间。服务层22和22’还使得m2m应用20和20’能够通过各种网络(诸如与服务层22和22’提供的服务有关的网络12)进行通信。
m2m应用20和20’可以包括各种行业中的应用,诸如,但不限于,运输、健康和保健、联网家庭、能量管理、资产跟踪以及安全性和监督。如上所述,跨装置、网关、服务器和系统的其他节点运行的m2m服务层支持诸如举例来说数据收集、装置管理、安全性、记账、位置跟踪/地理防护、装置/服务发现以及老式系统整合的功能,并且将这些功能作为服务提供给m2m应用20和20’。
一般来说,服务层(诸如图23b所示的服务层22和22’)通过一组应用编程接口(api)和底层联网接口来定义支持增值服务能力的软件中间件层。etsim2m和onem2m架构这两者都定义服务层。etsim2m的服务层被称为服务能力层(scl)。scl可以在etsim2m架构的各种不同的节点中实现。例如,服务层的实例可以在m2m装置内实现(其中它被称为装置scl(dscl)),在网关内实现(其中它被称为网关scl(gscl)),和/或在网络节点内实现(其中它被称为网络scl(nscl))。onem2m服务层支持一组公共服务功能(csf)(即,服务能力)。一组一种或多种特定类型的csf的实例化被称为公共服务实体(cse),cse可以被托管在不同类型的网络节点(例如,基础设施节点、中间节点、应用特定节点)上。第三代合作伙伴计划(3gpp)也已经定义了机器型通信(mtc)的架构。在该架构中,服务层和它提供的服务能力被实现为服务能力服务器(scs)的一部分。不管是在etsim2m架构的dscl、gscl或nscl中、3gppmtc架构的服务能力服务器(scs)中、onem2m架构的csf或cse中、还是在网络的某个其他节点中实施,服务层的实例可以被实现为在网络中的一个或多个独立的节点(包括服务器、计算机和其他计算装置或节点)上执行的逻辑实体(例如,软件、计算机可执行指令等),或者被实现为一个或多个现有的节点的一部分。作为例子,服务层或其组件的实例可以以在具有下面描述的图23c或图23d所示的一般架构的网络节点(例如,服务器、计算机、网关、装置等)上运行的软件的形式实现。
此外,本文中所描述的方法和功能可以被实现为使用面向服务的架构(soa)和/或面向资源的架构(roa)访问服务的m2m网络的一部分。
图23c是网络的节点的示例硬件/软件架构的框图,所述节点诸如图2-4、6-19或22所示的、可以作为m2m服务器、网关、装置或m2m网络中的其他节点(诸如图23a和23b所示的节点)进行操作的客户端、服务器或代理中的一个。如图23c所示,节点30可以包括处理器32、不可移动的存储器44、可移动的存储器46、扬声器/麦克风38、键区40、显示器、触控板和/或指示器42、电源48、全球定位系统(gps)芯片组50和其他外设52。节点30还可以包括通信电路,诸如收发器34和发送/接收元件36。将意识到,在与实施例保持一致的同时,节点30可以包括前述元件的任何子组合。该节点可以是实现如本文中所描述的(例如,关于参照图6a-b、7、8和13-18描述的方法或图1-6b、10-12和19-21、表1-9的数据结构或权利要求中的)应用的移动性管理的节点。
处理器32可以是通用处理器、专用处理器、常规处理器、数字信号处理器(dsp)、多个微处理器、与dsp核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)电路、任何其他类型的集成电路(ic)、状态机等。一般来说,处理器32可以执行存储在节点的存储器(例如,存储器44和/或存储器46)中的计算机可执行指令以便执行节点的各种所需功能。例如,处理器32可以执行信号译码、数据处理、功率控制、输入/输出处理、和/或使得节点30能够在无线或有线环境中操作的任何其他的功能。处理器32可以运行应用层程序(例如,浏览器)和/或无线电接入层(ran)程序和/或其他通信程序。处理器32还可以执行诸如举例来说接入层和/或应用层上的安全操作,诸如认证、安全密钥协议、和/或密码操作。
如图23c所示,处理器32耦合到其通信电路(例如,收发器34和发送/接收元件36)。处理器32通过计算机可执行指令的执行,可以控制通信电路以便使节点30经由它连接到的网络与其他节点进行通信。特别地,处理器32可以控制通信电路以便执行本文中(例如,在图6a-b、7、8、13-18和25中)和权利要求中所描述的发送步骤和接收步骤。虽然图23c将处理器32和收发器34描绘为单独的组件,但是将意识到,处理器32和收发器34可以一起集成在电子封装件或芯片中。
发送/接收元件36可以被配置为将信号发送到其他节点或者从其他节点接收信号,所述其他节点包括m2m服务器、网关、装置等。例如,在实施例中,发送/接收元件36可以是被配置为发送和/或接收rf信号的天线。发送/接收元件36可以支持各种网络和空口,诸如wlan、wpan、蜂窝等。在实施例中,发送/接收元件36可以是被配置为发送和/或接收例如ir、uv或可见光信号的发射器/检测器。在又一个实施例中,发送/接收元件36可以被配置为发送和接收rf信号和光信号这二者。将意识到,发送/接收元件36可以被配置为发送和/或接收无线信号或有线信号的任何组合。
另外,尽管发送/接收元件36在图23c中被描绘为单个元件,但是节点30可以包括任何数量的发送/接收元件36。更具体地说,节点30可以采用mimo技术。因此,在实施例中,节点30可以包括用于发送和接收无线信号的两个或更多个发送/接收元件36(例如,多个天线)。
收发器34可以被配置为对发送/接收元件36将发送的信号进行调制并且对发送/接收元件36接收的信号进行解调。如上面所指出的,节点30可以具有多节点能力。因此,收发器34可以包括用于使得节点30能够经由多种rat(诸如举例来说utra和ieee802.11)进行通信的多个收发器。
处理器32可以从任何类型的合适的存储器(比如不可移动的存储器44和/或可移动的存储器46)访问信息并且将数据存储在该存储器中。例如,如上所述,处理器32可以将会话上下文存储在其存储器中。不可移动的存储器44可以包括随机存取存储器(ram)、只读存储器(rom)、硬盘、或任何其他类型的存储器存储装置。可移动的存储器46可以包括用户身份模块(sim)卡、记忆棒、安全数字(sd)存储卡等。在其他实施例中,处理器32可以从不是物理上位于节点30上(诸如服务器或家庭计算机上)的存储器访问信息并且将数据存储在该存储器中。处理器32可以被配置为控制显示器或指示器42上的照明图案、图像或颜色以反映节点的状态或配置节点,特别是底层网络、应用或与节点通信的其他服务。在一个实施例中,显示器/指示器42可以呈现图25所示的并且在本文中描述的图形用户界面。
处理器32可以从电源48接收功率,并且可以被配置为将功率分布给节点30中的其他组件和/或控制给予节点30中的其他组件的功率。电源48可以是用于给节点30供电的任何合适的装置。例如,电源48可以包括一个或多个干电池蓄电池(例如,镍镉(nicd)、镍锌(nizn)、镍金属氢化物(nimh)、锂离子(li-ion)等)、太阳能电池、燃料电池等。
处理器32还可以耦合到gps芯片组50,gps芯片组50被配置为提供关于节点30的当前位置的位置信息(例如,经度和维度)。将意识到,在与实施例一致的同时,节点30可以通过任何合适的位置确定方法来获取位置信息。
处理器32可以进一步与其他外设52耦合,所述其他外设52可以包括提供附加的特征、功能和/或有线或无线连接的一个或多个软件和/或硬件模块。例如,外设52可以包括各种传感器,诸如加速计、生物计量(例如,指纹)传感器、电子罗盘、卫星收发器、传感器、数字照相机(用于照片或视频)、通用串行总线(usb)端口或其他互连接口、振动装置、电视收发器、免提耳机、
节点30可以包含在其他设备或装置中,诸如传感器、消费电子产品、可穿戴装置(诸如智能手表或智能服装)、医疗或电子健康装置、机器人、工业设备、无人机、交通工具(诸如汽车、卡车、火车或飞机)。节点30可以经由一个或多个互连接口(诸如可能包括外设52之一的互连接口)连接到这样的设备或装置的其他组件、模块或系统。
图23d是示例性计算系统90的框图,计算系统90还可以用于实现网络的一个或多个节点,诸如图2-4、6-19或22所示的并且在本文中描述的、可以作为m2m服务器、网关、装置或m2m网络中的其他节点(诸如图23a和23b所示的节点)进行操作的客户端、服务器或代理。
计算系统90可以包括计算机或服务器,并且可以主要通过可以为软件的形式的计算机可读指令无论在什么地方或通过这样的指令被存储或访问的任何手段来控制。这样的计算机可读指令可以在处理器(诸如中央处理单元(cpu)91)内被执行以使计算系统90做工作。在许多已知的工作站、服务器和个人计算机中,中央处理单元91由被称为微处理器的单芯片cpu实现。在其他机器中,中央处理单元91可以包括多个处理器。协处理器81是不同于主cpu91的可选的处理器,该协处理器执行附加的功能或辅助cpu91。cpu91和/或协处理器81可以接收、产生和处理与所公开的用于e2em2m服务层会话(诸如接收会话证书或基于会话证书进行认证)的系统和方法相关的数据。
在操作中,cpu91提取、解码和执行指令,并且经由计算机的主要数据传送路径、系统总线80与其他资源来回传送信息。这样的系统总线连接计算系统90中的组件,并且定义用于数据交换的介质。系统总线80通常包括用于发送数据的数据线、用于发送地址的地址线、以及用于发送中断并且用于操作系统总线的控制线。这样的系统总线80的例子是pci(外围组件互连)总线。
耦合到系统总线80的存储器包括随机存取存储器(ram)82和只读存储器(rom)93。这样的存储器包括允许信息被存储和检索的电路。rom93一般包括不能容易地被修改的存储的数据。存储在ram82中的数据可以被cpu91或其他硬件装置读取或改变。对于ram82和/或rom93的访问可以由存储器控制器92控制。存储器控制器92可以提供当指令被执行时将虚拟地址转化为物理地址的地址转化功能。存储器控制器92还可以提供隔离系统内的处理并且使系统处理与用户处理隔离的存储器保护功能。因此,在第一模式下运行的程序可以仅访问被它自己的处理的虚拟地址空间映射的存储器;它不能访问另一个处理的虚拟地址空间内的存储器,除非处理之间共享的存储器已经被设置。
另外,计算系统90可以包含外设控制器83,外设控制器83负责将指令从cpu91传送给外设,诸如打印机94、键盘84、鼠标95和硬盘驱动器85。
由显示器控制器96控制的显示器86可以用于显示计算系统90产生的视觉输出。这样的视觉输出可以包括文本、图形、动画图形和视频。显示器86可以用基于crt的视频显示器、基于lcd的平板显示器、基于气体等离子体的平板显示器或触摸面板来实现。显示器控制器96包括产生发送给显示器86的视频信号所需的电子组件。显示器86与cpu91执行的计算机可执行指令组合可以产生并且操作图25及其附随描述中例示说明和描述的图形用户界面。
此外,计算系统90可以包含可以用于将计算系统90连接到外部通信网络(诸如图23a-d的网络12)以使得计算系统90能够与网络的其他设备通信的通信电路,诸如举例来说网络适配器97。所述网络电路单独地或与cpu91组合地,可以用于执行本文中(例如,在图1、3、5-8、11-15、20-21、24或25中)和权利要求中描述的发送步骤和接收步骤。
要理解,本文中描述的系统、方法和处理中的任何一个或全部可以以存储在计算机可读存储介质上的计算机可执行指令(即,程序代码)的形式实施,所述指令当被机器(诸如m2m网络的设备,包括例如m2m服务器、网关、装置等)执行时执行和/或实现本文中所描述的系统、方法和处理。具体地说,上述步骤、操作或功能中的任何一个都可以以这样的计算机可执行指令的形式实现。计算机可读存储介质包括以用于存储信息的任何非暂态(即,可触摸的或物理的)方法或技术实现的易失性和非易失性、可移动的和不可移动的介质,但是这样的计算机可读存储介质不包括信号。计算机可读存储介质包括,但不限于,ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘储存器、磁盒、磁带、磁盘储存器或其他磁性存储装置、或可以用于存储期望信息并且可以被计算机访问的任何其他的可触摸的或物理的介质。
本撰写描述使用例子来公开本发明,包括最佳模式,并且还使得本领域任何技术人员能够实施本发明,包括做出和使用任何装置或系统并且执行任何合并的方法。本发明的可取得专利的范围由权利要求限定,并且可以包括本领域技术人员想到的其他的例子。如果这样的其他的例子具有与权利要求的文字语言相同的元素,或者如果它们包括与权利要求的文字语言没有本质上不同的等同元素,则它们意图在权利要求的范围内。