Distributed Architecture Reconstruction of Polyglot and Multi-Repository Microservice Projects
本文提出了一种用于分布式静态架构重构的新型框架,该框架通过利用模块化、特定技术的提取器来统一数据并为多语言、多仓库的微服务项目生成准确的文档,从而克服了现有局限性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你拥有一个巨大的、繁忙的城市,它由数百个微小的、独立的社区组成。每个社区(一个微服务)都由不同的团队建造,使用不同的材料(编程语言),并遵循其独特的风格。有些社区是用砖块(Java)建成的,有些是用木头(Python),还有些是用玻璃(Go)。
问题在于?没有人拥有整座城市的完整地图。原始蓝图要么丢失了,要么过时了,或者是用只有最初建造者才能理解的语言编写的。因为这些社区变化极快且是独立构建的,试图一次性绘制一张覆盖全城的巨型地图简直是一场噩梦。如果你试图同时观察整座城市,你会陷入交通拥堵;而且如果一个社区发生了变化,你就必须重画整张地图。
这篇论文介绍了一个名为 ModARO 的新工具来解决这个问题。以下是它的工作原理,使用了简单的类比:
1. “专业侦察兵”(提取器 - Extractors)
作者并没有雇佣一个巨大的、超级智能的机器人来理解城市中每一种建筑材料,而是创建了一个由专业侦察兵组成的团队,称为提取器(Extractors)。
- 工作方式: 每个侦察兵只精通一件事。一个侦察兵只知道如何阅读“Java”蓝图。另一个只知道“Docker”容器。还有一个只知道“YAML”配置文件。
- 神奇之处: 你不需要教 Java 侦察兵如何阅读 Python。你只需要把 Java 侦察兵派往 Java 社区。他们观察四周,找到重要的细节,并将它们记录在标准化的笔记本上。
- 没有记忆: 这些侦察兵是“失忆症患者”。他们不记得在上一个社区看到了什么。他们只观察眼前的特定建筑。这使他们保持高效,并防止产生混乱。
2. “通用笔记本”(模型 - The Model)
当侦察兵完成工作后,他们并不会把笔记留给自己。他们会将发现的结果写在通用笔记本(JSON 模型)上。
- 这个笔记本有一个大家公认的特定格式。
- 如果 Java 侦察兵发现了一扇“门”(API 端点),他们会记录下来。如果 Python 侦察兵发现了一个“窗户”(数据库连接),他们也会记录下来。
- 因为每个人都使用相同的笔记本格式,来自 Java 社区和 Python 社区的信息最终可以被合并在一起。
3. “指挥家”(算法 - The Orchestrator)
有一个指挥家(重构算法)来管理这些侦察兵。
- 指挥家说:“好了,让我们来看看这座建筑。”
- Java 侦rá 兵检查它并添加笔记。
- 指挥家看到有了新的笔记,便说:“哦,既然我们现在知道这里有一个 Java 文件,那我们就叫上 Docker 侦察兵,看看是否也有一个容器。”
- 这个过程循环进行,直到没有发现新信息为止。指挥家确保如果两个侦察兵试图在同一行写入相互矛盾的内容,系统会停止运行并发出警报(错误),以便人类进行修复,而不是让地图变得混乱。
4. “分布式地图”(多仓库重构 - Multi-Repo Reconstruction)
这是本论文最大的创新点。在过去,为了绘制地图,你必须把每个社区的所有蓝图都收集到一个巨大的房间里,然后一起观察它们。这很慢,而且破坏了城市的“独立”精神。
这种新方法是分布式的:
- 独立工作: 每个社区在建造或更新自己的房屋时,绘制属于自己的微型地图。他们不需要等待其他社区完成。
- 组装: 稍后,这些微型地图会被带到一起,像乐高积木一样拼接起来。
- “幽灵”连接: 有时,一个社区会说:“我们要给一个叫作‘Test-Service’的地方寄信。”由于该地方还在另一个社区,他们目前还不知道确切的地址或 ID。系统允许他们写下:“寄信给任何名为‘Test-Service’的对象。”一旦所有的微型地图拼接在一起,系统就会自动连接这些点,将“Test-Service”发送方与“Test-Service”接收方匹配起来。
为什么这更好?
- 并非“一刀切”: 你不需要一个复杂且脆弱的系统来同时理解所有编程语言。每当出现一种新语言时,你只需添加一个新的侦察兵(提取器)即可。
- 速度快: 因为每个社区都在绘制自己的地图,所以你可以更新单个服务的地图,而无需停止整个城市。
- 灵活性: 你可以使用现有的工具。如果你已经有一个分析 Java 代码的工具,只需将其封装在“侦察兵”的外壳下,它就可以加入团队。
简而言之,这篇论文构建了一个系统,其中的小型专业团队可以独立地记录各自部分的复杂系统,然后自动将这些碎片缝合在一起,形成一个完整、准确的整体架构图,而无需在工作期间了解其他部分的所有信息。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。