Какого “цвета” будет суббота?

     Хорошие новости от Microsoft:                     

на прошлой неделе в штаб-квартире       

Microsoft прошло обсуждение проблемы

2000 года. Было принято решение:          

считать следующий год 1981-м!                 

Актуальный анекдот

Андрей Любашин

Человечество за свою историю неоднократно переживало круглые календарные даты. И всегда они воспринимались как некий рубеж, за которым должно было последовать какое-либо значительное событие.

К наступлению 2000 года человечество относится совершенно особенно: оно осознало, что достижения технического прогресса, наработанные им всего за последние два десятка лет в области компьютеризации общества, способны превратить современную жизнь в хаос. А его последствия в столь динамичном современном мире вполне можно сравнить с постоянно предсказываемым концом Света.

Кризис, связанный с наступлением 2000 года, имеет отношение к каждому из нас, к каждой компании и организации, к каждой стране. Наверное, впервые в человеческой истории в одно и то же время (я имею в виду время, оставшееся до наступления 2000 года) огромное число людей будут делать одинаковые вещи. Это уникальный, беспрецедентный случай.

Историческое отступление

Проблема 2000 года (Y2K) стремительно приближается к своему разрешению и уже сегодня воспринимается многими не как “ошибка тысячелетия” (“the Millennium Bug”) - есть у нее и такое название, - а как “бомба тысячелетия”. По сообщению GartnerGroup, общая стоимость решения этой проблемы может составить 600 - 1000 млрд. долл. (сравним: Вторая мировая война обошлась человечеству в 4200 млрд. долл.; война во Вьетнаме - в 500 млрд).

А все началось с простой технической ошибки. Более 10 лет назад календарный год в компьютерах был представлен только двумя последними цифрами, и системы не обрабатывали четырехзначное представление года. Это привело к тому, что миллионы компьютеров и микропроцессоров не способны корректно обработать цифровое представление 2000 года и следующих за ним лет. И все-таки, в чем причина этой ошибки? Ответ прост: когда создавались миллиарды строк исходных текстов, память была особенно дорогим компонентом и ее приходилось экономить. В результате большинство программистов для хранения значения года использовали лишь последние две цифры. (Это время по праву можно сравнить со временем “Дикого Запада”, когда каждый играл по своим правилам.) На первом плане стояла задача функционирования создаваемых вычислительных систем, а о каких-либо стандартах мало кто помышлял.

Возможные критичные элементы встроенных систем

Похожая ситуация сложилась и в мире микропроцессоров. Они подсчитывают различные параметры: доли секунд, дни, дюймы и миллиметры, фунты и килограммы, градусы и люмены и т. д. Многие кристаллы имеют встроенную таймерную функцию, но учитывающую только даты внутри XX столетия.

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

То, что проблема 2000 года будет иметь определенные последствия, неизбежно; но важно не допустить “эффекта домино”, при котором отказ в одной системе необратимым образом сказывается на другой, и т. д.

Встроенные системы

Все информационные системы можно условно разделить на два больших класса: информационные системы общего назначения (Information Technology, IT) и встроенные системы (Embedded Systems, ES). Такое деление определяется спектром выполняемых задач.

Базы данных, коммуникационные серверы, визуализация данных, экспертные системы, офисные приложения - это все компоненты, входящие в информационные системы общего назначения.

Основу встроенных систем (embedded systems) составляют промышленные компьютеры и микроконтроллеры. Главная задача таких систем - получение информации с датчиков, ее обработка и формирование управляющего воздействия. Спектр выполняемых встроенными системами функций чрезвычайно широк: от включения сигнализации до реализации задач управления с элементами нечеткой логики (fuzzy logic). Встроенные системы относят к классу систем так называемого “реального времени”, основная задача которых - обеспечить немедленную реакцию на внешние события. Если эти системы оперируют датой и временем при выполнении своих задач, то они считаются чувствительными к проблеме Y2K.

Рисковые встроенные системы

Ежегодно на рынке появляются миллиарды различных встроенных систем. Их интеллектуальные возможности стремительно растут, а цены на них относительно снижаются. При этом основная масса встроенных систем ничего не хочет знать про существование таких понятий, как дата и время. Эти системы безразличны к любым календарным переходам. Но несколько процентов от общего числа встроенных систем (всего их насчитывается 40 - 50 млрд.) оперируют с датами, и эти “несколько процентов” - головная боль миллионов специалистов. Главная проблема - обнаружение таких систем. “Покажите мне больного, и я вылечу его!” - восклицают они.

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

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

Системный “календарь”

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

- Оператор вводит дату.

- Система имеет аппаратный таймер, который может быть считан.

- Дата поступает из другого устройства, интегрированного в единую сеть.

Очевидно, что для встроенных систем, чувствительных к датам, наличие программного аппарата (исходные тексты, компиляторы и т. п.) и технической поддержки позволит закрыть проблему Y2K. Но для очень многих систем эти средства недоступны. Конечно, в условиях отсутствия исходных текстов можно воспользоваться различными деассемблерами, но это потребует серьезных финансовых затрат.

Возможен другой путь - полная перекодировка прикладного ПО системы. Кстати, этот вариант может оказаться менее затратным, чем первый.

В любом случае вопрос из разряда технического переходит на уровень управленческого: необходимо принимать решение о будущем такой системы.

Разработка стратегии и основные действия

Современные сложные технологические линии буквально напичканы микропроцессорными системами. Реинжиниринг таких систем на функционально замкнутые компоненты связан с большими техническими и организационными проблемами. Например, реинжиниринг прикладного ПО подразумевает наличие декомпиляторов и анализаторов исходных текстов. Это удовольствие достаточно дорогое, и далеко не каждой компании оно доступно. Поэтому используется другой путь: путь по внешним тестам (принцип “черного ящика”), чтобы определить степень критичности той или иной системы к проблеме Y2K.

Наиболее реальная стратегия решения проблемы Y2K по отношению к встроенным системам сегодня такова.

1. Сбор первичной информации от поставщиков (при этом любые сведения о соответствии компонентов системы Y2K должны восприниматься лишь как дополнительная информация и не более того).

2. Разработка основных методик тестирования как отдельных компонентов системы, так и всей системы в целом.

3. Идентификация рисковых систем через декомпозицию системы на логические элементы и применение принципа “черного ящика” к ее отдельным частям.

4. Обобщение собранной информации и экономическое обоснование модернизации или замены существующих систем.

5. Выбор стратегии поведения:

- снятие устаревших систем;

- модернизация систем;

- перевод систем в разряд не использующих дату и время;

- перевод стрелок назад;

- прямая замена системы.

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

В сентябре этого года во многих странах пройдет проверка готовности к встрече 2000 года. Но думается, что последние 3 месяца года будут посвящены подготовке специальных мер на случай возникновения чрезвычайных обстоятельств. Как это ни парадоксально, но именно современные автоматизированные технологические линии представляют наибольшую опасность и характеризуются максимальной неопределенностью своего поведения. Меньше проблем с морально и физически устаревшими системами: они практически полностью подлежат замене или требуют, чтобы часть ранее выполнявшихся функций (архивирование данных и событий, автоматическое регулирование) была перенесена с них на “непроблемные” узлы.

Основные условия решения проблемы Y2K:

- понимание и поддержка со стороны руководства;

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

- профессиональный выбор соответствующих инструментальных средств для “пораженных” систем;

- четкая разработка системы приоритетов адаптируемых (модифицируемых) систем;

- тщательно продуманная методика адаптации (модификации), включающая адекватное тестовое ПО и наличие необходимого времени на проведение работ;

- строгое отслеживание новых вводимых частей системы на предмет их соответствия проблеме Y2K.

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

Ответственность за принятие решений

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

Y2K в России

Официально в России основные цели и задачи по решению проблемы Y2K были сформулированы в распоряжении Правительства РФ от 30 мая 1998 г. N 671-р. В нем головной организацией, отвечающей за решение проблемы Y2K в стране, был назван Госкомсвязи России. Далее, в каждом министерстве, ведомстве, органе исполнительной власти субъектов Российской Федерации была создана соответствующая рабочая группа.

Кроме этого были организованы центры компетенции по решению проблемы Y2K ЛАНИТ (www.lanit.ru); “Информационные Бизнес Системы” (IBS, www. ibs.ru) и др. - для информационных систем крупных государственных структур и промышленно-финансовых компаний с привлечением ведущих специалистов соответствующих отраслей.

К сожалению, сегодня главные работы по этой проблематике ведутся в сфере систем общего назначения. Именно здесь сформировался основной рынок продуктов и услуг. Но самая тяжелая работа лежит в области использования встроенных систем, а тут предложений пока не много.

Компания “РТСофт” (www.rtsoft.ru), известная на российском рынке как эксперт по созданию встроенных распределенных систем на базе открытых технологий, участвует сегодня и в решении проблем Y2K применительно к встроенным системам.

По оценкам Госкомсвязи, общие затраты России на решение “проблемы века” могут составить 2 - 3 млрд. долл. Готовность РФ к переводу информационных систем на календарь 2000 года в настоящий момент составляет около 20% (см. еженедельник “Электроника и связь”, № 11/123, 10 - 16 марта 1999 г.).

Трудности тестирования

Трудоемкость тестирования встроенных систем определяется их функциональной сложностью. С простыми системами проблем не бывает. Другое дело комплексные системы: подбор или разработка тестов, решение проблемы вывода системы из оперативной работы для тестирования, оценка вероятности успешного тестирования и последующего восстановления, а также ценовых затрат на весь комплекс мероприятий по тестированию - все это сопряжено с большими хлопотами. Очевидно, что этот процесс многофакторный, и здесь не может быть прямых и ясных ответов. Необходимо также хорошо знать технику и продуманно организовать дело, а без этого задачу тестирования - ключевое звено проблемы Y2K - не решить.

Тестирование встроенных систем часто затруднено из-за непрерывности самого производства. Определяющей в такой ситуации становится информация от разработчиков этих систем.

Проблема тиражирования

Любая попытка внести изменения в прикладное ПО встроенной системы неизбежно столкнется с необходимостью его переустановки. Как правило, во встроенных системах для хранения базового и прикладного ПО используется PROM-базированная память, а для работы с ней требуется не только весь аппаратно-программный инструментарий, но и навыки конфигурирования самой встроенной системы.

Помимо технических трудностей есть одна очень важная организационная проблема: изменения в ПО должны вноситься для каждой системы отдельно, и чаще всего это будут не тиражируемые изменения, что неизбежно повлечет за собой огромные финансовые затраты.

Заключение

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

В IT-системах проблем с технической поддержкой нет, все вопросы, как правило, снимаются заменой программных версий продуктов от непосредственных разработчиков.

С ES-системами дело обстоит значительно сложнее. Здесь приходится сталкиваться со следующими проблемами:

- огромный пласт ПО разработан программистами, которых сегодня не найти. Таким образом, появилось множество абсолютно закрытых систем без какой-либо технической поддержки;

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

- тираж встроенных систем во много раз превышает парк IT-систем;

- слишком велико многообразие аппаратно-программных платформ и cross-средств разработки прикладного ПО;

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

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

Есть, правда, еще один способ уйти, а точнее, спрятаться от проблемы Y2K: перевести стрелки часов всех компьютеров назад. Но можно ли считать это решением проблемы?

Так какого же “цвета” будет суббота, первое января 2000 года? Пусть любого, только не черного.

Остается только надеяться на это.

С автором статьи можно связаться по тел: (095) 742-6828 или по E-mail: lubashin@rtsoft.msk.ru.

Несколько полезных Internet-адресов, где можно получить информацию по проблеме 2000 года

- castle.demos.su (Отечественная информационная система по Y2K)

- www.year2000.com

- www.cio.com/forums/y2k

- www.yardeni.com

- www.y2ktimebomb.com

- y2kjournal.com

Основные понятия и термины, связанные с проблемой Y2K

Проблема 2000 - это целый комплекс проблем, которые могут возникнуть в информационной системе. К ним относятся: неверное представление номера года, нераспознавание 2000 года как високосного, неверные вычисления дат.

Встроенные системы - это системы, основанные на одном или нескольких микропроцессорах и иногда имеющие поддержку таймера и системных часов. Такие системы работают в режиме реального времени и встроены (то есть без видимого указания присутствуют в том или ином оборудовании) во многие современные приборы, блоки управления и механизмы.

Совместимость - способность компьютерной системы правильно обрабатывать дату и данные до и после наступления 2000 года.

Готовность - компьютерная система или прикладная программа объявляется готовой к 2000 году, если сможет исправно функционировать в 2000 г., даже несмотря на то, что не полностью соответствует требованиям Y2K.

Инвентаризация - ключевой процесс определения датазависимых систем на предмет их соответствия требованиям Y2K. Инвентаризация служит основной работой по обеспечению готовности к наступлению 2000 года.

“Три события непременно наступят: смерть, оплата налогов и 2000 год”.

     Закон Питера Джагера и Фила Додда (Laws of the Year2000. Peter de Jager & Phil Dodd)

“Чем больше мы вглядываемся - тем больше находим. Чем больше находим - тем больше платим”.

     Закон Д&Д

“Нельзя разрешить проблему Y2K. Можно лишь минимизировать ее последствия”.

     Закон Д&Д

“Планирование неудачи лучше, чем неудача при планировании”.

Закон Д&Д

“Если вы спокойно спите ночью - значит, вы не осознали проблемы”.

Закон Д&Д