исключает необходимость полной переработки всех приложений при появлении новой
технологии или нового компьютерного языка. Windows DNA определяет также надежные
способы обеспечения взаимодействия и совместной работы объектов; это особенно важно, если
они выпущены разными производителями. Взаимодействующие объекты могут произвольным
образом распределяться по различным машинам сети, и не только по платформам семейства
Windows, но и по многим иным.
Третья часть — универсальный подход к хранению данных, позволяющий каждой
программе осуществлять доступ к информации, независимо от ее формата и места хранения, будь то жесткий диск, база данных, папка системы электронной почты или что-либо еще. И, наконец, последняя, четвертая часть Windows DNA — механизм, позволяющий осуществлять
обработку данных на том компьютере, на котором она будет выполнена наиболее эффективно: в одних случаях на клиенте, в других на сервере, в третьих — частью там, а частью тут; а
иногда — это требуется, например, мобильным пользователям — вычислительные процессы
дублируются на клиенте и на сервере.
Уникальная особенность Windows DNA состоит в том, что эта архитектура позволяет
переносить существующие приложения в распределенные вычислительные среды, соединяя
вместе все лучшее, что есть в Сети и в традиционных корпоративных приложениях. Другие
подходы, как правило, требуют создания совершенно нового парка ПО с использованием
одного конкретного языка программирования, в то время как Windows DNA позволяет
клиентам пользоваться всеми преимуществами горизонтально интегрированной платформы
ПК, продолжая параллельно с этим развивать уже существующие вертикально
Билл Гейтс: «Бизнес со скоростью мысли»
222
интегрированные решения.
Наряду с необходимостью разработки плана существует и другой императив —
построение программ на базе «трехуровневой архитектуры», в которой логика программы
делится на три класса: уровень представления, обеспечивающий генерацию представления
данных для пользователя; промежуточный уровень, на котором реализуются бизнес-правила
(например, предоставление скидки при оформлении выгодного заказа), и базовый уровень, обеспечивающий хранение, поиск и выборку данных. Трехуровневая архитектура позволяет
логически разделить функции приложения между множеством машин и в дальнейшем
производить изменения на любом из уровней, не затрагивая остальных.
Используя этот подход, корпорация Merrill Lynch смогла объединить более 50 отдельных
приложений в единую систему для финансовых консультантов Trusted Global Advisor, описание
которой приведено в главе 5. На базе Microsoft Office, Outlook, Windows Media Player и других
приложений, использующих спецификацию СОМ, разработчики Merrill Lynch создали единый
интерфейс, выглядящий для пользователя как одно заказное приложение. Он занимает уровень
представления и исполняется на настольных машинах.
Многие из этих 50 приложений получают данные для своей работы от существующих
систем базового уровня, основанных на различных СУБД, — от Microsoft SQL Server и DB2
корпорации IBM на платформе Windows до CICS и DB2 на мэйнфреймах. На серверах
приложений, исполняющих ПО Microsoft Transaction Server и Microsoft Message Queue (программы промежуточного уровня), СОМ-компоненты применяются для реализации
бизнес-логики и координации потоков данных от множества базовых приложений.
Использование сервисов таких программных систем позволяет программистам сократить объем
самостоятельно разрабатываемого кода распределенных приложений на 40-50% и избавляет их
от необходимости решать ряд сложных задач координации и обеспечения безопасности. Для
создания самих компонентов можно использовать множество различных систем
программирования, включая Visual Basic, Visual С ++ и Java.
Благодаря СОМ приложение для мэйнфрейма с терминалами типа 3270, вроде формы
ввода заказа, может быть представлено просто еще одной папкой на настольном ПК, а все
веб-приложения, как существующие, так и будущие, исполняются просто в оболочке, эмулирующей стандартный браузер. Пользователю никогда не приходится задаваться вопросом
о том, «где живет» та или иная программа — в Сети, на локальной машине, в среде
клиент/сервер или на мэйнфрейме. И ему никогда не доставит неудобства модернизация любой