Решения Microsoft 2000   Продукты  |   Поддержка  |   Поиск  |   Путеводитель по серверу  
microsoft
  Платформа 2001   |   Digital Dashboard - Русские компоненты   |
Основная страница

Введение

Методология

Технологии

Продукты

Решения

Где и как приобрести продукты Microsoft

Где и как обучиться по продуктам Microsoft

Где и как получить техническую поддержку и консультации


Проблема 2000 года и ПК

Уязвимые компоненты

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

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

  • Аппаратное обеспечение (BIOS). Большинство версий BIOS, выпущенных до 1995 года, использует двузначное представление дат и, следовательно, неправильно обрабатывает даты, относящиеся к 2000 и последующим годам.
  • Операционная система. Операционные системы чаще всего используют собственные часы для отсчета времени, предоставляя приложениям системные библиотеки и службы для доступа к информации о дате и времени.
  • Системные библиотеки. Практически все функции по обработке дат и времени в системных библиотеках хорошо проверены и стандартизованы, однако это не означает, что ошибки в этом слое полностью исключены.
  • Приложения. В коммерческих приложениях источником проблемы 2000 года могут быть как ошибки, заложенные в приложение на этапе разработки, так и ошибки, вызванные неправильной работой остальных слоев вычислительной платформы.
  • Модули, создаваемые и подключаемые пользователем. Практически все современные приложения имеют возможность подключения надстроек и дополнительных компонентов, разрабатываемых организацией для собственных нужд. Пользовательские модули представляют наибольший риск с точки зрения проблемы 2000 года, поскольку в них для хранения и обработки дат зачастую используются неправильные типы данных и алгоритмы.
  • Интерфейсы обмена данными. Вычислительная система практически никогда не является изолированной - обмен данными между приложениями, получение информации из унаследованных систем, а также от клиентов или партнеров является неотъемлемой частью процесса. Поэтому неправильно отформатированная или просто неверная информация, полученная извне, может оказаться одним из самых серьезных источников ошибок.

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

Ошибки BIOS

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

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

Одной из самых распространенных проблем часов CMOS является то, что они неправильно обрабатывают смену столетия при включенном компьютере. Однако серьезной эту проблему назвать нельзя, поскольку операционная система не использует показания часов CMOS. Хуже, если часы CMOS некорректно обрабатывают смену столетия при выключенном компьютере. Исправление такой ошибки возлагается на BIOS. Средства, позволяющие правильно интерпретировать показания часов CMOS, реализованы в современных версиях BIOS ведущих производителей (Award, AMIBIOS, Phoenix и др.).

Помимо того, что в BIOS могут отсутствовать средства, исправляющие показания часов CMOS, потенциальным источником проблемы являются практически все версии BIOS, выпущенные до 1995 года (а также выпускаемые в настоящее время BIOS сомнительных производителей). Они, например, неправильно обрабатывают смену столетия при включенном компьютере, устанавливая текущую дату на 1900 год вместо 2000-го. В этом случае операционные системы Microsoft при загрузке устанавливают текущую дату на 1980 год, поскольку считают текущее значение часов BIOS ошибочным.

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

Системные библиотеки

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

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

Так, например, тип данных time_t, а также функции, предназначенные для обработки времени и дат, закрепленные стандартом ANSI, правильно работают только для дат в диапазоне от 1 января 1970 года до 18 января 2038 года. Более того, поскольку класс CTime из библиотеки Microsoft Foundation Classes (MFC) также в качестве внутреннего представления даты и времени использует тип данных time_t, проблемы с обработкой дат могут возникнуть и в приложениях, работающих с MFC.

Конечно, до 2038 года еще далеко. Однако, как уже упоминалось, в 70-х годах разработчики вносили в свои приложения потенциальные ошибки, исходя из тех же соображений.

Пользовательские модули

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

  • модули VBA в приложениях Microsoft Office;
  • приложения, созданные при помощи Visual Basic, FoxPro, C++, J++ и т. п.;
  • различные надстройки к приложениям.

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

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

Устранение возможных ошибок в пользовательских модулях значительно осложняется, если принять во внимание, что:

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

Сопряжение ПК с другими платформами

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

назад наверх дальше


© 2000 Корпорация Microsoft. Все права защищены.

Иные зарегистрированные логотипы и торговые марки являются
собственностью их владельцев.