Глава 5. Сетевой и транспортный уровни
5.21. Технологии распределенных вычислений.
ПО организации распределенных вычислений называют ПО промежуточного слоя (Middleware). Новое направление организации распределенных вычислений в сетях Internet-Intranet основано на создании и использовании программных средств, которые могут работать в различных аппаратно-программных средах. Совокупность таких средств называют многоплатформенной распределенной средой - МРС (сrossware).
Находят применение технологии распределенных вычислений RPC (Remote Procedure Call), ORB (Object Request Broker), MOM (Message-oriented Middleware), DCE (Distributed Computing Environment), мониторы транзакций, ODBC.
RPC - процедурная блокирующая синхронная технология, предложенная фирмой Sun Microsystems. Вызов удаленных программ подобен вызову функций в языке С. При пересылках на основе транспортных протоколов TCP или UDP данные представляются в едином формате обмена XDR. Синхронность и блокирование означают, что клиент, обратившись к серверу, для продолжения работы ждет ответа от сервера.
Для систем распределенных вычислений разработаны специальные языки программирования, для RPC это язык IDL (Interface Definition Language), который дает пользователю возможность оперировать различными объектами безотносительно к их расположению в сети. На этом языке можно записывать обращения к серверам приложений. Другой пример языка для систем распределенных вычислений - NewEra в среде Informix.
Рассмотрим типичную схему реализации RPC.
Удаленная программа характеризуется атрибутами: имя узла, номер программы (часто это совокупность программ определенного назначения), версия программы (версия - это копия программы, копии создаются для использования в многопользовательском режиме), имя процедуры в программе.
Процедуры, которые пользователь собирается применять, должны быть зарегистрированы в узле-клиенте, т.е. указаны имена узла, программы, процедуры.
Обращение по RPC - это обращение к демону Postmapper, находящемуся в узле-клиенте. При обращении в запросе указываются процедура, аргумент, память под результат. Аргумент должен быть единственный, поэтому если аргументов много, то программист должен создать агрегат данных. Демон находит регистрационные данные и с помощью средств транспортного уровня устанавливает соединение и передает запрос серверу. В сервере имеется диспетчер, который находит исполнителя запроса. В ответе сервера содержатся результаты выполнения процедуры.
RPC входит во многие системы сетевого ПО. RPC базируется на сетевой файловой системе NFS (для Unix-платформ) и информационной службе NIS - базе данных о конфигурациях всех машин в сети.
ОRB - технология объектно-ориентированного подхода, базирующаяся на спецификациях CORBA консорциума OMG. CORBA включает 13 пунктов (служб). Основные службы:
- служба именования, присваивает объектам уникальные имена, в результате пользователь может искать объект в сети;
- служба обработки транзакций, осуществляет управление транзакциями из приложений или из ОС (фиксация и откат транзакций);
- служба событий, обеспечивает асинхронное распространение и обработку сообщений о событиях;
- служба обеспечения безопасности - поддержки целостности данных.
При применении ORB (в отличие от RPC) в узле-клиенте хранить сведения о расположении серверных объектов не нужно, достаточно знать расположение в сети программы-посредника ORB. Поэтому доступ пользователя к различным объектам (программам, данным, принтерам и т.п.) существенно упрощен. Посредник должен определять, в каком месте сети находится запрашиваемый ресурс, направлять запрос пользователя в соответствующий узел, а после выполнения запроса возвращать результаты пользователю. Для представления запросов используется язык IDL, предложенный в CORBA. Этот язык отличается от языка IDL технологии RPC, в нем нет средств описания операций, описываются только интерфейсы.
Применение ORB может увеличить нагрузку на сеть, однако имеет и ряд преимуществ: обеспечивается взаимодействие разных платформ, не требуется дублирования прикладных программ во многих узлах, упрощается программирование сетевых приложений и поддержка мультимедиа.
В CORBA создан протокол IIOP (Internet Inter-ORB Protocol), который обеспечивает взаимодействие между брокерами разных производителей.
Примеры программ ORB: Orbix, OPBplus, Chorus, Joe.
Взаимодействие клиента с сервером как в ORB, так и в RPC происходит через создаваемые для такого взаимодействия специальные программы, называемые стабами. Клиентский стаб вместо обычных для локального случая операций обращения к процедуре выполняет операции обращения к сетевым средствам создания соединения (например, TCP/IP). В случае ORB из клиентского стаба происходит обращение к ORB, который и создает соединение, обмен данными выполняется через стабы.
MOM - также объектная технология. Связь с серверами асинхронная. Это одна из наиболее простых технологий, включает команды "послать" и "получить", осуществляющие обмен сообщениями. Отличается от E-mail реальным масштабом времени. Однако могут быть варианты МОМ с очередями, тогда режим on-line необязателен и при передаче не требуется подтверждений, т.е. опора на протокол IP без установления соединения.
Мониторы транзакций отличает от RPC наличие готовых процедур обработки транзакций (в том числе отката транзакций), что упрощает работу программистов. Примеры серверов приложений (для банковской системы): 1) финансовая отчетность; 2) электронная почта; 3) контрольно-статистическая подсистема; 4) подсистема документооборота.
DCE разработана консорциумом OSF (Open Software Foundation). Она не противопоставляется другим технологиям (RPC, ORB), а является средой для их использования, например, в одной из реализаций DCE пакет Encina есть монитор транзакций, пакет Orbix ORB представляет технологию ORB.
В DCE возможны одно- или многоячеечная структуры сети. Выделение ячеек производится по функциональным, а не по территориальным признакам. В каждой ячейке должен быть главный сервер данных и возможно несколько дополнительных серверов с копиями содержимого главного сервера, причем доступ к дополнительным серверам разрешен только для чтения. Обновление данных - только через главный сервер. Ячейка может занимать значительную территорию, главный сервер размещается вблизи от центра ячейки, дополнительные серверы - по периферии.
Функции DCE: распределение вычислений по технологии RPC; распараллеливание вычислений (но программист сам проектирует параллельный процесс); защита данных; синхронизация (согласование времени); поддержка распределенной файловой системы.
Работа в DCE: 1) пользователь дополнительно к своей прикладной программе пишет IDL файл, в котором указывает свое имя, требуемые операции и типы данных, подобно header на языке С; 2) IDL-компилятор создает три модуля: клиентский stub (Сl), серверный stub (Sr), header файл (Hd). Cl содержит вызовы процедур, Sr - обращения к базе процедур, Hd устанавливает связь между Stubs.
Определение нужного сервера в DCE либо происходит автоматически через, ORB, либо возлагается на программиста, как в RPC.
Технологии сrossware поддерживают такие крупные фирмы, как Netscape Communications и Oracle. Так, в сrossware фирмы Oracle включаемые в МРС прикладные программы называют картриджами, а унифицированные межпрограммные интерфейсы - средствами межкартриджного обмена (ICX - Inter-Cartridge-eXchange). Унификация обеспечивается применением языка описания интерфейсов IDL, спецификаций CORBA и др. Сами картриджи могут создаваться на язках С, С++, SQL, Java и др.
[ Общее Содержание ]
[ Назад ]
[ Содержание раздела ]
[ Вперед ]
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|