第十一届中国软件杯大赛--B组赛题
赛题名称:微服务架构的国内航班查询与预订系统
组类:B组(高职)
出题企业:中国民航信息网络股份有限公司
答疑老师:于老师 yuhc@travelsky.com.cn(请在邮件标题中标注【中国软件杯】)
线上赛题解析直播回放: https://wx.vzan.com/live/tvchat-1631200660?shauid=undefined&vprid=0&v=1652957796492
赛题简介:介绍整个赛题的实现目标、实用价值、涉及技术和整体要求 | 以微服务的方式实现一个为旅客提供国内航班查询与机票预订功能的系统。 |
赛题业务场景:描述赛题相关的真实企业业务背景。从真实场景中,适当简化或者提炼出适合比赛的赛题场景 | 航班查询与机票预订是民航业的核心业务场景之一。从中国民航建立计算机售票系统以来,航班查询与机票预订核心业务一直都是在进口的大型主机中实现的。但大型主机昂贵且系统容量有限,无法满足我国民航业快速发展的需求。为此,需要以当前流行的微服务架构重新设计并开发一整套航班查询与机票预订业务系统。 |
基本功能要求 | 1、航班查询功能:【必选】至少应当支持在给定日期、航班号或给定日期、出发地、目的地两种组合模式下的航班查询,查询结果中至少应当包含航班的起降时间、剩余座位数、票价。【可选】如能提供按其他有现实需求的条件组合来进行航班查询(例如,以价格区间来查询航班)、提供中转航班查询、提供往返或联程航班查询等扩展查询功能更好。 2、机票预订功能:【必选】至少应当支持对给定日期、航班机票的预订及预订后的机票改期退票功能;应当具备基本的座位库存控制能力,能正确处理多人并发预订机票时的库存扣减事务。【可选】如能实现在航班座位价格可动态变化(例如可按舱位等级、日期等规则为同一航班的设置不同的价格等级的座位,相关规则应当可配置)条件下的预订则更好。 3、系统应当以B/S架构实现,其中服务器端应当根据功能及架构的设计,划分为多个微服务来实现,各个微服务应当有明确的功能边界。 系统应当具备对自身运行状况的监控及报警能力,并提供相应的可视化界面;需要为非功能需求中的熔断/限流/灰度等能力提供相应的可视化配置界面。 |
非功能性要求 | 1、系统应当具备支持500人以上并发查询和50人以上并发预订的能力,且在此场景下单次查询或预订的响应时间都应当在1秒以内(如程序部署的云平台提供针对特定服务调用响应时间的采集与展示,则从终端用户浏览器或测试工具部署机到程序部署所在云平台间的网络延迟可以不计入) 2、系统应当具备在访问量超过系统容量时对请求的限流能力和对异常微服务的熔断能力 系统应当支持灰度发布,可按照不同维度(具体由开发者自行决定,但应当至少有两个不同的维度)对访问请求进行分流 |
实现条件:开发环境、实验平台、开发语言、数据库、编译器、涉及硬件等实现条件 | 开发语言、开发环境、数据库、编译器——均不限 实验平台:程序应当能在Kubernetes平台上运行,微服务框架建议使用Istio(也可使用任意其他微服务框架,确保满足非功能要求2、3即可)。 |
测试数据或平台:提供给参赛者的测试环境和测试数据 | 航班及价格等数据可以自行从公开的机票预订网站上获得,也可以自行模拟生成。 |
开发所需设备及设备指标需求说明 | 无特殊要求。 建议参赛选手直接使用各大公有云平台提供的Kubernetes服务;也可以自行搭建私有的Kubernetes环境。无论何种方式搭建的Kubernetes,选手须保证在其上运行的程序可以直接从Internet访问到。 |
文档及其他要求 | 相关设计和说明文档应包含:软件结构说明、功能模块与微服务设计说明、接口设计说明、主要数据结构及算法说明等,为读者提供清晰的程序结构说明和源代码阅读指南。 |
各评分项及大致占比 | 1、提交材料(20%) 2、功能和非功能实现(60%) 3、创新(20%) |
初赛作品提交要求 | 1、源代码、程序镜像包、程序在Kubernetes平台上部署时所必需的资源对象描述、相关设计和说明文档、演示视频(7分钟之内)、ppt、测试数据、测试操作说明、测试过程与结果等。 2、作品实例应直接部署在公有云(或可以支持从Internet访问的私有云)平台上,方便评审老师访问。 |
【参赛团队作品中团队自主开发部分的软件作品著作权归参赛团队所有,其中具有市场应用及拓展的优秀作品,出题企业具有优先权,可以优先合作开发或者优先购买。另如基于该作品的任何合作升级开发、市场拓展等活动,以及在这一过程中所获得的任何商业费用,出题企业应与参赛团队协商解决。】
客服电话:010-88559646
大赛邮箱:cnsoftbei@qq.com
邮编:100048
联系地址:北京市海淀区紫竹院路66号赛迪大厦18层