Сообщений 0    Оценка 0        Оценить  
Система Orphus

Код к статье COM vs. CORBA


Источник: «Технология Клиент-Сервер»

Версия текста: 1.0.1

Для всех примеров CORBA нужно иметь правильно установленный VisiBroker. Для запуска примеров необходимо запустить VisiBroker SmartAgent, а затем - сервер CORBA.

Для запуска клиентских приложений на компьютере должны быть соответствующие run-time библиотеки. Все CORBA-примеры написаны на С++ Builder, поэтому, если у вас установлен С++ Builder, все run-time библиотеки у вас уже есть. Об установке этих библиотек можно прочесть в документации к соответствующим продуктам.

Для работы примеров СОМ+ вам понадобится в качестве сервера Windows2000 или любая другая Windows с установленным MTS. Для упрощения установки можно воспользоваться входящими в состав примеров СОМ+-приложениями, которые позволяют автоматически проинсталлировать все необходимые серверные файлы. Инсталляторы выполнены как MSI-файлы, новый формат инсталляционных файлов, введенный в Windows2000, и для их работы под другими версиями ОС требуется Microsoft Windows Installer версии 1.1 или выше. Эту версию можно взять из январского SDK или здесь (Windows Installer 1.1 для Windosw 9x и NT), здесь (Windows Installer 1.1 для Windosw 9x) или здесь (Windows Installer 1.1 для Windosw NT). Если Windows Installer уже установлен, достаточно просто запустить на выполнение соответствующий .MSI-файл.

В каждом приложении имеются два файла. Один из них имеет суффикс Proxy. Этот файл устанавливается на клиентских машинах. Другая часть (сервер) может быть запущена только на W2K. Если вы используете МТС с другой версией Windows, регистрировать приложения придется вручную. Внимательно прочтите комментарии, которые находятся в исходных файлах этих проектов. После инсталляции proxy необходимо заменить имя компьютера в COM+-приложении. Для упрощения инсталляции на нескольких компьютерах и на не W2K-компьютерах можно установить серверную часть на W2K-компьютере и самостоятельно сгенерировать proxy, выбрав опцию Export из контекстного меню приложения в консоли COM+ Services. При этом имя компьютера будет помещено в proxy, и на клиенте ничего изменять не придется.

ObjectsWithState.zip

Пример, демонстрирующий использование Naming Service в CORBA и реализацию аналогичной функциональности базовыми средствами СОМ.

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

Пример СОМ состоит из двух классов, находящихся в одной библиотеке, созданной на VC с использованием ATL, и клиентского приложения, написанного на VB. Один из классов создан как singleton, т.е. при попытке его создания всегда возвращается указатель на один и тот же экземпляр. Второй класс создается в трех экземплярах, указатели на которые помещаются в массив. Клиент вызывает метод первого объекта, передает ему номер объекта и получает указатель на нужную копию. Каждый экземпляр второго класса содержит счетчик, который (если классы правильно зарегистрированы) может быть увеличен любым клиентским приложением. Чтобы убедиться в работоспособности примера, запустите две копии клиентского приложения на разных машинах и понажимайте кнопки.

CORBA-приложение состоит из двух исполняемых модулей, клиентского и серверного. Сервер создает POA, три серванта и регистрирует три объекта.MyObject_1, MyObject_2 и MyObject_3. Клиентское приложение получат ссылку на эти объекты с помощью Naming Service.

PerfTest.zip

Это тест на производительность, результаты которого приведены в статье Тестирование CORBA и COM. Подробнее о нем можно узнать из комментариев в статье и в исходных текстах.

TypeInfo.zip

Этот пример демонстрирует передачу сложных типов данных через any в CORBA и VARIANT в СОМ. Клиенту передаются различные типы данных. Клиентское приложение динамически определяет описание типа данных, преобразует его в текстовое псевдоописание и выводит его вместе с самими данными.


Впервые статья была опубликована в журнале <Технология Клиент-Сервер>.
Эту и множество других статей по программированию, разработке БД, многоуровневым технологиям (COM, CORBA, .Net, J2EE) и CASE-средствам вы можете найти на сайте www.optim.su и на страницах журнала.
    Сообщений 0    Оценка 0        Оценить