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

2433

.pdf
Скачиваний:
5
Добавлен:
15.11.2022
Размер:
1.6 Mб
Скачать

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

6.3.2. Удаленный вызов процедур

Технология удаленного вызова процедур RPC (remote procedure call) разрабатывалась в середине 80-х годов прошлого столетия. Смысл этой технологии – использование промежуточной программной среды для вызова функции на удаленном компьютере по аналогии с вызовом функции на локальном компьютере.

Чтобы разобраться в сути технологии вспомним некоторые определения.

Процесс — это выполнение инструкций компьютерной программы на процессоре ЭВМ.

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

Процедура-заглушка – это фиктивная часть заменяемого фрагмента (модуля), которая удовлетворяет требованиям интерфейса, но не выполняет функций фрагмента (модуля), или выполняет их частично.

Процедура-заглушка используется для того, чтобы удаленный вызов происходил прозрачно, т.е. программист не замечал, откуда вызывается процедура. Клиентскому приложению для вызова процедура-заглушка (stub) предоставляется промежуточной средой.

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

50

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

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

Следует отметить, что в отличие от локального вызова. 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

Клиент

Клиентский процесс

Ссылка на посредника

Интерфейс удаленного

объекта

Посредник

Промежуточая среда

Сетевые службы ОС

Сервер

Клиентский процесс

Объект

Состояние объекта

Интерфейс удален-

ного объекта

Каркас

Промежуточная среда

Сетевые службы ОС

Канал

передачи

данных

 

Java Client

 

 

Java Server

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Client

 

 

RMI Registry

 

 

Server

Stub

 

 

 

 

Skeleton

 

 

 

 

 

Рис. 10. Использование удаленных объектов

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 (Distributed 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]