середу, 17 жовтня 2007 р.

Java Kernel

Проект Java Kernel связан с проблемой времени на запуск для тех пользователей у которых не установлена подходящая JRE. Например если ваше приложение требует наличие Java SE 6 у пользователя, и он у них не установлен, они должны его установить перед запуском приложения. В зависимости от размера JRE и ширины канала доступного пользователю, время загрузки и установки может занимать от десяти секунд до десяти минут. Проект Java Kernel уменьшит это время значительно, позволяя приложению устанавливать только то что ему необходимо для запуска.

Также как и Quickstarter, основная проблема во времени загрузки и установки заключена в размере: платформа Джава большая, даже если упакована и заархивирована, то физические возможности канала не могут быть преодолены. Конечно одно из решений будет в простом сжатии платформы, но так как Джава поддерживает обратную совместимость и любое Джава приложение скомпилированное под конкретную версию платформы может рассчитывать на то что сможет запустится и на более поздней версии.

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

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

Основные работы выполняемые Java Kernel:

  • Загрузка базовой функциональности которая необходима каждому приложению: Виртуальная машина, сборщик мусора, политики безопасности.

  • Загрузка дополнительных зависимостей которые специфицирует приложение

  • Загружать любой из Class not found ошибки.

  • Загружать оставшуюся часть JRE пока не будет загружена полная версия релиза на системе пользователя.

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



Немає коментарів: