Files
jiahong-doc/education/著作权相关.md
T
jiahong 00bd6eef13 up
2026-03-25 23:08:58 +08:00

73 KiB
Raw Blame History

互动课堂智能点阵笔系统 — 软件著作权规划

编制日期2026 年 2 月 14 日 权利人:深圳自然写科技有限公司 品牌:自然写 / Writech


一、系统架构总览

互动课堂智能点阵笔系统由终端应用层、网关与算力层、云服务层三层架构组成,覆盖从笔端数据采集到云端智能分析的完整链路。

┌─────────────────────────────────────────────────────────────────┐
│                        云服务层(Cloud)                        │
│  ┌──────────┐ ┌────────┐ ┌──────────┐ ┌──────────────────┐      │
│  │ 数据存储 │ │ AI识别 │ │ 学情分析 │ │ 教学资源管理中心 │      │
│  └──────────┘ └────────┘ └──────────┘ └──────────────────┘      │
├─────────────────────────────────────────────────────────────────┤
│                网关与算力层(Gateway + Edge AI                │
│  ┌──────────────┐ ┌────────────────┐ ┌────────────────────┐     │
│  │ 教室网关设备 │ │ 协议转换与路由 │ │ 设备管理与固件升级 │     │
│  └──────────────┘ └────────────────┘ └────────────────────┘     │
│  ┌────────────┐ ┌────────────┐ ┌────────────────┐               │
│  │ 智能算力盒 │ │ 端侧AI推理 │ │ 离线识别与缓存 │               │
│  └────────────┘ └────────────┘ └────────────────┘               │
├─────────────────────────────────────────────────────────────────┤
│                        终端应用层(APP)                        │
│  ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐       │
│  │  手机  │ │ 电视机 │ │   PC   │ │ 智慧黑板 │ │  Pad   │       │
│  └────────┘ └────────┘ └────────┘ └──────────┘ └────────┘       │
│  ┌──────────────────────────────────────────────────────┐       │
│  │           SDK(供第三方集成与客户化定制)            │       │
│  └──────────────────────────────────────────────────────┘       │
├─────────────────────────────────────────────────────────────────┤
│                      硬件设备层(Device)                       │
│  ┌────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐          │
│  │ 智能点阵笔 │ │ 点阵纸张 │ │ 充电底座 │ │ 网关硬件 │          │
│  └────────────┘ └──────────┘ └──────────┘ └──────────┘          │
└─────────────────────────────────────────────────────────────────┘
@startuml 系统架构总览
skinparam componentStyle rectangle
skinparam packageStyle frame

package "云服务层 (Cloud)" as Cloud #E8F5E9 {
  [教学管理云平台] as CMP
  [AI识别引擎] as AIE
  [学情诊断系统] as LDS
  [教学资源管理中心] as RMS
  CMP -[hidden]right- AIE
  AIE -[hidden]right- LDS
  LDS -[hidden]right- RMS
}

package "网关与算力层 (Gateway Edge AI)" as Gateway #FFF3E0 {
  [教室网关设备] as GW
  [协议转换与路由] as PTR
  [设备管理与固件升级] as DFU
  [智能算力盒] as EB
  [端侧AI推理] as EAI
  [离线识别与缓存] as OFC
  GW -[hidden]right- PTR
  PTR -[hidden]right- DFU
  EB -[hidden]right- EAI
  EAI -[hidden]right- OFC
}

package "硬件设备层 (Device)" as Device #F3E5F5 {
  [智能点阵笔] as Pen
  [点阵纸张] as Paper
  [充电底座] as Dock
  [网关硬件] as GWH
  Pen -[hidden]right- Paper
  Paper -[hidden]right- Dock
  Dock -[hidden]right- GWH
}

package "终端应用层 (APP)" as APP #E3F2FD {
  [手机APP] as Phone
  [电视APP] as TV
  [PC APP] as PC
  [智慧黑板APP] as Board
  [Pad APP] as Pad
  Phone -[hidden]right- TV
  TV -[hidden]right- PC
  PC -[hidden]right- Board
  Board -[hidden]right- Pad
  [SDK(供第三方集成与客户化定制)] as SDK
}

Device -up-> Gateway : BLE数据上传
Gateway -up-> Cloud : MQTT HTTPS
Cloud -right-> APP : REST API WebSocket
Gateway -right-> APP : 局域网推送
@enduml

二、软件著作权登记清单

根据系统架构,规划以下 13 项软件著作权登记:

2.1 登记清单总览

序号 软件全称 软件简称 版本 分类
1 自然写互动课堂教学管理云平台软件 自然写云平台 V1.0 云服务
2 自然写手写识别与AI分析引擎软件 自然写AI引擎 V1.0 云服务
3 自然写教学数据分析与学情诊断系统软件 自然写学情系统 V1.0 云服务
4 自然写教室智能网关管理软件 自然写网关软件 V1.0 网关
5 自然写教室智能算力盒边缘计算软件 自然写算力盒软件 V1.0 边缘算力
6 自然写互动课堂手机端应用软件 自然写APP(手机版) V1.0 APP
7 自然写互动课堂电视端应用软件 自然写APP(电视版) V1.0 APP
8 自然写互动课堂PC端应用软件 自然写APPPC版) V1.0 APP
9 自然写互动课堂智慧黑板端应用软件 自然写APP(黑板版) V1.0 APP
10 自然写互动课堂平板端应用软件 自然写APPPad版) V1.0 APP
11 自然写互动课堂应用开发SDK软件 自然写SDK V1.0 SDK
12 自然写智能点阵笔嵌入式固件软件 自然写笔固件 V1.0 固件
13 自然写教学资源管理与内容分发系统软件 自然写资源平台 V1.0 云服务

2.2 分类统计

分类 数量 包含项
云服务 4 项 云平台、AI引擎、学情系统、资源平台
网关 1 项 网关管理软件
边缘算力 1 项 智能算力盒边缘计算软件
APP 5 项 手机/电视/PC/智慧黑板/Pad 五端
SDK 1 项 应用开发SDK
固件 1 项 点阵笔嵌入式固件

三、各软件著作权详细说明

3.1 云服务层

1. 自然写互动课堂教学管理云平台软件 V1.0

项目 内容
软件全称 自然写互动课堂教学管理云平台软件
版本号 V1.0
开发语言 Java / Python / JavaScript
运行环境 Linux 服务器 / Docker 容器
软件用途 为互动课堂场景提供统一的教学管理、用户管理、设备管理、数据存储及业务调度服务

功能模块:

  • 用户与权限管理(教师/学生/管理员/家长多角色)
  • 班级与课程管理
  • 设备注册与绑定管理(点阵笔、网关、终端设备)
  • 笔迹数据接收与存储
  • 作业/试卷发布与回收
  • 教学过程数据记录
  • 多终端消息推送与同步
  • 系统运维监控与日志管理
  • 开放API接口(供APP和SDK调用)

技术架构:

采用微服务架构,主要分为以下层次:

层次 技术选型 说明
接入层 Nginx / Kong API Gateway 负载均衡、限流、路由分发
服务层 Spring BootJava/ FastAPIPython 业务微服务,按领域拆分(用户/课堂/作业/设备/消息)
消息层 RabbitMQ / Kafka 异步消息、事件驱动、笔迹数据流接收
缓存层 Redis 会话管理、热数据缓存、实时状态
存储层 MySQL + MongoDB + OSS 结构化数据 / 笔迹文档数据 / 文件对象存储
监控层 Prometheus + Grafana + ELK 服务监控、日志采集、告警
@startuml 云平台技术架构
skinparam componentStyle rectangle

package "接入层" as L1 #E8EAF6 {
  [Nginx] as NG
  [Kong API Gateway] as KG
  NG -[hidden]right- KG
}

package "服务层(微服务)" as L2 #E3F2FD {
  [用户服务] as US
  [课堂服务] as CS
  [作业服务] as AS
  [设备服务] as DS
  [消息服务] as MS
  US -[hidden]right- CS
  CS -[hidden]right- AS
  AS -[hidden]right- DS
  DS -[hidden]right- MS
}

package "消息层" as L3 #FFF3E0 {
  [RabbitMQ] as RMQ
  [Kafka] as KFK
  RMQ -[hidden]right- KFK
}

package "缓存层" as L4 #FFFDE7 {
  [Redis] as RDS
}

package "存储层" as L5 #E8F5E9 {
  [MySQL] as SQL
  [MongoDB] as MDB
  [OSS对象存储] as OSS
  SQL -[hidden]right- MDB
  MDB -[hidden]right- OSS
}

package "监控层" as L6 #FCE4EC {
  [Prometheus] as PM
  [Grafana] as GF
  [ELK] as ELK
  PM -[hidden]right- GF
  GF -[hidden]right- ELK
}

L1 -down-> L2
L2 -down-> L3
L2 -down-> L4
L3 -down-> L5
L4 -down-> L5
L2 -down-> L6
@enduml

数据设计:

核心数据表:

数据表 存储引擎 主要字段 说明
user MySQL id, role, name, school_id, phone 用户主表(教师/学生/家长/管理员)
class MySQL id, name, grade, teacher_id, school_id 班级信息
device MySQL id, type, mac_addr, bindUser, status 设备注册表(笔/网关/终端)
assignment MySQL id, class_id, title, type, deadline 作业/试卷发布表
stroke_data MongoDB student_id, assignment_id, strokes[], timestamp 笔迹原始数据(JSON文档)
recognition_result MongoDB stroke_id, ocr_text, score, ai_feedback AI识别与批改结果
learning_record MySQL id, student_id, subject, score, date 学习记录
message MySQL id, from, to, type, content, read_status 消息通知表

数据流向:点阵笔 → 网关/算力盒 → Kafka消息队列 → 云平台数据接收服务 → MongoDB存储 → AI引擎处理 → 结果回写

接口设计:

接口 方法 路径 说明
用户登录 POST /api/v1/auth/login JWT令牌签发
设备注册 POST /api/v1/device/register 绑定笔/网关设备
发布作业 POST /api/v1/assignment/publish 教师端发布作业
提交笔迹 POST /api/v1/stroke/upload 批量上传笔迹数据
获取批改结果 GET /api/v1/result/{assignment_id} 查询AI批改结果
学情报告 GET /api/v1/report/student/{id} 学生学情报告
消息推送 WebSocket /ws/v1/notify 实时消息通道

统一响应格式:{"code": 200, "msg": "success", "data": {...}}

安全设计:

  • 身份认证:JWT Token + Refresh Token 双令牌机制,Token有效期2小时
  • 权限控制:RBAC角色权限模型(管理员/教师/学生/家长四级权限)
  • 数据传输:全链路 HTTPS/TLS 1.3 加密
  • 数据存储:敏感字段(手机号、身份信息)AES-256加密存储
  • 隐私保护:学生数据脱敏展示,符合《个人信息保护法》及《儿童个人信息网络保护规定》
  • 接口安全:请求签名校验、频率限流、SQL注入/XSS防护

部署架构:

  • 容器化部署:Docker + Kubernetes 集群编排
  • 数据库:主从读写分离 + 定时备份
  • 弹性扩缩:基于CPU/内存使用率自动扩容
  • 多环境:开发 → 测试 → 预生产 → 生产四级环境隔离
  • 灾备:数据库异地备份,服务多可用区部署
@startuml 云平台部署架构
skinparam componentStyle rectangle
skinparam nodeStyle rectangle

node "可用区A" as AZA {
  node "K8s集群" as K8SA {
    [微服务Pod x N] as POD_A
  }
  database "MySQL主库" as MYSQL_M
  database "MongoDB副本集" as MDB_A
}

node "可用区B" as AZB {
  node "K8s集群" as K8SB {
    [微服务Pod x N] as POD_B
  }
  database "MySQL从库" as MYSQL_S
  database "MongoDB副本集" as MDB_B
}

cloud "CDN / 负载均衡" as LB
cloud "OSS对象存储" as OSS
storage "异地备份" as BACKUP

LB -down-> K8SA
LB -down-> K8SB
MYSQL_M -right-> MYSQL_S : 主从复制
MDB_A -right-> MDB_B : 副本同步
MYSQL_M -down-> BACKUP : 定时备份
POD_A -down-> MYSQL_M
POD_A -down-> MDB_A
POD_B -down-> MYSQL_S
POD_B -down-> MDB_B
POD_A --> OSS
@enduml

2. 自然写手写识别与AI分析引擎软件 V1.0

项目 内容
软件全称 自然写手写识别与AI分析引擎软件
版本号 V1.0
开发语言 Python / C++
运行环境 Linux 服务器(GPU 加速)
软件用途 对智能点阵笔采集的笔迹数据进行OCR识别、数学列式识别、笔顺分析及AI智能批改

功能模块:

  • 中英文手写文字OCR识别(基于PaddleOCR
  • 数学列式与公式识别
  • 中文汉字笔顺识别与评分
  • 书写质量评测(结构/间距/规范性)
  • AI作文评分与批改
  • 选择题/填空题/简答题自动批改
  • 识别结果置信度评估
  • 模型版本管理与热更新
  • RESTful API / gRPC 服务接口

技术架构:

采用模型推理管道(Pipeline)架构:

层次 技术选型 说明
接口层 FastAPI + gRPC HTTP REST接口(轻量调用)+ gRPC(高性能流式传输)
调度层 Celery + Redis 异步任务队列,按优先级调度识别请求
推理层 PaddleOCR / PyTorch / ONNX Runtime OCR引擎 + 数学识别 + 笔顺模型 + 作文评分模型
GPU管理 NVIDIA Triton Inference Server 多模型并发推理,GPU资源池化调度
模型仓库 MinIO + MLflow 模型版本管理、A/B测试、灰度发布
@startuml AI引擎技术架构
skinparam componentStyle rectangle

package "接口层" as IL #E8EAF6 {
  [FastAPI REST] as REST
  [gRPC Server] as GRPC
  REST -[hidden]right- GRPC
}

package "调度层" as SL #FFF3E0 {
  [Celery任务队列] as CEL
  [Redis Broker] as RB
  CEL -right-> RB
}

package "推理层" as INF #E3F2FD {
  [PaddleOCR] as OCR
  [PyTorch数学识别] as MATH
  [笔顺分析模型] as STROKE
  [作文评分模型] as ESSAY
  OCR -[hidden]right- MATH
  MATH -[hidden]right- STROKE
  STROKE -[hidden]right- ESSAY
}

package "GPU管理" as GPU #E8F5E9 {
  [NVIDIA Triton\nInference Server] as TRITON
}

package "模型仓库" as MR #F3E5F5 {
  [MinIO] as MINIO
  [MLflow] as MLF
  MINIO -[hidden]right- MLF
}

IL -down-> SL
SL -down-> INF
INF -down-> GPU
GPU --> MR : 模型加载
@enduml

推理管道流程:笔迹坐标 → 预处理(归一化/去噪) → 笔画分割 → 模型推理(OCR/数学/笔顺) → 后处理(置信度过滤/结果合并) → 结果输出

数据设计:

数据结构 格式 说明
笔迹输入 JSON {strokes: [{x, y, pressure, timestamp}], page_id, pen_id}
OCR结果 JSON {text, confidence, bbox: [x1,y1,x2,y2], char_details[]}
数学识别结果 JSON {latex, result, is_correct, steps[]}
笔顺评分 JSON {char, stroke_order[], correct_order[], score, errors[]}
作文评分 JSON {total_score, dimensions: {structure, grammar, content, rhetoric}}
模型元数据 MySQL 模型名称、版本、精度指标、部署状态、更新时间

接口设计:

接口 协议 路径/方法 说明
文字识别 REST POST /api/v1/ocr/recognize 手写文字OCR,返回识别文本
数学识别 REST POST /api/v1/math/recognize 数学列式/公式识别
笔顺评分 REST POST /api/v1/stroke-order/evaluate 笔顺正确性评分
书写质量评测 REST POST /api/v1/writing/quality 书写规范性评分
作文批改 REST POST /api/v1/essay/review AI作文评分与批改建议
批量识别 gRPC RecognitionService.BatchRecognize 高性能批量识别(流式)
模型状态 REST GET /api/v1/model/status 查询各模型加载状态与版本

安全设计:

  • 服务鉴权:内部服务间 mTLS 双向认证
  • 请求校验:输入数据格式校验与大小限制(防恶意攻击)
  • 模型保护:模型文件加密存储,推理时内存解密加载
  • 数据隔离:学生笔迹数据处理完毕后不在推理服务中持久化
  • 审计日志:所有识别请求记录调用方、时间、模型版本

部署架构:

  • GPU集群:NVIDIA T4/A10 GPU服务器,Triton Inference Server管理
  • 弹性扩缩:根据识别请求队列深度自动扩容GPU Pod
  • 模型热更新:新模型通过灰度发布逐步替换,支持秒级回滚
  • 监控:推理延迟P99、GPU利用率、模型准确率实时监控
@startuml AI引擎部署架构
skinparam componentStyle rectangle
skinparam nodeStyle rectangle

node "GPU服务器集群" as GPUC {
  node "GPU Node 1" as GN1 {
    [Triton Server] as T1
    [T4 A10 GPU] as G1
  }
  node "GPU Node N" as GNN {
    [Triton Server] as TN
    [T4 A10 GPU] as GN
  }
}

node "调度节点" as SCH {
  [Celery Worker] as CW
  [Redis Queue] as RQ
}

storage "模型仓库\n(MinIO+MLflow)" as MODEL
cloud "API Gateway" as API

API -down-> SCH : 识别请求
SCH -down-> GPUC : 分发推理任务
MODEL -left-> GPUC : 模型版本下发
@enduml

3. 自然写教学数据分析与学情诊断系统软件 V1.0

项目 内容
软件全称 自然写教学数据分析与学情诊断系统软件
版本号 V1.0
开发语言 Python / Java
运行环境 Linux 服务器
软件用途 对学生书写及答题数据进行大数据分析,生成学情诊断报告,辅助教学决策

功能模块:

  • 学生个人学情画像(知识点掌握度、薄弱环节)
  • 班级/年级学情统计与对比
  • 作业/考试成绩分析与趋势报告
  • 书写能力成长轨迹
  • 错题归因与知识图谱关联
  • 教学效果评估
  • 可视化报表与数据导出
  • 家长端学情推送

技术架构:

采用数据仓库 + 分析引擎架构:

层次 技术选型 说明
数据采集层 Kafka + Flink 实时数据流采集与ETL处理
数据仓库层 ClickHouse + MySQL 分析型存储(OLAP) + 业务数据(OLTP)
分析引擎层 PythonPandas/Scikit-learn 学情诊断算法、知识图谱推理、趋势预测
知识图谱层 Neo4j 知识点关联关系、错题归因推理
可视化层 ECharts + 自研报表引擎 多维度数据可视化
推送层 WebSocket + 消息队列 实时学情推送至各终端
@startuml 学情系统技术架构
skinparam componentStyle rectangle

package "数据采集层" as DC #E8EAF6 {
  [Kafka] as KFK
  [Flink ETL] as FLINK
  KFK -right-> FLINK
}

package "数据仓库层" as DW #E3F2FD {
  [ClickHouse\n(OLAP分析)] as CH
  [MySQL\n(OLTP业务)] as SQL
  CH -[hidden]right- SQL
}

package "分析引擎层" as AE #FFF3E0 {
  [学情诊断算法\n(Pandas Scikit learn)] as ALG
}

package "知识图谱层" as KG #E8F5E9 {
  [Neo4j\n知识点关系图谱] as NEO
}

package "可视化层" as VIS #F3E5F5 {
  [ECharts] as EC
  [自研报表引擎] as RPT
  EC -[hidden]right- RPT
}

package "推送层" as PUSH #FFFDE7 {
  [WebSocket] as WS
  [消息队列] as MQ
  WS -[hidden]right- MQ
}

DC -right-> DW : ETL写入
DW -down-> AE : 数据查询
AE -right-> KG : 错题归因
AE -down-> VIS : 分析结果
VIS -left-> PUSH : 报告推送
@enduml

数据设计:

核心数据模型:

数据表/集合 存储 说明
knowledge_point Neo4j 知识点节点(科目/年级/章节/知识点层级)
knowledge_relation Neo4j 知识点前驱/后继/包含关系边
student_profile ClickHouse 学生画像宽表(知识掌握度向量)
exam_analysis ClickHouse 考试/作业分析结果(得分率、区分度、难度系数)
error_record MySQL 错题记录(题目ID、错因分类、知识点关联)
writing_growth ClickHouse 书写能力时序数据(笔顺正确率、规范性评分)
report_snapshot MongoDB 生成的报告快照(PDF/JSON

ETL流程:原始笔迹/批改数据 → Kafka → Flink实时计算 → 聚合指标写入ClickHouse → 定时生成诊断报告

接口设计:

接口 方法 路径 说明
学生画像 GET /api/v1/profile/student/{id} 获取学生知识掌握度画像
班级学情 GET /api/v1/report/class/{id} 班级学情统计(平均/分布/对比)
错题分析 GET /api/v1/error/analysis/{student_id} 错题归因与知识薄弱点
成长轨迹 GET /api/v1/growth/{student_id} 书写能力成长时序数据
报告导出 POST /api/v1/report/export 生成PDF报告并返回下载链接
家长推送 POST /api/v1/push/parent 触发学情推送至家长端

安全设计:

  • 数据脱敏:报表展示中学生姓名可选脱敏,仅管理员可查看完整信息
  • 数据权限:教师仅可查看本班数据,家长仅可查看本人子女数据
  • 数据留存:学生数据留存策略符合教育部门数据管理规范
  • 传输加密:内部服务间数据传输 TLS 加密
  • 审计追踪:数据查询与导出操作全程记录审计日志

部署架构:

  • ClickHouse 集群:分片 + 副本,支撑大规模分析查询
  • Flink 集群:Standalone / YARN 模式,实时流处理
  • Neo4j:主从备份,知识图谱数据定期快照
  • 定时任务:每日/每周自动生成学情诊断报告
@startuml 学情系统部署架构
skinparam componentStyle rectangle
skinparam nodeStyle rectangle

queue "Kafka" as KFK

node "Flink集群" as FLC {
  [JobManager] as JM
  [TaskManager x N] as TM
}

node "ClickHouse集群" as CHC {
  [分片1 副本] as S1
  [分片N 副本] as SN
}

node "Neo4j" as NEO {
  [主节点] as NM
  [从节点(备份)] as NS
  NM -right-> NS : 数据复制
}

node "定时调度\n(CronJob)" as CRON

KFK -down-> FLC : 数据流
FLC -down-> CHC : 聚合写入
CHC -down-> CRON : 定时报告生成
NEO -down-> CRON : 错题归因查询
@enduml

13. 自然写教学资源管理与内容分发系统软件 V1.0

项目 内容
软件全称 自然写教学资源管理与内容分发系统软件
版本号 V1.0
开发语言 Java / JavaScript
运行环境 Linux 服务器 / CDN
软件用途 管理和分发教学课件、字帖模板、试卷、点阵码资源等教学内容

功能模块:

  • 课件/字帖/试卷模板管理
  • 点阵码资源生成与管理
  • 内容审核与版本控制
  • 多终端资源分发与缓存
  • 教师自定义内容上传
  • 按年级/学科/出版社分类检索
  • CDN 加速分发
  • 资源使用统计

技术架构:

采用 CMS 内容管理 + CDN 分发架构:

层次 技术选型 说明
内容管理层 Spring Boot + Vue.js 后台管理系统(上传/审核/编辑/分类)
存储层 对象存储(OSS/MinIO + MySQL 文件资源存储 + 元数据管理
生成层 Python(点阵码生成引擎) 点阵码图案生成、PDF合成、字帖排版
分发层 CDN + 边缘缓存 全国节点加速分发教学资源
检索层 Elasticsearch 按年级/学科/出版社/关键词全文检索
@startuml 资源平台技术架构
skinparam componentStyle rectangle

package "内容管理层" as CMS #E8EAF6 {
  [Spring Boot后端] as SB
  [Vue.js管理前端] as VUE
  SB -right-> VUE
}

package "存储层" as STORE #E3F2FD {
  [OSS MinIO\n对象存储] as OSS
  [MySQL\n元数据] as SQL
  OSS -[hidden]right- SQL
}

package "生成层" as GEN #FFF3E0 {
  [点阵码生成引擎\n(Python)] as DOT
  [PDF合成 字帖排版] as PDF
  DOT -[hidden]right- PDF
}

package "分发层" as CDN_L #E8F5E9 {
  [CDN加速] as CDN
  [边缘缓存] as EDGE
  CDN -[hidden]right- EDGE
}

package "检索层" as SEARCH #F3E5F5 {
  [Elasticsearch] as ES
}

CMS -down-> STORE : 上传/审核
CMS -down-> GEN : 点阵码生成
STORE -down-> CDN_L : 资源分发
CMS -right-> SEARCH : 索引建立
@enduml

数据设计:

数据表 存储 说明
resource MySQL 资源元数据(名称、类型、学科、年级、出版社、版本号)
resource_file OSS 资源文件本体(PDF/图片/模板/点阵码文件)
dot_pattern MySQL + OSS 点阵码资源(码ID范围、绑定页面、生成参数)
audit_record MySQL 审核记录(审核人、状态、意见、时间)
usage_stat ClickHouse 资源使用统计(下载量、使用次数、终端分布)
category MySQL 分类目录树(年级/学科/出版社三级分类)

接口设计:

接口 方法 路径 说明
资源检索 GET /api/v1/resource/search 按条件检索资源(分类/关键词)
资源下载 GET /api/v1/resource/download/{id} 获取资源下载地址(CDN签名URL
资源上传 POST /api/v1/resource/upload 教师上传自定义资源
点阵码生成 POST /api/v1/dotcode/generate 生成点阵码资源包
内容审核 PUT /api/v1/resource/audit/{id} 审核通过/驳回
版本管理 GET /api/v1/resource/versions/{id} 获取资源历史版本
使用统计 GET /api/v1/stat/resource/{id} 查询资源使用数据

安全设计:

  • 内容审核:教师上传资源需管理员审核通过后方可分发
  • 防盗链:CDN资源通过 Referer 校验 + 签名URL 防止非法访问
  • 版权保护:资源文件添加数字水印(水印包含学校/教师标识)
  • 权限控制:资源按学校/区域授权,教师仅可访问本校已授权资源
  • 点阵码安全:点阵码ID范围全局唯一分配,防冲突

部署架构:

  • OSS对象存储:多副本冗余,99.99%数据持久性
  • CDN:全国多节点就近接入,资源预热机制
  • Elasticsearch:集群部署,索引按学科/年级分片
  • 定时任务:CDN缓存刷新、资源使用报表生成
@startuml 资源平台部署架构
skinparam componentStyle rectangle
skinparam nodeStyle rectangle

cloud "CDN网络" as CDN {
  [华东节点] as N1
  [华南节点] as N2
  [华北节点] as N3
}

node "应用服务器" as APP {
  [Spring Boot\nCMS服务] as CMS
  [Python\n点阵码引擎] as DOT
}

database "OSS对象存储\n(多副本冗余)" as OSS
database "MySQL" as SQL
database "Elasticsearch\n集群" as ES

APP -down-> SQL : 元数据
APP -down-> OSS : 文件存储
APP -right-> ES : 全文索引
OSS -up-> CDN : 资源预热分发
@enduml

3.2 网关与边缘算力层

4. 自然写教室智能网关管理软件 V1.0

项目 内容
软件全称 自然写教室智能网关管理软件
版本号 V1.0
开发语言 C / C++ / Python
运行环境 嵌入式 Linux(网关硬件设备)
软件用途 运行于教室网关设备,负责蓝牙/WiFi接收点阵笔数据,协议转换后上传至云端,并管理教室内设备互联

功能模块:

  • 蓝牙多笔同时连接管理(支持 40+ 支笔并发)
  • 笔迹数据实时接收与缓存
  • 通信协议转换(BLE → TCP/MQTT
  • 数据压缩与加密上传
  • 断网离线缓存与自动续传
  • 设备发现与自动配对
  • 固件远程升级(OTA
  • 设备状态上报与心跳监测
  • 本地数据临时存储
  • 与云平台双向通信

技术架构:

采用嵌入式分层架构,运行于网关硬件设备:

层次 技术选型 说明
硬件抽象层(HAL C 蓝牙芯片/WiFi模块/GPIO/存储驱动
通信协议层 BlueZBLE+ lwIP BLE 5.0 多连接管理 + TCP/IP网络通信
消息中间层 Eclipse MosquittoMQTT Client 与云端MQTT Broker双向通信
业务逻辑层 C++ / Python 数据缓存调度、设备管理、协议转换
管理层 轻量Web Serverlighttpd 本地Web配置页面、状态查询
@startuml 网关技术架构
skinparam componentStyle rectangle

package "管理层" as MGR #F3E5F5 {
  [lighttpd\n本地Web管理] as WEB
}

package "业务逻辑层" as BIZ #FFF3E0 {
  [数据缓存调度] as CACHE
  [设备管理] as DEV
  [协议转换] as CONV
  CACHE -[hidden]right- DEV
  DEV -[hidden]right- CONV
}

package "消息中间层" as MSG #E8F5E9 {
  [MQTT Client\n(Mosquitto)] as MQTT
}

package "通信协议层" as COM #E3F2FD {
  [BlueZ (BLE 5.0)\n多连接管理] as BLE
  [lwIP\nTCP IP通信] as NET
  BLE -[hidden]right- NET
}

package "硬件抽象层 (HAL)" as HAL #E8EAF6 {
  [蓝牙芯片驱动] as BT
  [WiFi模块驱动] as WIFI
  [GPIO 存储驱动] as GPIO
  BT -[hidden]right- WIFI
  WIFI -[hidden]right- GPIO
}

HAL -up-> COM
COM -up-> BIZ
BIZ -up-> MSG : MQTT上报
BIZ -up-> MGR
@enduml

数据流:点阵笔(BLE) → BLE协议栈接收 → 数据解包 → 环形缓冲区 → MQTT编码 → 云平台

数据设计:

数据结构 存储方式 说明
笔迹缓冲区 内存环形Buffer 实时笔迹数据循环缓冲(容量2MB
离线缓存队列 SQLite / Flash文件 断网时笔迹数据持久化队列(FIFO,容量64MB)
设备列表 SQLite 已配对笔设备MAC地址、名称、电量、最后连接时间
配置数据 JSON配置文件 网关WiFi配置、MQTT服务器地址、心跳间隔等
OTA包缓存 Flash分区 固件升级包双分区存储(A/B分区)
日志文件 轮转日志(logrotate 运行日志、错误日志、通信日志

接口设计:

接口 方向 协议 说明
笔迹数据上报 网关→云端 MQTT Topic: pen/{gateway_id}/stroke
设备状态上报 网关→云端 MQTT Topic: gateway/{id}/status(心跳/电量/在线笔数)
远程指令下发 云端→网关 MQTT Topic: gateway/{id}/command(重启/配置更新/OTA
OTA固件下载 云端→网关 HTTPS 下载固件升级包到本地Flash
BLE笔连接 笔→网关 BLE GATT 自定义Service UUID,笔迹数据通过Notify方式传输
本地管理页面 用户→网关 HTTP http://192.168.x.x:8080 本地配置管理Web页面

安全设计:

  • 通信加密:MQTT over TLS,云端通信全程加密
  • BLE配对:采用安全配对模式(Numeric Comparison),防止非法笔连接
  • OTA安全:固件包RSA签名校验,防止恶意固件注入
  • 设备认证:网关首次上线需通过设备证书(X.509)认证
  • 数据完整性:离线缓存数据CRC校验,防止Flash损坏导致数据丢失

部署架构:

  • 每间教室部署1台网关设备
  • 支持40+支点阵笔同时连接
  • 固件A/B双分区:升级失败自动回滚至上一版本
  • 看门狗机制:软件异常时自动重启恢复
@startuml 网关部署架构
skinparam componentStyle rectangle
skinparam nodeStyle rectangle

node "教室" as ROOM {
  node "网关设备" as GW {
    [App分区A\n(当前运行)] as PA
    [App分区B\n(备份 升级)] as PB
    [Bootloader] as BL
    [NVS配置] as NVS
  }
  collections "点阵笔 x 40" as PENS
}

cloud "云平台" as CLOUD {
  [MQTT Broker] as MQTT
  [OTA服务] as OTA
}

PENS -up-> GW : BLE连接
GW -up-> CLOUD : MQTT over TLS
OTA -down-> GW : 固件下载(HTTPS)
PA .right. PB : A/B分区切换
@enduml

5. 自然写教室智能算力盒边缘计算软件 V1.0

项目 内容
软件全称 自然写教室智能算力盒边缘计算软件
版本号 V1.0
开发语言 C++ / Python
运行环境 嵌入式 LinuxARM/x86 算力盒硬件,搭载 NPU/GPU 加速模块)
软件用途 运行于教室智能算力盒设备,在本地完成手写识别、笔顺分析等AI推理任务,降低云端依赖,实现低延迟实时响应与离线可用

功能模块:

  • 端侧AI推理引擎(手写OCR、数学列式识别、笔顺分析本地运行)
  • 轻量化模型管理(模型加载、版本切换、云端同步更新)
  • 笔迹数据本地预处理(去噪、坐标归一化、笔画分割)
  • 实时识别结果分发(将识别结果推送至教室内各终端)
  • 离线模式支持(断网环境下完整AI识别能力不降级)
  • 本地数据缓存与批量上传(网络恢复后自动同步至云端)
  • 与教室网关协同工作(接收网关转发的笔迹数据流)
  • 多教室算力盒集群管理(校级统一调度与负载均衡)
  • NPU/GPU 硬件加速调度
  • 设备运行状态监控与远程运维
  • OTA 固件与模型远程升级

技术架构:

采用边缘AI推理分层架构,运行于ARM/x86算力盒硬件:

层次 技术选型 说明
硬件加速层 RKNN(瑞芯微)/ CUDANVIDIA / OpenCL NPU/GPU硬件推理加速驱动
推理框架层 ONNX Runtime / TensorRT / PaddleLite 模型加载与推理执行引擎
模型管理层 自研(C++ / Python 模型版本管理、动态加载、量化压缩、云端同步
业务服务层 Python / C++ 笔迹预处理、推理调度、结果分发、离线缓存
通信层 gRPC + MQTT 与网关数据交互(gRPC) + 与云端状态同步(MQTT)
管理层 Flask + SQLite 本地管理API、集群管理、状态上报
@startuml 算力盒技术架构
skinparam componentStyle rectangle

package "管理层" as MGR #F3E5F5 {
  [Flask管理API] as FLASK
  [SQLite] as SQLT
  FLASK -right-> SQLT
}

package "通信层" as COM #FFFDE7 {
  [gRPC\n(网关数据交互)] as GRPC
  [MQTT\n(云端状态同步)] as MQTT
  GRPC -[hidden]right- MQTT
}

package "业务服务层" as BIZ #FFF3E0 {
  [笔迹预处理] as PRE
  [推理调度] as SCH
  [结果分发] as DIST
  [离线缓存] as OFC
  PRE -[hidden]right- SCH
  SCH -[hidden]right- DIST
  DIST -[hidden]right- OFC
}

package "模型管理层" as MODEL #E3F2FD {
  [模型版本管理] as VER
  [动态加载 量化] as LOAD
  [云端同步更新] as SYNC
  VER -[hidden]right- LOAD
  LOAD -[hidden]right- SYNC
}

package "推理框架层" as INF #E8F5E9 {
  [ONNX Runtime] as ONNX
  [TensorRT] as TRT
  [PaddleLite] as PL
  ONNX -[hidden]right- TRT
  TRT -[hidden]right- PL
}

package "硬件加速层" as HW #E8EAF6 {
  [RKNN (NPU)] as NPU
  [CUDA (GPU)] as CUDA
  [OpenCL] as OCL
  NPU -[hidden]right- CUDA
  CUDA -[hidden]right- OCL
}

COM -down-> BIZ
BIZ -down-> MODEL
MODEL -down-> INF
INF -down-> HW
BIZ -right-> MGR
@enduml

推理流程:网关笔迹数据(gRPC) → 数据预处理(去噪/归一化/笔画分割) → NPU/GPU推理 → 后处理 → 结果推送各终端

数据设计:

数据结构 存储方式 说明
推理模型文件 本地Flash/opt/models/ ONNX/TRT模型文件(OCR/数学/笔顺各一套)
模型元信息 SQLite 模型名称、版本、大小、精度指标、启用状态
推理任务队列 内存优先级队列 待推理任务(按实时/批量优先级排序)
笔迹预处理缓存 内存 + tmpfs 预处理后的笔迹张量数据(推理完即释放)
离线结果缓存 SQLite 断网期间推理结果暂存,恢复后上传云端
运行日志 轮转日志文件 推理耗时、GPU利用率、错误记录
OTA包 Flash A/B分区 固件升级包 + 模型升级包分区存储

接口设计:

接口 方向 协议 说明
笔迹数据接收 网关→算力盒 gRPC InferenceService.ProcessStroke 流式接收笔迹
识别结果推送 算力盒→终端 gRPC/WebSocket 将识别结果实时推送至黑板/PC/Pad
模型同步 云端→算力盒 HTTPS 检查并下载新版本模型文件
状态上报 算力盒→云端 MQTT Topic: edgebox/{id}/statusGPU利用率/温度/推理QPS
远程管理 云端→算力盒 MQTT Topic: edgebox/{id}/command(重启/模型切换/OTA
集群管理 算力盒↔算力盒 mDNS + gRPC 多台算力盒校级发现与负载均衡调度

安全设计:

  • 模型加密:模型文件AES-256加密存储,推理时内存解密加载
  • 通信安全:gRPC 启用 mTLS 双向认证,MQTT over TLS
  • OTA安全:升级包RSA签名 + SHA-256校验,防篡改
  • 运行隔离:推理进程与管理进程独立沙箱,异常不互相影响
  • 物理安全:设备唯一序列号绑定,非授权设备无法接入网络

部署架构:

  • 每间教室部署1台算力盒(可选,与网关配合使用)
  • 或按年级/楼层部署1台算力盒服务多间教室
  • 支持NPU推理延迟 < 200ms(单次OCR识别)
  • A/B双分区升级:固件与模型分别独立升级通道
  • 看门狗 + 心跳机制:异常自动重启,云端监控报警
@startuml 算力盒部署架构
skinparam componentStyle rectangle
skinparam nodeStyle rectangle

node "教室A" as RA {
  node "算力盒" as EB_A {
    [AI推理引擎] as AI_A
    [NPU GPU] as GPU_A
  }
  node "网关" as GW_A
  collections "点阵笔" as PEN_A
}

node "教室B" as RB {
  node "算力盒" as EB_B {
    [AI推理引擎] as AI_B
    [NPU GPU] as GPU_B
  }
  node "网关" as GW_B
}

cloud "云平台" as CLOUD {
  [模型仓库] as MODEL
  [MQTT Broker] as MQTT
  [OTA服务] as OTA
}

PEN_A -up-> GW_A : BLE
GW_A -right-> EB_A : gRPC笔迹流
EB_A -up-> CLOUD : MQTT状态上报
MODEL -down-> EB_A : 模型同步(HTTPS)
EB_A <-right-> EB_B : mDNS+gRPC\n集群调度
@enduml

3.3 终端应用层

6. 自然写互动课堂手机端应用软件 V1.0

项目 内容
软件全称 自然写互动课堂手机端应用软件
版本号 V1.0
开发语言 Kotlin / Swift / Flutter
运行环境 Android 8.0+ / iOS 14.0+
软件用途 面向教师和家长的手机端应用,提供教学管理、作业查看、学情报告、笔迹回放等功能

功能模块:

  • 教师端:课堂互动控制、实时收笔、作业布置与批改
  • 家长端:学情报告查看、作业完成通知、书写回放
  • 蓝牙连接点阵笔(教师端移动教学场景)
  • 拍照搜题与答案对比
  • 消息通知与家校沟通
  • 学习数据统计图表

技术架构:

采用跨平台 MVVM 架构:

层次 技术选型 说明
UI层 Flutter Widget / Native UI 界面渲染与交互(教师端/家长端双入口)
状态管理层 Bloc / Provider MVVM模式,响应式数据绑定
业务逻辑层 Dart / Kotlin / Swift 教学管理、作业查看、蓝牙通信等核心业务
数据层 SQLite + SharedPreferences 本地数据缓存、用户配置存储
网络层 Dio / Retrofit HTTP API调用 + WebSocket实时通信
蓝牙层 flutter_blue / CoreBluetooth BLE连接点阵笔(教师移动教学场景)
@startuml 手机端技术架构
skinparam componentStyle rectangle

package "UI层" as UI #E8EAF6 {
  [Flutter Widget\n(教师端 家长端)] as FW
}

package "状态管理层" as SM #E3F2FD {
  [Bloc Provider\nMVVM响应式] as BLC
}

package "业务逻辑层" as BIZ #FFF3E0 {
  [教学管理] as TM
  [作业查看] as HW
  [蓝牙通信] as BT
  TM -[hidden]right- HW
  HW -[hidden]right- BT
}

package "数据层" as DATA #E8F5E9 {
  [SQLite] as SQL
  [SharedPreferences] as SP
  SQL -[hidden]right- SP
}

package "网络层" as NET #FFFDE7 {
  [Dio HTTP] as DIO
  [WebSocket] as WS
  DIO -[hidden]right- WS
}

package "蓝牙层" as BLE #F3E5F5 {
  [flutter_blue\nCoreBluetooth] as FB
}

UI -down-> SM
SM -down-> BIZ
BIZ -down-> DATA
BIZ -down-> NET
BIZ -down-> BLE
@enduml

数据设计:

数据 存储方式 说明
用户信息 SQLite + 加密存储 登录凭证、角色信息、绑定设备
作业列表 SQLite 作业/试卷缓存(支持离线查看)
笔迹数据 SQLite + 本地文件 蓝牙接收的笔迹数据(教师端)
学情报告 SQLite 学生学情报告缓存
消息记录 SQLite 家校沟通消息本地存储
应用配置 SharedPreferences 推送开关、语言设置、主题偏好

接口设计:

接口 方向 协议 说明
云平台API APP→云端 HTTPS REST 登录/作业/学情/消息等全部业务API
实时通知 云端→APP WebSocket 新作业、批改完成、消息通知
推送服务 云端→APP APNs / FCM 系统级推送(APP后台时)
BLE通信 APP↔点阵笔 BLE GATT 教师端蓝牙连接笔进行移动教学

安全设计:

  • 身份认证:OAuth 2.0 + JWT,支持手机号/微信/钉钉一键登录
  • 本地加密:Token和敏感数据使用 KeychainiOS/ KeyStoreAndroid)加密存储
  • 传输安全:全链路 HTTPS,证书锁定(Certificate Pinning
  • 隐私合规:遵循《APP收集使用个人信息最小必要评估规范》,敏感权限按需申请
  • 儿童保护:学生相关数据展示遵循《儿童个人信息网络保护规定》

7. 自然写互动课堂电视端应用软件 V1.0

项目 内容
软件全称 自然写互动课堂电视端应用软件
版本号 V1.0
开发语言 Java / Kotlin
运行环境 Android TV / 智能电视操作系统
软件用途 运行于家庭电视或教室电视,大屏展示学生书写过程、课堂互动内容及学情报告

功能模块:

  • 笔迹实时大屏投射与回放
  • 多学生书写同屏对比展示
  • 课堂互动答题结果大屏展示
  • 字帖临摹大屏辅助(放大范字+实时书写对比)
  • 学情报告大屏浏览
  • 遥控器/语音操控适配
  • WiFi 局域网设备发现与连接

技术架构:

采用 Android TV Leanback 架构:

层次 技术选型 说明
UI层 Leanback Library + 自定义View 适配遥控器D-Pad焦点导航的TV界面
笔迹渲染层 Canvas / OpenGL ES 大屏实时笔迹渲染(60fps低延迟)
业务逻辑层 Kotlin + ViewModel MVVM架构,课堂展示/互动/学情浏览
数据层 RoomSQLite 课堂数据本地缓存
网络层 OkHttp + WebSocket 云平台API调用 + 实时笔迹数据接收
发现层 mDNS / SSDP 局域网内网关与终端设备自动发现
@startuml 电视端技术架构
skinparam componentStyle rectangle

package "UI层" as UI #E8EAF6 {
  [Leanback Library\n(D-Pad焦点导航)] as LB
  [自定义View] as CV
  LB -[hidden]right- CV
}

package "笔迹渲染层" as RENDER #FCE4EC {
  [Canvas OpenGL ES\n(60fps大屏渲染)] as GL
}

package "业务逻辑层" as BIZ #FFF3E0 {
  [Kotlin ViewModel\nMVVM架构] as VM
}

package "数据层" as DATA #E8F5E9 {
  [Room (SQLite)] as ROOM
}

package "网络层" as NET #E3F2FD {
  [OkHttp] as OK
  [WebSocket] as WS
  OK -[hidden]right- WS
}

package "发现层" as DISC #F3E5F5 {
  [mDNS SSDP] as MDNS
}

UI -down-> BIZ
RENDER -down-> BIZ
BIZ -down-> DATA
BIZ -down-> NET
BIZ -down-> DISC
@enduml

数据设计:

数据 存储方式 说明
课堂笔迹缓存 内存 + Room 当前课堂的实时笔迹数据
课件资源 本地文件缓存 预加载的课件/字帖图片资源
学情报告 Room 大屏浏览用的学情数据缓存
设备配置 SharedPreferences WiFi连接、网关绑定、显示设置

接口设计:

接口 方向 协议 说明
笔迹数据流 网关/算力盒→TV WebSocket 接收实时笔迹坐标进行大屏渲染
云平台API TV→云端 HTTPS 获取课堂信息、学情报告
设备发现 TV↔网关 mDNS 自动发现同一局域网内的网关设备
遥控指令 遥控器→TV IR / BLE 遥控器按键映射为应用操作
投屏接收 PC/手机→TV Miracast / DLNA 接收教师端投屏内容

安全设计:

  • 自动登录:设备绑定后免密登录,Token安全存储于系统KeyStore
  • 局域网隔离:仅接受同一教室网段内的连接请求
  • 内容安全:大屏展示内容过滤敏感信息(学生个人隐私数据不展示)
  • 防截屏:课堂内容播放时禁止系统截屏(FLAG_SECURE

8. 自然写互动课堂PC端应用软件 V1.0

项目 内容
软件全称 自然写互动课堂PC端应用软件
版本号 V1.0
开发语言 Electron / C++ / JavaScript
运行环境 Windows 10+ / macOS 12+
软件用途 面向教师的PC端教学工具,提供备课、课堂授课、批改、数据管理等全流程功能

功能模块:

  • 备课工具(课件制作、试卷编辑、字帖模板设计)
  • 课堂授课模式(实时接收笔迹、互动答题、随机点名)
  • 作业/试卷批改(AI辅助+人工复核)
  • 学生笔迹回放与书写分析
  • 班级学情数据管理与导出
  • 点阵码内容编辑与打印
  • USB/蓝牙连接点阵笔
  • 投屏至大屏/智慧黑板

技术架构:

采用 Electron 跨平台桌面架构:

层次 技术选型 说明
主进程 Electron Main ProcessNode.js 窗口管理、系统API调用、文件操作、蓝牙/USB驱动
渲染进程 Vue.js 3 + TypeScript 界面渲染、状态管理(Pinia)、组件化UI
笔迹渲染引擎 Canvas 2D / WebGL + C++ Addon 高性能笔迹渲染(支持压感/笔锋效果)
数据层 SQLitebetter-sqlite3 + IndexedDB 本地课件/作业/笔迹数据持久化
网络层 Axios + WebSocketws 云平台API + 实时通信
设备层 node-bluetooth / node-usb USB有线 + BLE无线连接点阵笔
投屏层 WebRTC / 自研投屏协议 屏幕镜像至大屏/智慧黑板
@startuml PC端技术架构
skinparam componentStyle rectangle

package "主进程 (NodeJS)" as MAIN #E8EAF6 {
  [窗口管理] as WIN
  [系统API] as SYS
  [文件操作] as FILE
  WIN -[hidden]right- SYS
  SYS -[hidden]right- FILE
}

package "渲染进程" as RENDERER #E3F2FD {
  [Vue3 TypeScript] as VUE
  [Pinia状态管理] as PINIA
  VUE -right-> PINIA
}

package "笔迹渲染引擎" as STROKE #FCE4EC {
  [Canvas2D WebGL] as CANVAS
  [Native Addon\n(压感笔锋)] as CPP
  CANVAS -right-> CPP
}

package "数据层" as DATA #E8F5E9 {
  [SQLite\n(better sqlite3)] as SQL
  [IndexedDB] as IDB
  SQL -[hidden]right- IDB
}

package "设备层" as DEV #FFF3E0 {
  [BLE\n(node bluetooth)] as BLE
  [USB HID\n(node usb)] as USB
  BLE -[hidden]right- USB
}

package "网络层" as NET #FFFDE7 {
  [Axios] as AX
  [WebSocket] as WS
  AX -[hidden]right- WS
}

package "投屏层" as CAST #F3E5F5 {
  [WebRTC] as RTC
}

MAIN <--> RENDERER : IPC通信
RENDERER --> STROKE
RENDERER --> NET
MAIN --> DATA
MAIN -up-> DEV
MAIN -up-> CAST
@enduml

数据设计:

数据 存储方式 说明
课件文件 本地文件系统 备课创建的课件/试卷/字帖(JSON + 资源文件)
学生笔迹 SQLite + 本地文件 收集的学生笔迹原始数据与渲染缓存
批改记录 SQLite AI批改结果 + 教师人工批改标注
班级数据 SQLite 班级/学生列表、成绩记录、学情缓存
点阵码映射 SQLite 点阵码ID与课件页面的对应关系
应用配置 JSON文件 + electron-store 用户偏好、窗口状态、设备连接记录

接口设计:

接口 方向 协议 说明
云平台API PC→云端 HTTPS 全部业务API(登录/作业/学情/资源)
实时同步 云端→PC WebSocket 笔迹实时流、课堂互动指令
USB笔通信 笔→PC USB HID USB有线连接点阵笔数据传输
BLE笔通信 笔→PC BLE GATT 蓝牙无线连接点阵笔
投屏输出 PC→大屏 WebRTC / HDMI 课堂内容镜像至智慧黑板/电视
打印输出 PC→打印机 系统打印API 点阵码内容/试卷/字帖打印

安全设计:

  • 本地数据加密:SQLite数据库文件加密(SQLCipher),防止本地数据泄露
  • 自动更新:Electron auto-updater,签名校验防止恶意更新
  • 代码保护:ASAR打包 + 代码混淆,关键逻辑C++ Addon保护
  • 权限隔离:渲染进程沙箱化,敏感操作通过IPC调用主进程执行
  • 文件安全:课件导出支持加密PDF,限制传播

9. 自然写互动课堂智慧黑板端应用软件 V1.0

项目 内容
软件全称 自然写互动课堂智慧黑板端应用软件
版本号 V1.0
开发语言 Java / Kotlin / C++
运行环境 Android(智慧黑板定制系统)
软件用途 运行于教室智慧黑板/交互式一体机,作为课堂教学的主显示终端与交互中心

功能模块:

  • 全班笔迹实时接收与大屏展示
  • 触控白板书写(教师黑板端直接书写)
  • 学生作品展示墙(选取学生笔迹投屏对比)
  • 课堂互动答题系统(发题→收卷→统计→展示)
  • 随机抽取与分组展示
  • 课堂录制与回放
  • 与教室网关联动(自动发现笔设备)
  • 第三方课件兼容(PPT/PDF/图片)

技术架构:

采用 Android 全屏交互式应用架构:

层次 技术选型 说明
UI层 自定义全屏View + Android Framework 全屏触控交互界面,多点触控支持
白板引擎 Canvas 2D + SurfaceViewC++ JNI加速) 高性能触控书写与笔迹渲染引擎
笔迹接收层 Kotlin + BLE/WiFi 接收网关/算力盒推送的学生笔迹数据
课件解析层 Apache POI + PDFRenderer + Glide PPT/PDF/图片课件加载与渲染
业务逻辑层 Kotlin + ViewModel + LiveData 课堂互动、答题系统、展示控制
数据层 Room + 本地文件 课堂记录、课件缓存、配置存储
录制层 MediaCodec + MediaMuxer 课堂屏幕录制与回放(H.264编码)
@startuml 黑板端技术架构
skinparam componentStyle rectangle

package "UI层" as UI #E8EAF6 {
  [全屏触控View\n(多点触控)] as TOUCH
}

package "白板引擎" as WB #FCE4EC {
  [Canvas 2D\nSurfaceView] as CANVAS
  [Native JNI加速] as JNI
  CANVAS -right-> JNI
}

package "笔迹接收层" as PEN #FFF3E0 {
  [BLE WiFi接收\n网关推送笔迹] as RCV
}

package "课件解析层" as COURSE #FFFDE7 {
  [Apache POI\n(PPT)] as POI
  [PDFRenderer] as PDFR
  [Glide\n(图片)] as IMG
  POI -[hidden]right- PDFR
  PDFR -[hidden]right- IMG
}

package "业务逻辑层" as BIZ #E3F2FD {
  [ViewModel LiveData\n(课堂互动 答题 展示)] as VM
}

package "数据层" as DATA #E8F5E9 {
  [Room] as ROOM
  [本地文件] as FS
  ROOM -[hidden]right- FS
}

package "录制层" as REC #F3E5F5 {
  [MediaCodec\n(H.264编码)] as MC
  [MediaMuxer] as MX
  MC -right-> MX
}

UI -down-> WB
UI -down-> PEN
BIZ -up-> WB
BIZ -up-> COURSE
BIZ -down-> DATA
BIZ -down-> REC
@enduml

数据设计:

数据 存储方式 说明
白板画布数据 内存 + 序列化文件 教师白板书写笔迹(支持撤销/重做)
学生笔迹 Room + 内存缓存 全班学生实时笔迹数据(按学生ID索引)
课件文件 本地文件缓存 预下载的PPT/PDF课件
课堂录像 MP4本地文件 课堂录制视频
互动答题数据 Room 题目、学生答案、统计结果
设备配置 SharedPreferences 网关绑定、显示分辨率、触控校准参数

接口设计:

接口 方向 协议 说明
笔迹数据流 网关/算力盒→黑板 WebSocket 接收全班学生实时笔迹
互动指令 黑板→网关 WebSocket 发题、收卷、分组等课堂控制指令
云平台API 黑板→云端 HTTPS 课件下载、录像上传、数据同步
设备发现 黑板↔网关 mDNS 自动发现并绑定教室网关
触控输入 触控屏→黑板 Android TouchEvent 多点触控映射为白板操作

安全设计:

  • 应用锁定:Kiosk模式运行,防止学生退出应用访问系统设置
  • 内容安全:课堂录像本地加密存储,上传云端后自动清理本地文件
  • 自动登录:设备证书认证,无需教师手动登录
  • 网络隔离:仅允许访问指定云平台域名和教室局域网
  • 定时清理:课堂结束后自动清理内存缓存,防止数据残留

10. 自然写互动课堂平板端应用软件 V1.0

项目 内容
软件全称 自然写互动课堂平板端应用软件
版本号 V1.0
开发语言 Kotlin / Swift / Flutter
运行环境 Android 8.0+ / iPadOS 14.0+
软件用途 面向学生和教师的平板端应用,提供课堂互动、作业书写、练字训练、学习管理等功能

功能模块:

  • 学生端:接收作业/试卷、配合点阵笔纸上作答、提交与查看批改结果
  • 教师端:移动授课、巡堂查看、即时点评
  • 蓝牙连接点阵笔
  • 触屏直接书写(无笔时备选模式)
  • 字帖练习与笔顺指导
  • 错题本自动整理
  • 学习计划与进度管理
  • 护眼模式与使用时长管控

技术架构:

采用跨平台 MVVM 架构(与手机端共享核心模块):

层次 技术选型 说明
UI层 Flutter WidgetPad自适应布局) 适配不同尺寸平板的响应式界面
状态管理层 Bloc / Provider MVVM架构,学生端/教师端双模式
笔迹渲染层 CustomPainter + Skia 触屏直写与点阵笔笔迹渲染
业务逻辑层 Dart / Kotlin / Swift 作业作答、练字训练、学习管理
数据层 SQLite + Hive 离线作业缓存、错题本、学习进度
网络层 Dio + WebSocket 云平台API + 课堂实时交互
蓝牙层 flutter_blue / CoreBluetooth BLE连接点阵笔
护眼层 自研护眼模块 色温调节、使用时长提醒、距离检测(前置摄像头)
@startuml 平板端技术架构
skinparam componentStyle rectangle

package "UI层" as UI #E8EAF6 {
  [Flutter Widget\n(Pad自适应布局)] as FW
}

package "状态管理层" as SM #E3F2FD {
  [Bloc Provider\n(学生端 教师端双模式)] as BLC
}

package "笔迹渲染层" as RENDER #FCE4EC {
  [CustomPainter Skia\n(触屏直写 点阵笔)] as SKI
}

package "业务逻辑层" as BIZ #FFF3E0 {
  [作业作答] as HW
  [练字训练] as WRT
  [学习管理] as LRN
  HW -[hidden]right- WRT
  WRT -[hidden]right- LRN
}

package "数据层" as DATA #E8F5E9 {
  [SQLite] as SQL
  [Hive] as HIVE
  SQL -[hidden]right- HIVE
}

package "网络层" as NET #FFFDE7 {
  [Dio] as DIO
  [WebSocket] as WS
  DIO -[hidden]right- WS
}

package "蓝牙层" as BLE #F3E5F5 {
  [flutter_blue\nCoreBluetooth] as FB
}

package "护眼层" as EYE #F1F8E9 {
  [色温调节] as CT
  [时长提醒] as TR
  [距离检测] as DIST
  CT -[hidden]right- TR
  TR -[hidden]right- DIST
}

UI -down-> SM
SM -down-> RENDER
SM -down-> BIZ
BIZ -down-> DATA
BIZ -down-> NET
BIZ -down-> BLE
UI -right-> EYE
@enduml

数据设计:

数据 存储方式 说明
作业/试卷 SQLite + 本地文件 已下载的作业内容(支持离线作答)
书写笔迹 SQLite + 文件 学生作答笔迹数据(BLE采集或触屏直写)
错题本 SQLite 自动整理的错题(题目+错误答案+正确答案+知识点)
学习计划 SQLite 每日/每周学习任务与完成进度
字帖练习 本地缓存 字帖模板与练习记录
使用时长 SQLite 每日使用时长记录(按应用/科目分类)
离线队列 SQLite 离线操作暂存队列(恢复网络后自动同步)

接口设计:

接口 方向 协议 说明
云平台API Pad→云端 HTTPS 登录/作业下载/提交/学情查看
课堂实时 网关→Pad WebSocket 课堂互动指令、教师点评推送
BLE笔通信 笔→Pad BLE GATT 蓝牙连接点阵笔接收笔迹数据
离线同步 Pad→云端 HTTPS 网络恢复后批量上传离线数据

安全设计:

  • 学生账户:简化登录(班级+姓名/学号),无需手机号等隐私信息
  • 使用管控:家长可远程设置使用时段和时长上限
  • 内容过滤:仅展示学校授权的教学内容,无广告、无外部链接
  • 隐私保护:前置摄像头护眼检测仅本地处理,不上传图像数据
  • 本地加密:学生作答数据本地加密存储,防止平板丢失后数据泄露

3.4 SDK

11. 自然写互动课堂应用开发SDK软件 V1.0

项目 内容
软件全称 自然写互动课堂应用开发SDK软件
版本号 V1.0
开发语言 Java / Kotlin / Swift / C / JavaScript
运行环境 Android / iOS / Windows / macOS / Linux / Web
软件用途 为第三方开发者和教育集成商提供点阵笔数据接入、笔迹渲染、AI识别调用等核心能力,支持客户化集成到自身应用中

SDK 模块:

模块 功能
PenConnect SDK 蓝牙/WiFi连接点阵笔,接收实时笔迹坐标数据流
StrokeRender SDK 笔迹实时渲染与回放(支持压感、颜色、动画)
OCR SDK 调用云端/本地手写识别能力(文字、数学、笔顺)
Gateway SDK 对接教室网关,批量管理多支笔数据
Cloud SDK 对接自然写云平台API(用户认证、数据存取、学情查询)
UI Component 预制UI组件(笔迹画布、答题卡、字帖控件等)

输出形式:

  • AndroidAAR 包 + Maven 仓库
  • iOSFramework / CocoaPods / Swift Package
  • PCDLL / .so 动态库
  • WebJavaScript / TypeScript NPM 包
  • 配套:API 文档、示例工程、集成指南

技术架构:

采用分层模块化架构,核心逻辑跨平台复用:

┌─────────────────────────────────────────────────────────────┐
│  上层:应用集成层(第三方开发者调用)                            │
├──────────┬──────────┬──────────┬──────────┬──────────────────┤
│ PenConnect│StrokeRender│ OCR SDK │Gateway SDK│  Cloud SDK     │
│   SDK    │   SDK    │         │          │                  │
├──────────┴──────────┴──────────┴──────────┴──────────────────┤
│  中间层:平台适配层(Platform Abstraction Layer              │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐             │
│  │Android│ │ iOS  │ │Windows│ │macOS │ │ Web  │             │
│  └──────┘ └──────┘ └──────┘ └──────┘ └──────┘             │
├─────────────────────────────────────────────────────────────┤
│  底层:核心引擎层(C/C++ 跨平台内核)                          │
│  BLE协议解析 │ 笔迹平滑算法 │ 坐标变换 │ 数据编解码             │
└─────────────────────────────────────────────────────────────┘
层次 技术选型 说明
核心引擎 C / C++(跨平台) 蓝牙协议解析、笔迹平滑、坐标变换等底层算法
平台适配 JNIAndroid/ ObjC BridgeiOS/ FFIWeb 各平台原生API桥接
业务模块 Java/Kotlin/Swift/JS 各SDK模块的业务封装
UI组件 Android View / UIKit / HTML5 Canvas 预制UI控件(笔迹画布、答题卡)
@startuml SDK技术架构
skinparam componentStyle rectangle

package "应用集成层" as APP #E8EAF6 {
  [PenConnect\nSDK] as PEN
  [StrokeRender\nSDK] as STROKE
  [OCR SDK] as OCR
  [Gateway\nSDK] as GW
  [Cloud SDK] as CLD
  [UI Component] as UIC
  PEN -[hidden]right- STROKE
  STROKE -[hidden]right- OCR
  OCR -[hidden]right- GW
  GW -[hidden]right- CLD
  CLD -[hidden]right- UIC
}

package "平台适配层 (PAL)" as PAL #FFF3E0 {
  [Android\n(JNI)] as ANDR
  [iOS\n(ObjC Bridge)] as IOS
  [Windows\n(DLL)] as WIN
  [macOS\n(dylib)] as MAC
  [Web\n(FFI WASM)] as WEB
  ANDR -[hidden]right- IOS
  IOS -[hidden]right- WIN
  WIN -[hidden]right- MAC
  MAC -[hidden]right- WEB
}

package "核心引擎层 (Native)" as CORE #E8F5E9 {
  [BLE协议解析] as BLE
  [笔迹平滑算法] as SMOOTH
  [坐标变换] as COORD
  [数据编解码] as CODEC
  BLE -[hidden]right- SMOOTH
  SMOOTH -[hidden]right- COORD
  COORD -[hidden]right- CODEC
}

APP -down-> PAL
PAL -down-> CORE
@enduml

数据设计:

SDK内部数据结构:

数据结构 类型 说明
PenDevice Class 笔设备对象(MAC/名称/电量/连接状态/协议版本)
StrokePoint Struct 笔迹点(x, y, pressure, timestamp, penUp
StrokePath Class 笔画路径(points[], color, width, penId
RecognitionResult Class 识别结果(type, text, confidence, bbox
SDKConfig Class SDK配置(服务器地址、AppKey、日志级别)

接口设计:

核心 API 示例:

// PenConnect SDK
PenManager.startScan()                     // 扫描周围点阵笔
PenManager.connect(device: PenDevice)      // 连接指定笔
PenManager.onStrokeData(callback)          // 笔迹数据回调

// StrokeRender SDK
StrokeCanvas.bindView(view)                // 绑定画布View
StrokeCanvas.drawStroke(strokePath)        // 渲染笔迹
StrokeCanvas.replay(strokes[], speed)      // 回放笔迹动画

// OCR SDK
OCREngine.recognize(strokes) → Result      // 文字识别
MathEngine.recognize(strokes) → Result     // 数学列式识别
StrokeOrderEngine.evaluate(char, strokes)  // 笔顺评分

// Cloud SDK
CloudClient.init(appKey, secret)           // 初始化
CloudClient.auth.login(token)              // 认证
CloudClient.data.uploadStroke(data)        // 上传笔迹
CloudClient.report.getStudentReport(id)    // 获取学情

安全设计:

  • 接入认证:AppKey + AppSecret 签名认证,防止未授权调用
  • 数据保护:SDK本地不持久化业务数据,仅缓存必要配置
  • 代码保护:C++核心库编译为 .so/.dylibJava层ProGuard混淆
  • 版本管理:语义化版本(SemVer),大版本不兼容变更有迁移指南
  • 沙箱隔离:SDK运行在独立线程/进程,异常不影响宿主应用

3.5 固件

12. 自然写智能点阵笔嵌入式固件软件 V1.0

项目 内容
软件全称 自然写智能点阵笔嵌入式固件软件
版本号 V1.0
开发语言 C
运行环境 嵌入式 MCU(点阵笔主控芯片)
软件用途 运行于智能点阵笔内部,控制点阵摄像头采集、笔迹坐标解析、蓝牙数据传输及电源管理

功能模块:

  • 点阵摄像头图像采集与解码
  • 点阵码坐标实时解析
  • 压力传感器数据采集
  • 蓝牙 BLE 数据发送(笔迹坐标流)
  • 设备配对与连接管理
  • 低功耗电源管理(休眠/唤醒策略)
  • 电池电量监测与上报
  • LED 状态指示控制
  • OTA 固件升级支持
  • 本地数据缓存(离线书写暂存)

技术架构:

采用 RTOS 实时操作系统 + 分层驱动架构:

层次 技术选型 说明
RTOS内核 FreeRTOS / RT-Thread 实时任务调度、内存管理、中断管理
硬件驱动层 C(寄存器级) CMOS摄像头驱动、压力传感器ADC驱动、SPI/I2C总线
BLE协议栈 SoftDeviceNordic/ Nimble 蓝牙5.0 BLE协议栈(GATT Server
图像处理层 C(定点数优化) 点阵码图像解码、坐标解算算法
应用层 C 业务逻辑(配对/数据发送/状态管理/OTA)
电源管理层 C 低功耗状态机(Active/Idle/Sleep/DeepSleep
@startuml 固件技术架构
skinparam componentStyle rectangle

package "应用层" as APP #E8EAF6 {
  [配对管理] as PAIR
  [数据发送] as SEND
  [OTA升级] as OTA
  [状态管理] as STATUS
  PAIR -[hidden]right- SEND
  SEND -[hidden]right- OTA
  OTA -[hidden]right- STATUS
}

package "图像处理层" as IMG #FFF3E0 {
  [点阵码图像解码\n(定点数优化)] as DEC
  [坐标解算算法] as COORD
  DEC -right-> COORD
}

package "BLE协议栈" as BLE #E3F2FD {
  [SoftDevice Nimble\nBLE 5 GATT Server] as SD
}

package "硬件驱动层" as DRV #E8F5E9 {
  [CMOS摄像头\n驱动] as CAM
  [压力传感器\nADC驱动] as ADC
  [SPI I2C\n总线] as BUS
  CAM -[hidden]right- ADC
  ADC -[hidden]right- BUS
}

package "RTOS内核" as RTOS #F3E5F5 {
  [FreeRTOS RT Thread\n任务调度 内存管理 中断] as KERN
}

package "电源管理层" as PWR #FFFDE7 {
  [Active] as ACT
  [Idle] as IDL
  [Sleep] as SLP
  [DeepSleep] as DSP
  ACT -right-> IDL
  IDL -right-> SLP
  SLP -right-> DSP
}

APP -down-> IMG
APP -down-> BLE
IMG -down-> DRV
BLE -down-> DRV
DRV -down-> RTOS
RTOS -right-> PWR
@enduml

任务调度模型:

任务 优先级 周期 说明
图像采集任务 最高 100Hz 摄像头图像采集与点阵码解码
坐标计算任务 100Hz 图像→坐标变换、压感数据融合
BLE发送任务 触发式 笔迹坐标数据BLE Notify发送
电源监测任务 1Hz 电池电压ADC采样、电量百分比计算
LED控制任务 事件式 状态指示灯控制(连接/电量/充电)
OTA任务 触发式 固件升级包接收与Flash写入

数据设计:

数据结构 存储位置 说明
坐标数据帧 RAM(环形缓冲区) {x:uint16, y:uint16, pressure:uint8, timestamp:uint32} 每帧7字节
离线缓存区 外部FlashSPI NOR 断开连接时笔迹数据FIFO缓存(容量4MB,约10万个坐标点)
配对信息 内部FlashNVS 已绑定设备的MAC地址和LTK密钥(最多4个设备)
设备配置 内部FlashNVS 设备名称、序列号、出厂校准参数
固件分区 内部Flash Bootloader16KB+ App A256KB+ App B256KB+ NVS8KB

接口设计:

接口 方向 协议 说明
笔迹数据 笔→网关/终端 BLE GATT Notify 自定义CharacteristicMTU=247,每包最多34个坐标点
设备信息 终端→笔 BLE GATT Read 电量、固件版本、序列号、在线状态
配对连接 终端→笔 BLE SMP Secure Connection配对流程
离线数据同步 笔→终端 BLE GATT Indicate 连接后自动上传离线缓存数据(需ACK确认)
OTA升级 终端→笔 BLE DFU 固件包分包传输→校验→写入Flash B分区→重启切换
配置写入 终端→笔 BLE GATT Write 设备命名、校准参数、功耗模式设置

安全设计:

  • BLE安全:LE Secure ConnectionsECDH密钥交换),加密通信
  • 固件保护:Flash读保护启用(防止固件被非法读取/逆向)
  • OTA安全:升级包CRC32校验 + RSA签名验证,失败则保留旧版本
  • 数据完整性:离线缓存数据每页写入CRC校验,读取时验证
  • 看门狗:硬件看门狗定时器防止固件死机(超时自动复位)

四、登记申请材料准备

4.1 每项著作权需准备的材料

序号 材料 说明
1 软件著作权登记申请表 在中国版权保护中心网站在线填写
2 软件鉴别材料 — 源程序 前后各连续 30 页(不足 60 页全部提交),共约 3000 行
3 软件鉴别材料 — 文档 设计说明书或用户手册(前后各连续 30 页)
4 申请人身份证明 营业执照副本复印件(加盖公章)
5 委托书 如委托代理机构办理

4.2 源程序文档要求

要求 说明
格式 A4 纸打印,单面,每页不少于 50 行
内容 源程序前 30 页 + 后 30 页(去除空行和注释后有效代码)
页眉 标注软件全称和版本号
页脚 标注页码
字体 宋体或等宽字体,字号不小于五号

五、登记费用与时间

5.1 费用估算

项目 单价(元) 数量 小计(元) 备注
官方登记费 0 13 0 2017年起免征登记费
代理服务费(普通) 500-800 13 6,500-10,400 审查周期约 30-40 个工作日
代理服务费(加急) 1,500-3,000 可缩短至 1-5 个工作日

自主申请 vs 委托代理:

方式 13 项总费用 优缺点
自主申请 0 元(免官费) 需自行准备材料、在线填报、邮寄/现场提交;耗时较多但零成本
委托代理(普通) 6,500-10,400 元 代理全程办理,省时省力,30-40 个工作日取证
委托代理(加急) 19,500-39,000 元 1-5 个工作日加急出证,适合融资/投标急需

5.2 时间规划

阶段 事项 时间
准备期 整理12项软件的源程序和文档材料 2-4 周
提交期 分批提交登记申请(建议每批 3-4 项) 1-2 周
审查期 中国版权保护中心审查 30-40 个工作日(普通)
取证期 领取软件著作权登记证书 审查通过后 5-10 个工作日
预计全部完成 13 项全部取证 提交后约 2-3 个月

六、登记优先级建议

根据产品上市节奏和商业需要,建议分三批次提交:

第一批(优先,核心产品)

序号 软件 理由
1 自然写互动课堂教学管理云平台软件 系统核心,所有终端依赖
2 自然写手写识别与AI分析引擎软件 核心技术壁垒,优先保护
5 自然写教室智能算力盒边缘计算软件 端侧AI核心能力,技术差异化壁垒
11 自然写互动课堂应用开发SDK软件 对外输出能力,商务合作需要
12 自然写智能点阵笔嵌入式固件软件 硬件配套必备

第二批(紧跟,主要终端)

序号 软件 理由
4 自然写教室智能网关管理软件 教室部署核心组件
9 自然写互动课堂智慧黑板端应用软件 学校采购主要交付物
8 自然写互动课堂PC端应用软件 教师日常使用频率最高

第三批(补全,完善矩阵)

序号 软件 理由
6 手机端应用 家校互动场景
7 电视端应用 家庭学习场景
10 平板端应用 学生端补充
3 学情诊断系统 数据增值服务
13 资源管理平台 内容运营支撑

七、著作权与商标的协同保护

保护类型 覆盖范围 保护对象
商标权(已规划) "自然写" / "Writech" / 图形商标 品牌名称与标识
软件著作权(本文) 13 项软件系统 软件源代码与文档
专利权(建议后续) 手写识别算法、笔迹分析方法等 技术方案与算法

三者形成品牌 + 代码 + 技术的立体知识产权保护体系。


编制人:(待填写)

审核人:(待填写)

日期2026 年 2 月 14 日