Миграция приложений с Microsoft Java Virtual Machine ДокладчикMicrosoft
Microsoft Java Virtual Machine Java Virtual Machine - код, обеспечивающий выполнение Java приложений Фактически, это виртуальный компьютер, располагающийся только в оперативной памяти Является интегрированной компонентой ОС Windows Анализ уязвимостей Выпуск обновлений 10 уязвимостей было выявлено и исправлено с 1999 г. Обеспечение поддержки
Текущая ситуация с Microsoft JVM В соответствии с договоренностью, достигнутой в январе 2001 г. в ходе судебного урегулирования по вопросу о распространении реализации Java корпорацией Microsoft, Sun и Microsoft согласились ограничить срок использования корпорацией Microsoft исходного кода и средств контроля совместимости корпорации Sun для поддержки MSJVM январем 2004 г. 7 октября 2003 г. Sun и Microsoft согласились продлить срок до 30 сентября 2004 г.
Потенциальные последствия Если уязвимость в MSJVM будет обнаружена после 30 сентября 2004 г., то Microsoft не сможет выпустить исправления для MSJVM. Серверные и настольные системы, установленные до выпуска последних редакций Windows, содержат MSJVM Группы и компании разработчиков могли разработать приложения с использованием расширений MSJVM Приложения третьих фирм могут быть зависимы от MSJVM Большинство заказчиков не знают о зависимости от MSJVM или не осведомленые о прекращении поддержки Несмотря на то, что Microsoft удаляет из своих продуктов все зависимости от MSJVM, последствия могут проявляться для наших заказчиков
Прекращение распространения продукта В настоящее время корпорацией Microsoft прекращено распространение MSJVM в составе своих продуктов Заказчики могут продолжать использование существующих версий продуктов Эти продукты будут поддерживаться в соответствии с условиями политики поддержки программных продуктов Исключение – MSJVM: окончание поддержки 30 сентября 2004 г. Загрузка с веб сайта или получение носителей от Microsoft будет невозможна Третьи фирмы могут продолжать распространение лицензированных версий в составе своих программных продуктов
Подходы к решению проблемы Понимание вопросов, связанных с MSJVM Определение зависимостей от MSJVM Автоматическая оценка с использованием MSJVM Diagnostic Tool Анализ вручную Список зависимых продуктов Анализ результатов Оценка Решение Анализ
MSJVM Diagnostic Tool Сканирование дисков Формирование подробного отчета
Оценка вручную Определение веб-страниц, использующих тег APPLET C:\>find /I applet c:\Inetpub\wwwroot\*.* Определение приложений, использующих Java классы MSJVM (0xCAFEBABE) Поиск в реестре вхождений msjava.dll Использование ActiveX: XJBInit() Более подробно описано в руководстве MSJVM Transition Guide
Подходы к решению проблемы Анализ зависимостей Оценка факторов и приоритетов Определение приоритетов в зависимости от степени риска Оценка Решение Анализ
Анализ зависимостей Определение зависимых приложений из указанных в списках Анализ факторов миграции и выбор методики Построение плана миграции для каждого приложения
Анализ зависимостей Тип зависимости Действия Зависимость в продукте Microsoft Использование списка зависимостей в продуктах Microsoft для выбора действий Зависимость в корпоративном приложении Анализ руководства по миграции совместно с разработчиками для выбора стратегии Зависимость в приложении третьих фирм Взаимодействие с компанией- разработчиком для выбора действий
Влияющие факторы при выборе стратегии миграции Стратегический выбор технологии Бизнес-цели Тип приложения Жизненный цикл приложения Политика безопасности
Определение приоритетов Апплеты из Интернета Рекомендуется запретить пользователям устанавливать и использовать MSJVM Интранет-апплеты Многофункциональное приложение
Подходы к решению проблемы Ограничение запуска MSJVM Исключение зависимостей от MSJVM Отказ от использования приложений Миграция Удаление MSJVM К исполнению до 30 сентября 2004 г. Оценка Решение Анализ
Ограничение использования MSJVM Использование настроек безопасности Internet Explorer Использование групповой политики в корпоративной среде Необходимое условие – наличие службы каталогов Active Directory Настройки влияют также и на компоненты Sun Java (если установлены)
Настройка безопасности Internet Explorer 1. Отключение использования Java в Интернете 2. Разрешение использования для ограниченного числа сайтов
Отказ от использования тегов APPLET Вместо тегов APPLET рекомендуется использование тегов OBJECT Указание на используемые компоненты Java runtime Вероятно, потребуется дополнительные усилия по разработке и внедрению новых версий приложений Теги APPLET сравнительно просты, по сравнению с тегами OBJECT
Варианты миграции для корпоративных приложений Ничего не делать Использование альтернативных технологий Использование альтернативных версий Java VM Миграция на архитектуру.NET
«Ничего не делать» MSJVM будет продолжать исполнять приложения Java Нет ограничения по сроку работу («timebomb») Потенциальные проблемы в области безопасности. После 30 сентября 2004 г. поддержка по MSJVM не предоставляется. Microsoft не рекомендует заказчикам использовать Microsoft Java VM после этого срока, а также использовать приложения, зависящие от MSJVM. Microsoft не распространяет MSJVM на новых версиях операционных систем и приложений
Использование альтернативных технологий DHTML/CSS/Jscript Не требуется установка дополнительных компонент Полностью поддерживается Microsoft Другие технологии rendering Macromedia Flash, Adobes SVG (Scalable Vector Graphics)… Большинство требует установки дополнительных загружаемых компонент Поддержка со стороны производителя
Использование альтернативных Java VM Замена MSJVM Доступна бесплатно от Sun Другие варианты: решения от IBM, BEA и др. Некоторые возможности MSJVM не будут работать с другими виртуальными машинами Требуется отказ от использования тегов APPLET Поддержка обеспечивается производителями виртуальных машин Необходимо тщательное тестирование перед внедрением
Миграция на архитектуру.NET Полностью поддерживается Microsoft Возможности использования новых современных технологий Средства преобразования полностью поддерживаются Microsoft Два подхода к преобразованию приложений: J# C# и Java Language Conversion Assistant (JLCA)
Visual J# Позволяет разработчикам переносить Java приложения в.NET Предоставляет возможность разработки.NET приложений с использованием синтаксиса Java Обеспечивает большую часть функциональности JDK и, кроме того, предоставляет дополнительные классы (Collections) Не генерирует файлы.class, не поддерживает апплеты, не использует JVM J# является совершенно независимым средством разработки, разработанным Microsoft Требуется наличие J# Library на клиенте
Java Language Conversion Assistant Преобразует код Java и вызовы программных интерфейсов в C# и.NET Framework Автоматизирует процесс миграции приложений Интегрируется с Visual Studio.NET 2003 Требуется дополнительная доработка и оптимизация приложения на C#
Выбор пути миграции Многоплатформенное приложение, использующее различные версии виртуальных машин Замена на другие Java VM Необходимо дополнительное тестирование и внедрение Использование всех преимуществ платформы Microsoft Миграция кода на C# с использованием Java Language Conversion Assistant Миграция на J#
Выбор пути миграции Приоритет номер один – время миграции и внедрения Переход к использованию других Java VM Вероятно, потребуется адаптация приложений Классы в иерархии com.ms.* Расширения языков (delegates, J/Direct, etc) Миграция на.NET C#/JLCA потребует дополнительных усилий по разработке приложений J#
MSJVM Removal Tool Единственный полностью поддерживаемый инструмент удаления MSJVM Удаляет MSJVM навсегда Нет варианта undo Microsoft не предоставляет MSJVM Инструмент предполагает тщательное тестирование перед использованием Предназначен для корпоративных заказчиков
Ресурсы Группы новостей Microsoft.public.java.vm.migrationMicrosoft.public.visualj++.migration Java Language Conversion Assistant efault.aspx efault.aspx Сообщество разработчиков J#