
2.10 Перенос кода в рсои
Перенос кода необходим для:
· перераспределения нагрузки между узлами для повышения производительности;
· снижения трафика клиент-серверного взаимодействия.
У задачи выделяют следующие сегменты:
· сегмент кода - команды;
· сегмент исполнения - контекст задачи;
· сегмент ресурсов - ресурсы.
Модели переноса кода:
Минимальные требования для переноса кода предъявляет модель слабой мобильности - перенос только сегмента кода. Поэтому программа всегда выполняется из своего исходного состояния. Пример: Java Applet.
В модели сильной мобильности переносится сегмент кода и сегмент исполнения. Процесс приостанавливается, переносится и запускается на другом узле. Пример: мультиагентная платформа.
Типы связи процесса с ресурсом:
Процесс передает в точности тот ресурс, на который ссылаются аргументы (наиболее сильная связь);
Более слабая связь - процессу нужно только значение;
Наиболее слабая форма связи - процесс указывает лишь на использование ресурса определенного типа.
Программный агент.
Автономный процесс, способный реагировать на среду исполнения и вызывать в ней изменения, возможно в кооперации с другими агентами (кооперативные агенты) и пользователем. Агент может функционировать автономно, в том числе проявлять инициативу. В мультиагентной системе фигурируют кооперативные агенты, решающие общую задачу.
2.11 Модель клиент-сервер
Серверы - процессы, реализующие службы и предоставляющие к ним доступ.
Клиенты - процессы, использующие эти службы.
Рассмотрим на примере доступа к БД:
При трехуровневой организации системы имеем следующие логические уровни:
· Пользовательский интерфейс (ПИ на рисунке).
· Обработки (О).
· Данных (непосредственная работа с БД).
Варианты физического разделения уровней между узлами:
На этом рисунке клиент «утолщается» слева направо.
Взаимодействие клиента с сервером происходит следующим образом:
2.12 Общие сведение об именовании объектов и службе именования
Именование - способ определения местонахождения распределенных объектов, при котором осуществляется управление пространствами имен, представляющими собой наборы связей между именами объектов и ссылками на них.
Контекст именования - последовательность простых имен, идентифицирующая объект. Например “UEFA”, “England”, “Premier”, “Chelsea”.
Операции:
Связывание - регистрация объекта-сервиса по имени и объектной ссылке. Используется при добавлении нового объекта в систему или при перемещении / копировании существующего объекта.
Разрешение - получение ссылки на объект по его имени. Используется клиентом для получения доступа к методам объекта.
Размещение мобильных сущностей.
Мобильные сущности - это те объекты, которые могут гулять по разным хостам. В этом случае пространство имен удобно разбить на 3 уровня:
· Глобальный
· Административный
· Управленческий
В 1 и 2 помещаются объекты, которые перемещаются относительно редко. Здесь эффективно кэширование путей.
В 3 объекты гуляют часто, и для них используется следующая система:
По имени объекта служба именования определяет его идентификатор, затем служба локализации по ид находит его физический адрес.