logo search
[КОМП СИСТЕМЫ] / KS1

Промежуточное программное обеспечение распределенных компьютерных систем

Промежуточное программное обеспечение распределенных компьютерных систем (midleware) программное обеспечение осуществляющее взаимодействие между приложениями и сетевыми ОС.

В основе middleware лежит концепция RPC (Remote Procedure Calls) - вызова удаленных процедур.

Основная идея RPC обеспечить программистом приложений возможность вызова процедуры развернутой и выполняющейся на удаленном хосте, таким образом как если бы вызывалась локальная процедура.

При этом система RPC должна решать ряд задач:

  1. Трансформировать сложные типы данных приложений (вызовы и результаты удаленных процедур) в транспортное представление (поток байт или дейтаграммы транспортных протоколов). Этот процесс называется маршаллингом.

Кроме того, выполнить обратное преобразование – демаршаллинг.

  1. Как правило, клиент вызывающий процедуру и сервер ее выполняющий работают параллельно, поэтому система RPC должна обеспечить синхронизацию их работы.

На рисунке ниже приведена общая архитектура системы RPC.

Центральным архитектурным элементом является стабы (stub). В системе RPC они выполняют синхронизацию, маршаллинг, демаршаллинг и сетевые коммуникации. RPC включает в себя службу называемую реестром RPC (registry). С помощью нее серверы находят себя в сети.

Интерфейс активации RPC предназначен для вызова и загрузки байт-кода серверной программы.

Во всех системах RPC используется некоторая разновидность языка определения интерфейсов IDL (Interface Definition Language). Он используется для определения удаленной процедуры.

При этом в состав систем RPC входит компилятор IDL, используемый для автоматической организации стабов.

JAVA RMI

RMI (Remote Method Invocation) – удаленный вызов методов, одна из технологий создания распределенных приложений на языке java.

Определение удаленной службы осуществляется с помощью интерфейса java, а реализация удаленной службы - в отдельном классе. Архитектура JAVA RMI приведена на рисунке ниже: