COBOL迁移策略?

有没有人在这里参与了旨在消除COBOL或减轻COBOL的风险的项目(例如,写在内部编译器或使用COBOL生成的NetBeans等)? 如果是的话,用什么工具/策略被采纳? 是你成功了吗? 你会做什么不同?

轶事典故欢迎。 只是想了解人们使用方法和问题的复杂性。

--------------解决方案-------------

COBOL别的什么都充满了基于两点问题。

  1. ALTER语句。
  2. 在重新定义条款。

除此之外,它实际上是很容易。

这里是你怎么做。

  1. 查找所有文件定义。 每一个“字帖”与每一个文件的定义。 没有例外。 没有“,这是次要的”。
  2. 积极识别代表持续经营记录的文件。 有时,这些被称为“主文件”。 有时候,他们没有专门标识。 COBOL系统都充满了暂时的,短暂的文件。 你需要区分表示,代表从COBOL传递瞬态数据排序,以COBOL系统实用程序等等,夸夸其谈其他文件持久的业务状态的文件。
  3. 对于每一条持久的商业信息,找到所有重新定义条款。 这是一个可怕的,可怕的问题。 赔率是好的,这些不这样做你认为他们做的。 尝试识别由各个重新定义的替代表示的数据的各种子类。 你会得到这个错误。 现在克服它。 在某些时候,你会发现神秘的数据,你无法解释。
  4. 在这一点上,你需要调查你的文件,以找出什么是真正在各个领域。 对于这一点,你可以买一个工具。 或者,你可以写一个解析器COBOL DDE记录定义。 这些并不难分析。
  5. 现在,你有各领域的实际内容的调查,修改你的重新定义的理解,真正存在的文件。 这,顺便说一句,可能需要很长的时间。 个月。 认真。 您的数据将是一个烂摊子。 在某些时候,你将不得不找出一些记录,你不能处理,因为你无法确定他们的意思。
  6. 创建您的修改后的数据模型。 这样做的权利。 建立正确的数据模型。 你应该使用的方法。
  7. 创建您的转换程序。 从COBOL文件提取到加载新的数据模型。
  8. 编写单元测试您的转换。 能证明什么,在修订后的数据模型,尽可能接近原始的COBOL数据匹配越好。 回想一下,有神秘的数据。 还记得,你不能完全理解的遗留COBOL报表的每个细节。 你将有很多的注意事项和异常和警告,并挥手。 得到足够接近,你有信心,你知道的数据。
  9. 写什么样的COBOL是应该做的高级别摘要。 不分析什么确实,除了在紧急情况下。 该COBOL将是疯了,不可读,unrelaible的,矛盾的,几乎无用。
  10. 从头编写修改后的COBOL系统,采用修订后的总结的用例。 写正确的单元测试。 确保新系统实际的工作是将旧的数据,运行新的东西并行。

    这比将COBOL代码便宜。 大多数COBOL程序冗长,充满了无用的垃圾来处理设计糟糕的特殊情况和异常处理。 一旦你开始使用Python或Java重写它们,你会看到一个良好的语言(如Python)具有良好的库可以修剪一个大的COBOL程序下来的东西相当小。 此外,一旦你理顺所有的异常和愚蠢的特殊情况下,即增生随着时间的推移,你会发现有在所有这些PEFORM语句很简单的事情隐藏。
  11. 做这个“转换和并行运行”操作多次才能确定你喜欢的新的软件比旧的软件更好。
  12. 有一个正式的退役活动,您正式关闭COBOL系统并删除这些文件。 这是非常非常重要的。 你不会往前走,如果有一些挥之不去的疑问,新的东西。 如果每个人都喜欢新的东西不够,他们会很乐意删除旧的东西。 如果他们不喜欢新的东西就够了,让转换和修复,直到他们喜欢它足以删除旧文件。

该问题可能不是COBOL,这可能是我们。 一般情况下,COBOL应用程序很大,知之甚少。 这使得一些应用程序是一个烂摊子,唯一的解决办法是重新写,或者像你的情况,刷新着一个新的语言的结论。

这样考虑:COBOL一般用于实现复杂的业务应用中的问题空间违抗通过任何合理的抽象集合的边界。 商业交易,并实现它们所需要的规则,往往随意性很强,有时不合逻辑,有时不一致。 但也有例外几乎所有的规则。 更糟糕的是,业务规则可以像时尚:今天和垃圾风靡一时的明天。 即使是最强的基础崩溃时,在地上不断地转移(认为大陆漂移)。

对于其他的比喻,认为一个企业应用程序作为绗缝被从一大堆的赔率放在一起,并在结束的很长一段时间。 有时候,一个模式出现,有时没有。 COBOL是构建绗缝被不错。 您的应用程序转换为其他语言的“X”是不会改变的事实,你有什么是拼拼凑凑。

当然,这可能是很难招到新的程序员支持COBOL应用程序。 我知道当我得到了我的第一个COBOL的工作在25年前我以为我已经死了,完蛋了。 不过,我既然来尊重语言和大企业的复杂性。 我也有机会看到,当Java是用在开发大型复杂的业务应用会发生什么。 图中是没有任何好转。 所有你最终做的是代一组问题(例如,对程序代码的大型单片块)用新的(如:类扑,以适应无法预料急转弯的对象模型)。

改变你的应用程序语言作为吸引年轻和亮可能无法正常工作,以及希望的那么多的一种手段。 最初,所有的问题都是新的,有趣的。 吸引新的人才不应该是困难的,但是,建立和维护一个企业申请的新颖性在时间消退。 在这一点上,“年轻和不安分的”会动的让你有你原来的工作人员的问题。 很多程序员不明白的是,他们被用来支持业务,而不是倒过来。 这会导致很多的挫折,当东西,他们已经把他们的心,被边缘化或重新定义面目全非。 最终的解决方案可能会被说服年轻,明亮,有在COBOL“生命”毕竟,这不是性感,但它可以完成这项工作,以及其他任何东西。

我发现,大多数的COBOL程序员我合作过的企业学科领域的专家第一和第二的程序员。 他们往往善于理解业务规则和互动,但不太好(或不太关心)应用架构。 我在哪里工作,这个问题是通过使用“巴塞特帧技术”的解决在一定程度上。 程序员分为两大组中,应用程序开发者和建筑/基础设施的开发者。 该应用程序体系结构小组构建可重用“帧”是捕捉建筑的精华,很多标准体系的行为。 然后,应用程序开发人员复制这些帧到他们的节目,当特定的特征或行为是必需的,使他们专心于业务。 这是一个总过于简单(看看维基百科或只是谷歌巴塞特帧技术)。

我的建议是坚持使用COBOL,但考虑正朝着更好的支撑环境和工具集。 想想演进,而不是革命。 在进化过程中没有超出生存没有特别的日程,但随着时间的推移,这种策略适用于任何情况。 革命,在另一方面,有时成功,但往往不是,导致了大量的间接伤害,然后反正失败。

如果你仍然想你的COBOL应用程序转换为另一种语言,我建议如下:花了大量的时间分析和重构现有的代码库,因为有很多“有趣”的问题解决之前,你甚至应该考虑尝试将COBOL到任何东西。 要特别注意的方式COBOL实现流量的控制(例如COBOL PERFORM并不意味着你所期望的调用返回的语义 - 查看)。 该链接还指出,在COBOL重组的几篇好论文。 最后,另一个海报(艾拉巴克斯特)已经做了很多有益的工作,这方面也是如此。

注:在进化前,不要以为恐龙 - 他们是非常成功的,直到流星打击,几乎消灭干净的石板! 想想鲨鱼,今天就像相关的150万年前。

不能用个人的故事作出贡献,但我想这个资源可能是有用的:CO​​BOL到Java自动迁移与GPL的工具

的COBOL程序恕我直言,“风险”是这样的程序正在运行大型关键业务应用程序,如果你打破他们公司的业主将打破你的事实。 这些方案必须发展反正,以满足持续的需求,所以真正的问题是如何理解应用程序是如何组织,如何进行更改,以及如何验证所产生的程序。 虽然你可以无休止地争论COBOL的优劣作为编程的langauge,这些问题都没有任何不同的比对中,大型和关键任务应用程序已经实现了其他汉语语言。

有一个问题,使得COBOL一点问题是较为普遍缺乏工具来帮助处理。 Java和C#有现代的IDE,大量的搜索和索引功能,测试覆盖工具,类图提取工具​​,而这些都有助于。 大多数的COBOL厂商也有集成开发环境,但我不知道他们的能力。

语义设计提供了多种COBOL工具,包括使用COBOL大小写的搜索,测试覆盖工具,作风检查,克隆检测工具,系统架构提取等搜索巨源代码库工具

你还必须了解所需要的变化,认真进行更改。

如果你决定,你要处理的COBOL代码解压到其他事实或建立COBOL到X转换工具,你会发现SD使用COBOL前端。 它是建立在DMS,发动机用于构建自定义分析和转换规则之上。

是的,建立这样的分析或翻译工具是很难的。 一些你可能面临的问题,另一个反应会谈。 该SD前端解决的关键问题,“你可以解析COBOL准确的”,没有它解决其他问题是没有实际意义,因为你不会用手在任何合理的时间或预算,或风险来翻译大COBOL系统的管理吓唬到死亡。 请记住,该应用程序是关键。

我已经使用的一种可能的方法是保持COBOL核心但扩大周围的边缘。

微焦点提供了一个名为Enterprise Server的工具,它允许COBOL与Web服务交互。

如果你有一个COBOL程序A和另一个COBOL程序B和A通过接口部分调用B,该工具允许你揭露B的接口部分为一个Web服务。

对于程序的,你再生成客户端代理和现在可以通过Web服务调用B点。

当然,由于B现在Web服务的任何其他类型的程序(命令行,Windows应用程序的Java,ASP等)现在还可以调用它。

此外,他们有一个叫做COBOL.NET产品,它运行在Visual Studio和COBOL转换为MSIL。 这意味着,你可以再在任何.NET组件链接。

因此,这种方法是保持通过Web服务的COBOL核心,但界面和做新的发展在任何CLR兼容的语言(C#,VB等)

这是一个相当复杂的答案很简单的问题。 可能有许多方法来迁移COBOL应用程序到其他语言,但也有涉及很多变数。 我会尽量务实:

一,是系统仍在发展/固定?

如果有大量的更改整个项目的源代码中,你想击中一个移动的目标。 别。 一是稳定COBOL系统通过,不幸的是,花钱改善它。

二。 检查的差距:

  1. 你要消除COBOL或
  2. 你要消除大型机或
  3. 你要消除IMS DB或
  4. 你要消除_?

要注意的是,如果你选择一个以上的替代方案, 打破你的项目分成不同的阶段。 如果尝试多于一个的那些在一个时间,难度将是相同的,创建一个新的系统和迁移其数据。

三。 设计目标

根据你的回答前面的问题,你将决定在目标系统上使用什么技术。 相对于以前的:

  1. 主机支持Java
  2. 如果要迁移500 + MIPS体系,确保目标的环境都能应付自如。 而且永远不会买一个应用服务器无法忍受的数额。
  3. DB2是事实上的关系数据库主机

三。 记得整理顺序

如果你的源主机,要小心了。 主机上的一个排序的文件将是未排序的ASCII系统。

四。 选择你的工具明智

没有迁移COBOL一个完美的工具。 IBM会说他们的是,微焦点也会,但都那么有陷阱和很多很多的问题。

五,数据强

COBOL严重依赖于数据。 所以,你应该花超过一半的项目分析COBOL数据结构。 而另一半,你会花固定的,你无法从分析得到什么。

六。 不要使用内部编译器

使用您自己的编译器不减少任何风险,但增加了总体拥有成本。 买一代替。 最可靠的将是来自IBM,因为它的大小。 Micro Focus公司正在投资大型机小型化所以它是另一个不错的选择。

七。 购买工具进行数据分析

是啊。

八。 请确保你有时间

这也许是差了一截。 测试了一批系统以需要运行几个小时,并产生数以百万计的企业记录将需要数天时间。 每解决你的来源将采取几个小时,很多量再次运行,而大量的人力,时间的检查。

* 九。 建立验收测试分析阶段期间

大多数COBOL系统是非常古老的,而不幸意味着,很少有人知道他们是如何工作的,大概没有人知道实现每一个业务规则。 这意味着你接受你是地狱,除非你与你的客户对你们俩怎么会考虑系统的功能和bug的一个非常明确的协议。

十,迁移错误

一直以来,无论何时迁移应用程序时,请确保您重现bug。

十一。 谨防其他语言

主机有EZtrieve,自然,汇编生活与COBOL。 如果源系统是主机时,请确保您只有COBOL坐在那里。

分类:改写 时间:2015-03-15 人气:0
本文关键词: 遗产,改写,COBOL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.355 (s). 10 q(s)