Статьи

Java-апплеты: устарели или все еще являются частью Интернета?

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

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

Реальные приложения Java

  • Amadeus, крупнейшая туристическая компания в мире, использует Java для графического интерфейса пользователя.
  • GWT (Google Web Toolkit) — это инструментарий разработки, написанный на Java.
  • Устройства Android запускают приложения Java на виртуальной машине Java
  • Dalvik является неотъемлемой частью Android.
  • Поиск в Твиттере использует Java-сервер под названием Blender ( https://blog.twitter.com/2011/twitter-search-now-3x-faster )
  • В Java есть инструменты высокого качества; Maven, Swing Explorer, Archiva, JMockit и т. Д.
  • GDA — это структура, используемая для создания специализированного программного обеспечения для сбора данных в научных целях.
  • В больших проектах Java предпочтительнее. Примеры включают в себя:
  • Java ME (Micro Edition) предоставляет гибкую среду и пользовательский интерфейс для мобильных устройств, датчиков, принтеров и т. Д.
  • Oracle SQL Developer написан на Java.
  • Платформа быстрой разработки веб-приложений ColdFusion написана на Java.
  • Платформа управления жизненным циклом программной системы (SSLM) и управления жизненным циклом приложений (ALM), известная как «целостность», написана на Java.
  • Google Guice — это программная среда с открытым исходным кодом, написанная на Java.

Приведенная ниже статистическая информация взята с: http://www.java.com/en/about/

applet2fig1

Рисунок 1: Реальные приложения Java

Реальные приложения Java-апплетов

  • ThinkFree: Профессиональный онлайн офисный костюм на основе Java-апплетов и Ajax.
  • JPC Emulator: Это эмулятор x86, написанный на Java и использующий Java-апплеты.
  • Статистика: использование апплетов при разработке веб-приложений в статистике еще не устарело.
  • Образование: До сих пор учился в университетах в рамках курса учебной программы.
  • Yahoo Games: использует Java-апплеты для игр.
  • Небольшие приложения: хорошая платформа для разработки небольших приложений
  • Клиентский компьютер: когда клиентский компьютер должен использоваться, апплеты могут считаться хорошим выбором, например, при создании приложения для аутентификации и т. Д.
  • Android: миллиарды Android-устройств работают на виртуальной машине Java
  • Java Web Start: это среда, разработанная для запуска приложений вне браузера, описанная ниже.

Java Web Start

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

Преимущества Java Web Start по сравнению с апплетами

Java Web Start преодолевает многие проблемы совместимости с браузерами, плагинами Java и различными версиями JVM. Программы Web Start — это независимые приложения, которые запускаются в отдельном фрейме. Они также могут запускать неизмененные апплеты, упакованные в файлы .jar.

Устранение «ограниченного доступа» приложениями Signed Web Start

Приложения Java Web Start работают в ограниченной среде, которая не позволяет им получать доступ к системным ресурсам, таким как локальные файлы, сеть и т. Д. Издатели могут легко снять эти ограничения, подписав свои приложения Web Start с помощью инструмента, названного jarsigner, который поставляется с Java Development Kit. ,

Использование в реальном мире:

Приложения Описание / Использование
CrossFTP FTP-клиент и сервер.
Jake2 Java порт Quake 2.
PowerTeacher Программа успеваемости учеников, используемая школами
Wurm Online 3D Многопользовательский онлайн симулятор фэнтези.
Buho21 Игра разработана с использованием технологии Java Webstart.
AutoPlot Инструмент для черчения различных форматов файлов, таких как ASCII, CDF и NetCDF
Бегущая реальность Исторический атлас и модель человеческой истории, которая включает национальные границы, армии и людей.
Genevestigator Онлайн-платформа для исследователей для изучения данных для исследований и клинических применений.

Включение веб-старта (в продолжение предыдущего проекта)

Выполните следующие действия, чтобы включить Web Start в качестве разумного способа запуска программного обеспечения вне браузера, в отличие от апплетов:

Щелкните правой кнопкой мыши-> AmitJavaApplication -> Свойства , затем перейдите к веб-запуску в разделе Приложение:

applet2fig2

Рисунок 2: Включение веб-запуска в NetBeansIDE

Нажмите «Включить веб-запуск» и выберите «CodeBase» в качестве локального выполнения.

После этого нажмите «Настроить…» в разделе «Подписание» и выберите «Самоподписаться сгенерированным ключом».

Теперь выберите «Смешанный код» как «Включить защиту программного обеспечения». После этого нажмите «ОК»:

applet2fig3

Рисунок 3: Включение веб-запуска и подписи

Создайте проект для тестирования Java Web Start Local. Теперь вы можете заметить некоторые изменения в каталоге, т.е. два новых файла создаются (launch.html и launch.jnlp) с файлом jar проекта AmitJavaApplication «AmitJavaApplication.jar»:

applet2fig4

Рисунок 4: Структура каталогов изменяется после построения AmitJavaApplication

Как показано выше для Java Web Start, создаются три файла:

  • launch.jnlp — JNLP — протокол запуска сети Java. Это файл XML с элементами и атрибутами, которые инструктируют браузеры, как запускать приложение. Некоторые атрибуты файлов JNLP: версия спецификации JNLP, название приложения, название поставщика и т. Д.
  • launch.html — это автоматически генерируемая HTML-страница, которая имеет ссылку на файл JNLP. Пользователи нажимают эту ссылку, чтобы запускать приложения через Java Web Start.
  • AmitJavaApplication.jar: файл проекта JAR.

Чтобы протестировать Web Start из любого другого места, скопируйте показанные выше три файла в свой WebApplicationProject для запуска WebStart из любого другого места. После копирования каталог выглядит так: «AmitWebApplication»:

applet2fig5

Рисунок 5: Структура каталогов AmitWebApplication

Запустите проект и откройте файл launch.html, после выполнения будет отображена следующая страница:

Ссылка: http: // localhost: 8080 / AmitWebApplication / launch.html

applet2fig6

Рисунок 6: Выполнение launch.html

Нажмите Launch, после этого вам будет предоставлена ​​возможность загрузить файл launch.jnlp. Загрузите этот файл в любом месте вашей системы:

applet2fig7

Рисунок 7: Загрузка программного обеспечения Web Start launch.jnlp

Теперь дважды щелкните «launch.jnlp», и вы увидите, что тот же апплет виден при использовании Web Start в качестве независимого программного обеспечения. Эта работа показывает, что он не работает в браузере, как показано в моей предыдущей статье . Итак, это альтернативный способ предоставить пользователям возможность загружать программное обеспечение и запускать его:

applet2fig8

Рисунок 8: Апплет, видимый вне браузера

Две формы Java-апплетов

  • Набор абстрактных окон (AWT): классы и компоненты AWT содержатся в иерархии пакетов java.awt. Это набор API, который предоставляет графический интерфейс для Java-программы, такой как кнопки, флажки и т. Д. AWT считаются устаревшими. Качели предпочтительнее, чем компоненты AWT.
  • Swings: классы и компоненты Swing содержатся в иерархии пакетов javax.swing. Компоненты Swing известны как облегченные, потому что они не требуют выделения собственных ресурсов в инструментарии оконной операционной системы, тогда как компоненты AWT называются тяжелыми компонентами.

    В соответствии с Java 6 Update 12 можно смешивать виджеты Swing и AWT без проблем z-порядка (z-порядок — это порядок перекрывающихся двумерных объектов). До Java 6 Update 12 смешивание компонентов Swing и базовых виджетов AWT приводило к нежелательной стороне.

    Качели считаются лучше чем AWT:

    1. Компоненты Swing не реализуются специфичным для платформы кодом, они полностью написаны на Java и поэтому не зависят от платформы в отличие от компонентов AWT,
    2. Он имеет более гибкие компоненты, чем AWT.
    3. В J2SE 1.2 Swings заменил виджеты AWT, поскольку он предоставляет более богатый набор виджетов пользовательского интерфейса.
    4. Swing рисует свои виджеты
    5. Еще не устарел, так же, как я использовал в предыдущей статье.

Oracle Java Updates

В этом разделе представлена ​​важная информация, касающаяся обновлений Java и некоторых внешних источников на веб-сайте. Это состоит из улучшений безопасности, исправлений безопасности, подписывания кода, изменений в диалоговых окнах и т. Д., Реализованных Oracle Java:

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

Java SE 6, обновление 10
Исправления безопасности и плагин Java следующего поколения

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

applet2fig9

Рисунок 9: Функции подключаемого модуля Java следующего поколения, упомянутые на веб-сайте Oracle Java

Java SE 7, обновление 10
Улучшения безопасности, как указано на веб-сайте Oracle Java:

Возможность выбора необходимого уровня безопасности для неподписанных апплетов, приложений Java Web Start и встроенных приложений JavaFX, которые запускаются в браузере. Поддерживаются четыре уровня безопасности. Эту функцию можно установить на панели управления Java или (только на платформе Microsoft Windows) с помощью аргумента установки из командной строки.

Java SE 7, обновление 21
Это обновление было связано с Java Applet & Web Start — подпись кода была сделана для лучшего пользовательского опыта ». Как сказано на веб-сайте Oracle Java:

«Начиная с Java SE 7 Update 21 в апреле 2013 года, все Java-апплеты и приложения для веб-запуска рекомендуется подписывать доверенным сертификатом.

Эти шаги значительно снизят риски для пользователей настольных компьютеров.

Мы также удаляем «низкие» настройки безопасности в панели управления Java (например, low / custom), чтобы пользователи не могли непреднамеренно полностью отказаться от средств защиты, которые мы встраиваем в Java. Пользователи будут лучше защищены, поддерживая в своих системах обновленные версии JRE, в сочетании с требованием кода, подписанного доверенным центром сертификации (а не самоподписанного или неподписанного кода). «

Диалоговые сообщения
Диалоговые сообщения были изменены для неподписанных, самоподписанных и подписанных апплетов. Это объясняется здесь .

Диалоговые сообщения, как указано на веб-сайте Oracle Java

«В частности, весь код Java, выполняемый в браузере клиента, будет запрашивать пользователя. Тип отображаемых диалоговых сообщений зависит от таких факторов риска, как код, подписанный или неподписанный, код, запрашивающий повышение привилегий, JRE выше или ниже базового уровня безопасности и т. Д. Сценарии с низким риском представляют собой очень минимальный диалог и включают флажок, чтобы не отображать подобные диалоги. тем же поставщиком в будущем. Сценарии с более высоким риском, такие как запуск беззнаковых банок, потребуют большего взаимодействия с пользователем, учитывая повышенный риск ».

Панель управления Java
Как показано в «Java SE 7 Update 21», «низкие» параметры безопасности в панели управления Java были удалены.

Здесь я демонстрирую, как можно получить доступ к панели управления Java в Windows7-32bit, чтобы проверить текущие уровни безопасности и даже изменить их:

Панель управления Java доступна, когда «javacpl.exe» выполняется из папки jre bin

applet2fig10

Рисунок 10: Доступ к панели управления Java из командной строки

applet2fig11

Рисунок 11: Уровни безопасности панели управления Java

Обновление 25 Java SE 7: Java-апплет и веб-запуск — подписание кода
Как сказано в Oracle Java: «все файлы должны быть добавлены в JAR до подписания» и

«Ссылка« Дополнительная информация »добавляется к различным диалоговым окнам безопасности, которые могут появляться перед запуском апплета или Java Web Start, чтобы пользователь мог получить больше информации о диалоге».

Java SE 7, обновление 40: набор правил развертывания
Как сказано в Oracle Java:

«Набор правил развертывания позволил администратору настольного компьютера контролировать уровень совместимости клиента и запросы по умолчанию во всей организации».

Богатый процесс развертывания интернет-приложений

Введение в набор правил развертывания

Java SE 7, обновление 51 (запланировано на январь 2014 года)
Это дает некоторые обновления, которые будут запланированы в Java 7 Update 51:

applet2fig12

Рисунок 12: Обновление Java SE7 51

Заблокированный или смешанный код
Что делать, если ваш апплет заблокирован или предупреждает о «смешанном коде»?

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

Новые требования безопасности для RIA в 7u51 (январь 2014)
https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias

Центр ресурсов безопасности Oracle для разработчиков, конечных пользователей, системных администраторов и специалистов по безопасности
http://www.oracle.com/technetwork/java/javase/overview/security-2043272.html

Сайты, использующие апплеты

математические апплеты

applet2fig13

Рисунок 13: Страница апплета Ларри Грина: http://www.ltcconline.net/greenL/java/index.html

Протестированные апплеты для большей безопасности

applet2fig14

Рисунок 14: Другая страница Java-апплета: http://lionsgate.tripod.com/

Обучающие Java-апплеты

applet2fig15

Рисунок 15: Математика, физика и инженерные апплеты: http://www.falstad.com/mathphysics.html

Данный сайт также предоставляет ссылку на другие сайты, которые используют Апплет. Содержание, указанное на сайте: «Ссылки на другие образовательные сайты с информацией по математике / физике или Java-апплетами, полезными для обучения» :

applet2fig16

Рисунок 16. Ссылки на другие сайты: http://www.falstad.com/mathphysics.html.

Апплет калькулятора размера выборки

applet2fig17

Рисунок 17: Пример апплета ресурсов для опроса: http://design.iasri.res.in/ssrs/ecalci2.jsp

Java-апплет: Word Magnets Scramble

applet2fig18

Рисунок 18: Word Magnets Scramble: http://web.cortland.edu/flteach/mm-course/wordscrambleapplets/index.html

DAEJA ViewONE Pro

applet2fig19

Рисунок 19: DAEJA viewONE pro: http://www.daeja.com/demo/viewone-pro-demo-list.asp

Интерактивные Java-апплеты

applet2fig20

Рисунок 20. Интерактивные Java-апплеты

• Вы можете добавить апплеты, указанные на этом сайте, на ваш сайт

• В заключение, предоставить список апплетов во всемирной паутине (WWW). Приведенный ниже скриншот взят с http://www.montgomerycollege.edu/~dsolomon/273/ca273y/java/resources.html :

applet2fig21

Рисунок 21: Список апплетов вокруг WWW

Вывод

Любой язык программирования понимается лучше всего, когда он отлично используется в соответствующей среде и имеет многолетний опыт работы. Каждый язык имеет свои плюсы и минусы. C и C ++ используются еще более 30 лет назад. Такова и Java даже после 15 лет своего существования.

Я хотел бы отметить, что я не сторонник Java, и я не работаю на Oracle (и никогда не работал на него раньше). Я работаю разработчиком программного обеспечения и техническим писателем на Java, и эта статья отражает мою исследовательскую работу о существовании Java и Applets от имени опытных разработчиков Java в Интернете.

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

Мы можем ожидать от Oracle дальнейших исправлений с точки зрения безопасности, подписи, ресурсов, надежности и т. Д. Апплета. это означает, что они планируют что-то лучшее в будущем (возможно, в Java 8).

При использовании Java (и апплетов) были замечены некоторые недостатки безопасности, но Oracle предприняла необходимые шаги для их устранения и обновила, чтобы избежать таких недостатков в будущем. Оставайтесь на связи здесь для предстоящих обновлений Java .