Pull to refresh

Интервью с Ken Russel по поводу нового Java плагина

Reading time5 min
Views1.1K
Ну что же, как я и обещал, в дополнение в моему посту habrahabr.ru/blogs/java/49989
Небольшое интервью с человеком который внес большой вклад в разработку нового плагина от Sun
Плоды труда этого человека использует каждый разработчик который пишет на платформе Java, и зовут его Ken Russell (http://research.sun.com/minds/2008-0811/)

Прошу учесть что интервью проведено в первых числах декабря, поэтому некоторые события могут говорится в будущем времени хотя они уже наступили.

Я: Для разработчиков появилась возможность указывать дополнительные параметры в командную строку для VM. Безусловно это прекрасный функционал которого не хватало, но если ли здесь меры безопасности контролирующие действия разработчика? Например стоит ли мне беспокоится о том что заходя на какой то сайт, он повесит мой PC потому что на нем 5 апплетов которые выделяют 512MB RAM каждый?
Ken Russell: Мы думали о создании дополнительных ограничений в спецификации командных аргументов, например: ограничение максимального размера памяти которую могут запросить все апплеты — максимальным размером доступной виртуальной памяти в системе. Однако, в первом релизе Java Plug-In мы решили не вводить искусственные ограничения чтобы избежать ограничения разработчиков в неожиданных ситуациях. Замечу что Java Plug-In будет пытаться сгруппировать апплеты внутри одной JVM даже если они запрашивают дополнительную память и используют «separate_jvm» параметр чтобы изолировать апплет внутри его собственной JVM, тогда в момент переключения со страницы эта JVM будет остановлена. Вообще, если апплет не завершается «чисто», то плагин «жестко» остановит JVM в которой он исполнялся. Это значит что если вы попали на страницу которая ненормально себя ведет(что может быт совершенно независимо от Java), вы можете просто закрыть ее и Java Plugin, и система восстановятся.

Я: а когда планируется введение этого ограничения? и как оно будет выглядеть? Например могу ли я, как пользователь сказать плагину что я доверяю этому апплету и если он захочет выделить 2GB RAM то пусть выделяет, но если я просто зашел на какую то страницу то апплеты на ней не должны получить больше чем N MB RAM?
Ken Russell: В данный момент мы еще не планировали дату для разработки этого ограничения. В данный момент мы фокусируем свои усилия на других областях. Если данные полученные от наших заказчиков укажут на необходимость этого функционала, то мы поставим на это приоритет.

Я: Тогда следующее: апплеты имеют возможность сохранять небольшой объем данных на клиентском PC, я не нашел никакой интеграции в браузерный механизм кеширования, как мне удалить эти данные? Будет ли возможность очистить эти данные при очистке кеша браузера? Или пользователи должны знать как очищать его самостоятельно?
Ken Russell: Возможность сохранять данные, это нововведение Java SE 6 Update 10. Апплеты запускаемые с поддержкой JNLP в плагине, могут получить доступ к PersistenceService как и любое Java Web Start приложение. Я не знаю какие политики есть для этих данных — разработчики Java Web Start смогут дать ответ --но я думаю что если очистить кеш на Java Control Panel, то эти данные должны быть удалены.

Я: Хорошо, но будет ли интеграция этого механизма очистки в браузерный механизм очистки?
Ken Russell: планов на реализацию этого нету. Кеш Java специально отделен от браузерного кеша, чтобы избежать зависимости от браузерной реализации механизма кеширования.
Я: Я имею ввиду, как во Flash, ты можешь указать размер доступного хранилища прямо на Веб странице, или запретить сохранение вообще.
Ken Russell: Я немного знаю о механизмах Flash. Насколько я понимаю Flash может сохранять что-то около 100КБ данных на каждый ролик, а если тебе нужно больше то ты можешь запросить Flash показать запрос пользователю о выделении большего количества. JNLP PersistenceService имеет похожее ограничение, а если ты хочеш больше, ты можешь подписать свой апплет чтобы иметь прямой доступ к файловой системе(при условии что пользователь примет твой сертификат).

Я: плагин позволяет создавать новые окна обозначенные «звездочкой», учитывая что плагин уже некоторое время как вышел, какой feedback вы получаете, действительно ли это предупреждает среднестатистического пользователя о том что это окно создано апплетом а не браузером? И еще: теперь есть возможность вынести аплет из браузера, когда это происходит, то апплет получает доступ к локальной файловой системе. Видели ли вы какие либо вредоносные апплеты, которые просили вытащить их наружу эмулируя окна обычно показываемые браузером, или есть ли возможность создать окно которое перекроет область экрана в которой появляется pop-up браузера — предупреждение безопасности?
Ken Russell: Новое предупреждение безопасности разработано в Abstract Window Toolkit (AWT), а не в Java Plug-In. Я не очень близко следил за его развитеем, но отзывы от пользователей в общем — позитивны.
Ken Russell: Утверждение о том что апплет будучи вынесенным из браузера получает доступ к файловой системе неверно. Такой апплет продолжает исполнятся внутри безопасной песочницы, если конечно у него нет подписи. Мы пока не видели вредоносных вытаскиваемых апплетов. Неимеет смысла перекрывать браузерное предупреждение безопасности, потому что пользователю всеравно прийдется его подтвердить, а это не может быть сделано средствами java.awt.Robot или другими средствами.

Я: коков главный приоритет Java в данный момент: быть самой безапасной платформой для пользователя или самой мощной платформой разработки для разработчиков? или и то и другое? Если цель только одна то почему именно она была выбрана?
Ken Russell: Обе. С новым плагином мы сделали апплеты в браузере такими же мощными как и обычные приложения, мы все еще сохраняем java песочницу и модель безопасности. Целью переписывания плагина было убрать искусственные ограничения «мощности» апплетов исполняемых в браузере, и использование преимуществ java платформы для разработки и развертывания браузерных апплетов и внебраузерных приложений практически идентичными. И я считаю что это нам удалось.

Я: Java апплеты вышли 10 лет назад, в прошлом году Microsoft презентовала Silverligth, Adobe обновила Flash плагин. Можно ли считать новый плагин Sun'овским ответом им, и что теперь Sun перейдет в атаку на Flash? Подтвердишь ли ты такое заявление, или как ты видиш эту ситуацию, что было мотивацией полностью переписать плагин?
Ken Russell: Новый плагин это всего лиш один элемент в общей стратегии Sun по освежению Java на клиентских платформах. Мотивация для переписки плагина по большей части происходит от моих собственных усилий в проекте JOGL для возможности создания аплетов использующих OpenGL. Уже давно можно создавать мощьные 3D приложения и игры написанные на Java в виде обычных приложений или приложений для Java Web Start, и мы захотели те же возможности и надежность для развертывание 3D контента в браузере. Новый плагин использует лучшие архитектурные элементы из Java Web Start и старого плагина, для обеспечения совместимости со старыми апплетами и одновременно разворачивая новые возможности для новых апплетов.
Ken Russell: Как только у вас есть надежный контейнер для апплетов, возникает следующий вопрос: что положить в этот контейнер. JavaFX это следующий большой шаг навстречу легкой разработке более «богатых» приложений и апплетов. Посмотрите на релиз JavaFX 1.0 через несколько дней и множество примеров удивительных приложений которые могут быть созданы на Java платформе.
Tags:
Hubs:
+4
Comments1

Articles

Change theme settings