Связующее программное обеспечение, основанное на объектах

Давайте теперь рассмотрим третью парадигму. Вместо того чтобы утверждать, что все относится к документам или все относится к файлам, мы скажем, что все относится к объектам. Объект (object) — это коллекция взаимосвязанных переменных с набором процедур доступа, называемых методами (methods).
Непосредственный доступ процессов к переменным запрещен. Он заменен для них вызовами методов.

Некоторые языки программирования, к примеру C++ и Java, являются объектноориентированными, но они имеют дело с объектами на уровне языка, а не с объектами времени исполнения. Одной из хорошо известных систем, основанных на объектах времени исполнения, является CORBA (Common Object Request Broker Architecture — общая архитектура посредников запросов к объектам) (Vinoski, 1997). CORBA является клиент-серверной системой, в которой клиентские процессы на клиентских машинах могут вызывать операции над объектами, размещенными на серверных машинах (возможно, удаленных). CORBA была разработана для разнородной системы, работающей на множестве аппаратных платформ и операционных систем и программируемой на множестве языков. Чтобы клиент, работающий на одной платформе, мог вызвать сервер, работающий на другой платформе, между клиентом и сервером вставляются посредники, ORB (Object Request Broker — посредник запросов к объектам). Посредники ORB играют в архитектуре CORBA весьма важную роль, о чем говорит даже то, что эта аббревиатура дала название самой системе.

Описание каждого CORBA-объекта дается на языке определения интерфейса IDL (Interface Definition Language) и сообщает об экспортируемых объектом методах и ожидаемых каждым из методов типах параметров. Спецификация IDL может быть откомпилирована в клиентскую процедуру-заглушку и хранится в библиотеке. Если клиентскому процессу заранее известно, что ему потребуется доступ к определенному объекту, этот объект компонуется вместе с объектным кодом клиентской заглушки. Спецификация IDL также может быть откомпилирована в скелетную (skeleton) процедуру, используемую на серверной стороне. Если заранее нельзя сказать, какие объекты CORBA понадобятся процессу, возможно также применение динамического вызова, описание работы которого выходит за рамки данной книги.

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

Чтобы вызвать метод объекта, клиентский процесс сначала должен получить ссылку на этот объект.

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

Задача ORB-посредников состоит в том, чтобы скрыть все низкоуровневые подробности распределения и связи от программ клиента и сервера. В частности, ORB- посредники скрывают от клиента, где находится сервер, что на нем работает — двоичная программа или сценарий, на каком оборудовании и под управлением какой операционной системы он работает, активен ли объект в настоящий момент и как два ORB- посредника обмениваются данными (посредством TCP/IP, RPC, общей памяти и т. д.).

В первой версии системы CORBA протокол обмена между клиентским и серверным ORB-посредниками не был определен, в результате чего каждый производитель ORB- посредников использовал собственный протокол и продукты двух разных производителей не могли общаться друг с другом. Протокол был определен в версии 2.0. Для связи через Интернет используется протокол, называемый IIOP (Internet InterORB Protocol — протокол для связи между ORB-посредниками по Интернету).

Чтобы получить возможность использования в CORBA-системах объектов, которые специально под них не создавались, каждый объект может быть оснащен адаптером объекта (object adapter). Это оболочка, занимающаяся такими рутинными операциями, как регистрирование объекта, генерирование ссылок на объект и активация объекта, если он вызывается из неактивного состояния. Расположение всех этих составных частей CORBA показано на рис. 8.35.

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

Рис. 8.35. Основные элементы распределенной системы на основе CORBA (части CORBA закрашены серым цветом)


8.3.6.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Связующее программное обеспечение, основанное на объектах:

  1. Программное обеспечение
  2. Богомазова Г.Н.. Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования, 2015
  3. Эд САЛЛИВАН. ВРЕМЯ — ДЕНЬГИ Создание команды разработчиков, программного обеспечения, 2001
  4. Том ДеМарко. Вальсируя с Медведями Управление рисками в проектах по разработке программного обеспечения, 2005
  5. Алистэр Коуберн. Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения, 1999
  6. ГЛАВА 9 ИНФОРИХ ОБЕСПЕЧЕНИЯ КАК ОБЪЕКТЫ ИНФОРМАЦИОННЫХ ПРАВООТНОШЕНИЙ
  7. 3.7. Педагогическое проектирование — связующее звено педагогической теории и практики
  8. 7. Выводы, основанные на эмоциях
  9. НА ЧЕМ ОСНОВАН МЕТОД «КЛЮЧ».
  10. Технологии, основанные на содержании работ.
  11. НА ЧЕМ ОСНОВАН МЕТОД «КЛЮЧ».
  12. 2.4.1. Программный анализатор
  13. КОНЦЕПЦИЯ ПРОГРАММНО - РОЛЕВАЯ
  14. Перевод программных вопросов в анкетные
  15. 2.4.1. Программный анализатор
  16. § 2. Участие в гражданском договоре субъектов, основанных на государственной или муниципальной собственности
  17. Прием выводов и оценок, основанных на длительном наблюдении за группой.
  18. Глава 39 О ПРОГРАММНЫХ СВОЙСТВАХ ХУДОЖЕСТВЕННОЙ ЛИТЕРАТУРЫ
  19. § 4 Виды обязательств. – Обоюдные и односторонние. – Безмездные и возмездные. – Договоры, на риске основанные. – Ясные и неясные требования.