2、系统架构概览:追溯平台与OA系统的技术栈、网络拓扑、数据流向

本章聚焦于供应商CAPA整改任务同步场景下,追溯平台与OA系统之间的技术架构关系。理解两个系统的技术栈、网络拓扑及数据流向,是后续接口设计与开发的基础。以下从三个维度展开分析。

2.1 技术栈对比

追溯平台与OA系统在技术选型上存在显著差异,主要体现在数据库、中间件、部署方式及接口协议上。下表列出了核心组件的对比:

对比维度 追溯平台 OA系统
核心定位 产品全生命周期追溯与质量管理 企业流程审批与协同办公
数据库 PostgreSQL 14 + TimescaleDB(时序扩展) MySQL 8.0 + Redis 缓存
应用框架 Spring Boot 2.7 + MyBatis-Plus .NET 6 + Entity Framework Core
消息中间件 RabbitMQ(异步事件驱动) 无独立消息队列,依赖数据库轮询
接口协议 RESTful API + JSON WebService + XML(遗留接口)
部署方式 Docker + Kubernetes(容器化集群) Windows Server + IIS(单体部署)
认证方式 OAuth 2.0 + JWT Session + Cookie
集成要点: 追溯平台采用微服务架构,接口响应快、可水平扩展;OA系统为传统单体架构,接口调用需注意超时重试与幂等性设计。两者协议差异(JSON vs XML)要求集成网关做协议转换。

2.2 网络拓扑结构

两个系统部署在企业内网的不同网段,通过API网关与ESB(企业服务总线)实现跨网段通信。下图展示了核心网络拓扑关系:

网络拓扑结构:追溯平台 ↔ OA系统 追溯平台(DMZ区) API网关 CAPA服务 消息队列 追溯数据库 供应商数据同步服务 日志审计服务 OA系统(办公内网) WebService 整改审批 任务引擎 OA数据库 整改任务同步适配器 接口调用日志 ESB 协议转换 / 路由 FW FW 追溯平台服务 OA系统服务 ESB中间件 消息队列/任务引擎
网络隔离说明: 追溯平台部署在DMZ区,OA系统位于办公内网,两者之间通过防火墙策略仅开放指定端口(如443/8443)。ESB承担协议转换与路由转发,避免系统间直接暴露接口。

2.3 数据流向与同步流程

供应商CAPA整改任务的同步涉及三个主要阶段:任务下发、状态回写、附件同步。下图展示了完整的数据流向:

数据流向:CAPA整改任务同步 ① 任务下发 追溯平台 → OA系统 CAPA编号 / 供应商编码 整改要求 / 截止日期 附件清单(URL链接) ② 状态回写 OA系统 → 追溯平台 任务状态(待处理/进行中/已完成) 处理人 / 处理时间 整改结论 / 备注 ③ 附件同步 双向传输 整改报告(PDF) 现场照片(JPG/PNG) 检测记录(Excel) 同步时序与异常处理 • 任务下发:追溯平台调用OA WebService接口,创建整改任务实例,返回任务ID。 • 状态回写:OA系统在任务状态变更时,主动调用追溯平台REST接口,更新CAPA状态。 • 附件同步:通过ESB文件传输通道,将整改附件从OA文件服务器同步至追溯平台对象存储。 • 异常补偿:同步失败时,追溯平台每30分钟重试一次,最多重试3次;超过后触发告警。

2.4 接口调用时序

一次完整的CAPA整改任务同步,涉及以下关键步骤的时序交互:

  1. 任务创建: 追溯平台CAPA服务生成整改任务,通过ESB调用OA系统的 CreateTask 接口,传入任务参数。
  2. 任务确认: OA系统返回任务ID与接收确认,追溯平台将任务状态标记为“已下发”。
  3. 状态轮询: 追溯平台定时任务每5分钟查询OA系统 GetTaskStatus 接口,获取任务最新状态。
  4. 状态回写: OA系统在任务完成时,主动调用追溯平台 UpdateCAPAStatus 接口,回写整改结论。
  5. 附件传输: OA系统将整改附件上传至文件服务器,追溯平台通过ESB文件通道拉取附件并关联至CAPA记录。
注意事项: OA系统的WebService接口基于SOAP协议,响应时间可能超过5秒。追溯平台调用时需设置合理的超时时间(建议10秒),并启用连接池避免线程阻塞。同时,OA数据库的轮询频率不宜过高,防止对生产库造成压力。

2.5 关键设计决策

  • 异步解耦: 追溯平台通过消息队列(RabbitMQ)异步处理任务下发请求,避免同步阻塞影响核心业务。
  • 协议适配: ESB层统一将OA的XML/SOAP转换为追溯平台所需的JSON/REST,降低系统间耦合。
  • 幂等设计: 所有接口调用均支持幂等性,通过CAPA编号+任务ID唯一标识,防止重复创建或重复回写。
  • 审计追踪: 每次接口调用均记录请求/响应日志,存储在追溯平台的日志审计服务中,用于问题排查与合规审计。