孙文康
(威胜集团有限公司,湖南 长沙 410013)
低代码平台是一个介于无代码和成熟人工编码之间的中间地带,因此更具延展性。低代码平台是一个可视化的拖拽式平台,同时,更是一种开源的、可扩展的并允许人工编码或编写脚本的平台。其通过可视化开发工具和可重用组件,缩短了定制化网络和移动应用的交付时间,为快速迭代开发周期提供了支持,并简化了整个应用的生命周期[1]。从事具体业务的专业人士也可以通过这些低代码开发平台,就自身需要应对具体业务中的具体问题以编制程序来给出解决方案,从而提高生产效率。
低代码开发平台的优势在于,它并不要求利用它进行开发的人员掌握专业的编程知识,而是将更多的注意力集中在业务流程和具体问题的解决逻辑上。这有效地避免了传统上由专业程序人员进行应用程序开发中容易出现的业务人员需求转换为产品需求时出现偏差,程序功能修改周期长,投入实际生产环境后的迭代困难等一系列问题。反观传统软件开发,则仍存在开发成本高、定制化能力差、效率低、迭代周期长的不利情况[2]。
本文以微软推出的低代码平台PowerApps为例,说明了如何利用该平台解决在电力先进计量架构(AMI——Advanced metering infrastructure)现场部署中所面临的一项具体挑战,已实际投入使用于工程现场部署,取得良好效果,有效提升效率、降低差错。本方法对类似通信架构系统和物联网部署也有一定参考作用。
PowerApps于2015年由微软(Microsoft)推出后,经历了数年的功能完善,如今已经与Power BI,Power Automate一起构成了微软Power Platform的一部分。微软对该产品的定位是:“向每个人提供工具,让人人都成为应用构建者”。根据知名咨询机构弗雷斯特Forrester研究公司2020年的调研报告表明[3]通过在企业中应用该低代码平台,可以降低应用开发成本74%。
PowerApps提供了一个低代码的开发环境,仅需要较低的学习成本,在不具备专业计算机科学专业背景的情况下,就可以开发出在浏览器和移动设备(手机或平板电脑)上无缝运行的应用程序,包括运行在安卓和IOS系统的手机平台上。
依靠微软相关软件(Office 365、Dynamics 365),云服务(Azure),云数据库(DataVerse)和数据安全体系建立的生态圈,PowerApps可以将已有的数据和工作成果快速整合到一起,形成新的生产力工具,而且这种生产力工具是由最直接面对问题的业务人员从自身需求出发创建的。这令PowerApps可以生成提供丰富的业务逻辑和工作流功能,这些功能可将手动业务流程转换为数字化、自动化流程。除此以外,其还允许专业开发人员以编程方式与数据进行交互、应用业务逻辑、创建自定义连接器以及与外部数据集成。这为应用程序的扩展提供了进一步可能[4],也就是说其提供了良好的扩展性和复用性。
微软为PowerApps提供了3种创建应用的模式,分别是画布、模型驱动和门户。本文将以“画布(Canvas)”模式为例说明其设计应用。
先进计量架构(AMI),通常借助于某一种或某几种通信技术,将计量节点的数据传输到信息处理和能源管理系统软件中进行数据的分析和管理。其整个通信架构为一个倒置的“树”状网络,其中计量节点为其“叶节点”,数据处理系统为其“根节点”,通常还有通讯设备作为“枝干节点”位于两者之间。
这类产品在工程实施现场部署时主要的工作要求是:能够确保“叶节点”的数据按照设计要求传输到“根节点”。为达到这个目的,需要在计量节点安装完毕后,对于不能够建立通讯通路的“叶节点”逐一进行具体处理。
在处理过程中,最常遇到的挑战是如何在部署规模达到万级或数十万级的情况下,有效依靠安装前期收集的地理信息规划路径并找到问题节点,依照不同情况给予处理,并在过程中保持和任务调度人员的协同,让调度人员知晓当前工作状态。且应用程序应可以跨平台运行在手持设备和传统电脑上,以便不同角色在调度办公室和现场可以高效协同工作。
在本案例中,应用程序需要解决的问题可以描述如下:
将含有地理信息的安装档案数据导入并存储于数据库中。
用计量节点的编号作为查询索引,可以在合理的时间内从数据库中查找到对应的数据记录,数据查询条数可以为多条,可以形成独立的记录集,作为“本轮工作数据”存储于数据库中。
从“本轮工作数据”记录中获取该“计量节点”的地理位置信息,并将信息显示在地图界面上。当前设备位置也需要能够显示在地图上,并实时刷新,从而确定如何抵达计量节点。
程序可以运行在多种平台下,针对调度员,应该能够在PC端运行,针对现场实施人员,应该能够在手机端或平板运行,且支持安卓和IOS操作系统。
为完成需要解决的问题,应用程序可以分为几个功能框架分别实行,具体如图1所示。
图1 应用程序功能框架
将由第三方软件生成的安装数据“导入”数据库,为了实现多地、多设备的操作,应该将该数据放置于云端,图1中给出了一个简化的例子说明工作数据的组成。
针对本轮关心的计量点,以计量点编号为检索条件进行检索,其获取的数据信息在经过核对确认后,生成一个“本轮工作数据”表格。同理,这个数据也应该存储在云端数据库,供不同应用角色调用。
作为手持设备的手机通过获取云端存储的“本轮工作数据”,并调用地图控件,从而生成实时地图。
处理完单个“计量节点”工作后,工作人员可以对“本轮工作数据”表格进行修改,以便让相应的团队成员能够知晓已经完成的情况,并轻易同步当前工作进程。
数据的导入:本用例中我们使用微软的Microsoft DataVerse(在2020年11月前被称为Common Data Service)作为云端数据库来放置我们需要的数据。DataVerse允许数据从多个源集成到其中,并被PowerApps等Power plant平台使用。其提供了简单的一次性导入数据功能,可以简单的将Excel或CVS文件导入到位于云端的DataVerse数据库中,其过程如同文件上传,不牵扯到对数据库知识的了解,并且可以以Excel为客户界面对数据进行维护和操作,从而极大地降低了学习成本。
数据检索和形成“本轮工作数据”:在形成了可用的DataVerse数据记录后,接下来就需要考虑我们关心的数据的情况了,首先,建立一个PowerApps的画布应用,在该过程中,PowerApps将询问需要链接到该应用程序的DataVerse数据记录。在链接建立后,可以直接通过控件对数据库进行操作。而检索的过程只需要在其可拖曳的“表格控件”中设置“计量点编号”为检索关键字即可完成查找。在查找完成后,可通过显示界面核对数据,并在DataVerse中再建立一个数据表单以存储“本轮工作数据”,这样做可以确保原始数据不受后续操作影响,也可以保证多客户端的信息同步。
手持设备获得数据并生成实时地图:手持设备在下载了PowerApps应用后,只要该设备登录的账号是与发布应用程序的账号于Azure Active Directory(Azure AD)同处在一个组内,就可以自动获得该应用程序的分发。在获得“本轮工作数据”后,使用微软的动态地图控件Azure Map,并指明经纬度在数据表格中所处字段就可以完成实时地图的位置标定,同时打开自我位置开关,地图控件就可以通过手持设备的GPS部件获得自身位置,并显示在地图上。
数据安全性:考虑到数据被存放在云端,数据的安全性和隐私性也是系统的一个重要关切点,DataVerse通过Azure Active Directory(Azure AD)对用户进行身份验证,可以分级控制客户可以访问的数据范围,这种分层数据访问结构,可以简便而有效地处理用户的安全角色[5]。同时考虑到其可对数据访问和操作的过程进行记录,则可以更好地对于非法操作进行追踪和防范。应用程序运行在IPhone设备上的屏幕截图如图2所示。
图2 应用程序界面举例
该软件在投入现场运行后,有效地减少了在寻找现场路径时消耗的时间,同时由于数据存储在云端数据库,令多小组同步协同工作成为可能。由于可以运行在实施人员的智能手机上,本方案并没有增加任何硬件设备投入。
应用软件的开发除去部分的逻辑判断语句,并没有任何代码被纳入到设计中,主要的界面设计也是通过拖曳和数据配置的方式完成,PowerApps可以自行根据运行设备的不同来调节显示界面以适应不同的运行环境,设计便捷。
以通讯技术为骨架的AMI系统建设,在实施过程中需要投入大量工时解决的是分散的单个计量点所产生的问题,如何帮助实施人员以最短路径到达现场时有效缩短项目实施周期的一个重要课题。
本文利用低代码平台Microsoft PowerApps构建了一个应用实例,其应用有效的提升了工作效率。通过使用该低代码工具和与之匹配的微软软件生态体系,可以让开发者将主要的注意力集中于对于业务逻辑的理解而非编程实现上。从而在短时间内开发出基于云端数据库,跨平台,支持移动设备的应用软件。
伴随应用程序在各个领域的需求增多,特别是在移动设备端和基于云技术应用场景的增加,专业软件开发人员的相对缺乏和对于业务逻辑理解深度的不足,加大了软件开发的成本和周期,低代码平台的出现正是为了应对这种情况。借助它,对业务逻辑有深入理解的人员可以依照自身需求去开发适合的应用软件,进而解决问题,提高效率。