将物联网应用程序转换为云上RESTful服务的自动方法及系统技术方案

技术编号:29291404 阅读:9 留言:0更新日期:2021-07-17 00:29
本发明专利技术属于物联网微服务技术领域,公开了一种将物联网应用程序转换为云上RESTful服务的自动方法及系统,所述将物联网应用程序转换为云上RESTful服务的自动方法包括:分析物联网应用程序的源代码,确定最终用户可以控制或访问的外部方法;提取外部方法对应的RESTful物联网服务的接口规格;提出描述物联网服务接口规格说明的服务规约,通过服务规约确定物联网设备应存储在云中的数据;使用服务规约实例化具有友好用户界面的RESTful物联网服务。本发明专利技术将物联网应用程序转换为物联网服务,使用微服务的体系结构提供物联网设备拥有的功能,基于微服务体系的物联网服务具有互操作性,且容易与现有应用集成。容易与现有应用集成。容易与现有应用集成。

【技术实现步骤摘要】
将物联网应用程序转换为云上RESTful服务的自动方法及系统


[0001]本专利技术属于物联网微服务
,尤其涉及一种将物联网应用程序转换为云上RESTful服务的自动方法及系统。

技术介绍

[0002]目前,相互连接的物理设备,即物联网(IoT)设备在生活的各个方面都很普遍。例如,物联网设备可以感知附近的环境(例如,获取温度),并根据终端用户的要求做出反应,以改变物理环境(例如,打开灯)。物联网应用程序由应用程序开发人员设计,用以辅助物联网设备的功能(例如,获取温度,打开灯)。与此同时,互联网已经成为承载异构web服务的全球性基础设施,最终用户可以使用web服务来执行各种在线活动,例如在线购物和在线娱乐。随着web服务和物联网设备的结合,日常生活的便利性大大增加。例如,通过分析冰箱传感器读取的数据,可以触发食品消费警报,从而完成在线购物订单。然而,这种组合并非没有其局限性。例如,终端用户必须在智能手机或计算机上安装大量专有终端用户应用程序(如移动应用程序),才能访问物联网设备中的物联网应用程序信息。此外,不同的终端用户应用程序缺乏允许在各种物联网设备和web服务之间进行通信的标准接口。因此,将物联网设备与现有的物联网应用程序集成起来并不简单。
[0003]为了简化物联网应用程序的集成,一些研究工作已经投入到为终端用户提供物联网服务的方法上。但这些方法大多数在物联网设备上运行物联网服务,这不是最佳的,因为物联网设备通常可用的资源有限,例如,电池容量低,处理功率有限。此外,微服务标准的复杂性可能导致开发人员在设计物联网服务时花费额外的精力。
[0004]通过上述分析,现有技术存在的问题及缺陷为:
[0005](1)现有物联网设备中,终端用户必须在智能手机或计算机上安装大量专有终端用户应用程序,才能访问物联网设备中的物联网应用程序信息。
[0006](2)现有物联网设备中,不同的终端用户应用程序缺乏允许在各种物联网设备和web服务之间进行通信的标准接口。因此,将物联网设备与现有的物联网应用程序集成起来并不简单。
[0007](3)现有为终端用户提供物联网服务的方法,大多数在物联网设备上运行物联网服务,这不是最佳的,因为物联网设备通常可用的资源有限。此外,微服务标准的复杂性可能导致开发人员在设计物联网服务时花费额外的精力。
[0008]解决以上问题及缺陷的难度为:实际生产中,各个厂家的物联网设备以及物联网应用程序都遵循自家标准,将不同厂家的设备放在一起协同服务便会产生各种问题(例如:交互协议不适配);将不同交互协议的设备协同工作,让用户通过统一的Web服务控制所有设备;让资源受限的设备通过本专利技术提出的接口标准跟云上服务通信。
[0009]解决以上问题及缺陷的意义为:针对以上三个问题,本专利技术提出的一种将物联网应用程序转换为云上RESTful服务的自动方法及系统,可以便捷地处理新增物联网设备与
现有物联网服务的整合;可以将物联网设备的服务程序上放至云端,从而使资源受限设备可以有更长的续航能力;同时本专利技术抽象化用户与物联网服务之间的距离,用户无需安装特有应用程序操控设备,仅需Web服务即可远程控制所有物联网设备。

技术实现思路

[0010]针对现有技术存在的问题,本专利技术提供了一种将物联网应用程序转换为云上RESTful服务的自动方法及系统。
[0011]本专利技术是这样实现的,一种将物联网应用程序转换为云上RESTful服务的自动方法,所述将物联网应用程序转换为云上RESTful服务的自动方法包括:
[0012](1)分析物联网应用程序的源代码,确定最终用户可以控制或访问的外部方法,分析程序的源代码是为了确定该方法与设备或者用户的交互方式,通过本专利技术的权重计算公式可以推断服务接口的交互方式是GET还是POST或者其他方式;
[0013](2)提取外部方法对应的RESTful物联网服务的接口规格;所述接口规格描述物联网服务的接口,由服务名称、HTTP方法和输入或输出参数三部分组成,接口规格即为接口规范,是其他设备与云或者用户交互需要遵循的标准;
[0014](3)提出描述物联网服务接口规格说明的服务规约,通过服务规约确定物联网设备应存储在云中的数据;服务规约即为该服务的服务内容以及服务方式,包括物联网设备在云上的存储数据格式,数据内容等信息;
[0015](4)使用服务规约实例化具有友好用户界面的RESTful物联网服务,用户界面即为用户统一管控所有物联网设备的Web服务,可以清晰便捷地查看物联网设备的工作状态,运行记录以及管理设备等。
[0016]进一步,所述将物联网应用程序转换为云上RESTful服务的自动方法包括以下步骤:
[0017]步骤一,识别外部方法;
[0018]步骤二,提取外部方法的SERVICE_SPECIFICATIONS;
[0019]步骤三,用SERVICE_SCHEMA描述外部方法;
[0020]步骤四,将外部方法转化为物联网服务。
[0021]进一步,步骤一中,所述识别外部方法,包括:
[0022](1)解析方法源代码,识别方法的构造形式:分析源代码的抽象语法树AST,所述AST是表示源代码语法的树结构,树中的每个节点都描述了源代码中存在的一个构造;遍历树,在一个函数方法中识别出方法的构造形式:方法名、输入参数、返回值、方法体中的方法调用、if

else语句;
[0023](2)过滤内部方法:内部方法根据步骤(1)提取的方法构造来识别,并将内部方法过滤掉;
[0024](3)处理方法名称:方法名用于传达方法的意图,区分外部方法和内部方法。使用以下步骤规范化所述名称:拆分驼峰单词;去掉标点符号;删除包含数字的后缀;去掉停止词;使用自然语言处理NLP技术来识别每个单词的词性标记;执行词干分析以找到根词,所述词被用来提取特征来识别外部方法;
[0025](4)寻找外部方法的特征:根据步骤(1)中确定的方法构造形式确定外部方法特征
EF;
[0026](5)根据外部特征确定外部方法;如果一个方法至少具有步骤(4)中确定的两个特性,就假定该方法是外部方法。
[0027]进一步,步骤(2)中,具有以下内部特性的方法被认为是内部方法:
[0028]IF1:包含关键字“init、setup、debug、test”的方法名;包含关键字“init”和“setup”的方法名是初始化方法,用于配置初始设置;包含关键字“debug”和“test”的方法名是测试方法,用于测试物联网设备的不同功能,所述测试方法是物联网设备的内部方法;
[0029]IF2:方法名以“_”开头;方法名的前导下划线表示该方法用于内部使用或保留给编程语言;
[0030]IF3:在内部方法中调用或在内部文件中定义的方法;包含关键字“init、setup、debug、test”或以“_”开头的文件名都是内部文件;在内部方法中调用或在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种将物联网应用程序转换为云上RESTful服务的自动方法,其特征在于,所述将物联网应用程序转换为云上RESTful服务的自动方法包括:分析物联网应用程序的源代码,确定最终用户可以控制或访问的外部方法;提取外部方法对应的RESTful物联网服务的接口规格;所述接口规格描述物联网服务的接口,由服务名称、HTTP方法和输入输出参数三部分组成;提出描述物联网服务接口规格说明的服务规约,通过服务规约确定物联网设备应存储在云中的数据;使用服务规约实例化具有友好用户界面的RESTful物联网服务。2.如权利要求1所述将物联网应用程序转换为云上RESTful服务的自动方法,其特征在于,所述将物联网应用程序转换为云上RESTful服务的自动方法包括以下步骤:步骤一,识别外部方法;步骤二,提取外部方法的SERVICE_SPECIFICATIONS,SERVICE_SPECIFICATIONS表示RESTful物联网服务接口规格说明,是对服务名称、HTTP方法和输入或输出参数的说明;步骤三,用SERVICE_SCHEMA描述外部方法;所述用SERVICE_SCHEMA描述外部方法,包括:将提取的外部方法以及提取的SERVICE_SPECIFICATIONS用SERVICE_SCHEMA来规范化表示,即每个外部方法需要用一个SERVICE_SCHEMA文件来表示;所述SERVICE_SCHEMA,包括:通过结构化的数据格式来规范描述提取的SERVICE_SPECIFICATIONS,将这种结构化的数据格式称为SERVICE_SCHEMA,其属性由XML Schema定义;在SERVICE_SCHEMA中,预先填充已标识的SERVICE_SPECIFICATIONS的服务名称、HTTP方法和参数;开发人员可以验证、修改和完成SERVICE_SCHEMA;此SERVICE_SCHEMA可用于生成物联网服务;SERVICE_SCHEMA由四个主要组件组成:类、个体、关系和属性;类表示一组具有相似属性的对象;关系用于连接SERVICE_SCHEMA的组件;类可以被子类继承;个体是类的一个实例;最后,属性声明类的属性;device_type将提供类似功能的许多物联网设备分组;具有相同设备类型的物联网设备对应一个惟一的SERVICE_SCHEMA,该SCHEMA用于描述各自的物联网服务;device_id属性对于每个物联网设备是唯一的,用于区分一个物联网设备和另一个物联网设备;物联网设备的MAC地址可以用作表示device_id;资源:物联网设备的一些功能是向云上的通道发布单个标量值流;标量值流被认为是物联网服务的一种资源;所述资源存储在云上的资源数据库中;操作:物联网服务提供多种操作来对资源执行不同的操作,并确定物联网服务的六种操作,即reading,profile,sampling parameter,formatting,status和context;reading操作用于获取资源的最新值;此操作侦听物联网服务的资源,直到接收到该资源的新值;将侦听的值和值更新的时间戳返回给最终用户;Status操作返回给定物联网服务的状态;对于执行器,终端用户可以向状态操作发送POST请求,从而改变物联网设备的物理状态;这些操作在SERVICE_SCHEMA中已经预先定义,供开发人员选择;步骤四,将外部方法转化为物联网服务,所述将外部方法转化为物联网服务包括:1)生成Web表单:通过使用提出的SERVICE_SCHEMA和表单模板自动生成web表单;模板使用的SERVICE_SCHEMA的数据来生成文本输出,生成的表单用于向物联网服务发送POST请
求;使用FreeMarker模板引擎设计表单模板,web表单的基本组成是HTTP方法、操作URL和最终用户要填写的参数;2)实例化物联网服务:使用提出的SERVICE_SCHEMA的相关信息填充代码模板自动生成源代码来实例化物联网服务;所需的信息是HTTP方法、操作URL、请求媒体类型、响应媒体类型和来自web表单的填充参数;实例化的物联网服务遵循Jersey语法标准,并为每种操作提供代码模板;3)访问RESTful物联网服务:最终用户调用实例化的操作后,根据指定的Operation URL和HTTP方法访问该操作生成的源代码,在物联网设备和云之间传输的数据遵循JSON标准。3.如权利要求2所述将物联网应用程序转换为云上RESTful服务的自动方法,其特征在于,步骤一中,所述识别外部方法,包括:(1)解析方法源代码,识别方法的构造形式:分析源代码的抽象语法树AST,所述AST是表示源代码语法的树结构,树中的每个节点都描述了源代码中存在的一个构造;遍历树,在一个函数方法中识别出方法的构造形式:方法名、输入参数、返回值、方法体中的方法调用、if

else语句;(2)过滤内部方法:内部方法根据步骤(1)提取的方法构造来识别,并将内部方法过滤掉;(3)处理方法名称:方法名用于传达方法的意图,区分外部方法和内部方法;使用以下步骤规范化所述名称:拆分驼峰单词;去掉标点符号;删除包含数字的后缀;去掉停止词;使用自然语言处理NLP技术来识别每个单词的词性标记;执行词干分析以找到根词,所述词被用来提取特征来识别外部方法;(4)寻找外部方法的特征:根据步骤(1)中确定的方法构造形式确定外部方法特征EF;(5)根据外部特征确定外部方法;如果一个方法至少具有步骤(4)中确定的两个特性,就假定该方法是外部方法。4.如权利要求3所述将物联网应用程序转换为云上RESTful服务的自动方法,其特征在于,步骤(2)中,具有以下内部特性的方法被认为是内部方法:IF1:包含关键字“init、setup、debug、test”的方法名;包含关键字“init”和“setup”的方法名是初始化方法,用于配置初始设置;包含关键字“debug”和“test”的方法名是测试方法,用于测试物联网设备的不同功能,所...

【专利技术属性】
技术研发人员:沈玉龙绳金涛祝幸辉赵双睿程珂何吉
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1