COBOL的依赖管理

时间:2016-06-17 13:04:05

标签: cobol

COBOL世界中是否存在传递依赖管理?

COBOL二进制文件是否有任何类型的存储库系统?

3 个答案:

答案 0 :(得分:4)

您的(非常广泛但仍然有效)问题的答案将是“否”,正如评论已经提出的那样。对于这个答案,我将“依赖管理软件”定义为一个软件,它有助于查看运行应用程序所需的程序和文件(由许多COBOL程序组成[否则你不需要管理]),理想的版本化[对于程序X的版本N,我需要M版本中的程序Y和Z,以及文件A和B)。

使COBOL的工作依赖系统变得困难的原因在于,您可以轻松跟踪源级别依赖性(仅包含源和副本)以及无法跟踪的运行时依赖性:

可以轻松跟踪

CALL "SOMEMODULE"(或多或少的静态调用),但通常您会看到CALL somemodule(高度动态调用,其中实际模块名称存储在变量中)。对于后者,您必须检查变量可以获得的所有可能值(有时在MOVE "PROG"之前只有一个简单CALL,有时变量将被子程序甚至更改取自文件/ DB /等等)。 您通常拥有的第二个依赖项是文件/数据库连接。这些内容大多不像ASSIGN to "file1"那样是静态的,而是动态ASSIGN TO filename,与动态程序调用一样。

因此,您通常没有真正的依赖关系管理(如上所述),但只有[编译] COBOL程序和文件的版本化“快照”,其中所有内容都打包在一起(应该)。

在“Windows / Unix世界”中,您将它们放在存档,备份过程(可能是增量式)或适用于二进制文件的版本管理中。

答案 1 :(得分:1)

您可以查看一些IBM工具 - 用于二进制文件的Rational Asset Manager和用于依赖项的Websphere Asset Analyzer。

答案 2 :(得分:0)

您的问题与 Cobol 无关,而是与 BS2000(您的操作系统)有关,因为您只使用二进制文件。

对于 C++,您可以找到许多库(在 Linux、Windows、BS2000 上),您可以将这些库导入系统并构建(如果可能),并将其作为 L 类型元素(在 BS2000 上)放入 LMS 库中。< /p>

在过去(2005 年),我为 BS2000 编写了一个比 EDT 更强大的新编辑器(BS2000 Siemens Editor),其中我添加了 Regex 功能,包括 {{ 1}} 库。

我在 PCRE 上下载了 PCRE 源代码,并且我已经迁移了他的代码,以便所有模块都能正常工作。

完成后,我将二进制文件放入名为 BS2000 的库中,其版本号与 BREGEX.B.LMSLIB 库相同。

现在,每次我想在 C++ 程序和 COBOL 程序中使用 PCRE 时,我都会将此模块包含在 Regex 脚本(BS2000 上的链接编辑器替换 TSOSLNK)脚本中,使用 {{1 }} 或 BINDER BINDER 命令。

如果此 //RESOLVE-MODULES 模块需要来自其他库的其他模块,我必须明确地将这些模块包含在我的 //INCLUDE-LIBRARY 脚本中。

由于链接编辑完全由 L 过程(BS2000 中的脚本)完成,因此您可以混合使用 BINDER 命令和 BS2000 变量以包含所有依赖项。

示例:

BINDER

或使用 BS2000 'scripting' 变量

/START-BINDER
//INCLUDE-MODULE <main-program-name>
//RESOLVE-LIBRARY BREGEX.B.LMSLIB
//RESOLVE-LIBRARY LOGGING-LIBRARY-FOR-BREGEX
//RESOLVE-LIBRARY DEPENDENCY-LIBRARY-2-FOR-BREGEX
//END

PS:我在没有一些例子的情况下回答,因为我在度假,但如果有人问一些例子(使用评论),我可以在我的家用电脑上找到它们并提供更多信息。

有关信息,我已经超过 12 年没有在 BS2000 上编程,而且我保留了我的编辑器的来源!