基于物模型的数据处理系统、方法、设备及存储介质
文献发布时间:2024-04-18 19:58:26
技术领域
本发明涉及物联网传输协议技术领域,尤其涉及一种基于物模型的数据处理系统、方法、设备及存储介质。
背景技术
随着物联网技术的不断发展,阿里云物联网平台为产品定义了一种标准的数据模型-物模型,物模型是物理空间中的实体(如传感器、车载装置、楼宇、工厂等)在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、可以对外提供哪些信息,称为TSL(Thing Specification Language)。定义了物模型的这三个维度,即完成了产品功能的定义。
基于共同的抽象特征,物模型可以让应用程序不再针对一个个的产品设备,而是同一类设备采用相同的处理逻辑。这实际上是应用开发的基础。当烟感传感器的数值触发报警时,即使是不同品牌的烟感产品,应用程序也可以对数值做相同的处理和判断,否则只能分别进行数值分析。另外,物模型中,设备的功能是明确定义的,可以方便地实现场景联动。比如,光线传感器可以基于光照强度,向智能电灯发送亮度的控制命令,或者开和关的命令。
现有技术中,标准的物模型数据TSL文件格式为JSON,而JSON格式的可读性较强,但是它的性能稍差。在面对大量物联网设备传输的过程中,往往需要较高的传输效率和性能。因此,如何提高传输效率和性能成为一个亟待解决的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种基于物模型的数据处理系统、方法、设备及存储介质,旨在解决如何提高传输效率和性能的技术问题。
为实现上述目的,本发明提供了一种基于物模型的数据处理系统,所述基于物模型的数据处理系统包括客户端和服务端;
所述客户端,用于将事件和/或服务传输数据体发送至所述服务端;
所述服务端,用于接收所述事件和/或服务传输数据体,根据所述事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构;
所述服务端,还用于获取所述事件和/或服务结构对应的事件和/或服务中的传输类型字段;
所述服务端,还用于根据所述传输类型字段确定目标字段类型,并根据所述目标字段类型通过预设数据处理规则处理业务,所述目标字段类型为json类型或protobuf类型。
可选地,所述服务端,还用于根据所述传输类型字段确定值类型;
所述服务端,还用于在所述值类型为protobuf类型时,根据事件和/或服务名称匹配对应的protobuf属性结构体,并将所述事件和/或服务传输数据体中的字节值反序列化为对象;
所述服务端,还用于根据所述protobuf属性结构体和所述对象处理业务。
可选地,所述服务端,还用于在所述值类型为json类型时,对入出参属性和所述入出参属性对应的属性字段类型进行解析,以获取入出参属性值和属性字段类型值,所述入出参属性为入参属性或出参属性;
所述服务端,还用于根据所述入出参属性值和所述属性字段类型值处理业务。
可选地,所述客户端,还用于在触发业务场景时,根据所述业务场景通过物模型构造事件和/或服务的请求消息体;
所述客户端,还用于根据所述请求消息体确定传输类型字段;
所述客户端,还用于在所述传输类型字段对应的值类型为json类型时,确定所述事件和/或服务对应的入出参的属性字段和类型,所述入出参为入参或出参;
所述客户端,还用于将所述属性字段和类型填充至入参或出参的值中,获得事件和/或服务传输数据体。
可选地,所述客户端,还用于在所述传输类型字段对应的值类型为protobuf类型时,根据protobuf协议序列化参数数据,获得字节;
所述客户端,还用于将所述字节填充至入参或出参的值中,获得事件和/或服务传输数据体。
此外,为实现上述目的,本发明还提出一种基于物模型的数据处理系统,所述基于物模型的数据处理方法包括以下步骤:
在接收到事件和/或服务传输数据体时,根据所述事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构;
获取所述事件和/或服务结构对应的事件和/或服务中的传输类型字段;
根据所述传输类型字段确定目标字段类型,并根据所述目标字段类型通过预设数据处理规则处理业务,所述目标字段类型为json类型或protobuf类型。
此外,为实现上述目的,本发明还提出一种基于物模型的数据处理设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于物模型的数据处理程序,所述基于物模型的数据处理程序配置为实现如上文所述的基于物模型的数据处理方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于物模型的数据处理程序,所述基于物模型的数据处理程序被处理器执行时实现如上文所述的基于物模型的数据处理方法的步骤。
本发明基于物模型的数据处理系统包括客户端和服务端,客户端用于将事件和/或服务传输数据体发送至服务端,服务端用于接收事件和/或服务传输数据体,根据事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构,服务端还用于获取事件和/或服务结构对应的事件和/或服务中的传输类型字段,服务端还用于根据传输类型字段确定目标字段类型,并根据目标字段类型通过预设数据处理规则处理业务,目标字段类型为json类型或protobuf类型。相较于现有技术标准的物模型数据TSL文件格式为JSON,而JSON格式的可读性较强,但是它的性能稍差。在面对大量物联网设备传输的过程中,往往需要较高的传输效率和性能,而本发明兼容了protobuf传输协议,相同大小的文件,可承载的数据量更大,从而直接提升传输的性能。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于物模型的数据处理设备的结构示意图;
图2为本发明基于物模型的数据处理系统第一实施例的结构框图;
图3为本发明基于物模型的数据处理系统第一实施例的灯物模型TSL示意图;
图4为本发明基于物模型的数据处理系统第一实施例的客户端与服务端交互流程示意图;
图5为本发明基于物模型的数据处理方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于物模型的数据处理设备结构示意图。
如图1所示,该基于物模型的数据处理设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储系统。
本领域技术人员可以理解,图1中示出的结构并不构成对基于物模型的数据处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于物模型的数据处理程序。
在图1所示的基于物模型的数据处理设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于物模型的数据处理设备中的处理器1001、存储器1005可以设置在基于物模型的数据处理设备中,所述基于物模型的数据处理设备通过处理器1001调用存储器1005中存储的基于物模型的数据处理程序,并执行本发明实施例提供的基于物模型的数据处理方法。
本发明实施例提供了一种基于物模型的数据处理方法,参照图2,图2为本发明基于物模型的数据处理系统第一实施例的结构框图。
本实施例中,所述基于物模型的数据处理系统包括客户端2001和服务端2002。
所述客户端2001,用于将事件和/或服务传输数据体发送至所述服务端2002。
参考图3,图3为本发明基于物模型的数据处理系统第一实施例的灯物模型TSL示意图,图3中为简单的物模型格式,由上面结构可以看出,标准物模型事件或者服务中都会有一个名称的定义和各种字段属性以及它们对应的字段类型。
简单的protobuf协议格式:
可以看到Protobuf协议是由关键字message定义各种对象以及对象中的各种属性和类型。
由上面两种结构可以看出,名称和字段以及字段的数据类型,使他们能在某种条件下共存。
本实施例就是设计了一种共存的方法,使两者能够共同提供各自的优点,来满足不同数据传输的业务场景需求。
为了达到共存的目的,在某个具体的事件或者服务中新增一种传输类型的定义,比如下面的事件部分结构中,我们可以增加一个content-type的定义,它的值为json类型:
定义好传输类型之后,因为json中的数据类型和protobuf中的数据类型是不一样的。是json的类型还好,因为物模型默认都是JSON格式的,但是如果定义为protobuf类型,直接将protobuf的数据先一步通过protobuf协议进行序列化为字节,然后直接将字节作为int类型的字节数组进行传输。当判断传输类型为protobuf之后,将收到的字节数组再通过protobuf协议反序列化为数据即可。用物模型来表示为
比如我们调用一个服务service.addPerson,根据物模型的定义可知,它的传输类型是"content-type":"protobuf",数据的传输如下
这样就可以很好的解决JSON数据的传输过大,导致数据传输性能差的问题。
本实施例虽然是以标准物模型作为示例进行讲解的,但是也是适用于其他物模型的结构,其中示例中提到的content-type和bytes均可以根据各设计使用方自行更改名称。
还应理解的是,客户端在触发业务场景时,根据业务场景通过物模型构造事件和/或服务的请求消息体,然后根据请求消息体确定传输类型字段,在传输类型字段对应的值类型为json类型时,确定事件和/或服务对应的入出参的属性字段和类型,入出参为入参或出参,之后将属性字段和类型填充至入参或出参的值中,获得事件和/或服务传输数据体。
还需要说明的是,在传输类型字段对应的值类型为protobuf类型时,根据protobuf协议序列化参数数据,获得字节,将字节填充至入参或出参的值中,获得事件和/或服务传输数据体。
在本实施例中,参考图4,图4为本发明基于物模型的数据处理系统第一实施例的客户端与服务端交互流程示意图,图中需要先定义物模型,之后结合真实的事件和/或服务的场景要求增加传输类型字段
还需要说明的是,参数数据可以理解为[1,2,34,234,534,36,4,457,5]。
在具体实现中,第一、定义物模型,结合具体业务场景增加事件或服务,并对事件或服务,增加传输类型字段比如"content-type":"protobuf"或者"conten t-type":"json"。
第二、定义事件和服务的入参或出参,比如
第三、客户端或服务端构造具体事件或服务的请求消息体,比如:
第四、以不同的通讯协议提交请求数据,比如使用http或tcp或mqtt。
第五、客户端或服务端编写具体的解析物模型代码,识别事件或者服务中的传输类型和参数字段。
第六、客户端或服务端根据不同的传输类型和参数字段进行不同的解析。
所述服务端2002,用于接收所述事件和/或服务传输数据体,根据所述事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构。
所述服务端2002,还用于获取所述事件和/或服务结构对应的事件和/或服务中的传输类型字段。
在具体实现中,参考图4,服务端接收到客户端上报的事件和/或服务传输数据体时,根据事件和/或服务传输数据体中的事件名和服务名匹配物模型对应的事件和/或服务结构,之后获取事件和/或服务结构对应的事件和/或服务中的传输类型字段。
所述服务端2002,还用于根据所述传输类型字段确定目标字段类型,并根据所述目标字段类型通过预设数据处理规则处理业务,所述目标字段类型为json类型或protobuf类型。
还应理解的是,预设数据处理规则包括json类型数据处理规则,还包括protobuf类型数据处理规则,以json方式继续按物模型中对应该事件和/或服务中定义的其他数据类型
进一步的,服务端根据传输类型字段确定值类型;在值类型为protobuf类型时,根据事件和/或服务名称匹配对应的protobuf属性结构体,并将事件和/或服务传输数据体中的字节值反序列化为对象;根据protobuf属性结构体和对象处理业务。
服务端在值类型为json类型时,对入出参属性和所述入出参属性对应的属性字段类型进行解析,以获取入出参属性值和属性字段类型值,入出参属性为入参属性或出参属性;根据入出参属性值和属性字段类型值处理业务。
在本实施例中,客户端用于将事件和/或服务传输数据体发送至服务端,服务端用于接收事件和/或服务传输数据体,根据事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构,服务端还用于获取事件和/或服务结构对应的事件和/或服务中的传输类型字段,服务端还用于根据传输类型字段确定目标字段类型,并根据目标字段类型通过预设数据处理规则处理业务,目标字段类型为json类型或protobuf类型。相较于现有技术标准的物模型数据TS L文件格式为JSON,而JSON格式的可读性较强,但是它的性能稍差。在面对大量物联网设备传输的过程中,往往需要较高的传输效率和性能,而本实施例兼容了protobuf传输协议,相同大小的文件,可承载的数据量更大,从而直接提升传输的性能。
参照图5,图5为本发明基于物模型的数据处理方法第一实施例的流程示意图。
如图5所示,本发明实施例提出的基于物模型的数据处理方法包括以下步骤:
步骤S10:在接收到事件和/或服务传输数据体时,根据所述事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构。
参考图3,图3为本发明基于物模型的数据处理系统第一实施例的灯物模型TSL示意图,图3中为简单的物模型格式,由上面结构可以看出,标准物模型事件或者服务中都会有一个名称的定义和各种字段属性以及它们对应的字段类型。
简单的protobuf协议格式:
可以看到Protobuf协议是由关键字message定义各种对象以及对象中的各种属性和类型。
由上面两种结构可以看出,名称和字段以及字段的数据类型,使他们能在某种条件下共存。
本实施例就是设计了一种共存的方法,使两者能够共同提供各自的优点,来满足不同数据传输的业务场景需求。
为了达到共存的目的,在某个具体的事件或者服务中新增一种传输类型的定义,比如下面的事件部分结构中,我们可以增加一个content-type的定义,它的值为json类型:
或者比如在事件部分的结构中,增加一个content-type的定义,它的值为protobuf类型:
定义好传输类型之后,因为json中的数据类型和protobuf中的数据类型是不一样的。是json的类型还好,因为物模型默认都是JSON格式的,但是如果定义为protobuf类型,直接将protobuf的数据先一步通过protobuf协议进行序列化为字节,然后直接将字节作为int类型的字节数组进行传输。当判断传输类型为protobuf之后,将收到的字节数组再通过protobuf协议反序列化为数据即可。用物模型来表示为
比如我们调用一个服务service.addPerson,根据物模型的定义可知,它的传输类型是"content-type":"protobuf",数据的传输如下
这样就可以很好的解决JSON数据的传输过大,导致数据传输性能差的问题。
本实施例虽然是以标准物模型作为示例进行讲解的,但是也是适用于其他物模型的结构,其中示例中提到的content-type和bytes均可以根据各设计使用方自行更改名称。
还应理解的是,客户端在触发业务场景时,根据业务场景通过物模型构造事件和/或服务的请求消息体,然后根据请求消息体确定传输类型字段,在传输类型字段对应的值类型为json类型时,确定事件和/或服务对应的入出参的属性字段和类型,入出参为入参或出参,之后将属性字段和类型填充至入参或出参的值中,获得事件和/或服务传输数据体。
还需要说明的是,在传输类型字段对应的值类型为protobuf类型时,根据protobuf协议序列化参数数据,获得字节,将字节填充至入参或出参的值中,获得事件和/或服务传输数据体。
在本实施例中,参考图4,图4为本发明基于物模型的数据处理系统第一实施例的客户端与服务端交互流程示意图,图中需要先定义物模型,之后结合真实的事件和/或服务的场景要求增加传输类型字段
还需要说明的是,参数数据可以理解为[1,2,34,234,534,36,4,457,5]。
在具体实现中,第一、定义物模型,结合具体业务场景增加事件或服务,并对事件或服务,增加传输类型字段比如"content-type":"protobuf"或者"conten t-type":"json"。
第二、定义事件和服务的入参或出参,比如
/>
第三、客户端或服务端构造具体事件或服务的请求消息体,比如:
第四、以不同的通讯协议提交请求数据,比如使用http或tcp或mqtt。
第五、客户端或服务端编写具体的解析物模型代码,识别事件或者服务中的传输类型和参数字段。
第六、客户端或服务端根据不同的传输类型和参数字段进行不同的解析。
所述服务端2002,用于接收所述事件和/或服务传输数据体,根据所述事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构。
步骤S20:获取所述事件和/或服务结构对应的事件和/或服务中的传输类型字段。
在具体实现中,参考图4,服务端接收到客户端上报的事件和/或服务传输数据体时,根据事件和/或服务传输数据体中的事件名和服务名匹配物模型对应的事件和/或服务结构,之后获取事件和/或服务结构对应的事件和/或服务中的传输类型字段。
步骤S30:根据所述传输类型字段确定目标字段类型,并根据所述目标字段类型通过预设数据处理规则处理业务,所述目标字段类型为json类型或protobuf类型。
还应理解的是,预设数据处理规则包括json类型数据处理规则,还包括protobuf类型数据处理规则,以json方式继续按物模型中对应该事件和/或服务中定义的其他数据类型
进一步的,服务端根据传输类型字段确定值类型;在值类型为protobuf类型时,根据事件和/或服务名称匹配对应的protobuf属性结构体,并将事件和/或服务传输数据体中的字节值反序列化为对象;根据protobuf属性结构体和对象处理业务。
服务端在值类型为json类型时,对入出参属性和所述入出参属性对应的属性字段类型进行解析,以获取入出参属性值和属性字段类型值,入出参属性为入参属性或出参属性;根据入出参属性值和属性字段类型值处理业务。
在本实施例中,客户端用于将事件和/或服务传输数据体发送至服务端,服务端用于接收事件和/或服务传输数据体,根据事件和/或服务传输数据体匹配物模型对应的事件和/或服务结构,服务端还用于获取事件和/或服务结构对应的事件和/或服务中的传输类型字段,服务端还用于根据传输类型字段确定目标字段类型,并根据目标字段类型通过预设数据处理规则处理业务,目标字段类型为json类型或protobuf类型。相较于现有技术标准的物模型数据TS L文件格式为JSON,而JSON格式的可读性较强,但是它的性能稍差。在面对大量物联网设备传输的过程中,往往需要较高的传输效率和性能,而本实施例兼容了protobuf传输协议,相同大小的文件,可承载的数据量更大,从而直接提升传输的性能。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 基于深度学习的遥感影像建筑物提取方法及系统、存储介质、电子设备
- 基于无人车的障碍物分类方法、装置、设备以及存储介质
- 基于无人车的障碍物检测方法、装置、设备以及存储介质
- 基于三维模型的美妆方法、装置、电子设备和存储介质
- 基于模型的产品构建方法、装置、计算机设备及存储介质
- 一种基于物模型的数据推送系统、方法、设备及存储介质
- 基于UNet的半自动化的倾斜摄影实景模型建筑物单体化方法、系统、设备和存储介质