Присоединяйтесь!
Зарегистрированных пользователей портала: 506 313. Присоединяйтесь к нам, зарегистрироваться очень просто →
Законодательство
Законодательство

"РЕКОМЕНДАЦИИ ПО РЕШЕНИЮ ПРОБЛЕМЫ 2000 ГОДА В ИНФОРМАЦИОННЫХ СИСТЕМАХ БАНКА РОССИИ" (утв. ЦБ РФ)

Дата документа14.04.1999
Статус документаДействует
МеткиРекомендации

    

РЕКОМЕНДАЦИИ
ПО РЕШЕНИЮ ПРОБЛЕМЫ 2000 ГОДА В ИНФОРМАЦИОННЫХ СИСТЕМАХ БАНКА РОССИИ

 

Введение

 
    Проблема 2000 года связана с трудностями, которые могут возникнуть при неправильном функционировании программного обеспечения, технического обеспечения и программно - аппаратного обеспечения в конце двадцатого столетия или при выполнении операций с информацией, включающей даты, относящиеся к следующему столетию.
    Проблема возникает по двум причинам. Первой причиной является то, что многие системы хранят даты в шестизначном формате (YYMMDD, DDMMYY или MMDDYY) с представлением года только двумя цифрами, а не четырьмя. Так, дата 15 февраля 1998 года будет представлена в формате YYMMDD как 980215. А дата 15 февраля 2000 года в этом же формате будет храниться как 000215, и по умолчанию в качестве столетия ей будет приписываться значение 19. Это приводит к неразличимости столетий.
    Вторая причина - то, что 2000 год является високосным, чего не учитывают многие программы. Правилами определения високосного года должны быть:
    1) делимость на 4, но не на 100;
    2) делимость на 400. Например, годы 1800 и 1900 не являются високосными, а 2000 год является.
    По этим причинам при наступлении 2000 года могут произойти сбои вычислительных систем и ошибки в обработке данных, связанные с операциями следующих категорий.
    Арифметические:
    - вычисление длительности промежутка времени между двумя датами;
    - вычисление даты, основываясь на начальной дате и длительности промежутка времени;
    - вычисление дня недели, дня в году, недели в году и т.п.
    Переходы:
    - сравнение двух дат.
    Форматы:
    - преобразование даты из одного представления в другое (YYMMDD, юлианская и т.д.);
    - извлечение из поля даты ее различных частей и значений.
    Хранение данных:
    - хранение и поиск;
    - сортировка и слияние;
    - использование даты в ключах и индексах дисковых файлов и таблиц баз данных;
    - использование даты в именах файлов.
    Расширенная семантика:
    - использование в дате "99" и "00" или других значений в качестве особого признака (конца файла, пропущенного значения, режима хранения и т.п.).
    Эти ошибки могут быть связаны с прикладным программным обеспечением (неправильное вычисление процентов, дат платежа, пенсий, пособий, капиталовложений, неправильный учет файлов, поддержание и сохранение файлов), операционными системами (нарушение работы программ ведения файлов и оптимизации производительности), системами контроля за доступом и безопасности (логическое отключение пользователей от автоматизированных приложений, физическое отключение от помещений или зон подразделений), техническим обеспечением (отказ центральных процессоров компьютеров, коммутаторов, маршрутизаторов, мостов, серверов, принтеров, факсимильных машин, мультиплексоров и других устройств, а также отказ микросхем ROM, BIOS, контроллеров жестких дисков и т.д.). Кроме того, неправильная работа с датами может нарушить функционирование банкоматов, автоматов в торговых точках (POS), сейфов, лифтов, систем отопления, вентиляции и кондиционирования воздуха, противопожарных систем и т.д.
    Таким образом, очевидной является необходимость замены покупного технического и программного обеспечения версиями, удовлетворяющими требованиям 2000 года, переделка разработанного собственными силами программного обеспечения и преобразование архивных баз данных для обеспечения их совместимости с новыми структурами данных и программным обеспечением.
 

1. Определения соответствия 2000 году

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

Определение Британского института стандартов

 
    Соответствие 2000 году будет означать, что на производительность и функциональность ИС не повлияют даты до, во время и после наступления 2000 года.
    В частности, должны соблюдаться следующие правила.
    Правило 1. Никакое значение для текущей даты не должно вызвать прерывания в работе.
    Это правило известно как правило общей целостности.
    Если это требование удовлетворяется, то переход через все значимые границы времени (например, дни, месяцы, годы, столетия) будет выполняться правильно. Текущая дата означает сегодняшнюю дату, как она известна оборудованию или продукту.
    Правило 2. Функциональные возможности ИС, связанные с датой, должны вести себя одинаково для дат до, во время и после наступления 2000 года.
    Это правило известно как правило целостности даты.
    Оно означает, что все оборудование и все продукты должны выполнять с датами вычисления, другие операции и представление в соответствии с определенными целями.
    Функциональная возможность означает как процессы, так и результаты этих процессов.
    Никакое оборудование или продукт не будет использовать конкретные значения даты для особых обозначений (например, "99" - для обозначения "нет конечного значения" или "конец файла", "00" - для обозначения "неприменимо" или "начало файла").
    Правило 3. Во всех интерфейсах и при хранении данных столетие в любой дате должно определяться либо явно, либо недвусмысленными алгоритмами или правилами логического вывода.
    Это правило называется иногда правилом явного / неявного столетия.
    Оно включает два подхода:
    - явное представление года в датах (например, путем использования четырех цифр или путем включения признака столетия);
    - использование правил вывода (например, двузначный год со значением, большим 50, предполагает 19xx, а год со значением, меньшим или равным 50, предполагает 20xx).
    Правило 4. 2000 год должен распознаваться как високосный.
 

Определение штата Миннесота (США)

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

Определение штата Орегон (США)

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

Определение Университета Флориды (США)

 
    Каждый компонент информационной системы должен удовлетворять следующим минимальным стандартам.
    Никакое правильное значение для текущей даты не должно вызвать ошибки или сбоя в любой желаемой операции (вводе - выводе, модификации, ссылке, сравнении, отображении и т.д.).
    Все манипуляции или сравнения связанных с датой данных должны давать желаемые результаты для всех допустимых значений даты в приложении.
    Не должно быть двусмысленности столетия. Неявное столетие может использоваться только там, где все операции с датой и ее отображение могут выполняться без двусмысленности. Во всех других случаях в элементе даты должно храниться явное столетие. Даты с явным столетием должны храниться в 8 смежных байтах в формате YYYYMMDD стандарта ISO. Даты должны отображаться в обычном американском формате MM - DD - YYYY.
    Где минимальная и / или максимальная дата требуется для целей редактирования или отображения, стандартное значение 01-01-1900 (хранимое как 19000101) должно использоваться как минимум, а 12-31-9999 (хранимое как 99991231) должно использоваться как максимум.
    2000 год должен распознаваться как високосный.
 

Определение компании Year2000 Ltd (Новая Зеландия)

 
    Хотя это может оказаться труднодостижимым, в качестве цели мы рассматриваем следующее.
    Все поля даты, хранимые в электронном виде в системах, эксплуатируемых нами, должны содержаться в виде 8 цифр в формате YYYYMMDD стандарта ISO-8601. Это относится ко всем системам, работающим в нашей компании, независимо от того, разработаны они нами или являются пакетами, поставленными нам внешними поставщиками / производителями программного обеспечения.
    Все поля даты, принимаемые электронным образом в наши системы (за исключением ручного ввода), то есть файлы, передаваемые нам от третьих сторон, будут в том же самом формате ISO-8601.
    Все поля даты, передаваемые нами третьим сторонам, будут также в полном 8-значном формате ISO-8601.
    В любых печатных отчетах из этих систем будут печататься 4-значные годы; 2-значные годы будут печататься только в тех случаях, где по контексту предполагаемое значение столетия не вызывает сомнений.
    Любой ввод дат человеком через экраны и т.д. должен быть недвусмысленным. Так, ввод 2-значного года является приемлемым тогда и только тогда, когда контекст приложения делает предположение о столетии полностью очевидным. Любые такие даты должны храниться в полном 8-значном стандарте ISO. Во всех случаях, если этому не препятствуют проблемы размещения, ввод 2-значного года будет сопровождаться отображением интерпретируемого 4-значного года. На случай пожелания оператора изменить столетие должна быть предусмотрена возможность вводить 4-значный год.
    Все техническое и программное обеспечение должно точно возвращать сегодняшнюю дату по любым датам.
    Никакое значение для сегодняшней даты не вызовет какого-либо прерывания в нашей работе.
    Любая обработка, включающая даты, будет вести себя одинаково и в соответствии с ожиданиями до, во время и после наступления 2000 года.
    2000 год распознается как високосный.
 

2. Организация работ

 
    Работы по решению проблемы 2000 года в информационных системах ЦБ РФ следует разделить на пять перекрывающих друг друга этапов.
    1. Осведомленность (июнь - июль 1998 года):
    - назначить руководителя программы 2000 года и создать рабочие группы;
    - определить потенциальное влияние проблемы 2000 года;
    - провести мероприятия по осведомлению о проблеме 2000 года;
    - разработать стратегию 2000 года;
    - разработать схему управления ходом работ и механизм контроля за ними.
    2. Оценивание (июль - ноябрь 1998 года):
    - определить соответствие 2000 году;
    - оценить серьезность влияния отказов, связанных с 2000 годом;
    - провести инвентаризацию информационных систем;
    - установить приоритеты систем и компонентов для преобразования или замены;
    - определить необходимые ресурсы, установить их приоритеты;
    - разработать стратегии проверки, планы тестирования и сценарии;
    - определить и приобрести инструментальные средства 2000 года;
    - рассмотреть график внедрения ИС;
    - рассмотреть вопросы интерфейсов и обмена данными;
    - начать разработку планов чрезвычайных обстоятельств для критических систем.
    3. Обновление (октябрь 1998 года - май 1999 года):
    - преобразовать выбранные приложения, базы данных, архивы и соответствующие системные компоненты;
    - разработать мосты и фильтры данных;
    - заменить выбранные приложения и соответствующие системные компоненты;
    - задокументировать изменения в программном коде и системах;
    - спланировать автономное, интеграционное и системное тестирование;
    - списать выбранные приложения и соответствующие системные компоненты;
    - сообщить об изменениях в информационных системах внутренним и внешним пользователям.
    4. Проверка (январь - сентябрь 1999 года):
    - разработать планы и графики тестирования ИС;
    - разработать стратегию для управления тестированием систем, преобразуемых подрядчиками;
    - выполнить автономное, интеграционное и системное тестирование;
    - начать приемо - сдаточные испытания.
    5. Внедрение (июнь - ноябрь 1999 года):
    - определить среду и процедуры перехода;
    - разработать график внедрения;
    - решить вопросы обмена данными и межведомственные проблемы;
    - выполнить преобразование баз данных и архива;
    - завершить приемо - сдаточные испытания;
    - обновить или разработать планы восстановления после катастроф;
    - внедрить преобразованные или замененные системы.
    В связи с централизованными поставками в подразделения и учреждения ЦБ РФ технических и программных средств и наличием у них собственных разработок следует обеспечить соответствующее распределение работ с целью минимизации их дублирования.
    Для ускорения обмена информацией по проблеме 2000 года необходимо использовать разнообразные средства связи ("горячие" телефонные линии, факсимильное оборудование, электронную почту, сайты Internet и т.п.).
 

3. Варианты преобразования

 

3.1. Обновление

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

Проблемы

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

Приемы

 
    Внутри приложения наилучшие результаты может дать один прием или их комбинация.