用于使得能够经由服务层访问第三方服务的系统和方法转让专利

申请号 : CN201580055614.2

文献号 : CN106797400B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 威廉·罗伯特·弗林四世黛尔·N·希德李旭路广董丽君李鸿堃菲利普·布朗卡坦利纳·M·姆拉丁

申请人 : 康维达无线有限责任公司

摘要 :

M2M服务层被扩展以访问第三方的服务并且与这些第三方交换数据。所述M2M服务层然后能够作为M2M设备与所述第三方服务之间的代理。所述M2M服务层能够向所述M2M设备呈现单一/一致接口或API并且隐藏来自所述M2M设备的第三方服务提供商的细节。

权利要求 :

1.一种包括处理器、存储器和通信电路的节点,所述节点经由其通信电路连接到通信网络,所述节点进一步包括存储在所述节点的所述存储器中的计算机可执行指令,所述计算机可执行指令当由所述节点的所述处理器执行时,使所述节点:使用所述通信网络的服务层来提供对外部服务的访问;

将由所述外部服务提供的应用编程接口(API)映射成所述服务层中的服务层资源;并且在应用不独立联系所述外部服务的情况下,经由所述服务层资源从所述外部服务向所述应用提供服务。

2.根据权利要求1所述的节点,其中,所述服务层是oneM2M服务层。

3.根据权利要求2所述的节点,其中,所述oneM2M服务层使用公共服务实体(CSE)中的服务访问启用公共服务功能(CSF)。

4.根据权利要求1所述的节点,其中,所述服务层资源由所述应用经由所述服务层的一个或多个协议访问。

5.根据权利要求1所述的节点,其中,所述节点针对所述应用从所述服务层将数据代理到所述外部服务。

6.根据权利要求5所述的节点,其中,所述节点在所述服务层处从所述外部服务接收结果并且使得所述结果对所述应用可用。

7.根据权利要求1所述的节点,其中,所述节点允许在所述服务层处发现外部服务。

8.一种用于由连接到网络的服务器使用的方法,其中,所述服务器包括处理器和存储器,并且其中,所述服务器进一步包括存储在所述存储器中的计算机可执行指令,所述计算机可执行指令当由所述处理器执行时,执行所述网络中的服务器的功能,所述方法包括:使用所述网络的服务层来提供对外部服务的访问;

将由所述外部服务提供的应用编程接口(API)映射成所述服务层中的服务层资源;以及在应用不独立联系所述外部服务的情况下,经由所述服务层资源从所述外部服务向所述应用提供服务。

9.根据权利要求8所述的方法,其中,所述服务层是oneM2M服务层。

10.根据权利要求9所述的方法,其中,所述oneM2M服务层使用公共服务实体(CSE)中的服务访问启用公共服务功能(CSF)。

11.根据权利要求8所述的方法,其中,所述服务层资源由所述应用经由所述服务层的一个或多个协议访问。

12.根据权利要求8所述的方法,进一步包括:

针对所述应用从所述服务层将数据代理到所述外部服务。

13.根据权利要求8所述的方法,进一步包括:

在所述服务层处从所述外部服务接收结果;并且

使得所述结果对所述应用可用。

14.根据权利要求8所述的方法,进一步包括:

允许在所述服务层处发现外部服务。

15.一种包括处理器、存储器和通信电路的节点,所述节点经由其通信电路连接到通信网络,所述节点进一步包括存储在所述节点的所述存储器中的计算机可执行指令,所述计算机可执行指令当由所述节点的所述处理器执行时,使所述节点实现应用并且:使用所述通信网络的服务层的一个或多个协议经由所述服务层的服务层资源来访问外部服务,其中,由所述外部服务提供的应用编程接口(API)被映射成所述服务层资源;以及经由所述服务层从所述外部服务接收数据而不独立联系所述外部服务。

说明书 :

用于使得能够经由服务层访问第三方服务的系统和方法

[0001] 相关申请的交叉引用
[0002] 本申请要求2014年9月17日提交的美国临时专利申请No.62/051,561的优先权,其公开的全部内容通过引用合并于此。

背景技术

[0003] Web服务(WS)是实现被设计来通过网络支持计算机之间的可互操作交互的软件系统的方法。WS提供在各种平台和框架上运行的软件应用之间的互操作的标准手段。更准确地说,WS是远程过程调用(RPC)的特定实现技术,所述RPC是一个程序可从位于网络中的不同计算机中的另一程序请求服务的软件操作范例。由于可扩展标记语言(XML)的使用,WS特征是它们的大互操作性和可扩展性以及它们的机器可读描述。可按照松耦合方式组合WS以实现复杂操作,使得提供简单服务的程序可彼此交互以递送复杂的增值服务。
[0004] 从协议栈观点看,服务层通常在现有的网络协议栈之上分层并且向客户端应用提供增值服务。因此服务层常常被分类为“中间件”服务。例如,图1是图示在IP网络栈104与应用106之间分层的示例性服务层102的图。
[0005] 图2是图示网络内的服务层实例的示例部署场景的图。在此示例中,服务层实例被示出为部署在各种网络节点(网关和服务器)上并且向网络应用、设备应用以及向网络节点本身提供增值服务。
[0006] 机器到机器(M2M)/物联网(IOT)服务层是具体地以为M2M/IoT类型设备和应用提供增值服务为目标的一种类型的服务层的示例。近来,数个工业标准主体(例如,ETSI M2M、oneM2M)一直在开发M2M/IoT服务层以解决与M2M/IoT类型的设备和应用到诸如互联网/Web、蜂窝、企业和家庭网络的部署中的集成相关联的挑战。
[0007] M2M服务层可向应用和设备提供对由服务层所支持的M2M中心能力的合集的访问。几个示例包括安全、计费、数据管理、设备管理、发现、提供和连接性管理。经由利用由M2M服务层定义的消息格式、资源结构和资源表示的API给应用提供这些能力。
[0008] 服务层的另一示例是具体地以为移动网络设备提供多媒体服务为目标的IP多媒体子系统(IMS)服务层。
[0009] oneM2M的目的和目标是开发解决对于公共M2M服务层的需要的技术规范,所述公共M2M服务层可被容易地嵌入在各种硬件和软件内,并且依靠其来将现场中的各式各样的设备与全世界的M2M应用服务器连接。
[0010] 图3是图示oneM2M服务层300的总体架构的图。oneM2M公共服务层支持公共服务功能(CSF)(即服务能力)的集合。一个或多个特定类型的CSF的集合的实例化被称为公共服务实体(CSE)302和304,所述CSE 302和304可被托管在不同类型的网络节点(例如,基础设施节点、中间节点、应用特定节点)上。
[0011] 按照oneM2M RESTful架构,CSF被表示为“资源”的集合。资源是架构中具有可经由诸如Create(创建)、Retrieve(检索)、Update(更新)和Delete(删除)的RESTful方法操纵的表示的唯一可寻址实体。使用统一资源标识符(URI)将这些资源变得可寻址。资源可以包含子资源和属性。子资源是与父资源具有包含关系的资源。父资源表示包含对其子资源的引用。子资源的使用寿命受父的资源使用寿命限制。每个资源支持存储与该资源有关的信息的“属性”的集合。
[0012] 图4是图示通过指定提供给M2M应用和M2M服务提供商的M2M服务来扩充oneM2M功能架构的M2M服务架构400的图。服务公开组件402使服务公开给应用实体(AE)404。网络服务利用组件406消费来自网络服务实体(NSE)408的服务。远程服务公开组件410连接来自不同的M2M环境的服务。

发明内容

[0013] M2M服务层被扩展以访问第三方的服务并且与这些第三方交换数据。所述M2M服务层然后能够作为M2M设备与所述第三方服务之间的代理。所述M2M服务层能够向所述M2M设备呈现单一/一致接口或API并且隐藏来自所述M2M设备的第三方服务提供商的细节。
[0014] 通过允许设备访问更多服务并且与更多平台交换数据,应用和设备开发者在可利用物联网构建什么方面被呈现有更多可能性。换句话说,更多信息交换将是可能的,设备将能够访问更多服务,并且可创建更广泛的服务。
[0015] 所描述的方法也可应用于不特定于机器到机器通信或物联网的服务层。
[0016] 通过代理机制来使用用于M2M服务层集成来自第三方服务提供商的增值服务的方法,使得M2M服务层客户端不需要知道如何与第三方服务进行通信。
[0017] 第三方服务API可被指定、定义或者提供给M2M服务层。
[0018] 服务层客户端可发现通过M2M服务层可用的第三方服务。不必要使服务层客户端知道这些服务在主机M2M服务层外部。
[0019] 服务层客户端可请求访问第三方服务,注册以便于访问第三方服务,或者被提供对第三方服务的访问。
[0020] 第三方服务可按照与M2M服务层的本机协议一致的方式访问服务层。
[0021] 可将基于M2M的接口变换成第三方API,从而将请求代理到第三方服务,从第三方服务接收响应,并且向请求的始发方发送本机响应。
[0022] 本发明内容被提供来以简化的形式引入在下面在具体实施方式中进一步描述的构思的选择。本发明内容不旨在识别所要求保护的主题的关键特征或必要特征,它也不旨在被用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决此公开的任何部分中所指出的任何或所有缺点的局限性。

附图说明

[0023] 可以从结合附图通过示例给出的以下描述得到更详细的理解,其中:
[0024] 图1是图示在IP网络栈与应用之间分层的示例性服务层的图。
[0025] 图2是图示网络内的服务层实例的示例部署场景的图。
[0026] 图3是图示oneM2M服务层的总体架构的图。
[0027] 图4是图示通过指定提供给M2M应用和M2M服务提供商的M2M服务来扩充oneM2M功能架构的M2M服务架构的图。
[0028] 图5是图示使用带外通信来请求第三方服务的图。
[0029] 图6是图示允许M2M服务层访问第三方的服务并且与第三方交换数据的系统的图。
[0030] 图7是概括用以允许服务层客户端访问第三方服务的步骤的图。
[0031] 图8是示出oneM2M面向资源架构(RoA)实施例的流程图。
[0032] 图9是图示服务访问启用(SAE)组件的图。
[0033] 图10是图示资源的图。
[0034] 图11是图示对象的图。
[0035] 图12是图示oneM2M服务架构内的服务访问启用组件以及新参考点Mcs的定义的图。
[0036] 图13是图示消息队列遥测传输(MQTT)实施例的流程图。
[0037] 图14是一个实施例的图形用户界面的图。
[0038] 图15A是可以实现一个或多个公开的实施例的示例机器到机器(M2M)、物联网(IoT)或物联网(WoT)通信系统的图。
[0039] 图15B是可以在图15A中所图示的M2M/IoT通信系统内使用的示例架构的系统图。
[0040] 图15C是可以在图15A中所图示的通信系统内使用的示例M2M/IoT终端或网关设备的系统图。
[0041] 图15D是可以具体化图15A的通信系统的各方面的示例计算系统的框图。

具体实施方式

[0042] M2M服务层在按要求部署以支持可能受约束的设备或传感器以及具有与数据速率有关的限制、数据消费限制和计算复杂性的应用。由于它们的受约束特性,这些服务层客户端将需要在设备或应用外部执行尽可能多的处理。客户端将常常依靠服务层来执行处理。M2M服务层可以在本机支持一些增值处理服务;然而一般而言,M2M服务层不太可能能够支持可能为部署的设备、传感器和应用所需或期望的所有可能的应用特定服务或功能。在M2M服务层不在本机支持所期望的服务或功能的情况下,服务层客户端需要自己实现那些特征或者从第三方服务请求那些服务。
[0043] 在M2M标准中,不支持经由M2M服务层请求访问第三方服务。因此,与M2M服务层相关联的设备、传感器和应用必须替代地使用带外通信过程来像图5中所描绘的那样请求此服务。图5是示出使用带外通信来请求第三方服务的图。
[0044] 在图5中示出了“传感器”502和“应用”504经由M2M服务层506彼此连接并且使用M2M服务层定义的协议来通信的示例部署。该示例将是安全系统。
[0045] 小型安全相机(图5中的传感器502)拍摄照片并且将图像发送到它们被存储在的服务层506。除原始图像之外,安全系统也提供以下特征:
[0046] 1.对图像应用运动检测算法并且将结果存储在服务层中。
[0047] 2.在检测到运动的情况下生成SMS警报给用户的移动设备。
[0048] 3.提供图像的压缩版本以降低带宽要求。
[0049] 4.提供面部识别以识别图像中的人。
[0050] 为了使用现有的M2M服务层506来实现此安全系统,可基于系统分析和权衡实现以下选项中的任一个:
[0051] 1.构建传感器502使得所期望的特征中的每一个被实现在设备上。
[0052] 2.构建传感器502使得它可经由第三方服务508请求这些特征。
[0053] 3.在终端用户应用上执行所期望的特征中的一些。
[0054] 4.构建终端用户应用使得它可经由第三方服务请求这些特征。
[0055] 此方法存在数个问题(图5中的编号项与下面的列表相对应):
[0056] 1)M2M/IoT设备或传感器502旨在或者预期成为很受约束的设备。如果那些设备或传感器必须执行计算上复杂的操作或者实现除到M2M服务层的接口之外的另一接口,以访问第三方服务508,则这将增加那些设备或传感器的大小、复杂性和成本。
[0057] 2)也可能受约束的终端用户应用504可能必须与一个或多个第三方服务508接口对接并且协调来自一个或多个第三方服务508的响应。这对那些应用来说增加了复杂性。
[0058] 3)第三方服务508将必须支持来自设备、传感器和应用的更多连接,这对第三方服务508来说可导致复杂性和可伸缩性问题。附加地,如果多个应用对相同数据请求服务则给定第三方服务508可对相同条数据执行服务多次。对相同数据的多个请求可导致差服务质量,因为例如如果多个终端用户应用请求相同图像的压缩,则请求可能由于更大数目的请求而在得到响应之前具有较长的等待时间。
[0059] 4)需要设备、传感器502和应用504支持外部服务的更多API并且这些附加API增加设备将需要周期性软件更新的可能性。例如,如果第三方服务提供商对其API做出改变,则这可需要对所有所部署的设备、传感器和应用的更新。
[0060] 图6是图示允许M2M服务层604访问第三方的服务并且与第三方606交换数据的系统的使用的图。M2M服务层604然后能够作为M2M设备(诸如传感器602和应用608)与第三方服务之间的代理。M2M服务层能够向M2M设备呈现单一/一致接口或API并且隐藏来自M2M设备的第三方服务606的细节。
[0061] 图6图示示例安全系统如何在M2M部署中受益于这些过程。小型安全相机612拍摄照片并且将图像发送到它被存储在的服务层604。当每个图像到达服务层604时,它也由M2M服务层604发送到对此图像执行运动检测并且结果也存储在服务层604中的第三方服务606。在结果指示存在运动的情况下,SMS警报被发信号通知给用户的移动设备。当用户应用
608检索图像时,原始图像的压缩版本作为响应被发送(而不是原始全分辨率图像)。用户应用608也能够访问用来识别图像中的人的面部识别服务的结果。
[0062] 通过使用本文中所定义的方法,为此系统中的各方带来许多好处。
[0063] 设备和传感器制造商能够构建专用于特定感测功能的传感器602并且不必添加附加的硬件和软件能力来执行由第三方服务606提供的附加处理。这直接导致更低的复杂性、更小的大小、更短的日程和降低的成本。
[0064] 设备和传感器制造商能够使用现有的M2M服务层604协议来访问第三方服务606并且不需要添加可能被要求支持其它web服务协议的附加的硬件和/或软件。这直接导致更低的复杂性、更小的大小、更短的日程和降低的成本。
[0065] 设备和传感器制造商能够通过改变M2M服务层604中的配置而不是使用某种类型的设备管理功能来提供对由第三方提供的特征的更新。这直接导致更低的复杂性、更小的大小、更短的日程和降低的成本。
[0066] 应用608可通过使用经由M2M服务层604可用的第三方服务606来给更多特征丰富的功能提供低得多的复杂性。这将直接导致应用的更好性能和可维护性。
[0067] 应用608不需要知道单独的第三方服务协议以便使用可用的特征。这将直接导致应用更低的复杂性。
[0068] 第三方服务606能够通过更少的连接将它们的服务提供给更大数目的客户端,因为服务层604是服务层客户端的“代理”。这直接导致降低的复杂性、改进的性能和更好的可伸缩性。
[0069] 第三方服务可作为M2M服务层的内置特征从服务的目录通告。
[0070] 设备、传感器和应用开发者可使用服务特征的目录来发现支持的服务、选择服务、可能请求新服务或者甚至识别对新服务的需要。在直接导致提供给各方的改进的能力。
[0071] M2M服务层604能够在无需在内部开发它们的情况下提供更高级的服务。这直接导致降低的复杂性。
[0072] 本公开也定义如何可在oneM2M服务层中实现这些过程以允许服务层客户端经由正常的服务层API调用访问第三方服务606的实施例。
[0073] 定义了三个主要方法:
[0074] ·给M2M服务层604提供如何访问第三方服务606的细节。
[0075] ·使得M2M服务层客户端能够发现这些可用的第三方服务606。
[0076] ·实现触发对第三方服务606的请求的M2M服务层接口。
[0077] 图7是概括用以允许服务层客户端602访问第三方服务606的步骤的图,步骤1是针对待由M2M服务层知道的第三方服务API和协议的方法。一旦此信息对服务层可用,步骤2就是用于服务层客户端(或它们的开发者)发现与这些第三方服务606有关的信息的方式。想要使用第三方服务的服务层客户端需要在步骤3中以与现有的服务层协议一致的方式设置使用参数。在那时,当在步骤4中服务层客户端访问到第三方服务606的M2M服务层接口时,服务层604在步骤5中变换或者将请求代理到第三方服务606,这包括在步骤6中处理从第三方服务606得到输出响应并且将该响应提供回给如由M2M服务层或服务层客户端所定义的原始请求方或其它目的地所必需的所有的通信。
[0078] 可为第三方服务606创建服务对象或者由第三方服务606创建服务对象。服务对象通常位于服务层中,例如在oneM2M实施例中,服务对象被表示为新资源。它们可包含第三方服务提供什么并且如何与第三方服务接口对接的细节。实际上表示服务对象的方法是实施方式相关的。一些示例实施方式可以是像Java或C++类或结构、数据库记录、xml文档或服务层资源这样的编程语言构造。
[0079] 不管它如何被实现在给定服务层中,服务对象是允许M2M服务层客户端发现、配置并使用由该对象描述的第三方服务所必需的信息以及在该对象上执行或者由该对象执行的方法或过程的集合。
[0080] 服务对象的描述可被(但未必限于被)分组成三种类型的信息。在这里最初定义服务对象,然后随着此公开的方法被描述而扩展服务对象的定义。
[0081] 服务对象信息可包括第三方服务信息、第三方服务发现与访问信息以及服务接口信息。
[0082] 第三方服务信息可包含在服务层604与第三方服务606之间进行通信所需的信息。这可包括由第三方服务(诸如WSDL)或其它标准或非标准接口方法所使用的描述语言。它也可包含定制通信协议的规范。图7的步骤1和5示出这个。
[0083] 第三方服务发现与访问信息可包含M2M服务层用来将服务通告或者宣布给M2M服务层客户端或实体的信息。这可包括特征的通用高级描述、特征的成本、第三方服务提供商的名称、到与如何使用服务有关的信息的链接等。附加地,这可包含用以请求访问以使用这些第三方服务606的手段。图7的步骤1和2示出这个。
[0084] 服务接口信息可特定于M2M服务层。它描述M2M服务层客户端如何应该与第三方服务调用所需的所有参数和输入一起做出对第三方服务606触发变换或代理调用的请求或调用。图7的步骤3、4和6示出这个。
[0085] 可以直接给服务层客户端提供此服务对象以供直接使用。替选地,仅有服务对象的部分是可用的,从而使仅“服务层”兼容接口公开。
[0086] 以下部分描述对服务对象信息执行的过程。
[0087] 提供第三方接口的细节。Web服务606可具有用于访问它们可用的服务的任何数目的不同协议。通过此公开中所描述的方法,它们能够用与它们已经使用的web服务协议相对应的描述语言(如果可用)提供它们的接口的描述。
[0088] 服务层604可使用此信息来代表服务层客户端608访问第三方服务606。服务层604使用第三方服务606的协议来与第三方服务606进行通信,从而允许第三方服务606保持“不知道”由请求的始发方使用的服务层协议。服务对象的附加细节被定义成存储此信息。
[0089] 服务对象第三方服务信息可具有服务API。第三方服务API是M2M服务层为了向请求所指定的服务的第三方服务发送消息而需要的信息。这包括M2M服务层604与第三方服务606之间需要的调用流程。亦包括的是寻址信息(FQDN或IP地址和端口)、传输协议(UDP、TCP等)和消息格式(XML、png等)。
[0090] 用于提供第三方服务信息的方法可具有各种特定实施方式。示例实施方式可以是信息被手动地或以非自动方式录入到服务对象数据库或存储设备/过程中的提供步骤。另一示例可以是服务描述语言可由第三方服务606用来定义其接口的API的开发。在这种情况下API可支持任何数目的协议描述,诸如示例1中所示的WSDL。另一示例可以是M2M服务层发起对第三方服务606的可用描述的检索的方法。
[0091] 示例1-WSDL文档结构:
[0092]
[0093]
[0094] 以下示例2示出可被解析并映射成本机M2M服务层协议的样本WSDL文档。
[0095] 示例2-温度转换服务描述:
[0096]
[0097]
[0098]
[0099]
[0100] 示例2中的WSDL文档描述将温度从一个测量单位转换为另一测量单位的服务的API。WDSL文档可被解析以提取由M2M服务层将需要的API参数映射成M2M服务层本机的对应参数所需的以下必要的各条信息。
[0101] 在示例3中示出了由此服务描述文档定义的来自M2M服务层604的样本请求:
[0102] 示例3:温度转换请求
[0103]
[0104] M2M服务可根据ConvertTemp数据类型在此请求中从示例3中所示的WSDL文档中识别三个参数。可从文档得到从这些输入到M2M服务层类型的映射的类型,其中“web:Temperature”参数被定义为“s:double”并且“web:FromUnit”和“web:ToUnit”参数被定义为来自“tns:TemperatureUnit”中所定义的集合的值的选择。
[0105] 除得到如何访问第三方服务606的描述之外,服务层604得到用于指定访问第三方服务606所需的凭证的手段。例如,M2M服务层604可以能够确保允许所有服务层客户端608使用M2M服务层604的凭证来访问第三方服务606的凭证安全。在这种情况下M2M服务层604可能已经为针对可以被传递到M2M服务层客户端608或者作为增值服务提供的服务的使用的记账建立协定。另一示例可以是这样的,即M2M服务层608客户端具有它自己的使用此服务的凭证并且需要为服务的每次使用提供此信息,诸如来自特定制造商的所有设备使用由第三方服务提供商提供给该制造商的特定凭证。在这种情况下,除数据使用或其它同意的布置以外,记账可在M2M服务层604的范围外部。
[0106] 一旦第三方服务接口定义由服务层604存储,就存在用以使这些服务变得为服务层客户端知道且可访问的方法。服务层604能够将这些服务“通告”给服务层客户端608并且“描述”对第三方服务606触发请求的服务层604定义的接口。
[0107] 服务层604提供服务层客户端608可读取来理解什么服务可用的服务的目录,并且请求如何使用那些服务的细节。服务对象的附加细节被定义成存储此信息。
[0108] 服务对象第三方服务发现与访问信息可具有为所提供的服务的描述的服务描述。这个的内容和格式可具有各种特定实施方式。例如,它可以是意在由开发者或终端用户查看以在开发或设备/应用设置期间描述提供的服务的HTML描述。例如,这可包括与特征、成本、使用要求等有关的任何类型的信息。服务描述信息也包括用以定义键或索引使得服务层客户端可执行搜索以找到特定类型的搜索的方法,例如GET service?type=image_compression。
[0109] 使用以上所提供的信息,服务层客户端开发者能够搜索可将值添加到它们自己的能力的服务并且通过本机服务层协议来请求用以使用该服务的许可。
[0110] 当M2M服务层客户端608想要使用第三方服务606时,M2M服务层604使用服务API信息来适当地形成一个或多个消息给第三方服务606。通过此公开中所描述的方法,服务层604定义允许服务层客户端608使用服务层本机的协议来访问第三方服务606的接口。
[0111] 服务对象的附加细节被定义成存储此信息。服务对象第三方服务接口信息可包含用于服务层客户端使用来访问第三方服务606的服务层定义的接口。此信息包括如何指定输入参数、输出参数、访问凭证以及由第三方服务606所需的任何其它信息。此信息也指定如何触发服务层604以代表服务层客户端发起或者做出第三方服务请求。服务层604通过评估或者解析服务API信息并且将API参数中的每一个映射成本机服务层接口或特性(例如,当可以将输入参数映射成第三方服务可检索的图像的URI时需要图像的第三方服务API)来定义此接口。M2M服务层应用开发者可使用此信息来访问第三方服务606。
[0112] 使用如何与第三方服务606接口对接的细节,服务层604将本机服务层对象或资源映射成第三方服务指定的输入并且使用由第三方服务606所支持的web服务协议来发送请求。服务层604也处理来自第三方服务606的结果或响应并且将它映射回到适当的本机服务层响应。
[0113] 图8是示出oneM2M RoA实施例的流程图。此图示出可在oneM2M架构中实现此公开中所描述的方法和过程的一个方式。
[0114] oneM2M服务对象提供工具802可以是用于提供此实施例中所定义的服务对象的公用程序。此应用是支持向oneM2M服务层发送Web服务API和描述的oneM2M应用。在此示例中,完成Puny PNG Web服务804的发现。它可以是经由web搜索找到的服务,或者它可以是特定于使用此服务的应用实体的定制实现的服务,例如安全相机制造商可托管用于仅其相机访问的web服务。oneM2M服务对象提供工具802可经由Mca参考点与CSE进行通信。
[0115] 在此示例中,Puny PNG Web服务804是对png格式化图像提供有限的自由压缩的主动web服务和有订阅费的附加服务。Puny PNG Web服务804可能需要你通过创建账户得到的访问密钥的使用。Puny PNG Web服务804可经由第三方服务本机的协议与CSE 806进行通信。这可以是oneM2M架构中的新参考点。在图12中示出了此新参考点,Mcs。
[0116] CSE 806是支持此公开和此实施例中所定义的方法的oneM2M公共服务实体的实例。
[0117] 应用实体#1 808是将图像放置到oneM2M CSE 806中的设备或应用。在此示例中它执行服务对象发现和设置过程。此步骤可能已由单独的实体(诸如常常伴随硬件或设备的设置应用)完成。应用实体#1 808可以是以配置的速率拍摄照片的远程安全相机。应用实体#1 808可经由Mca参考点与CSE 806进行通信。
[0118] 应用实体#2 810可以是检索由应用实体#1 808提供的图像的压缩版本的应用。应用实体#2 810可以是从oneM2M CSE 806周期性地得到最新图像的基于web的应用。应用实体#2 810可经由Mca参考点与CSE 806进行通信。
[0119] 在图8中,此公开中所描述的方法和过程是为使用oneM2M服务层架构的行动者而示出的。主要消息中的每一个被注解有与该特定消息的详细描述相对应的上标。
[0120] 在图8的步骤1中,服务对象提供工具802为Puny PNG web服务804创建服务对象资源的实例。创建原语包括服务API信息以及服务描述信息。
[0121] 在此示例中,服务凭证未被提供给服务层,所述服务层需要服务层客户端使用第三方服务定义的过程来请求它们自己的API_KEY。这是服务层与第三方服务之间的部署决策。注意在不同的部署选项中,oneM2M服务层可以利用允许服务层针对所有客户端使用单个密钥的第三方服务进行布置。这可稍微改变在下面示出的结果中的一些,但是过程不改变。
[0122] 方法:CREATE/csebase/punyPngServiceObject
[0123] 有效载荷:
[0124]
[0125] oneM2M服务层分析请求中所提供的服务API并且将其映射成服务层中的资源。映射过程可在服务层处使用服务描述语言或手动配置来完成。示例请求/响应对可生成以下服务层信息:
[0126] 请求1url:http://www.punypng.com/api/optimize
[0127] 请求1参数:img=image.png
[0128] 请求1参数:key=API_KEY
[0129] 响应1参数:"original_size":value
[0130] 响应1参数:"optimized_size":value
[0131] 响应1参数:"optimized_url":url←此url被用在请求2中
[0132] 响应1参数:"group_id":null
[0133] 响应1参数:"savings_percent":value
[0134] 响应1参数:"savings_bytes":value
[0135] 响应1参数:"original_size":value
[0136] 请求2url:"optimized_url":url←此url来自响应1
[0137] 响应2:"content":value
[0138] 在此第三方服务API中,存在生成得以映射成服务层接口的2个输入参数和6个输出参数的2个请求/响应对。附加的输入参数由服务层指定以允许配置哪一个操作可触发服务。
[0139] 这时服务层使针对此第三方服务的服务对象实例可供服务层客户端使用。
[0140] 在图8的步骤2中,服务层客户端发现所发布的服务。应用开发者使用服务层发现过程来发现执行图像压缩的服务。发现请求的结果包括在第二请求得到服务的描述的同时执行所期望的特征的服务的URI。它可在HTML查看器中被显示为:
[0141] PunyPNG
[0142] Image Compressor for Designers and Developers
[0143] Supports:JPG,GIF and PNG
[0144] Max 150KB each,up to 15 files
[0145] Go to Puny PNG.com to request an API Key
[0146] 在图8的步骤3中,服务层客户端请求访问所发布的服务。一旦服务层客户端找到满足其需要的服务,客户端就请求访问所发布的服务。在此示例实施例中,oneM2M服务层允许READ访问此资源,使得所有客户端在它们实现如所定义的适当接口的情况下具有访问。服务层客户端检索指定如何可访问第三方服务的接口描述。
[0147]
[0148]
[0149] 在图8的步骤4中,服务层客户端为第三方服务设置使用。使用来自接口描述的信息,应用实体利用实现由oneM2M服务层定义的接口所需的参数来创建资源。在此示例中服务层客户端需要指定可由第三方服务压缩的图像的位置(容器)。亦需要的服务层客户端的API_KEY以及第三方服务的结果(在这种情况下为已压缩图像)的位置。
[0150]
[0151] 在图8的步骤5中,服务层客户端触发第三方服务的使用。在我们的示例中,应用实体#1在/cesbase/myPictures处创建图像。图像的目标URI以及对目标URI的操作是用于启动服务层过程以访问第三方服务的触发器。在此示例中当在/cesbase/myPictures中成功地创建了资源时服务层可开始所述过程。
[0152] 在图8的步骤6中,服务层将用户数据代理到第三方服务。由服务层客户端创建的资源指向原始资源。在创建(步骤1)中提供的serviceAPI指定web服务请求的内容和格式。服务层使用资源中所提供的数据来执行请求和响应的指定序列。这时,服务层可给web服务提供web服务可使用来识别正在访问服务的服务层和/或服务客户端的计费标识符。
[0153] 服务层将结果放置到由服务层客户端的所指定的位置。可选地,服务层可向服务层客户端发送通知或响应消息以让它知道结果就绪。(在以上图中未示出此选项)。
[0154] 在图8的步骤7中,服务层客户端能够访问第三方服务的结果。一旦服务层将结果放置到所指定的输出URI中,其它客户端就可能够访问该结果。在此示例中,AE#2可检索经压缩的图像而不是原始图像。
[0155] 应理解,执行图8中所图示的步骤的实体是可以按照存储在设备、服务或其它计算机系统的存储器中并且在设备、服务器或其它计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体,所述设备、服务器或其它计算机系统诸如图15C或图15D(我们的两个环境图)中所图示的那些中的一个。也就是说,可以按照存储在计算设备(诸如例如图15C或图15D中所图示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现图8中所图示的方法,所述计算机可执行指令当由所述计算设备的处理器执行时,执行图8中所图示的步骤。
[0156] oneM2M服务层中的此实施例定义两个新资源定义:
[0157] 此论文中所提出的功能可在重新定义的CSF实施例作为对现有的oneM2M功能架构的添加被实现。图9是图示服务访问启用(SAE)902(CSE 904中的新CSF)的图。
[0158] 图10是图示资源1002的图。资源1002表示用于将第三方服务的接口定义存储到oneM2M服务层的容器。它也被用来提供给服务层客户端的服务的描述以及用以设置并访问第三方服务的接口。
[0159] 图11是示出对象1102的图。资源1102表示用于存储服务接口信息的容器。此资源由想要使用资源1102中所定义的第三方服务的服务层客户端来创建。存在链接到的属性1104以及已由服务层“映射”的输入和输出中的每一个的属性。服务层可将这些输入用作第三方服务请求的参数。服务层也可将此资源中所指定的输出用于存储第三方服务的结果的位置。
[0160] 也可以在oneM2M面向服务架构(SoA)中实现针对oneM2M RoA实施例的以上所讨论的思想和过程。
[0161] 图12是图示oneM2M服务架构1200内的服务访问启用组件1202以及新参考点Mcs的定义的图。所述资源与图9中的那些资源类似。
[0162] 图13是消息队列遥测传输(MQTT)实施例的流程图。MQTT是用于在TCPIP协议之上使用的基于发布-订阅的“轻量”消息传送协议。发布-订阅消息传送模式使用负责基于消息的主题向感兴趣的客户端分发消息的MQTT代理程序(broker)。此实施例示出此公开中所描述的方法和过程可使用MQTT架构来实现的一个方式。该实施例利用以下示例场景来图示。
[0163] MQTT代理程序1302是支持此公开和此实施例中所定义的方法的oneM2M公共服务实体的实例。
[0164] 基本MQTT协议支持消息递送。基本协议的MQTT代理程序扩展需要可支持定制修改的实施方式,诸如HiveMQ。服务对象扩展1306是支持接收Web服务API和描述的代理程序扩展。服务对象扩展1306可接收具有定义主题模式的发布的消息并且执行与服务有关的服务层功能。
[0165] 主题目录扩展1310是支持服务对象主题的发现的代理程序扩展。这也可被泛化成支持其它主题的发现,因为那不是基本MQTT协议的特征。
[0166] Puny PNG Web服务1312是对png格式化图像提供有限的自由压缩的主动web服务和有订阅费的附加服务。Puny PNG Web服务1312需要你通过创建账户得到的访问密钥的使用。Puny PNG Web服务1312经由第三方服务本机的协议来与MQTT代理程序服务对象扩展进行通信。
[0167] 服务对象提供工具1314是支持向MQTT代理程序发送Web服务API和描述的应用。服务对象提供工具1314可以是用于提供此实施例中所定义的服务对象的公用程序。在此实施例中,Puny PNG Web服务的发现出现在此公开的范围外。它可以是经由web搜索找到的服务,或者它可以是特定于使用此服务的应用实体的定制实现的服务,例如安全相机制造商可托管用于仅其相机访问的web服务。
[0168] MQTT客户端传感器1316是将图像放置到MQTT代理程序中的设备或应用。在此示例中它执行服务对象发现和设置过程。此步骤可能已由单独的实体(诸如常常伴随硬件或设备的设置应用)完成。MQTT客户端传感器1316可以是以配置的速率拍摄照片的远程安全相机。
[0169] MQTT客户端App 1318是订阅由MQTT客户端传感器提供的图像的压缩版本的应用。
[0170] 在图13中,此公开中所描述的方法和过程是为使用MQTT代理程序1302的行动者而示出的。
[0171] 图13的步骤1是提供/发布/配置第三方服务步骤。服务对象提供工具1314为Puny PNG web服务1312创建服务对象的实例。PUB主题由MQTT代理程序扩展1306使用以将此识别为服务对象。消息有效载荷包括服务API信息以及服务描述信息。在此示例中,服务凭证未被提供给服务层,所述服务层需要服务层客户端使用第三方服务定义的过程来请求它们自己的API_KEY。这是服务层与第三方服务之间的部署决策。
[0172] 在此实施例中针对主题的约定是:serviceobject.<third_party_service_name>.<service_description>。此约定可以是不同的。
[0173] 方法:PUB serviceobject.punyPngServiveObject.img_compression[0174] 有效载荷:
[0175]
[0176]
[0177] MQTT服务对象扩展1314拦截和所指定的主题约定匹配的所发布的消息,在这种情况下为包含主题名称中的“serviceobject”的所有消息。
[0178] MQTT服务对象扩展1314分析请求中所提供的服务API并且将其映射成如本部分中所描述的有效载荷格式和主题命名约定。
[0179] 映射过程可在服务层处使用web服务描述语言或手动配置来完成。示例请求/响应对可生成以下服务层信息:
[0180] 请求1url:http://www.punypng.com/api/optimize
[0181] 请求1参数:img=image.png
[0182] 请求1参数:key=API_KEY
[0183] 响应1参数:"original_size":value
[0184] 响应1参数:"optimized_size":value
[0185] 响应1参数:″optimized_url″:url←此url被用在请求2中
[0186] 响应1参数:″group_id″:null
[0187] 响应1参数:″savings_percent″:value
[0188] 响应1参数:″savings_bytes″:value
[0189] 响应1参数:″original_size″:value
[0190] 请求2url:″optimized_url″:url←此url来自响应1
[0191] 响应2:″content″:value
[0192] 在此第三方服务API中,存在生成得以映射成MQTT主题约定的2个输入参数和6个输出参数的2个请求/响应对。
[0193] 这时MQTT服务对象扩展1306使针对此第三方服务的服务对象实例可供服务层客户端使用。
[0194] 在图13的步骤2中,服务层客户端发现所发布的服务。应用使用MQTT主题发现扩展1306来发现执行图像压缩的服务。通过将主题令牌“discover”加在SUB消息的开头处来触发主题发现扩展1306。发现请求的结果包括和所期望的特征匹配的服务的主题。
[0195] 应用可选地请求被返回的服务的描述。示例描述可在HTML查看器中被显示为:
[0196] Puny PNG
[0197] Image Compressor for Designers and Developers
[0198] Supports:JPG,GIF and PNG.
[0199] Max 150KB each,up to 15 files
[0200] Go to PunyPNG.com to request an APIKey
[0201] 在图13的步骤3中,服务层客户端1316请求访问所发布的服务。一旦MQTT客户端1316找到满足其需要的服务,客户端就请求访问所发布的服务。在此示例实施例中,服务层客户端1316检索指定如何可访问第三方服务的接口描述。
[0202]
[0203] 在图13的步骤4中,服务层客户端1316为第三方服务设置使用。使用来自接口描述的信息,MQTT客户端传感器创建被发布到服务接口中所定义的主题的消息。在此示例中它可以是:
[0204] serviceobject.punyPngService.256.AKU1FYY1GBDKJRB.myHouse.frontdoor[0205] 其中
[0206] “serviceobject”和“punyPngService”是两个需要的主题
[0207] “256”是outputsize参数
[0208] “AKU1FYY1GBDKJRB”是API_KEY参数
[0209] “myHouse.frontdoor”是output_topics
[0210] 并且此消息的有效载荷必须是“png”格式的图像。
[0211] 在图13的步骤5中,服务层客户端1316触发第三方服务的使用。我们的示例中的MQTT客户端传感器根据以上所描述的格式发布图像。
[0212] 在图13的步骤6中,服务层将用户数据代理到第三方服务。“serviceobject”主题被用来将此消息导向服务对象扩展。“punyPngService”主题被用来为第三方服务找到服务对象API。主题名称的其余部分中的参数被映射成由第三方服务API所需要的参数。服务对象扩展使用所发布的消息中提供的数据来执行请求和响应的指定序列。服务对象将结果发布到“output_topics”。
[0213] 在图13的步骤7中,服务层客户端1616能够访问第三方服务的结果。希望接收这些主题的客户端App可订阅“output_topics”以接收来自第三方服务的已压缩图像。
[0214] 应理解,执行图13中所图示的步骤的实体是可以按照存储在设备、服务或其它计算机系统的存储器中并且在设备、服务器或其它计算机系统的处理器上执行的软件(即,计算机可执行指令)的形式实现的逻辑实体,所述设备、服务器或其它计算机系统诸如图15C或图15D(我们的两个环境图)中所图示的那些中的一个。也就是说,可以按照存储在计算设备(诸如例如图15C或图15D中所图示的设备或计算机系统)的存储器中的软件(即,计算机可执行指令)的形式实现图13中所图示的方法,所述计算机可执行指令当由所述计算设备的处理器执行时,执行图13中所图示的步骤。
[0215] 接口(诸如图形用户界面(GUI))可被用来帮助用户控制和/或配置与使得能够经由服务层访问第三方服务有关的功能。GUI可支持定义如何在所对应的M2M SL本机协议中指定第三方服务的API的第三方服务、支持第三方服务的发现、提供服务的描述、并且允许对访问服务的请求。图14是图示示例性接口1402、1404和1406的图。接口1402允许用户输入与所提供的服务有关的描述或附加信息。接口1404允许用户输入请求API并且指示预期的响应。接口1406允许搜索第三方服务。应当理解,接口1402、1404和1406可使用诸如在下面所描述的图15C-D中所示的那些的显示器来产生。
[0216] 示例M2M/IoT/WoT通信系统
[0217] 图15A是可以实现一个或多个公开的实施例的示例机器到机器(M2M)、物联网(IoT)或物联网(WoT)通信系统10的图。一般地,M2M技术为IoT/WoT提供构件,并且任何M2M设备、M2M网关、M2M服务器或M2M服务平台可以是IoT/WoT的组件或节点以及IoT/WoT服务层等。通信系统10可被用来实现所公开的实施例的功能并且可包括逻辑实体,诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和1406的接口的逻辑实体。
[0218] 如图15A中所示,M2M/IoT/WoT通信系统10包括通信网络12。通信网络12可以是固定网络(例如,以太网、光纤、ISDN、PLC等)或无线网络(例如,WLAN、蜂窝等)或异构网络的网络。例如,通信网络12可以由向多个用户提供诸如语音、数据、视频、消息、广播等的内容的多个接入网络组成。例如,通信网络12可以采用一个或多个信道接入方法,诸如码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、正交FDMA(OFDMA)、单载波FDMA(SC-FDMA)等。进一步地,通信网络12可以包括其它网络,诸如例如核心网络、互联网、传感器网络、工业控制网络、个域网、融合个人网络、卫星网络、家庭网络或企业网络。
[0219] 如图15A中所示,M2M/IoT/WoT通信系统10可以包括基础设施域和现场域。基础设施域是指端到端M2M部署的网络侧,并且现场域是指区域网络,通常在M2M网关后面。现场域和基础设施域皆可以包括各种不同的网络节点(例如,服务器、网关、设备等)。例如,现场域可以包括M2M网关14和终端设备18。应了解,可以根据需要在M2M/IoT/WoT通信系统10中包括任何数目的M2M网关设备14和M2M终端设备18。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、6LoWPAN、蓝牙)、直接无线电链路和有线线路的各种网络进行通信。
[0220] 示例性M2M终端设备18包括但不限于平板、智能电话、医疗设备、温度与天气监视器、连接的汽车、智能仪表、游戏控制台、个人数字助理、健康与保健监视器、灯、恒温器、电器、车库门以及其它基于致动器的设备、安全设备和智能插座。
[0221] 参考图15B,现场域中所图示的M2M服务层22为M2M应用20、M2M2网关设备14和M2M终端设备18以及通信网络12提供服务。通信网络12可被用来实现所公开的实施例的功能并且可包括功能和逻辑实体,诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和1406的接口的逻辑实体。可以由一个或多个服务器、计算机、设备、虚拟机(例如,云/存储场等)等(包括例如在下面所描述的图15C和图15D中所图示的设备)来实现M2M服务层22。应理解,M2M服务层22可以根据需要与任何数目的M2M应用、M2M网关
14、M2M终端设备18和通信网络12进行通信。M2M服务层22可以由网络的一个或多个节点来实现,所述节点可以包括服务器、计算机、设备等。M2M服务层22提供适用于M2M终端设备18、M2M网关14和M2M应用20的服务能力。可以按照各种方式(例如,作为网络服务器、在蜂窝核心网络中,在云中等)实现M2M服务层22的功能。
[0222] 与所图示的M2M服务层22类似,在基础设施域中存在M2M服务层22’。M2M服务层22’为基础设施域中的M2M应用20’和底层通信网络12’提供服务。M2M服务层22’也为现场域中的M2M网关14和M2M终端设备18提供服务。应理解,M2M服务层22’可以与任何数目的M2M应用、M2M网关和M2M设备进行通信。M2M服务层22’可以通过不同的服务提供商与服务层交互。M2M服务层22’通过网络的一个或多个节点,所述节点可以包括服务器、计算机、设备、虚拟机(例如,云计算/存储场等)等。
[0223] 也参考图15B,M2M服务层22和22’提供各种应用和垂直仪可利用的服务传递能力的集合。这些服务能力使得M2M应用20和20’能够与设备交互并且执行诸如数据收集、数据分析、设备管理、安全、记账、服务/设备发现等的功能。基本上,这些服务能力使应用避免实现这些功能的负担,从而简化应用开发并且减少上市成本和时间。服务层22和22’也使得M2M应用20和20’能够连同服务层12和12’提供的服务一起通过各种网络12和12’进行通信。
[0224] 本申请的方法可以作为服务层22和22’的一部分被实现。服务层22和22’是通过应用程序接口(API)和底层联网接口的集合来支持增值服务能力的软件中间件层。ETSI M2M和oneM2M两者使用可以包含本申请的连接方法的服务层。ETSI M2M的服务层被称为服务能力层(SCL)。SCL可以被实现在M2M设备(其中它被称为设备SCL(DSCL))、网关(其中它被称为网关SCL(GSCL))和/或网络节点(其中它被称为网络SCL(NSCL))内。oneM2M服务层支持公共服务功能(CSF)(即服务能力)的集合。一个或多个特定类型的CSF的集合的实例化被称为公共服务实体(CSE),所述CSE可被托管在不同类型的网络节点(例如基础设施节点、中间节点、应用特定节点)上。进一步地,本申请的连接方法可作为使用面向服务架构(SOA)和/或面向资源架构(ROA)来访问诸如本申请的连接方法的服务的M2M网络的一部分被实现。
[0225] 在一些实施例中,可以与所公开的系统和方法相结合地使用M2M应用20和20’。M2M应用20和20’可以包括与UE或网关交互的应用,并且也可以与其它公开的系统和方法相结合地使用。
[0226] 在一个实施例中,逻辑实体(诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和1406的接口的逻辑实体)可以被托管在由M2M节点托管的M2M服务层实例内,所述M2M节点诸如M2M服务器、M2M网关或M2M设备,如图15B中所示。例如,逻辑实体(诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口
1402、1404和1406的接口的逻辑实体)可以将单独的服务能力包括在M2M服务层实例内或者包括作为现有的服务能力内的子功能。
[0227] M2M应用20和20’可以包括各种工业中的应用,诸如但不限于运输、健康与保健、连接的家庭、能量管理、资产跟踪以及安全和监视。如以上所提及的,跨越系统的设备、网关、服务器和其它节点运行的M2M服务层支持诸如例如数据收集、设备管理、安全、记账、位置跟踪/地理围栏、设备/服务发现以及传统系统集成的功能,并且将这些功能作为服务提供给M2M应用20和20’。
[0228] 服务层22和22’定义通过应用程序接口(API)和底层联网接口的集合来支持增值服务能力的软件中间件层。ETSI M2M和oneM2M架构两者定义服务层。ETSI M2M的服务层被称为服务能力层(SCL)。可以在ETSI M2M架构的各种不同的节点中实现SCL。例如,服务层的实例可以被实现在M2M设备(其中它被称为设备SCL(DSCL))、网关(其中它被称为网关SCL(GSCL))和/或网络节点(其中它被称为网络SCL(NSCL))内。oneM2M服务层支持公共服务功能(CSF)(即服务能力)的集合。一个或多个特定类型的CSF的集合的实例化被称为公共服务实体(CSE),所述CSE可被托管在不同类型的网络节点(例如,基础设施节点、中间节点、应用特定节点)上。第三代合作伙伴计划(3GPP)也已经定义了用于机器类型通信(MTC)的架构。在该架构中,服务层和它提供的服务能力作为服务能力服务器(SCS)的一部分被实现。无论被具体化在ETSI M2M架构的DSCL、GSCL或NSCL中、在3GPP MTC架构的服务能力服务器(SCS)中、在oneM2M架构的CSF或CSE中还是在网络的某个其它节点中,服务层的实例都可以作为在网络中的一个或多个独立节点(包括服务器、计算机和其它计算设备或节点)上执行的逻辑实体(例如,软件、计算机可执行指令等)或者作为一个或多个现有的节点的一部分被实现。作为示例,可以按照在具有在下面所描述的图15C或图15D中所图示的一般架构的网络节点(例如,服务器、计算机、网关、设备等)上运行的软件的形式实现服务层或其组件的实例。
[0229] 进一步地,逻辑实体(诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用
902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和1406的接口的逻辑实体)可作为使用面向服务架构(SOA)和/或面向资源架构(ROA)来访问本申请的服务的M2M网络的一部分被实现。
[0230] 图15C是诸如M2M设备18、M2M网关14、M2M服务器等的M2M网络节点30的示例硬件/软件架构的框图。节点30可执行或者包括逻辑实体,诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和1406的接口的逻辑实体。设备30可以是如图15A-B中所示的M2M网络的一部分或非M2M网络的一部分。如图15C中所示,M2M节点30可以包括处理器32、非可移除存储器44、可移除存储器46、扬声器/麦克风38、小键盘40、显示器、触摸板和/或指示器42、电源48、全球定位系统(GPS)芯片集50和其它外围设备52。节点30也可以包括通信电路,诸如收发器34和发射/接收元件36。应了解,M2M节点30可以在保持与实施例一致的同时包括上述元件的任何子组合。此节点可以是实现本文中所描述的SMSF功能的节点。
[0231] 处理器32可以是通用处理器、专用处理器、常规处理器、数据信号处理器(DSP)、多个微处理器、与DSP核心关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其它类型的集成电路(IC)、状态机等。一般而言,处理器32可以执行存储在节点的存储器(例如,存储器44和/或存储器46)中的计算机可执行指令以便执行节点的各种需要的功能。例如,处理器32可以执行信号编码、数据处理、电力控制、输入/输出处理和/或使得M2M节点30能够在无线或有线环境中操作的任何其它功能。处理器32可以运行应用层程序(例如,浏览器)和/或无线电接入层(RAN)程序和/或其它通信程序。处理器32也可以诸如例如在接入层和/或应用层处执行诸如认证、安全密钥协定的安全操作和/或密码操作。
[0232] 如图15C中所示,处理器32耦合到其通信电路(例如,收发器34和发射/接收元件36)。处理器32通过对计算机可执行指令的执行可以控制通信电路,以便使节点30经由它连接到的网络与其它节点进行通信。特别地,处理器32可以控制通信电路以便执行本文中和权利要求中所描述的发射和接收步骤。虽然图15C将处理器32和收发器34描绘为单独的组件,但是应了解,可以将处理器32和收发器34一起集成在电子封装或芯片中。
[0233] 发送/接收元件36可以被配置成向其它M2M节点发射信号,或者从其它M2M节点接收信号,所述其它M2M节点包括M2M服务器、网关、设备等。例如,在实施例中,发射/接收元件36可以是被配置成发射和/或接收RF信号的天线。发射/接收元件36可以支持各种网络和空中接口,诸如WLAN、WPAN、蜂窝等。在实施例中,例如,发射/接收元件36可以是被配置成发射和/或接收IR、UV或可见光信号的发射器/检测器。在又一个实施例中,发射/接收元件36可以被配置成发射和接收RF信号和光信号两者。应了解,发射/接收元件36可以被配置成发射和/或接收无线或有线信号的任何组合。
[0234] 此外,尽管发射/接收元件36在图15C中被描绘为单个元件,然而M2M节点30可以包括任何数目的发射/接收元件36。更具体地,M2M节点30可以采用MIMO技术。因此,在实施例中,M2M节点30可以包括用于发射和接收无线信号的两个或更多个发射/接收元件36(例如,多个天线)。
[0235] 收发器34可以被配置成对将由发射/接收元件36发射的信号进行调制并且对由发射/接收元件36接收到的信号进行解调。如以上所指出的,M2M节点30可以具有多模式能力。因此,例如,收发器34可以包括用于使得M2M节点30能够经由多个RAT(诸如UTRA和IEEE802.11)进行通信的多个收发器。
[0236] 处理器32可以从任何类型的适合的存储器访问信息并且将数据存储在任何类型的适合的存储器中,所述任何类型的适合的存储器诸如非可移除存储器44和/或可移除存储器46。例如,如上所述,处理器32可以将会话场境存储在其存储器中。非可移除存储器44可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘,或任何其它类型的存储器存储设备。可移除存储器46可以包括订户身份模块(SIM)卡、存储棒、安全数据(SD)存储卡等。在其它实施例中,处理器32可以从不物理上位于M2M节点30上(诸如在服务器或家庭计算机上)的存储器访问信息,并且将数据存储在该存储器中。处理器32可以被配置成控制显示器或指示器42上的照明图案、图像或颜色以反映M2M服务层会话迁移或共享的状态或者从用户获得输入或者向用户显示关于节点的会话迁移或共享能力或设定的信息。在另一示例中,显示器可以示出关于会话状态的信息。当前公开在oneM2M实施例中定义RESTful用户/应用API。可以被示出在显示器上的图形用户界面可以在API之上分层,以允许用户经由本文中所描述的底层服务层会话功能交互式地建立和管理E2E会话或其迁移或共享。
[0237] 处理器32可以从电源48接收电力,并且可以被配置成将电力分发到M2M节点30中的其它组件并且/或者控制到M2M节点30中的其它组件的电力。电源48可以是用于给M2M节点30供电的任何适合的设备。例如,电源48可以包括一个或多个干电池电池组(例如,镍镉(NiCd)、锌镍(NiZn)、镍氢(NiMH)、锂离子(Li-ion)等)、太阳能电池、燃料电池等。
[0238] 处理器32也可以耦合到GPS芯片集50,所述GPS芯片集50被配置成提供与M2M节点30的当前位置有关的位置信息(例如,经度和纬度)。应了解,M2M节点30可以在保持与实施例一致的同时通过任何适合的位置确定方法来获取位置信息。
[0239] 处理器32可以进一步耦合到其它外围设备52,所述其它外围设备52可以包括提供附加特征、功能和/或有线或无线连接性的一个或多个软件和/或硬件模块。例如,外围设备52可以包括加速度计、电子罗盘、卫星收发器、传感器、数码相机(以得到相片或视频)、通用串行总线(USB)端口、振动设备、电视收发器、免提头戴式耳机、 模块、调频(FM)无线电单元、数字音乐播放器、媒体播放器、视频游戏播放器模块、互联网浏览器等。
[0240] 图15D是也可以被用来实现M2M网络的一个或多个节点(诸如M2M服务器、网关、设备或其它节点)的示例性计算系统90的框图。计算系统900可以包括计算机或服务器并且可以主要通过计算机可读指令来控制,所述计算机可读指令可以形式为软件,在任何地方或者通过无论什么装置这种软件被存储或者访问。计算系统90可执行或者包括逻辑实体,诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和
1406的接口的逻辑实体。计算系统90可以是M2M设备、用户设备、网关、UE/GW或包括例如移动核心网络、服务层网络应用提供商、终端设备18或M2M网关设备14的节点的任何其它节点。可以在处理器(诸如中央处理单元(CPU)91)内执行这些计算机可读指令,以使计算系统
90做工作。在许多已知的工作站、服务器和个人计算机中,中央处理单元91由被称作微处理器的单芯片CPU来实现。在其它机器中,中央处理单元91可以包括多个处理器。协处理器81是与执行附加功能或者协助CPU 91的与主CPU 91不同的可选处理器。CPU 91和/或协处理器81可以接收、生成并处理与所公开的用于E2E M2M服务层会话的系统和方法有关的数据,诸如接收会话凭证或者基于会话凭证进行认证。
[0241] 在操作中,CPU 91对指令进行预取、解码和执行,并且经由计算机的主数据传递路径(系统总线80)向且从其它资源传递信息。这种系统总线连接计算系统90中的组件并且定义用于数据交换的介质。系统总线80通常包括用于发送数据的数据线、用于发送地址的地址线、用于发送中断并且用于操作系统总线的控制线。这种系统总线80的示例是PCI(外围组件互连)总线。
[0242] 耦合到系统总线80的存储器包括随机存取存储器(RAM)82和只读存储器(ROM)93。这些存储器包括允许信息被存储和检索的电路。ROM 93一般地包含所存储的不可被容易地修改的数据。存储在RAM 82中的数据可由CPU 91或其它硬件设备读取或者改变。对RAM 82和/或ROM 93的访问可以由存储器控制器92来控制。存储器控制器92可以提供随着指令被执行将虚拟地址变换成物理地址的地址变换功能。存储器控制器92也可以提供使系统内的进程隔离并且使系统进程与用户进程隔离的存储器保护功能。因此,在第一模式下运行的程序可访问仅由其自己的进程虚拟地址空间所映射的存储器;它不可访问另一进程的虚拟地址空间内的存储器,除非已设置了进程之间的存储器共享。
[0243] 此外,计算系统90可以包含负责将指令从CPU 91通信到外围设备(诸如打印机94、键盘84、鼠标95和磁盘驱动85)的外围设备控制器83。
[0244] 由显示控制器96控制的显示器86被用来显示由计算系统90生成的可视输出。这种可视输出可以包括文本、图形、动画图形和视频。显示器86可以用基于CRT的视频显示器、基于LCD的平板显示器、基于气体等离子体的平板显示器或触摸板来实现。显示控制器96包括生成被发送到显示器86的视频信号所需要的电子组件。
[0245] 进一步地,计算系统90可以包含通信电路,诸如例如网络适配器97,所述通信电路可以被用来将计算系统90连接到外部通信网络(诸如图15A和图15B的网络12),以使得计算系统90能够与该网络的其它节点进行通信。
[0246] 应理解,本文中所描述的系统、方法和过程中的任一个或全部可以按照存储在计算机可读存储介质上的计算机可执行指令(即,程序代码)的形式加以具体化,所述指令当由机器(诸如M2M网络的节点,包括例如M2M服务器、网关、设备等)执行时,执行和/或实现本文中所描述的系统、方法和过程。具体地,可以按照这些计算机可执行指令的形式实现以上所描述的步骤、操作或功能中的任一个,包括网关、UE、UE/GW或移动核心网络、服务层或网络应用提供商的节点中的任一个的操作。可以按照存储在计算机可读存储介质上的计算机可执行指令的形式具体化逻辑实体,诸如外部服务606、用于传感器602的逻辑实体、M2M服务层604、应用608、CSE 806、web服务804和1312、oneM2M服务对象提供工具802、服务访问启用902、服务组件服务访问启用1202、MQTT客户端传感器1316、服务对象MQTT扩展1306、MQTT代理程序1302、主题目录MQTT扩展1310、MQTT客户端应用1318和服务对象提供工具1314以及用以产生诸如接口1402、1404和1406的接口的逻辑实体。计算机可读存储介质包括按照任何非暂时性(即,有形或物理)方法或技术实现以用于存储信息的易失性和非易失性、可移除和非可移除介质两者,但是这些计算机可读存储介质不包括信号。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光盘储存器、磁盒、磁带、磁盘存储部或其它磁存储设备,或可被用来存储所期望的信息并且可由计算机访问的任何其它有形或物理介质。
[0247] 在描述本公开的主题的优选实施例时,如图中所图示,为了清楚起见采用了特定术语。然而,所要求保护的主题不旨在限于如此选择的特定术语,并且应当理解,每个特定元素包括以类似方式操作以完成类似目的的所有技术等同物。
[0248] 此撰写的说明书使用示例来公开本发明,包括最佳模式,并且也使得本领域的任何技术人员能够实践本发明,包括做出和使用任何设备或系统并且执行任何并入的方法。本发明的可取得专利的范围由权利要求来限定,并且可以包括被本领域的技术人员想到的其它示例。如果这些其它示例具有与权利要求的文字语言不同的元素,或者如果这些其它示例包括与权利要求的文字语言无实质差异的等同元素,则它们旨在落入权利要求的范围内。