科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道评论专栏: Reginaldo Barosa:通过转换 UML 无需进行编码而直接得到 COBOL

评论专栏: Reginaldo Barosa:通过转换 UML 无需进行编码而直接得到 COBOL

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

您可能非常希望能够将统一建模语言 (UML) 模型转换为 COBOL,但是您有没有考虑通过将 UML 转换为 COBOL,可以在多大程度上“编码”您的应用程序呢?

作者:ibm 来源:ibm 2007年10月6日

关键字: 技术 转换 UML 中间件

  • 评论
  • 分享微博
  • 分享邮件

我可以将 UML 转换为 COBOL 吗?

我可以使用统一建模语言 (UML) 创建一个模型,并将其转换为 COBOL 语言以部署到 z/OS® 吗?

当我在世界各地介绍 IBM® 开发工具期间,曾经很多次听到过这个问题。一个很简单的回答是:是的,您可以将 UML 转换为 COBOL 代码。但问题是,通过从 UML 到 COBOL 的转换,您能在多大程度上开发您的应用程序呢?为了阐明这个开发主张的易用性和优越性,我将向您展示一个使用 IBM 工具将 UML 转换为 COBOL 的示例。





回页首


模型驱动的开发和 WebSphere Developer for System z

到目前为止,模型驱动的开发 (MDD) 以及与其相关的、基于 UML 的工具已经存在了十多年。有一些先进组织已经成功地使用了 MDD,它们通过提高工作效率、质量和缩短上市时间,来大幅度地提高竞争优势和市场份额。

研究显示,与传统的文档驱动和以代码为中心的开发相比(请参见参考资料),使用 MDD 实践可以使工作效率提高两到四倍。

IBM WebSphere® Developer for System z V7 中提供了一些向导,可以自动地从给定的 UML 模型生成访问 DB2® 数据库的 CICS® COBOL 代码。这些向导将 UML 转换为 COBOL 和 WSDL(Web 服务定义语言),并且生成 JCL,它将帮助您实现生成的代码。该向导假定 UML 模型是完整的。IBM Rational® Software Architect 可以用于定义 UML 模型。请参见图 1 中的体系结构。

对于每个 DB2 表,所生成的 COBOL 包括两个主程序和一些辅助 COBOL 程序(以执行 XML 解析)等。第一个主 COBOL 程序执行标准的 CRUD(创建、读取、更新、删除)、操作集合,并对单个记录进行操作。第二个主程序处理多个 DB2 行的搜索/列举操作。

WebSphere Developer for System z 可以从现有的 DB2 模式完成类似的转换,但是在本文中,我将重点关注 UML 转换。


图 1. 数据库应用程序生成器体系结构
图 1. 数据库应用程序生成器体系结构




回页首


使用 UML 模型

在使用 UML 时,当前版本的 WebSphere Developer for System z(版本 7.0)转换假定:

  • 将 UML 模型中的任何类作为一个 DB2 表。
  • 将类的每个属性作为这个表的一列。
  • 在转换中,忽略其他 UML 项目,包括类中的操作和方法。

如您所见,使用当前的实现,我们无法将 UML 模型转换为 COBOL 业务逻辑;这是一种面向数据库的转换。UML 类模型中的任何操作都将被忽略。

可以将 WebSphere Developer for System z 安装到 Rational Software Architect 之上;在这种情况下,您将不需要导入和导出 UML。然而,对于开发人员来说,他们通常并没有在桌面中安装 Rational Software Architect。

使用向导创建和部署资产的主要步骤(必需执行)包括:

  1. 从 Rational Software Architect 导出 UML 模型。
  2. 将 UML 模型导入到 WebSphere Developer for System z。
  3. 使用数据库应用程序生成器向导来编辑和配置转换参数。
  4. 运行转换。
  5. 创建映射 UML 类的 z/OS DB2 表。
  6. 将生成的代码部署到 z/OS CICS。
  7. 在 z/OS 中配置并安装 CICS Web 服务。
  8. 测试创建的 Web 服务。

图 2 中显示了我在一个转换示例中使用的 UML 模型。


图 2. Rational Software Architect 所创建的 UML 模型
图 2. Rational Software Architect 所创建的 UML 模型




回页首


编辑和配置转换参数

在将 UML 模型导入到 WebSphere Developer for System z 之后,您必须使用向导配置该转换。在这个示例中,UML 模型并不具备所有必需的实现特征。例如,当配置客户编号 (CUST_NO) 转换时,我将这个属性定义为整数(图 3)。


图 3. 使用转换参数编辑器
图 3. 使用转换参数编辑器

您还必须为该转换配置其他详细信息,如 CICS、MVS 和 USS。

基本上,“MVS”和“USS”是将要在生成的 JCL 代码中使用的 z/OS 数据集的名称,并且 CICS 服务使用 USS,比如用于在 z/OS 中存储 WSBIND 代码的位置。图 4 显示了为该转换将要生成的 CICS 资源所指定的配置。


图 4. 配置 CICS 资源
图 4. 配置 CICS 资源




回页首


运行转换

在这个示例中,图 5 显示了该转换生成的所有资产。请注意,在转换期间,如果选择了Automatic Remote Deployment,并且您已经连接到了 z/OS 系统,那么将执行下面的操作:

  • 将所有 .cbl 文件移动到 MVS 系统中指定的目标 COBOL 数据集。
  • 将所有 .jcl 文件移动到 MVS 系统中指定的目标 JCL 数据集。
  • 将 JCL 提交到主机。
  • 将所有 .wsbind 文件移动到 USS 系统中指定的 WSBIND 目录。
  • 将所有 .wsdl 文件移动到 USS 系统中指定的 WSDL 目录。


图 5. 由该转换所生成的资产
图 5. 由该转换所生成的资产




回页首


生成的资产的描述

该转换将生成 COBOL 资产(类型为 cbl)、部署 CICS 服务所需的 WSBIND 文件(类型为 wsbind)、WSDL 文件(类型为 wsdl)、JCL(类型为 JCL)和日志文件(类型为 log)。下面将简要描述所生成的资产:

  • @USTCRUD.cbl:许多 COBOL 程序负责执行 CRUD COBOL 应用程序的 Web 服务转换器驱动程序。
  • @USTLIST.cbl:许多 COBOL 程序负责 LIST COBOL 应用程序所使用的 Web 服务转换器驱动程序。
  • CUSTCRUD.cbl:根据 z/OS DB2 表,执行 CRUD 操作的 COBOL 程序。
  • CUSTCRUD.log:用于 CRUD 应用程序的日志文件。它将日期、所使用的 WebSphere Integrator for System z 的版本、用于转换的参数等等作为日志记录下来。如果需要获得支持,则必须将该文件提供给 IBM。这个文件还包括生成的 WSBIND 文件的十六进制内容。
  • CUSTCRUD.wsbind:CICS 所需的 WSBIND 文件,用来为 CRUD 应用程序创建 Web 服务。需要在 CICS Web 服务分拣目录中的 z/OS 系统中安装这个文件。
  • CUSTCRUD.wsdl:这是 Web 服务定义语言 (WSDL) 文件,稍后需要使用该文件调用创建的 CRUD Web 服务。不需要将这个文件移动到 z/OS 系统,因为是由生成的 COBOL 驱动程序(而不是 CICS)完成 XML 的解析。
  • CUSTLIST.cbl:从该表的多行执行读取操作的 COBOL 程序。
  • CUSTLIST.log:用于 LIST 应用程序的日志文件,类似前面所描述的用于 CRUD 应用程序的内容。
  • CUSTLIST.wsbind:CICS 所需的 WSBIND 文件,以便为 LIST 应用程序创建 Web 服务。
  • CUSTLIST.wsdl:定义 LIST Web 服务应用程序的 WSDL。稍后,将使用它通过 CICS 服务调用 LIST 应用程序。

下面将简要描述所生成的 JCL:

  • ITSOBD.JCL:使用 JCL 构建生成的 CRUD 和 LIST COBOL 应用程序,并绑定 DB2 计划和包。这个 JCL 将调用过程 ITSOCB,而它也是生成得到的。
  • ITSOBDDR.JCL:JCL 用以构建 CRUD 和 LIST COBOL 生成的驱动程序。这个 JCL 将调用过程 ITSOCBDR,而它也是生成得到的。
  • ITSOCB.JCL:ITSOBD.JCL 所使用的过程包括:
    • 使用 EXEC SQL 语句进行 COBOL 程序的 DB2 预编译或者预处理。
    • 使用 CICS 语句进行 COBOL 程序的 CICS 预编译。
    • COBOL 编译。
    • Linkedit 编译后的程序。
  • ITSOCBDR.JCL:ITSOBDDR.JCL 所使用的、对生成的驱动程序执行 COBOL/CICS 操作的过程。
  • ITSORDO.JCL:JCL 通过资源定义选项(Resource Definition Option,RDO)来定义 CICS 资源。





回页首


使用 Web Services Test Explorer 调用 LIST 应用程序

在部署了生成的代码之后,我使用 WebSphere Developer for System z 的 Web Services Test Explorer 组件测试 Web 服务,以获得即时的回馈。在我的示例中,我希望列出 8 行信息(图 6)。


图 6. 测试部署的 CICS Web 服务
图 6. 测试部署的 CICS Web 服务

正如您所见,这个从 UML 到 COBOL 的转换并不会像您所希望的那样提供所有 来自 UML 的所需的代码,但它的确是一个很好的开始,并且通过生成相关的代码,您可以节省一些时间。

另外请注意,该向导生成了 100% COBOL,而不包含任何专有代码、子例程或者任何其他框架。即使您对部署 CICS Web 服务不感兴趣,但您仍然可以利用从 UML 类映射得到的 DB2 表的 COBOL 代码。

将来会对这个特性进行进一步改进,可能会允许您创建自己的模板。IBM 永远欢迎大家积极进行反馈,因此,如果您对当前实现有想法或者建议,请告知我们。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章