Реализация класса «файл объектов» как элемента системы

advertisement
Организация межобъектных вызовов
и реализация класса «файл
объектов» как элемента системы
программирования для МВС на
основе понятий
«пространство-время»
Павлухин Павел
Научный руководитель Илюшин А. И.
Общая цель: создать систему управления
вычислительными моделями для МВС.
Цели работы:
• реализовать средства для прикладного программиста по
созданию и хранению вычислительных моделей в виде
множества программных объектов на дисках;
• реализовать поддержку запросов к файлу объектов , с
помощью которых определяется информация о топологии
и времени для прикладной задачи
• обеспечить сохранение состояния модели в процессе
счета с возможностью прерывания/возобновления счета, в
том числе и на другой МВС
• обеспечить взаимодействие объектов посредством
удаленных вызовов
Требования к классу «файл объектов»:
• Поддержка сохранения нескольких версий
прикладного объекта;
• Структура файла одинакова при начальной
инициализации и в процессе счета
(возможность сохранять объекты в процессе
счета и переносить их на другую МВС для
возобновления дальнейшего счета);
• Масштабируемость (возможность работы как
с небольшим числом объектов, так и с
несколькими тысячами их экземпляров);
• хранение модели в стабильной памяти в
течение всего периода работы с ней
(контрольные точки);
Методы класса «файл объектов»:
• Подготовка исходных данных задачи в
виде файла объектов;
• Сохранение прикладного объекта в
файл объектов;
• Восстановление прикладного объекта
из файла по его id и версии;
• Восстановление информации о
топологии(координаты) и времени
объекта по его id и версии;
Подготовка исходных данных задачи в
виде файла объектов и сохранение
прикладного объекта в файл
объектов:
Прикладной
объект
Файл объектов
CreateObject
байтовый массив объекта
Id
maxObjectVersions – задается
XYZ
(координаты объекта)
при инициализации OST_Main
version
begin
length
lencoord
IndexFile
Восстановление прикладного
объекта из файла по его id:
Id
Version
Координаты
объекта (для
определения
соседей) и время
Файл объектов на
физическом носителе
version
прикладной
объект
Файл объектов
Deserialize
begin
length
lencoord
IndexFile
Межобъектные вызовы:
• Java – платформонезависимый язык с
удобной системой удаленных вызовов –
RMI(Remote Method Invocation);
• Ограничения RMI;
• Межобъектный вызов - удаленный
вызов;
• Корректность работы в различных
конфигурациях;
Регистрация OST_Local в системе
mainhost
OST_Main
rmiconnectmain(“OST_Main”)
1
2
OSTLocal1
rmiregistry
3
Id=1
registerOstLocalrmi
host1
“OSTLocal+id”
OSTLocal2
(“OSTLocal+id”)
id
rmiregistry
host1
rmiregistry
host2
Регистрация объектов и межобъектный вызов
mainhost
OST_Main
WhereHost(‘’name+id’’)
regOstObjrmi(‘’name+id’’)
rmiregistry
‘’host1’’
2
1
2
host1
‘’name+id”
OSTLocal2
OSTLocal1
regObj(‘‘name+id’’)
rmiregistry
Obj(‘’name+id’’).func()
rmiregistry
4
host1
host2
3
Что сделано:
•
•
•
•
•
•
•
•
•
•
•
•
•
0. разработка описания структуры ОSТа – Оленин, Чугунов,Павлухин
– Проектирование структуры и разработка алгоритмов
– Описание реализации - структура OST, основные алгоритмы
– Руководство для прикладного программиста
1. класс прикладного объекта (OST_Object) – Оленин
2. класс объекта связки (OST_LinkObject) – Оленин
3. класс объекта локального управления счетом(ОSТ_Local)–Оленин
4. класс объекта управления счетом (OST_Main) – Оленин
5. класс файла объектов(ObjectStore) – Павлухин
6. меж-объектные вызовы – Оленин, Чугунов, Павлухин
7. динамическая подгрузка классов – Чугунов
8. связь java c C/C++ и C/C++ с fortran – Чугунов, Павлухин
9. Реализация прикладных задач
– 1. M2DGD – Оленин, Колмаков
– 2.1. Умножение матриц, вариант на OST – Оленин
– 2.2. Умножение матриц, вариант на MPI – Чугунов
Планируется сделать:
• Перенос на МВС задачи М2DGD;
• Полноценный планировщик задач,
подкачка/выталкивание объектов;
• Доработка описания для пользователя;
• Реализация других прикладных задач;
Download