3.5.3 Брокерные архитектуры (CORBA, DCOM)
На сегодняшний день в инженерии программного обеспечения существует
2 основных подхода к разработке программных систем. Первый подход
называют функционально-модульным или структурным, в основу которого
положен принцип алгоритмической декомпозиции, когда выделяются
функциональные элементы системы и устанавливается строгий порядок
выполнения действий. Второй, объектно-ориетированный подход использует
объектную декомпозицию. При этом поведение системы описывается в
терминах взаимодействия объектов.
Можно отметить, что главным стимулом к созданию распределенных систем стало
появление персональных компьютеров и коммерциализация Интернета. Одной из
первых, объединенных в рамках отрасли попыток по созданию стандартов
распределенных систем, была предпринята в конце 80-х, когда была образована
организация Distributed Computer Environment (DCE), но она не получила широкой
поддержки. Следующим шагом по созданию инфраструктуры распределенных
вычислений стала инициатива Common Object Request Broker Architecture (CORBA),
предложенная консорциумом Object Management Group (OMG), который в
соответствии со своим названием был сосредоточен на объектном подходе к кросс-
платформенным приложениям. Microsoft на появление CORBA ответила компонентной
объектной моделью Component Object Model (COM) и ее распределенной версией
DCOM. Впрочем, и то, и другое решения уступают инициативе DCE по возможности
масштабирования. Архитектуры CORBA и DCOM создают иллюзию превращения сети
однородных компьютеров в единый образ машины, в которой обмен между
приложениями осуществляется на уровне объектов. Средствами CORBA и DCOM
строится программное обеспечение промежуточного слоя, независимое от
операционных систем и от языков программирования. Специфической чертой обеих
технологий является наличие простой схемы обнаружения нужных для выполнения
объектов; для этой цели объектам присваиваются идентификаторы, а CORBA еще
дополнительно поддерживает описание служб, предоставляемых объектами. Примерно
такой же функциональностью обладает Java RMI (Sun Microsystems), с поправкой на
нейтральность по отношению к аппаратным платформам, обеспечиваемую
виртуальной машиной Java; интерфейс Java Native Interface служит для расширения
языковых возможностей.
Будучи распределенными, архитектуры CORBA и DCOM относятся к категории
«жестко связанных» систем: каждая из архитектур имеет собственную систему
двоичного кодирования сообщений. Объекты и методы действуют в рамках своей
архитектуры, объект из CORBA не может вызвать метод из DCOM и наоборот.
Для того чтобы снять ограничения на масштабирование, приложения, являющиеся
компонентами системы, должны быть «слабо связанными». Впервые идея объединения
компонентов в систему посредством служб приобрела привлекательность на
аппаратном уровне, когда стали появляться более интеллектуальные и во все большей
степени самоуправляемые устройства, способные предоставлять услуги другим
устройствам. Виртуализация устройств, реализуемая при таком подходе, позволяет
перевести пользование физическими устройствами в обращение к виртуальным