COBOL В Java Исследован


Есть интересная запись об опыте переноса системы COBOL, работающей на мэйнфрейме IBM, на Java в Linux. Данные были взяты из файлов VSAM KSDS в Oracle. 

Если вы думали, что COBOL-это то, о чем вспоминают только древние программисты, когда они выпили слишком много какао, подумайте еще раз. До сих пор существуют системы, работающие на мейнфреймах в COBOL, потому что их перемещение слишком сложно, и когда компании в конечном итоге кусают пулю и переходят на более современные системы, это все еще нелегко.

В этой статье излагается опыт миграции приложения американской газетной компании (The New York Times) для управления ежедневной доставкой газеты на дом. Система мэйнфреймов IBM эксплуатировалась с 1979 года, но нуждалась в модернизации для повышения совместимости с другими новыми системами, а также снижения эксплуатационных расходов.

В то время как система доставки на дом звучит относительно просто, приложение выросло до более чем двух миллионов строк кода COBOL, реализующего выставление счетов, обслуживание счетов клиентов и маршрутизацию доставки. Более ранняя попытка переделать приложение доставки на дом в период с 2006 по 2009 год потерпела неудачу, поэтому новый план состоял в том, чтобы начать все с нуля и обеспечить “функциональную эквивалентность”.

Это было сделано путем объединения наборов связанных компонентов для выполнения некоторого подмножества основного приложения. Группа компонентов будет запускаться и тестироваться как “черный ящик” через существующие доступные извне интерфейсы, такие как веб-службы SOAP, экраны пользовательского интерфейса, таблицы баз данных и файлы.

“С учетом одних и тех же исходных данных выпуск устаревших групп компонентов был сопоставлен с выпуском их модернизированных аналогов. Когда они совпадали, считалось, что тест пройден. Когда они этого не сделали, был проведен анализ первопричин, чтобы найти источник несоответствия.”

Хотя в теории это звучало прекрасно, на практике все было не так просто:

“Подавляющее большинство устаревших компонентов приложений не имели достаточно высокого уровня тестового покрытия, чтобы кодифицировать необходимую информацию для тестирования функциональной эквивалентности. Как следствие, много времени было потрачено на анализ входов, выходов, а иногда даже внутреннего поведения компонентов, когда тесты не удавались и приходилось выполнять анализ первопричин. Это было особенно трудоемко и сложно для более сложных пакетных заданий (т. Е. для многих людей-

месяцы работы).”

Процесс переписывания кода растянулся на год, но был признан “успешным”, хотя есть “несколько производственных проблем”. Разработчики говорят:

“модернизированное приложение оказалось довольно стабильным в производстве в течение последних восьми месяцев, и газеты по-прежнему доставляются ежедневно.”

Они также признают, что разработка новых функций остается “сложной задачей”. Это требует знания идиом программирования COBOL и концепций мэйнфреймов, которыми не обладают инженеры-программисты Java в команде. Разработчики мейнфреймов COBOL в команде знают идиомы и концепции, но еще не владеют Java. Команда является разработчиками перекрестного обучения и надеется, что это поможет в передаче знаний. Они также отмечают, что было трудно нанять новых разработчиков Java из-за отсутствия интереса к работе с переведенным кодом.


Добавить комментарий