Особенности распределенных ИС
- Ссылки
- Задержки выполнения запросов
- Активация/деактивация
- Постоянное хранение
- Параллельное исполнение
- Отказы
- Безопасность
Ссылки
Ссылки на объекты в программных модулях на ОО языках программирования (например, С++) являются указателями в памяти.
- Ссылки на объекты в распределенных системах в противоположность являются более комплексными:
1.1.Содержат информацию о размещении
1.2.Информацию о безопасности
1.4.Ссылки на объектные типы
- Ссылки на распределенные объекты значительно больше (40 байт для Orbix)
Задержки выполнения запросов
Локальные вызовы требуют порядка пары сотен наносекунд
Запрос к объекту требует от 0.1 до 10 миллисекунд
Интерфейсы в распределенной системе должны быть спроектированы так, чтобы снизить время выполнения запросов:
- Снизить частоту обращения;
- Укрупнить выполняемые функции.
Активация/Деактивация
Объекты в ОО языках находятся в виртуальной памяти от создания до уничтожения
В распределенных системах
- Больше объектов
- Объекты могут не использоваться на протяжении долгого времени
Реализации распределенных объектов
- Переносятся в память при активации
- Удаляются из памяти при деактивации
Постоянное хранение
Объекты могут иметь или не иметь состояние.
Объекты имеющие состояние должны сохранять его на постоянный носитель между:
- Деактивацией объекта
- Активацией объекта Может быть достигнуто:
- Записью в файловую систему
- Отражением на реляционные БД
- С помощью объектных БД
Параллельное исполнение
В нераспределенных системах исполнение в основном последовательное, иногда конкурентное в разных нитях процессов.
Распределенные компоненты выполняются параллельно, что приводит к необходимости согласования выполнения.
Отказы
Запросы в распределенных системах имеют большую вероятность отказов
Клиенты обязаны проверять факт выполнения запросов сервером
Безопасность
Безопасность в ОО приложениях может выполняться на основе контроля сеансов.
При работе распределенных систем возникают вопросы безопасности:
- Кто запрашивает выполнение операции?
- Как мы можем удостовериться, что субъект является именно тем за кого он себя выдает?
- Как мы примем решение предоставлять или нет субъекту право на выполнение сервиса?
- Как мы можем неопровержимо доказать, что сервис был предоставлен?