Технология Java с самого начала была хорошо приспособлена к использованию в Web, и, казалось, что в этой области уже трудно придумать что-то принципиально новое. Однако специалисты российской компании Epsylon Technologies, создавшие первый отечественный сервер Web-приложений Baikonur, с этим явно не согласны. Разработанная ими технология JAT может заставить нас по-новому взглянуть на возможности языка Java и его роль в Web-ориентированных вычислениях.
JAT создает условия для использования графического интерфейса Java, не передавая по сети сложные Java-приложения. Суть новой технологии в том, что Java-апплет реализует любой графический интерфейс в соответствии с инструкциями, поступающими с сервера. Это позволяет решить ряд проблем, характерных для современной технологии Java.
Java, как правило, ассоциируется с тонким клиентом, но так ли "тонки" приложения Java и что означает само понятие "тонкий клиент"? "Тонким клиентом" нередко называют программу, которая не выполняет (или почти не выполняет) обработку информации, а занимается только отображением на экране данных, передаваемых с сервера, и пересылкой на сервер поступающих от пользователя команд. Если принять подобное определение, то возникает вопрос, является ли тонким клиентом Java-приложение? Видимо, нет, поскольку одно из важных свойств технологии Java заключается как раз в том, что она позволяет передать часть функций сервера любому клиенту. Фактически, Java обеспечивает передачу по сети не данных, а исполняемых программ, что, очевидно, никак не соответствует концепции "тонкого клиента". В результате для запуска Java-программы нужно переместить ее с сервера на клиент, верифицировать, а потом еще и интерпретировать. При достаточно большом размере Java-приложения каждый из перечисленных этапов отнимает довольно много машинного времени.
Идеология тонкого клиента подразумевает, что с сервера на клиент передается не логика приложения, а только информация, связанная с его интерфейсом. В обратную же сторону посылается информация о событиях, которые происходят на клиенте в процессе диалога с пользователем. Таким образом, "тонкое" Java-приложение должно получать от сервера не функциональное наполнение пользовательского интерфейса, а связанную с ним информацию, на основе которой Java-программа будет вести диалог с пользователем. Ответы пользователя при этом будут кодироваться и пересылаться в серверную часть приложения. Именно так работает JAT-клиент, созданный компанией Epsylon Technologies.
JAT-клиент - это небольшая Java-программа (около 40 Кбайт), которая может действовать как апплет или как приложение. С его помощью можно инициировать приложение на сервере, передающее JAT-клиенту параметры необходимого ему графического интерфейса - количество и расположение компонентов, их свойства и другие сведения, по которым JAT-клиент формирует соответствующее диалоговое окно. При создании этого интерфейса можно использовать почти весь набор компонентов AWT и некоторые дополнительные компоненты из библиотек JBuilder. Когда пользователь нажимает на кнопки в диалоговом окне или набирает текст, все эти события передаются на сервер, где приложение их обрабатывает; обратно на JAT-клиент пересылается только информация об изменениях интерфейса. В результате по сети проходит очень небольшой объем информации, что позволяет JAT-клиенту быстро реагировать на действия пользователя.
К очевидным достоинствам технологии JAT можно отнести небольшую и равномерную загрузку сети, а также незначительный объем вычислений на клиенте. Недостатком же является то, что приходится поддерживать постоянное соединение между JAT-клиентом и сервером. Таким образом, технология JAT может работать на "сверхтонких" клиентах типа наладочных компьютеров или интеллектуальных телефонов, но требует постоянного (хотя и не обязательно скоростного) подключения к серверу.
Представители Epsylon Technologies утверждают, что JAT-технология позволяет, не зная языка Java, использовать его возможности для разработки собственных клиент-серверных приложений. При этом известный принцип Java реализуется в виде "написано на Delphi (или C++) - используется везде". Причем идеология тонкого клиента настолько универсальна, что она может быть реализована как на Java, так и на основе других аналогичных средств, например ActiveX или Inferno. А связь между клиентом и сервером может осуществляться с помощью не только протокола HTTP, как это предусмотрено в JAT-технологии, но и других транспортных протоколов, типа IIOP. Таким образом, JAT - это не просто новый продукт, но и достаточно универсальная идеология построения сверхтонкого клиента.
Кроме JAT, компания Epsylon Technologies разработала еще один продукт, ориентированный на Java, - это набор компонентов Serverlet, предназначенный для построения серверных частей приложений (не путать с созданной Sun технологией Servlet). Serverlet позволяет компилировать серверные Java-программы только один раз, а затем использовать уже скомпилированные коды.
При совместном функционировании Serverlet с сервером Baikonur систему можно настроить так, чтобы наиболее часто используемые серверные компоненты компилировались при загрузке сервера. С помощью технологии Serverlet компания Epsylon Technologies смогла перенести свой Web-сервер на платформу Unix, на которой появилась возможность применения визуальных средств разработки на Java. Сейчас Baikonur перенесен на Linux и AIX и позволяет писать программы на обычном (не визуальном) C++ и Java.
Несмотря на свои новаторские разработки в области Java, специалисты Epsylon Technologies относятся к перспективам этой технологии с некоторой долей скептицизма. Однако понимание как сильных, так и слабых сторон Java позволяет им использовать ее именно в тех областях, где это действительно оправданно.