大型机的应用现代化:痛苦的数据迁移

基于大型机的生产应用数量众多且举足轻重。然而很多组织机构,希望籍此能够削减硬件和软件成本,扩展技能,并利用新技术的可扩展性,而且已经开始了他们的大型机应用现代化之旅,更确切的说,他们正要将他们的应用移植到诸如Windows和Unix这类开放的系统上。

大家公认的一个事实是,世界上的事务型生产应用超过70%都运行在大型机平台上,并且通常一个企业会有数以百万行的遗留代码正在使用当中。然而,技术和劳动力的发展趋势,都在向开放式系统倾斜。

大型机应用的现代化通常很复杂并且往往包括多个阶段,每个阶段都有不同的技术上或组织机构上的困难。在平台之间的数据移植属于最早的阶段之一,并且是后续阶段的必要前提。尽管这看起来似乎是最容易的一个阶段,但这其中仍充满了暗滩潜流,一不小心就有翻船之虞。据估计,这一阶段的成功率要低于20%。

细查原因,这一结果也在情理之中:首先,绝大多数大型机应用的数据都已经积攒了多年,甚至几十年,其历史数据量已经会超过几百TB(兆兆字节)。因此,这一阶段有海量的数据需要处理。此外,众所周知大型机的数据源和数据格式,难于解析、操纵和转换。另一个让人头痛的任务是数据集成和转换工作,比如排序、合并、复制以及加入到开放系统的环境中,并同时保持系统的高性能、高扩展性和高可靠性。这完全是不需要大量或复杂的开发工作量的地方。

组织机构必须预先计划,适当地处理这些数据需求,才能成功地完成大型机应用现代化的第一步。

对数据移植和集成的要求

大型机现代化早期阶段的一个重要也很有挑战性的任务是,将大量的大型机EBCDIC(扩充的二进制编码的十进制交换码)数据转换成ASCII(美国信息交换标准码)格式,同时还要保留压缩的十进制和二进制数值。由于要处理海量数据,很关键的一点是在处理大型数据集时不能失败(否则需要从头再来,这将会浪费大量时间)。理想情况下,数据的处理既要快(短的处理时间),又要效率高,占用的硬件资源要做到最少。

大型机的数据不仅需要从大型机私有的格式转换成ASCII码,还必须转换成一种合适的格式,从而能够导入到开放系统的应用中。这些转换也不可掉以轻心,因为大型机的生产流程往往使用复杂的、层次性的纪录结构来打包大量的信息,使之成一个数据集。

大型机应用往往会通过使用多种纪录类型、多个复合域的归并和队列,将多个层次的信息塞到一个单个的数据集中,有时候,对数据的解释因纪录而异。这种层次性的数据组织方式常常需要重新整理和组织,才能存储到关系数据库中。用来处理这些复杂纪录的软件,不仅需要能够理解这些复杂的纪录组合,还必须要能够理解原系统中描述这些复杂结构的元数据。

大型机应用采用很多高度专用的格式来存储这些数据结构,因此就需要能够同时辨识和处理这些数据的软件。如果没有对大型机数据源、纪录格式和数据类型的内嵌支持,这些工程将不得不采用费力、耗时且易错的人工交互和定制编码。