IoT平台设计文档.docx

上传人:太** 文档编号:63301137 上传时间:2022-11-24 格式:DOCX 页数:19 大小:38.80KB
返回 下载 相关 举报
IoT平台设计文档.docx_第1页
第1页 / 共19页
IoT平台设计文档.docx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《IoT平台设计文档.docx》由会员分享,可在线阅读,更多相关《IoT平台设计文档.docx(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、loT平台设计文档一、产品管理4.产品管理41 .功能定义4.版本升级62 .设备统计6二、设备管理61.设备管理62,令牌管理83 .设备分组8.设备在线84 .下行指令8.设备历史95 .子设备9三、系统架构图9四、核心功能10.数据处理流程101 .产品模板12.产品定义182 .设备配置18.设备在线193 .设备统计20.设备分组204 .规那么策略21.数据推送配置225 .设备数据24其中复制功能可以快速创立类型相同名称、标识不同的物属性。(建议:物模型的管理可以通过TSL模型管理)(参考1) TSL模板管理(参考1)注:如果产品模板开肩校验功能,TSL模板导入到功能模板(物属性

2、) 中会自动停用TSL模板中没有包含的属性。创立产品点击创立产品连接,会自动基于当前产品模板相关信息以Copy的方式创 建产品信息。注:创立出来的产品编码会进行调整(由于产品编码全表唯一),运维 人员可以根据实际部署情况进行对产品编码进行调整。4.2.3 TSL操作流程产品定义4.3 设备配置功能简介对于设备物模型属性以及自定义模型属性管理,同时定义了数据解析模 型,使用者可以通过属性的定义明确了解设备相关上报数据内容。IOT平台为了满足复杂的生产环境需求,目前IOT平台设备属性数据采 用客户端采集并解析,相关的解析信息是在客户端连接服务端时获取, 并且后续的变更会定时推送到客户端。4.3.1

3、 解析规那么解析规那么:客户端上报到服务端的数据是字节数组,解析规那么采用DynamicExpresso.Core (参考 2)转换扩展参考data.ToUIntl6()data.ToBase64()data.ToUTnt32()data.ToUInt64()data.ToDateTime()data.ToBoolean()data.ToDouble()data.ToStr()data.ToHex()44.3接口说明接口信息(参考:附件1)Thing -上报设备属性接口Thing -获取设备属性接口设备在线主要是展示当前各设备在线状态设备统计基于产品维度的日活、7日活、30日活以及日新增、7日

4、新增、30日新 增设备总数。4.4 设备分组编辑设备类型分组字典信息。4.5 规那么策略功能介绍用户可以从产品维度和设备纬度分别设置规那么策略,系统会根据用户所 设置的规那么策略逐一校验设备属性字段是否符合预期阀值,并将到达阀 值的数据以事件的方式发送到事件队列当中。由事件队列消费端对事件 消息进行处理。规那么引擎方面,本系统引入了 DynamicExpresso.Core (参考地址: s:/github /dynamicexpresso/DynamicExpresso)组件,规贝表达 式采用简单的c#表达式编写。例:temp5表示temp属性的值大于5 及满足规那么要求。4.5.1 界面及

5、功能要点说明规那么编辑页名称:规那么名称必填产品信息:每个规那么需要关联一个产品ID或设备ID (最高优先级), 数据上报过程中会将上报的数据逐一校验规那么,筛选符合规那么的数据并 进行相关操作,如果事件通知、事件报警或服务调用等; 设备信息:匹配设备的规那么优先级最高。表达式:规那么判断逻辑动作:符合规那么的数据需要触发的后续操作;主要分为五类,事件通 知、事件告警、事件错误、服务调用、设置属性。数据:关联动作需要生成的消息通知模板,如发出事件报警,这里可以 指定消息报警模板内容。4.9 数据推送配置功能介绍主要对原始监测数据、报警数据、事件数据进行第三方转发,需要第三 提供相应的数据接口。

6、数据推送具体模型取决于监测数据上传时数据模型,接口会将相应数据 转换为json字符串作为三方接口入参。用户根据实际需要指定topic并且支持基于产品、设备、事件名称、事件 类型动态分发队列。4.9.1 推送方式主要支持:mqtts 两种方案。4.9.2 消息队列主题定义序号占位符号名称备注1productCode产品编号2deviceCode设备编号3eventType事件类型事件推送生效4name事件名称事件推送生效4.9.3 系统界设备数据4.9.4 功能介绍备主要分为原始数据、计算修正后数据、分钟统计、15分钟统计、小时 统计数据几个局部。设备上报的原始数据会经过特定的数据清洗规那么进

7、行分库、分表存储到指定库表当中,以便后续业务层系统进行使用。4.9.5 主要信息主要信息包括:设备编号、主题、数据原始报文。4.10 设备历史主要记录了各个节点的上下线信息、更新信息、令牌刷新、Socket连接 等等信息。4.11 设备事件功能介绍主要记录由设备端主动发出的事件消息,主要包括报警、通知、错误日志三个方面。4.11.1 系统界面设备服务4.11.2 功能介绍设备服务主要由用户通过接口或界面新增服务记录,系统会实时将服务 指令下发给相关边缘网关系统。网关设备在执行完相关任务后将相关的 执行结果通知服务端。4.11.3 系统界面客户端反应时间4.12 设备影子功能介绍对设备配置影子数

8、据进行管理维护,可以记录设备最新的完整状态信 息。4.12.1 系统界面设备信息4.12.2 功能介绍通过设备心跳将当前网关设备的实时运行状态信息上报至服务端,方便 运维人员对网关设备运行状态进行实时监控。该功能主要结合星尘监控 系统完成对系统的全链路监控。4.12.3 系统界面5应用管理5.1 应用系统应用密钥管理,可调用应用层接口,读写数据5.2 应用钩子拦截产品或设备指定动作,如上线下线,回调外方接口重要位置点的回调函数设置,触发某个动作时,回调业务层接口,可能 需要令牌验证网关NewLife.IoT6.1客户端配置lot.Client工程主要用于主设备对子设备的数据采集工作,支持 Wi

9、ndows,Linux64,Linux Arm等系统运行,通过ModBus等协议主设备下 挂子设备通道数据采集回来并上传至lotWeb平台。使用配置:1 .找到 lotClient 运行目录对应的 Config/ loTClient.config 文件2 .内容如下1.其中配置支持一机一密和一型一密两种方式。举例说明:当填写已创立主设备就直接填写设备的DeviceCode和 DeviceSecret即可,系统会自动完成鉴权上线建立通讯,然后拉取设备对 应产品属性及通道,进行数据采集及上传;如果设备未创立可以填写对应 产品的ProductKey和ProductSecret,系统会自动创立产品的主

10、设备,然 后下发配置证书,修改配置文件。暂时为了系统平安,默认主设备启用 状态为未启用,需要后台开启。特别说明:为了系统通讯平安,当A设备初次鉴权成功,A设备的对应 的唯一标识会进行lotClient的捆绑,此时即时别的设备拿到相同文件也 无法通过鉴权。反之如果需要更换解绑,请清空唯一标识。6.2 设备登录设备连入系统需要进行平安认证,通过lotClient的DeviceCode和 DeviceSecret及唯一标识进行鉴权,通过后可进行配置属性通道信息的下 载进入采集工作和数据上传工作。6.3 设备心跳设备心跳跟据服务器采样周期,对设备运行健康参数进行采集,并回传 至lotWeb。其中包括:

11、设备内存,可用内存,应用所在磁盘容量,应用 所在磁盘可用容量,Cpu使用率,温度,电量,开机时间,IP,设备 UTC时间,延时信息。6.4 自动更新检查设备可用更新信息,发现更新,执行更新,实现自动更新下发的工 作。自动更新流程,下载Zip更新包,解Zip压缩包,备份当前程序,清理 Exe、Dll等文件,覆盖更新文件,升级后附加命令,验证更新,成功清 理备份文件,失败异常上报,停止更新。6.5 物模型管理属性集合,事件队列6.6 子设备管理子设备拉取,设备通道创立及维护6.7 Modbus 协议目前支持 ModbusRTU. ModbusTCP 协议6.8 自定义协议如何根据协议接口,实现自定

12、义协议7数据平台主要对第三方应用系统提供一些基础的数据查询接口服务,同时集成了 一些常用数据统计数据查询接口。数据统计依赖于蚂蚁调度服务平台。7.1 原始数据接口基于设备和时间区间查询原始数据,可选传感器7.2 降采样算法LTTB、LTOB、平均值采样、最大值采样、最小值采样7.3 插值算法线性插值、双线性插值、拉格朗日插值7.4 数据清洗蚂蚁调度清洗数据7.5 标准数据接口基于设备和时间区间查询MySql中清洗后数据,可选传感器7.6 通用数据接口基于设备和时间区间查询MySql设备数据,可选传感器7.7 消息队列实时推送实时推送设备数据、设备事件、设备上下线8部署安装8.1 SSO统一登录

13、使用魔方作为SSO系统,用于统一控制IoT管理平台、星尘管理平台、 蚂蚁管理平台等各个Web端的统一登录。同时,SSO也可能作为用户验 证的链路,桥接到其它SSO登录中心。部署要点:1 .编译最新魔方源码中的CubeDemoNC,直接作为应用部署,要求.NET6.02,配置文件appsettins.json,配置链接字符串Membership和Log,指向 MySql 库的 Membership (新建库)。1 .启动并访问SSO系统,首次登录可以用admin/admin进去,也可以使 用第三方登录(新生命用户中心),第一个用户将会作为系统管理 员,同时禁用admin.正式部署时,需要关闭SS

14、O的第三方登录,魔方设置,OAuth设置, 禁用所有1 .修改系统名称为XX用户中心,魔方设置,系统设置,显示名称.翻开应用系统功能,菜单,找到App应用系统,修改为可见加必要, 刷新后台。2 .新建三个应用(StarWeb/AntWeb/IoTWeb),并设置密钥,供后续使 用。8.2星尘服务端星尘主要用于应用性能监控以及节点监控,还有可能使用配置中心。部署要点:1.编译StarServer和StarWeb,部署到服务器,配置文件 appsettings.json,配置连接字符串Stardust,指向MySql库的 Stardust (新建库)。其它链接使用MapTo映射。1. StarSe

15、rver 默认端口 6600,可在配置文件 Config/StarServer.config 中 修改Port。记好服务端地址,其它多个工程需要用到。如果是多节点 集群部署,需要修改TokenSecret为同一个。1. StarWeb启动时需要指定端口,例如dotnet StarWeb.dll urls二 :*:6680/,根据实际情况使用域名和端口。2. StarServer和StarWeb可以不在同一台服务器,共用数据库即可。如 果使用SQLite数据库,那么需要在同一台服务器。如果是集群部署,需 要确保各个节点的配置一致,特别是令牌密钥。3. StarServer 的配置文件 appse

16、ttings.json,其中 StarServer 项配置监控 地址,默认指向自己 : 127.001:6600,如果前面修改了端口,那么 这里也要修改。4. StarWeb的配置文件appsettings.json,其中StarServer想配置监控地 址,指向StarServer所在地址。这里也可以不配置,直接留空,此时 将自动通过本机星尘代理StarAgent发现。5. StarServer 的配置文件 Config/StarServer.config 中的 WebUrl,指向 StarWeb所在地址,用于生成告警到钉钉群或企业微信群的消息链 接。6. 访问StarWeb,首次使用第三方

17、登录进入,然后配置SSO为前面SSO 地址,以及StarWeb应用和密钥。7. 3星尘代理星尘代理用于守护应用进程、监控服务器节点性能。部署要点:1 .编译StarAgent,或者在线下载 o.部署到每一台服务器,以管理员(Linux上是sudo)启动1 .按键“s”使用星尘,输入StarServer服务端地址,例如 :/10.0.0.10:6600o.按键“2”安装服务,Windows和Linux相同。2 .按键“3”启动服务,等同于Windows下在系统服务中找到StarAgent 并启动,Linux 下使用命令 sudo systemctl start StarAgent 启动。3 .访

18、问星尘管理平台StarWeb,节点在线页面应该可以看到已安装节 点Q1.配置守护。StarAgent具备守护本机应用的能力,修改配置文件 Config/StarAgent.config,填写应用名、文件名、参数、工作目录、 自动启动等。由于StarAgent已经安装成为系统服务,能够随系统启 动。因此,被守护应用,在StarAgent启动时,也将会启动拉起。如 果目标应用进程退出,在AutoRestart=true是,StarAgent将会再次拉 起。1 .使用StarAgent守护所有应用! ! !包括SSO、StarServer. StarWeb. AntServer、AntWeb、IoT

19、Servers loTWeb、loTData 等。8.4蚂蚁调度蚂蚁调度用于数据计算。部署要点:1 .编译AntServer,部署到服务器,默认端口 9999,配置StarAgent守 护,AntServer将会自动接入星尘监控。记住AntServer地址,计算型 应用中需要使用。2 .编译AntWeb,部署到服务器,需要手工指定端口,配置StarAgent守 护,AntWeb将会自动接入星尘监控。3 . AntServer 和 AntWeb 酉己置 appsettings.json,指向同一个 MySql 库 AntJob (新建库)o.访问AntWeb,首次使用第三方登录进入,然后配置SS

20、O为前面SSO 地址,以及AntWeb应用和密钥。8.5 IoT平台IoT平台包括服务平台、管理平台、数据平台和边缘网关。11 .设备历史25.设备事件2512 .设备服务26.设备影子2713 .设备信息28五、应用管理301 .应用系统30.应用钩子30六、边缘网关30.客户端配置301 .设备登录31.设备心跳322 .自动更新32.物模型管理333 .子设备管理33. Modbus 协议 334 .自定义协议33七、数据平台331 .原始数据接口 33.降采样算法332 .插值算法33.数据清洗333 .标准数据接口 34.通用数据接口 344 .消息队列实时推送34八、部署安装351

21、 . SSO统一登录35.星尘服务端372 .星尘代理39.蚂蚁调度413 . IoT 平台 42部署要点:I .编译loTServer,并部署到服务器,默认端口 1881,配置StarAgent 守护。2 .编译loTWeb,并部署到服务器,配置StarAgent守护。3 .编译loTData,并部署到服务器,配置StarAgent守护。4 .编译loTClient,并部署到服务器,配置StarAgent守护。5 . loTServer/IoTWeb/IoTData,配置文件 appsettings.json 使用相 同的数 据库链接1。指向MySql数据库IoT (新建库)。6 .访问lo

22、TWeb,首次使用第三方登录进入,然后配置SSO为前面SSO 地址,以及loTWeb应用和密钥。1. loTClient 配置文件 Config/ToTClient.config,修改 Server 指向 IoTServero2. loTData 配置,指向 AntServero部署 loTServer编译源码、修改配置、打包文件、发布应用、设置守护部署 loTWeb编译源码、修改配置、打包文件、发布应用、设置守护部署 loTClient编译源码、修改配置、打包文件、发布应用、设置守护部署 loTData编译源码、修改配置、打包文件、发布应用、设置守护9相关资料附件1 : Server_Api

23、.html平台服务端接口资料附件2 : SSO注册帐号说明参考1 :阿里云IOT平台TSL模板介绍? spm=5176.2121330 3.J_6704733920.7.1cle3eda3CMdls&scm=20140722.S_help%40%40%E6 %96%87%E6%Al%A3%40%40213902._.ID_help%40%40%E6%96%87% E6%A 1 %A3%40%40213902-RL_tsl-LOC_main-OR_ser-V_2-P0_0参考 2 : DynamicExpresso.Core 规那么引擎 s:/github /dynamicexpresso/Dy

24、namicExpresso参数名称编码密钥分类节点类型数据格式协议连网方式动态注册固定编码认证类型描述九、相关资料44附件1 : Server_Api.html平台服务端接口资料441产品管理设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的ProductKeyoL1产品管理产品作为设备的集合,决定了设备所具有的功能,主要字段如下:描述产品的友好显示名称即ProductKey,全局唯一即ProductSecret,用于一型一密的认证方案比方边缘网关、大气监测设备分为直连设备、网关设备、网关子设备数据传输格式,Json设备接入网关的协议类型,ModbusRTU、Modb

25、usTCP. OPC-UA. BLE、SRMPMQTT、WiFi、蜂窝 Cellular(2G/3G/4G/5G)、 以太网、LoRaWAN.其它每台设备烧录相同的产品证书,即ProductKey和 ProductSecret,云端鉴权通过后下发设备证书UUID相同,设备编码不同,且固定编码,那么认为 是全新设备支持DTU直传用来描述产品信息产品下可查看该产品所有设备、进行功能定义、版本升级、以及设备统 计。1.2 功能定义产品所具有的功能,类似于其它平台的物模型。功能定义,多属性的数据格式,决定如何解析生成属性数据。可以从标 准物模型导入。功能定义分为两层,一个产品包含假设干个模块,模块可以

26、导入,也可以 自定义模块。每个模块包含多个属性、事件、服务。请注意,网关型产品,因为不确定会添加什么设备,因此没有功能定 义。而连接网关的设备,通过配置通道,来定义如何采集数据以及解 析,通道仅用于自动采集。功能定义的主要字段如下:参数描述产品功能所属产品模块功能分组,分为默认模块和自定义模块种类分为属性、事件、服务名称功能名称标识功能唯一标识,比方Temperature访问模式只读、读写、只写必填可用于服务的参数校验数据类型可以是基础数据类型或子设备产品。基础数据类型有小数、整数、文本。 选择子设备产品时,将本产品按照子设备产品去解析长度文本类型的最大长度最小值数字类型的最小值,比方40最大

27、值数字类型的最大值,比方120步长数值类型的最小间隔最大间隔数值类型的最大间隔,超过该值时被抛弃单位数据的单位,比方。C单位名称数据单位名称,比方摄氏度调用方式服务的调用方式,同步sync,异步async地址用于解析原始数据,原始数据的第儿个字节大小用于解析原始数据,占原始数据几个字节交换16用于解析原始数据,字节交换,12转21,默认为false,大端字节序交换32用于解析原始数据,字节交换,1234转3412,默认为false,大端字节序掩码读取线圈时使用缩放因子n*scaling+constant常量因子n*scaling+constant描述功能描述功能定义不仅描述了产品应该具有什么属

28、性、事件、服务,还描述了使 用者应该怎么去使用。对接物联网平台的客户端,可以导出产品的物模 型,根据定义好的属性和相应格式上报数据,可上报的事件以及提供的 服务,都按照物模型来定义。用于数据采集类的网关,可以根据设备关联的通道,设置采集通道,以 便传感器数据能正常采集并上报至平台。1.3 版本升级边缘网关客户端自动更新,升级管理。平台维护产品版本,可上传新的版本,通过指令下发至客户端进行升 级,客户端收到升级包下载url,自行下载升级。如果处于业务高峰期, 可在空闲时间进行下载升级。1.4 设备统计对每个产品下设备进行每日统计,统计维度包括以下几点:属性描述总数截止今天的全部设备数活跃数最后登

29、录位于今天设备数7天活跃数最后登录位于7天内的设备数30天活跃数最后登录位于3()天内的设备数新增数今天创立的设备数7天新增数7天内创立的设备数30天新增数30天内创立的设备数注册数今天激活或重新激活的设备数最高在线今天在线设备最高数量最高在线时间最高在线发生时间点2设备管理2.1 设备管理归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证 书DeviceName。设备可以直接连接物联网平台,也可以作为子设备通过 网关连接物联网平台。设备接入平台之前,需要通过注册和认证。接入物联网平台的设备身份 注册方式有两种。 一型一密:同一产品下设备烧录相同产品证书(ProductKey和 P

30、roductSecret)。需要开通产品动态注册功能,如果没有开启此功 能,设备会注册到平台,但是设备状态是禁用状态。动态注册又分为 以下两种情况: 预注册:需要在平台创立设备,这种认证类型的设备在注册到物联网 平台需要携带 ProductKey、ProductSecret、DeviceName 二个参数, 平台检验通过后,为设备颁发DeviceSecret。此后,设备就可通过设 备证书 ProductKey、DeviceName 和 DeviceSecret 进行登录,登陆成 功平台会下发令牌即DeviceToken。设备与平台的后续通信通过令牌 来鉴别身份。 免预注册:不需要在物联网平台预

31、先创立设备,DeviceName可以直 接从设备中读取到的ID,如设备的MAC地址、IMEI或SN码等。平 台发现该设备为注册,那么会进行自动注册,并颁发DeviceSecret。设 备再通过ProductKey s DeviceName和DeviceSecret进行登录获取令 LLrfci 牌。 一机一密:这种方式要求预先在平台注册设备,获取设备证书信息 (ProductKey、DeviceName、DeviceSecret) o 然后将设备证书烧录 到设备固件,设备联网后直接通过设备证书进行登录获取设备令牌。 此方式平安性最高,推荐使用。设备与云端通信携带令牌,通过设备鉴权后接入平台,后续

32、也可进行设 备注销。2.2 令牌管理设备连接平台,通过鉴权后,会得到一个token令牌。此令牌用于访问平 台的各个接口。设备后续的通信均需携带令牌进行认证。当令牌过期, 客户端可通过心跳机制对令牌进行更新。平台会记录每个设备使用的 token,以及刷新记录。通过使用令牌,可以防止非法设备访问,有效保护通信平安。2.3 设备分组物联网平台支持建立设备分组,分组中可包含不同产品下的设备。通过 设备组来进行跨产品管理设备。2.4 设备在线设备接入平台之后,设备在平台的状态显示为在线,建立连接后需要一 个心跳机制来保持这种状态,设备需要定时发送心跳消息到平台以保持 活跃。心跳周期一般设置为60秒,心跳

33、除了刷新在线状态,还会刷新令牌。如 果超过1.5倍心跳时间没有心跳,平台会将设备置为下线状态。2.5 下行指令所有下行指令由平台下发至设备,设备与平台之间有WebSocket长连 接,基于消息队列实时向终端设备推送指令。每条消息均有唯一消息标 id,指令响应结果也包含下行指令携带的消息id,确保响应消息与下行 指令一一对应。2.6 设备历史设备历史记录设备上线下线等操作,按年分表。该历史不仅详细记录了 平台对设备的所有操作,同时还有操作详细内容,以及操作成功状态。 甚至还有追踪标识,还原整个调用链。2.7 子设备由于传感器子设备不能直接连接平台,或者需要拓扑关系管理,这时候 设备可以作为网关子

34、设备,连入网关,由网关代理连接平台通信。业务 平台给子设备发送消息时无需感知物理物理拓扑结构。2.8 架构图功能4.1 数据处理流程数据流程:lotClient = lotServer = lotData分别是数据采集/上报,数 据接收/解析/存储,数据转发三个阶段。4.2 产品模板功能简介预定义产品模板及产品功能模板,用户可以通过产品模板快速创立新的 产品信息。该功能以阿里云IOT平台的TSL为基础(参考1),并根据实际业务场 景进行扩展,用户可以通过TSL快速编辑管理产品模板功能定义、产品 功能定义(包括:属性、服务、事件)。4.2.1 界面及功能要点说明 模板信息列表 新增产品模板信息模

35、板名称:基于当前模板生成的产品,名称会使用模板名称。节点类型:主要分三类,分别为网关设备、子设备、直连设备,其中网 关设备不能定义功能模板(物模型)。数据格式:目前支持Json 协议类型:目前默认实现了 Modbus相关协议,后续开发人员可以根据二次开发情况自行扩展。启用:该产品是否启用以及参与数据解析。定编码:用户判断自动接入的设备是否被自动注册为新设备,主要用 于设备的自动身份识别,配合一物一码使用。校验:主要用于校验TSL模板与产品关联的物模型信息之间一致性,启 用状态TSL模板导入过程会强制校验当前产品模板或产品所关联的功能 模板/功能定义(物属性),TSL模板中不存在的功能定义将被停用;反 之TSL模板导入只新增或更新TSL模板中涉及的功能模板/功能定义。 模板类型说明只有子设备和直连设备可以定义功能模板,网关设备不涉及数据采集及 解析,所以不能定义功能模板。 功能模板(物属性)列表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com