Федеральное агентство по образованию РФ
Ярославский государственный университет им. П.Г.Демидова
Кафедра теоретической информатики
Реферат
на тему
Технология развертывания приложений Java Web Start
Выполнила:
Студентка группы ИТ – 32БО
Дмитриева А.В.
Проверил:
Головченко А.А.
Ярославль, 2011г.
Введение
Как лично вы относитесь к использованию Java-приложений? Например, к программам для ведения дневника, почтовым программам, чатам, веб-браузерам, текстовым редакторам, графическим редакторам, просмотрщикам видео, изображений, программам-конверторам и многому-многому другому? Преимущество использования программ, написанных на Java, очевидно. Вы можете использовать эти программы где вам угодно, на любой платформе. Java Web Start – это технология, которая позволит вам запускать интересующие вас приложения прямо с веб-сайта. При этом все необходимые части Java-приложения, и прочие ресурсы будут также загружены агентом Java Web Start.
Основные преимущества Java-приложений - это: богатый и дружественный интерфейс приложений. Приложения могут быть запущены не только посредством веб-браузера. Они могут быть выполнены из стартового меню или с рабочего стола. Также скорость работы не зависит от скорости соединения с Интернет. Помимо этого,приложения работают в off-line режиме. Работать с такой программой можно где угодно, пусть даже в самолете во время полета. Однако для обычных Java-приложений, помимо основной проблемы, упомянутой ранее, накладываются также трудности при установке и обновлении программы. Java Web Start позволяет разворачивать площадку для старта приложений непосредственно на веб-сайте. Нижеследующая схема показывает принцип работы Java Web Start технологии:
java start приложение
Пользователь кликает по ссылке HTML-страницы в веб-браузере, появляется splash-окно Java Web Start, после чего запускается приложение, которое готово к работе.
На самом деле все обстоит несколько сложнее. Когда пользователь нажал на ссылку, он загружает страницу, содержащую описание программы. Mime-тип возвращенного результата связан с Java Web start, поэтому браузер передает полученные данные (ответ) Java Web Start и передает ей управление. Происходят всевозможные проверки на возможность запуска приложения и, если все прошло успешно, запускается загруженное приложение. Если нет, то Java Web Start ищет необходимые ресурсы и также загружает их на компьютер пользователя. Все это происходит на должном уровне безопасности. В защитные средства входит подпись архивов с приложением. Такой метод защиты архивов позволяет отличать архивы с приложениями от непосредственно производителя от возможных подделок. Средства подписи архивов входят в стандартный набор средств разработки приложений на языке Java, и таким образом каждый разработчик может создать и использовать свою индивидуальную подпись. Этот метод очень широко распространен на просторах Интернет и весьма успешно себя зарекомендовал.
В своем реферате я расскажу о развертывании и последующем "автоматическом" обновлении версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.
Требования к Java-приложениям и настройки на клиентском ПК
Так как работа Java Web Start основана на использовании JNLP-протокола, то выполнить настройки необходимо как на стороне СЕРВЕРА, так и на стороне КЛИЕНТА.
Для установки Java-приложений на локальном ПК необходим установленный Java Web Start (Application Manager) и веб-браузер. Браузер требуется только для первоначального запуска Java-приложения и после запуска может быть закрыт, в то время как приложение будет продолжать работать. В качестве браузера лучше сначала использовать IE, т.к. он работает корректно сразу. Также можно воспользоваться и другими браузерами (Mozilla, Opera 7.x), но для этого необходимо выполнить в них небольшие настройки. Как настроить Opera 7.x для правильной работы с JNLP файлами, будет описано позже, аналогичным образом должны настраиваться и другие браузеры.
Если Java-приложение запускается часто, то в среде Windows можно с помощью Java Web Start, создать стандартный "ярлык приложения" на рабочем столе и запускать Java-приложение не используя браузер, а пользуясь только ярлыком. Также можно запускать Java-приложение из командной строки.
Как уже было сказано, Java Web Start, всегда доступен как при установке JRE 1.4.x, так и при установке JDK 1.4.x, поэтому нам ничего не остается сделать как воспользоваться его возможностями. К сожалению, для версии JDK/JRE 1.3 его нужно устанавливать отдельно. Многие советуют этого делать, т.к. считают что, он сыроват и лучше всего перевести код вашего приложения на версию JDK 1.4, тем более что GUI клиент прекрасно взаимодействует с сервером под JDK 1.3. Проблем с передачей сериализированных объектов между версиями JDK 1.3 <-> 1.4 замечено не было.
Кроме этого Java Web Start предъявляет определенные требования к написанному клиентскому Java-приложению. Приложение должно поставляться как набор JAR-файлов, все ресурсы приложения, такие как изображения, конфигурационные файлы, Native библиоткуи (DLL, SO), необходимо включать в JAR-файлы. Ресурсы в коде должны получаться с помощью ClassLoader getResource или подобных методов. Если вам необходим неограниченный доступ к локальным файлам - потребуются дополнительные настройки и подписывание библиотек кода с помощью сертификата. Также для хранения локальных клиентских настроек в JWS имеется специальное PersistenceService API, которое чем-то похоже на "cookies" и позволяет безопасным способом хранить локальные настройки на ПК. Кромеэтого, естьещедругие API - BasicService, ClipboardService, DownloadService, FileOpenService, FileSaveService, PrintService.
Приложение Java Web Startнайти также можно найти в каталоге, где установлен JDK (или JRE). Для установленной JDK 1.4 это будет например файл: ...\j2sdk1.4.2\jre\javaws\javaws.exe , который находиться в каталоге Java Web Start (..\javaws). В этом же каталоге находяться и другие DLL файлы, необходимые для его корректной работы. В случае установки только JRE данный запускаемый файл можно найти в каталоге - ...\Program Files\Java\j2re1.4.xx\javaws\javaws.exe
Если ярлык не удается найти, необходимо найти указанный исполняемый файл и запустить его. После запуска должно появиться окно Java Web Start Application Manager.
Запуск на локальном ПК клиента Java Web Start можно считать достаточным для того, чтобы устанавливать клиентские Java-приложения. Но я все-таки хочу обратить ваше внимание на дополнительные параметры настройки JWS. Откройтевприложении JWS Application Manager: File -> Preferences, закладка General.
На ней можно указать прокси-сервер. Эта настройка зависит от настроек вашей сети, которые необходимо уточнить у системного администратора. Чаще всего их нужно "выключить", поставив значение - None, а иначе загрузка клиентского приложения либо не происходит, либо выполняется очень долго через прокси-сервер. Надо сказать, что в локальной 100 МБитной сети первоначальная загрузка и кэширование библиотек выполняется довольно быстро (от нескольких секунд до нескольких минут) и зависит от объема всех библиотек, входящих в ваше приложение.
Прежде чем мы продолжим дальнейшую настройку Java Web Start, я хочу сказать, что для более подробного изучения возможностей JWS, необходимо обратится к документации разработчика на сайте Sun - http://java.sun.com/products/javawebstart/ .
Подробности можно найти также в PDF спецификации - JAVA™ NETWORK LAUNCHING PROTOCOL & API SPECIFICATION (JSR-56) VERSION 1.0.1 более новая версия протокола уже 1.2
Кроме этого, необходимо взять на сайте Sun небольшой архив, предназначенный для разработчика. Это файл размером около 160 Кб - javaws-1_2-dev.zip. Он содержит необходимую информацию о настройке JNLP, а также JAR архивы классов сервлетов (jardiff.jar, jnlp-servlet.jar, jnlp.jar), которые будут необходимы на сервере.
Создание JNLP файла, описывающего ваше клиентское приложение, его библиотеки и другие параметры
Для того, чтобы Java Web Start мог знать какие именно файлы необходимы для запуска и работы вашего клиентского приложения, необходимо создать специальный JNLP файл, имеющий XML формат. Данный файл будет помещен на сервере JBoss в Web-приложение, предназначенное для выполнения деплоймента GUI.
Далее приведен краткий и простейший пример JNLP файла, использованного для деплоймента с небольшими пояснения о тегах файла и их значениях. Для более детального описания всех параметров и всех возможностей данной технологии, рекомендую вам обратиться к документации разработчика на сайте Sun Microsystems.
<?xml version="1.0" encoding="Windows-1251"?>
...............<jnlp spec="1.0+" <!-- Номер JNLP спецификации -->
codebase="http://localhost:8080/application"
<!--URL по которому находиться JNLP файл, можно написать в виде
codebase="$$codebase" -->
href="application.jnlp" >
<!--название JNLP файла-дескриптора нашего приложения
можно написать в виде href="$$name" -->
<information>
<title>Corporate GUI client</title> <vendor>Company ZZZ</vendor> <description>Company's corporate client</description> </information> <resources> <j2se version="1.3+"/> <!--Указаниенеобходимойверсии JDK приложения-->
<jar href="main_gui.jar" main="true"/><!--Файлынашегоклиентскогоприложения--> <jar href="main_gui_lib.jar" />
<jar href="jboss-client.jar"/>
<jar href="jboss-common-client.jar"/> <!--Перечислениевсехфайловсторонних--> <jar href="jboss-j2ee.jar"/> <!--библиотек, необходимыхдлязапуска--> <jar href="jbossmq.jar"/> <!--нашегоприложения -->
<jar href="jbosssx-client.jar"/> <jar href="jnp-client.jar"/> <jar href="xercesImpl.jar"/>
<jar href="xmlParserAPIs.jar"/>
<property name="java.naming.provider.url" value="localhost:1099"/>
<!-- Указание свойства, которое используется нашим приложением --> </resources>
<application-desc main-class="com.my_company_name.client.Application" />
<-- Название класса с main() точкой запуска --></jnlp>
codebase="http://localhost:8080/application" - указывает на параметр "базы кода" по которому мы будем хранить все необходимые библиотеки, как JAR файлы нашего приложения, так и JAR файлы "сторонних библиотек". Данный параметр можно заменить "специальной переменной", фактическое значение которой jnlp-сервлет поставит самостоятельно при обработке запроса. codebase="$$codebase"