Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Компонентные модели для создания распределенных приложений



Функционирование обычной объектной программы реализуется через необходимую последовательность вызовов методов нестандартных классов, объявленных в этой программе, и вызовов методов стандартных классов используемого языка. Выполнение такой программы происходит в рамках локальной машины под управлением некоторой операционной системы. Возникает вопрос: нельзя ли расширить стандартную технологию на случай взаимодействия объектов разных программ, возможно находящихся на физически разных машинах с разными операционными системами? Приложения подобного типа, называемые распределенными, вызывают в последнее время все возрастающий интерес, и для их поддержки предложено несколько подходов, в том числе основанных на объектной технологии.

Наиболее часто в настоящее время для реализации распределенного взаимодействия объектов используются следующие технологии:

· технология COM/DCOM компании Microsoft, основанная на механизме удаленного вызова процедур RPC (Remote Procedure Call)

· технология Java RMI (Remote Method Invocation, удаленное обращение к методу)

· технология CORBA, определяющая способы удаленного взаимодействия объектов, созданных на любых языках и функционирующих на любых платформах (естественно, поддерживающих эту технологию)

· технология Web-сервисов (служб), использующая язык XML и стандартные протоколы Internet

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

Первая технология, в течение ряда лет продвигаемая корпорацией Microsoft, использует компонентную модель Component Object Model (COM), которая для распределенных приложений называется DCOM (Distributed COM). Создание таких приложений поддерживается как инструментами самой Microsoft (семейство Visual Studio), так и пакетами сторонних производителей (например, Borland Delphi). Технология COM определяет стандарты взаимодействия объектов разных приложений на двоичном уровне, т.е. независимо от языка, на котором эти приложения были созданы. Каждый COM-объект определяет один или несколько интерфейсов, описывающих набор функций, связанных с этим объектом. Все интерфейсы COM происходят от базового интерфейса IUnknown, в котором вводятся следующие фундаментальные понятия:

· Глобальный уникальный идентификатор (GUID), который присваивается каждому интерфейсу или компонентному классу; он представляет собой целое число длиной 16 байтов (128 разрядов), которое генерируется по специальному алгоритму, обеспечивающему практически стопроцентное их несовпадение для разных интерфейсов или классов; именно с помощью GUID организуется взаимодействие объектов в COM-технологии.

· Функция, которая определяет, поддерживает ли данный объект интерфейс с заданным в качестве параметра GUIDом; если поддерживает, то возвращается указатель на запрошенный интерфейс.

· Две функции для поддержки счетчика ссылок на некоторый интерфейс; одна функция увеличивает этот счетчик при запросе клиентом некоторого интерфейса, а вторая уменьшает счетчик при завершении использования интерфейса; тем самым каждый COM-объект может отслеживать время своего существования.

Объекты COM имеют еще одну интересную особенность: они создаются с помощью специальных объектов, называемых фабриками классов (class factories). Каждая такая фабрика поддерживает интерфейс IClassFactory, в котором объявляется важный метод CreateInstance, отвечающий за создание экземпляров-объектов COM.

Необходимо отметить, что перспективы дальнейшего развития этой технологии весьма неопределенны, поскольку сама компания Microsoft в настоящее время основной упор делает на технологию Web-служб.

Корпорация Sun Microsystems в рамках своей технологии Java предлагает набор специализированных классов, реализующих вызов удаленных методов (RMI, Remote Method Invocation). Технология RMI позволяет Java-объекту, созданному на одной машине, вызывать методы Java-объекта, существующего на другой машине, что и является основой построения распределенных приложений. Каждое распределенное приложение работает по схеме клиент-сервер, поэтому для его реализации надо в общем случае создать как клиентское, так и серверное приложение. При этом серверная часть включает в себя следующие составляющие:

· описание удаленного интерфейса, которое содержит заголовки всех методов, предоставляемых данным сервером своим клиентам; этот интерфейс описывается обычным образом и создается на базе стандартного интерфейса с именем Remote;

· реализация удаленного интерфейса, которая оформляется в виде класса, унаследованного от одного из стандартных классов;

· запускающая программа main().

Клиентское приложение оформляется в виде класса, содержащего метод main, в котором задаются необходимые параметры размещения сервера и создается объект типа удаленного интерфейса; с помощью этого объекта можно вызывать удаленные методы. Здесь важно еще раз подчеркнуть использование интерфейсных классов.

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

Еще одним заслуживающим внимания подходом в создании распределенных корпоративных приложений является технология CORBA (Common Object Request Broker Architecture, Общая архитектура брокера объектных запросов). Эта технология развивается группой независимых экспертов в области объектной технологии (Object Management Group). Согласно спецификациям, предложенным этой группой, на стороне клиента помимо самого приложения должны функционировать два специальных компонента – заглушка и брокер объектных запросов. Заглушка (stub) содержит один или несколько классов, представляющих сервер CORBA и содержащих открытые интерфейсы. Классы заглушки выполняют роль посредника при доступе к объектам сервера. Вместо прямого обращения к серверу клиентское приложение вызывает один из методов заглушки. Заглушка формирует специальный пакет, содержащий параметры вызова, и передает его на сервер. Этот процесс известен под термином маршалинг. Далее заглушка через брокер объектных запросов (ORB) выполняет вызов запрошенного метода сервера. При поступлении ответа выполняется обратный процесс с передачей результата клиенту. На стороне сервера также действует брокер объектных запросов, а также – ряд дополнительных компонентов. Поскольку основой технологии CORBA являются интерфейсы, разработан специальный язык описания интерфейсов. Еще одним интересным механизмом технологии CORBA является служба имен, которая позволяет регистрировать серверные объекты с целью их обнаружения клиентскими программами.

В завершение краткого обзора отметим наиболее востребованную в настоящий момент технологию Web-служб. Определить Web-службу можно следующим образом: это независимое приложение многократного использования, предоставляющее свои функции через Web-интерфейс. Реализация Web-служб основана на использовании следующих основных понятий:

· расширяемый язык разметки XML

· специальный протокол доступа к объектам SOAP (Simple Object Access Protocol)

· специальный язык описания Web-служб WSDL (Web Service Description Language)

· открытый системный реестр с информацией о доступных Web-службах (UDDI - Universal Description, Discovery and Integration)





Дата публикования: 2014-11-02; Прочитано: 786 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...