ПОДХОД К ПОСТРОЕНИЮ ИНТЕРФЕЙСА КОМПОЗИЦИИ ВЕБ

advertisement
УДК 004.434
ПОДХОД К ПОСТРОЕНИЮ ИНТЕРФЕЙСА КОМПОЗИЦИИ ВЕБ-СЕРВИСОВ
НА ОСНОВЕ СЕМАНТИЧЕСКИХ ОПИСАНИЙ
В.В. Климов, П.А. Шапкин, В.П. Климов, Л.Д. Шумский
Рассматриваются модели и методы, использованные при разработке системы поиска веб-сервисов на основе их
семантических описаний в формате OWL-S. Особенностью системы является возможность построения композиций
веб-сервисов. Особое внимание уделяется созданию интерфейса системы: в его основе лежит специально разработанный язык преобразования данных в формате RDF на основе веб-онтологий
Ключевые слова: семантический веб, веб-сервисы, композиция, шаблоны, стандарт OWL-S
1
В течение последних лет наблюдается
процесс роста объема информации, представленной во всемирной паутине. Отсутствие
формализованных механизмов машинной интерпретации данных, т. е. представления их семантики, затрудняет поиск требуемой информации и взаимодействие отдельных систем.
Этой проблемой серьёзно занимается авторитетная организация Консорциум Всемирной
паутины (англ. World Wide Web Consortium,
W3C), разрабатывающая и внедряющая технологические стандарты для мировой сети. В настоящее время многие специалисты в области
информационных технологий связывают успешное развитие интернета с концепцией семантического веба (Semantic Web) [1]. Её суть
— превратить информационное пространство
сети в пространство метаданных, то есть данных о данных. Основная идея этой концепции
есть обеспечение машинной обработки информации с учетом её смысла (семантики) за счет
использования при представлении данных языка RDF (Resource Description Framework), отличающегося наличием формальной семантики.
Для достижения однозначности интерпретации
данных различными системами, схемы данных
представляется в виде веб-онтологий — явных
спецификаций концептуализаций предметных
областей [2]. Обычно для описания вебонтологий используется язык OWL (Ontology
Web Language).
В концепции семантического Интернета
предлагается использовать веб-службы с целью
Климов Валентин Вячеславович - НИЯУ МИФИ, аспирант, e-mail: valgloom@mail.ru
Шапкин Павел Александрович - НИЯУ МИФИ, ассистент,
e-mail: p.shapkin@gmail.com
Климов Вячеслав Павлович - НИЯУ МИФИ, ст. преподаватель, e-mail: vpklimov@mephi.ru
Шумский Леонид Дмитриевич - НИЯУ МИФИ, студент,
e-mail: shumskyld@gmail.com
достижения необходимой динамики. В литературе встречается и другое название — вебсервисы. Использование этой технологии в
рамках сервис-ориентированной архитектуры
наиболее обосновано по причине автономности
веб-сервиса, а также существенного сокращения времени разработки программных продуктов при сборке их из готовых компонентов, а не
написания системы с нуля. Веб-сервисы и есть
та надстройка, благодаря которой семантическую сеть считают динамической. В семантической паутине предлагается описывать вебсервисы с помощью особых языков, таких как
OWL-S. В отличие от стандартного языка описания веб-сервисов WSDL, позволяющего описывать сервисы только с т. з. типов данных
входов и выходов, указанные языки позволяют
представлять семантику выполняемых сервисом операций. Данная возможность достигается
за счет использования языков RDF и OWL. Наличие семантического описания позволяет автоматизировать поиск сервисов, а так же упростить их «понимание» внешними системами.
Например, если для выполнения пользовательского запроса необходимо выполнение не одного, а некоторой группы связанных сервисов
— композиции сервисов, построение такой
композиции может быть автоматизировано.
Целью данной работы является создание
системы поиска веб-служб на основе их описаний, представленных в формате OWL-S. Особенностью разрабатываемой системы является
возможность построения композиций вебслужб [3]. При построении интерфейса системы
был использован специально созданный язык
преобразования RDF-данных на основе OWLонтологий [4].
Данная статья состоит из четырех разделов: первый раздел посвящен сравнению разработанной системы с аналогами; во втором разделе описывается формализация семантических
описаний веб-сервисов и их композиций; в
третьем разделе вводится функция вычисления
результата выполнения заданной композиции
веб-сервисов; в четвертом разделе описываются
механизмы и правила отображения процессов и
композиций.
1. Обзор и сравнительный анализ с
аналогичными моделями, методами и
программными системами.
Поиск веб-сервисов, соответствующих запросу пользователя, является открытой и актуальной задачей. Однако, большинство современных работ по данной проблематике, ориентированных как на синтаксическое, так и на
семантическое описание сервисов, фокусируются на поиске сервиса с точным соответствием запросу, что не всегда возможно. Существует несколько предложений объединения синтаксических и семантических свойств сервисов [2]. С одной стороны, они основаны на
улучшении существующих синтаксических
техник обнаружения, а с другой - на семантическом расширении сервисных запросов. Такое
расширение, в свою очередь, может быть достигнуто различными методами: генерированием сервисных описаний на естественном языке
[6], генерированием запросов с использованием
комбинаций синонимов параметров [7] и т.д.
Однако, большинство этих подходов учитывают только прямое соответствие между входами,
выходами, предусловиями и эффектами, либо
требуют построения семантических реестров
UDDI [2]. В первом случае существенно
уменьшается множество потенциально пригодных сервисов, а в последнем — появляется нескольких миллионов семантических расширений запросов.
Для того чтобы интеграция сервисов стала
возможной, необходимо гарантировать семантическое взаимодействие сервисных интерфейсов. Одним из возможных способов решения данной проблемы является реализация алгоритма поиска с использованием технологий
семантических описаний веб-сервисов на основе нотации OWL-S (Web Ontology Language for
Web-Services), разработанной консорциумом
W3C. В статьях [5, 9] предложен подход к обнаружению похожих сервисов с неполной информацией, основанный на расширениях OWLS описаний сервиса клиента, используя онтологии предметной области. Основным недостатком данного подхода являются избыточные
базы сгенерированных расширенных описаний,
которые необходимо хранить и обрабатывать.
Кроме того, никак не решается задача возможной противоречивости сгенерированных сервисных описаний при условии того, что в онто-
логиях предметной области могут по-разному
описываться одни и те же понятия.
Возможность компоновки часто рассматривают как одно из основных преимуществ
Web-сервисов. Компоновка Web-сервиса состоит из нахождения набора атомарных сервисов, необходимых для реализации запроса
пользователя, и определения порядка их выполнения. Для автоматической компоновки
программы должны уметь отбирать нужные им
Web-сервисы и комбинировать их для достижения своих целей. Таким образом, можно
строить совершенно новые сервисы, комбинируя сервисы, уже имеющиеся в сети. Информация, содержащаяся в реестре UDDI, недостаточна для того, чтобы автоматически выполнить компоновку Web-сервисов, так как необходимы усилия человека для интерпретации
семантики этих сервисов. Поэтому в последние
время активно идет разработка механизмов для
отображения семантики веб-сервисов. Одним
из таких механизмов является отображение
сервиса в виде графа по стандарту OWL-S.
2. Формализация семантических описаний веб-сервисов и их композиций.
Семантические веб-сервисы — программные системы с однозначно описанной
семантикой, доступные через интернет и пригодные для автоматизированного поиска, композиции и выполнения с учетом их семантики.
Связь семантических веб-сервисов с другими
технологиями представлена на рисунке.
Переход к семантическим веб-сервисам
Концепция веб-сервисов подразумевает,
что отдельные веб-сервисы обладают определенной ограниченной функциональностью. Для
решения более-менее сложных задач часто требуется использовать функциональность нескольких сервисов. Поэтому в ходе развития
архитектуры веб-сервисов возникли понятия
«композиция веб-сервисов» и «поток вебсервисов». Эти понятия отражают взаимодействие сервисов и последовательность их вы-
полнения. Т.е. для реакции на сложные запросы
стоит задача комбинирования обращений и получения ответа от нескольких сервисов.
Задача построения композиции вебсервисов представляет собой набор взаимосвязанных этапов по извлечению и последующей
обработке имеющейся о веб-сервисах информации из их описаний. Целью этой задачи является создание нового описания, в котором
будет содержаться набор операций, соответствующих веб-сервисам, входящим в композицию. Рассмотрим теоретическую сторону вопроса. Введем следующие базовые понятия.
Процесс — последовательный набор инструкций после выполнения которых достигается
конечный результат. Любой процесс может
быть описан тройкой вида I,P, R , где I –
множество входов, P – множество предусловий, а R – множество результатов. Множества
I и P входов и предусловий процесса представляют собой набор значений и их типов, на
основании которых процессом формируется
множество результатов выполнения. Множество R при этом представимо в виде двойки
, где O – множество выходов, а E –
множество эффектов процесса.
Будем говорить, что на множестве процессов задана функция получения описаний процессов descr : C → I ×O × P × E . Введем
вспомогательные функции inp(C), out(C),
pre(C), eff(C) которые будут возвращать нам
входы, выходы, предусловия и эффекты процесса
C
соответственно.
(Например:
inp<i,o,p,e> = i).
Атомарным процессом A сервиса S будем
называть неразделимый процесс, для которого
существует функция descr(A) = I A ,OA ,PA ,E A ,
O,E
где
IA
— множество входов A,
OA
— множе-
ство выходов А, а PA и E A — множества предусловий и эффектов соответственно. Атомарный процесс не имеет подпроцессов и напрямую связан с основанием веб-сервиса. Абстрактная структура, связанная с атомарным процессом, но при этом не связанная с конкретной
реализацией называется простым процессом.
Простой процесс служит для абстрагирования и
инкапсуляции.
Составным процессом C сервиса S будем
называть процесс, полученный путем применения функции композиции, для которого существует функция descr(C) , возвращающая
описание
процесса
в
виде
descr(C) = IC ,OC ,PC ,EC .
Составной
процесс может быть получен путем применения композиционных операций, описанных далее, и состоит из атомарных и простых процессов, которые впоследствии могут быть выполнены в среде.
Строго говоря, составной процесс можно
называть композицией сервисов. Композиционный сервис обладает теми же входами и выходами, что и составной процесс в него входящий.
Таким образом, для создания теоретической основы построения описаний композиций
веб-сервисов достаточно будет разработать модель, описывающую построение описаний составных процессов. Будем подразделять композицию простых и атомарных процессов на
следующие типы — последовательная, неупорядоченная, параллельная, выборочная, условная. Схемы композиций различных типов приведены в таблице.
3. Функция вычисления результата
выполнения заданной композиции вебсервисов.
Зададим теперь функцию композиции:
F :C ×C → C . Эта двуместная функция
отображает процессы C1 и C2 в новый составной процесс, то есть в общем виде
descr(F(C1 ,C 2 )) ∈ I ×O × P × E . Пусть
заданы некие множества входов — I, выходов
— O, предусловий — P и эффектов — E и
множество атомарных процессов A. Тогда декартово произведение этих множеств будет определять множество описаний атомарных процессов А, то есть descr ∈ A → I × O × P × E
(запись вида A → B означает множество
функций из A в B ).
При этом входом называется элемент вида
i = id , value , где id — идентификатор входа,
value — значение входа. Элементом такого вида может быть не только вход, но и выход, предусловие и эффект. Ограничения, накладываемые на входы и выходы композируемых сервисов, указаны в таблице.
4. Методы и правила отображения
описаний процессов.
При использовании OWL-S как основной
технологии для записи информации о вебсервисе, остро встает вопрос построения интерфейса системы, т. к. на сегодня не существует общепринятых либо стандартизованных
технологий разработки веб-ориентированных
систем, использующих в своей основе языки
RDF и OWL.
Одной из основных задач, решаемых при
разработке интерфейса рассматриваемой системы, является задача отображения сервисов,
получаемых в результате композиции. В первую очередь это связано с тем, что описания
процессов, попавших в композицию, находятся
в различных онтологиях и просмотр их может
быть довольно затруднителен. Кроме того, просмотр всех зависимостей для всех процессов,
вошедших в композицию, также может быть
затруднен, т. к. каждый процесс может ссылаться на неограниченное число онтологий.
Необходимо отметить, что OWL-S описание сервиса представляет собой RDF-документ,
связанный с набором веб-онтологий: все процессы, а также их входы, выходы, предусловия
и эффекты являются индивидами классов (или
концептов) онтологий, а значит, для отображения составного процесса необходимо решить
задачу отображения индивидов онтологии.
В то время как язык RDF, обладающий
стройной формальной семантикой, пришел на
смену языку XML, предоставлявшему стандартизованный синтаксис описания данных, языки
преобразования XML-данных, такие как XSLT
[10], не имеют аналогов для RDF. На данный
момент не существует способов преобразования данных, представленных в формате RDF, с
учетом связанных с ними веб-онтологий. Привлекательность языка XSLT состоит в его
структурированности. Все XSL-преобразования
описываются в виде набора шаблонов, каждый
из которых отвечает за преобразование XMLэлементов определенного типа. Построим подобный язык, ориентированный на преобразование RDF-документов.
Введем основные понятия.
Шаблоном называется пара из некоторого
входного типа (concept) и функции (execute), из
входного типа в выходной. Набор уникальных
шаблонов является шаблонной системой (TS).
В данном случае будем считать, что
класс онтологии, а
∀t ∈ TS ⇒ t .concept
t.execute — функция из индивида онтологии в
Типы композиций.
Тип композиции,
обозначение
Последовательная,
Схема
Выражения для описаний
композиций
<inp(C1), out(C2), pre(C1), eff(C2)>
∀i ∈ inp(C2 ) ∃j ∈ out(C1 ) :
type(i ) ⊆ type( j )
<inp(C1), out(C2),pre(C1), eff(C2)>=
<inp(C2), out(C1),pre(C1), eff(C2)>
out (C1 ) = inp(C2 )
F→ (C1 ,C 2 )
Неупорядоченная,
F∆ (C1 , C2 )
Параллельная,
F↑↓ (C1 , C2 )
F• (C1 , C2 )
Условная,
Fif (C1 , C 2 , cond )
out (C2 ) = inp(C1 ) , при этом
<inp(Ck), out(Ck), pre(Ck), eff(Ck)>
для k = 1,2
<inp(C1) U inp(C2), out(C1)U out(C2),
pre(C1) U pre(C2), eff(C1) U eff(C2)>
type(i ) = type(o)
inp(C) = inp(C1 ) ∪ inp(C2 ),
out(C) = out(C1 ) ∪ out(C2 ) ,
pre(C ) = pre(C1 ) U
∪ pre(C2 ), eff (C) =
eff (C1 ) ∪ eff (C2 )
inp ( C 1 ) = inp ( C 2 ),
out ( C 1 ) = out ( C 2 )
Нет
<inp(C), out(C), pre(C), eff(C)>
Цикличная,
F↵ (C , cond )
и
∀i ∈ inp(C1 )∃o ∈ C2 :
<inp(C1) U inp(C2),out(C1) U out(C2),
pre(C1) U pre(C2), eff(C1) U eff(C2)>
Выборочная,
Ограничения
Нет
выходной тип.
Правильно построенная система шаблонов (ППШС) — в правильно сформированной системе концепты шаблонов должны образовывать нижнюю полурешетку.
Для того чтобы выстроить иерархию шаблонов, используя иерархию классов онтологии,
с которыми связаны шаблоны необходимо ввести понятие глубины шаблона в ППШС.
Глубина шаблона — Глубиной шаблона,
соотнесенного с классом C, в шаблонной системе TS называется длина максимальной цепочки вложенных классов из всех классов, соотнесенных с шаблонами в системе TS, которая
начинается c класса C и заканчивается классом,
который не является вложенным ни в один из
классов, представленных в TS.
Для того чтобы иметь возможность выбора
шаблона, основываясь на семантике, содержащейся в онтологии, по которой построена шаблонная система необходимо иметь возможность
выбора наиболее специфичного шаблона.
Наиболее специфичный шаблон —
Наиболее специфичным шаблоном из шаблонной системы TS для индивида i назовем
такой шаблон τ ∈ TS , что ∀t ∈ TS |
i ∈ t.concept ⇒ t.concept ∈ τ .concept. Для
индивида i ∈ C наиболее специфичным и
единственным будет шаблон с максимальной глубиной, среди всех шаблонов, для
которых их класс D ⊇ C .
Алгоритм реализации шаблонной системы
описывает реализацию шаблонной системы,
правила обработки циклов и рефлексивных дуг
в нереализованной шаблонной системе. Предлагается для этих целей использовать построение вспомогательных шаблонных систем, отличающихся от исходных добавлением фиктивного шаблона для разрывания циклов и дуг.
Рассмотренная модель положена в основу
XML-языка, предназначенного для преобразования данных в формате RDF. Документ, определяющий преобразование, представляет собой
систему шаблонов, каждый из которых описывается при помощи тэга <tempate>, атрибут
class которого показывает класс вебонтологии, экземпляры которого могут быть
преобразованы этим шаблоном.
При применении системы шаблонов к
RDF-документу должен быть указан URI ресурса, с которого должна начинаться обработка. Данный ресурс рассматривается как индивид и производится его преобразование путем
применения наиболее специфичного для него
шаблона.
Функция преобразования, связанная с каждым шаблоном, определяется содержимым
тега <tempate>: при обработке каждого шаблона его содержимое вставляется в результирующий документ. При этом возможно применение системы шаблонов для индивидов, связанных с обрабатываемым, для этого в содержимое шаблона вставляется тэг <gettemplate>, в атрибутах которого указывается
имя свойства, через которое с текущим индивидом должны быть связаны индивиды, к которым требуется применить преобразование.
Построенная реализованная шаблонная
система обладает двумя крайне важными свойствами –
Свойство 1 (корректность). Результатом
применения шаблонной системы является корректный XML документ.
Свойство 2 (выполнимость). Построенная для онтологий O шаблонная система TS,
будучи примененной к любому индивиду онтологий O вернет корректный результат, если в
TS указан шаблон для owl:Thing.
Благодаря этому свойству, возможно использовать шаблонную систему для полного
отображения любого композитного процесса.
Простейший шаблон для отображения
атомарного процесса представлен на листинге
1. Этот шаблон позволяет вывести название, а
также список всех входов и выходов процесса.
Существенным положительным свойством
построенной системы является простота изменения шаблонов для отдельных типов входов
или выходов, а также возможность создания
произвольного числа шаблонов для различного
типа задач и использовать их по мере необходимости.
Заключение
Основными результатами выполнения
проекта является построенная математическая
модель функционирования веб-сервисов, математическая модель построения композиций
веб-сервисов и модель выполнения вебсервисов и их композиций, на которых реализована система, позволяющая осуществлять
построение композиций веб-служб на основе
их семантических описаний и обеспечивающая
выполнение таких композиций.
Интерфейс для работы с композициями
веб-сервисов построен с использованием специализированного языка преобразования данных в формате RDF. Данный язык позволяет
структурировать интерфейс системы в соответствии в классами используемых веб-онтологий,
а также упростить настройку системы.
<template class=
"http://www.daml.org/services/owl-s/1.1/Process.owl#AtomicProcess" res-format="html" >
Процесс <name /> <br />
<form action="" method="GET">
<get-template system="1_1_process"
prop="http://www.daml.org/services/owl-s/1.1/Process.owl#hasInput" tag = "br" />
<get-template system="1_1_process"
prop="http://www.daml.org/services/owl-s/1.1/Process.owl#hasOutput" tag = "br" />
</form>
</template>
Листинг 1. Пример шаблона для визуализации профайла веб-сервиса.
Так как сегодня не существует общепринятых решений для поиска и составления композиций семантических веб-сервисов, а также
ведутся исследования в области формализации
решаемых при этом задач, описанное в данной
статье исследование представляет интерес.
Проведенное тестирование и опытная эксплуатация позволяет сделать заключение о работоспособности предложенных формализаций и
реализованного программного обеспечения.
Литература
1. Berners-Lee, T. The semantic web / T. Berners-Lee,
J. Hendler, O. Lassila // Scientific American. — 2001. — Vol.
284. — Pp. 28–37.
2. Gruber, T. R. A translation Approach to portable ontology specifications // Knowledge Acquisition. — Vol. 5. —
1993. — P. 199-220.
3. Климов В.В, Ульянов М.Е., Шапкин П.А., Кудинов М.А., Климов В.П. Система описания и выполнения
композиций семантических веб-сервисов // Информационные технологии в проектировании и производстве. —
2010. — 4. — С. 64–69.
4. Шумский Л. Д., Шапкин П. А. Преобразование
данных в формате RDF на основе веб-онтологий // Сб.
материалов конф. Аппликативные Вычислительные Системы 2010. — М., 2010.
5. Srinivasan N., Paolucci M., Sycara K. An Efficient
Algorithm for OWL-S based Semantic Search in UDDI. Semantic Web Services and Web Process Composition. LNCS,
vol. 3387, pp. 96-110. Springer/Heidelberg (2005)
6. Dourdas, N., Zhu, X., Maiden, N.A.M, Jones, S.,
Zachos, K. Discovering Remote Software Service that
Satisfy Requirements: Patterns for Query Reformulation. Advanced Information Systems Engineering. LNCS, vol.4001,
pp. 239-254. Springer Verlag (2006)
7. Ziembicki, J.I. Distributed Search in Semantic Web
Service Discovery. Master of Mathematics Thesis. University
of Waterloo, Canada (2006)
8. Sanchez, C, Sheremetov, L. A Model for Semantic
Service Matching with Leftover and Missing Information. In:
8th Conf. on Hybrid Intelligent Systems, September 10- 12th,
Barcelona, Spain. IEEE CS Press, Washington, DC, USA
(2008)
9. Шереметов Л.Б., Санчес К. Семантическое
расширение сервисных описаний // Информационные
технологии и вычислительные системы, №2, 2009,
Москва.- С.51-64.
10. Clark, J. XSL transformations (XSLT) version 1.0
/ J. Clark et al. // W3C Recommendation 16 November 1999.
http://www.w3.org/TR/1999/REC-xslt-19991116.
Национальный исследовательский ядерный университет «МИФИ» (Московский инженернофизический институт) «Кибернетика»
A SYSTEM FOR DESCRIPTION AND EXECUTION OF SEMANTIC WEB SERVICES
V.V. Klimov, P.A. Shapkin, V.P. Klimov, L.D. Shumsky
In this article models and methods for developing a semantic web service search engine are considered. The main feature of this system is the ability to construct and execute compositions of web services. The main attention is given to the development of the interface. The basis of the interface is formed by a language for transforming of RDF data on the base of
web ontologies
Key words: semantic web; web-services; composition; templates; Web Ontology Language for Web Services (OWL-S)
Download