Главная » Java, Web, XML » Программный интерфейс UDDI

0

Клиент обращается к UDDI-реестру для того, чтобы зарегистрировать свою Web-службу, изменить ее, или для того, чтобы отыскать нужную Web- услугу. Реестр предоставляет необходимый для этого интерфейс. Функции, входящие в UDDI API, можно разделить на четыре группы:

?         регистрация Web-службы и ее последующие изменения выполняются функциями вида save_xxx;

?           описание Web-службы можно получить функциями видаget_xxxDetails;

?           для поиска Web-службы применяются функции вида f ind_xxx;

?           услуга удаляется ФУНКЦИЯМИ ВИДа delete_xxx.

Здесь под символами "ххх" понимается тип объекта, например, "business", "service", "binding" или "tModel".

Хотя спецификация UDDI и называет объекты, входящие в состав API, "функциями", на самом деле это элементы XML. То, что спецификация называет "аргументами функций" — это атрибуты открывающих тегов или вложенные элементы XML. В дальнейшем мода на XML может пройти, и UDDI API можно будет реализовать функциями языка С или методами языка Java, или чем-нибудь более модным.

Клиент реестра UDDI оформляет запрос в виде элемента XML, например, поиск Web-услуги по имени может выглядеть так:

<find_service businessKey="" generic="3.О" xmlns="urn:uddi-org:api_v3">

<name>Meteo Service</name> </find_service>

Этот элемент помещается в тело SOAP-послания и отправляется Web- службе, обслуживающей реестр UDDI. Она отыскивает все Web-службы с именем "Meteo Service" и посылает клиенту их ключи UUID в SOAP- послании, содержащем список найденных Web-служб в элементе <serviceList>, например: <serviceList generic="3.0" operator="HP" truncated^"false" xmlns="urn:uddi-org:api_v3">

<service!nfos>

<serviceInfo serviceKey="7cl9ab87-lbc5-4fb6-841b-a414 9a802a71" businessKey="">

<name xml: lang="en">Meteo Service</name>

</serviceInfo> </serviceInfos> </serviceList>

Функции API делятся на две группы:

?         Inquiry API — функции, запрашивающие информацию в реестре;

?         Publish API — функции, регистрирующие Web-службу, удаляющие ее из реестра или изменяющие информацию о ней.

Рассмотрим подробнее состав каждого API.

Функции запроса информации

В состав Inquiry API входят 9 функций — элементов XML, отыскивающих информацию в реестре. У них может быть три необязательных атрибута:

?         атрибут serviceKey содержит ключ UUID того элемента реестра, в котором следует производить поиск;

?         атрибуттахЯоыз ограничивает число строк, возвращаемых функцией;

? атрибут listHead задает номер пункта, с которого надо начать возвращаемую информацию.

У многих функций есть аргумент (вложенный элемент) <findQualifiers>. Он задает условия поиска, например, можно запросить сортировку результата поиска вложенными элементами <binarySort>, <caseSensitiveSort>, <caseInsensitiveSort>, <sortByNameAsc>, <sortByNameDesc>, <sortByDateAsc>, <sortByDateDesc>.

Перечислим функции Inquiry API.

?         Функция find_business отыскивает элементы <businessEntity> С ПО- ЖЩЮ элементов (аргументов) <authinfo>, <categoryBag>, <discoveryURLs>, <identifierBag>, <name>, <findQualif iers>,

<tModelBag>. Результат поиска — найденные элементы          — отправляется клиенту в элементе (SOAP-структуре) <businessList>.

?         Функция find_relatedBusinesses ищет бизнес-информацию О фирмах, связанных с фирмой, указанной в запросе, аргументами <findQualifiers>, <keyedreference>, ОДНИМ ИЗ трех элементов <fromKey>, <toKey>, <businessKey>. Результат поиска возвращается клиенту В элементе <relatedBusinessesList>.

•          Функция findservice отыскивает элементы <businessService> по признакам <authInfo>, <categoryBag>, <name>, <findQualifiers>, <find tModel>, <tModelBag>. Результат поиска возвращается в элементе

<serviceList>.

•          Функция find_binding осуществляет поиск элементов <bindingTemplate> по признакам, указываемым вложенными элементами (ар1ументами функции) <authInfo>, <categoryBag>, <findQualifiers>, <find_tModel>, <tModelBag>. Результат поиска, то есть найденные элементы <bindingTeitiplate>, возвращается в элементе (SOAP-сгрукгуре) <bindingDetail>.

•          Функция                                 ищет элементы                           по признакам, указанным элементами <authinfo>, <categoryBag>, <identifierBag>, <name>, <findQualif iers>. Результат возвращается в элементе <tModelList>.

•         Функция get_businessDetail отыскивает элементы <businessEntity> по аргументу businessKey, содержащему ключи UUID отыскиваемых элементов. Она отсылает клиенту структуру <businessDetail>.

?        Функция get_serviceDetail ищет элементы <businessservice> ПО аргументу serviceKey, содержащему ключи UUID отыскиваемых элементов. Она отсылает клиентуструктуру < serviceDetail>.

•         ФуНКЦИЯ get_bindingDetail ОТЫСКИВаеТ элементы <bindingTemplate> по аргументу bindingKey, содержащему ключи UUID отыскиваемых элементов. Она отсылает клиенту структуру

•          Функция get _tModelDetail осуществляет поиск элементов <tModel> по аргументу tModeiKey, содержащему ключи UUID отыскиваемых элементов. Она отсылает клиенту структуру

•         Функция get_operationalInfo ищет элементы <operationalInfo> ПО аргументу entityKey, содержащему ключи UUID отыскиваемых элементов. Она отсылает клиенту структуру

Литература:

Хабибуллин И. Ш. Разработка Web-служб средствами Java. — СПб.: БХВ-Петербург, 2003. — 400 с: ил.

По теме:

  • Комментарии