数字经济时代,随着信息化管理水平的提高,企业对软件应用的需求也不断增长。但在系统建设过程中,企业往往面临着部分软件无法满足需求、应用开发效率低下、设备适配等挑战。品高软件基于元数据的低代码应用快速构建框架推出了聆客应用工厂工具,能有效帮助企业快速构建及交付企业内各种常见管理型系统,本文将对其原理进行解析。

前言

 

最近几年来,伴随移动互联网的迅猛发展,数字经济的贡献率不断提升,移动互联网成为了经济发展重要引擎。越来越多的企业意识到提高企业管理信息化水平的重要性,引发了对企业管理软件的巨大需求。但不论大到跨国公司,还是小到三五人的工作室,在系统建设过程中或多或少都会遇到这样的情况:

  • 现有的系统可以满足大部分的需求,但总会遇到小部分无法通过现有的软件解决需求;
  • 各种突发的需求,使 IT 团队的工作常常堆积如山,企业经常无法快速地推出应用程序以应对快速变化的需求;
  • 现在的客户和员工都希望通过各种不同的设备来使用应用程序,这给企业 IT 团队带来了更大的压力。

如何解决这样的困境?一个可行的选择是通过低代码开发平台(Low-Code Platform)来构建企业的应用。“低代码应用程序开发”这个词语近几年才出现,但这并不是一个新概念。它允许开发人员充分利用现有的模板和组件,以可视化的工具,将各种预构建的元素、表单和对象拖动到一起,伴以少量的代码,快速的生成应用程序。这种方法一方面可以降低企业的应用开发成本,另一方面可以将原本数月甚至数年的开发时间成倍缩短,从而帮助企业实现降本增效的价值。

应用工厂

品高软件借鉴之前建设各种企业信息系统的经验,提取管理型信息系统建设过程中普遍遇到的问题,推出了以元数据为基础的低代码应用快速构建框架,并基于此框架推出了聆客应用工厂工具。通过该工具可以快速地构建及交付企业内各种常见管理型系统,如:资产管理类、流程审批类、团队协作类等系统(更多应用场景可参阅《快速搭建企业定制化业务系统:聆客应用工厂的最佳实践》一文),其架构如下:

应用工厂架构示意图

应用工厂在设计之初,就充分考虑了各企业间应用的独立性和数据的隔离性,采用设计与运行分离的模式进行应用的构建。首先,由企业的 IT 管理员,在应用设计器上进行应用的设计和开发;应用开发完成后,通过发布的方式,将应用发布到企业独立的元数据运行引擎上;然后由引擎根据发布的数据生成独立的数据库及其它运行数据;同时,也会自动在应用市场上生成相应的应用。之后,企业的客户和员工就可以通过市场找到并使用该应用了。

应用设计器

应用设计器的主要作用就是通过各种设计工具,生成系统的元数据信息,以元数据的方式来定义整个应用。目前应用工厂的元数据分为这几种:模型元数据、页面元数据、审批流元数据以及业务逻辑元数据。

应用工厂的设计器采用了基于浏览器的开发方法,提供了应用程序的可视化工具 ,通过拖放式的所见即所得技术来加快用户界面的生成。设计器包含以下几个主要的部分:

模型设计器

用于业务数据建模,使用了表单自动生成模型的方式,让普通用户更方便、直观的进行业务数据建模。在表单设计器中,用户通过直观的拖拽想要的输入控件到表单页面上,系统根据控件类型,自动帮用户生成合适的字段类型,让普通的用户跨过传统建模过程中需要设置复杂的数据配置项这一环节,在完成表单的同时,也能很容易的完成数据模型的设计。同时,系统也预留了数据绑定的机制,让更高级的开发人员,在另外的界面通过导入、或按传统方式建模后,再将字段与表单控件进行绑定。

页面构建器

应用工厂采用以组件构建页面的思路,可重用的组件分为几种。

  • 第一类: 由平台提供的通用组件,如:表单、列表 、图表、流程审批单等通用组件;
  • 第二类: 也是由平台提供的特定业务组件,如:聊天、工作动态、日程、任务等,该类组件依赖平台相关服务,用户只需使用该类组件,即可完成特定的业务功能;
  • 第三类: 由用户根据平台组件开发规范,自行开发并发布到平台的组件。

逻辑定义

系统内的逻辑分为前端逻辑和服务端逻辑,不论是前端还是服务端逻辑,均可以通过 JavaScript 语言实现,开发人员使用同样的语言进行两端逻辑的定义。

  • 前端逻辑: 实现前端业务处理,一般由组件或页面通过事件方式,执行用户定义的逻辑;
  • 服务端逻辑: 服务端的业务处理,开放人员既可为前端创建新的数据接口,也可通过事件方式,在已有的数据处理中,添加自定义的业务处理。

流程设计

引入了 Activiti 作为平台的核心流程引擎, 提供在线流程设计工具与平台的数据模型、权限控制、业务逻辑进行深入的整合,用户在一个界面就可以完成所有的工作。

元数据引擎

元数据引擎作为应用工厂的核心组成部分,是由公司自主研发的服务端运行引擎,它负责对上面设计的元数据进行解析,并自动生成各种处理逻辑。它是应用在服务端的执行器,它主要包含以下功能:

  • 模型同步 :根据应用设计器定义的业务数据模型,自动生成对应的物理数据库,当模型发生变化时,同步对物理数据库进行变更。
  • 数据接口 :根据数据模型,自动生成增、删、查、修改等操作的标准 Restful 接口,供前端模块和其它应用调用。
  • 脚本引擎 :内置 JavaScript 脚本执行引擎,提供脚本动态加载及执行功能,负责将应用设计器定义的业务逻辑转成可执行的代码,并在指定的时机执行。
  • 安全控制 :引擎提供了两层的权限控制,首先,按标准 OAuth2 协议提供了接口调用的安全控制;其次,根据设计配置,对每个实体提供了到记录级的数据权限控制方案。

渲染引擎

平台采用前后端完全分离的模式,前端根据应用设计器定义的各种界面元数据,通过前端组件化技术,能够自动生成各种界面。

同时,由于通过应用设计器定义的界面元数据是与平台无关的,Web 端、移动端、PC 端都可以根据这些信息渲染出符合当前平台的用户界面,实现共享同一份配置。并且能根据用户不同的设备和屏幕分辨率自动调整界面,满足客户和员工通过不同设备来使用应用程序的要求。

平台服务支撑

作为一款面向企业内管理型信息的应用构建工具,应用工厂无缝接入了品高云旗下企业协同产品——聆客(BingoLink)。应用工厂构建的应用,通过平台组件可以轻松的使用聆客中的各种功能。如:流程发起后,推送待办到业务大厅,发送消息给审批人,调用聆客中的协作化套件,轻松创建任务、日程等。

容器自动化交付

为了减少企业间应用的相互影响,根据隔离级别,平台为每个企业(或应用)生成独立的运行引擎,对于某些负载较高的应用,也可以生成多个运行结点。

为适应这种不断增长的引擎的部署、管理、及监控,平台使用了容器技术,接入了品高的容器产品,开发人员只需要在应用设计器上点击发布,应用就会自动进行部署和更新,极大减少了开发人员部署和维护的成本。

总结

目前,应用工厂已在聆客中上线。基于 BingoFuse 中低代码应用快速构建框架的赋能,应用工厂可帮助企业用户快速部署适用于包括人事、行政、项目协作、OA 审批、销售、采购、生产、库存、财务等场景的个性化业务系统,让 IT 伴随着企业的发展同步升级迭代,为企业的全面信息化提供弹性支撑。