基于SpringCloud微服务框架的软件开发技术在项目中的具体应用

发布时间:2021-04-08 来源: 万汇智联 浏览次数:

声明:本文是我在软件测试系统架构师的准备期间动手撰写的。它不保证内容的独创性和正确性。仅供参考。请不要在学术论文等正式场合复制或使用它。它是由于使用不当而产生的。后果自负。

摘要

2019年3月,我们单位与一所大学合作开发了“程序在线评估竞赛考试系统”。该系统以在线程序代码提交的自动评估功能为核心,分为题库模块,评估机模块,实验作业模块,考试模块,竞赛模块,窃确定模块,用户管理模块等,并且支持对接教育管理平台。在该项目中,我担任系统架构师,负责架构设计。

以该系统为例,本文主要讨论基于组件的软件开发技术在项目中的具体应用。该系统基于用于组件开发的Spring Cloud微服务框架。在组件采购阶段,它通过与现有系统对接,使用组件库并集成第三方软件来实现需求。在组件开发阶段,使用各种设计模式来确保组件的可用性。可重用性。在组件组装阶段,使用同步消息,异步消息和工作流方法来实现不同业务类型下组件的组合。最终,该项目顺利上线,运行稳定,赢得了用户的一致好评。

身体

作者在一个单位中工作,该单位专门为高校计算机科学智能教学构建集成平台。过去的成就包括“计算机组成原理模拟实验系统”等。 2019年3月,我们单位与一所大学合作开发了“程序在线评估竞赛考试系统”项目(以下称为“ OJ系统”),以取代原始的传统程序测试平台。

系统以程序代码在线提交的自动评估功能为核心,主要分为题库模块,评估机模块,实验工作模块,考试模块,竞赛模块,窃判断模块,用户管理模块。题库模块主要负责测试题和测试用例的管理。用户根据测试问题编写程序代码,并将其提交给系统。系统将测试用例和程序代码发送到评估机模块。评估机自动编译,执行,判断并发送其他相关模块的结果统计信息;实验性作业模块用于在线安排作业,从试题库中选择测试问题,设置截止日期和其他要求;测试模块用于学生在线考试,并根据教师预设的参数自动从试题库中随机选择问题,生成试卷,并将测试结果上传至教育管理平台;比赛模块主要用于ACM比赛训练;窃确定模块用于识别代码与他人代码的相似性;用户管理模块负责用户信息的管理。在这个项目中,我担任系统架构师,主要负责系统架构设计的相关工作。

组件技术是指通过组装一系列可重复使用的软件组件来构建软件系统的软件技术。通过使用组件技术,开发人员可以有效地重用软件,减少重复开发,缩短开发时间,并降低软件开发成本。共有三种主流组件技术:CORBA,EJB和COM。 CORBA分为三个级别:对象请求代理,公共对象服务和公共设施。优点是大而完整,互操作性和开放性好,但缺点是大而复杂,技术标准更新缓慢; EJB基于Java语言并支持跨平台,提供用于远程访问,安全性,持久性和生命周期的机制,并支持分布式计算。缺点是服务治理能力差,并逐渐被轻量级框架(如Spring Cloud)取代。 COM基于Windows平台,功能强大,效率高。在一系列开发工具的支持下,缺点是跨平台性能较差。基于组件的软件开发过程主要分为模块划分,组件识别,组件获取,组件组装与测试,组件管理等步骤。

OJ系统是使用基于Spring Cloud的微服务架构开发的。这里重点介绍了组件获取,组件开发和组件组装的三个阶段,以说明此系统中基于组件的开发过程。

1.组件获取

在OJ系统中,可重用功能需求和非功能需求在实现方面分为三类。第一类需要连接到现有系统。例如,有必要将OA和学校使用的教务管理系统中的学生信息和课程信息同步到OJ系统。我们访问OA和教育行政管理的开发人员网站进行联系。开发人员已获得相关接口调用的SDK。第二类是用户管理,角色权限管理,日志记录,内容维护和消息中心的基本功能,这些功能在通用信息系统中通常可用。我们使用组件库中过去组件开发中累积的相应组件单元(例如RBAC权限管理框架)来实现。第三类需要与第三方软件集成以实现,例如微服务注册表,API消息路由网关,负载平衡机制,程序评估期间调用的编译器,用于代码窃确定的文本比较功能等,而无需额外开发,我们将Spring Cloud中的Eureka框架用作微服务注册表,将Nginx反向代理用作负载平衡机制,将GCC基于构件的软件开发,JDK等用作编译器,并且对于文本比较功能,我们在GitHub。此外,我们根据OJ系统的使用场景重新开发了一些功能组件,以支持该系统的特定用户需求。

上一篇: 网络电话app开发哪家公司更专业

下一篇:没有了

上一篇: 网络电话app开发哪家公司更专业

下一篇:没有了