средство, а также летательный аппарат, который имеет по крайней мере два крыла. Семантические сети используются для представления знаний, необходимых в ПО принятия решений.
Использование службы имен и создание именных контекстов
При выполнении строки 22 серверная про
CORBA::Object_var NameService =Orb->resolve_initial_references(«NameService»);
Помимо получения объектных ссылок на хранилище реализаций (Implementation Repositoiy) и хранилище интерфейсов (Interface Repositoiy), метод ORB-объекта resolve_initial_references() используется
CosNaming::NamingContext_var NamingContext =
CosNaming::NamingContext::_narrow(NameService);
При таком подходе мы получаем начальный именной контекст, который играет роль контекста, действующего по умолчанию. Обнаружив службу имен и создав начальный именной контекст, серверная программа может добавлять в контекст пары (связывания по имени) «имя/объектнал ссылка». Имена могут представлять собой объекты доменов или другие контексты. Чтобы добавить в контекст пару «имя/объектная ссылка», необходимо сначала создать имя. Имена реализуются в стандарте CORBA посредством структуры NameComponent.
struct NameComponent { //.. .
Istring_var id;
Istring_var kind;
}
В CORBA-реализации MICO структура NameComponent объявляется в файле CosNaming. h. Структура NameComponent содержит два атрибута: id и kind. Первый атрибут используется для хранения текста имени, а второй представляет собой идентификатор, который можно использовать для классификации объекта, например так.
//...
CosNaming::Name ObjectName;
ObjectName.length(1);
ObjectName.id = Corba::string_dup (' train») ;
ObjectName.kind=Corba::string_dup(«land_transportation»);
NamingContext->bind(ObjectName,ObjectReference) ;
//...
Здесь объяв
Детали инсталляции и функционирования службы и
// Листинг 8.5. Сценарий внесения записи в хранилище
// реализаций и запуска службы имен
//
micod -ORBIIOPAddr inet:hostname:portnumber —forward &
imr create NameService poa 'which nsd* IDL:omg.org/CosNaming/
NamingContext:1.0#NameService
-ORBImplRepoAddr inet:hostname:portnumber -ORBNamingAddr inet:hostname:hostname:portnumberportnumber
imr create permutation persistent ''pwd'/permutation_server -ORBImplRepoAddr inet:hostname:portnumber
-ORBNamingAddr inet:hostname:portnumber» IDL:permutation:1.0 -ORBImplRepoAddr inet:hostname:portnumber -ORBNamingAddr inet:hos tname:portnumber
imr activate permutation -ORBImplRepoAddr inet:hostname:portnumber
-ORBNamingAddr inet:hostname:portnumber
Этот сценарий можно использовать в сочетании с кодом сервера, приведенным в программе 8.3. Приведенный здесь сценарий реально позволяет автоматически запустить программу-сервер permutation_server. Обратите вни
Служба имен «потребитель-клиент»
Программа 8.3 связывает имя объекта с именным контекстом. Программа 8.4 содержит текст
