Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Фреймворк Violet

Глава 22 из книги "Архитектура приложений с открытым исходным кодом", том 1.

Оригинал: "Violet", глава из книги "The Architecture of Open Source Applications"
Автор: Cay Horstmann
Перевод: Н.Ромоданов

22.5. Java WebStart

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

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

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

Раздражает то, что когда приложение работает под WebStart, разработчик должен писать специальный код для взаимодействия с FileOpenService и FileSaveService, и еще больше раздражает то, что нет какого-нибудь вызова WebStart API, позволяющего выяснить, было ли приложение запущено с помощью WebStart.

Кроме того, сохранение пользовательских настроек необходимо реализовывать двумя способами: с помощью Java preferences API в случае, когда приложение работает нормально, или с помощью сервиса WebStart preference в случае, когда приложение запускается в рамках WebStart. Процесс печати, с другой стороны, полностью прозрачный для прикладного программиста.

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

FileService service = FileService.getInstance(initialDirectory);
  // detects whether we run under WebStart
FileService.Open open = fileService.open(defaultDirectory, defaultName,
  extensionFilter);
InputStream in = open.getInputStream();
String title = open.getName();

Интерфейс FileService.Open реализуется с помощью двух классов: обертка поверх JFileChooser или FileOpenService для JNLP.

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


Продолжение статьи: 22.6. Java 2D.