首页 » 软件开发 » Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发(部署边缘华为开发进程)

Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发(部署边缘华为开发进程)

乖囧猫 2024-07-24 14:40:19 0

扫一扫用手机浏览

文章目录 [+]

为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。
IoT边缘平台应用功能有自定义处理设备数据(即数据处理),自定义协议设备快速接入(即协议解析),IT子系统接入(即IT应用),并且支持容器化部署和安装包部署的方式。

1、操作场景

使用ModuleSDK开发插件应用,并以进程方式跑在服务器上。

2、代码解析

代码解析样例:

Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发(部署边缘华为开发进程) 软件开发
(图片来自网络侵删)
数据处理代码解析工业子系统接入代码解析协议转换代码解析OT数采代码解析3、注册节点

注册节点,请参照注册边缘节点。

4、设备建模&发放

请参照设备建模&发放。

5、项目打包

将集成ModuleSDK进行项目打包。

根据您的需求进行相关代码的开发,并将项目打包,以编辑器IDEA为例:

1.选中项目->右键open Module setting

2.Artifacts->单击+号>JAR->From modules with dependencies->模块选择monitor-app,选择monitorapp的Main入口类,注意MANIFEST.MF位置选择模块根目录->单击apply。

3.单击上方build选项->选择build Artifacts->monitor-app:jar->build

4.打包完成得到monitor-app.jar文件。
(如遇到错误(Invalid signature file digest for Manifest main attributes)请使用压缩文件进入metf目录删除.rsa和.mf文件)

6、制作插件包

1.插件包制作。

a.插件包格式要求如下:

插件包仅支持.tar.gz 、.tar或者 .zip格式。

插件包结构如下:

app.zip

├── .jar //可执行jar文件,必须

├── start.sh //启动脚本 必须文件 当前不提供参数方式启动

└── stop.sh //停止脚本 非必须

b.构建插件包。

以monitor-app为例,在项目打包后得到monitor-app.jar

在monitor-app.jar文件的同目录下创建start.sh,内容如下:

function log(){

echo "`date "+%Y-%m-%d %T"`: $1"

}

log "[INFO] start execut process."

#调试时可打开,确认sdk需要的环境能被获取

#echo "${device_id}" > test_enviroment.file

pwd

#更新环境变量,防止找不到java命令。

source /etc/profile

#运行文件在/var/IoTEdge/downloaded-job/run下面

java -jar ./monitor-app.jar > monitor_running.log 2>&1

将monitor-app.jar和start.sh一起压缩得到monitor-app.zip。

注意:

插件包升级时,会删除运行目录的所有文件,注意持久化文件的存储。
插件包的运行路径为{installer_dir}/IoTEdge/downloaded-job/run/{moduleId}/{appVersion}/。
当前插件包的大小限制为最大500M。
程序内对于文件的访问使用相对目录访问(因为程序的安装目录是不确定的)。
程序不允许包含后台运行的程序,可以包含多级进程,所有程序均为sh的子进程。
进程压缩包命名规范:英文字母或者数字或者“_”,”.” ,长度不超过64,不允许出现空格。

说明:

插件包为一层压缩结构,即插件包的压缩包解压之后直接为sh脚本所在目录的结构形式,不能多一层目录。
sh脚本为必须脚本,启动时默认调用该脚本进行启动,当前支持root用户以及非root用户(固定为1000用户,非root需要确定是否能够成功依赖系统库)启动,用户可以在start.sh脚本中自由修改自己的启动方式以及环境变量的修改等。
sh为非必须的脚本,但是用户如果需要优雅停止的话,需要在改脚本中书写自己进程的停止方式(文件监控、接口调用等)。
如果没有该脚本的话,默认对进程组先发送SIGTERM信号,如果进程组对该信号没有处理,达到最大等待时间则发送SIGKILL信号强制停止。
整个停止的最大周期为10s。

2.插件包上传。

a.开通对象存储服务OBS。

进程包上传方式需要开通对象存储服务OBS,请参考对象存储服务 OBS_快速入门。

b.上传进程包。

上传方式,请参照对象存储服务(OBS)。

注意:

请设置桶策略为【公开读】,如未设置请前往“OBS首页 > 单击桶ID > 访问权限控制 > 桶策略中设置”。

7、添加应用

以安装包部署方式为例,将应用程序打包成安装包文件,并上传到 对象存储服务(OBS)。

1.在IoT边缘单击创建应用,进入软件部署配置、运行配置,并确认发布。

2.在左侧导航栏,单击“应用管理”,选择“应用名称”进入页面,查看应用为“已发布”状态。

8、部署应用

在边缘节点安装成功后可部署边缘应用。

操作步骤

1.访问IoT边缘,单击“立即使用”进入IoT边缘控制台。

2.选择左侧导航栏“IoT边缘 > 边缘节点”进入页面。

3.选择您的边缘节点,单击“节点名称”进入节点详情页。

4.在左侧导航栏选择“应用模块 > 模块管理”页签,单击“部署应用”。

图1 部署边缘应用

5.根据页面提示填写参数信息后,单击“确认”。

图2 部署应用

表1 部署应用

参数名称

说明

功能用途

您可以根据实际情况选择:

数据处理:提供设备数据处理能力。

协议解析:提供设备接入能力。

本地子系统集成:提供IT子系统集成能力。

网关管理:扩展边缘节点的协议接入能力,当前支持Modbus,OPC-UA协议接入。

混合应用:包含数据处理、协议转换、子系统接入、网关管理、数据采集其中两个及以上功能的应用。

数据采集:提供OT数采能力。

边缘应用

在应用管理中创建的应用名称。

选择版本

在应用管理中创建并发布的应用版本。

模块名称

自定义。

6.弹出“操作成功”对话框,再单击“确认”返回部署边缘应用列表。

图3 确认

7.单击“刷新”,当应用的实例状态由“部署中”转为“运行中”表示部署成功。

只有应用版本是多部署的时候,且运行配置的网络类型是端口映射后,可在部署应用时,或应用后添加端口映射。

运行配置,请参考端点和部署配置。

注意:

标准版默认部署sys_edge_hub和sys_edge_agent,高级版默认部署sys_edge_hub。
标准版和轻量版默认部署$edge_omagent,在注册节点过程中可选择是否自动部署。
只有已发布的应用版本允许被部署。
如果应用添加时配置了支持多模块部署 同一个节点下是允许部署多次的。
应用支持的架构和边缘节点架构相同才能够部署成功。
如果应用需要AI加速卡,边缘节点没有AI加速卡将部署失败。
部署应用模块支持升级操作,可选择高版本也可选择低版本,目前只有Agent应用升级失败会回退到原版本。

点击下方,第一时间了解华为云新鲜技术~

华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0