MASA Stack 1.0 实际篇

产品智能化

产品智能化的革新怎么做?

咱们以采纳运营商网络场景的物联网架构举例,如图从左到右,在设施端咱们研发了一款净水行业通用的物联网盒子,它带有各种传感器,如TDS、温度、流量、漏水检测、水压等传感器,通过挪动的蜂窝网络实现数据通讯,并有肯定的边缘计算能力,能实时收集数据并监测滤芯寿命,保障用户用水平安。之后数据通过OneNET网关对接专用云上的MASA IoT,也就是咱们的 IoT中台,它负责买通前台小程序、设施,以及MES、CRM等后盾业务零碎,数据最终汇聚到数仓进行剖析应用。

通过对家庭末端水质实时检测、用户用水习惯采集,一直加强公司产品研发及售后服务能力;通过对大数据分析,建设滤芯寿命算法模型,为每个用户量身优化滤芯寿命,大大晋升了用户体验;通过用户画像,为后续精准营销,助力公司继续利润增长。

性能架构图

咱们通过设施接入>设施装置>设施监控>耗材购买>订单履约,5个环节实现了整个业务闭环

物联网平台

设施接入次要通过咱们的物联网平台,物联网平台有9大功能模块

首先设施主控板在PCBA工厂家生产时须要先注册到咱们的IoT平台上,而后通过检测工装实现各种线路板的可靠性的检测,平台通过设施核心来治理所有注册到IoT平台的设施,告警核心配置针对不同设施和场景的分级告警,OTA模块能够治理设施软硬件版本,下发对设施进行强制OTA或者用户手动OTA等操作

产品核心能够治理各种产品类型和耗材,配置产品的使用者名单,产品各种固件的绑定关系等

通信协定定义了设施与平台的通信数据结构,能够解析不同产品的协定字段,平台可针对特定字段设置自定义的告警规定

SIM卡核心用来治理所有设施的物联网卡,监控流量耗费,监控账单余额等

模拟器就是用来帮助软硬件开发,在设施没有开发进去之前进行测试和验证的工具。

业务端APP

设施装置是通过业务端App实现,技工应用设施装置模块提供的性能,通过蓝牙或者4G等形式给设施激活,更换滤芯等操作

代理商能够在设施治理模块下查看他名下销售的设施

租赁业务治理租赁的合同,治理账单和租赁的设施等。通过客户治理模块来治理终端用户,保护用户档案

商机报备能够注销潜在客户,并锁定客户

员工治理模块能够治理代理商的人力资源,包含技工,助理、业务员等角色

订单治理就是查看订单的状态,发货收货的跟踪,退换货等

产品核心就是查看咱们所有在售产品的宣传材料,装置视频,产品手册等

客户端小程序

面向终端用户的利用,采纳无需装置,开发成本更低的微信小程序实现

首先须要把设施和微信用户绑定,绑定之后就能够通过小程序的各种性能监控和管制本人的设施,如果是商用机的租赁用户,还能够通过租赁模块查看租赁合同,查看付款打算

当然还有通用的一键报修和设施维保的性能。针对云商城的微信小程序,还有目前比拟风行的直播电商和社交电商经营模式撑持

经营后盾

除了惯例的实现耗材和商品的购买,实现出库发货,退货,售后等订单履约的行为之外,还有跟前端小程序配合的营销经营治理和直播治理,后盾能够治理所有的会员,及财务管理性能。

MASA Stack 撑持场景

MC 音讯推送

从业务场景来讲能够大体分两类:

1、 配合告警的推送

因为告警反对分级解决,个别级别的告警,比方滤芯寿命行将到期,会以短信或者音讯推送的模式告诉用户,流量卡流量行将耗尽,会告诉具体后盾业务人员,对于级别较高的告警,比方漏水告警,会触发人工解决,水质异样也会告诉后盾业务人员,可能还会告诉客服人员分割客户,收到水质异样的告警,后盾业务人员会告诉负责该区域的技工上门培修检测等等

2、业务音讯

例如工单任务分配,装置派工,培修派工等就具体告诉到负责对应区域的技工。例如商用机代理商买断业务中,代理商在App进行装置派工,技工将会收到App的告诉和站内信。对外租赁业务中,当租赁缴费日期间隔预设规定工夫范畴内,主动给客户发送一条租赁缴费揭示短信等等

从开发角度来讲 MC推送反对邮件,短信,站内信,App的音讯推送,在MC中配置好对应渠道的音讯模板和题目,而后就能够在业务代码填充模板并间接触发推送,或者联合调度工作进行推送,和咱们很相熟的应用各大平台短信模板的流程是一样的 

Scheduler任务调度

咱们IoT平台的净水设施蕴含很多类型,对于净水器设施调度各种寿命的计算和解决工作非常复杂,因为不同品种的滤芯,不同品种的设施计算形式不同,对滤芯寿命到期或者残余寿命过低的解决策略也不一样,租赁设施须要锁机,C端设施须要上午10点定时揭示用户。还有设施的强制OTA降级工作,以及各个业务零碎数据的同步。在云商城我的项目中,还须要定时的去敞开超时的订单等业务。

定期风控查看场景,在云商城我的项目中,咱们常常会搞一些促销的流动,有些用户会利用咱们各种优惠福利的破绽,或者利用零碎Bug,来薅平台的羊毛,所以须要制订一系列的风控查看规定,定期去检查用户的数据,发现异常及时告诉业务人员。在IoT我的项目中,咱们也会制订针对于设施状态的风控查看,避免有人破解咱们的设施,或者设施自身异样导致的频繁高低线,大量耗费流量等状况。

咱们对于任务调度的需要是十分多的,所以咱们须要一种很直观的形式观测各种工作的执行状况,避免脱漏一些要害工作的执行,或者反复执行了一些工作。传统的定时工作零碎是不足调试和验证的伎俩,可能过了很长时间才发现某个工作并没有依照过后设计的周期或者程序正确执行。

MASA Stack的 Scheduler能够灵便的配置各种运行策略比方工作的串行、并行,以及失败后的解决形式等,工作的成功失败咱们不须要再看日志,各种工作的进度和状态都能够高深莫测,能够很分明的看到工作上一次执行的工夫和后果以及下一次打算执行的工夫。并且Scheduler反对集群的弹性扩大,如果资源压力过大,只须要增加节点就能够了。所以无论你采纳哪种开发语言和架构,当初无需在代码中编写工作程序,在对应的业务场景中只须要通过HTTP或者Dapr的形式触发即可,而且也不必放心业务简单问题,因为Scheduler反对上传代码或者压缩包的形式运行。

Auth权限

咱们的业务后盾页面采纳MASA Blazor实现,能够很容易的通过增加标签的形式管制菜单或者按钮的权限,将须要权限爱护的元素外层套上标签即可。对于WebApi场景只需在接口增加个性并配置对应的用户组或者角色即可。IoT后盾各种角色权限的调配,只须要业务人员在Auth后盾进行简略配置就能够,而且立刻失效。Auth后盾配置菜单权限来管制用户在业务平台中可见的菜单构造,也能够通过配置元素权限来管制菜单中的元素(按钮、组件、布局等),配置Api权限来爱护业务服务的Api。Auth能够很灵便的配置页面的所有元素的权限管制。

Auth对用户的权限配置分为扩大权限、角色权限、团队权限,比方能够在生产环境能够配置咱们开发团队只能看到零碎的配置,然而无奈看到具体的业务信息,如果业务人员有须要,能够长期赋予测试人员一些权限,帮助排查问题。解决问题之后能够立刻关掉相干权限。

Auth第三方平台目前内置反对Github、LDAP,可不便对接任何实现OAuth协定的第三方平台,反对热更新性能,配置第三方登录后毋庸重启服务。Auth还反对自定义登录注册页面配置性能,能够依据业务平台的需要来配置登录/注册窗口的元素,比方反对哪些第三方平台登录、减少身份证号、邮箱、昵称文本框等等,作为开发人员,只须要通过简略的配置就能够实现功能丰富的登录和注册页面。

DCC业务配置

1、业务开关:比方滤芯到期强揭示的计划的开关

2、系统配置:比方SIM卡流量判断阈值、指令下发重试次数,租赁到期须要提前几天短信告诉用户等等。

DCC甚至能够灵便地切换环境配置,将开发环境一键切换到测试环境,切换到预公布环境,节俭了重新部署的工夫。之前写到配置文件的内容当初都能够配置到DCC中,并且这些配置是立刻失效的。DCC还集成了审计性能,所有配置的批改都能够进行跟踪,咱们能够查问某个要害配置是哪个人在什么工夫批改的。

TSC利用故障排查

TSC咱们当初社区还是预览版,然而咱们外部曾经开始尝试对接一下的业务场景,正在施行落地。之前用的是APM,当初正在尝试对接并迁徙TSC的预览版。之前应用的场景通过验证都是能够迁徙到TSC的。

大家可能都有相似排查问题的经验,有很多大公司尤其是外企,非常重视流程治理,这时候如果你的数据通过了多个业务零碎,但又没有应用相似TSC的平台撑持,那么你要考察具体的问题就很麻烦,你须要向多个零碎的项目经理提出申请,让他们安顿具体的运维或者DBA甚至开发来帮助你考察,如果波及的数据存在涉密或者用户的个人信息,那么还须要波及到产品和业务人员签字,那么如果这个问题的优先级不够高,一个问题考察一两周都是很常见的状况。上面举两个TSC的利用场景:

 业务流程的跟踪:咱们的我的项目采纳微服务架构,有服务节点多,业务流程长的特点,TSC能够高质量的记录每个申请和其上下文相干的内容,能够实时监控业务流程的进度和各个服务节点的性能,便于咱们排查已知问题和发现未知问题。

举个例子,比方咱们发现某个设施状态和后盾记录的不统一,咱们能够通过TSC查看这台设施的上报记录,并筛选出这条记录对应的整个链路的数据上下文,剖析设施是否正确上报了状态,而后排查各个服务节点,通过查看各个节点的输入输出剖析出各个节点是否正确的解决了设施的上报信息,从而排查出具体的问题所在。

再举个例子,咱们发现后盾设施状态同步很慢,咱们能够在TSC中筛选出这条记录对应的整个链路的数据上下文,咱们能够很直观的看到,在哪个业务节点或者服务节点停留的工夫过长,从而剖析出整个零碎的性能问题。

日常巡检:咱们能够通过定时在TSC中进行巡检,发现各个服务的一些异样信息并统计出产生次数和频率,从而发现一些未知问题和危险,及时进行修复和预防,比方咱们登录的图形验证码或者短信发送接口是否被频繁调用,登录接口是否有存在被暴力破解的行为等等。另外咱们还集成了Alert,一些致命谬误和要害接口的谬误会触发告警规定。

还有,对于面向终端用户页面,监控对应业务接口的响应工夫是很要害的,响应过慢会导致用户应用体验升高,TSC中的利用性能指标Apdex(用户满意度指标)。咱们能够通过设置相应的阈值,而后结合实际响应工夫来定义利用的性能体现,而后咱们就能够剖析出用户对于不同页面的称心水平,如果Apdex值很高,代表就很称心,相同就是不称心或者齐全不能承受,这样咱们能够有针对性的调整和优化咱们的业务。

Alert故障告警

Alert次要是联合TSC应用,咱们在IoT我的项目中针对设施的告警类型比拟多,大概有几十项,比方各级滤芯的寿命告警,进水纯水TDS值的告警,各种传感器故障告警,主控板、模组版、显示板通信故障告警等等。这些告警咱们会在Alert中做分级解决,而且Alert反对告警复原,这样咱们就能够直观的看到哪些设施产生了告警,并且哪些曾经复原了,哪些还没有复原须要人工干预解决。Alert还有一个缄默周期的配置,比方设施缺水,设施会周期性上报缺水的状态,然而咱们不须要关注每一条缺水的状态,只需关怀缺水告警开始和复原的工夫,这时咱们能够通过设置这个缄默周期,让设施在触发缺水告警之后的这个周期内不会再反复触发告警。而且能够通过缄默周期,咱们能够对设施同一个告警设置多个告警级别。

.NET全场景开发

我想大家应该都用过IoT的产品,手机管制家里的空气净化器,管制空调。IoT的开发和咱们前后端开发利用是差不多的,传统的网站开发是前端调用后端的接口,和设施通信是通过MQTT,也就是音讯队列,一个公布订阅的设计模式。

产品开发流程

咱们产品的整个开发流程分7个阶段,首先会做产品定义,设施长什么样子,有什么性能,有什么按键,屏幕显示什么内容。而后是软件设计,设计咱们的App、小程序、业务后盾的UI,设计咱们的业务流程,最终对设计进行评审定版。下一个阶段就是开发测试,依照原型和业务流程设计,开发咱们的软件和业务后盾,再测试。于此同时硬件也开发实现,就能够开始联调,联调不仅要和硬件进行联调,还要联调生产的整个流程,例如组装过程中会有很多测试的环节,这些环节咱们都须要记录测试数据,以及对接一些返工或者培修的流程。比方某个传感器通过测试有问题,咱们须要记录并更换这个传感器。联调测试实现后,就会进入小批试产环节,咱们先试产大量设施,这些设施会分发给外部试用的用户收集各种意见,收集意见之后会进行改良,而后将改良后的设施再进行试产,散发到市场进行试用,市场试用阶段实现最终进入量产。

.NET利用场景

这里重点介绍一下.NET技术在其中4个阶段起到的作用。首先咱们在产品定义的最初一步会确定通信协定。通信协定是咱们日后开发的根底,通信协定是与硬件设施约定的通信数据接口,就相当于咱们前后端拆散开发中的WebApi接口定义,设施发送指令后通过字符串或者json的模式上报到MQTT,业务后盾再异步的生产数据。有了通信协定咱们就能够在软件设计的最初一步进行疾速POC验证,这个步骤次要验证一些新的流程和实现计划,咱们能够不依赖嵌入式工程师,齐全通过.NET技术,应用nanoFramework或者.NET IoT库通过esp32或者树莓派来疾速验证咱们的新流程或计划是否可行。对于传感器局部,国内外很多大神曾经针对罕用的传感器写好了很多现成的包能够调用。然而如果你的传感器没有现成的包,通过厂家的说明书、C、Python的示例,是很容易迁徙到.NET平台的,大部分都是GPIO的操作,通过配置引脚和高低电平,获取传感器数据或者向传感器发送指令。

在开发测试阶段,咱们应用.NET命令行开发一个通信模拟器,模仿设施接入MQTT并上报各种数据的场景,为咱们前面针对IoT设施性能的开发提供帮忙,前面的硬件联调过程也能够参照模拟器和通信协定对设施进行验证,就像前后端拆散的开发中的mock模式,使嵌入式开发和平台层开发能够并行。

咱们应用winform 技术开发工装注册工具,提供给PCBA厂家,通过串口将设施信息注册到咱们的IoT平台和MQTT上。

开发阶段会有App和业务后盾的开发,App咱们应用的是MASA Blazor+Maui的计划,MASA技术团队发展了一个实验性我的项目,意在对微软MAUI的补充和扩大,比方蓝牙低功耗、条形码二维码辨认、音讯推送、以及Android的自动更新等。根本笼罩到了咱们App开发常见的场景,而且验证安卓的PDA也可用,最低反对到Android 9,iOS最低反对到15.3。业务后盾的开发应用的是MASA Blazor+MASA Framework+MASA Stack一站式解决方案,应用这套计划咱们能够十分疾速的搭建功能丰富的业务平台。

检测工装,也是一个Winform上位机程序,次要是对设施电控线路板进行可靠性和功能性进行半自动化检测,同时记录相干检测信息,为研发及品质人员追溯线路板故障问题提供数据撑持。比方验证显示屏和主控板通信是否失常,蓝牙和4G模组是否能够失常工作等。

硬件联调阶段有个步骤叫生产现场革新,因为产品的工艺有所不同,须要对产线进行不同水平的革新,比方应用PDA对设施主控板和序列号进行绑定,通过蓝牙或者4G发送水检,气检指令,蓝牙改名,联网测试等等。所有的波及到的零碎对接和PDA程序都是.NET开发的。

试产环节的数据验证过程,次要是人工采集设施的数据,比方水温流速等,同PDA蓝牙读取的设施数据或者设施通过网络被动上报到IoT平台的数据进行比对,验证传感器和波及到的算法的准确性。

扩大APP MAUI

这里列举了一些咱们App实现的性能,我发现群里有不少从事IoT相干工作的敌人,之前是.NET 开发或者嵌入式开发,很少接触挪动端开发。如果你懂一些.NET技术,应用MAUI能够帮忙你疾速上手App的开发,物联网罕用的性能MASA技术团队帮咱们实现了,并有对应的示例。有趣味能够扫描上面的二维码关注MASA公众号,有相干的介绍文章。

案例展现

如图是咱们局部零碎界面展现,蕴含咱们的IoT后盾,用户端小程序,云商城小程序,和业务端App。这里其实还有一个PDA的程序因为波及到工艺流程,所以不不便展现。咱们曾经通过MASA Stack为底座全场景应用.NET技术实现了IoT平台对数字化营销和智能制作的业务闭环。

如果您的企业是传统制作型企业那么能够参考咱们的整套MASA Stack+.NET的解决方案,疾速实现企业的数字化转型。如果您是开发人员,并且当初也有相似的业务需要,那么借助于MASA Stack+ .NET的能力,能够疾速的搭建一套IoT或者电商平台。如果您是一位想上手App开发的爱好者或者从业人员,并且把握一些.NET技术,与市面上其余的目迷五色混合开发技术相比,MASA Blazor + MAUI的计划技术门槛是最低,最容易实现。而且不要忘了您身后还有MASA技术团队的全力支持!


扫码观看回放


如果你对咱们的开源我的项目感兴趣,无论是代码奉献、应用、提 Issue,欢送分割咱们