Сравнительный анализ современных средств управления связями между программными объектами

advertisement
Сравнительный анализ
современных средств
управления связями между
программными объектами
Золотых Алексей
Научный руководитель: Илюшин А.И.
Система хранения прикладных объектов
Вычислительный объект
Представление физической
области (набор матриц, векторов и
скаляров + алгоритм счета )
Программный объект
Представление вычислительного
объекта в МВС (множество
несмежных областей оперативной
памяти, в которых хранятся данные и
программы)
Сериализованное представление
Одномерный массив байт
Хранилище объектов
Система управления связями между
прикладными объектами
RPC = Remote Procedure Call
Прикладной
объект
Система RPC
Вообще говоря, объекты могут
располагаться на разных компьютерах
Прикладной
объект
Общая цель – создать систему управления
вычислительными моделями для МВС
Желаемый результат:
локальность программирования для прикладного
программиста
• прикладной программист получает средства для создания и
хранения вычислительных моделей в виде множества
программных объектов на дисках;
• система управления автоматически распределяет объекты по
процессорам, входящим в состав МВС – Требуются средства
управления связями;
• система управления обеспечивает синхронизацию
взаимодействия объектов по их локальным временам –
Требуются средства управления связями;
• система управления определяет связи между объектами по их
локальным координатам – Требуются средства управления
связями;
• система управления обеспечивает сохранение состояния
модели в процессе счета с возможностью прерывания и
возобновления счета в том числе и на другой МВС.
Цель работы – сравнительный анализ
средств управления связями между
программными объектами
Критерии сравнения:
1. Необходимая функциональность:
- возможность связывания объектов в конкретную систему с
помощью передачи ссылок друг на друга как параметров
вызовов и хранения этих ссылок в собственных переменных
объектов. Распределенный и локальный случаи идентичны по
синтаксису.
- возможность вызова процедуры в удаленном объекте по
ссылке на него. Распределенный и локальный случаи
идентичны по синтаксису.
- Наличие специальных каталогов, в которых можно сохранять
пары «имя объекта – ссылка на объект»,с целью
последующего поиска объектов по их именам.
2. Производительность:
- величина накладных расходов для
любого вызова – время вызова
«пустой» процедуры.
- время передачи массива эталонной
длины.
3. Простота использования
4. Надежность
Рассмотренные системы:
•
•
•
•
PYRO(Python Remote Objects)
RMI(Remote Method Invocation)
XML-RCP(XML-Remote Call Procedure)
ICE(Internet Communications Engine)
Функциональность
PYRO
ICE
RMI
XML-RCP
Связывание
объектов с
помощью
передачи
ссылок как
параметров
+
+
-
-
Вызов
удаленного
объекта по
ссылке
+
+
+
-
Каталоги
(имя –
ссылка)
+
-
+
-
Производительность XML-RCP при
различных методах сериализации
Pickle
cPickle
0.218
Marshal+
cPickle
0.219
Marshal+
base64
0.219
1x1
0.218
10x10
0.219
0.219
0.234
0.225
100x100
0.390
0.296
0.251
0.235
500x100
1.078
0.594
0.358
0.282
1000x100
1.937
0.967
0.483
0.327
2000x100
3.718
1.751
0.733
0.437
5000x100
8.983
4.062
1.593
0.797
Производительность методов
удаленных вызовов
ICE
XMLRCP
PYRO
RMI
1x1
0.062
0.219
0.031
0.016
10x10
0.063
0.225
0.032
0.016
100x100
0.065
0.235
0.033
0.018
500x100
0.069
0.282
0.062
0.025
1000x100
0.141
0.327
0.078
0.031
2000x100
0.281
0.437
0.141
0.047
5000x100
0.688
0.797
0.344
0.106
10000x100
1.406
1.389
0.608
0.203
11.921
6.391
1.547
100000x100 13.922
Простота и надежность
•
•
•
•
PYRO-9 баллов
RMI-5 баллов
XMLRCP-7 баллов
ICE-4 балла
Итоговое сравнение
Оптимальным для реализации
удаленных вызовов в рамках
проекта OST видится метод PYRO,
как лучший из методов удаленных
вызовов в рамках данного
сравнения.
(на этом слайде не очень хочется
писать много текста – расскажу
устно о причинах, подробнее в
тексте самой курсовой работы)
Результаты работы
• Реализованы примеры использования
различных систем удаленного вызова (PYRO,
RMI, XML-RCP, ICE)
• Проведен сравнительный анализ
реализованных примеров и по итогам выбран
PYRO, как наиболее удобный для системы
OST
• Проведен сравнительный анализ скорости
передачи данных, используя различные
сериализации(pickle/cPickle, cPickle+marshal,
cPickle+base.64)
Download