Аплет (applet) -это приложение, передаваемое через Internet и выполняемое на компьютере клиенте Java-совместимым браузером. Аплет представляет собой программу, пересылаемую по сети подобно изображениям, звуковым файлам или видеоклипам. Это программа, которая может реагировать на команды пользователя и динамически изменять свое поведение. Аплеты могут использоваться для создания богатых графикой и интерактивными возможностями пользовательских интерфейсов, которые не способны выразить средствами обычного языка разметки HTML или XML.
Аплеты передаются по сети, автоматически устанавливаются и запускаются как часть HTML-документа. Если аплет доставлен клиенту, его доступ к ресурсам ограничен. Поэтому даже самый сложный аплет с мультимедиа-интерфейсом, предназначенный для выполнения сложных вычислений, не может повредить данные или действовать как вирус. Возможность запуска аплетов без нежелательных побочных явлений (в том числе сохранение неприкосновенности секретных данных) считается многими пользователями одним из важнейших достоинств Java.
Компилятор Java компилирует аплеты в файл с расширением .class. После компиляции аплет включается в файл HTML с помощью дескриптора APPLET. Браузер начнет выполнение аплета при обнаружении в файле HTML элемента вида
<applet code="MyApplet" width=ширина height=высота>
</applet
Когда появился язык Java, аплеты обещали стать почти идеальным со всех точек зрения решением: не требуют затрат на установку, соответствуют лозунгу сторонников чистого HTML ("написано однажды — работает везде") и отличаются богатым "родным" графическим пользовательским интерфейсом.
Но до сих пор (2000 г.) эти надежды не сбылись. Проведенный недавно опрос, касающийся использования аплетов Java, показал, что они применяются менее чем на 2% из 500 самых популярных Web-сайтов. Почему? Некоторые разработчики неверно оценили накладные расходы при интерпретации байт-кода в виртуальной машине Java. У других множество нареканий вызывает защита, основанная на принципе "песочницы" (sandbox), который не позволяет Java использовать в полной мере локальные и удаленные службы. Третьи отмечают различия между виртуальными машинами основных браузеров, имеющихся на рынке. Так или иначе по прошествии пяти лет аплеты не оправдали ожиданий, и Web-приложения на базе HTML не были вытеснены Web-приложениями с равным уровнем переносимости и мобильности, но с функционально более мощным графическим пользовательским интерфейсом.
Тем не менее, хотя аплеты не заслуживают той шумихи, которая была поднята при их появлении, они делают немало полезного. Вот несколько ярких примеров.
Пример 1
AnywareOffice компании VistaSource (www.anywareoffice.com). VistaSource использует аплет Java для реализации Applixware, своего популярного офисного пакета, в браузерах, ориентированных на Java. Когда провайдер услуг доступа к приложениям использует AnywareOffice, приложения (такие, как текстовый процессор) работают на сервере, но отображаются в аплете.
Пример 2
QuestAgent компании JObjects (www.jobjects.com). Этот аплет представляет собой кроссплатформный механизм поиска, часто включаемый в состав компакт-диска с публикациями на базе HTML. Браузер может отображать информационное наполнение таких публикаций, но не может выполнять поиск в своем индексе. QuestAgent предлагает мобильный поиск и позволяет отказаться от необходимости создавать и отображать оригинальный механизм поиска.
Пример 3
MindTerm компании Mindbright Technologies (www.mindbright.com). Предположим, что пользователь оказался вне офиса и при нем нет мобильного компьютера, а ему необходимо передать файл на домашний сервер. MindTerm — реализация защищенной версии интерпретатора команд Secure Shell (SSH) на базе Java позволяет преобразовать любой ориентированный на Java браузер в клиент SSH, который можно применять для шифрования сеансов передачи файла.