“代理服务” 应用形式上也是 MixIOT 体系的标准应用形式:
“代理服务” 应用有两个板块,“代理服务项目” 板块和 “代理记录” 板块。代理服务项目板块是管理代理服务项目的;而代理记录板块是记录代理执行结果的。
(一)代理服务项目
现在来创建一个代理服务项目。选择 “+添加”:
除了代理服务项目的名称、别名和描述,代理服务项目需要选择 “委托应用”。
“代理服务” 应用是一个受托代理形式,也就是说,是 MixIOT 的应用委托 “代理服务” 来实施一个代理服务。
我们只需要选择某一个应用就行。在这里选择管理 MixIOT 数据终端(Aprus 适配器)的应用——“终端管理”。
当选择委托应用是 “终端管理” 后,再看一下 “代理事件” 都有什么?
对 “终端管理” 应用委托的代理服务来说,代理事件只有两项可以选择:“终端上线” 事件和 “终端下线”事件。
“代理事件” 是代理服务要去 “盯着” 个应用的具体的特定的事件。
如果我们的选择是这样的:
那么,这个代理服务项目的具体的含义可以这样来诠释:
这个代理服务项目是 “终端管理” 这个应用委托的,该代理服务盯着的是 “终端下线” 这件事,也就是适配器断网掉线。
如果创建了这样一个代理服务项目,那么,一旦有适配器断网掉线,这件事就一定会被 “代理服务” 的这个代理服务项目捕捉到。
所以,我们现在应该理解,代理服务实际上代理的是“ 盯着某应用的某事件”。
确定了这个代理项目所代理的事件是终端下线事件,那就可以做进一步的条件设定:
这里可以指定的条件有两个,分别是 “终端编号”、“终端名称”。
我们可以进行条件的设置,假设设置是这样的:
这个代理服务项目,实际上就是只盯着编号为 AX20230423201 的终端下线这个事件。 如果没有这个条件,那么这个代理服务项目就会盯着任何一个终端下线事件。
代理条件除了默认的选项,还可以自定义选项:
可以把 “终端管理” 应用中,数据终端的任何一个 “字段” 作为自定义的代理条件:
不同的委托应用以及不同的代理事件,都有哪些跟代理事件相关的字段呢?可以参考如下的《代理事件字段表》:
可以使用或增加自定义代理条件,对我们需要的代理事件进行更精准的捕捉。
在代理条件中,选择 “自定义”,字段可以输入我们需要的字段,比如:
可以用自定义字段 last_online_time(最近一次上线时间)作为条件:
比如,“last_online_time” 大于 “2024-05-15 12:00:00”,意思是最近一次上线的时间是在 2024-05-15 12:00:00 之后。
如果字段是关于日期时间的,那么逻辑符号的含义应该这样来理解:
逻辑符号 | 是否可用 | 含义(中文) | 含义(英文) |
---|---|---|---|
包含 | 不可用 | ||
不包含 | 不可用 | ||
等于 | 可用 | 在…时刻 | at |
不等于 | 可用 | 不在…时刻 | not at |
小于 | 可用 | 早于 | before |
不于等于 | 可用 | 不晚于 | no later than |
大于 | 可用 | 晚于 | after |
大于等于 | 可用 | 不早于 | no earlier than |
(二)代理执行
代理执行的意思是,如果代理服务项目捕捉到了应用所委托的事件,那让代理服务做什么。
代理执行是一段脚本,可以按照代理执行的脚本规则来编写执行脚本。当然,对MixIOT的新手来说,还是推荐使用界面化的工具:
点击 “+执行任务”,我们可以添加多个代理执行。
代理执行的任务有四种,分别是:App消息推送、手机短信推送、电子邮件推送和反向控制。
(1)APP消息推送
如果我们选择App消息推送,则需要选择某个信使通道、指定 App消息的信息的接受人、标题以及消息内容。
这个时候,信使通道会列出所有 App消息推送的服务通道,包括公共服务的和自主定义的。信使通道是我们曾经在 “信使服务” 应用中创建好的通道。
这里可以选择的通道有两个:
可以选择其中某一个。
接受用户也是直接从列表中选择:
这里是可以多选的,也就是说,App消息可以同时推送给多个接收者:
App消息推送的标题和内容,我们可以根据实际需要来编写。
编写消息标题和内容的时候,可以使用宏变量。
比如,在推送消息的标题是这样写的:“请注意!数据终端$$name掉线了!”;
消息内容是这样写的:“请注意,编号为name,断网掉线。断网掉线后,再无数据发送到 MixIOT 平台,请及时处理!”
如果“佳华A-201”掉线了,那么这个消息就会这样推送:
标题:请注意!数据终端佳华A-201掉线了!
内容:请注意,编号为AX20230423201的数据终端(Aprus 适配器)佳华A-201,断网掉线。断网掉线后,再无数据发送到MixIOT平台,请及时处理!
(2)手机短信推送
第二种执行方式是手机短信推送:
可选的通道只有一个公共服务通道:
选择这个通道的时候就应该知道,这是一个收费的公共服务通道,也就是说,代理服务执行一次手机短信推送,就会给客户进行一次记账。
手机短信的接收用户,也可以直接选择:
除了 MixIOT 在册的用户之外,如果需要的话,还可以直接指定接收手机短信的手机号:
这里可以指定一个手机号或者多个手机号。
手机短信的内容也是可以根据实际需要来编写:
在手机短信消息内容中,同样可以使用宏变量。
(3)电子邮件推送
第三个代理执行方式,是发送电子邮件:
跟 App消息推送和手机短信推送一样,选择邮件通道、邮件接收人。除了 MixIOT 注册用户外, 也可以增加 MixIOT 域外的电子邮件接收者。
邮件的标题和内容,也可以使用如宏变量uid(数据终端编号)和name(数据终端名称)等宏变量。
我们可以看一下,“终端管理”委托应用的终端上线、下线代理事件用到的宏变量替换:
委托应用 | 代理事件 | 代理执行 | 宏变量 | 替换 |
---|---|---|---|---|
终端管理 | 终端上线 终端下线 |
App消息推送、手机短信推送、邮件推送 | $uid $name $datetime |
数据终端(适配器)编号 数据终端名称 终端上线时间 |
有了这些宏变量的使用规则,就能把推送的消息做的很像样子, 比如可以这样写:
“编号为$uid的数据终端($name)在$datetime断网掉线。请及时处理!”
这个信息,就可以把数据终端断网掉线的事情说的明明白白。
(4)反向控制
第四种代理方式,是反向控制。
使用这种执行方式,需要编写反向控制脚本:
如果执行的反向控制是一个单反向控制,那脚本的规则是:
也可以批量执行反向控制,脚本规则是:
需要说明的是,使用反向控制执行需要特别谨慎。
(三)创建代理服务项目
使用“代理服务”应用的基本方法,就是通过创建代理服务项目的方式来达成我们需要的代理目的。这是因为一个对象在运行过程中,会产生大量的实时数据,是无法完全依靠人工去盯着这些数据的。因而,正确且合理使用“代理服务”应用,可以解决很多问题,大大提高工作效率。
这里需要说明的是,代理服务在MixIOT系统中的算力消耗可以用这个公式来评估:
其中,GVCPC
是(General Value of Computational Power Consumption)总算力消耗评估值,Np
是(Number of Projects)代理项目总数;Ei
是第i个代理服务项目中的代理执行项数。
我们不在这里详细推导这个公式的根由,但我们需要了解这个公式的大概意思是,我们尽可能减少代理项目,让一个代理项目进行更多的代理执行。
比如“数据终端下线”这个事件的代理服务,有两种做法:
做法一,可以做成四个代理项目,代理的内容是一样的,每个代理只设置一个代理执行,一个代理执行App短消息的推送,一个执行手机短信的推送,一个执行邮件的推送,一个执行反向控制。这种做法的GVCPC=24+4=16+4=20。
做法二,只做一个代理服务项目,这个服务项目中包括四个代理执行项,分别是App短消息的推送、手机短信的推送、邮件的推送和反向控制。这种做法的GVCPC =21+4=2+4 = 6, 很显然要低于第一种做法的20。
但是,我们也不能因噎废食,有些情况下需要分开的代理服务项目,那也只能分开。下面的例子就是这样,因为代理执行的区别,同一个内容就必须要创建多个代理服务项目。
理解这个观点非常重要,这是能不能用好代理服务应用的关键。
(1)创建数据终端下线的代理服务
我们为 “佳华电站” 创建数据终端下线(断网离线)的代理服务。
这个代理服务,只针对 “佳华电站” 的数据终端,我们可以通过增加一个代理条件 “终端名称包含佳华” 来实现这个目的,因为佳华电站的终端的名字都包含有“佳华”字样:
为什么要为佳华电站的数据终端(适配器)去创建断网掉线的代理服务呢?我们往下看:
因为我们创建的这个代理执行,也就是App消息推送规则是:当佳华电站的适配器断网掉线的情况发生后,App消息只推给佳华电站的主管(陈大明)和工作人员周雪、赵思曼以及集团的工作人员孙亚男。
这是一个合理的做法,因为山西佳华电站的数据终端出问题,这个消息即便发给贵州奔腾电站的主管,并不能解决问题,可谓远水解不了近渴。
代理执行是两个,一个是App消息推送:
另一个是手机短信推送,只推送给佳华电站的主管工作人员:
保存后,这个为佳华电站数据终端掉线的这个代理就算完成了。
代理服务项目创建完成后,默认是停止运行的。
我们可以通过项目的“启动”操作,让这个代理服务项目动起来。
代理项目运行起来后,我们就只等待结果就行了。
前面,我们为佳华电站的数据终端断网掉线设置了代理服务项目。自从有了这个代理服务项目,佳华电站的主管陈大明、工作人员周雪、赵思曼,就不用再跟之前一样,天天担心适配器什么时候会没数据了。
当然,我们也可以为奔腾电站和粤海电站创建数据终端断网掉线的代理服务。
(2)代理记录
代理服务项目启动后,一旦委托代理应用出现所设定的代理事件,同时满足设定的代理条件,那就会立即实施一次代理执行。
所有的代理执行都可以在 “代理记录” 板块里面看到:
如果代理执行使用的是收费的公共服务通道,那么,MixIOT 就同时会把这个使用的费用进行记账。换句话说,,公共服务通道收费都可以在 MixIOT 的用户账单里面找到答案。