Проблема переносимости приложений: сорок лет спустя SECR-2008 24 октября 2008 Алексей Хорошилов khoroshilov@ispras.ru.

Презентация:



Advertisements
Похожие презентации
Мобильность программного обеспечения в современных условиях SITOP октября 2008 Алексей Хорошилов
Advertisements

Автоматизированный анализ совместимости Linux приложений с различными дистрибутивами Владимир Рубанов, Константин Власов, Андрей Смачев Институт системного.
Виртуализация Программная виртуализация Эмуляция Паравиртуализация Виртуализация уровня ОС Виртуальные машины Аппаратная виртуализация Intel VT AMD Pacific.
ПроектированиеРазработкаВнедрение г. Самара ул. Льва Толстого
ТЕХНОЛОГИИ ВИРТУАЛИЗАЦИИ СОВРЕМЕННОЕ СОСТОЯНИЕ И ПЕРСПЕКТИВЫ РАЗВИТИЯ Сафронов Б.А.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ДОПОЛНИТЕЛЬНЫХ МЕРОПРИЯТИЙ ПО СНИЖЕНИЮ НАПРЯЖЕННОСТИ НА РЫНКЕ ТРУДА СУБЪЕКТОВ РОССИЙСКОЙ ФЕДЕРАЦИИ В 2011 ГОДУ РОССИЯ 2010.
Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
1 Диаграммы реализации (implementation diagrams).
26 декабря 2013г. attest.cro36.ru 1. * ПК или ноутбук с ОС Windows XP/Vista/7/8; MacOS; Linux/Unix * Разрешение экрана не менее 1200х768 * Веб-браузер.
РУП «Национальный центр электронных услуг» ОАИС – общегосударственная автоматизированная информационная система.
Программное обеспечение как услуга (SaaS) Лекция 8.
Разработка технологических процедур и требований по обеспечению совместимости ЭОР нового поколения с различными программно-технологическими платформами,
Технологии разработки программного обеспечения Исследования Института системного программирования РАН к.ф.-м.н В.В.Кулямин.
Разработка сред управляемого исполнения на примере виртуальной машины Java Занятие 1 Салищев С. И.
Платформа разработки бизнес-приложений Особенности платформы Принципиально новая запатентованная декларативная модель построения бизнес-приложений Высокая.
1 © Vladimir Petrov Саммит Разработчиков ТРИЗ – 2009 ТRIZ Developers Summit – 2009 Структура АРИЗ-2010 Владимир Петров.
Студенников Валерий Юрьевич Лекции и материалы:
Актуальные тренды стратегии информатизации банков в условиях нового рынка. Инструменты создания и развития эффективных финансовых продуктов Андрей ВИСЯЩЕВ.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Транксрипт:

Проблема переносимости приложений: сорок лет спустя SECR октября 2008 Алексей Хорошилов

2 Переносимость

3 между различными аппаратными платформами между различными операционными системами между различными версиями одной операционной системы между программными окружениями промежуточного уровня Переносимость

4 MacOS Школьный Linux Примеры из настоящего

5 Переносимость между аппаратными платформами На уровне исходных кодов Интерпретируемые языки Компилируемые языки На бинарном уровне Аппаратная эмуляция Эмуляция в ОС Эмулятор как независимое приложение Динамическая трансляция

6 Взгляд с точки зрения доставки ПО В исходных кодах Компиляция при установке Компиляция на лету Интерпретация (ВМЯП) Предкомпилированный код для нескольких платформ Выбор на этапе установки Fat binary Динамическая трансляция Эмуляция

7 Переносимость между операционными системами Языки программирования Стандартизация Библиотеки-медиаторы Слои совместимости Виртуализация Веб-приложения

8 Языки программирования Стандартная библиотека времени исполнения Не все особенности ОС скрываются ЯП Пути в файловых системах Windows и Unix Взаимодействие с внешним ПО

9 Стандартизация На уровне исходного кода POSIX X Window System Application Interface На бинарном уровне OSF/1 Linux Standard Base

10 Библиотеки-медиаторы glibnsprapr nss SDLOpenGL gtk+ QtwxWidgets XPCOM OpenSSL cairo Выделение платформенно-зависимого кода в отдельную библиотеку Использование одной существующих библиотек:

11 Слои совместимости wine – слой совместимости с WinAPI для Linux, MacOS, Solaris, FreeBSD,… на бинарном уровне cygwin - слой совместимости с Linux для ОС Windows на уровне исходных кодов

12 Виртуализация VMWare Workstation, … Microsoft VirtualPC, … Sun VirtualBox Xen Parallels Workstation, … …

13 Веб-приложения

14 Примеры переносимого ПО Языки программирования Ориентация на стандарты Медиаторы сторонних разработчиков Собственные медиаторы Слои совместимости Java приложения Python, perl,… POSIX приложения Skype (библиотека Qt) Mozilla Firefox (nss, nspr,...) Apache (apr, …) Google Picasa (wine)

15 Недостатки Снижение производительности Удорожание процесса разработки Усложнение архитектуры Дополнительные требования к квалификации разработчиков Дополнительное тестирование Увеличение сроков разработки Осложнение использования возможностей отдельных платформ Зависимость от поставщиков дополнительных компонентов

16 Ориентация на стандарты Медиаторы сторонних разработчиков Собственные медиаторы Слои совместимости Виртуали- зация Производи- тельность + ±± - Удорожание разработки ±±-± + Увеличение сроков разработки ±±-± + Особенности платформ - ±± + Зависимость от поставщиков + -±-- Недостатки

17 А нужна ли переносимость? О.Роден Мыслитель, 1880

18 Риски, адресуемые переносимостью Устаревание и выход из строя аппаратных и программных платформ, на которых базируется целевое ПО Зависимость от поставщиков базового и промежуточного ПО Недоступность целевого ПО для части потенциальных потребителей

19 Заказчики ПО Парк аппаратного и программного обеспечения и перспективы его развития Риски попадания в зависимость от поставщиков Дополнительные затраты на обеспечение переносимости ПО

20 Разработчики ПО Заказное ПО Интересы заказчика Собственные потребности по возможному переиспользованию Коробочное ПО Исследования рынка Перспективы развития

21 Переносимость ПО требуется не всегда Чем больше время жизни ПО, тем актуальнее переносимость Решение о необходимости обеспечения переносимости ПО необходимо осознанно принимать в зависимости от условий конкретного проекта Выводы

22 Спасибо! Алексей Хорошилов, ИСП РАН www: