APP下载

基于云“微服务”装配软件开发方法的研究

2024-01-14左海春苑俊英张鉴新吴恒志

电脑与电信 2023年9期
关键词:微服务数据服务视图

左海春 苑俊英 张鉴新 王 虓 吴恒志

(广州南方学院,广东 广州 510970)

1 引言

随着云计算的迅速发展,云服务已成为许多组织和企业构建和交付软件应用的关键方法。微服务架构作为一种软件架构风格,通过将应用程序拆分为小型、自治的服务单元,为构建和扩展云应用提供了灵活性和可伸缩性。然而,随着云微服务规模的不断增长,如何高效地开发和装配云微服务是当前一个重要挑战[1-3]。

尽管已经有一些研究关注云微服务的开发和部署,但对于基于云微服务的软件开发方法中的装配过程仍然存在一些关键问题。这些问题可能包括如何有效组织和协调大规模的微服务集合、如何确保微服务之间的适配性和互操作性,以及如何在开发过程中提供有效的工具和支持[4,5]。因此,本研究旨在提供基于云微服务的软件开发方法中装配过程的深入理解和解决方案。

通过深入研究基于云微服务的软件开发方法的装配过程,可以为企业和组织提供更可靠、灵活和高效的软件开发方法,推动云计算和微服务架构的进一步发展。

2 基于云微服务的软件开发设计

2.1 建立基于云环境的软件开发方法的层级结构体系

建立以云环境为基础、微服务群为平台与服务装配为开发三层体系结构,如表1所示。对于安全性、性能要求较高的企业我们可以自建云环境。对于学校实验、研究可以选择公有云。微服务群平台基于容器发布微服务组件,构建一个可伸缩的微服务容器,从而为上层提供服务组件与平台,并且微服务组件可以实现二次开发,以满足不同场景开发需求。装配开发层,可以基于服务接口实现软件系统开发,并提供可视化与脚本两种开发选择。

表1 云环境、微服务群平台、装配开发三层级结构体系

2.2 云微服务装配过程设计

研究构建出一种基于云服务支撑环境下的微服务装配软件开发方法,其基本开发流程如图1所示。

图1 云微服务的软件开发流程

其整个开发过程都是基于云环境下进行的,开发阶段实现微服务功能,然后自动推送至代码库,通过编译后智能配置与自动打包成镜像,然后运行实体拉取镜像与装配系统并运行,从而完成系统开发。整个过程可以不断迭代,持续开发部署与运行。

2.3 微数据服务编程模型

基于“纵横分离,织入系统”思想构建微服务。纵:指微服务业务逻辑;横:指微服务辅助公共代码,织入:纵横代码进行装配,从而完整微服务系统开发。这种编程模型设计可降低耦合度,减少代码,增加复用,便于扩展,提高灵活性,并对系统的可操作性和可维护性更加友好。在微数据服务编程模型中,编码的具体实现分为拆分、实现和织入三个过程,如图2所示。

图2 微数据服务编程模型

(1)拆分:从系统需求中抽取公共服务点,并建立核心业务点。它们具有明确的分工与合作关系。公共服务点是指公共复用代码部分,核心业务点是指业务核心代码部分。

(2)实现:通过核心业务点实现业务模块的开发;通过公共服务点实现公共模块的开发。

(3)织入:将公共模块编织入业务模块(目标对象),在指定的业务目标处执行公共模块代码,从而整合二个模块,实现微服系统。

2.4 界面服务模型开发

基于H5+Javascript 技术,以及本地缓存技术LocalStorage与SessionStor-age技术、SQLite技术,建立交互服务模型,容器服务模型,积木式自由组合界面模型。

(1)交互服务模型:交互界面上的供用户输入数据的元素、将数据输出到其他元素或者系统的元素。

(2)容器服务模型:形态为资源容器。例如,一个数据结构、一个文件、一个记录集、一张关系数据库表、一项NoSQL数据、一项GrigDoc文档元素,以及由它们组合而成的集合、记录集及JSON格式的数据。

(3)积木式自由组合界面模型,采用Javascript+H5 技术开发实现。

(4)界面服务模型原理:通过数据视图模型,建立视图模型与数据业务模型,实现双向绑定,如图3所示。

图3 界面服务模型原理

界面模型采用发布者/订阅者模式,数据变化将被数据视图所监听,触发相应的监听回调函数,并更新视图中的数据。同时,数据视图接收用户交互事件操作。数据视图模型主要工作过程如图4所示。

(1)数据视图模型构建,使用事件监听器实现,由观察者监听到数据的变化。可以通过遍历方法对数据对象添加setter和getter方法。对象数据赋值回调setter方法,获取对象数据通过调用getter方法完成。

(2)编译者解析指令。通过数据解析数据,并初始化渲染页面视图,当数据发生变化时,会触发相应的更新函数来更新视图。随着数据的变化和订阅者的通知,能够动态更新网页视图,以反映最新的数据状态。

(3)订阅者。当对象收到通知时,调用自己持有的update方法,完成视图更新。

(4)数据视图模型对象作为界面服务模型的核心,基于观察者、编译者和订阅者实现:观察者监听model数据变化,并通过编译者来解析指令,完成视图更新;同时,它还实现了视图交互变化和数据模型变更的双向绑定效果。

2.5 客户云引擎研究与开发

基于AJAX 技术原理,解决客户与服务数据模型通信,及数据更新等技术问题。(1)基于事件驱动拉取数据,并自动渲染到界面组件。(2)注册服务信息,创建客户信息。(3)界面模型加载与抽取数据服务。

3 云微服务装配方法的实现

云微服务装配方法,它通过微代码开发,容器对象生成,对象装配组成,具体过程详细见图5 云微服务装配,它可分为微服务的编程、请求与获取、装配与部署三个阶段。

图5 云微服务装配

(1)编程阶段

编程阶段主要是微服务的设计与实现,将微服务代码上传到微服务资源库中,编译并测试。资源库可以分类管理微代码,如公共类、业务类等。

(2)请求与获取阶段

软件开发人员根据需求模型、工具,自动生成微服务请求配置脚本,并向微服务资源库申请云数据服务模型(包括核心服务模型与公共服务模型),资源库接受相应的请求,然后解析,并选择对应的微服务模块,再选取微服务,加载到容器中。

(3)装配与部署阶段

根据软件实施流程逻辑,把容器中的界面服务对象(前端)、数据服务对象等装配在一起,形成初步的软件框架。在微服务装配过程中,基于配置文件自动装配后,再由研发人员手动装配与优化,进一步完善软件框架功能。

各种开发团队可以基于云服务的模式按需使用,个人开发者也可以通过网站注册申请来使服务。开发者通过软件开发云可随时随地在云端进行项目管理等以上工作,这让开发者能够专注快速创新和应对永无止境的需求变化,让软件开发更加简单高效,提升了个人和团队的交付能力和效率,也能进一步帮助企业提高竞争力。

4 基于微服务在教学实践的应用

将本研究成果应用于软件工程的专业实践,基于微服务方式开发各类应用系统,能提升学生实验的积极性与开发效率,如图6所示。微服务的开发分为教师开发与学生开发,教师与学生开发的微服务存入代码库中。学生根据企业项目需求,配置实验环境,在集群上分割出独立安全的实验环境,并为每个实验环境进行资源分配。学生根据不同的实验场景申请额外资源,主要包括申请与项目相关的“微服务”项,完成项目组合,并进行实验。

图6 教学实践的应用

5 结语

本研究旨在探索基于云微服务的软件开发方法中的装配过程,并提供相关的方法和指导。本研究对基于云微服务的软件开发方法的装配过程进行了深入研究,并提供了一套系统化和规范化的方法和指导。通过理论分析和实证研究的结合,为开发人员和组织提供了在云环境下构建高质量、可扩展和灵活的软件应用的有效方式。

然而,在实践中也意识到本研究存在一些局限性。首先,实证研究的规模和范围可能受限于资源和时间的限制,可能无法涵盖所有可能的应用场景。其次,本研究的方法和指导仍需要在更广泛的实践中进行验证和推广。最后,云计算和微服务领域的快速发展可能会导致研究结果的时效性问题。

因此,未来的研究可以继续深化基于云微服务的软件开发方法的研究,并结合实践经验进一步改进和优化方法。同时,应密切关注云计算和微服务领域的最新发展,并及时调整研究方向,以满足不断变化的需求和挑战。

猜你喜欢

微服务数据服务视图
地理空间大数据服务自然资源调查监测的方向分析
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
微信公众平台在医院图书馆的应用现状调查
如何运用税收大数据服务供给侧结构性改革
基于微信企业号的校园移动服务
从单一模式系统架构往微服务架构迁移转化技术研究
基于频繁子图挖掘的数据服务Mashup推荐