Бурное развитие Internet на протяжении нескольких лет может послужить поводом для очередной такой смены. Естественно, ведущие производители аппаратных средств и программного обеспечения не могут отказаться от участия в этом процессе. Слишком высока ставка. Выигравший становится законодателем мод, как IBM для мэйнфреймов и DEC для миникомпьютеров. Неудивительно, поэтому, такое обилие концепций развития компьютерных архитектур, предлагаемых лидерами отрасли.
Одной из наиболее ярких фигур компьютерного рынка является, несомненно, глава корпорации Oracle Ларри Эллисон. Будучи главным приверженцем идеи Сетевого Компьютера, он и возглавляемая им компания не могли остаться в стороне от происходящего переосмысления компьютерных ценностей. Разработав одной из первых свою архитектуру будущих компьютерных систем, компания последовательно и целеустремленно работает над ее воплощением.
Network Computing Architecture (NCA), представленная компанией Oracle в октябре прошлого года как универсальная платформа для сетевых приложений, основанных на объектах, предоставляет, по замыслу ее создателей, общую платформу для интеграции программных клиентов с приложениями Web-серверов и серверов баз данных, обеспечивая возможность совместной работы этих компонентов даже в том случае, если они разработаны на основе разных стандартов. Именно в рамках этой концепции компания интенсивно работает над развитием идеи нового вычислительного устройства - сетевого компьютера (Network Computer - NC), которому сейчас уделяется столь большое внимание.
Основными компонентами NCA являются:
- "встраиваемые" объекты - картриджи, обеспечивающие возможность расширения функциональности;
- открытые протоколы и стандартизованные интерфейсы, позволяющие осуществлять обмен информацией между картриджами по программной шине, называемой Inter-Cartridge Exchange (ICX);
- клиенты, серверы приложений и серверы баз данных;
- интегрированная разработка и управление картриджами.
Рассмотрим их несколько подробнее.
Картридж - это управляемый объект. В нем используется IDL - независимый от языка программирования интерфейс, позволяющий картриджу идентифицировать себя для других объектов в распределенной системе. Картриджи имеют доступ к набору служб, называемому Universal Cartridge Services. Набор этих служб достаточно обширен и содержит такие группы, как инсталляция, регистрация, администрирование, мониторинг, безопасность и некоторые другие. Помимо этого, картриджи имеют доступ и к другим наборам служб по шине ICX. В частности, они имеют доступ к набору Scalable Cartridge Services, содержащему службы обработки транзакций (транзакций произвольных последовательностей действий), по обработке сообщений и очередей, а также службы доступа к данным. В зависимости от места размещения картриджа (на клиенте, сервере приложений или сервере баз данных), он получает также доступ к специализированным наборам служб.
ICX - это объектная шина, позволяющая распределенным в гетерогенной среде картриджам взаимодействовать друг с другом. Она использует протоколы IIOP и HTTP для такого взаимодействия, выполняя необходимые преобразования при работе с различными окружениями (например, объект CORBA, реализованный на Java, выглядит как объект DCOM при доступе к нему со стороны ActiveX-апплета). ICX реализуется в виде набора библиотек, расположенных на различных компьютерах сети. Используя эти библиотеки, картриджи получают доступ к другим картриджам, клиентам, серверам и сервисам. ICX предоставляет также возможность создания интерфейсов между NCA и другими средами.
Клиенты
Помимо сетевого компьютера (что совершенно естественно, поскольку компания Oracle - одна из самых главных движущих сил развития идеи NC, если не самая главная), в качестве клиента может выступать Netscape ONE, поскольку он построен на IIOP, а также клиенты, построенные на стандартах ActiveX и HTML. При этом для создания картриджей могут использоваться различные инструменты - Java, JavaScript, C/C++, Visual Basic и языки, надстроенные над SQL.
Универсальный Сервер Приложений
Универсальный Сервер Приложений играет основную роль при функционировании приложений в рамках NCA. Он выступает в качестве платформы для обработки бизнес-логики приложения, которая при другом способе реализации может быть размещена как на клиенте, так и на сервере базы данных. Такая организация позволяет сделать клиентов более "легкими" и упростить их администрирование. В Универсальный Сервер Приложений могут быть встроены различные протоколы связности. Брокер Связности (Connectivity Broker) управляет взаимодействием с существующими механизмами архитектуры клиент/сервер, такими как, например, Oracle SQL*Net и RPC.
Универсальный Сервер
Универсальный Сервер предназначен для хранения данных и осуществления операций над ними. Помимо поддержки традиционных реляционных типов данных, Универсальный Сервер Oracle позволяет работать и с более сложными структурами, включая видео- и аудиоинформацию, тексты и пространственные данные. В настоящее время в качестве Универсального Сервера выступает СУБД Oracle 7.3, снабженный дополнительными расширениями для обработки новых типов данных. Следующая версия сервера (находящаяся сейчас в стадии бета-тестирования), реализованная в рамках объектно-реляционной модели данных, будет основана на едином ядре, позволяющем одинаковым образом работать с данными различных типов.
Предложив свою архитектуру сетевых вычислений, компания Oracle разрабатывает свои продукты в соответствии с ней. В частности, проходящий сейчас бета-тестирование продукт Oracle WebServer 3.0 построен в рамках NCA. Рассмотрим некоторые его особенности.
Oracle WebServer 3.0
Oracle WebServer 3.0 - важный компонент NCA. Масштабируемый сервер приложений для Web, Web Request Broker (WRB) поддерживает картриджи приложений для программ, построенных на основе технологий HTTP/HTML. Он предоставляет доступ к службам CORBA-совместимого ORB картриджам Web, обеспечивая прозрачную интеграцию Web-приложений и объектно-ориентированных приложений. Независимость HTTP и масштабируемые службы обработки транзакций должны обеспечивать надежность сервера приложений в среде Web. С добавлением интероперабельности IIOP и служб связности, WRB превращается в Универсальный Сервер Приложений, построенный на технологиях ORB и Масштабируемых Службах Картриджей. Некоторые из этих служб - внутренние службы CORBA, другие же (например доступ к данным) - новые. Все они доступны всем картриджам через ICX по протоколам HTTP и IIOP.
WebServer включает в себя сервер HTTP, но ядром продукта служит WRB - механизм для диспетчеризации, баланса загрузки и добавления расширений сервера, реализованных третьими фирмами. Построенный на базе многопотоковой многопроцессной архитектуры, WRB предоставляет среду для приложений, выполненных с использованием низкоуровневого HTTP API первого поколения. Выполняя все расширения сервера в рамках отдельных процессов, WRB обеспечивает независимую асинхронную обработку.
Являясь частью NCA, WebServer 3.0 построен на основе распределенной объектной модели CORBA. Это качество позволяет компонентам приложений WebServer быть распределенными в корпоративной среде Intranet и взаимодействовать с широким спектром приложений. В данном случае, картриджи - не просто повторно используемые объекты, вызываемые диспетчером WebServer; они могут также полностью участвовать в работе сервисов, предоставляемых ORB и WRB API.
Важная особенность WebServer - поддержка обработки транзакций. Модель обработки транзакций основана на стандартах X/Open и привносит некоторые элементы архитектуры клиент-сервер в технологии Web. Для более подробного описания модели обработки транзакций в WebServer 3.0 рассмотрим, вкратце, модель X/Open. Модель Распределенной Обработки Транзакций (Distributed Transaction Processing - DTP) X/Open включает в себя три компонента - Программу Приложения, Менеджер Ресурсов и Менеджер Транзакций. В случае WebServer 3.0 программой приложения является картридж WebServer 3.0, который порождает вызовы открытия/закрытия к менеджеру ресурсов, очерчивает границы транзакций, инициирует и заканчивает (фиксирует) транзакции, а также принимает решение об откатке транзакций. Все эти функции становятся доступными любому картриджу при помощи сервисов обработки транзакций WRB API. В качестве менеджера ресурсов здесь выступает СУБД Oracle7. Хотя, используя распределенные базы данных и процедурные шлюзы, предоставляемые Oracle, можно работать с несколькими менеджерами ресурсов в рамках глобальной среды обработки транзакций. Менеджером транзакций служит WRB. Этот компонент обеспечивает всю необходимую обработку для атомарных транзакций.
Поддержка модели DTP X/Open осуществляется WebServer 3.0 на основе открытых стандартов - SQL, спецификаций X/Open XA и X/Open TX. Использование этих стандартов означает, в принципе, что WebServer 3.0 может работать с любыми XA-совместимыми менеджерами ресурсов.
Предложив новую концепцию сетевых вычислений, разрабатывая свои продукты в рамках этой архитектуры и активно развивая идею сетевого компьютера, компания Oracle, один из лидеров компьютерного рынка, показала серьезность своих намерений стать законодателем мод. Насколько это ей удастся, покажет будущее. Не очень отдаленное.
Что такое CORBA? Что такое IIOP
CORBA (Common Object Request Broker Architecture) - спецификация консорциума Object Management Group (OMG), включающего в себя более 600 компаний, представляющих весь спектр компьютерной индустрии. CORBA задает распределенную архитектуру, в рамках которой по открытой программной шине могут взаимодействовать объекты, созданные различными поставщиками и выполняющиеся в среде различных операционных систем. IIOP (Internet Inter-ORB Protocol) - надстраивающийся над TCP/IP протокол, необходимый для обеспечения интероперабельности объектов.
Эллисон приветствует Microsoft NetPC
По словам Ларри Эллисона, руководство компании Oracle "воодушевлено тем, что Microsoft наконец одобрила NC". Компания Microsoft, которая всегда считала сетевой компьютер неперспективным, наконец представила свой вариант - NetPC; он представляет собой NC-подобное устройство, однако оснащен жестким диском. Представители Microsoft заявляют, что NetPC - больше, чем просто сетевой компьютер; Эллисон утверждает, что это не так. "NetPC - абсолютно то же самое, что NC", - сказал он. Oracle ведет переговоры с Santa Cruz Operation о патентовании некоторых Unix-технологий, которые будут включены в архитектуру сетевого компьютера (NCA). Но, по его словам, операционная система сетевых компьютеров не будет базироваться на Unix. "Это не будет Unix в том виде, в каком он существует сегодня. Сейчас конец 90-х годов. Мы должны уйти от всех "частных" операционных систем, а не только от Windows", - заметил Эллисон.
Он утверждает, что сетевой компьютер Oracle не нацелен на какой-либо специфический рынок, в том числе на корпоративный или домашний. Назвав сетевой компьютер "устройством связи", Эллисон уподобил его телефону в обычном понимании.
Специалисты Oracle предсказывают, что к 2000 году сетевые компьютеры приобретут 90% американских семей. Широкомасштабное применение сетевых компьютеров в больших корпорациях начнется уже в следующему году. "Это - телефон следующего поколения", - отметил Эллисон.