Продолжается подписка на наши издания! Вы не забыли подписаться?

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

Для всех примеров CORBA нужно иметь правильно установленный VisiBrocker. Для запуска примеров необходимо запустить VisiBrocker 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) или здесь (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 в СОМ. Клиенту передаются различные типы данных. Клиентское приложение динамически определяет описание типа данных, преобразует его  в текстовое псевдоописание и выводит его вместе с самими данными.


Copyright © 1994-2016 ООО "К-Пресс"