- •1. Введение в распределенные вычислительные системы
- •1.1 Определение распределенной вычислительной системы
- •1.2 Промежуточное программное обеспечение
- •1.3 Терминология рвс
- •1.4 Классификация рвс
- •1.5 Связь в рвс
- •2. История развития распределенных вычислений
- •2.1 Первое поколение систем распределенных вычислений
- •2.1.1 Проект fafner
- •2.1.2 Проект I-way
- •2.2 Второе поколение систем распределенных вычислений
- •2.2.2 Проект Legion
- •2.2.3 Распределенные объектные системы
- •2.3 Современные рвс
- •2.3.1 Одноранговые (peer-to-peer) сети
- •2.3.2 Сервис-ориентированная архитектура
- •2.3.3 Агенты
- •2.3.4 Облачные вычисления
- •2.4 Заключение
- •Архитектура клиент-сервер
- •4.1 Разделение приложений по уровням
- •4.1.1 Уровень представления
- •4.1.2 Уровень бизнес-логики
- •4.1.3 Уровень данных
- •4.2 Типы клиент-серверной архитектуры
- •4.2.1 Методы горизонтального распределения
- •3.1 Классическая двухуровневая архитектура «Клиент – сервер»
- •3.3 Различные модели технологии «Клиент – сервер»
- •5. Объектные распределенные системы
- •5.1 Вызов удаленных процедур.
- •5.1.1 Базовые операции rpc
- •5.2 Организация связи с использованием удаленных объектов
- •5.3 Corba
- •5.3.1 Основные понятия corba
- •5.3.2 Технология corba
- •5.3.3 Разработка на основе corba
- •3.2 Трехуровневая модель
- •3.6 Технология "Клиент-сервер" применительно к Internet
- •3.7 Технология «Клиент-сервер» применительно к Intranet
- •6. Агентные технологии
- •6.1 Понятие программного агента
- •6.2 Мультиагентные системы
- •6.2.1 Агентные платформы
- •6.3 Безопасность в системах мобильных агентов
- •10. Технологии одноранговых сетей
- •10.1 Основы технологии одноранговых сетей
- •10.1.1 Сравнение p2p и клиент-серверной технологий
- •10.1.2 Задачи p2p сетей
- •10.1.3 Основные элементы p2p сетей
- •10.2 Алгоритмы работы p2p сетей
- •10.2.1 Структура p2p сети
- •10.2.2 Алгоритмы работы p2p сетей
- •10.3 Применение технологий p2p
- •10.3.1 Распределенные вычисления
- •10.3.2 Файлообменные сети
- •10.3.3 Приложения для совместной работы
- •10.4 Достоинства и недостатки p2p
5.2 Организация связи с использованием удаленных объектов
Объектно-ориентированная технология в настоящее время широко приме- няется при разработке приложений, в том числе и распределенных.
Одним из наиболее важных свойств объекта является то, что он скрывает особенности ре- ализации, предоставляя для взаимодействия строго описанный интерфейс.
Это позволяет заменять или изменять объекты, оставляя интерфейс неизменным.
Развитие клиент-серверной архитектуры в начале 1990-х годов привело к формированию объектно-ориентированной концепции распределенных систем, ориентированной на инкапсуляцию механизма распределенных взаимодей- ствий и уменьшение сложности разработки распределенных приложений по- средством методов объектно-ориентированной разработки и удаленных вызовов методов объектов.
Основными достоинствами данного подхода стали:
простота разработки распределенных приложений по сравнению с класси- ческим клиент/серверным подходом;
возможность разработки приложений для гетерогенных вычислительных сред (обеспечивалась применением виртуальных машин, например, Java, и независимым описанием интерфейсов взаимодействующих компонентов);
возможность отделения интерфейса удаленного объекта от его непосред- ственной реализации. Удаленный объект представляет собой некоторые данные, совокупность которых определяет его состояние. Это состояние можно изменять путем вы- зова его методов.
Если возможен прямой доступ к данным удаленного объекта, это происходит посредством неявного удаленного вызова, необходимого для передачи значения поля данных объекта между процессами.
Методы и поля объекта, которые могут использоваться через удаленные вызовы, доступны че- рез некоторый внешний интерфейс класса объекта.
В момент, когда клиент начинает использовать удаленный объект, на сто- роне клиента создается клиентская заглушка, называемая посредником (англ. proxy).
Посредник реализует тот же интерфейс, что и удаленный объект. Для передачи параметров по сети используется сериализация объектов и данных.
Сериализация – это перевод состояния объекта в последовательность битов (чаще всего, бинарный или XML-файл), после чего его копия может быть передана в другой процесс.
Обратный процесс – десериализация – это восста- новление состояния объекта из принятой последовательности битов. Вызывающий процесс использует методы посредника, который сериализу- ет их параметры для передачи по сети, и передает их по сети серверу.
Промежуточная среда на стороне сервера десериализует параметры и передает их за- глушке на стороне сервера, которую называют каркасом (skeleton) или, как и в удаленном вызове процедур, заглушкой.
Каркас связывается с некоторым эк- земпляром удаленного объекта. Это может быть как вновь созданный, так и существующий экземпляр объекта, в зависимости от применяемой модели ис- пользования удаленных объектов, которые будут рассмотрены ниже.
При использовании удаленных объектов проблемными являются вопросы о времени их жизни:
в какой момент времени создается экземпляр удаленного объекта; в течение какого промежутка времени он существует. Для описания жизненного цикла в системах с удаленными объектами ис- пользуются два дополнительных понятия:
активация объекта: процесс перевода созданного объекта в состояние об- служивания удаленного вызова, то есть связывания его с каркасом и по- средником.
деактивация объекта: процесс перевода объекта в неиспользуемое состоя- ние.
Технология Java RMI (Remote Method Invocation – вызов удаленных мето- дов) позволяет обеспечить прозрачный доступ к методам удаленных объектов, обеспечивая доставку параметров вызываемого метода, сообщение объекту о необходимости выполнения метода и передачу возвращаемого значения клиен- ту обратно.
Распределенное приложение, разработанное на базе технологии Java RMI, состоит из двух отдельных программ: клиента и сервера.
Серверное приложе- ние создает удаленный объект, публикует ссылки на него и ожидает, когда кли- енты произведут вызов метода данного удаленного объекта.
Приложение- клиент получает с сервера ссылку на удаленный объект на сервере, после чего может вызывать его методы.
Технология RMI обеспечивает механизм, при по- мощи которого производится обмен информацией между клиентом и сервером. Процесс публикации ссылки на удаленный объект может быть реализован с помощью специального регистра или же посредством передачи удаленной объ- ектной ссылки как части обычной операции.
Достоинствами использования технологии Java RMI для разработки рас- пределенного приложения можно назвать возможность разрабатывать систему целиком основываясь на объектно-ориентированной концепции, не погружаясь в разработку собственных протоколов взаимодействия между распределенными компонентами систем, а также кроссплатформенность, предоставляемую вир- туальной машиной Java.
К недостаткам данного подхода можно отнести:
строгую ограниченность данной технологии платформой Java;
необходимость обработки соединений между распределенными компонен- тами приложения ограничивает масштабируемость используемого подхо- да.
