CN110798452B - 轻量级的物联网服务生成***及方法 - Google Patents
轻量级的物联网服务生成***及方法 Download PDFInfo
- Publication number
- CN110798452B CN110798452B CN201910984501.0A CN201910984501A CN110798452B CN 110798452 B CN110798452 B CN 110798452B CN 201910984501 A CN201910984501 A CN 201910984501A CN 110798452 B CN110798452 B CN 110798452B
- Authority
- CN
- China
- Prior art keywords
- service
- internet
- things
- data
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供一种轻量级的物联网服务生成***及方法,其中该***包括:物联网服务设计模块,用于通过为用户提供拖拽式设计逻辑,辅助设计物联网服务间的数据流动,形成完整的物联网业务流;物联网服务解析模块,用于对所述物联网业务流进行解析,以提取用户的设计用意,并以此规划出物联网服务及物联网服务间的数据流消息链;物联网设备接入模块,用于将物联网服务及所述数据流消息链通过统一的接入平台进行封装,并将封装的数据推送到各个目标物联网设备上;服务库模块,用于对物联网服务及所述数据流消息链进行存储,并为上述各模块提供数据支持。本发明实施例能够更加快速方便的生成物联网服务并部署应用,且能有效改善***的灵活性。
Description
技术领域
本发明涉及软件开发技术领域,更具体地,涉及一种轻量级的物联网服务生成***及方法。
背景技术
目前,物联网正在成为推动经济社会智能化和可持续发展的重要力量,它是互联网+,是实现智慧城市的重要基础和重要技术支撑。同时,人们生活中也出现了越来越多的智能设备,通过合理的调度这些设备可以让人类生活更加的方便和智能。
通过开发轻量级物联网服务生成工具,可以帮助用户快速的开发部署物联网应用。可以知道,轻量级是相对于重量级的一种对于组件的评判标准,它用来衡量组件对其环境的依赖程度。如果这个依赖越小,就越轻量,反之就越重量。传统服务领域业务***的构建更多的是竖井式的纵向思想,单个业务***多是孤立的,是一个封闭的垂直应用,不能直接与外界设备进行通信,因此导致***的灵活性较差。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种轻量级的物联网服务生成***及方法,用以更加快速方便的生成物联网服务并部署应用,同时有效改善***的灵活性。
第一方面,本发明实施例提供一种轻量级的物联网服务生成***,包括:
物联网服务设计模块,用于通过为用户提供拖拽式设计逻辑,辅助设计物联网服务间的数据流动,形成完整的物联网业务流;
物联网服务解析模块,用于对所述物联网业务流进行解析,以提取用户的设计用意,并基于所述设计用意规划出物联网服务及物联网服务间的数据流消息链;
物联网设备接入模块,用于将物联网服务及所述数据流消息链通过统一的接入平台进行封装,并通过数据推送中心将封装的数据推送到各个目标物联网设备上;
服务库模块,用于对物联网服务及所述数据流消息链进行存储,并为所述物联网服务设计模块、所述物联网服务解析模块及所述物联网设备接入模块提供数据支持。
其中可选的,所述物联网服务解析模块具体包括:
业务流程分析单元,用于从所述服务库模块中读取所述数据流消息链,并对所述数据流消息链进行服务匹配和JSON解析,生成数据流图;
事件循环单元,用于根据所述数据流图进行拓扑学分析执行层次,产生关键事件AOE和关键路径AOV信息,并通过对所述关键事件AOE和关键路径AOV信息进行梳理,实现业务流程的序列化;
数据分发单元,用于根据序列化的业务流程,完成各处理业务间的数据传递。
其中可选的:
所述业务流程分析单元具体用于:解析所述数据流消息链,获取业务流程图数据LOGIC,并对所述业务流程图数据LOGIC进行扩展,得到所述数据流图;
所述事件循环单元具体用于:对所述数据流图进行抽象处理,获取带有复数节点的AOE图,并分析所述数据流图中的拓扑学特征,提取AOE信息;以及,基于所述AOE图和所述AOE信息,通过分析数据的流动,解析出业务的执行次序,生成所述序列化的业务流程;
所述数据分发单元具体用于:根据所述序列化的业务流程,实现各处理业务间的数据传递。
其中可选的,所述物联网服务解析模块具体用于:
通过遍历所述AOE图中的每个节点,依次提取所述AOE图中各节点及各节点所发出的边,并将各节点及各节点所发出的边按照取出的次序进行排列,生成所述序列化的业务流程;
根据所述业务流程图数据LOGIC中有向边相关数据的接口数据,获取接口间数据传递的相关信息,并基于所述序列化的业务流程和所述接口间数据传递的相关信息,通过事件循环填写数据流表;
通过事件循环监视服务数据的到达,轮询所述数据流表,筛选出符合启动条件的节点,并调用该节点对应的原子服务。
其中可选的,所述物联网设备接入模块具体用于:
根据服务实体发起的会话请求建立会话,并利用所述会话匹配服务对应的设备,所述服务为向所述服务实体请求数据以使所述服务实体发起所述会话请求的服务;
将所述服务传入的数据通过协议转换,形成所述服务对应的设备能够识别的通信协议数据,并利用通过网络建立的通讯连接,传输所述通信协议数据,以使所述服务对应的设备将接收的所述通信协议数据进行处理后,通过所述通讯连接返回处理结果数据;
接收所述处理结果数据,并将所述处理结果数据转换为服务间通用的数据结构。
其中可选的,所述服务库模块中包括服务列表、实体列表和业务列表,其中:
所述服务列表包括多个服务,所述服务表示对一类具有相似功能的设备所提供的服务的抽象,区别于具体的设备本身;
所述实体列表包括多个实体,所述实体表示对具体设备的抽象,与真实存在的实物设备一一对应;
所述业务列表包括多个业务,所述业务表示基于复数单个服务组合而成的新的增值服务,以及服务间的数据交互信息。
其中可选的,所述物联网服务设计模块具体包括:
服务组件单元,包括输入接口组件、输出接口组件和功能函数,用于为设计物联网服务间的数据流动提供拖拽式组件支持;
流程图分析单元,用于根据用户设计的服务业务流程,进行服务数据流的驱动,以通过显式的数据流实现隐式的控制流;
流程数据记录单元,用于根据所述显式的数据流,将服务数据业务流程记录在扩展的JSON格式的文件中,形成所述物联网业务流。
进一步的,所述物联网服务解析模块还用于:将解析结果以扩展JSON的形式存储在服务库中。
第二方面,本发明实施例提供一种轻量级的物联网服务生成方法,包括:采用如上述第一方面所述的轻量级的物联网服务生成***,生成目标轻量级物联网服务。
本发明实施例提供的轻量级的物联网服务生成***及方法,通过将原物联网服务拆分成微服务可以实现服务的灵活接入、部署和维护,并且微服务间可以无障碍的通信,打通业务间的联系。同时,将服务封装成微服务之后也方便了对服务的编排,通过将服务拆分部署出去可以减小平台本身的体量,使得平台变得更加轻量级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的轻量级的物联网服务生成***的结构示意图;
图2为根据本发明实施例提供的轻量级的物联网服务生成***中物联网服务解析模块的框架结构示意图;
图3为根据本发明实施例提供的轻量级的物联网服务生成***中物联网服务解析模块的处理流程示意图;
图4为根据本发明实施例提供的轻量级的物联网服务生成***中物联网设备接入模块的处理流程示意图;
图5为根据本发明实施例提供的轻量级的物联网服务生成***中服务库模块的处理流程示意图;
图6为根据本发明实施例提供的轻量级的物联网服务生成***中物联网服务设计模块的框架结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
本发明实施例针对现有技术不够方便快捷且灵活性差的问题,通过将原物联网服务拆分成微服务可以实现服务的灵活接入、部署和维护,并且微服务间可以无障碍的通信,打通业务间的联系。同时,将服务封装成微服务之后也方便了对服务的编排,通过将服务拆分部署出去可以减小平台本身的体量,使得平台变得更加轻量级。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。
图1为本发明实施例提供的轻量级的物联网服务生成***的结构示意图,该***可以用于生成轻量级的物联网服务,如图1所示,该***包括物联网服务设计模块101、物联网服务解析模块102、物联网设备接入模块103和服务库模块104。其中:
物联网服务设计模块101用于通过为用户提供拖拽式设计逻辑,辅助设计物联网服务间的数据流动,形成完整的物联网业务流;物联网服务解析模块102用于对物联网业务流进行解析,以提取用户的设计用意,并基于设计用意规划出物联网服务及物联网服务间的数据流消息链;物联网设备接入模块103用于将物联网服务及数据流消息链通过统一的接入平台进行封装,并通过数据推送中心将封装的数据推送到各个目标物联网设备上;服务库模块104用于对物联网服务及数据流消息链进行存储,并为物联网服务设计模块、物联网服务解析模块及物联网设备接入模块提供数据支持。
可以理解为,如图1所示,本发明实施例的轻量级的物联网服务生成***至少应包括物联网服务设计模块101、物联网服务解析模块102、物联网设备接入模块103和服务库模块104,分别用于实现物联网业务流的设计、物联网业务流的解析、物联网设备的接入以及为上述各处理模块提供数据支持的处理流程。
具体而言,在本发明实施例中,使用流编程的理念来解析和封装物联网服务。也即,基于数据流来解析和执行物联网服务,具体基于数据流驱动来封装物联网服务,并通过数据流来记录物联网服务中的业务信息,采用事件循环作为平台解析运行物联网服务的基础设施。
数据流编程的基本思想是:应用程序可以由多个较小的“黑盒”组件组合而成,组件间依据预定义的连接进行消息传递,利用数据流间的数据关系包含隐含的控制流。物联网设备可以通过设备接入模块接入到***中,这些物联网设备经过设备接入模块的封装成物联网原子服务,实际上形成了一个个黑盒组件,而用户可以在服务设计界面通过拖拽的方式设计原子服务间的连接。
物联网服务设计模块101提供了一个可视化的界面方便用户进行物联网服务的设计,通过提供拖拽式的设计方式来辅助用户设计物联网服务间的数据流动,引导用户设计完整的物联网业务流,并将设计结果传递到业务解析引擎中进行解析。可以理解,由于物联网设备在接入***时被进行了封装,因此对于***来说这些物联网原子服务就是一个个黑盒组件,***不用关心组件内部的实现方式,只需在设计界面连接原子服务间的输入、输出,规划组件间的联系。在一个实施例中可将这些联系记录下来并存储在扩展的JSON结构中。
可以理解的是,如今用户思维正在被越来越多的重视和接受,仅仅依靠企业内部有限的资源进行业务创新显然是不够的,因此考虑为用户提供一个足够友好的拖拽式的界面,以使用户不需要编写任何代码就可以开发出一个全新的应用,从而让更多普通用户参与到业务创新中,同时使平台本身尽量简洁、轻量,方便用户部署。该***平台可以用于智能家居、安防监控等物联网业务设计环境中,能够让没有学习过代码的用户也可以加入到物联网业务设计中。
物联网服务解析模块102用来解析用户设计出来的物联网业务流。通过提取用户设计的业务流程,理解用户的设计用意并以此规划出物联网服务间的数据流消息链。其中在一个实施例中,物联网服务解析模块102具体还用于将解析结果以扩展JSON的形式存储在服务库中。
也就是说,物联网服务解析模块102主要负责基于数据流的规则对记录在服务库中的服务数据进行解析,也即将物联网服务设计模块101中生成的新服务解析并执行。在物联网服务设计模块101中,用户只是设计了原子服务间的联系,物联网服务解析模块102将这些联系理解成业务间的数据流,通过数据流图的分析方法,从原子服务间的数据流中提取出隐含的控制流信息,从而得到整个业务的执行时序关系。物联网服务解析模块102通过事件循环来监听物联网设备的运行状态,当监听到数据到达事件时会首先查询数据流表,之后筛选出符合条件的数据进行执行。通过这种数据驱动动的方式业务可以一直执行下去直到收到终止信号。
物联网设备接入模块103主要将物联网服务通过统一的接入平台进行封装,并通过数据推送中心快速的数据推送到各个设备上。通过物联网平台的封装可以隔离物联网设备之间的差异性,使物联网设备对上层模块透明。也就是说,基于数据流驱动对物联网设备进行封装,并通过统一的接口对上层提供物联网服务,访问接口基于统一的REST风格。因此对于整个***来说,所有的物联网设备就是一个个黑盒组件,可以利用数据流的规则进行编排。
服务库模块104主要通过服务库对原子服务以及原子服务生成的业务进行存储,同时对其他模块提供数据支持。如可以以基于扩展的JSON规则的数据结构存储。也就是说,服务库模块104负责为***其他模块提供实时可用的服务列表。当物联网服务设计模块101完成新服务的设计时会产生以扩展JSON形式记录的新服务的数据,此时这些数据会被记录在服务库中。同时服务库模块104还会将已经实例化的服务以实体的形式记录管理,实时管理整个***中的服务的运行,存储等状态,并为其他模块提供基础支持。
本发明实施例提供的轻量级的物联网服务生成***,通过将原物联网服务拆分成微服务可以实现服务的灵活接入、部署和维护,并且微服务间可以无障碍的通信,打通业务间的联系。同时,将服务封装成微服务之后也方便了对服务的编排,通过将服务拆分并部署出去,可以减小平台本身的体量,使得平台变得更加轻量级。
其中,根据上述各实施例可选的,物联网服务解析模块具体包括:业务流程分析单元、事件循环单元和数据分发单元。其中:业务流程分析单元用于从服务库模块中读取数据流消息链,并对数据流消息链进行服务匹配和JSON解析,生成数据流图;事件循环单元用于根据数据流图进行拓扑学分析执行层次,产生关键事件AOE和关键路径AOV信息,并通过对关键事件AOE和关键路径AOV信息进行梳理,实现业务流程的序列化;数据分发单元用于根据序列化的业务流程,完成各处理业务间的数据传递。
具体而言,如图2所示,为根据本发明实施例提供的轻量级的物联网服务生成***中物联网服务解析模块的框架结构示意图,其中主要包括三个单元部分,即业务流程分析单元、事件循环单元和数据分发单元。可以知道,物联网服务设计模块中设计的新服务的业务是用流程表示的,每一个节点就是一个处理单元,类似一个黑盒,可以实现特定功能,有输入、输出。黑盒之间通过有向边连接,边的意义就是数据的流向。业务流程分析单元通过显式的数据流来达到隐式控制流,这种表示方法是符合数据流的描述方法。可以基于数据流的方法将业务过程抽象成数据流图,然后利用图的相关方法分析其中隐含的控制信息。通过分析业务逻辑流程图中各个节点间的数据流向,从显式的数据流中解析出隐式的控制信息,分析出各个节点的执行次序,同时还要解析出各个节点接口间数据的传递信息。
也就是说,在业务设计模块中生成了新服务的业务描述数据,该数据中描述了业务中各个服务节点的调用以及数据的流向。但是生成的这段数据是不能直接被执行的。需要对该业务利用数据流解析器进行解析之后才能执行。
本发明实施例采用基于流的解析方法来解析业务逻辑流程信息。通过将流程图抽象为一张表示数据流向的数据流图,再结合其拓扑学特征分析其中的隐含控制流信息。在分析完成数据流图之后,解析引擎利用事件循环监听原子服务间的数据传递同时完成原子服务的调度来实现业务。即,将新服务的业务流程和业务数据流信息导入业务流程分析单元,在业务流程分析单元中会根据业务流程分析方法对业务流程信息进行分析,将其抽象为数据流图。
之后,事件循环单元对抽象而成的数据流图进行拓扑学分析执行层次,处理产生关键事件AOE和关键路径AOV信息,之后对信息进一步梳理将业务流程图序列化。
最后,在将业务序列化之后,数据分发单元需要处理业务之间的数据传递。结合数据流图中产生的AOE和AOV信息以及节点本身的接口信息,业务流程解析引擎将提取各个服务节点需要转发的数据逻辑。
其中,根据上述各实施例可选的,业务流程分析单元具体用于:解析数据流消息链,获取业务流程图数据LOGIC,并对业务流程图数据LOGIC进行扩展,得到数据流图;事件循环单元具体用于:对数据流图进行抽象处理,获取带有复数节点的AOE图,并分析数据流图中的拓扑学特征,提取AOE信息;以及,基于AOE图和AOE信息,通过分析数据的流动,解析出业务的执行次序,生成序列化的业务流程;数据分发单元具体用于:根据序列化的业务流程,实现各处理业务间的数据传递。
首先,为便于说明,将原子服务Services扩展为一个五元组Services(F,A,I,E,D)。其中,F表示服务的功能函数,A表示服务的响应事件,I表示服务的接口,E表示服务事件,D表示服务的数据。
通过物联网服务设计模块可以得到新服务的业务流程图,这里将其记为Logic,Logic是一个四元组Logic(I,N,E,D)。其中,I为业务逻辑的说明信息,说明业务逻辑图的作者等基本信息,N为业务逻辑图中节点的信息,包括节点的编号以及节点源的信息,E为业务逻辑中的边的信息,包括起点接口和终点接口,D为业务中传递的数据。
当业务流程分析单元得到业务流程图数据LOGIC时,会将其扩展为一个数据流图。之后,事件循环单元对该数据流图进行抽象,生成一个有着复数节点的AOE图G(N,V)。其中,N为图中的节点,V为一个二元组,表示图中的有向边。G中每个节点ni即关键事件,就是业务流程中的一个处理单元,每条边<vi,vj>即是数据的流向,每个处理单元只有当有数据流入的时候才会进行数据的处理,才会有数据的输出,数据的输出又会触发下一个处理单元。这就是隐含在数据流中的控制信息,物联网服务解析模块的目标就是解析出显式数据流中的隐式控制流。
再之后,事件循环单元需要分析数据流图中的拓扑学特征,提取出AOE信息,然后依据数据的流动解析出业务的执行次序,从而生成序列化的业务流程Q。
通过对图G的分析可以得知,有一些节点总是要在另一些节点之后执行。即当存在边<vi,vj>时,j节点必须在i节点之后执行,即i节点为j节点的前置节点。显而易见,当一个节点不存在前置节点时,其输入应该来自流程之外,即该节点是起始节点。
最后,数据分发单元根据序列化的业务流程,实现各处理业务间的数据传递。
其中,根据上述各实施例可选的,物联网服务解析模块具体用于:通过遍历AOE图中的每个节点,依次提取AOE图中各节点及各节点所发出的边,并将各节点及各节点所发出的边按照取出的次序进行排列,生成序列化的业务流程;根据业务流程图数据LOGIC中有向边相关数据的接口数据,获取接口间数据传递的相关信息,并基于序列化的业务流程和接口间数据传递的相关信息,通过事件循环填写数据流表;通过事件循环监视服务数据的到达,轮询数据流表,筛选出符合启动条件的节点,并调用该节点对应的原子服务。
具体而言,如图3所示,为根据本发明实施例提供的轻量级的物联网服务生成***中物联网服务解析模块的处理流程示意图,包括如下处理步骤:
遍历图G,找出起始节点i,并在G中去掉i以及所有i发出的边,形成一个子图G0;
对于G0,执行上述步骤同样的操作,找出G0的起始节点i0;
重复上述操作直至提取出G中所有的节点;
将节点按照从G中取出的次序排列,即得到所需的序列化业务逻辑执行流程Q,由于此时得到的Q并不包含数据传递的相关信息,还需从业务流程图LOGIC和原子服务S中得到接口间数据传递的信息;
物联网服务解析模块依据LOGIC中有向边的相关数据E和S中的接口的数据I,得到每个节点的输出接口对应的输入Ii和每个节点输入接口对应的输出Oi,对没有使用的输入接口统一连接到业务的输入Is,没有使用的输出接口统一连接到业务的输出Os,至此获取每个节点输入接口的输出信息NI和输出接口的输入信息NO;
根据Q以及NI和NO信息,事件循环单元填写数据流表D,且当数据到达事件被触发时,物联网服务解析模块的事件循环会查询数据流表D,筛选出符合启动条件的节点,并调用节点对应的原子服务,之后事件循环继续进入等待下一个数据到达事件,对数据流表D进行轮询。
其中,根据上述各实施例可选的,物联网设备接入模块具体用于:根据服务实体发起的会话请求建立会话,并利用会话匹配服务对应的设备,服务为向服务实体请求数据以使服务实体发起会话请求的服务;将服务传入的数据通过协议转换,形成服务对应的设备能够识别的通信协议数据,并利用通过网络建立的通讯连接,传输通信协议数据,以使服务对应的设备将接收的通信协议数据进行处理后,通过通讯连接返回处理结果数据;接收处理结果数据,并将处理结果数据转换为服务间通用的数据结构。
具体而言,物联网设备接入模块负责接入物联网设备。物联网设备通过网络接入到***中,经过设备接入模块的封装对上层提供一个统一的访问接口。如图4所示,为根据本发明实施例提供的轻量级的物联网服务生成***中物联网设备接入模块的处理流程示意图,数据在经过设备接入模块的封装时包括如下处理步骤:
服务向设备请求数据,也即是前端服务组件向服务实体请求数据;
服务实体向物联网设备接入模块发起会话请求;
物联网设备接入模块接收会话请求,并建立会话;
根据会话匹配服务对应的设备,并将服务传输过来的数据进行协议转换,形成设备对应的通信协议数据;
利用网络建立设备的通讯连接,并利用该通讯连接传输上述通信协议数据;
设备接收传输的通信协议数据,对其处理完成后再通过上述通讯连接返回数据;
协议转换模块解析设备返回的数据,并将之转换为服务间通用的数据结构;
返回转换后的数据给服务实体;
服务实体将接收的数据返回给服务。
可以理解的是,由于服务组件是对用户是透明的,以上在用户侧观察只是服务组件接收数据并返回处理数据的过程。
其中,根据上述各实施例可选的,服务库模块中包括服务列表、实体列表和业务列表,其中:服务列表包括多个服务,服务表示对一类具有相似功能的设备所提供的服务的抽象,区别于具体的设备本身;实体列表包括多个实体,实体表示对具体设备的抽象,与真实存在的实物设备一一对应;业务列表包括多个业务,业务表示基于复数单个服务组合而成的新的增值服务,以及服务间的数据交互信息。
可以理解为,服务库模块主要负责为***其他模块提供实时可用的服务列表。物联网服务是通过对设备的监控和管理以及来自远程设备的数据采集实现的,这些设备部署在不同的环境中,收集各种数据,如环境,地理和物流数据。为了便于管理和调用,在服务库模块中建立“实体”与“服务”的概念,用于将设备真正作为服务供用户选择和使用。当今服务环境飞速发展,可使用的服务也越来越多,服务库模块通过提供便捷快速的操作入口实现对服务的管理和维护。
具体的,服务库模块的页面流程如图5所示,为根据本发明实施例提供的轻量级的物联网服务生成***中服务库模块的处理流程示意图,包括如下处理:
进入服务库初始页面后,展示包含三个选项的选项卡,分别展示服务列表、实体列表和业务列表,其中:
服务列表包括多个服务选项,服务(service)是对一类具有相似功能的设备所提供服务的抽象,例如摄像服务、报警服务等,代表一类设备而不是具体的设备。
实体列表包括多个实体选项,实体(entity)是具体设备的抽象,是服务的实例化,与真实存在的实物设备一一对应的。同一服务可以由多个实体共同协作提供,即这些实体在创建时绑定了这个服务。
业务列表包括多个业务选项,业务(project)是基于复数单个服务组合而成的新的增值服务,还包含服务间的数据交互信息。
在服务列表选项卡下,用户可进行如下操作:
点击“New”按钮可跳转到新增服务页。在新增服务页中填写服务的相关信息,如服务的类型、接口、页面定义等信息。填写完成后点击“Submit”按钮进行提交,提交的数据通过验证即可将新服务加入到服务库中。
或者,点击某项服务的名称可进入到该服务的详情页进行查看。详情页展示了服务的相关信息。
或者,点击某服务对应的“删除”按钮,可将该服务从服务库中删除。删除成功后页面显示成功信息。
在实体列表选项卡下,用户可进行如下操作:
点击“New”按钮,页面下拉出一个简单的设备-实体-服务绑定表单。通过这个表单可将可用的设备抽象为实体,并与它能提供的服务绑定。其中,设备选项从***下层设备注册中心的在线设备中选择,服务选项从已创建的服务中选择。
或者,点击“删除”按钮可将已有的实体删除。
在业务列表选项卡下,可进行如下操作:
点击“New”按钮,则跳转到服务设计界面进行新服务的业务的设计。列表中新的业务后有对应的“绑定”按钮,点击绑定按钮,可跳转到绑定页面。“绑定”操作是为业务中每项服务选定具体的执行实体。选择完毕后点击“Submit”,提交成功后跳转到业务详情页。详情页展示本业务的服务连接信息。已经完成绑定操作的业务,将出现“查看”按钮。点击查看按钮可进入业务详情页。
或者,点击某业务后的“删除”按钮可将此项业务删除。
其中,根据上述各实施例可选的,物联网服务设计模块具体包括服务组件单元、流程图分析单元和流程数据记录单元,其中:服务组件单元包括输入接口组件、输出接口组件和功能函数,用于为设计物联网服务间的数据流动提供拖拽式组件支持;流程图分析单元用于根据用户设计的服务业务流程,进行服务数据流的驱动,以通过显式的数据流实现隐式的控制流;流程数据记录单元用于根据显式的数据流,将服务数据业务流程记录在扩展的JSON格式的文件中,形成物联网业务流。
具体而言,如图6所示,为根据本发明实施例提供的轻量级的物联网服务生成***中物联网服务设计模块的框架结构示意图,主要包括服务组件、流程图分析和流程数据记录几个主要组成部分,为便于说明,可作如下设定:
每个物联网原子服务在设计界面中都体现为一个数据流的组件,组件封装可以抽象为一个五元组Widget,可表示为Widget(I,O,F,E,V)。其中,I为输入数组,O为输出数组,F为处理函数,E为事件,V为组件界面。
这是一个基于数据流的黑盒结构,用户不用关心他的具体实现,只需处理每个组件的输入输出即可。实际封装时还需要加入其他解释型信息,包括组件名称、作者及组件描述等。这部分仅是基本信息,在此不再赘述。
基本信息之后是定义输入接口信息,在定义输入接口信息时是按照接口名来定义的,包括为每一个接口定义响应函数和接口数据类型。其中两个接口必须是具有相同的数据类型才能够连接。最后是输出接口的定义。输出接口和输入接口一样都是根据接口名来定义,但是输出接口不用设置响应函数,只需要设置输出的数据类型即可。
服务组件单元包括设计界面中的组件,这些组件只是原子服务在界面上的映射,具体的函数操作不用在设计界面的组件中实现,而是有远端设备直接处理,再将处理结果传送给前端组件显示。如组件W中的处理函数F只是实现简单的数据传递。
对于组件的操作函数F中的处理定义如下:
将输入数组的数据传递给临时变量;
利用临时变量进行简单处理;
将处理结果传递个输出数组;
将输出数组的数据send到相对应的接口,此时会触发物联网服务解析模块中解析引擎的时间循环的数据到达事件。
处理函数F中的处理部分通过网络将数据发送给物联网设备,再获取设备处理结束的数据,其内部实现是一个黑盒,用户无需了解服务的具体实现,只需要了解服务的功能及其输入输出接口即可进行业务设计。
在设计界面中,用户可以通过将相应组件的输入输出连接起来,来表述组件间的联系,从而设计出能完成一定功能的新服务的业务流程。流程图分析单元将这些业务流程通过数据流来驱动,从而通过显式的数据流来实现隐式的控制流。
完成业务逻辑的设计后,流程数据记录单元会将这些数据业务流程记录在扩展的JSON格式的文件中,以便于业务解析引擎进行解析执行。
其中,生成的扩展JSON数据中存储的业务逻辑信息也可以表示为四元组LOGIC(I,N,E,D)。其中,I为业务逻辑的说明信息,主要说明业务逻辑图的作者等基本信息,N为业务逻辑图中节点的信息,主要包括节点的编号以及节点源的信息,E为业务逻辑中的边的信息,包括起点节点接口和终点节点接口,D为业务中传递的数据。
四元组LOGIC中包含了业务流程中的数据传递信息,物联网服务解析模块中的解析引擎在得到这些数据后,即可对用户组合的业务逻辑进行解析,得到隐含在数据流中的控制流信息。
本发明实施例以扩展的JSON格式存储设计界面生成的服务间的连接关系,这些扩展的JSON数据和原子服务的信息都被记录在服务库中。而业务解析引擎读取到这个连接关系之后,通过数据流图的分析手段,可以获取原子服务间相互的控制关系。然后依据这些控制关系调度相应的设备完成服务。
基于相同的发明构思,本发明实施例根据上述各实施例提供一种轻量级的物联网服务生成方法,该方法通过应用上述各实施例提供的轻量级的物联网服务生成***,更加方便快速的生成目标轻量级物联网服务。因此,在上述各实施例的轻量级的物联网服务生成***中的描述和定义,可以用于本发明实施例中各个处理步骤的理解,具体可参考上述实施例,此处不在赘述。
作为本发明的一个实施例,所提供的轻量级的物联网服务生成方法包括以下处理过程:
首先,利用物联网服务设计模块接受用户通过拖拽物联网服务设计模块提供的服务组件,并按照服务数据流连接的各服务组件的输入输出,并基于此规划各服务组件间的联系,辅助设计物联网服务间的数据流动,形成完整的物联网业务流。
之后,利用物联网服务解析模块对上述设计的物联网业务流进行解析,提取用户的设计用意,并基于用户的设计用意规划出物联网服务及物联网服务间的数据流消息链,之后将规划的数据流消息链存储到服务库模块中的服务库中。
再之后,利用物联网设备接入模块,基于数据流驱动将物联网服务及数据流消息链通过统一的接入平台进行封装,并通过数据推送中心将封装的数据推送到各个目标物联网设备上,以通过统一的接口对上层提供物联网服务。
本发明实施例提供的轻量级的物联网服务生成方法,通过将原物联网服务拆分成微服务可以实现服务的灵活接入、部署和维护,并且微服务间可以无障碍的通信,打通业务间的联系。同时,将服务封装成微服务之后也方便了对服务的编排,通过将服务拆分部署出去可以减小平台本身的体量,使得平台变得更加轻量级。
可以理解的是,以上所描述的物联网服务生成***的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
Claims (8)
1.一种轻量级的物联网服务生成***,其特征在于,包括:
物联网服务设计模块,用于通过为用户提供拖拽式设计逻辑,辅助设计物联网服务间的数据流动,形成完整的物联网业务流;
物联网服务解析模块,用于对所述物联网业务流进行解析,以提取用户的设计用意,并基于所述设计用意规划出物联网服务及物联网服务间的数据流消息链;
物联网设备接入模块,用于将物联网服务及所述数据流消息链通过统一的接入平台进行封装,并通过数据推送中心将封装的数据推送到各个目标物联网设备上;
服务库模块,用于对物联网服务及所述数据流消息链进行存储,并为所述物联网服务设计模块、所述物联网服务解析模块及所述物联网设备接入模块提供数据支持;
所述物联网服务解析模块具体包括:
业务流程分析单元,用于从所述服务库模块中读取所述数据流消息链,并对所述数据流消息链进行服务匹配和JSON解析,生成数据流图;
事件循环单元,用于根据所述数据流图进行拓扑学分析执行层次,产生关键事件AOE和关键路径AOV信息,并通过对所述关键事件AOE和关键路径AOV信息进行梳理,实现业务流程的序列化;
数据分发单元,用于根据序列化的业务流程,完成各处理业务间的数据传递。
2.根据权利要求1所述的轻量级的物联网服务生成***,其特征在于:
所述业务流程分析单元具体用于:解析所述数据流消息链,获取业务流程图数据LOGIC,并对所述业务流程图数据LOGIC进行扩展,得到所述数据流图;
所述事件循环单元具体用于:对所述数据流图进行抽象处理,获取带有复数节点的AOE图,并分析所述数据流图中的拓扑学特征,提取AOE信息;以及,基于所述AOE图和所述AOE信息,通过分析数据的流动,解析出业务的执行次序,生成所述序列化的业务流程;
所述数据分发单元具体用于:根据所述序列化的业务流程,实现各处理业务间的数据传递。
3.根据权利要求2所述的轻量级的物联网服务生成***,其特征在于,所述物联网服务解析模块具体用于:
通过遍历所述AOE图中的每个节点,依次提取所述AOE图中各节点及各节点所发出的边,并将各节点及各节点所发出的边按照取出的次序进行排列,生成所述序列化的业务流程;
根据所述业务流程图数据LOGIC中有向边相关数据的接口数据,获取接口间数据传递的相关信息,并基于所述序列化的业务流程和所述接口间数据传递的相关信息,通过事件循环填写数据流表;
通过事件循环监视服务数据的到达,轮询所述数据流表,筛选出符合启动条件的节点,并调用该节点对应的原子服务。
4.根据权利要求1所述的轻量级的物联网服务生成***,其特征在于,所述物联网设备接入模块具体用于:
根据服务实体发起的会话请求建立会话,并利用所述会话匹配服务对应的设备,所述服务为向所述服务实体请求数据以使所述服务实体发起所述会话请求的服务;
将所述服务传入的数据通过协议转换,形成所述服务对应的设备能够识别的通信协议数据,并利用通过网络建立的通讯连接,传输所述通信协议数据,以使所述服务对应的设备将接收的所述通信协议数据进行处理后,通过所述通讯连接返回处理结果数据;
接收所述处理结果数据,并将所述处理结果数据转换为服务间通用的数据结构。
5.根据权利要求1所述的轻量级的物联网服务生成***,其特征在于,所述服务库模块中包括服务列表、实体列表和业务列表,其中:
所述服务列表包括多个服务,所述服务表示对一类具有相似功能的设备所提供的服务的抽象,区别于具体的设备本身;
所述实体列表包括多个实体,所述实体表示对具体设备的抽象,与真实存在的实物设备一一对应;
所述业务列表包括多个业务,所述业务表示基于复数单个服务组合而成的新的增值服务,以及服务间的数据交互信息。
6.根据权利要求1所述的轻量级的物联网服务生成***,其特征在于,所述物联网服务设计模块具体包括:
服务组件单元,包括输入接口组件、输出接口组件和功能函数,用于为设计物联网服务间的数据流动提供拖拽式组件支持;
流程图分析单元,用于根据用户设计的服务业务流程,进行服务数据流的驱动,以通过显式的数据流实现隐式的控制流;
流程数据记录单元,用于根据所述显式的数据流,将服务数据业务流程记录在扩展的JSON格式的文件中,形成所述物联网业务流。
7.根据权利要求6所述的轻量级的物联网服务生成***,其特征在于,所述物联网服务解析模块还用于:将解析结果以扩展JSON的形式存储在服务库中。
8.一种轻量级的物联网服务生成方法,其特征在于,采用如权利要求1-7中任一项所述的轻量级的物联网服务生成***,生成目标轻量级物联网服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910984501.0A CN110798452B (zh) | 2019-10-16 | 2019-10-16 | 轻量级的物联网服务生成***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910984501.0A CN110798452B (zh) | 2019-10-16 | 2019-10-16 | 轻量级的物联网服务生成***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798452A CN110798452A (zh) | 2020-02-14 |
CN110798452B true CN110798452B (zh) | 2021-01-05 |
Family
ID=69440328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910984501.0A Active CN110798452B (zh) | 2019-10-16 | 2019-10-16 | 轻量级的物联网服务生成***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798452B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831320A (zh) * | 2020-07-20 | 2020-10-27 | 北京百度网讯科技有限公司 | 插件管理方法、装置、电子设备及存储介质 |
CN114500486A (zh) * | 2020-11-12 | 2022-05-13 | 京东方科技集团股份有限公司 | 一种业务管理***及方法 |
CN112698817B (zh) * | 2021-01-05 | 2024-06-07 | 深圳力维智联技术有限公司 | 基于微服务架构的消息接入方法、装置、***及存储介质 |
CN113965538B (zh) * | 2021-10-21 | 2023-04-18 | 青岛海信智慧生活科技股份有限公司 | 设备状态消息处理方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104735143A (zh) * | 2015-03-18 | 2015-06-24 | 湖南天冠电子信息技术有限公司 | 一种基于智能家居云平台的批量控制***和方法 |
CN105824616A (zh) * | 2016-03-07 | 2016-08-03 | 林友哲 | 一种用于设备控制***程序的开发方法及框架 |
CN107010152A (zh) * | 2016-11-25 | 2017-08-04 | 罗轶 | 公共自行包 |
CN107888676A (zh) * | 2017-11-07 | 2018-04-06 | 上海电机学院 | 一种基于微服务的云端个人学习环境装置 |
WO2018208337A1 (en) * | 2017-05-09 | 2018-11-15 | Smith Ned M | INTERNET OF THINGS (IoT) NETWORK DOMAIN RESOURCE MODEL |
CN109327551A (zh) * | 2018-12-04 | 2019-02-12 | 浩云科技股份有限公司 | 将物联网设备接入物联网平台的方法及装置、服务器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312788B (zh) * | 2013-05-17 | 2016-09-28 | 南京邮电大学 | 端管云协同的汽车网络黑匣子*** |
CN103458033B (zh) * | 2013-09-04 | 2016-05-11 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供***及其工作方法 |
CN106557855A (zh) * | 2015-09-28 | 2017-04-05 | 上海佑途物联网有限公司 | 一种智慧旅游客流综合管理*** |
WO2018144060A1 (en) * | 2017-02-05 | 2018-08-09 | Intel Corporation | Microservice provision and management |
-
2019
- 2019-10-16 CN CN201910984501.0A patent/CN110798452B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104735143A (zh) * | 2015-03-18 | 2015-06-24 | 湖南天冠电子信息技术有限公司 | 一种基于智能家居云平台的批量控制***和方法 |
CN105824616A (zh) * | 2016-03-07 | 2016-08-03 | 林友哲 | 一种用于设备控制***程序的开发方法及框架 |
CN107010152A (zh) * | 2016-11-25 | 2017-08-04 | 罗轶 | 公共自行包 |
WO2018208337A1 (en) * | 2017-05-09 | 2018-11-15 | Smith Ned M | INTERNET OF THINGS (IoT) NETWORK DOMAIN RESOURCE MODEL |
CN107888676A (zh) * | 2017-11-07 | 2018-04-06 | 上海电机学院 | 一种基于微服务的云端个人学习环境装置 |
CN109327551A (zh) * | 2018-12-04 | 2019-02-12 | 浩云科技股份有限公司 | 将物联网设备接入物联网平台的方法及装置、服务器 |
Non-Patent Citations (1)
Title |
---|
基于微服务架构的物联网中间件设计;吴斌烽;《计算机科学》;20190615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110798452A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798452B (zh) | 轻量级的物联网服务生成***及方法 | |
Canfora et al. | A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures | |
CN110198247A (zh) | 接口测试方法及*** | |
Moscato et al. | Model-driven engineering of cloud components in metamorp (h) osy | |
Brambilla et al. | A software engineering approach to design and development of semantic web service applications | |
Carrera et al. | Beast methodology: An agile testing methodology for multi-agent systems based on behaviour driven development | |
CN1972296A (zh) | 基于xpl的综合多种通信手段的业务生成方法及其*** | |
Moscato et al. | Enabling model driven engineering of cloud services by using mosaic ontology | |
Grassi et al. | Klaper: An intermediate language for model-driven predictive analysis of performance and reliability | |
AlShahwan et al. | Mobile cloud computing for providing complex mobile web services | |
Chiș | A modeling method for model-driven API management | |
Vassev et al. | Modeling the Image-processing Behavior of the NASA Voyager Mission with ASSL | |
Xu et al. | Modeling the Execution Architecture of a Mobile Phone Software System by Colored Petri Nets | |
Humayoun et al. | Designing mobile systems in highly dynamic scenarios: The WORKPAD methodology | |
Gehlot et al. | Use of colored petri nets to model, analyze, and evaluate service composition and orchestration | |
CN110347562A (zh) | 数据采集方法、装置、计算机可读介质及智能终端设备 | |
Bo et al. | Petri net based formal analysis for multimedia conferencing services orchestration | |
Paikari et al. | Multi-agent system for semantic web service composition | |
Ma et al. | Model-based management of service composition | |
Subburaj et al. | A formal specification language for modeling agent systems | |
D'Ambrogio et al. | A PaaS-based framework for automated performance analysis of service-oriented systems | |
Achilleos et al. | A framework for dynamic validation of context-aware applications | |
Alhaj et al. | Using aspects for platform-independent to platform-dependent model transformations | |
KR101950074B1 (ko) | 복수의 오픈 api로부터 통합적인 데이터 수집방법 | |
Toczé | Functional reactive programming as programming model for telecom server software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |