一、背景
近年来,在企业不断变化的业务环境中,快速迭代的新需求将引导企业改变其开发方式,进而转向使用支持快速、安全和高效的技术架构,组装式应用便成为了企业重要的战略技术趋势。组装式应用引入模块化的理念,使得各企业可以更敏捷、更有效地复用能力模块,提高商业的韧性和效率。
二、组装式应用介绍
2.1什么是组装式应用
组装式应用由以业务为中心的模块化组件构成,更易使用和重复使用代码,可加速新软件解决方案的上市时间,并释放企业价值。
2.2组装式应用前景
2021高德纳IT博览会(Gartner IT Symposium/Xpo 2021)美洲站峰会召开,会上,知名调查机构Gartner发布企业机构在2022年需要探索的十二大重要战略技术趋势中,就包含了组装式应用程序;在不断变化的业务环境中,业务适应性需求能够引导企业转向支持快速、安全和高效应用变化的技术架构。可组合的应用架构增强了这种适应性,而采用可组合方法的企业机构在新功能的实现速度上将比竞争对手快80%。
“在动荡的时代,可组合的业务原则能帮助企业机构驾驭对业务韧性和增长至关重要的加速变化。没有它的现代企业机构可能会失去在市场中的前进动力和客户忠诚度。”Groombridge表示。
2022年7月,经过前期密集的沟通,中国信通院“铸基计划—组装式应用开发平台系列标准研制”正式启动。确定了组装式应用开发平台的五大标准维度,包括通用通用能力要求、性能要求、安全要求、适配能力要求、代码自研能力要求等。
三、如何实现可组装式应用开发
举个例子:例如我们要装配一辆汽车,我们需要具备哪些条件呢?
我们可以想到,我们需要一个合适的组装环境,例如组装的车间,车间里面有所有的工具;
然后我们需要汽车的图纸;
然后我们需要汽车的所有零件;
最后我们的工程师在车间里面使用各种工具,按照图纸,使用各种零件就可以组装好一辆车了。
其实我们的应用开发也类似这样:
1、组装环境,包含各种工具和应用开发的平台。类似汽车的组装车间;
2、项目设计文档,类似汽车的图纸;
3、各种标准化的业务组件,类似汽车的零件;
然后我们的工程师使用组装环境的各种工具,按照项目设计文档编码,使用各种标准化的业务组件,组装好一个完整的应用。
3.1组装环境
组装环境,我认为应该包含各种工具和应用开发的平台;
1、工具,目前我们应用开发有各类和各种各样的工具,例如java开发的IDEA、eclipse等;前端开发的Visual studio Code、WebStorm、hbuilder等;产品设计的Axure RP、墨刀等;目前工具的功能都比较完善和健全,能满足我们的日常开发所需,所以工具选择对我们来说不是问题。
2、应用开发的平台,这个目前市面上种类繁多,且适应场景不一,目前各大厂都有自己的工具。所以对大部分企业或者开发者来说,会有点难抉择。这里我比较推荐,阿里云的“云巧”;
云巧是阿里云全球技术服务部团队,基于组装式交付理念,对定制化开发和交付提出的解决方案。
3.2项目设计文档
当我们项目的各种组件标准化后,我们的项目设计文档就非重要了,我们各个组件怎么接入,如何使用,能力如何等。还有我们项目架构如何,选择了那些业务组件,分别有什么作用等。还包括其它各种设计文档等。好的项目设计文档,可以减少不必要的返工和沟通成本等。
云巧也提供了标准化的组件文档,便于我们了解相关组件的功能;同时它也提供了蓝图绘制的功能,制定了云巧组件标准
3.3标准化的业务组件
在如何实现组装式应用中,Gartner提出了“封装业务能力”(Packaged Business Capability,简称PBC)这个概念作为组装式应用的核心。PBC换一种理解方式就是标准化的业务组件。
标准化的业务组件从字面意思上解析大致有2方面的要求:
1、是个组件;
2、标准化;
是个组件,这个是一个基本要求,然后我们通常还会要求我们的组件,可组装可复用等待。标准化,目前市面上没有统一的标准,各大厂商都有自己的标准。而云巧也制定了自己的云巧 ACCORD 标准。云巧介绍到合格的PBC,需要具备模块化(Modularity)、自治(Autonomy)、可发现(Discoverable)、可编排(Orchestrated)这些特性
PBC作为组装式应用的核心,云巧也推出了资产市场,便于沉淀和发现各种组件;
通过以上各种条件分析,目前云巧具备我们实施组装式应用开发所需要的各种条件,下面我们就使用云巧来进行一个项目的实施。
四、基于云巧实践某政务后台管理系统
4.1业务背景
电子政务系统一般由复杂的多个系统构成,其中可能会涉及某个地区多个部门的多个事项的管理、受理、审批等各种业务,其中各个业务相互独立。
4.2业务特点
1、业务复杂、集成度要求较高、适配性较强;
2、各事项的业务,需要具备一些通用能力,通用性要求强;
4.3所选组件清单
基础组件清单:
1、接口统一功能库:提供了项目开发中项目所需要的基础支撑功能;
2、React 脚手架 KOI:基于Umi内核,标准研发流程,统一研发规范,交付项目最佳实践;
3、云巧中间件封装库all-in-one非ark版本:为了服务阿里云交付场景,沉淀重复组件,我们总结多个交付项目中常见的对中间件(阿里云ons,oss和cache)的封装,方便交付的一线研发同学直接上手使用。
4、代码生成插件:根据数据库schema自动生成crud前后端代码的IDEA插件;
5、多语言支持库:部分国际交付项目需要实现前端页面、弹窗的多语言实现。随着交付项目的增多,有此需求的项目也在日益增长。针对Java语言,多语言的实现基本都一样,因此需要一套统一的实现;
6、通用分布式调度库:通用分布式任务调度封装SDK;
业务组件清单:
1、操作审计日志库:通过注解的形式实现简单灵活的操作数据采集,便于后续项目中快速的接入及扩展;
2、云巧4A统一安全管控组件:认证Authentication、授权Authorization、账号Account、审计Audit。云巧4A统一安全管控组件实现对自然人、资源、资源账号的集中管理,提升系统安全性和可管理能力,实现可视、可控、可信的安全管理体系。
3、云巧消息组件:针对应用系统群提供统一消息发送能力。支持多种消息类型(包括App推送、邮件、短信、钉钉工作通知),并支持进一步扩展。
4、云巧流程组件:通过页面拖拉拽的交互方式简单上手快速搭建企业内部流程,具备从 "流程配置(流程设计、表单设计) -> 部署 -> 发起 -> 代办 -> 审批" 的“端到端”业务流程的闭环管理,支持业务空间隔离。审批页面支持移动端自适应。
5、云巧表单组件:通用表单组件,提供可视化搭建动态表单能力,支持多端填报和国际化能力,提供表单填报数据管理等;
4.6系统架构图
参考文献
[2] GTS工作台帮助-通用版
[3] 云巧组装式交付介绍