18.2. CORBA
Технология построения распределенных объектных приложений CORBA (Common Object Request Broker Architecture) является стандартом, принятым группой по управлению объектами (Object Management Group), который позволяет создавать приложения на различных платформах. Получить начальные сведения о технологии CORBA можно на Web-узле по адресу <http://www.corba.org/>. 
Поддержка CORBA в PHP первоначально содержалась в расширении Satellite. Эту реализацию поддержки по-прежнему можно брать и пользоваться ею из репози-тария PECL, но сейчас его использование постепенно заменяется на использование расширения Universe. В то время, когда писалась эта книга, Universe не являлся частью дистрибутива PHP, но его можно загрузить с Web-узла по адресу <http://universe-phpext.sourceforge.net/>. Расширение Universe базируется на реализации MICO (<http://www.mico.org/>), являющейся еще одним проектом операционной системы Linux.
Относительная новизна этого расширения затрудняет описание его функций, так как постоянно появляются новые функции и исчезают старые.
Расширение Universe создал Давид Эриксон (David Eriksson).
UniverseObject::UniverseObject(string ior)
Сущностью расширения Universe (листинг 18.5) является класс UniverseObject, который позволяет создать экземпляр CORBA-объекта в сценарии PHP. Для того чтобы создать CORBA-объект, необходимо знать его IOR-ссылку (Interoperable Object Reference, IOR). Эта длинная строка идентифицирует уникальным образом объект, сохраненный на удаленном сервере. После создания экземпляра UniverseObject разработчик получает возможность доступа к свойствам и методам объекта, как это бывает в случае с любым другим объектом.

| Листинг 18.5. Использование расширения Universe_
<?php
//определить IOR-ссылку
$ior = "IOR:000000000000000f49444c3a" .
"52616e6 46f6d3a312e3 0000000000001" .
"00000000000000500001000000000016" .
"7 06c616e7 8 74 7 92e6 4 73 6 72e6 3 732e74" .
"63642e6 96500062200000 02c3a5c7 06c" .
"616e7874792e64736 72e63732e746364" .
"2e6 96 53a52616e646f6d3a3 03a3a4 952" .
"3a52616e646f6d00"; // создать экземпляр объекта $corba = new UniverseObject($ior); // получить случайное число $value = $obj->lrand48(); print("Случайное число: $value<br>"); //получить IOR- ссылку
print("IOR: " . universe_object_to_string($corba) . "<br>");
?>

string universe_object_to_string(object corba)
Эта функция предназначена для выборки IOR-ссылки для заданного CORBA-объекта.