Проблема переносимости приложений: сорок лет спустя

22
Проблема переносимости приложений: сорок лет спустя SECR-2008 24 октября 2008 Алексей Хорошилов [email protected]

Upload: bishop

Post on 18-Mar-2016

80 views

Category:

Documents


0 download

DESCRIPTION

Проблема переносимости приложений: сорок лет спустя. Алексей Хорошилов [email protected]. SECR-2008 24 октября 2008. Переносимость. Переносимость. между различными аппаратными платформами - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Проблема переносимости приложений: сорок лет спустя

Проблемапереносимости приложений:сорок лет спустя

SECR-2008 24 октября 2008

Алексей Хорошилов[email protected]

Page 2: Проблема переносимости приложений: сорок лет спустя

2

ApplicationApplication

Status

File Edit View Help

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

Page 3: Проблема переносимости приложений: сорок лет спустя

3

между различными аппаратными платформами

между различными операционными системами

между различными версиями одной операционной системы

между программными окружениями промежуточного уровня

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

Page 4: Проблема переносимости приложений: сорок лет спустя

4

MacOS Школьный Linux

Примеры из настоящего

Page 5: Проблема переносимости приложений: сорок лет спустя

5

Переносимость между аппаратными платформами

На уровне исходных кодов Интерпретируемые языки Компилируемые языки

На бинарном уровне Аппаратная эмуляция Эмуляция в ОС Эмулятор как независимое приложение Динамическая трансляция

Page 6: Проблема переносимости приложений: сорок лет спустя

6

Взгляд с точки зрения доставки ПО

В исходных кодах Компиляция при установке Компиляция на лету Интерпретация (ВМЯП)

Предкомпилированный код для нескольких платформ Выбор на этапе установки “Fat binary”

Динамическая трансляция Эмуляция

Page 7: Проблема переносимости приложений: сорок лет спустя

7

Переносимость между операционными системами

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

Page 8: Проблема переносимости приложений: сорок лет спустя

8

Языки программирования

Стандартная библиотека времени исполнения

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

Page 9: Проблема переносимости приложений: сорок лет спустя

9

Стандартизация

На уровне исходного кода POSIX X Window System Application Interface

На бинарном уровне OSF/1 Linux Standard Base

Page 10: Проблема переносимости приложений: сорок лет спустя

10

Библиотеки-медиаторы

glib nsprapr

nss

SDL OpenGL

gtk+

QtwxWidgets

XPCOM

OpenSSL

cairo

Выделение платформенно-зависимого кода в отдельную библиотеку

Использование одной существующих библиотек:

Page 11: Проблема переносимости приложений: сорок лет спустя

11

Слои совместимости wine – слой совместимости с WinAPI для

Linux, MacOS, Solaris, FreeBSD,… на бинарном уровне

cygwin - слой совместимости с Linux для ОС Windows на уровне исходных кодов

Page 12: Проблема переносимости приложений: сорок лет спустя

12

Виртуализация

VMWare Workstation, … Microsoft VirtualPC, … Sun VirtualBox Xen Parallels Workstation, … …

Page 13: Проблема переносимости приложений: сорок лет спустя

13

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

Page 14: Проблема переносимости приложений: сорок лет спустя

14

Примеры переносимого ПО

Языки программирования

Ориентация на

стандарты

Медиаторы сторонних

разработчиков

Собственные медиаторы

Слои совместимости

Java приложенияPython, perl,…

POSIX приложения

Skype (библиотека

Qt)

Mozilla Firefox

(nss, nspr,...)Apache(apr, …)

Google Picasa (wine)

Page 15: Проблема переносимости приложений: сорок лет спустя

15

Недостатки Снижение производительности Удорожание процесса разработки

Усложнение архитектуры Дополнительные требования к

квалификации разработчиков Дополнительное тестирование

Увеличение сроков разработки Осложнение использования

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

дополнительных компонентов

Page 16: Проблема переносимости приложений: сорок лет спустя

16

Ориентация на

стандарты

Медиаторы сторонних

разработчиков

Собственные медиаторы

Слои совместимости

Виртуали-зация

Производи-тельность + ± ± -

Удорожание разработки ± ± - ± +

Увеличение сроков

разработки ± ± - ± +Особенности

платформ - ± ± +Зависимость от

поставщиков + - ± - -

Недостатки

Page 17: Проблема переносимости приложений: сорок лет спустя

17

А нужна ли переносимость?

О.Роден Мыслитель, 1880

Page 18: Проблема переносимости приложений: сорок лет спустя

18

Риски, адресуемые переносимостью

Устаревание и выход из строя аппаратных и программных платформ, на которых базируется целевое ПО

Зависимость от поставщиков базового и промежуточного ПО

Недоступность целевого ПО для части потенциальных потребителей

Page 19: Проблема переносимости приложений: сорок лет спустя

19

Заказчики ПО

Парк аппаратного и программного обеспечения и перспективы его развития

Риски попадания в зависимость от поставщиков

Дополнительные затраты на обеспечение переносимости ПО

Page 20: Проблема переносимости приложений: сорок лет спустя

20

Разработчики ПО

Заказное ПО Интересы заказчика Собственные потребности по возможному

переиспользованию Коробочное ПО

Исследования рынка Перспективы развития

Page 21: Проблема переносимости приложений: сорок лет спустя

21

Переносимость ПО требуется не всегда Чем больше время жизни ПО, тем

актуальнее переносимость Решение о необходимости обеспечения

переносимости ПО необходимо осознанно принимать в зависимости от условий конкретного проекта

Выводы

Page 22: Проблема переносимости приложений: сорок лет спустя

22

Спасибо!

Алексей Хорошилов, ИСП РАНe-mail: [email protected]: http://www.ispras.ru