稍微复杂一点的图是两个由多个节点和关系连接的 Cobol 程序:从这个示例中您可以看到源节点和目标节点之间始终存在关系。然而,一个节点也可以与其他节点有多种关系。例如,Cobol 程序“CobolProgram001”不仅可以与调用相关,还可以与其他调用/使用/记录相关。
从图中唯一可以看到的是,调用“CobolProgram001”调用了记录为“AZ200”的Cobol程序“CobolProgram001”。该记录也被 Cobol 程序“IE600”使用。
密码与 SQL
现在我们已经了解了我们的数据模型,现在我们将列出 SQL 中的示例查询以及类似的 Cypher 查询。
简单读取程序名称(先是 SQL,然后是 Cypher):
在Cypher中,我们将标签“CobolProgram”与“cobol”匹配,可以在RETURN语句 平面设计电子邮件列表 中寻址“cobol”并访问节点的属性。
调用 Cobol 程序的调用的简单连接:
在连接示例中,标签“CobolProgram”与“cobol”匹配,“Call”与“call”匹配。这意味着可以在 RETURN 语句中寻址“cobol”和“call”,并且可以访问节点的属性。使用“<-[:CALLS]-”可以定义存在哪种关系及其运行方向。
您可以在第二个示例中看到一个趋势:SQL 针对关系数据库模型进行了优化,但是一旦它必须处理复杂的、面向关系的查询,查询就会变得更大。在这些情况下,基本问题不在于 SQL,而在于关系模型本身,它并不是为处理类似图形的连接数据而设计的。
对于数据高度互连的领域,推荐使用图模型,因此也推荐使用像 Cypher 这样的图查询语言。如果您有 SQL 经验,Cypher 很容易学习。
at|analyze 到底是做什么的?
首先读入汇编程序、JCL 和 Cobol 程序。这是通过导入 at|analyze 来实现的。导入的核心是各种解析器。这些分析源代码并将实际代码与注释等其他内容分开。
在解析阶段之后,解析器介入并解析程序或程序部分之间的依赖性/关系。
然后我们可以在 at|analyze 仪表板中获得总体概述。
来自 at|analyze 的仪表板
除了仪表板之外,我们还可以显示已分析程序的详细信息页面。如果我们在详细信息页面上打开 Cobol 程序的调用图选项卡,我们可以看到分析程序的复杂结构。在下面的示例中,您可以看到一个包含大约 16,000 行代码的 Cobol 程序。
at|analyze 中的程序详细信息页面
at|analyze 包含附加功能。这些包括:
神器详情
工件调用图概述
程序部分的分组
程序数据结构的分组
节目文案分组
对所寻址的数据库表进行分组
对调用的 SQL 查询进行分组
报告
库存报告:概述、统计数据和分析图表
丢失对象报告:发现的所有没有源代码的程序的概述
迁移报告:当前迁移状态概述
调用树报告:程序的特定调用树的概述
结论
通过 at|analyze,可以使用各种解析器、图形数据库 (Neo4J) 和丰富的功能组合来详细分析遗留系统或遗留代码。对于已经发展了数十年的 Cobol 和/或汇编器软件项目,遗留代码分析至关重要。
遗留系统正在减缓数字化变革!您正在寻找正确的解决方案吗?那么请访问我们的网站并与 adesso Transformer GmbH 的专家交谈。
致阿德索变压器有限公司
您可以在我们之前发布的博客文章中找到来自 adesso 世界的更多令人兴奋的主题。