C/S架构的应用程序开发实战(一)

项目背景

近期需要开发一个对巨量的图片数据进行车辆品牌信息标注的工具,为了提高标注效率,准备先通过现有车辆品牌识别的算法模型进行下预标注,标注人员在此基础上进行审核和修改即可。另外,需要统计出各个品牌数据的数量等信息。

软件架构确定

用户是分散的,待标注数据量大而且通常存在用户PC机的磁盘上,软件做成一款即开即用的桌面应用是非常合适的。但考虑到要用算法进行预标注,算法模型运行要用到性能较好的GPU资源,为每个用户提供具有这样硬件资源的是不切合实际的,所以可以采用部署后端服务的方法。是采用C/S架构呢,还是B/S架构呢?针对实际应用场景,需要进行大量的数据交互,而且用户数也不算多,对实用性、稳定性的要求较高,因此决定采用C/S架构。
后端服务采用Flasky框架,主要对算法模型进行封装,数据库增删改查接口以及算法运行几个Restfull风格的API实现;数据库采用mysql,建立车辆品牌表;前端GUI采用PqQt5,通过http协议和后端进行通信。

设计方案

  1. 进一步确认沟通、细化需求。时间允许的话,最好进行评审,形成需求文档。
  2. 业务流程梳理。
  3. 数据库表单制定,示例如下图:
    在这里插入图片描述
  4. 接口设计,形成文档,示例如下图:
  • 方法 :POST
  • URI: /vehicle_label/algorithem/get_result
  • 数据格式:json
  • 请求参数:
    参数名 必选 类型 描述
    image 是 base64
  • 应答参数:
    参数名 必选 类型 描述
    errorCode 是 int
    desc 是 string
    result 否 Dic
  • 请求示例:
    {
    “image_data”: ***
    }
  • 应答示例:
    {
    “errorCode”: 0,
    “desc”: “成功”,
    “result”: {
    “brand_a”: “a027_Jeep”,
    “brand_b”: “a027b01_Jeep(进口)”,
    “brand_c”: “a027b01c07_牧马人”,
    “brand_d”: “a027b01c07d13_2010款”
    }
    }
  1. 前端
    时间允许的话,最后画出界面的设计示意图,作为前端界面开发的依据。

猜你喜欢

转载自blog.csdn.net/jane_xing/article/details/109671579