В основе этой системы будет лежать виpтуальная машина Java (JVM), механизм удаленного вызова методов (RMI) Java-объектов, а также набоp модулей JavaSpaces. В настоящее время Sun работает также над созданием хранилища Java-объектов.

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

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

Краеугольный камень проекта, JavaSpaces, пока только-только начинает создаваться, а следовательно и сам проект, по словам Джима Митчела, вице-президента по технологии и архитектуре подразделения JavaSoft компании Sun, находится лишь на стадии исследований и разработки.

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

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

Эта концепция не является прерогативой Sun: аналогичные проекты разрабатывались в лабораториях таких ведущих производителей, как Lucent Technologies (с ее ОС Inferno) и Microsoft. Последняя работает над проектом, получившим кодовое название Millennium, цель которого - также создать новую распределенную ОС.

От Linda к JavaSpaces

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

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

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

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

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

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

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

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

Брокер мог бы также инициировать запрос "взять", который удаляет объект из пространства, позволяя брокеру записать его в другой JavaSpaces - к примеру туда, где размещаются агентства, занимающиеся проверкой кредитоспособности покупателя.

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

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

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

В примере с закладной, покупатель не интересуется, как найти брокера, или где конкретно он располагается физически.

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

Благодаря JavaSpaces крупные сети можно рассматривать как огромные вычислительные системы с миллионами процессоров и объектов. Короче говоря, исследования, проведенные Sun, позволяют задать вопрос - почему эти компоненты, данные и приложения, которые сегодня находятся в одной машине, не могут располагаться в Internet?


Эскизы операционных систем будущего

На недавней конференции профессиональных разработчиков, проходившей под патронажем Microsoft, предметом обсуждения стали в основном операционная система Windows NT 5.0 и распределенные Internet-приложения (Distributed InterNet Applications). Но уже сейчас исследователи корпорации вовсю работают над ОС завтрашнего дня.

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

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

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

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

От представителей Microsoft пока не поступало никакой информации о планах коммерческого использования Millennium. Между тем компания Lucent Technologies, входящая в состав AT&T, уже оформила 36 лицензий на право использования своей распределенной операционной системы Inferno.

Сотрудники Lucent охарактеризовали Inferno как "ОС с развитыми сервисными функциями, позволяющую организовать безопасное межсетевое взаимодействие". Как и язык Java, созданный компанией Sun Microsystems, Inferno базируется на технологии виртуальной машины, что позволяет ей управлять как небольшими устройствами (Web-телефонами, телеприставками), так и настольными ПК и серверами. В настоящее время ОС адаптирована к Windows 95, Windows NT и некоторым версиям Unix.

Зародившаяся в недрах сетевой компании операционная система Inferno специально проектировалась для работы в сети и поддерживает массу протоколов, в том числе и протоколы, pассчитанные на пеpедачу голоса. В среде Inferno можно выполнять приложения Java.

Один из аналитиков, знакомый с Inferno, отметил, что данная операционная система, как, впрочем, и любая ОС, ориентированная на Java, даст сто очков вперед любой pазработке Microsoft, поскольку не предъявляет высоких требований к оборудованию и может использоваться на любых платформах. Исторически сложилось так, что Microsoft не занималась разработкой подобных систем.

"Inferno невероятно компактна, - отметила старший вице-президент компании Probe Research Хилари Майн. - Самая сложная задача, которую постоянно вынуждена решать Microsoft, заключается в обеспечении совместимости с уже существующими операционными системами. Microsoft не может себе позволить, отказавшись от наследия прошлого, создать принципиально новую систему, поэтому код каждого следующего продукта все более "раздувается".

Пробная версия Inferno, пpедназначенная для упpавления телекоммуникационным обоpудованием, появится в конце текущего года.

Пока подразделение Sun JavaSoft готовит к выпуску облегченную операционную систему JavaOS, исследовательская лаборатория этой же компании работает над распределенной ОС, которая будет использоваться в новых проектах Java. Проходящая сейчас стадию бета-тестирования система JavaSpaces представляет собой набор API-интерфейсов и промежуточного ПО, который обеспечивает прозрачность размещения информации и обмена данными между объектами Java в любой сети.

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

Распределенные опеpационные среды завтрашнего дня

Millennium

(компания Microsoft)
Inferno

(компания Lucent)
JavaSpaces

(компания Sun)
Стадия разработки:

неизвестна
Стадия разработки:

предварительная версия появится в конце текущего года
Стадия разработки:

бета-тестирование
Основные характеристики:

распределенная операционная система; минимальные требования к обслуживанию; основана на модели с высоким уровенем абстракции
Основные характеристики:

распределенная ОС; интеллектуальное управление сетью; основана на модели виртуальной машины
Основные характеристики:

включает в себя набор API-интерфейсов и промежуточного ПО; для связи с распределенными объектами Java использует технологию удаленного вызова методов (Remote Method Invocation) и виртуальную машину Java.

- Боб Тротт, Мартин ла Моника,

InfoWorld, США

Pастет число лицензий на Inferno

Группа разработки сетевого ПО компании Lucent Technology объявила о передаче лицензий на использование технологии Inferno ряду фирм, включая ORGA Card Systems, Cirrus Logic и Global Converging Technologies (GCT). ОС найдет себе применение в самых разнообразных системах.

Компания ORGA Card Systems, занимающаяся разработкой микропроцессорных смарт-карт, выбрала ОС Inferno благодаря включенной в нее поддержке распределенных вычислений, которая позволит смарт-картам работать в любой частной сети или сети общего пользования. ORGA планирует использовать разработанный Lucent протокол связи Styx, так как он поддерживает запись данных в микропроцессоры смарт-карт.

Pазработчики Inferno создаст версии своей операционной системы для наборов микросхем CL-PS7110 и CLPS7500FE компании Cirrus Logic. Набор микросхем CL-PS7110 с операционной системой Inferno будет использоваться в устройствах с очень низким потреблением энергии, таких как электронные записные книжки, пейджеры с двухсторонней передачей, интеллектуальные телефоны и карманные браузеры, в то время как CLPS7500FE найдет себе применение в приспособлениях, ориентированных на Internet, в число которых входят сетевые компьютеры, интеллектуальные телевизоры, терминалы intranet, видеотелефоны и проигрыватели DVD.

Cirrus Logic также планирует использовать ОС Inferno в справочных станциях для поддержки доступа к Internet.

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

Inferno 1.1 представляет собой распределенную сетевую операционную систему, позволяющую устройствам обращаться к разделяемым ресурсам любой сети. Создатели операционной системы старались свести аппаратные требования к минимуму, в результате чего ОС требует для работы всего 1 Мбайт оперативной памяти. Стандартные функции Inferno включают защиту данных и аутентификацию на уровне операционной системы.

- Энди Сантони,

InfoWorld Electric