Приведет ли развитие Windows NT к ее превращению в супер-ОС или к полной потере управляемости?

Предлагаемая вашему вниманию статья завершает серию "Ближайшие десять минут", а поскольку она появляется в последнем номере NC World (с июня 1998 г. журнал перестал выходить. -- Прим. ред.), это будут "Последние десять минут", сводка наших предположений о ходе дальнейшего развития Windows.

Не будем ходить вокруг да около. Автор "Последних десяти минут" предполагает следующие возможные пути развития событий:

  • Microsoft разобьет Windows NT на две серии систем -- одну клиентскую и одну серверную;
  • Windows NT 5.0 будет отличаться от Windows NT 4.0 лишь сравнительно небольшими усовершенствованиями, достигнутыми ценой снижения стабильности. Иначе говоря, Microsoft не исполнит большей части обещаний, касающихся этой системы;
  • Microsoft обеспечит обещанный набор возможностей, но Windows NT 5.0 войдет в число величайших программистских провалов в американской истории.

Увы, я не успел полностью обосновать приведенные выводы до того, как NC World закрылся. Тем не менее надеюсь залить этой статьей достаточно цемента в фундамент своего построения.

Образ действий Microsoft

Перед тем, как переходить к дальнейшему изложению, вспомним основные тезисы предыдущих публикаций: "В поисках будущей Windows NT" (русский перевод см. http://www.pcworld.ru/1998/11/98.htm), "Новые Unix-системы меняют орбиту NT" (сокращенный русский перевод см. "Мир ПК", 1998, N 11, с. 62, полный -- http://www.pcworld.ru/1998/11/62.htm) и "Реальна ли угроза для NT со стороны Unix?" (сокращенный русский перевод см. "Мир ПК", 1998, N 12, с. 48, полный -- http://www.pcworld.ru/1998/12/48.htm).

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

  • В Microsoft отлично знают, что большинство потребителей, выбирая между двумя продуктами, один из которых весьма совершенен технически, а другой "всего-навсего удовлетворителен, зато от Microsoft", предпочтут второй. Поэтому на угрозу со стороны нового продукта или технологии корпорация отвечает критическими и пренебрежительными заявлениями, а также распространением опасений, неуверенности и сомнений (англ. FUD -- fear, uncertainty, and doubt. -- Прим. перев.) по поводу этого продукта.
  • Корпорация заранее объявляет о намерении выпустить альтернативный продукт, причем, если возможно, несовместимый с опасными для нее подходами, парализуя таким способом развитие новых независимых технологий.
  • Параллельно Microsoft приобретает, воспроизводит и разрабатывает программы, позволяющие ей противостоять любому наперед заданному противнику -- даже если это означает, что со временем корпорация начнет продавать продукт, практически идентичный тому, который она сейчас публично критикует.
  • В итоге выпускается эффектное альтернативное решение, "удовлетворительное", но запирающее пользователя в парадигме покупки и модернизации, ориентированной на Microsoft.
  • При необходимости Microsoft всегда стремится подкрепить свою монополию на ПО для настольных машин заключением эксклюзивных контрактов, которые гарантировали бы ее проникновение на вновь возникший рынок и постепенное продвижение к доминирующему положению на нем.
  • Строя свою стратегию, Microsoft не упускает из виду Департамент юстиции, преследуя одновременно все перечисленные выше цели.

Угроза или обещание?

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

  • Возрастает популярность Unix-систем, экономичных, масштабируемых, стабильных, совершенных в техническом отношении, а в определенных случаях распространяемых бесплатно в виде исходных текстов. Это прямая угроза проникновению NT в область серверов масштаба предприятия.
  • В частности, на рынке быстро увеличивается доля Unix-систем, распространяемых с исходными текстами, растет их популярность и доверие к ним. ОС Linux недавно миновала важную веху: одно из компьютерных изданий опубликовало статью о том, что в корпорации Oracle не видят смысла в обеспечении поддержки Linux. (Несколько позже Oracle заявила о своей поддержке Linux. -- Прим. ред.) На первый взгляд это указывает лишь на недостаток доверия к системе, но журналисты хорошо знают, что статья о производителях, не собирающихся поддерживать данную ОС, свидетельствует об успешном переходе системы из класса никому не интересных в класс опасных для Windows.
  • Происходит также скрытое проникновение Unix в сферу собственно NT. Многие фирмы используют с Unix пакет Samba, обеспечивающий файловые службы и службы печати Windows NT -- это сочетание работает быстрее и стабильнее, чем сама NT. (Забавно, что, по утверждению разработчиков, Samba под управлением Windows NT оказывается быстрее, чем служба Server Message Block из поставки NT.)
  • Благодаря Internet усиливается стремление к независимости от платформы во всех компьютерных областях (это заметно по быстрому развитию Java, HTML, XML, TCP/IP, IMAP, POP3 и ряда других стандартов).
  • В информационных отделах фирм постепенно приходят к пониманию того, что основной идеей сетевого компьютера является правильно реализованная архитектура клиент--сервер.
  • Там также начинают понимать, что главным источником быстрого роста стоимости владения является архитектура Windows, а конкретнее то, что Windows ожидает наличия на каждом компьютере локального пользовательского контекста.

"Терминальный" подход к работе на компьютере

Поскольку это последняя статья в серии, ограничимся рассмотрением лишь наиболее важных аспектов данной темы. Ранее мы обсудили тактику Microsoft на рынке и угрозу для Windows, исходящую от Unix и X11. Связь проблемы неуправляемого роста стоимости владения в Windows и требования локального пользовательского контекста была продемонстрирована в предыдущей статье. Чтобы глубже понять эту связь, рассмотрим еще три вопроса:

  • Что необходимо для того, чтобы реализовать службы Windows для "тонких клиентов"?
  • Что необходимо для создания администрируемого PC?
  • Что необходимо для обеспечения всеобъемлющей службы каталогов, способной конкурировать с NDS или StreetTalk?

"Тонкий клиент" в исполнении Microsoft

Как выясняется, первая проблема неимоверно сложна для Microsoft. И если вы внимательно читали предыдущие статьи серии, причина этого должна быть для вас очевидной: вопрос о превращении Windows в систему, дружественную к "тонкому клиенту", упирается в другой вопрос -- локального пользовательского контекста.

Чтобы сотворить из Windows NT Server систему, способную хорошо обслуживать "тонких клиентов", надо научить ее относиться к "тонким клиентам" так, как если бы каждый из них обладал собственным пользовательским контекстом. Эти контексты следует держать в изолированных друг от друга сеансах и администрировать на сервере: несколько клиентов должны иметь возможность обращаться к одним и тем же программным библиотекам, но не к одному и тому же контексту.

При всей тривиальности названных требований их очень трудно выполнить для Windows. Возможно, вы удивитесь, узнав, что Citrix WinFrame сейчас работает не так. Эта программа способна поддерживать несколько пользовательских сеансов, но лишь с помощью чудовищных ухищрений ей удается замаскировать тот факт, что и сама Windows NT, и большинство прикладных программ, использующих интерфейс Win32, строились в расчете на работу всего с одним пользовательским контекстом в каждый момент времени.

Иначе говоря, WinFrame представляет собой не истинно многопользовательскую версию Windows NT, а NT, которой придали "многопользовательский" вид, заткнув дыры жевательной резинкой, обмотав рассыпающиеся детали скотчем и подвязав всю конструкцию бечевками. Это вовсе не означает, что Citrix WinFrame не является отличной программой. Сказанное относится к материалу, с которым пришлось работать специалистам из Citrix, -- ограничениям, вызванным тем, что Windows NT построена как ОС для настольного компьютера, а не для сервера.

Тяжкое наследие прошлого

Чтобы сделать Windows NT настоящей многопользовательской серверной ОС, Microsoft должна, во-первых, справиться с ограничениями как самой NT, так и прикладных программ, использующих интерфейс Win32, а во-вторых, передать соответствующие методики другим разработчикам ПО для Windows и учредить некий логотип или "знак одобрения", который будет выдаваться фирмам, строго соблюдающим правила создания программ для многопользовательской среды.

Если корпорация изберет эту тактику, ей нужно будет начать со своей собственной ОС и прикладного ПО: чтобы машина с Windows NT Server поддерживала одновременную работу 50 пользователей в Microsoft Office и они не мешали друг другу, потребуется перестроить архитектуру NT, а также определенным образом модифицировать пакет Office.

Проблема прикладных программ

Итак, Microsoft не может ограничиться внесением изменений только в Windows NT. То обстоятельство, что прикладные программы тоже проектировались в расчете на одного пользователя, приводит к возникновению ряда нетривиальных моментов при попытке переноса их в многопользовательскую среду.

В качестве примера рассмотрим утилиту быстрого поиска (Find Fast) из Microsoft Office. Для упрощения поиска документов Office она строит индексы всех постоянных дисков, имеющихся на машине. Это делается в предположении, что данный пакет Office используется одним человеком на одной машине, и чтобы предоставить возможность работы с Office под управлением Windows NT нескольким пользователям, для каждого нужно будет запустить на сервере отдельный экземпляр Find Fast: в случае 50 пользователей потребуется 50 экземпляров.

Любые два таких экземпляра вполне могут попытаться переписать индексный файл одного и того же диска, но это еще не самое неприятное. Настоящая же проблема состоит в том, что при активизации Find Fast загружает центральный процессор компьютера на 90--100%.

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

HKEY как ключ к успеху

"Однопользовательский" подход глубоко проник в идеологию Office 97 и сказывается на ряде решений, использованных при создании пакета. Так, многие пользовательские файлы настройки по умолчанию хранятся в тех же каталогах, что и программы Office. Вот некоторые (но далеко не все) из них:

  • normal.dot
  • mailbox.pab
  • username.fav
  • username.prf
  • outlprnt
  • frmcache.dat
  • custom.dic
  • pptools.ppa

Факт хранения этих файлов в одном каталоге с программами выдает "однопользовательский" подход при проектировании Office 97. Если бы разработчики Microsoft предполагали сделать Windows NT действительно многопользовательской системой, они должны были бы позаботиться о "прозрачной" программе установки, которая автоматически создавала бы полный набор необходимых файлов настройки в домашнем каталоге каждого пользователя системы.

Подобная практика вполне стандартна и в истинно многопользовательских системах (таких, как Unix) воспринимается как нечто совершенно естественное. Например, Netscape Navigator для Unix при первом запуске автоматически создает набор локальных пользовательских файлов в текущем домашнем каталоге. В результате каждый пользователь автоматически получает собственные настройки окна, кэш, файлы почты и т. д. Они хранятся на сервере и используются при запуске Netscape с любого X-терминала независимо от того, где он находится.

А вот чтобы работать с Office 97 под управлением WinFrame, вам, увы, придется имитировать этот подход вручную: сначала скопировать конфигурационные файлы в домашние каталоги пользователей, затем отредактировать соответствующим образом раздел Реестра HKEY_CURRENT_USER.

Предъявите права!

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

К сожалению, большинство Windows-программ разрабатывались без учета этого обстоятельства. Тот же пакет Microsoft Office, к примеру, позволяет вставлять в документы гиперссылки. При щелчке по такой ссылке Office пытается вызвать на экран соответствующую информацию, запустив Internet Explorer.

Независимо от того, усматривает ли здесь администратор угрозу для безопасности системы, эти ссылки будут работать, только если предоставить пользователям полный набор прав доступа к каталогам Temporary Internet Files, Cookies и History, вложенным в каталог %SYSTEMROOT%, в качестве которого обычно выступает WINNT или WINFRAME. В противном случае при щелчке по гиперсссылке пользователь получит сообщение об ошибке с предложением запустить Scandisk или переустановить IE. Однако предоставление всем пользователям полного контроля над подкаталогом системного каталога потенциально опасно.

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

X-терминалы, "тонкие клиенты".
УгрозаX-терминалы, "тонкте клиенты"
Ответ

Microsoft
Windows NT Terminal Server Edition, RDP, лицензионное соглашение с Citrix.
Выгоды

для Microsoft
Найден способ удержать пользователей в Windows. Появляется возможность проникновения на рынок серверов.
Издержки

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

выгоды

для потребителя
Экономия на суммарной стоимости владения в сочетании с возможностью по-прежнему использовать старые программы для Windows.
Реальные

выгоды

для потребителя
"Тонкие клиенты" проще администрируются. Старые программы для Windows действительно запускаются, хотя иногда для их запуска требуется хотроумное редактирование Реестра и другие не вполне "законные" приемы, поскольку ни сама система Windows, ни имеющиеся программы для нее не рассчитаны на работу в среде "тонкого клиента".
Издержки

для потребителя
Прежде всего финансовые. Microsoft установила на Terminal Server Edition такую цену, что переходить на "тонкие клиенты" невыгодно. В дополнение к высокой цене каждого рабочего места Terminal Server вам, возможно, придется устанавливать как минимум по одному серверу на каждые 50 клиентов. По заверениям Microsoft, один сервер должен поддерживать до 100 рабочих мест, но к этому надо относиться так же, как к "минимальным требованиям к памяти" -- перспектива параллельной работы 100 клиентов не кажется очень реалистичной, если принять во внимание параметры существующей аппаратуры и возросший объем кода NT. В любом случае NT Server на 50 пользователей дороже сервера Solaris с лицензией на неограниченное число пользователей.
Риск

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

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

Windows NT повсюду

А вот тут-то и начинается самое интересное. На самом деле, как нетрудно догадаться, Microsoft не заинтересована в успехе "тонких клиентов" -- ведь тогда отпадет необходимость ставить Windows на каждый рабочий стол. Для корпорации намного выгоднее, если вы купите Windows NT и для сервера, и для рабочей станции.

Чтобы убедиться в справедливости этого утверждения, достаточно взглянуть на ценовую структуру для Windows Terminal Server Edition. Эта система будет стоить 1129 долл. с лицензией на 10 пользователей и приблизительно по 35 долл. за каждую дополнительную лицензию.

При этом за каждый экземпляр Windows NT Workstation придется заплатить 269 долл., т. е. с точки зрения Microsoft 50 "тонких клиентов" под управлением Windows NT Terminal Server Edition функционально эквивалентны 50 пользователям ПК с Windows NT Workstation, и корпорация собирается за оба варианта брать одни и те же деньги.

Установка одного только ПО Windows Terminal Server Edition на 50 пользователей при таких ценах обойдется более чем в 13 тыс. долл. Кроме того, если вы решите использовать недорогие не-Windows-терминалы, придется дополнительно поставить Citrix MetaFrame. Сама же Microsoft обеспечит их поддержку не ранее 2000 г.

Добавление MetaFrame стоит еще 4995 долл. за 15-пользовательскую лицензию, а подключение дополнительных пользователей -- еще около 200 долл. за место (цена зависит от числа приобретаемых лицензий).

В результате стоимость ПО поднимется до 20 тыс. долл. на 50 пользователей -- и это по-прежнему без стоимости аппаратуры. По счастью, в качестве клиентских машин можно оставить те, что есть: клиентское ПО Citrix прекрасно работает на процессоре 486.

Но с тем же успехом вы могли бы обратить свои компьютеры с процессором 486 в X-терминалы, просто установив на них Linux или FreeBSD. Поскольку расходы на клиентские машины и приобретение ПО в обоих случаях минимальны, выходит, что ценовая политика Microsoft выбивает почву из-под ног у противников сетевого компьютера и делает просто смехотворным заявление о том, что Windows NT представляет собой недорогую альтернативу Unix.

ОС Solaris x86 с лицензией на неограниченное число пользователей стоит 3885 долл. Сравните эту цену за систему на базе "тонких клиентов" с 13--20 тыс. долл. на 50 пользователей, которые придется заплатить за систему с Windows NT (все равно, с "тонкими клиентами" или с ПК).

Локальный контекст в роли футбольного мяча

Поскольку за каждое рабочее место так или иначе придется уплатить стоимость Windows NT Workstation, многие пользователи, видимо, предпочтут администрируемый ПК. Поэтому маловероятна конкуренция по схеме "Windows NT Terminal Server с "тонкими клиентами" против Unix с X-терминалами". Скорее соперничество развернется по схеме "среда Windows NT в целом против сервера приложений и сетевого компьютера (СК)".

Почему именно против СК? Дело в том, что он сулит снижение суммарной стоимости владения без существенной потери мощности настольных машин. Конфигурация с СК, в отличие и от Windows NT Terminal Server Edition, и от Unix с X-терминалами, не требует выполнения всех вычислений на сервере, а дает возможность организовать распределенную обработку, при которой некоторые или даже все прикладные программы запускаются на локальных машинах.

Такой подход позволяет пользоваться одновременно и благами централизованного управления ресурсами, и возможностями локального процессора. А Microsoft в ответ могла бы лишь пообещать, что администрируемый ПК позволит снизить затраты в той же мере, что и вычислительная среда на основе СК (см. таблицу 2).

Снижение стоимости владения благодаря сетевым компьютерам
УгрозаСнижение стоимости владения благодаря сетевым компьютерам.
Ответ

Microsoft
NetPC, "администрируемый" PC, Zero Administration Windows.
Выгоды

для Microsoft
Microsoft сохраняет контроль над рынком ПО для настольных машин.
Издержки

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

выгоды

для потребителя
Централизованное администрирование рабочих станций на основе ПК. Удаленное управление получением и установкой ПО на рабочие станции, в том числе и на отключенные.
Реальные

выгоды

для потребителя
Минимальные. Даже в среде, построенной целиком на NT, придется администрировать и модернизировать то же число рабочих станций. Правда, больший объем соответствующих работ может быть выполнен на сервере.
Издержки

для потребителя
  • Эта модель представляет собой попытку обойти проблему локального контекста, но не ее решение.



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



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



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



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



  • Пользователи никогда не получат той свободы передвижения и смены рабочих станций, какую предоставляют сетевые компьютеры. Последние, наряду с "тонкими клиентами", можно отключать и заменять практически без каких-либо последствий для пользователя. Единственный способ сделать рабочую станцию NT столь же легко заменимой состоит в хранении на сервере ее полного непрерывно обновляемого образа.
Риск

для потребителя
Поскольку предполагается хранение прикладных программ на локальной машине, модернизация ПО может приобрести лавинообразный характер. Например, замена некоторого ПО обязательна. Пусть у вас есть, скажем, программы, которые требуют NT 4.0 SP3. Если какие-то другие программные продукты несовместимы с этой версией, их придется заменять в масштабе всей компании. Если эта замена, в свою очередь, вызовет сбой в каких-то других продуктах, потребуется разбираться уже с ним, и т. д.
Последствия

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

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

Увы, "футбольный мяч" явно великоват. Поскольку локальный пользовательский контекст в наши дни может включать что угодно: от настроек Реестра до графических файлов в формате JPEG, полных деревьев прикладных программ и даже файлов браузерного кэша объемом в несколько мегабайт, -- синхронизация нескольких версий всего этого хозяйства потребует весьма ощутимых усилий.

Между двух огней

Предположим, что Microsoft в состоянии как достигнуть этой великой цели, так и приблизиться к тому, чтобы удовлетворить запросы потребителей, ориентированных на "тонкий клиент". Но при этом неизбежен серьезный конфликт. Решение одной задачи, состоящей в адаптации Windows NT Server для использования с "тонкими клиентом", прямо противоречит решению другой, сводящейся к копированию локального пользовательского контекста и переброске его с машины на машину.

С одной стороны, Microsoft пытается внести в NT изменения, позволяющие обойти в многопользовательской среде накладки, вызванные "однопользовательским подходом". С другой -- работает над средством сохранения и восстановления локального пользовательского контекста, хотя само существование локального контекста исключает превращение Windows NT в работоспособный многопользовательский сервер для "тонких клиентов".

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

  • Архитектуру Windows NT требуется перестроить так, чтобы система не нуждалась в локальном пользовательском контексте на каждой клиентской машине.
  • Такая перестройка ослабит идеологию "Windows повсюду" и потому нежелательна.
  • В Windows NT нужно ввести средство сохранения локального пользовательского контекста и "перепасовывания" его с одной машины на другую.
  • Необходимо создать службу каталогов, обеспечивающую доступ к пользовательским контекстам, хранящимся на сервере, а также к локальным контекстам, которые базируются на рабочей станции и периодически копируются на сервер.

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

При корректном решении проблемы пользовательского контекста (путем перемещении его с локальной машины на сервер, где он будет храниться постоянно и вызываться при необходимости) возникнут к тому же две дополнительные сложности. Во-первых, у пользователей отпадет необходимость ставить Windows NT на каждую рабочую станцию: зачем нужна Windows NT Workstation, если любая система, способная выступать в роли "тонкого клиента", ничуть не хуже справится с задачей? Во-вторых, при изменении способа работы с пользовательским контекстом и сама Microsoft, и все остальные разработчики программ для Windows NT должны будут переписать все свои программы с интерфейсом Win32. Даже пакет Microsoft Office придется переделывать, чтобы он правильно работал с несколькими пользовательскими контекстами.

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

Хуже того, не исключено, что, оказавшись перед необходимостью радикального обновления всей инфраструктуры, пользователи сочтут этот момент подходящим для перехода на систему более стабильную и масштабируемую, чем Windows. Как видно из нашего примера с ценами на Solaris x86, массовый переход на Unix-системы сэкономил бы американским предприятиям огромное количество денег. Внедрение же вместо ПК с Windows сетевых компьютеров на базе Java помогло бы сэкономить еще больше. И все это вовсе не выгодно для Microsoft.

Варианты

Тем самым, если Microsoft решит сохранить у себя свой главный козырь -- Рабочий стол Windows, -- вариант развития NT, связанный с "тонким клиентом", окажется слишком рискованным. Цена Windows NT 4.0 Terminal Server Edition в сочетании с отсутствием в этом пакете ряда возможностей, поддержка которых была обещана, указывает на то, что корпорация, похоже, стремится сделать переход на "тонкие клиенты" непривлекательным для своих заказчиков и подтолкнуть их к администрируемым ПК.

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

Например, как мы уже указывали, при сохранении на клиентской машине значительной части пользовательского контекста становится необходимым обеспечить ее "перепасовывание" с одной машины на другую. Кроме того, в Windows NT применяются списки ACL (access control list -- список управления доступом), обеспечивающие очень тонкую градацию прав доступа. Это можно признать преимуществом Windows NT перед Unix, где ACL по умолчанию не используются (такая возможность есть в нестандартных файловых системах для Unix). Однако если пользовательский контекст будет находиться на клиентской машине, списки ACL добавятся к и без того немалому объему информации, который должна копировать и синхронизировать служба Active Directory.

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

Активное лоскутное одеяло

Спрашивается, по какому же пути идет Microsoft? Будет ли она полностью перестраивать Windows NT, чтобы обеспечить работу с несколькими пользовательскими контекстами, и одновременно переписывать в соответствующем духе все свои программы с интерфейсом Win32 (а также настаивать на аналогичных действиях других разработчиков подобных программ)? Или более вероятно, что корпорация постарается обойтись косметическим ремонтом, который сгладит остроту проблемы?

Точный ответ мы, возможно, узнаем лишь после двухтысячного года. Но, поскольку объявленные цели Microsoft заведомо предполагают сложную и кое в чем внутренне противоречивую стратегию проектирования, создается впечатление, что Windows NT должна превратиться в продукт, который Microsoft вполне могла бы назвать Active Quilt -- активное лоскутное одеяло. И это единственный реальный путь, позволяющий Microsoft защититься от покушений конкурентов на ее монополию в области ПО для настольных компьютеров.

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

Уже появляются доказательства того, что Microsoft действительно двинулась в этом направлении, -- просто надо знать, что искать. В данном случае интересующим нас параметром является чистый объем кода.

Размер имеет значение

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

При таком подходе возникает гигантская, практически неуправляемая база кода. Чтобы это проиллюстрировать, позаимствую пример у Майкла Маккарти, президента электронного компьютерного издательства WPI (Web Publishing Inc.; это издательство выпускало журнал NC World. -- Прим. ред.)

Представьте себе, что создан калькулятор, который при сложении 2 + 2 дает ответ 5. Возникшая проблема может быть решена на одном из трех уровней абстрагирования. Можно исправить ошибку в ядре математического аппарата калькулятора. Можно добавить к существующему математическому аппарату уровень, перенаправляющий все операции сложения новому аппарату. Можно, наконец, добавить массу мелких уровней для проверки задачи и результата по определенным образцам. Например, если пользователь ввел последовательность 2 + 2 =, активизируется "заплата", которая проверяет, не получилось ли в ответе 5, и если получилось, заменяет 5 на 4.

Любой хороший программист понимает, что без "заплат", позволяющих обойти изначальные дефекты проектирования, иногда не обойтись, но он также понимает, чем они опасны: при работе с калькулятором из нашего примера кто-нибудь рано или поздно введет последовательность 2 + 3 [Возврат] 2 =, и "заплата" не опознает ее как 2 + 2. Программист может написать еще одну "заплату", однако не предусмотренные им способы ввести 2 + 2 с некоторой вероятностью все равно останутся, и при этом в результате будет получаться 5.

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

По крупной цели трудно промахнуться

Учитывая вышесказанное, попробуем оценить предполагаемый размер нового кода Windows NT. По данным исследовательской организации Giga Information Group, в Windows NT 5.0 будет 30 млн. строк кода, причем 85% из них будут новыми. Таким образом, объем нового кода NT 5.0 превысит общий объем существующего кода некоторых из конкурирующих версий Unix!

Что же такое грандиозное может вноситься в NT, кроме поправок и поправок к поправкам? Если бы Microsoft действительно полностью перестраивала Windows NT, картина выглядела бы иначе.

Например, корпорация уже должна была бы предупредить клиентов и разработчиков о введении новой модели прикладной программы (в частности, объявить о необходимости перехода на новую версию Office, совместимую с Windows NT 5.0, поскольку работа с пользовательскими контекстами в переделанной NT наверняка должна быть организована совершенно иначе).

Ничего подобного не происходит. Поэтому новый код, вероятнее всего, представляет собой жевательную резинку, скотч и бечевки, о которых мы упоминали в начале. Легко представить себе, что в нем содержится фрагмент, проверяющий сначала, является ли программа, которую пользователь пытается запустить, утилитой быстрого поиска, затем -- работает ли он под управлением NT Terminal Server, а затем -- есть ли на машине другие пользователи, и, если все эти условия соблюдены, блокирует запуск нового экземпляра утилиты на сервере. Так решается проблема с Office 97. Но в результате система усложняется, и к ней добавляются плохо закрепленные детали, грозящие обрушить весь карточный домик.

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

Спасибо за внимание и спокойной ночи

Вопросы, рассматривавшиеся в статьях этой серии, ни в коей мере не претендуют на полный охват темы. К примеру, Microsoft страдает от отставания на нескольких направлениях. Позиции Novell существенно укрепляются благодаря тому, что служба Novell Directory Services работает и совершенствуется, пока ее аналог Active Directory остается на уровне обещаний, исполнение которых откладывается и откладывается.

Судебное разбирательство между Microsoft и Департаментом юстиции США привлекло внимание к вопросу о динамических библиотеках (DLL) в Windows. Это достаточно опасно для корпорации, поскольку увеличивает вероятность того, что в информационных отделах американских фирм осознают связь между подходом Microsoft к DLL и некоторыми финансовыми проблемами. А ведь Microsoft настаивает на применении DLL (и наносит тем ущерб своим клиентам) только ради того, чтобы задавить конкурентов.

Существуют и другие внешние факторы, способные оказать то или иное влияние на судьбу Windows NT. Они сведены в таблицу 3, которую вы можете проанализировать самостоятельно.

Прочие проблемы Microsoft

Независимость от платформы, обеспечиваемая применением Java
УгрозаНезависимость от платформы, обеспечиваемая применением Java.
Ответ

Microsoft
Разработка версий Java, специфических для Windows.
Преимущества

для Microsoft
Microsoft сохраняет контроль над рынком ПО для настольных машин.
Издержки

для Microsoft
Необходимо изыскать способ сделать использование в NT версий Java, совместимых со стандартом, либо сложным, либо нежелательным.
Обещанные

преимущества

для потребителя
Повышение быстродействия, использование уникальных возможностей Windows.
Реальные

преимущества

для потребителя
Повышение быстродействия Java-программ вполне возможно. "Уникальные возможости Windows" -- слишком расплывчатое понятие, не вполне ясно, что имеется в виду.
Издержки

для потребителя
Чтобы пользоваться преимуществами, необходимо держаться однородной среды Windows.
Риск

для потребителя
Выражение "лучше работает под управлением Windows" почти всегда подразумевает определенную грань пользовательского опыта, а не техническое качество. (Например, Microsoft продемонстрировала готовность пожертвовать стабильностью ради производительности, когда в версии NT 4.0 вернула видеодрайверы в ядро системы.) И коль скоро MS решила отойти от стандартов Sun, стоит учесть, что она с тем же успехом может "усовершенствовать" Java за счет "срезания углов" на сборке мусора или защите.
Последствия

для архитектуры NT
Незначительные. Microsoft просто будет включать свою версию Java в каждую поставку Windows NT.



Netscape Navigator.
УгрозаNetscape Navigator
Ответ

Microsoft
"Internet", т. е. встраивание Internet Explorer в Windows.
Преимущества

для Microsoft
Усиливает Windows и ослабляет позиции Netscape.
Издержки

для Microsoft
Минимальные. Конечно, стоимость разработки и распространения IE высоковаты для бесплатного продукта, но у Microsoft глубокие карманы.
Обещанные

преимущества

для потребителя
Более логичное и полное включение пользователя в Internet или Intranet.
Реальные

преимущества

для потребителя
Фактически даже больше, чем обещано: бесплатный браузер, бесплатная электронная почта, бесплатная программа чтения новостей и действительно более полное включение пользователя в Internet или Intranet.
Издержки

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



Удушение конкурентов ведет к повышению цен и сужению выбора.
Риск

для потребителя
Стирание различий между файлами на локальной машине и в Internet создает бесчисленные опасности для локальных данных. В течение обозримого будущего это будет означать господство ментальности клуба "заплата недели".
Последствия

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



Конкуренция со стороны Unix для Intel
УгрозаКонкуренция со стороны Unix для Intel.
Ответ

Microsoft
Стандартное распространение опасений, неуверенности и сомнений. Утверждения: Unix-системы слишком сложны и загадочны. Слишком дороги. Занимают незначительную долю рынка.
Преимущества

для Microsoft
Усиливается боязнь Unix.
Издержки

для Microsoft
Охаивание конкурирующих систем ничего не стоит. Однако Microsoft утрачивает доверие определенной части потребителей, когда, с одной стороны, критикует Unix, а с другой -- оценивает NT, сравнивая ее с Unix (говорится, что NT технически ничем не хуже, зато дешевле).
Обещанные преимущества

для потребителя за счет

отказа от Unix
Многочисленные. Администрирование в графическом интерфейсе. Дешевизна. Возможность запускать все популярные программы. Знакомая рабочая среда.
Реальные преимущества

для потребителя за счет

отказа от Unix
Немногочисленные. Популярных программ для NT дейтвительно больше. Однако для Unix существует несколько графических сред, а Solaris x86 обойдется дешевле, чем NT, при числе пользователей, превышающем два-три десятка.
Издержки

для потребителя
Многочисленные. Windows NT менее стабильна и стоит дороже, чем Unix. Unix не имеет многих ограничений Windows NT, в частности, не нуждается в локальном пользовательском контексте.



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



Клиенты теряют также мощные и испытанные средства администрирования сети.
Риск

для потребителя
Windows NT замыкает пользователя в среде, которой Microsoft сознательно манипулирует так, чтобы поддерживать необходимость в частой замене версий ПО на более новые.
Последствия

для архитектуры NT
Немногочисленные, за исключением раздувания объемов продукта. Чтобы облегчить проникновение NT на существующий рынок Unix-систем, Microsoft включает в поставку NT средства интеграции с Unix, созданные независимыми разработчиками.



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



Бесплатные Unix-системы для Intel, распространяемые с исходными текстами
УгрозаКонкретно бесплатные Unix-системы для Intel, распространяемые с исходными текстами.
Ответ

Microsoft
Стандартное распространение опасений, неуверенности и сомнений. Утверждения: Unix-системы слишком сложны и загадочны. Нет сопровождения. Нет прикладных программ. Несовместимы с Windows.
Преимущества

для Microsoft
Усиливается приверженность "коробочным" продуктам и боязнь иного подхода.
Издержки

для Microsoft
Охаивание конкурирующих систем ничего не стоит.
Обещанные преимущества

для потребителя за счет

отказа от бесплатных Unix-систем
Многочисленные. Администрирование в графическом интерфейсе. Возможность запускать все популярные программы. Знакомая рабочая среда. Лучшее сопровождение
Реальные преимущества

для потребителя за счет

отказа от бесплатных Unix-систем
Немногочисленные. Популярных программ для NT дейтвительно больше. Однако для бесплатных Unix-систем существует несколько графических сред, причем некоторые из них вполне сравнимы с интерфейсом Windows (а некоторые эмулируют его).
Издержки

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



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



Клиенты теряют также мощные и испытанные средства администрирования сети.
Риск

для потребителя
Смешанный. Бесплатные Unix-системы формируются сообществом разработчиков. Microsoft формирует NT так, чтобы отражать атаки со стороны конкурентов. NT, тем самым, является системой с довольно неопределенным будущим, поскольку новые угрозы для Microsoft появляются регулярно.
Последствия

для архитектуры NT
Немногочисленные. Играя на сильных сторонах своих разработок, Microsoft попадает в зависимость от тех, кому нужна наисовременнейшая графическая среда Windows, и потому вынуждена уделять "украшательству" больше внимания, чем другим сторонам проекта.



Novell NetWare, IntranetWare и NDS
УгрозаNetWare, IntranetWare, Novell NDS.
Ответ

Microsoft
Microsoft Active Directory.
Преимущества

для Microsoft
Microsoft сохраняет контроль над рынком ПО для настольных машин и одновременно проникает на рынок серверных систем с собственным стандартом.
Издержки

для Microsoft
Microsoft значительно отстала в разработке соответствующих средств и вынуждена допустить определенный уровень открытости, чтобы конкурировать с NDS и другими службами каталогов, поддерживающими LDAP или другие открытые протоколы. Кроме того, необходимо обеспечить совместимость с существующими доменными системами, да и сам по себе переход к "нормальной" службе каталогов представляет определенную сложность.
Обещанные преимущества

для потребителя

по сравнению с NDS
Это продукт Microsoft, а не Novell.
Реальные преимущества

для потребителя
Неясные. Потенциально имеются некоторые усовершенствования по сравнению с администрированием доменов, но невозможно понять, насколько они существенны, пока продукт не выпущен.
Издержки

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

для потребителя
Умеренный. Active Directory -- непроверенное средство. Возможно, пока Microsoft будет разбираться с самыми первыми проблемами, клиенты извлекут из службы некоторые промежуточные выгоды. Однако расчеты на любое обещаемое новшество Microsoft могут не оправдаться из-за того, что силы корпорации будут отвлечены какой-либо новой угрозой для ее монополии. В этом случае дальнейшее совершенствование Active Directory "отставят на заднюю горелку".
Последствия

для архитектуры NT
Значительные. Структура применяемых в Windows NT списков управления доступом делает ее файловую систему весьма сложной для администрирования. При этом в NT не реализована объектно-ориентированная файловая система, применение которой могло бы упростить администрирование; Microsoft обещала ввести ее с версией Cairo в 1994 г., но не сделала этого ни тогда, ни позже (см. "Риск для потребителя").



Прочие ОС для настольных компьютеров
УгрозаOS/2, Macintosh, другие альтернативные ОС для настольных компьютеров.
Ответ

Microsoft
Стандартное распространение опасений, неуверенности и сомнений. Нет прикладных программ. Занимают незначительную долю рынка.
Преимущества

для Microsoft
Значительно усиливается чувство защищенности.
Издержки

для Microsoft
Охаивание конкурирующих систем ничего не стоит.
Обещанные преимущества

для потребителя за счет

отказа от OS/2 и т. д.
Возможность запускать популярные 32-разрядные Windows-программы.
Реальные преимущества

для потребителя за счет

отказа от OS/2 и т. д.
Те, что обещаны, -- возможность запускать популярные 32-разрядные Windows-программы.
Издержки

для потребителя
Пользователь оказывается привязан к 32-разрядным Windows-программам и к Microsoft.



Он лишается преимуществ альтернативных систем (более совершенный графический интерфейс, в некоторых случаях более высокая стабильность, более высокое быстродействие и т.д.)
Риск

для потребителя
Небольшой.
Последствия

для архитектуры NT
Незначительные. Битва Microsoft против Macintosh и OS/2 практически окончена. Хотя Windows 95 и не сравнялась, как было обещано, с OS/2 по объективным параметрам, ее интерфейс был сочтен большинством клиентов "достаточно хорошим". IBM и Apple оставили попытки расширить рынок за пределы круга своих преданных приверженцев и своей традиционной ниши.

И наконец, хотелось бы поблагодарить читателей NC World за ценные замечания по предыдущим статьям серии "Ближайшие десять минут". Без их отзывов этот заключительный текст никогда не был бы написан. Любые отклики -- положительные, отрицательные или нейтральные -- всегда приветствуются и очень важны для нас.

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

Об авторе

Николас Петрели был главным редактором журнала NC World. В настоящее время возглавляет редакцию журнала Linux World, является также обозревателем журналов InfoWorld, где ведет раздел Down to the Wire, и NT World Japan. E-mail: nicholas.petreley@ncworldmag.com