22、量子软件现代化:从经典计算到混合信息系统的演进

量子软件现代化:从经典计算到混合信息系统的演进

1. 背景与挑战

从经典计算向量子计算的技术飞跃,不能通过摒弃现有一切并从头开始来实现。原因主要有两点:
- 公司系统中某些操作过于简单,使用量子计算实现的成本与潜在收益不成正比。
- 公司的战略决策基于经典信息系统中嵌入的业务规则,完全替换风险过高。

解决方案并非完全替换当前信息系统(即经典系统),而是对那些能从量子计算范式的计算能力中受益的信息系统进行现代化改造,向经典 - 量子信息系统(即混合信息系统)迁移。

2. 混合信息系统

2.1 经典 - 量子信息系统

近年来,理论上已证明量子计算能为金融、化学、机器学习等不同科学领域带来益处。未来,公司或组织有望采用量子算法执行可受益于增强性能的功能,如使用 Grover 算法进行大规模数据搜索。

但这并不意味着要完全用量子软件系统取代当前信息系统,原因如下:
- 并非所有公司都需要向新计算范式演进,因为量子算法只能解决特定任务,部分公司的商业模式可能不适用。
- 用量子软件实现信息系统,在性能上可能提升不大,而实施成本却会大幅增加。
- 量子计算机执行操作的请求需由经典信息系统发出,经典软件负责接收回复并转化为最终用户答案。如今,多数量子程序在云量子计算机上远程执行,结果由经典程序解读。
- 在硬件层面,也对混合系统进行了研究。例如量子冯·诺依曼架构的量子计算机,系统分为经典和量子两部分,中间有输入输出区域作为与“经典世界”的接口。

因此,预计未来组织和公司将开发或迁移至结合经典和量子软件的混合信息系统。然而,从经典信息系统向混合信息系统的演进面临巨大挑战,需要引入软件再工程实践来应对。

2.2 混合信息系统的挑战

并非所有公司都能从当前信息系统的演进中受益。即使将所有当前信息系统升级到量子软件,可能只有一小部分会加速,其他最多保持不变。

能够利用量子计算并考虑演进信息系统的公司,将面临以下挑战:
- 功能选择 :需深入研究哪些组件或功能需要演进,多数情况下,可将最复杂的操作放在云服务提供商处执行,即经典信息系统向包含量子云组件的信息系统演进。
- 业务模式转变 :若组织想利用量子计算热潮,将业务模式转向新范式,意味着信息系统直接向混合信息系统演进,但仍会有部分业务流程由经典计算实现。
- 分布式计算架构 :由于当前 NISQ 设备计算能力有限,可采用分布式量子计算架构,但这会带来新挑战。
- 其他问题 :混合信息系统还面临代码可移植性、工具集成、程序验证和工作流开发编排等障碍,加上量子解决方案市场成熟度低,量子技术(如量子计算机、编程语言、开发工具等)变化大,公司选择的特定技术可能很快过时。

3. 量子软件现代化

3.1 传统再工程

几乎所有技术都会随时间演进,信息系统也不例外。这种演进可能对过去开发的系统产生负面影响,使其成为遗留系统,即源代码在技术上可能过时。

传统再工程过程通常用“马蹄形”模型表示,包括三个主要阶段:
1. 逆向工程 :分析系统,识别其组件和相互关系,以另一种形式或更高抽象级别创建系统的抽象表示。
2. 重构 :在相同相对抽象级别上从一种表示形式转换为另一种表示形式。此阶段可包括重构,即在保留系统外部行为(功能和语义)的同时改进内部结构,也可在此抽象级别添加新功能。
3. 正向工程 :通过生成较低抽象级别的新源代码和其他软件工件进行系统更新。

软件再工程项目在处理再工程过程的标准化和自动化等特定挑战时,传统上容易失败。标准化方面,再工程过程通常以多种临时方式进行,需要更好地定义过程,且代码不是标准化涵盖的唯一软件资产。自动化方面,为防止大型复杂遗留系统再工程失败,过程必须成熟且可重复,还需自动化工具辅助,以降低公司维护成本。

3.2 架构驱动的现代化

为解决上述挑战,传统再工程演进为架构驱动的现代化(ADM)。ADM 使用工具促进现有系统的分析、重构和转换,以支持新需求、系统迁移或互操作性。它遵循模型驱动工程(MDE)原则,将软件工件表示和管理为模型,并定义它们之间的自动模型转换。

马蹄形再工程模型已适应 ADM,形成马蹄形现代化模型。该模型中有三种类型的模型:
- 计算独立模型(CIM) :从计算独立的角度,以高抽象级别查看系统,不显示系统结构细节,有时也称为领域模型,用于弥合领域专家与系统设计和构建专家之间的差距。
- 平台独立模型(PIM) :从中等抽象级别,从平台独立的角度查看系统,具有一定的技术独立性,适用于多种类似类型的平台。
- 平台特定模型(PSM) :从低抽象级别,从平台特定的角度查看系统,将 PIM 中的规范与系统如何使用特定类型平台或技术的细节相结合。

作为 ADM 倡议的一部分,OMG 发布了知识发现元模型(KDM)。KDM 解决了遗留信息系统现代化中出现的主要挑战,是一系列提议标准的基石。它使用 OMG 标准通过 XMI 表示模型,提供了一个元模型来表示遗留信息系统中涉及的软件工件,逆向工程技术可使用 KDM 从软件遗留工件自下而上构建高抽象级别模型。

KDM 规范有不同视角,为简化结构设计了四层,每层基于前一层,包含多个表示与遗留信息系统相关不同关注点的包。根据马蹄形现代化模型,基于 ADM 的过程可分为三种现代化过程,取决于逆向工程阶段达到的抽象级别:
1. 技术现代化 :考虑最低抽象级别,历史上最常用于遗留系统。公司在处理平台或语言过时、新技术机会、符合标准、系统效率、系统可用性等现代化因素时会进行技术现代化项目。
2. 应用/数据现代化 :考虑中等抽象级别,专注于在应用和数据设计层面重构遗留系统以获得目标系统。这种现代化由多种因素驱动,如提高系统可重用性、减少系统逻辑分散或降低系统复杂性、应用设计模式等。当对系统设计层面有一定影响时,与技术现代化区分开来。
3. 业务现代化 :将抽象级别提升到最高,重构阶段在业务架构层面进行,即公司遗留系统的业务规则和流程。除技术模型和应用/数据模型外,还纳入业务语义模型,这对于保留遗留系统中嵌入的业务知识以及使公司业务需求与未来目标系统保持一致至关重要。

3.3 混合信息系统的软件现代化

随着新技术和方法的出现,软件工程不断演进以应对混合信息系统的挑战。量子范式带来了新困难,已有人提出基于再工程,特别是基于 ADM 的解决方案,以实现经典信息系统向混合信息系统的演进。该解决方案引入了“量子软件再工程”,可用于以下三种互补场景:
- 迁移现有的孤立量子算法,并将其集成到混合信息系统中。
- 将经典遗留信息系统迁移到支持经典 - 量子信息系统集成的混合架构。
- 转换或添加由量子软件支持的新业务操作,并集成到目标混合系统中。

量子软件现代化过程基于 UML 和 KDM 等现有标准,但不限于这些标准。具体过程如下:
1. 逆向工程 :分析现有信息系统工件,如源代码、数据库模式等,若存在量子程序也可一并分析。输出是一组构成 KDM 存储库的 KDM 模型,该存储库以与技术无关的方式全面表示遗留信息系统的各种视角和关注点,可保留先前知识和业务规则,降低量子程序集成的影响。同时,需要扩展 KDM 以支持量子软件方面的表示。
2. 重构 :将 KDM 模型(半)自动转换为表示目标混合系统分析和设计方面的高抽象级别模型,可使用 UML 作为元模型。同样,需要扩展 UML 以支持与量子计算相关的新系统分析和设计元素,软件工程师可使用此扩展手动建模新目标系统的量子方面,并与逆向工程收集的现有元素集成。
3. 正向工程 :使用一组技术为目标混合系统生成大部分源代码。目前有许多成熟的生成器可从 UML 模型生成不同经典编程语言的代码,但缺乏从高抽象模型生成量子编程语言代码的生成器,需要提供并集成这些生成器。

为实现量子软件现代化过程,需要满足以下要求:
1. Req. 1 :通过一系列高效且设计良好的技术,从经典信息系统(如源代码、数据库模式或文档)中提取尽可能多的信息,用 KDM 模型表示,并将每个组件的 KDM 模型存储在存储库中。
2. Req. 2 :与 Req. 1 类似,但分析的是量子程序的元素。
3. Req. 3 :为使 KDM 能够处理量子程序中的不同量子元素(如量子门或量子比特),需使用其标准扩展机制(如“Extension Family”)扩展 KDM。
4. Req. 4 :为了能够处理不同的量子元素,需要使用“UML 配置文件”扩展 UML 元模型。
5. Req. 5 :扩展量子软件现代化过程中选择的两个标准(KDM 和 UML)后,自动进行模型转换,转换时考虑两个标准的扩展机制。

综上所述,从经典计算向量子计算的转变是一个复杂且具有挑战性的过程,需要综合考虑技术、业务和成本等多方面因素。通过引入软件再工程和架构驱动的现代化方法,有望实现经典信息系统向混合信息系统的平稳演进,为未来的计算发展奠定基础。

4. 量子软件现代化流程可视化

4.1 传统再工程流程

传统再工程的“马蹄形”模型流程可以用 mermaid 流程图表示如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A(遗留系统):::process --> B(逆向工程):::process
    B --> C(重构):::process
    C --> D(正向工程):::process
    D --> E(新系统):::process
    B --> F(高层次架构模型):::process
    F --> C
    C --> G(改进的重构模型):::process
    G --> D

从这个流程图可以清晰地看到传统再工程的三个主要阶段,以及各个阶段之间的关联和产出。逆向工程是整个流程的起点,通过对遗留系统的分析得到高层次架构模型,为后续的重构提供基础。重构阶段基于高层次架构模型进行结构改进和功能添加,得到改进的重构模型。最后,正向工程根据改进的重构模型生成新系统。

4.2 架构驱动的现代化流程

架构驱动的现代化(ADM)的马蹄形现代化模型流程如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    H(遗留系统):::process --> I(挖掘):::process
    I --> J(源 PSM 模型):::process
    J --> K(抽象):::process
    K --> L(源 PIM 模型):::process
    L --> M(抽象):::process
    M --> N(源 CIM 模型):::process
    N --> O(重构与优化):::process
    O --> P(目标 CIM 模型):::process
    P --> Q(定义):::process
    Q --> R(目标 PIM 模型):::process
    R --> S(定义):::process
    S --> T(目标 PSM 模型):::process
    T --> U(生成):::process
    U --> V(改进的系统):::process

在这个流程图中,展示了 ADM 中从遗留系统到改进系统的完整流程。从遗留系统开始,通过挖掘得到源 PSM 模型,然后经过两次抽象分别得到源 PIM 模型和源 CIM 模型。对源 CIM 模型进行重构与优化后得到目标 CIM 模型,再依次定义目标 PIM 模型和目标 PSM 模型,最后生成改进的系统。这个流程体现了 ADM 基于模型驱动工程(MDE)原则,将软件工件表示和管理为模型,并进行自动模型转换的特点。

4.3 量子软件现代化流程

量子软件现代化的流程可以用以下表格和 mermaid 流程图结合说明:
| 阶段 | 操作步骤 | 具体内容 |
| — | — | — |
| 逆向工程 | 1. 分析现有信息系统工件 | 包括源代码、数据库模式等,若有量子程序也进行分析 |
| | 2. 生成 KDM 模型 | 以与技术无关的方式全面表示遗留信息系统的各种视角和关注点 |
| | 3. 存储 KDM 模型 | 将每个组件的 KDM 模型存储在存储库中 |
| | 4. 扩展 KDM | 使用标准扩展机制(如“Extension Family”)扩展 KDM 以支持量子软件方面的表示 |
| 重构 | 1. 转换 KDM 模型 | 将 KDM 模型(半)自动转换为高抽象级别模型 |
| | 2. 选择元模型 | 使用 UML 作为元模型 |
| | 3. 扩展 UML | 使用“UML 配置文件”扩展 UML 以支持量子元素 |
| | 4. 手动建模 | 软件工程师使用扩展后的 UML 手动建模新目标系统的量子方面,并与现有元素集成 |
| 正向工程 | 1. 选择生成技术 | 利用现有的从 UML 模型生成经典编程语言代码的生成器 |
| | 2. 提供量子代码生成器 | 开发并集成从高抽象模型生成量子编程语言代码的生成器 |
| | 3. 生成源代码 | 为目标混合系统生成大部分源代码 |

对应的 mermaid 流程图如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    W(经典信息系统):::process --> X(逆向工程):::process
    Y(现有量子程序):::process --> X
    X --> Z(KDM 存储库):::process
    Z --> AA(重构):::process
    AA --> AB(目标经典 - 量子系统):::process
    AA --> AC(UML 模型):::process
    AC --> AA
    Z --> AD(专家模型重构):::process
    AD --> AA
    Z --> AE(自动模型重构):::process
    AE --> AA
    AA --> AF(低代码生成技术):::process
    AF --> AB
    AF --> AG(量子代码解析器):::process
    AG --> AB
    AF --> AH(代码、文档、数据库解析器):::process
    AH --> AB
    AA --> AI(模型转换):::process
    AI --> AB

这个流程图和表格详细展示了量子软件现代化的具体步骤和各个阶段之间的关系。逆向工程阶段收集经典信息系统和量子程序的信息,生成并存储 KDM 模型,同时扩展 KDM 以适应量子元素。重构阶段基于 KDM 模型和 UML 模型进行模型转换和手动建模。正向工程阶段利用各种生成技术和解析器为目标混合系统生成源代码。

5. 总结与展望

5.1 量子软件现代化的重要性

量子计算作为一种新兴的计算范式,具有巨大的潜力,但从经典计算向量子计算的转变并非一蹴而就。量子软件现代化为实现这种转变提供了可行的途径。通过对现有经典信息系统进行现代化改造,向混合信息系统演进,可以充分利用量子计算的优势,同时避免完全替换现有系统带来的高成本和高风险。

5.2 面临的挑战与应对策略

在量子软件现代化过程中,面临着诸多挑战,如代码可移植性、工具集成、程序验证、工作流开发编排以及量子技术的快速变化等。为应对这些挑战,需要不断完善相关的标准和规范,如扩展 KDM 和 UML 以支持量子元素,开发高效的模型转换工具。同时,要加强对量子计算相关技术的研究和开发,提高量子代码生成器的性能和可靠性。

5.3 未来发展趋势

随着量子技术的不断发展和成熟,量子软件现代化将在更多领域得到应用。未来,混合信息系统可能会成为主流的计算模式,广泛应用于金融、化学、机器学习等领域。同时,量子软件的开发和维护将变得更加规范和高效,为量子计算的大规模应用奠定基础。

总之,量子软件现代化是一个充满挑战和机遇的领域。通过合理运用软件再工程和架构驱动的现代化方法,结合不断发展的量子技术,有望实现经典计算向量子计算的平稳过渡,推动计算领域的新一轮变革。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值