Леонид Черняк    

Всего за несколько недель до наступления Нового года, когда ситуация вокруг “Проблемы 2000” уже в общем-то определилась, вдруг, как черт из табакерки, появилось решение, нереальное в своей простоте, и приходится только изумляться, что оно появилось так поздно. Новый подход к П2000 предлагает крошечная калифорнийская компания Y2K-OK! LLC (www.y2kok-solution.com), но основополагающие идеи и авторство метода принадлежат Уилларду Уатенбургу (Willard Wattenburg). Об этом своеобразном человеке мы расскажем отдельно, но прежде о решении.

Суть метода

В существующем виде предложение Y2K-OK! LLC адаптировано только к двум аппаратным платформам: IBM 390 и AS400. Это ограничение не следует из метода исправления ошибки, на самом деле он может быть распространен и на другие платформы, но разработчики не ставили перед собой задачи создать универсальное средство. Они работали в условиях предельно ограниченного времени и стремились заполнить ту нишу, которая, по их мнению, наиболее актуальна.

Как обычно в таких случаях имеется два взаимодополняющих продукта:

- Y2K AUDIT осуществляет поиск датазависимых областей в программах;

- CETA Y2K автоматически изменяет машинный исполняемый код, что принципиально отличает его от всех известных систем.

Продукт Y2K AUDIT не оригинален, он имеет бесчисленное количество аналогов, а CETA Y2K сравнить не с чем. Выбранная для него в качестве названия аббревиатура расшифровывается следующим образом: Conversion at Execution Time Arithmetic, что означает “конверсия исполняемой арифметики”; здесь, собственно, и раскрыта основная идея. Считается, что модернизированная программа не умещается в старом размере памяти. Вспомните, сколько раз было сказано, что “ошибка тысячелетия” порождена неразумной экономией памяти, когда под год отвели всего два байта. Также известно, что при достижении цифры 99 происходит переполнение и, следовательно, тем или иным способом память нужно расширять.

Впервые идея нестандартной операции над двумя байтами была предложена компаниями Allstate Insurance и IBM, ими был изобретен новый формат представления целого числа, названный Allstate/IBM A0. Формат используется в средстве компрессии данных Millennium Date Compression Tool (MDCT), которое было разработано в страховой компании Allstate Insurance и затем продано IBM. Этот метод позволяет заменять только две цифры в записи года, но он не был доведен до логического конца и не получил широкого распространения по причине того, что процедура замены требует обязательной перекомпиляции и значительного ручного труда. К тому же метод предполагает наличие исходных текстов программ.

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

Итак, в процедурах конверсии CETA обычное представление десятичных целых чисел и обычная десятичная арифметика заменяются изобретенными Уатенбургом форматом представления чисел и его собственной арифметикой WF (Wattenburg Format). Этот метод позволяет упаковать в два байта число величиной до 150. Почему именно до 150? На эти вопросы пока ответа нет - дела коммерческие. Но благодаря замене формата представления года жизнь программ продлевается до 2050 г.

Практически процедура конверсии состоит из перекодировки обычного представления дат числами в формате WF, и еще CETA добавляет небольшой модуль к каждой программе, исполняемой на IBM 390 и AS400. Этот модуль называется WFP (W arithmetic program), он выполняет функцию интерфейса, обеспечивая конвертирование входных данных во внутренний формат WF на момент исполнения и возврат в обычный формат после окончания обработки. Понятно, что при этом никак не затрагивается логика самой задачи и ни о какой перекомпиляции, естественно, говорить не приходится.

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

История вопроса

История появления CETA не лишена интереса, прежде всего благодаря яркой личности Уилларда Уатенбурга. Сейчас ему 63 года, в шестидесятых годах он, будучи молодым преподавателем университета Беркли, занимался вопросами “самокомпилирующихся компиляторов”, проблемами автоматического построения компиляторов, написанных на тех языках, с которых они осуществляют компиляцию. Уатенбург опубликовал известную статью “Автоматизация проектирования программных продуктов” (Design Automation For Computer Software, IEEE Transactions on Electronic Computers, Vol. EC-15, No. 3, June 1966). На практике свою технологию программирования он испытал, написав на Фортране компилятор с Фортрана, на суперкомпьютере, установленном не где-нибудь, а в Ливерморской ядерной лаборатории (Livermore Lab.). Описанные в статье методы широко используются и сегодня при проектировании компиляторов и операционных систем.

Затем Уатенбург работал консультантом в IBM, где участвовал в разработке мэйнфреймов.

В июле 1998 г., тридцать лет спустя, Уатенбург обратил внимание на П2000. Он решил использовать свои знания программного и аппаратного обеспечения машин класса IBM 360/370/390. Ему удалось изобрести гибридную арифметику, отличающуюся одновременно и оригинальностью, и элегантностью, но при этом обеспечивающую альтернативный подход к решению П2000. Эта арифметика позволяет упаковывать в два байта число не более 150. В то же адресное пространство оказалось возможным записать годы в диапазоне от 1900 до 2049.

Предварительная работа велась в Ливерморской лаборатории, ее теоретическая корректность и патентная чистота были подтверждены экспертами этой лаборатории, и Уатенбург намеревался сделать свои результаты общедоступными. Однако два ведущих научных журнала, куда обратился Уатенбург, встретили его недружелюбно и отказались публиковать статью, где описывались предложения, направленные на решение П2000, и это несмотря на то, что имелось экспертное заключение из Ливерморской лаборатории (напомним, что именно там находится один из двух крупнейших суперкомпьютерных центров, предназначенных для моделирования ядерных испытаний).

Казалось бы, поражение, но помогло одно из многочисленых увлечений Уатенбурга, а именно его выступление в роли ведущего на местной радиостанции.

В феврале этого года в одной из передач Уатенбург поведал о неудавшихся попытках предложить свое решение П2000 и о том, что он готов сдаться перед возникшими препятствиями. Эту передачу услышала жена его бывшего студента по имени Макбрайд (McBride) и передала услышанное мужу. Макбрайд воспринял все очень серьезно, ему удалось собрать ударную группу, состоящую из бывших ведущих сотрудников IBM, которые поверили в Уатенбурга и его идеи. Эти энтузиасты срочно побросали свои прежние дела и 1 марта 1999 г. образовали в городе Кэмпбелл компанию Y2K-OK! LLC, президентом которой стал Макбрайд.

В дальнейшем была получена существенная поддержка со стороны IBM в виде неограниченного доступа к технической информации и свободного машинного времени на системах IBM 390 и AS400.

Не остался равнодушным к новой инициативе и один из основателей Sun Microsystems Билл Джой (William Joy), он способствовал получению гранта и свободному доступу к некоторым версиям продуктов.

В ноябре компания Y2K-OK! LLC вышла на рынок. Несмотря на позднее начало, последователям Уатенбурга кое-что удалось сделать. Сейчас с сайта компании Y2K-OK! LLC можно загрузить программы для выполнения аудита, а CETA поставляется на коммерческих условиях, которые не оглашены (компания предлагает потенциальным заказчикам напрямую обращаться со своими запросами). Макбрайд сообщил, что уже через три дня после открытия сайта компания получила около ста запросов со всего земного шара.

Сенсационность решения П2000, предложенного У. Уатенбургом, не может не вызвать определенного сомнения, поэтому за разъяснением я обратился к специалисту.

Мнение специалиста

Чтобы убедиться в достоверности предложенного метода решения П2000, я решил обратиться к отечественным авторитетам. Ведущий специалист компании HetNet Игорь Никитин любезно согласился оценить работу Y2K-OK!LLC.

По его мнению, описанное решение представляет несомненный интерес, оно может быть использовано для адаптации к 2000 г. не менее 70% приложений.

Модернизация систем в отсутствие исходных текстов особенно актуальна в российских условиях.

 

Версия для печати