概述
DocCore SDK是深圳智数融合科技有限公司面向.NET开发者提供的商业PDF与文档智能处理工具包,涵盖文档解析、文本提取、页面渲染、OCR识别、表格检测、结构化输出等能力。作为商业软件,DocCore采用与开源库截然不同的授权模型——通过明确的授权范围、许可证管理和技术支持条款,保证客户的合规使用与智能工程文档的技术权益。本文系统介绍DocCore的授权方案、功能开关、部署注意事项、审计与合规要求,帮助客户在选型和集成过程中避免误区。
一、授权模型
DocCore采用"开发者许可 + 运行时许可 + 企业许可"三层模型。不同项目和部署规模对应不同层级:
| 许可类型 | 范围 | 适用场景 | 计价方式 |
|---|---|---|---|
| 开发者许可(Developer) | 每位开发者一个许可,仅用于开发环境 | 研发团队内部使用,不含生产部署 | 按开发者人数年度订阅 |
| 运行时许可(Runtime) | 按部署实例计算,用于生产环境 | 公有云/私有云SaaS、桌面产品 | 按实例/核心/用户数计费 |
| 企业许可(Enterprise) | 企业范围内不限用户、不限部署 | 大型集团内部系统、多业务单元 | 年度或多年打包价 |
| OEM授权 | 嵌入到客户发布的第三方产品中 | 软件厂商、ISV | 按终端数或版税模式 |
| 评估许可(Evaluation) | 30/60天,用于评估试用 | 采购决策前的POC | 免费,需申请 |
授权组合原则
- 开发者许可是运行时许可的前提:任何运行时部署都需要对应的开发者做过开发许可覆盖
- 运行时许可按实际部署计数,包括开发测试环境的容器/VM,但允许CI/CD过程中的临时构建环境
- 企业许可是封顶方案,不限内部开发与部署数量,但不允许对外转售
- OEM授权需单独签订合作协议,包含产品注册、使用报告、版税结算等条款
二、功能开关与模块化
DocCore SDK采用模块化架构,不同功能模块可单独授权。客户可以根据实际需求组合购买,避免为不需要的功能付费。核心模块:
| 模块 | 包含能力 | 典型应用 |
|---|---|---|
| Core(核心) | PDF加载、文本提取、搜索、元数据 | 所有场景必选 |
| Render(渲染) | 页面栅格化、缩略图、打印预览 | PDF预览、缩略图生成 |
| VisionOCR | OCR识别、版面分析、表格检测 | 扫描件文档数字化 |
| Pipeline(流水线) | 批量处理、并发、重试、监控 | 大规模文档批处理 |
| Forms(表单) | 结构化字段抽取、规则引擎 | 发票、表格、标书解析 |
| Redact(脱敏) | 敏感信息识别与遮盖 | 隐私合规、信息脱敏 |
| Compare(比对) | 文档版本差异比对 | 合同对比、标书查重 |
三、许可证加载与激活
DocCore SDK使用基于证书的许可证机制,证书文件由智数云科技签发,包含授权类型、有效期、允许的模块、部署限制等信息。加载许可证的标准方式:
// 方式1:从文件加载
DocCoreLicense.Activate("./doccore.license");
// 方式2:从字符串加载(适合Docker环境变量)
var licenseKey = Environment.GetEnvironmentVariable("DOCCORE_LICENSE");
DocCoreLicense.ActivateFromString(licenseKey);
// 方式3:从Azure Key Vault / 阿里云KMS加载
var licenseFromKv = await secretClient.GetSecretAsync("doccore-license");
DocCoreLicense.ActivateFromString(licenseFromKv.Value.Value);
// 方式4:联网激活(在线许可服务器)
DocCoreLicense.ActivateOnline(productKey: "PRD-XXXX-XXXX-XXXX",
server: "https://license.zhishuronghe.com");
// 校验当前许可状态
var status = DocCoreLicense.GetStatus();
Console.WriteLine($"授权类型: {status.LicenseType}, 有效期至: {status.ExpiresAt}");
Console.WriteLine($"已激活模块: {string.Join(",", status.Modules)}");
许可证加载应当在应用启动的最早期阶段完成,推荐放在Program.cs的构建器配置之前。未激活许可的情况下调用付费功能会抛出LicenseRequiredException。
四、部署模式
1. 本地部署(On-Premises)
适用于私有化数据中心、内网系统、涉密项目。许可证为离线证书,不需要访问外网。部署后在每台运行DocCore的服务器上加载相同证书。优点是无网络依赖,缺点是许可证到期或变更需要人工分发。
2. 公有云/私有云部署
按实例数计算运行时许可。DocCore支持:
- Docker容器:镜像中不包含许可证,通过环境变量或挂载卷注入
- Kubernetes:通过Secret或ConfigMap管理许可证
- Azure/AWS/阿里云:可集成Key Vault/Secrets Manager/KMS
- Serverless(Lambda/Function App):建议使用运行时激活模式,冷启动会自动加载
3. 桌面应用嵌入
将DocCore嵌入.NET桌面应用(WPF、WinForms、MAUI)时,建议采用OEM模式或开发者许可+单机运行时许可。每个安装版本对应一个许可证,通过机器指纹绑定防止非法分发。
version: '3.8'
services:
doc-processor:
image: your-company/doc-processor:latest
environment:
- DOCCORE_LICENSE=${DOCCORE_LICENSE}
- ASPNETCORE_ENVIRONMENT=Production
volumes:
- ./data:/data
deploy:
resources:
limits:
cpus: '4'
memory: 4G
// Kubernetes Secret 示例
apiVersion: v1
kind: Secret
metadata:
name: doccore-license
type: Opaque
stringData:
license.key: |
-----BEGIN DOCCORE LICENSE-----
...
-----END DOCCORE LICENSE-----
五、审计与合规
1. 使用审计
DocCore SDK内置使用审计机制,记录每个API调用的基础元数据(不含文件内容),以供合规追溯。客户可以选择将审计日志导出到自有SIEM系统:
using DocCore.Auditing;
DocCoreAudit.Configure(new AuditOptions {
Enabled = true,
Sink = AuditSink.File,
FilePath = "/var/log/doccore/audit.log",
LogLevel = AuditLevel.Invocation,
IncludeFileMetadata = true,
IncludeFileContent = false // 默认不记录内容
});
// 或导出到OpenTelemetry
DocCoreAudit.AddOpenTelemetry(builder =>
builder.AddOtlpExporter(o => o.Endpoint = new Uri("http://otel-collector:4317")));
2. 许可合规
对于企业许可和OEM许可客户,智数云科技会定期发送合规报告请求,要求客户提供:
- 实际部署的实例数量与分布
- 内部使用的开发者/运维人员列表
- OEM场景下的终端激活数
- 使用的模块清单
3. 数据安全
DocCore SDK本身不会将客户的文档内容或数据上传至任何外部服务器。所有处理完全在客户的本地/私有环境中完成。联网激活模式下,仅与license服务器交互许可证验证信息(无文档数据)。对于涉密、金融、医疗等严格行业,推荐使用离线许可模式。
六、支持与更新条款
1. 版本更新
- 补丁版本(x.y.Z):Bug修复,所有付费客户免费更新
- 次要版本(x.Y.z):新特性与非破坏性变更,订阅内客户免费升级
- 主要版本(X.y.z):含破坏性变更,可能需要单独购买升级
2. 技术支持
| 支持级别 | 响应时间 | 服务内容 |
|---|---|---|
| 标准支持 | 工作日24小时内 | 邮件工单、文档答疑、一般Bug修复 |
| 优先支持 | 工作日4小时内 | 电话支持、加急Bug修复、远程诊断 |
| 专属支持 | 7×24小时 | 专属技术经理、现场支持、定制开发 |
3. 定制开发
对于有特定行业需求的客户,智数云科技提供定制开发服务:行业模板定制、特殊格式支持、算法调优、性能优化、与客户系统集成等。定制开发按项目报价,成果归客户所有。
七、常见合规问题
Q:开发者跑在本地机器上也需要许可吗?
是的。每位开发者在本地开发、单元测试、功能演示时都需要对应的开发者许可。开发者离职或转岗后应释放许可,以便复用。
Q:CI/CD流水线中的构建节点算一个运行时许可吗?
单元测试与集成测试过程中的临时构建运行不计入运行时许可。但如果CI/CD中包含长期运行的文档处理服务(如自动化业务验证环境),则按实例计入运行时许可。
Q:许可证过期后会怎样?
许可证过期前30天,SDK会输出警告日志;过期后付费功能停用,抛出LicenseExpiredException。客户应在到期前续签,避免影响生产。
Q:跨国使用需要额外授权吗?
DocCore的标准许可授权覆盖全球使用。但对特定禁运地区,可能需要单独评估。海外子公司的部署建议在购买时提前说明。
八、集成Checklist
开始集成DocCore SDK前,建议按以下清单检查:
- 确认需要的模块组合(Core、Render、VisionOCR、Pipeline等)
- 估算生产环境实例数,确定运行时许可规模
- 确认部署平台(.NET 6/8/Framework 4.8),匹配SDK版本
- 确认部署环境(Windows x64等),下载对应原生依赖
- 评估许可证加载方式(文件、环境变量、KMS)
- 制定许可证管理流程(分发、轮换、过期预警)
- 审计需求对接(日志格式、存储位置、保留周期)
- 签订技术支持协议(支持级别、响应时间、升级条款)
九、询价与试用流程
DocCore SDK的商业授权采用"需求评估 + 报价 + POC + 签约"流程:
- 客户通过官网联系销售团队,说明使用场景和规模
- 销售团队提供初步报价与技术方案建议
- 客户申请评估许可证(30-60天),完成技术验证(POC)
- 双方签订软件授权协议与技术支持协议
- 智数云科技签发正式许可证,客户进行生产部署
- 按合同约定的支持级别开展技术支持与版本更新
总结
DocCore SDK的商业授权体系围绕"灵活、合规、透明"三大原则设计:灵活的模块组合适配不同业务规模,完善的合规机制保证双方权益,透明的支持条款让客户在集成过程中清楚预期。对于正在评估PDF与OCR SDK的.NET团队,建议尽早进入POC阶段,通过实际代码验证DocCore在贵公司场景下的表现,再根据实际需求选择合适的授权组合。
想了解DocCore SDK商业授权?
联系销售获取报价