Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в распределенные системы. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
вызывающей и вызываемой процедур происходят на разных компьютерах (возможно, компьютеров различных типов) и возникают сложности при передаче параметров и результа­тов.
Удаленный вызов процедур обычно реализуется без использования технологии разделяемой памяти, применяе- мой с целью увеличения скорости прохождения данных меж­ду процессами. Традиционно обмен информацией между процессами использует ресурсы процессора. Технологии ис­пользования разделяемой памяти позволяют реализовать та­кой обмен не через регистры процессора, а через некоторую часть виртуального адресного пространства, куда записыва­ются и откуда извлекаются данные. Поскольку разделяемая память не используется, то параметры удаленного вызова программ не могут иметь в своем составе указатели на ячей­ки, не входящие в состав стековой памяти, т.е. производится копирование значений параметров с одного компьютера на другой.
Следует отметить, что в отличие от локального вызова. RPC всегда использует нижележащие уровни связи, как в не­явном виде, так и в определении процедур, и в самих проце­дурах.
И еще одно отличие. В реализации RPC вызова участ­вуют как минимум один клиентский и один серверный про­цессы. Выполнение локального вызова на одном компьютере реализуется только в рамках единого процесса.
Со стороны клиента отправляется сообщение на сервер с параметрами вызываемой процедуры. Клиент переходит в состояние ожидания ответного сообщения с результатами выполнения процедуры. Когда поступает ответ, результаты извлекаются, и клиентский процесс продолжает работу.
На серверной стороне процесс, обрабатывающий вы­зовы процедур, ожидает поступление очередного вызова. Как только это событие происходит, – считываются параметры процедуры, осуществляется ее выполнение, а потом отправ-
51
Клиент
среда
Сервер
среда
ляется ответ и осуществляется переход процесса-обработчика в состояние ожидания очередного вызова. RPC вызов схемо­тично представлен на рис. 9.
Клиентский процесс
Вызывающая функция
Заглушка клиента
Промежуточная
Сетевая служба ОС Сетевая служба ОС
Канал
передачи
Серверный процесс
Вызываемая функция
Заглушка сервера
Промежуточная
Рис. 9. Удаленный вызов процедур
После вызова процедуры-заглушки происходит пере­дача аргументов на удаленный компьютер, где содержится вызываемая функция. Передача осуществляется посредством промежуточного ПО. Предварительно информация преобра­зуется в формат, требуемый для использования транспортно­го протокола.
На удаленном компьютере посредством промежуточ­ного ПО происходят извлечение параметров, которые были переданы, из сообщения транспортного уровня и дальнейшая их передача необходимой функции (рис. 9). Получение ре­зультатов выполнения вызванной процедуры стороной кли­ента происходит по аналогии с описанной выше схемой.
Отличия вызовов удаленных процедур от вызовов ло­кальных процедур перечислены ниже.
52
1. При вызовах удаленных процедур на сервере или в сети клиенту всегда высылаются сообщения о возникших ошибках.
2. При вызовах удаленных процедур доступ к адрес­ному пространству со стороны сервера отсутствует, поэтому передача данных через глобальные переменные не приемли­ма.
3. Локальные процедуры обычно выполняются быст­рее, чем аналогичные удаленные процедуры.
4. Удаленные процедуры вызываются по сети, что тре­бует использования алгоритмов аутентификации клиента.
По своим функциональным особенностям RPC нахо­дится в промежуточном положении между уровнями прило­жения и транспортным. В соответствии с моделью OSI для данного положения подходит уровень представления и сеан­совый уровень. Теоретически такое соответствие указывает на независимость RPC от реализации сети, в том числе от протоколов транспортного уровня.
6.3.3. Обращение к удаленным объектам (RMI)
Развитие технологии RPC обусловило появление её объектной реализации, получившей название RMI (Remote Method Invocation). RMI позволяет приложениям, и со сторо­ны клиента, и со стороны сервера через сеть вызывать методы клиентов/серверов, выполняющихся в Java Virtual Machine. Виртуальная машина Java – это набор компьютерных про- грамм и структур данных, которые используют модель вирту­альной машины для выполнения других компьютерных про­грамм и скриптов.
В соответствие с RMI клиенту необходимо использо­вать ссылки, содержащие сетевой адрес сервера и полный путь к объекту на сервере, включая локальный идентифика­тор объекта в адресном пространстве сервера. Подобная
53
ссылка кодируется в стек протоколов, требуемых для взаимо­действия клиента и сервера.
Объект – это, в данном случае, стандартно оформлен- ный программный модуль, в состав которого могут входить данные и операции над этими данными.
Состояния (свойства) объекта – данные, входящие в состав объекта, методы - операции над этими данными.
Интерфейс объекта служит для доступа к методам. Объект может реализовывать большое количество интерфей­сов, для описания интерфейса тоже могут существовать не­сколько объектов.
Распределенный объект – объект, интерфейс которо­го содержится на другом компьютере по отношению к само­му объекту. Распределенные объекты сосредоточены на од­ном компьютере, их данные не распределяются. С других компьютеров доступны только интерфейсы, реализованные в объекте.
Когда клиент обращается к распределенному объекту, то управление передаётся программе, реализующей интер­фейс объекта. Такая программа аналогична заглушке клиента,
- посреднику (proxy). Она реализует передачу параметров от вызывающей программы к ОС ЭВМ клиента и обратно по аналогии с функционированием клиентской заглушки. На стороне сервера передачу параметров от ОС сервера к мето­дам объекта и обратно реализует скелетон (каркас) – аналог серверной заглушки. Используемый язык программирования задает форму объектов РС.
На рис. 10 представлены функциональные схемы об­ращения к удаленным объектам. Client Stub и Server Stub происходят от общего интерфейса, но характеризуются свои­ми функциями. Назначение Client Stub – подсоединения к RMI Registry, а назначение Server Stub – связь с функциями сервера.
54
Сервер
Клиентский процесс
Объект
Интерфейс удале
н-
К
аркас
Клиент
Клиентский процесс
Client
Stub
Server
Skeleton
Состояние объе
кта
Ссылка на посредника
Интерфейс удаленного
объекта
Посредник
ного объекта
Промежуточая среда Промежуточная среда
Сетевые службы ОС
Сетевые службы ОС
Канал
передачи
данных
Java Client
RMI Registry
Рис. 10. Использование удаленных объектов
Java Server
55
7. РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ ОБЪЕКТОВ
7.1. Технология CORBA
В 1989 создан консорциум OMG (Object Managment Group) – группа компаний, основной целью которой является определение набора спецификаций для разработки РИС. Ре­шение задачи разработки единообразной архитектуры дало возможность повторно использовать и интегрировать про­граммный код. Консорциумом разработана открытая архи­тектура и набор стандартов, сконцентрированных в понятии OMA (Object Managment Architecture). На данный момент OMG объединяет большинство крупнейших производителей ПО, кроме Microsoft.
Технология CORBA (Common Object Request Broker Architecture) позволяет интегрировать изолированные систе­мы, также позволяет программам, разработанным на разных языках, функционирующим в разных узлах сети, взаимодей­ствовать между собой с той же легкостью, как и в едином ад­ресном пространстве одного процесса.
CORBA устанавливает основные правила взаимодей­ствия компонент (объектов) на представительском и при­кладном уровнях модели OSI и делает возможным рассмат­ривать все приложения в РИС как объекты. Объекты, череду­ясь, могут брать на себя как роль, как клиента, так и сервера: роль клиента, если объект выступает в роли инициатора вы­зова метода у другого объекта; роль сервера, если другой объект вызывает на нем какой-нибудь метод. Таким образом, использование CORBA очень эффективно позволяет разраба­тывать достаточно гибкие системы, чем системы клиент­сервер.
Язык описания интерфейсов (IDL) – средство, поз­воляющее определять операции, вызываемые клиентами в удаленных серверных объектах. Методы IDL могут быть реа­лизованы на любом языке, для которого имеется отображение
56
из IDL, и представляют собой мощное средство описания ин­терфейсов CORBA объектов любой сложности.
7.2. Промежуточные среды Microsoft Windows
Рассмотрим технологии, созданные для Microsoft Windows и являющиеся альтернативными по отношению к CORBA.
1. Компонентная модель COM (Component Object
Model). Технология предназначена для разработки программ-
ного обеспечения на основе взаимодействующих компонен-
тов объекта, при этом компоненты могут быть использованы во множестве других программ одновременно. Компоненты
характеризуются четко определенными интерфейсами. Тех­нология дает возможность создавать РИС в рамках одного компьютера.
2. Распределенная компонентная модель DCOM
(Distributed Component Object Model). Технология представ­ляет собой расширение СОМ и востребована для распределе­ния приложений между компьютерами в сети. Данная модель поддерживает среду распределенных вычислений DCE (Dis­tributed Computing Environment) и механизм удаленного вы­зова процедур RPC.
3. Модель СOM+. Технология расширяет возможности
DCOM в позициях распределенной обработки транзакций (MTS). Технология востребована для разработки локальных РИС. Основная цель создания модели COM+ – формирование инфраструктуры для создания РИС автоматизации предприя­тия.
7.3. Технология активных объектов ActiveX
Технология активных объектов ActiveX создана ком­панией Microsoft. Данная платформа используется для по­строения программных компонентов, пригодных к использо­ванию из программ, написанных на разных языках програм-
57
мирования. ПО собирается из компонентов, функциональ­ность которых востребована для разработки проекта.
Технология предоставляет для разработки кода наборы стандартных библиотек. Она очень востребована в ОС семей­ства Microsoft Windows, но не привязана к ОС. Технология позволяет разнообразить страницы сетевого приложения Web эффектами мультимедиа, интерактивными объектами или сложными приложениями и обеспечивает механизмы, позво­ляющие отдельным программным компонентам на разных компьютерах объединяться в единую РС. Распространённый функционал ActiveX – это кнопки, списки, диалоговые окна и т.д.
Большое количество приложений для Microsoft Windows, в том числе разработки самой Microsoft (Internet
Explorer, Microsoft Office, Microsoft Visual Studio,Windows Media Player и др.), используют элементы ActiveX для реали-
зации необходимых функциональных возможностей и после­дующей инкапсуляции их в элементы ActiveX. Процесс ин- капсуляции служит для упаковки данных и/или функций в единый компонент. Создавать элементы ActiveX можно с по­мощью любого языка программирования, поддерживающего разработку компонентов COM: C++, Delphi, Visual Basic, .NET Framework (C#/VB.NET).
Элементы ActiveX очень похожи на технологии Java, позволяющие создавать прикладные программы - Java­апплеты, которые функционируют под любой платформой. Элементы ActiveX имеют узкую ориентацию на продукты Microsoft.
Технологию ActiveX необходимо применять с осто­рожностью, поскольку вместе с требуемыми элементами ActiveX можно установить с вебсайтов злоумышленников вредоносное ПО.
58
7.4. Технологии. Net Framework
Рассмотренные выше технологии предшествовали по­явлению Microsoft.NET Framework, дающей возможность скомпилированным приложениям на любой аппаратной платформе работать в среде Windows. .NET Framework, под­держивает следующие технологии РИС: очередь сообщений, объекты COM+, веб-сервисы, объекты .NET Remoting. В ос­нове платформы лежит среда Common Language Runtime (CLR), предназначенная для разных языков программирова­ния.
После компиляции программы создается файл, содер­жащий псевдокод или байт-код (не исполнительный файл). Псевдокод называется Microsoft Intermediate Language (MSIL) или Common Intermediate Language (CIL) и является промежуточным языком Microsoft.
CLR позволяет преобразовывать код MSIL в исполни­тельный код в процессе выполнения программы. Программа, скомпилированная в MSIL, может выполняться в любой сре­де, содержащей реализацию CLR.
7.5. Технология EJB
EJB (Enterprise JavaBeans) – это технология построе­ния РИС, которая предполагает, что достаточно программи­ровать лишь бизнес-логику приложения, а стандартные функции, например, обработка транзакций, должны выпол­няться на стороне сервера.
Конкурентами EJB являются RMI, CORBA, DCOM и другие технологии. EJB базируется на многих принципах CORBA. Существует стандарт отображения EJB на CORBA в контексте службы имен, управления транзакциями и безопас­ностью.
Технология EJB предназначена для разработки инфра­структуры для компонент, которые можно достаточно просто
59
«вставлять» и удалять из серверов. Эта программная плат­форма либо увеличивает, либо уменьшает возможности сер­верной части РИС.
Любая компонента в среде EJB выполняет свои функ­ции внутри контейнера, отделяющего её от ОС сервера. Пу­тем использования контейнера не только автоматически вы­деляется компонента, но и осуществляется управление под­держкой параллелизма, защиты, долговременного хранения, транзакционной обработки и других служб, предоставляемых приложениям со среды сервера.
Данная технология предоставляет большое число го­товых решений для разработки приложения.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]