380
лучив сообщение, отыскивает сетевой адрес сервера и передаёт запрос
брокеру, размещённому на машине сервера. Вызов требуемого объекта
производится через специальный базовый объектный адаптер (BOA).
При этом данные в стек пространства вызываемого объекта помещает
особый объект сервера (Skeleton), вызываемый адаптером.
Кроме того, CORBA помимо механизма взаимодействия с помо-
щью ORB, включает в себя ряд общих служб CORBA Services (служба
каталогов, защиты, оповещения о событиях, поддержки транзакций и
ряд других), а также реализаций объектов для разных прикладных об-
ластей.
Ключевым компонентом архитектуры CORBA является язык опи-
сания интерфейсов IDL, на уровне которого поддерживаются «кон-
трактные» отношения между клиентом и сервером и обеспечивается не-
зависимость от конкретного объектно-ориентированного языка. CORBA
IDL поддерживает основные понятия объектно-ориентированной пара-
дигмы (инкапсуляцию, полиморфизм и наследование).
В модели DCOM также может использоваться разработанный
Microsoft язык IDL, который, однако, играет вспомогательную роль и
используется в основном для удобства описания объектов. Реальная ин-
теграция объектов в DCOM происходит не на уровне абстрактных ин-
терфейсов, а на уровне бинарных кодов, и это одно из основных разли-
чий этих двух объектных моделей.
И DCOM, и CORBA, в отличие от процедурного RPC, дают воз-
можность динамического связывания удалённых объектов: клиент мо-
жет обратиться к серверу-объекту во время выполнения, не имея инфор-
мации об этом объекте на этапе компиляции. В CORBA для этого суще-
ствует специальный интерфейс динамического вызова DII, а СОМ ис-
пользует механизм OLE-Automation. Информацию о доступных объек-
тах сервера на этапе выполнения клиентская часть программы получает
из специального хранилища метаданных об объектах – репозитария ин-
терфейсов Interface Repositary в случае CORBA, или библиотеки типов
(Type Library) в модели DCOM. Эта возможность очень важна для
больших распределённых приложений, поскольку позволяет менять и
расширять функциональность серверов, не внося существенных измене-
ний в код клиентских компонентов программы. Например, банковское
приложение, основная бизнес-логика которого поддерживается сервером
в центральном офисе, а клиентские системы разбросаны по филиалам в
разных городах.
Доступ к данным с помощью ADO.NET
ADO.NET является преемником Microsoft ActiveX Data Objects
(ADO). Это W3C-стандартизированная модель программирования для
создания распределённых прикладных программ, нацеленных на совме-
стное использование данных.