Исходный код COBOL мэйнфрейма IBM S/390
На моей новой работе у нас есть мэйнфрейм S/390, в котором приложения COBOL используются с конца 90-х годов. Мэйнфрейм стареет настолько, что нам нужно перейти на более новую систему. Мы - достаточно маленький бизнес, и мы не можем гарантировать, что потратим деньги на обновление до нового оборудования мэйнфреймов, а логика программы постоянно совершенствуется в течение более 30 лет, поэтому она имеет большую функциональную ценность. Я собирался перенести эту функциональность на компьютер с Linux и использовать что-то вроде OpenCOBOL для перекомпиляции в качестве исполняемого двоичного файла вместо того, чтобы пытаться переписать его на более новом языке. Я не достаточно испортил мэйнфрейм, чтобы иметь представление о том, как и где получить доступ к этой информации, и джентльмен, который написал все программы, к сожалению, больше не с нами. Я читал, что SSH - вариант, но я даже не уверен, как заставить мяч катиться по нему с помощью мэйнфрейма. Я использую Linux на довольно регулярной основе, поэтому я знаком с SSH, но, насколько я понимаю, эти мейнфреймы - это не простая ОС, к которой можно просто подключиться и перемещаться по файловой системе для получения данных, которые мы можем получить в современных операционных системах., Кто-нибудь может дать мне несколько советов, чтобы получить представление о том, как получить доступ к исходному коду для программ на языке COBOL? Есть ли места по умолчанию, в которых они хранятся и т. Д.? Это несколько простые программы, которые не используют какие-либо функциональные возможности DB2 и, будем надеяться, скомпилируются в другой системе с относительно минимальной отладкой и исправлениями. Я уверен, что пропустил необходимую информацию, которая поможет получить ответ на этот вопрос, и я могу предоставить любую дополнительную информацию, которая необходима, чтобы помочь вам всем помочь мне. Я подозреваю, что SSH не включен по умолчанию, но, возможно, я тоже ошибаюсь. Любая помощь очень ценится. Спасибо всем!
4 ответа
Хотя это и не вопрос программирования, я дам некоторые рекомендации, которые, как я думаю, могут вам помочь.
Во-первых, это деловое решение о том, куда инвестировать.
- Модернизируем ли мы систему до более новой модели, модернизируем ли мы некоторое программное обеспечение и приобретаем ли вы навыки, чтобы поддерживать работу системы? (Системное программирование, обновление ОС и стоимость перехода, более новая платформа (использованный z13 может быть экономичным вариантом, системы хранения для поддержки мэйнфреймов)
- Миграция существующих рабочих нагрузок на другие платформы. (Стоимость миграции кода, определение требований к производительности, новые технологии для замены существующих методов доступа, таких как VSAM или, смею сказать, ISAM, если приложения достаточно стары)
- Статус-кво... оставить вещи там, где они есть и держать свет
При оценке любого варианта вы должны оценить риск для бизнеса и сколько будет стоить нарушение? ИМХО, речь идет не о такой технологии, как SSH или COBOL в Linux, но требует серьезной оценки текущего состояния, приемлемых сценариев и стоимости реализации одного из этих вариантов.
Мои комментарии не предназначены для того, чтобы внушать страх, но дают представление о том, как мне подойти к анализу проблемы такого масштаба.
Там нет места по умолчанию, где исходный код хранится в z/OS (речь идет о z/OS, верно?). Исходный код обычно хранится в наборах данных PDS. Их название зависит от установки, то есть от компании, и от того, используется ли какое-либо программное обеспечение, такое как Endevor, ChangeMan и т. Д., Для поддержки источников.
Поскольку это старый код COBOL для z/OS (OS/390), скорее всего, этот код использует такие особенности ОС, как ввод-вывод на уровне записи, наборы данных VSAM и т. Д. Это те части, которые не будут работать на Платформа -z/OS без серьезной перезаписи. Итак, вам нужно будет заглянуть в источники.
SSH доступен в z/OS, но его необходимо настроить и включить. Вы должны проверить это с помощью sysprog z / OS. FTP и NFS - другие варианты, но, опять же, их необходимо настроить и включить.
Я бы сказал, что перенос источников - это наименьшая из ваших проблем.
Я должен согласиться с предыдущими двумя ответами, но у меня есть некоторые дополнительные предложения. Это бизнес-решение, что делать в системе.
Поиск программы, чтобы понять, что она делает, является первым требованием. Поскольку вы знаете, какая программа запущена, это может быть имя исходного файла. Это вам нужно будет найти. Исходный файл, вероятно, будет в каком-то диспетчере библиотек, первое место, которое нужно посмотреть, - это система меню ISPF. Там будет опция для менеджера библиотеки, который вы используете, если вы его используете. На основании вашего описания вы можете использовать что-то под названием SCLM, которое должно появиться, или вы можете увидеть библиотекаря или Panvalet. Вам нужно будет войти в ISPF, подключившись с помощью эмулятора соединения 3270. Как только вы найдете файл, использование FTP или SFTP может быть лучшим, или ваш эмулятор может просто обеспечить механизм передачи. Вам также необходимо найти соответствующие файлы, которые также должны быть определены в менеджере библиотек.
Когда у вас есть файл, вам нужно будет выяснить, что он использует, как упомянуто выше, он будет работать с каким-то файлом данных, и это будет самая большая часть, с которой нужно иметь дело.
Если это пакетная программа, она, вероятно, является частью графика, и есть также другие запущенные программы, которые вам нужно будет найти и выяснить, как они сочетаются друг с другом.
Как только вы поймете все части, вы сможете принять правильное бизнес-решение относительно того, как это следует выполнять. Возможно, вы захотите выполнить обновление, возможно, вы захотите получить z/OS в качестве облачной службы, если вы не хотите обновлять, но вам нужна эта функция. Или это может быть простая программа, которую вы можете переместить. Это будет намного легче выяснить, когда у вас будут детали.
Вы говорите, что логика программы меняется уже более 30 лет. Это был только один человек, делающий все изменения? Кто-нибудь в команде будет иметь представление о PDS, к которым у пользователя был доступ? Это может быть одним из мест, чтобы искать. Как указывалось в предыдущих ответах, большинство магазинов должны хранить исходный код в каком-либо инструменте config mgmt, таком как SCLM или panvelet. Если у вас есть доступ к коду загрузки, есть утилиты, которые можно использовать для проверки элемента загрузки, чтобы получить список CSECT, в котором будут указаны имена членов obj, составляющих эту загрузку. Вы можете проверить это у администраторов мэйнфреймов. Это может дать вам имена файлов исходного кода. Мы используем SSH из USS в нашем магазине, чтобы переместить код из папки HFS в gitlab. Я также использовал обычный FTP, чтобы просто передавать файлы исходного кода на свою рабочую станцию. Но да, сначала вы должны найти, где он хранится.