COBOL世界中是否存在传递依赖管理?
COBOL二进制文件是否有任何类型的存储库系统?
答案 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 上编程,而且我保留了我的编辑器的来源!