Архивы: по дате | по разделам | по авторам

Sun и Java-технологии

Архив
автор : АЛЕКСАНДР ЛУНЕВ    18.08.1997

Несмотря на то, что Россия только вступает на рельсы Internet/intranet, интерес к ним, подогреваемый лидерами компьютерной индустрии, постоянно растет. Это связано, конечно, не только с усилиями китов технологии, но и с тем, что темпы, с которыми россияне взялись за освоение сетевых технологий в общем и технологий Internet/Intranet в частности, несравнимы с теми, что мы наблюдали в процессе их становления на Западе. Россия вступает на дорогу Internet семимильными шагами. Может показаться, что на самом деле это не так, что, наоборот, вечно стесняемая денежными средствами, наша страна плетется далеко позади, и что не видно даже перспективы широкого внедрения технологий Internet в России. Мне бы хотелось, однако, привести довольно серьезный довод против таких суждений.

По сравнению с достаточно консервативным Западом, где сети, отличные от Internet, существуют очень давно, и их количество в настоящее время даже превышает общий объем всех IP-сетей (в 1996 году в США количество сетей, использующих протокол IP, только незначительно превысило количество сетей, работающих по протоколу SNA фирмы IBM, а ведь это отнюдь не единственный из используемых сетевых протоколов), Россия не имеет сложившейся сетевой инфраструктуры. Наиболее широко распространенные в России сети, основанные на NetWare фирмы Novell, реально еще не стали доминирующим выбором для компаний, так как большинство из них еще не выработало собственной стратегии использования сетей, а многие вообще не имеют установленных сетей. Таким образом, путь для продвижения в Россию наиболее перспективных сетевых технологий открыт, и количество факторов, удерживающих компании от их внедрения в своих корпоративных сетях, пренебрежительно мало (если, конечно, можно пренебречь фактором недостатка финансов).

За какие-нибудь два года внедрения Internet-технологий в корпоративные сети (сформировавшие новое название для них - intranet), привычные подходы значительно изменились. Все большее внимание корпорации уделяют концепции распределения нагрузки между компьютерами - участниками межсетевого обмена. Классическая ныне парадигма "клиент-сервер" родилась именно из таких попыток балансировки нагрузки и на сегодняшний день представляет собой один из наиболее совершенных вариантов работы. Однако, одновременно с внедрением технологий "клиент-сервер" как пользователи, так и разработчики ПО столкнулись с серьезными проблемами, связанными с разнообразием используемых клиентских компьютеров и установленных на них ОС. При этом, проблемы уходят далеко за грань простой необходимости для разработчика в написании разнообразных версий клиентского ПО для каждого из вариантов программно-аппаратной платформы - ведь в результате таких разработок появляется не один, а несколько продуктов, часто похожих друг на друга только названием. Это создает для разработчика огромные проблемы при поддержке продукта, для пользователя - в обучении и применении, а в итоге приводит к его высокой стоимости, ошибкам и редкому обновлению.

Решить эту и другие, стоящие перед компьютерным миром проблемы призвана Java-технология - новинка в мире Internet, разработанная компанией Sun Microsystems. В данной публикации я постараюсь подробнее рассказать об идеях и принципах, заложенных в Java, показать перспективы и преимущества применения этой платформы.

Основы Java-технологии

1. Язык Java

Основание Java-технологии составляет несколько базовых компонентов и комплекс подходов (формирующих так называемую парадигму). К первому и основному компоненту, несомненно, относится сам язык Java. Мне не хотелось бы в очередной раз вспоминать набившую оскомину большинству читателей историю создания языка Джеймсом Гослигом (James Goslig) или описанные уже много раз и не всем интересные отличия его от прародителя - языка C++, повторяя старую шутку Скотта Макнили (Scott McNealy) о том, что Java - это минус-минус-Си-плюс-плюс. Впрочем, все эти сведения не более полезны для понимания Java-технологии, чем вопрос о том, как произносить Java - "Ява" или "Джава".

Главными отличиями языка Java от практически всех создававшихся до сей поры языков программирования являются строгая типизация в смысле точной спецификации представления данных на нижнем уровне и компиляция программ (классов) в аппаратно-независимый, а также строго специфицированный двоичный код. Такие особенности были введены исключительно потому, что язык, создаваемый для работы в крайне разнообразном мире Internet, должен быть абсолютно независимым от платформы исполнения. Причем, не только с точки зрения исходного кода (как, например, язык Ада), но и на уровне откомпилированных модулей - любой Java-компилятор генерирует программы в единый платформо-независимый код (байт-код). Благодаря таким особенностям, единожды созданная и откомпилированная программа будет одинаково выполняться и на рабочей станции с RISC-процессором и на простом PC с процессором от Intel.

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

Для достижения еще большего единообразия и удобства разработчика вместе с языком вы получаете богатейшую библиотеку стандартных классов, охватывающую практически все области возможного применения языка и облегчающую создание любых приложений. Не менее важна концепция "написал один раз, использовал многократно" (write once - use multiple), практикуемая в рамках языка. Единожды написанные на Java коды могут быть легко использованы впоследствии в других приложениях, сокращая время на разработку.

Язык и стандартные библиотеки классов (API) находятся в постоянном развитии. Первая официальная версия - 1.0 сейчас постепенно заменяется новой версией 1.1, которая содержит значительное количество изменений и дополнений, связанных с улучшением возможностей оконного интерфейса, полной интернационализацией, введением новых механизмов защиты, а также с появлением нововведений в языке, таких как вложенные классы и др.

2. Виртуальная Java-машина

Другим основополагающим компонентом Java-технологии является виртуальная Java-машина (JVM, Java Virtual Machine). Главной задачей JVM является исполнение на клиентском компьютере байт-кода, который появляется в результате компиляции исходного кода Java-программ. JVM виртуальна в том смысле, что для разработчика и компилятора безразлична конкретная реализация JVM, на которой в дальнейшем будет выполняться программа, так как все они одинаковы в смысле заложенной в них функциональности. Такое единство достигается благодаря точной спецификации на JVM, предоставляемой Sun Microsystems для всех разработчиков и содержащей подробнейшее описание всех аспектов ее работы.

В настоящее время, наверное, нет такой платформы, на которой не была бы реализована Java-машина - от мэйнфреймов до палмтопов. Все ведущие производители ОС встраивают ее в свои системы, чтобы дать пользователям возможность исполнения на них Java-программ. Для внесения спокойствия в мир пользователей многочисленных Java-платформ, компания JavaSoft (дочернее отделение компании Sun, владельца технологии) проводит сейчас дополнительную программу сертификации на JVM и Java-приложения под названием "100% Pure Java". Покупая продукт с данным логотипом, вы можете быть уверены, что он действительно будет работать на любой JVM соответствующей спецификации, либо, что встроенная в него машина также ей соответствует. Надо сказать, что одновременно с упомянутыми выше изменениями в языке, происшедшими при появлении версии 1.1, несколько изменилась и спецификация виртуальной машины, чтобы соответствовать новым возможностям языка. Так как программа "100% Pure Java" появилась на свет практически одновременно с новой спецификацией, то получить сертификат могут только продукты, соответствующие новой версии. Новая версия JVM является расширением версии 1.0, что обеспечивает возможность исполнения приложений для 1.0 на JVM 1.1.

Один из наиболее критикуемых недостатков JVM - низкая скорость работы, - связанный с ее интерпретационным характером, постепенно сходит на нет по мере появления JVM, использующих динамическую компиляцию байт-кода в "родной" код платформ исполнения (JIT-компиляция). Компания же Sun Microelectronics начинает выпуск "железного" варианта JVM, представленного семейством Java-процессоров различного назначения от picoJava, предназначенного для встраивания в автономные сетевые устройства, до microJava и UltraJava, основным назначением которого является работа в сетевых компьютерах (Network Computer, NC), что позволит еще более существенно увеличить скорость выполнения Java-приложений в сетевых устройствах.

3. Среда исполнения

Для работы Java-приложения, кроме JVM, исполняющей его двоичный код, необходимо позаботиться и о среде исполнения, которая взяла бы на себя управление такими функциями, как ввод/вывод, оконная система, файловая система, сетевые функции и т. д. Классическими примерами таких сред исполнения являются браузеры, такие как Netscape Navigator и HotJava. С точки зрения технологии Java, несомненно, больший интерес представляет JavaOS, операционная система для Java-ориентированных устройств, таких как NC. В отличие от браузеров, она предназначена не только для исполнения апплетов (Java-программ, включаемых в HTML документы для придания им динамичности и внесения расширенных возможностей), но и "классических" приложений, исполняемых локально (standalone Java applications), например, служебных утилит или серверных задач.

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

Многие производители ОС сейчас уже встраивают собственные среды исполнения в свои системы для работы с приложениями, написанными на Java, так же как и с приложениями, написанными специально для ОС. Для примера можно указать OS/2 Warp 4 корпорации IBM, имеющую в своем составе средства исполнения Java-программ. Новая версия ОС компании Sun, Solaris 2.6, также будет поставляться со средствами для выполнения программ на Java.

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

Интересным с точки зрения реализации является браузер HotJava. Достаточно небольшой, чтобы быть исполненным на NC, он в то же время имеет весь набор функций, присущих другим браузерам, и имеет возможность исполнения Java-апплетов. Сам написанный на Java, он создан на основе небольших модульных библиотек классов, которые могут быть использованы разработчиками в дальнейшем для создания собственных сетевых приложений. Например, в случае, если вам необходима быстрая разработка браузера, удовлетворяющего вашим специфическим требованиям, или если вы желаете внести в него некоторые дополнительные функции, которые отсутствуют у браузеров, имеющихся на рынке, - то разработка на основе классов, предоставляемых HotJava, позволит значительно сократить время и затраты на проект.

4. Сетевой компьютер

Еще одним из непременных атрибутов сегодняшней Java-технологии является сетевой компьютер. Пионерами в этой области являются компании Oracle, Sun Microsystems и IBM (компания Oracle сама не выпускает NC, занимаясь лицензированием своей технологии и разработкой соответствующего ПО). А на сегодняшний день уже десятки крупнейших производителей компьютерной техники также представили свои варианты NC. Так как эта статья посвящена видению обсуждаемой технологии компанией Sun, я расскажу о JavaStation - продукте, полностью удовлетворяющем спецификациям на NC и при этом обладающем многими уникальными свойствами.

Как и всякий NC, JavaStation является клиентом с "нулевым администрированием", приспособленным к работе в сети и целиком полагающимся на нее. "Нулевое администрирование" подразумевает не отсутствие необходимости в администрировании вообще, а отсутствие необходимости администрирования на конкретном рабочем месте. Вся такая работа концентрируется на управляющем сервере. Согласно методологии Sun, JavaStation не имеет устройств долговременного хранения данных и все данные и программы получает из сети. Единственными данными и программой, которые запускаются локально, и только в момент загрузки JavaStation является OpenBoot - аналог BIOS для PC. В его задачи входит инициализация устройств ввода/вывода и последующая загрузка ядра JavaOS с сервера. Все дальнейшие действия производятся загруженным ядром, а впоследствии основным кодом JavaOS. Для определения параметров станции и начальной загрузки используются протоколы DHCP и TFTP (см. врезку "Загрузка JavaOS"), работа с которыми, как и основы TCP/IP, "прошиты" в OpenBoot.

Несмотря на кажущуюся простоту и небольшие размеры JavaStation имеет в своем составе достаточно мощные средства для работы. Это высоко-
производительный RISC-процессор microSPARC II с частотой 110 МГц, оперативная память объемом до 64 Мбайт, графический ускоритель с разрешением 1024x768 на 256 цветов (1 Мбайт VRAM, 8 бит), сетевой адаптер Ethernet на 10 Мбит, порты для подсоединения клавиатуры, мыши и последовательный порт. Следуя идее о "компьютере за 500 долларов", Sun использует в своей JavaStation стандартные и недорогие PC-совместимые компоненты, такие как память, мышь и клавиатура. Так же с целью удешевления станции в качестве устройства отображения используется стандартный SVGA-монитор. Текущая модель не ориентирована на использование в секторе SOHO, поэтому единственным интерфейсом для связи с сервером, имеющимся в наличии, является встроенный Ethernet.

В качестве пользовательского интерфейса могут использоваться, по выбору, либо описанный ранее браузер HotJava, либо пользовательская среда JavaViews (продукт, также известный под названиями JavaDesk и Krakatoa), являющаяся хорошим примером к описанным выше возможностям создания приложений на основе библиотек классов HotJava. Кроме чисто браузерных способностей, унаследованных от HotJava, данный продукт имеет в своем составе базовые средства для организации рабочего места пользователя (productivity tools) - электронную почту, календарь, адресную книгу и т. д. Интересной особенностью JavaDesk является репродуктивность состояния, заключающаяся в том, что состояние пользовательского интерфейса и промежуточные результаты работы постоянно записываются на сервер, что позволяет в любой момент завершить работу и продолжить ее позже, причем с любого рабочего места в корпоративной сети. Даже если в процессе работы произойдет авария (случайное отключение питания или сбой сети), то после следующей загрузки или реинициализации работы с другого рабочего места пользователь будет иметь то же состояние рабочего пространства, что и в момент аварии, с сохранением практически всех данных.

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

Еще один интересный проект от Sun под названием Rescue PC (дословно - "спасение PC") предназначен для компаний, имеющих в распоряжении персональные компьютеры с устаревшими процессорами 486 и младшими моделями Pentium, которые заинтересованы в защите своих вложений и одновременно желают внедрить новейшие технологии. Rescue PC представляет собой программное обеспечение для DOS, превращающее такие компьютеры в чуть более медленные аналоги JavaStation. Единственным отличием их от оригинальной JavaStation является процедура старта, предусматривающая запуск JVM и последующую загрузку JavaOS с локального DOS-диска компьютера. В дальнейшем система работает с тем же ПО и серверами, что и обычные JavaStation, и по интерфейсу неотличима от последних. Имея в своем распоряжении ПО RescuePC, клиент получает возможность постепенного перехода в мир сетевых вычислений, сохраняя при этом возможность работы со своим старым ПО для DOS/Windows.

5. Java-сервер

Существование сетевых компьютеров, получающих все данные для своей работы через сеть, невозможно без обслуживающих серверов. Сервер, предназначенный для работы с такими клиентами, должен, как минимум, обслужить загрузку ОС на эти клиенты, то есть "уметь работать" с протоколом TCP/IP и исполнять серверные функции для обслуживания запросов ARP/RARP, BOOTP/DHCP, TFTP/FTP/HTTP и NFS. В зависимости от типа клиента данный список может быть пополнен или усечен. Так, например, в случае, когда сервер должен обслуживать JavaStation, необходима поддержка протоколов RARP, DHCP, TFTP и NFS для обеспечения успешной загрузки на клиента JavaOS, а также NIS, HTTP и SMTP/POP для обеспечения ее дальнейшего функционирования.

В принципе, с такими задачами может справиться любой Unix-сервер, поскольку поддержка большинства из описанных протоколов включена в Unix в качестве обязательного набора служб. Однако администрирование большого числа клиентов предполагает серьезный "ручной" труд по внесению изменений одновременно в большое количество конфигурационных файлов. Для облегчения этой задачи поставщики NC вместе с клиентским предлагают и свое административное, а часто, и серверное решение, имеющее в своем составе средства, облегчающие такую работу посредством удобного графического интерфейса. Решение может быть чисто программным, либо программно-аппаратным. Среди поставщиков NC Sun имеет сильные позиции, так как одновременно является и традиционным поставщиком серверных Unix-решений как в "железе", так и в ПО. В комплекте со своими JavaStation Sun поставляет Java-серверы Netra j, базирующиеся на ОС Solaris для платформы SPARC. Кроме собственно ОС, сервер содержит сервисное ПО для поддержки работы и администрирования клиентов, а также пакет Netscape SuiteSpot, содержащий набор серверов для традиционных приложений Internet, таких как Web, News и Mail. Таким образом, клиенты компании вместе с JavaStation получают не только полноценное, законченное решение в области администрирования и обслуживания клиентов, но и развитый Internet/Intranet сервер, равно как и мощный сервер приложений. В дополнение ко всему, Netra j может быть использована как платформа для разработки Java-приложений и апплетов.

Итоги и рекомендации

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

 
  • Уменьшение затрат на приобретение настольной аппаратуры и программного обеспечения.
  • Уменьшение сложности настольных систем.
  • Все ОС и приложения хранятся только на серверах.
  • Все обновления программного обеспечения делаются только на серверах.
  • Системное администрирование производится на серверах.
  • Все файлы данных находятся на серверах.
  • Требуется меньшая инфраструктура поддержки на местах.
  • Требуется меньше пользовательской поддержки.
  • Отказы настольных систем исправляются немедленно простой заменой станции на рабочем месте.
  • Уменьшение затрат при поддержке большего числа платформ.
  • Уменьшение стоимости разработки приложений.
  • Уменьшение стоимости инфраструктуры поддержки приложений.
  • Снижение сложности и стоимости сетевой безопасности.

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


  • Создавайте структуру корпоративной сети с использованием технологий Internet.
  • Внедрите функциональность Java-клиента на всех настольных компьютерах компании - сначала через браузеры с поддержкой Java типа Netscape Navigator.
  • Переведите электронную почту в Internet. Это обеспечит универсальный доступ к электронной почте для всех клиентов с использованием протоколов Internet (IMAP4, POPЗ) и приобщит пользователей к общему доступу к приложениям через свои браузеры и к последующей работе с NC.
  • Разверните систематизированную программу обучения для повышения уровня компетентности сотрудников (и, прежде всего, занятых в области компьютеризации) в Java. Многие программы обучения предлагают Sun и другие компании.
  • Создайте подразделения, чья уставная задача - создавать Java-программы. Помощь в переходе на "Java-вычисления" вы можете получить от ряда компаний-интеграторов.
  • Отложите массовое обновление клиентских операционных систем, пока не сможете провести оценку их возможностей и функциональности с точки зрения невозможности реализации таковых средствами NC и Java. Вполне естественно, что для каких-то приложений и пользователей NC окажется неприемлемым, и потребуются селективные решения.
  • Внимательно следите за объявлением новых продуктов, поскольку на рынке появляются многочисленные разработанные Java-приложения. Уже сегодня на рынке есть Java-программы практически во всех основных областях приложений.
  • Следите за объявлениями о выпуске многими отраслевыми производителями Java-устройств. Выборочно приобретайте и испытывайте Java-устройства в вашем диапазоне приложений и пользовательских областей с целью выявить наиболее подходящие для вас варианты.
  • Не торопитесь с закупкой новой аппаратуры и ПО для "традиционных клиентов" (за исключением случаев, когда они используются для интенсивной обработки данных), пока не определились с выбором в области NC и задач, решением которых он будет заниматься.
  • Ускоряйте переход приложений на Java в тех областях, где можно быстро достигнуть эффекта. Внедряйте NC на настольных системах со специализированными функциями. Вот области с быстрой потенциальной отдачей от внедрения Java-технологий:
    1. настольные системы со специализированными функциями (системы резервирования, ввод заказов и т. д.);
    2. специализированные программы поддержки принятия решений;
    3. связь/транзакции с клиентами или поставщиками;
    4. связь/транзакции с сотрудниками.

Если следовать вышеперечисленным рекомендациям, в компании быстро начнет нарастать критическая масса Java-приложений. Когда это произойдет, можно начинать заменять настольные станции с "традиционными клиентами" на Java-устройства. Будьте уверены, Java-технология вас не подведет.

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

С автором можно связаться по адресу: Alexander.Lunev@Russia.Sun.Com

 

Загрузка JavaOS

Загрузка JavaStation производится в несколько этапов. Изначально кодам загрузчика в OpenBoot известен только Ethernet-адрес (MAC) сетевого адаптера, установленного на станции. Для дальнейшего функционирования в сетевой среде с протоколом TCP/IP станции требуется ее уникальный IP-адрес. Для решения задачи получения IP адреса на основании аппаратного адреса адаптера, OpenBoot использует протокол нижнего уровня - RARP (Reverse Address Resolution Protocol). Перед загрузкой OpenBoot посылает в сеть широковещательный RARP-запрос (broadcast) на свою идентификацию и ждет ответа от одного из RARP-серверов, содержащего присвоенный JavaStation IP-адрес. Имея адрес, станция становится полноправным участником сети и может использовать весь арсенал средств, предоставляемых в ней. Однако к этому моменту JavaStation не содержит в себе ПО, которое могло бы воспользоваться этими средствами, и поэтому сначала решается задача по определению его местоположения и загрузке. Для этого загрузчику необходимо определить параметры настройки клиента, имя и адрес сервера, с которого ПО следует загружать, и некоторые другие. Для получения этих данных OpenBoot посылает в сеть соответствующий запрос, используя протокол DHCP (Dynamic Host Configuration Protocol). Если в сети имеется DHCP-сервер, то он отвечает на запрос и дает информацию о настройке клиентской станции, куда входят записи об адресе и имени загрузочного сервера и местоположении файла с ядром JavaOS на нем. Получив указанные параметры, JavaStation переходит к следующему этапу загрузки и, используя TFTP (Trivial File Transfer Protocol), загружает с указанного сервера ядро JavaOS и JVM. Получив таким образом саму исполняющую систему, OpenBoot передает все управление ей и на этом заканчивает свою работу. Дальнейшие операции производятся уже средствами ядра JavaOS (написанного, в свою очередь, на Java), исполняемого JVM. Произведя необходимые инициализации, JavaOS монтирует служебный том на файловом сервере и догружает свои компоненты. При этом в качестве протокола обмена с сервером используется стандартный для сетей TCP/IP протокол NFS (Network File System), который с этого момента наряду с HTTP становится основным в процедурах обмена данными между JavaStation и установленными в сети серверами.

Когда JavaOS окончательно загружена, пользователь может приступать к работе с JavaStation. В начальный момент времени на ней исполняется только утилита регистрации пользователей (login). Это позволяет пользователю идентифицировать себя для работы с системой. База данных о пользователях хранится на сервере имен, обращение к которому производится через протокол NIS (Name Information Service). Когда сервер вводит свои параметры, процедура регистрации сверяет данные с имеющимися в базе и получает в ответ параметры пользователя, среди которых главным является местоположение его домашней директории на файл-сервере. В ней хранятся файлы с данными о текущем рабочем окружении пользователя, согласно которым производится загрузка приложений на станцию. Запуск полученной таким образом рабочей среды пользователя сигнализирует об окончании процедуры собственно загрузки станции и начале ее повседневной эксплуатации.

Хотя описанные процедуры подразумевают наличие в сети серверов различного типа, необходимо отметить, что обычно все описанные выше функции исполняет один Java-сервер класса Netra j, что позволяет сосредоточить в одном месте все жизненно важные сервисы и значительно упрощает администрирование.


 

Не так все просто

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

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

Единственным возможным ходом явилось обращение в российское представительство Sun Microsystems, а конкретно - к системному инженеру Александру Луневу, статьи которого "Компьютерра" уже печатала.

Я попросил Александра об одном: наконец-то ясно, лаконично, но - наглядно рассказать о том, как в Sun видят все слои технологии, завязанной на NC и Java. В принципе у меня нет претензий к технической части этого материала, которая, собственно, и является центральной, тем более что Лунев, наверное, один из немногих в России людей, реально работающих и с опытными образцами NC, и не понаслышке знакомых с Java.

Чуть сложнее с апологетикой.

Лично я долго продирался сквозь таинственное начало статьи. На мой взгляд, здесь искусственно перемешаны Internet и intranet в части распространения на нашей территории. Боюсь, рост числа пользователей Сети и стремление местных компаний к построению интрасетей (я, кстати, такого стремления пока не заметил) - вещи разные. Впрочем, я решил, что исправлять в затравке ничего не стоит. Ведь нам интересны не только технические решения, но и позиции Sun (в этом смысле, кстати, предлагаю ознакомиться с любопытным, хотя и несколько устаревшим материалом в "Javaworld" - William Blundon "What can kill Java" на www.javaworld.com/javaworld/jw-08-1996/jw-08-blundon.html. Речь там как раз о том, кто и как способен - иногда из лучших побуждений - Java задушить).

Но больше всего меня задела врезка с рекомендациями о том, как безболезненно перейти на Java-технологию. Честно говоря, это хорошо знакомый мне кусок официального агитдокумента Sun, распространявшегося на "Комтеке". Александр сказал мне, что все это сделано не случайно, поскольку его материал отражает точку зрения Sun.

Идет, но тогда мне очень хотелось бы получить от читающих "Компьютерру" руководителей IT-подразделений ответы на некоторые вопросы:

  • Внедрил ли кто-нибудь (или хотя бы собирается) функциональность Java-клиента на всех настольных компьютерах компании - сначала через браузеры с поддержкой Java типа Netscape Navigator?
  • Сформированы ли (планируются ли?) где-нибудь подразделения, чья уставная задача - создавать Java-программы? Говорят, что помощь в этом могут оказать компании-интеграторы. Господа интеграторы, вы готовы?
  • Знаете ли вы, что уже сегодня на рынке есть Java-программы практически во всех основных областях приложений?
  • Как вы себе представляете возможность выборочно приобретать и испытывать Java-устройства в вашем диапазоне приложений и пользовательских областей с целью выявить наиболее подходящие для вас варианты. (Нам так и не удалось уговорить ни одну из компаний показать в работе системы, основанные на NC и Java.)1

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

В отношении NC, правда, никаких альтернативных объятий тех, кто предлагает открытые системы и открытые технологии, пока не ощущается. Я же с огромным удовольствием рассмотрю предложение любой компании представить на страницах "Компьютерры" опыт реализации информационной системы, построенной на платформе Java и NC. Но только мы сами приедем и посмотрим, ладно?

Ну, и последнее замечание. На совести Александра Лунева я оставляю всю критику в адрес Net PC, Wintel и т. д., поскольку рядом публикуется уравновешивающее интервью с представителем Intel.

В любом случае я крайне признателен московскому представительству Sun Microsystems, Вере Гуровой и, конечно же, Александру Луневу за поддержку и участие в этом проекте. - Д.В.


1Это вовсе не риторические вопросы и я действительно жду на них ответов - факсом, по телефону или на e-mal dvict@cterra.com. А затем, возможно, исследуем вместе со специалистами Sun Microsystems.


 

Отклонения от нормы

Идея сетевого компьютера показалась для пользователей настолько привлекательной, что за последний год многие производители начали выпуск своих новых продуктов этого класса. В основном это касается компаний, ранее производивших X-терминалы, большинство которых внесло в свои продукты JVM и возможность работы с Windows-приложениями, чтобы они стали удовлетворять требованиям, предъявляемым к NC. Далеко не всегда, однако, это удается, и выпускаемые устройства действительно можно назвать NC, соответствующим спецификации. Наиболее часто встречаются X-терминалы, в которые добавлены только возможности работы с приложениями, исполняющимися на Windows-сервере, часто в продукт не вводятся возможности исполнения локальных Java-приложений, а оставляется возможность только исполнения апплетов во встроенном браузере, и так далее. Поэтому, при принятии решения о приобретении тех или иных устройств, позиционируемых производителями как NC, необходимо пристальное внимание уделять их соответствию спецификации.

Достаточно примечателен совместный проект Microsoft и Intel под названием Network PC (Net PC). Не меньше других ощущая интерес со стороны пользователей к NC, а значит, и возникновение нового рынка, сулящего серьезные прибыли, а также угрозу отхода части пользователей от предлагаемой ими платформы PC, компании пытаются выпустить на рынок свою альтернативу сетевому компьютеру. Известно, что одним из веских аргументов приверженцев NC является значительно меньшая стоимость обслуживания таких устройств по сравнению с аналогичными показателями PC. Чтобы снизить стоимость обслуживания своей продукции и приблизить ее к стоимости, определяемой для NC, главное внимание разработчиками Net PC было уделено созданию "клиента с нулевой администрацией", который бы оставался при этом в рамках старой технологии, составив, таким образом, конкуренцию сетевому компьютеру. Однако подход, примененный для Net PC, не имеет ничего общего с идеями, заложенным в технологию NC. Говорить о том, что Net PC эквивалентен по возможностям NC, основываясь на стоимости администрирования, можно с таким же успехом, как о том, что "Жигули" не уступают по возможностям "Мерседесу", аргументируя это схожестью органов управления и устройства.

Попытаемся разобрать, что не позволяет Net PC отнести к классу NC. Известно, что Net PC имеет архитектуру и построение те же, что и "нормальные" PC, а отличие состоит в том, что Net PC не дает пользователю возможности самостоятельного администрирования системы и произвольного обращения с информацией. Для решения такой задачи он лишен флоппи-дисководов и подобных устройств ввода/вывода и получает всю информацию из сети. Net PC работает также со специальной версией Windows, не дающей пользователю возможностей управления вычислительной средой и критически важными параметрами. При этом для обеспечения совместимости с имеющимися Windows-приложениями все остальные атрибуты PC, такие как жесткий диск, процессор и архитектура остаются неизменными. Традиционный PC с установленными на нем Windows практически не имеет надежных средств защиты. Можно сказать, что то же самое верно и для Net PC, и администратор сети Net PC, чтобы избежать опасности поражения защиты программным обеспечением, вынужден будет серьезно ограничивать возможности пользователей. Хотя отсутствие флоппи-диска и ограничения на доступное по сети ПО частично решают проблемы занесения вирусов и ограничивают возможности пользователей в части получения больших свобод в работе и нанесения ущерба своими действиями, хранение программ и данных на локальном диске дает возможность пользователям производить подобные операции в случае получения к нему доступа. Предлагаемое компаниями решение проблемы близко по духу покупке автомобиля под цвет туфель: рекомендуется просто изготовлять Net PC в неразборном корпусе.

Вторым достоинством Net PC, согласно публикуемой информации, является возможность исполнения всего объема разработанного для Windows ПО. В реальности это превращается из достоинства в один из основных недостатков, так как окончательно привязывают пользователя к платформе Wintel, делая его снова полностью зависимым от воли двух производителей. В случае же NC, удовлетворяющего открытым стандартам, все спецификации поставлены так, чтобы пользователи имели выбор возможных поставщиков ПО и платформ, не следуя единственно возможному решению, а имея десятки конкурентоспособных предложений от производителей во всем мире.

Использование Net PC добавляет еще одно ограничение, связанное с удобством, надежностью и ремонтоспособностью. В случае с NC все рабочие места являются взаимозаменяемыми и не привязываются к конкретному пользователю, поэтому каждый имеет возможность работы с любой станции в корпоративной сети, не замечая существенных отличий и имея доступ ко всем своим данным. Net PC больше "привязан" к конкретному пользователю и добиться с его применением подобного результата можно только введя существенные ограничения. То же относится и к проблеме ремонта. В случае если NC выходит из строя, то простая установка на его место аналогичного устройства решит все проблемы, и пользователь сразу получит возможность продолжения работы. Для Net PC замена станции означает еще и процедуру установки на ее жесткий диск ПО с сервера, что увеличивает время простоя, а в случае необходимости еще и восстановления данных с жесткого диска (что не всегда возможно). Кроме того, жесткий диск является одной из критических точек, в которой велика вероятность сбоя.

Следует также заметить, что часто покупка PC аргументируется именно наличием у последних возможностей, сводящихся на нет в Net PC, поэтому многие приверженцы PC-технологий с большой неохотой пойдут на замену PC на их урезанные эквиваленты.

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

Из вышесказанного напрашивается такой вывод: главной задачей проекта Net PC является не создание лучшей альтернативы NC, а удержание пользователей приверженными платформе Wintel и сохранение монополии вышеназванных компаний на рынке с их собственными закрытыми (proprietary) ОС и технологиями.

© ООО "Компьютерра-Онлайн", 1997-2019
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.