Подход к композиции Веб–сервисов на основе спецификации функциональной семантики

Главная задача композиции Веб-сервисов состоит в идентификации готовых к исполь-зованию Веб-сервисов через процедуры поиска, согласования и оркестровки управления выбранными сервисами в соответствии с целевой спецификацией. В данной работе мы предлагаем и исследуем модель композиции Веб-сервисов чер...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2009
Автор: Дерецкий, В.А.
Формат: Стаття
Мова:Російська
Опубліковано: Інститут програмних систем НАН України 2009
Теми:
Онлайн доступ:https://nasplib.isofts.kiev.ua/handle/123456789/4413
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Подход к композиции Веб–сервисов на основе спецификации функциональной семантики / В.А. Дерецкий // Пробл. програмув. — 2009. — № 2. — С. 30-39. — Бібліогр.: 20 назв. — рос.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
_version_ 1859945774749581312
author Дерецкий, В.А.
author_facet Дерецкий, В.А.
citation_txt Подход к композиции Веб–сервисов на основе спецификации функциональной семантики / В.А. Дерецкий // Пробл. програмув. — 2009. — № 2. — С. 30-39. — Бібліогр.: 20 назв. — рос.
collection DSpace DC
description Главная задача композиции Веб-сервисов состоит в идентификации готовых к исполь-зованию Веб-сервисов через процедуры поиска, согласования и оркестровки управления выбранными сервисами в соответствии с целевой спецификацией. В данной работе мы предлагаем и исследуем модель композиции Веб-сервисов через поиск сервисов в соответствии с требованиями функциональной спецификации целевого сервиса. Рассматривается общий алгоритм композиции с учетом или без запуска на выполнение составляющих сервиса.--------------- Головне завдання композиції Веб-сервісов полягає в ідентифікації готових до використання Веб-сервісов через процедури пошуку, узгодження і оркестровки управління вибраними сервісами відповідно до специфікації цільового сервісу. У цій роботі, ми пропонуємо і досліджуємо модель композиції Веб-сервісов через пошук сервісів відповідно до вимог функціональної специфікації цільового сервісу. Розглядається загальний алгоритм композиції з обліком або без запуску на виконання складових сервісу.------------------ The main objective of composing web services is to identify usable web services through discovery and to orchestrate or assemble selected services according to the goal specification. In this paper, we offer and study a framework of composition of Web services through discovery from a given goal service in accordance with the requirements of functional specification of having a specification of goal service. The general algorithm of composition is developed.
first_indexed 2025-12-07T16:14:07Z
format Article
fulltext Програмування для комп’ютерних мереж та Інтернет 30 УДК 681.3 В. Дерецкий ПОДХОД К КОМПОЗИЦИИ ВЕБ-СЕРВИСОВ НА ОСНОВЕ СПЕЦИФИКАЦИИ ФУНКЦИОНАЛЬНОЙ СЕМАНТИКИ Главная задача композиции Веб-сервисов состоит в идентификации готовых к использованию Веб- сервисов через процедуры поиска, согласования и оркестровки управления выбранными сервисами в соответствии с целевой спецификацией. В данной работе мы предлагаем и исследуем модель композиции Веб-сервисов через поиск сервисов в соответствии с требованиями функциональной спецификации целевого сервиса. Рассматривается общий алгоритм композиции с учетом или без запуска на выполнение составляющих сервиса. Введение Веб-сервисы представляют собой доступные в сети автономные програм- мные системы, которые описываются функциональными и нефункциональными свойствами, могут быть размещены и доступны через стандартизированные ин- терфейсы [1]. Композиция Веб-сервисов обеспечивает механизм получения новой функциональности путем сбора много- кратно выполняемых сервисов для их совместного выполнения, и в дальнейшем рассматривать его как новый сервис. Авто- матизированная композиция сервисов актуальна для многих областей, в том числе для электронной коммерции, элек- тронной науки и др. Композиция Веб- сервисов была исследована в различных аспектах и во многих исследованиях, где были предложены различные модели ком- позиции [1]. Эти модели основаны на та- ких подходах как АI-планирование [2, 3], композиция сервисов на основе моделей потоков работ WorkFlow [4−7], компо- зиция на основе переговоров [8] и компо- зиция на основе интерактивных диало- говых процедур [9−11]. В данной работе мы рассмотрим проблему композиции сервисов на основе спецификации целевого сервиса. Целевой сервис может рассматриваться как модель композиции сервисов, в которой каждая активность может быть рассмотрена как логическое представление реального сер- виса. Такая модель композиции сервиса сформировалась на основе подхода к инте- рактивной композиции сервисов [9−11] и научных процессов потоков работ – WorkFlow [6, 12, 13]. В этой модели есть две технологические составляющие: поиск сервисов, для того чтобы идентифици- ровать существующие сервисы, которые могут использоваться, а оркестровка сервисов, чтобы собирать годные к ис- пользованию сервисы, для реализации целевого сервиса. В работах [10, 11] рассматриваются проблемы сообщества сервисов, которые основаны на том, что (1) составные сервисы для композиции уже известны и (2) каждый из них не содержит семантики. Работа [9] напра- влена на усовершенствование метода, путем использования OWL-S, для описа- ния семантики сервиса. В настоящей работе, мы разрабатываем подобный подход с использованием семантики WSMO для сервисов, и исследуем проблему композиции в части поиска сервисов для композиции целевого сервиса. Представим спецификацию целе- вого сервиса в виде ациклического графа активностей с потоком данных и условиями. Проблема композиции “схемы” целевого сервиса состоит в реализации схемы активностей сущест- вующих сервисов, которая осуществляется через запросы к рееструсервисов и семантического согласования (match- making) составных сервисов. Мы также рассматриваем проблему композиции по “образцу”, для которой назначение сервиса для специфицированной цели вычисляется путем запуска на выполнение в соответствии с запросом. © В. Дерецкий, 2009 ISSN 1727-4907. Проблеми програмування. 2009. № 2 Програмування для комп’ютерних мереж та Інтернет 31 Представление целевого сервиса в виде ациклического графа мотивировано процессами WorkFlow [6, 12, 13]. Процессы композиции для научных и бизнес областей в основном ациклические. Предположим, что существующие сервисы не имеют состояния, но имеют семантику OWL-S. Такое представление позволяет не только избегать сложных задач оркест- ровки рассмотренных в [9, 11], но также определяет проблему, применимую ко многим приложениям SOA [7]. Семантическое согласование (mat- chmaking) исследуется в контексте поиска сервисов [14], в части использования се- мантического согласования в целевом композитном сервисе, в случае, когда один сервисный запрос порождает запросы в других сервисах. Фактически, композиция сервисов и поиск сервисов связаны между собой. Поисковые запросы, исходящие от целевого сервиса и его семантических условий зависят от того, будут ли найдены нужные или квалифицированные сервисы. С другой стороны, найденные для акти- вации сервисы, в свою очередь, могут усиливать возможность поиска других нужных сервисов для реализации других активностей. Интеграция поиска и ком- позиции сервисов в одной структуре обеспечивают новый подход, как для про- блемы поиска сервисов, так и для пробле- мы композиции сервисов. В этой работе исследован алгоритм композиции сервисов, построенный на основе отождествления функциональных условий, показан общий алгоритм ком- позиции с различными стратегиями. 1. Автоматизированная композиция сервисов Существует три основных составляющих композиции сервисов: спецификация цели, поиск доступных сервисов, разработка алгоритма, который может “склеивать”, составляющие части вместе [1]. Предлагаемый подход является естественным продолжением подхода использованного в диалоговых сервисах [10−11] и процессах WorkFlow в e-science [6, 12, 13] и состоит в конкретизации цели сервиса, представленного в виде мно- жества состояний Веб-сервисов, используя модель потока данных. Цели сервиса определяются действиями или активно- стями, содержат потоки данных и взаи- модействия с окружением. Реализация цели сервиса состоит в поиске реле- вантных сервисов, которые могут быть найдены через поиск сервисов в реестре. Есть два главных отличия между нашим подходом и работами [9−11]. Во-первых, мы предполагаем, что управляющий поток целевого сервиса ациклический и, во- вторых, сервисы в хранилище сервисов не имеют состояния и поэтому, проблема композиции состоит в поиске и назна- чении сервиса из реестра для каждой активности в целевом сервисе. В работе [15], сервисы выбираются для каждой активности в соответствии со специфи- кацией цели и основаны на нефункцио- нальных свойствах сервиса. Мы рассма- триваем алгоритмы композиции сервисов, которые основаны на функциональных свойствах, в частности на пред- и пост- условиях активностей целевого сервиса. Модель целевого сервиса, предста- вленная в форме ациклического графа, принята по нескольким причинам. В форме WorkFlow представляются многие научные и бизнес-процессы. Композиция сервисов обычно имеет схему WorkFlow, включая активности, управляющие потоки и потоки данных. Каждый образец схемы WorkFlow должен быть настроен на определенный запрос сервиса. Компо- зитный сервис должен искать и запускать отдельные сервисы из реестра, чтобы удовлетворить динамическим требованиям в соответствии с запросом, который посту- пает на вход сервиса. Например, бизнес- процесс приобретения продукта должен выбирать различные базы данных продук- та и компании доставки согласно раз- личным требованиям, поступающим от клиентов. Преимущество нашей модели состоит в спецификации основных функ- циональных требований, выделенных в логические условия, которые учитываются на уровне поиска сервисов. Ациклические WorkFlow целевого сервиса являются особо актуальными для e-science, так как Програмування для комп’ютерних мереж та Інтернет 32 большинство из научных технологических процессов являются ациклическими. На рисунке и в табл. 1 показан при- мер целевого сервиса “агент продажи автомобилей”, бизнес-схема которого рас- смотрена в [5]. Каждая активность имеет входные/выходные дуги, обозначенные как ei в вершинах, и каждая входная дуга имеет входное условие, обозначенное как gі. Активность, может иметь множество входных дуг и множество выходных дуг, указывая различные способы запуска акти- вностей и различные пути следования. Для каждой входной и выходной пары дуг, определено логическое условие выхода, обозначенное как P(ei, ej). Рисунок. Ациклический граф целевого сервиса «агент продажи автомобилей» Целевой сервис представлен аци- клическим конечным графом с началь- ными и конечными вершинами. Каждая вершина за исключением начальной и конечной представляет собой активность. Каждая активность описывается своим входом/выходом и соответствующими ло- гическими условиями. Каждый переход, отмеченный дугами, обозначает поток ин- формации из одной активности к сле- дующей. Кроме того, для каждого пере- хода определена защита в виде начального условия последующей активности. Для каждой активности в целевом сервисе, указано логическое условие выхода, для каждой пары входных и выходных дуг этой активности. Для данного образца входной дуги, активность может выпол- ниться, если удовлетворено начальное условие; после выполнения активности, производится образец выходной дуги и фиксируется условие выхода для данной пары входной и выходной дуг. В технической реализации, мы предполагаем, что набор функций окруже- ния известен для всех сервисов (целевого и определенных в реестре), например, функции Now(), Date() – определяют текущие время и дату. Определение 2.1. Целевой сервис представляется в виде потока данных (WorkFlow) (Q, q0, F, E, ∆, P), где Q – (конечное) множество активностей (состояний), q0 ∈Q – начальная активность, F ⊆ Q – набор конечных активностей, E – (конечное) множество дуг, ∆ – множество переходов (q, g, e, q') такое, что q, q' ∈ Q являются состояниями, q ∉ F, q' = q0, e ∈ E есть дуги, g – начальное условие над e, и граф (Q, {(q, q') | (q, g, e, q') ∈ ∆}) является ациклическим. P обозначает выходные условия активностей и является частичной моделью E х E такой, что, если есть последовательные переходы, помеченные как e1 и e2, то P(e1, e2) – условие над выходными дугами и функциями окружения. q0 sendMePriceQuote() askPriceQuteNew() applyForFinansing() askPriceQuteUsed() askProblemCheck() askForReserv() () insuranceQuote() drivingRecord() creditAccount() payingHistory() q2 q1 q3 q4 q5 q6 q8 q7 q9 e12 g12 e11 g11 g2 e2 e3 g3 e4 g4 e52 g52 E52 g51 e6 g6 e7 g7 e8 g8 e9 g9 e10 g10 Програмування для комп’ютерних мереж та Інтернет 33 Таблица 1. Переменные, пред- и пост- условия модели целевого сервиса «агент продажи автомобилей» Обозна- чение Переменные и условия e1 = [modYear,vehMake,vehMod,transmitionType,extColor,intColor, engType,powerEngine, vehPriceQuote, vehDistance] e2 = [modYear,vehMake,vehMod,transmitionType,extColor,intColor, engType,powerEngine, vehPriceQuoteUsed,idVehUsed, vehDistance] e3 = [modYear,vehMake,vehMod,transmitionType,extColor,intColor, engType,powerEngine, vehPriceQuoteNew,idVehNew, vehDistance] e4 = [modYear,vehMake,vehMod,transmitionType,extColor,intColor, engType,powerEngine, vehPriceQuoteUsed,idVehUsed, vehDistance] e5 = [modYear,vehMake,vehMod,transmitionType,extColor,intColor, engType,powerEngine, vehDistance] e6 = [idUser,vehMod,vehPriceQuoteUsed] e7 = [idUser,vehMod,vehPriceQuoteUsed] e8 = [idUser,vehMod,vehPriceQuoteUsed] e9 = [modYear,vehMake,vehMod,transmitionType,extColor,intColor, engType,powerEngine, idUser,vehMod,vehPriceQuoteUsed, vehDistance] g11 = e1.modYear = {2000,2006} ∧ E1.vehMake = USED ∧ vehPrice = {6000,7000} ∧ vehDist < {200} g12 = e1.modYear = {2007,2009} ∧ E1.vehMake = NEW ∧ vehPrice = {10 000, 15 000} ∧ vehDist < {100} g2 = TRUE g4 = e1.modYear = {2000,2006} ∧ E1.vehMake = USED ∧ vehPrice = {6000,7000} ∧ vehDist < {200} P(e1,e2) = e2.modYear ∈ e1.modYear and ∧ e2.vehPrice ∈ e1.vehPriceQuote ∧ e2.vehDist ∈ e1.vehDist P(e1,e3) = e3.modYear ∈ e1.modYear and ∧ e3.vehprice ∈ e1.vehPriceQuote ∧ e3.vehDist ∈ e1.vehDist P(e2,e4) = e4.modYear ∈ e2.modYear and ∧ e4.vehprice ∈ e2.vehPriceQuote ∧ e4.vehDist ∈ e2.vehDist P(e3,e4) = e4.modYear ∈ e3.modYear and ∧ e4.vehprice ∈ e3.vehPriceQuote ∧ e4.vehDist ∈ e3.vehDist Типичный сценарий использования сервиса следующий: чтобы купить авто- мобиль определенной модели, клиент должен запустить на выполнение сервис, вызывая активность (q0) sendMe PriceQuote. Для получения ценовой характеристики, сервис, очевидно, взаимодействовал бы с сервисом по продаже автомобилей через активности priceQuoteNew (q1), priceQuoteUser (q2). Если бы клиент интересовался машиной, которая уже была в использовании, клиент проверил бы ее состояние и хронологию, вызывая операцию askFor ProblemCheck (q3). В свою очередь, такая операция обращается к операции problemCheck. Клиент должен зарезервировать автомобиль для проплаты, вызывая опе- рацию applyForReserv (q4). Перед утверждением плана финансирования, сервис проверит платежеспособность клиента, вызывая операцию paying History. Если решение по предоставлению кредита положительно, то вызывается операция financingQuote, которая предлагает финансовые сервисы. Дальше, клиент пригласил бы страховую компанию, используя операцию insuranceQuote, которая, в свою очередь, вызывает операцию applyforInsurance предложен- ную страховым сервисом. В результате, от страхового сервиса получил бы параметры страховки путем выполнения операции drivingRecord. На примере (рисунок) сервис “агент продажи автомобилей” требует атрибуты в соответствии с входными дугами, такие как модель автомобиля (vehMod), год Програмування для комп’ютерних мереж та Інтернет 34 выпуска (vehYear). Целевой сервис гаран- тирует резервирование автомобиля данной модели для оплаты и данной целевой квоты, которое выражается как vehPrice ∈[6000, 7000] во входном условии g1,1 и g1,2. Агент страхования вначале проверяет кредитную историю, если она существует и положительна, то используются льгот- ные условия кредита; в противном случае, используются общие условия кредита. В примере рассмотрим только активность резервирования автомобиля для проплаты. 1.1. Модель Веб-сервиса Рассмотрим некоторые ключевые понятия, используемые в задачах моделирования сервисов, представим модель сервиса, которую будем исполь- зовать для решения проблемы ком- позиции. Семантическое расширение Веб- сервисов обеспечивает увеличение возможностей, прежде всего поиска сервисов и автоматизации композиции. Средства описания семантики сервисов такие: OWL-S [3], WSDL-S [16], SWSO [17], WSMO [18] являются лидирующими в данном направлении. Хотя текущий UDDI явно не поддерживает семантику Веб-сервисов, подходы к его семан- тическому расширению рассматриваются в [16, 19]. Предлагаемая модель Веб-сервиса объединяет конструкции, для описания функциональной семантики сервисов. Веб- сервисом является активность с входными и выходными данными, пред- и пост- условиями. Активность может быть определена как действие в WSDL-S [16], или атомарной активностью в OWL-S [20]. Пред- и пост- условия определяются над входными и выходными данными, и взаимодействиями с “внешним миром”. Определение 2.2. Сервис представ- ляет собой кортеж (ei, eo, P, Q), где ei, eo – входные и выходные дуги; P, Q – соответственно пред- и пост- условия. Сервис может быть запущен, если пред- условие P принимает значение «истина». Он использует образец дуги ei, и производит образец дуги eo. В результате выполнения сервиса так же должно удовлетворяться пост- условие Q. Входные и выходные данные сервиса определяются дугами (envelop). Дуга представляет собой набор (кортеж) имен атрибутов со связанными типами; образец дуги – значение атрибутов соот- ветствующих типов. Окружение, в кото- ром выполняются сервисы, моделируется как набор функций окружения. Сервис взаимодействует с окружением, запуская эти функции. Например, функция Now() – функция окружения, через которую сервис может получить значение текущего времени. Пред- условие сервиса – условие, которое должно удовлетворяться перед тем как сервис запускается. Входное условие определяется над входными атрибутами и функциями окружения. Пост- условие определяется над входными и выходными атрибутами, функциями окружения, описывающие взаимоотно- шение между входными и выходными данными и изменение окружения после того как сервис будет выполнен. Определение 2.3. Условием поиска сервиса в реестре является кортеж (I, O, P, Q), где I – набор входных атрибутов; O – набор выходных атрибутов; P, Q – входные и выходные условия. Сервис S = = (ei, eo, Ps, Qs) удовлетворяет условиям поиска (I, O, P, Q), если выполняются следующие условия: (1) ei ⊆ I; (2) O ⊆ eo; (3) P → Ps; (4) P и Qs → Q. Реестр сервисов представляет собой конечное множество сервисов с функцией поиска. Поиск сервисов – процесс поиска в реестре, в результате выполнения которого получается набор сервисов, которые удов- летворяют условиям поиска. 1.2. Задачи композиции сервисов Проблема композиции сервисов широко представлена в литературе. Предложены различные модели компо- зиции, например, Латинская модель [10, 11], модель переговоров [8], модели WorkFlow [4, 6, 12], модели состояния [15], АІ-планирование [2, 3], модель Коломбо [9] и другие. Програмування для комп’ютерних мереж та Інтернет 35 Наша модель композиции сервисов отличается от них средствами семан- тического описания целевого сервиса, семантической разметкой каждой актив- ности целевого сервиса и ее семан- тическим описанием логических условий в реестре сервисов. Входом для композиции сервисов являются целевой сервис и реестр сервисов. Композиция сервисов осущест- вляется для каждого запроса целевого сервиса. Для достижения цели целевого сервиса осуществляется выполнение запроса. Задача композиции состоит в поиске релевантных сервисов, назна- чаемых для активностей в целевом сервисе. Определим ключевые понятия алгоритма композиции. Определение 2.4. Пусть G = (Q, q0, F, E, ∆, P) является целевым сервисом. Реализация целевого сервиса G над реестром R – схема от Q – ({q 0} U F) для R, т. е., для каждой активности, кроме начальных и конечных состояний осуществляется поиск и назначается на выполнение сервис из реестра R. Реализация L – выполнима, если для каждой активности q ∈Q – ({q0} U F), определяется следующее равенство: L(q) = (ei, eo, Ps, Qs). Предположим, что e i 1 ,...,e i n , 1 ≤ j ≤ n – входные дуги, а e o 1 ,...,e o m , 1 ≤ k ≤ m – выходные дуги для q, gj – начальные условия для e i j , и P(e i j , e o k ) (1 ≤ j ≤ n, 1 ≤ ≤ k ≤ m) – выходные условия , тогда ei ⊆ ∩1 ≤ j ≤ n i je , eo ⊇ Uj,k(e o j – e i k ), V1 ≤ j ≤n jg → P, gj ∧ Q → ∧ j,k P(e i j , e o k ) . В определении 2.4, реализация це- левого сервиса выполняется, если для каждой активности входные дуги и пред- условия назначенные сервису должны гарантироваться целевым сервисом, к тому же, выходные дуги и выходные условия целевого сервиса должны покрывать наз- наченный сервис. Пусть задана активность qi, ее входные и выходные условия. Сервис-кан- дидат может быть найден, если выполняются условия (∩je i j , U j,k(e o j – e i k ), ∨ jgj, ∧ j,k P(e i j , e o k )) хотя бы в одном из зарегистрированных сервисов в R. Сформулируем следующие задачи композиции сервисов: – пусть задан целевой сервис G и реестр сервисов R, необходимо найти выполнимую реализацию сервиса G над R; – пусть задан целевой сервис G, реестр сервисов R и среда выполнения целевого сервиса V, необходимо найти выполнимую реализацию сервиса G над R для среды выполнения V. 2. Стратегии композиции Для обеспечения выполнимой реализации целевого сервиса рассмотрим методы, которые могут преобразовать начальные условия активностей в целевом сервисе, тем самым осуществлять более полный и точный поиск необходимых сервисов. Для получения выполнимой реа- лизации используется следующий подход: для каждой активности q в предоста- вленном целевом сервисе, мы формируем условия поиска (∩je i j , Uj,k(e o j – e i k ), Vjgj, ∧ j,k P(e i j , e o k )) в реестре сервисов. Отметим, что поисковые критерии обес- печивают последовательность действий. Главная проблема состоит в том, что при поиске сервисов в реестре есть возмож- ность пропустить сервисы-кандидаты для данной активности и, поэтому выполнимая реализация не может быть найдена, хотя она существует. Для иллюстрации этой проблемы мы рассмотрим целевой сервис (рисунок) “агент продажи автомобилей”. В табл. 2 приведены три доступных в реестре сервиса, которые могут быть потен- циальными кандидатами для активности резервирования автомобиля для после- дующей оплаты. Сервис (a) в табл. 2 обеспечивает резервирование автомобиля для только в ценовом диапазоне [3000, 5000]; сервис (b) обеспечивает резерви- рование автомобиля только в городе расстояние к которому превышает 600 миль, доставка которого может быть слишком дорогой; сервис (c) обеспечивает резервирование автомобиля только в ценовом диапазоне [8000, 12000]. Програмування для комп’ютерних мереж та Інтернет 36 Таблица 2. Сервисы-кандидаты резервирования для оплаты использованных автомобилей № Cервисы-кандидаты Параметры и условия сервисов a) ein (modYear,vehMake,vehMod,transmitionType, extColor, intColor,engType,powerEngine, vehPrice, vehDistance) P = modYear ∈ {2005} ∧ vehMake ∈ USED ∧ vehPrice ∈ {3000,5000} ∧ vehDistance ∈ {100,400} b) ein (modYear,vehMake,vehMod,transmitionType, extColor, intColor,engType,powerEngine, vehPrice, vehDistance) P = modYear < {2006} ∧ vehMake ∈ USED ∧ vehPrice > {6000} ∧ vehDistance ∈ {600,1000} c) ein (modYear,vehMake,vehMod,transmitionType, extColor, intColor,engType,powerEngine, vehPrice, vehDistance) P = modYear ∈ {2005,2007} ∧ vehMake ∈ USED ∧ vehPrice ∈{8000,12000} ∧ vehDistance ∈ {50,100} Рассматривая схему активностей целе- вого сервиса, представленных на рисунке и доступные сервисы в табл. 2, подход будет не в состоянии идентифицировать сервисы для активности резервирования использованного автомобиля, потому что начальное условие g4 в целевом сервисе не соответствует условиям любого из трех сервисов. Это следует из факта, что g3 и g4 требует, чтобы сервис обеспечивал ценовой интервал [6000, 7000] в ближайшем (≤ 200 миль) городе. После проверки начальных условий g11 в целевом сервисе “агент продажи автомо- билей”, видим, что ценовой интервал факти- чески ограничивается интервалом между [5000, 8000]. Комбинируя с выходными усло- виями P(e4, e51), можно вывести, что ценовой интервал находится между [5000, 8000]. Как показано в табл. 3, левая часть показывает оригинальный целевой сервис, и начальное условие g4 может быть «сжато» в условии g 1 4 , включая входы/выходы предыдущих активнос- тей. Если g 1 4 используется для поиска серви- сов, то сервис (a) в табл. 2 становится сервисом-кандидатом. Начальные условия активности могут быть сжаты с помощью использования пост- условий выбран- ного сервиса для предыдущей актив- ности. В табл. 3 сервис (b), пред- назначен для активности резерви- рования автомобиля, существуют выходные условия активности, кото- рые можно заменить более ограни- ченными пост- условия. В данном случае, ценовой интервал может быть ограничен [6000, 7000], тогда сервис (a) и (c) в табл. 2 становятся сервисами-кандидатами. Композиция сервисов имеет место после того как осуществлен запуск целевого сервиса. Входные условия, поступающие от запроса при запуске сервиса, могут передаваться через целевой сервис путем преобра- зования входных условий. В табл. 3 (c), ограничение e1 распространяется на активность резервирования автомобиля и начальное условие «сжимается» от g4 к g 1 4 . В данном случае, оба сервиса (a) и (c) в табл. 2 соответствуют сервису-кандидату. sa ein askPriceQuteUsed() sb ein sc ein askPriceQuteUsed() askPriceQuteUsed() Програмування для комп’ютерних мереж та Інтернет 37 Таблица 3. Схема «уплотнения» целевого сервиса Исходный целевой сервис Параметры и условия целевого сервиса Выбранный сервис для q1 Параметры и условия преобразованного целевого сервиса e1 (…modYear, vehMake,…, vehPrice, vehDistance…) g11 = e1.modYear ⊆ {2005} ∧ e1.vehMake ⊆ USED ∧ ∧ vehPrice ⊆ {3000,6000} P(e1,e2) = e2.modYear ∈ e1.modYear and ∧ e2.vehPrice ∈ e1.vehPriceQuote ∧ e2.vehDist ∈ e1.vehDist E51 (…modYear,vehMake,…, vehPrice, vehDistance…) G51 = e1.modYear ⊆ {2005} ∧ ∧ E1.vehMake = USED ∧ vehPrice ⊆ {3000,5000} P(e4,e2) = e4.modYear ∈ e2.modYear and ∧ e4.vehPrice ∈e2.vehPriceQuote ∧ ∧ e4.vehDist ∈ e2.vehDist ein(…vehYear,vehMake,…, vehPrice, vehDist…) P=… eout =(…vehPrice, vehDist…) Q = … vehPrice ⊆ {5000,8000} ∧ vehDist ⊆ {50,150} ∧ … e2 (…modYear,vehMake,…, vehPrice…) g2 = e1.modYear ⊆ {2005} ∧ e1.vehMake ⊆ USED ∧ vehPrice ⊆ {3000,5000} ∧ vehDist ⊆ {50,150} ∧ … e4 (…modYear,vehMake,…, vehPrice…) g4 = e1.modYear ⊆ {2005,2007} ∧ E1.vehMake ⊆ USED ∧ vehPrice ⊆ {5000,8000} ∧ vehDist ⊆ {50,150} … В результате, полученный запрос при запуске целевого сервиса, может запустить выбранный сервис таким образом, что атрибуты выходных дуг были связаны с конкретными значениями. Эти фиксированные значения условий могут быть добавлены к выходным условиям активностей. В табл. 3 запускается назначенный сервис-кандидат и атрибут veh PriceQute в выходной дуге e2 связан со значением [5000, 8000], тогда любой сервис резервирования автомобиля, который обеспечивает сервисы в полученном ценовом интервале, становится кандидатом для активности резервирования автомобиля. Выполняя преобразование началь- ных условий, можно осуществить поиск релевантных сервисов для соответствую- щих активностей. Мы представляем две стратегии преобразования условий целе- вого сервиса. Первая стратегия направлена на решение проблемы создания схемы серви- сов. Она основана на уплотнении входных условий каждой активности в целевом сер- висе, используя условия предыдущих активностей и пост- условия выбранных сервисов. Начальные условия и выходные условия предыдущих активностей уплот- няют начальные условия следующих в пути активностей. Как только для актив- ности назначен сервис из реестра, выход- ные условия заменяются пост- условиями выбранного сервиса. Вторая стратегия направлена на решение проблемы композиции образца. Ограничения при запуске целевого сервиса, а также условия от предыдущих активностей в целевом сервисе. Как только q0 g11 e1 Q3 e2 Q4 e4 q1 s e9 ein g2 g4 eout g51 e51 Програмування для комп’ютерних мереж та Інтернет 38 активность была назначена сервису из реестра, выходные условия не только заменяются постусловиями выбранного сервиса, но так же запускается выбранный сервис. Аргументы на выходных дугах активности связывают с конкретными значениями, полученными в результате выполнения сервиса. Полученные условия добавляются к выходным условиям активности. 2.1. Алгоритм композиции сервисов Алгоритм композиции сервисов представлен следующим образом: входом для алгоритма является целевой сервис и множество ограничений для запуска GS; выходом является реализация целевого сервиса L. 1. Присоединить ограничения C к целевому сервису GS как условия запуска g0 L = 0. 2. Qa = Ø, где Qa − очередь активностей. 3. for each q' ∈ succeed(qo) append(Qa, q'). 4. while (!empty(Qa)) q = get(Qa); GenerateTightenedCondition(q) преобразование начальных условий для каждой активности; Qs = set of services discovered for q; if Qs = 0, return FAIL. 5. nondeterministically select service S from Qs. 6. add q → S to L. 7. for each q' ∈ succeed(q) if q' ∉ Qa, append(Qa, q''). 8. UpdateCondition(q) обновление условий. 9. endwhile. В предложенной модели компози- ции, методы уплотнения интегрируются в композицию сервисов. Мы опишем алго- ритм композиции сервисов с преобразова- нием условий, как вышепоказано, и рас- смотрим свойства алгоритма композиции. Ограничения условий, полученные при запуске целевого сервиса, прилагаются к целевому сервису. Так как целевой сервис является ациклическим, алгоритм прохо- дит через активности в целевом сервисе с начала до конца. Для каждой активности qi, осуществляется уплотнение начальных условий qi, используя условия из преды- дущих активностей, и первичные началь- ные условия заменяются уплотненными. Для преобразования используется проце- дура GenerateTightenedCondition(qi). На следующем шаге, алгоритм выполняет поиск сервиса в реестре для активности qi. Сервис выбирается из множества найденных сервисов для заданной активности. В результате, выходные условия активности обновляются в процедуре Update Condition(qi). Стратегии преобразования условий используют различные активности на шаге UpdateCondition(). Первая стратегия работает по схеме композиции сервисов и использует пост- условия выбранных сервисов для замены существующих условий активности. Вторая стратегия работает на композиции образца сервисов, т. е. в результате запуска целевого сервиса, запускается выбранный сервис для активности и условия ограничиваются результатом выполнения сервиса, который добавляется к выходным условиям. Процедура GenerateTightened Condition() производит преобразование начальных условий для каждой активности, используя начальные условия и выходные условия предыдущих активностей. Заключение Автоматизированная композиция Веб-сервисов − практическая проблема. Через формулировку проблемы компози- ции мы рассматриваем много связанных вопросов для дальнейшего изучения. Одно из направлений исследования – развитие алгоритмов полноты и эффективности композиции, которые могут использовать семантические свойства специфицирован- ных предметных областей данных. На общем уровне важным является вопрос, как процессы поиска сервисов могут совместно использовать процессы запуска сервисов. Програмування для комп’ютерних мереж та Інтернет 39 1. Hull R., Su J. Tools for composite web services: A short overview // SIGMOD Record. −2005. −N 34(2). − Р. 86–95. 2. Narayanan S., McIlraith S. Simulation, verification and automated composition of web services. In Proc. Int. World Wide Web Conf. (WWW). 2002. 3. Narayanan S., McIlraith S. Analysis and simulation of web services, // Computer Networkds. − 2003. −N 42. − Р. 675–693. 4. Aalst W. On the automatic generation of workflow processes based on product structures // Computer in Industry.−1999.− N 39.− Р. 97–111. 5. Андон П., Дерецкий В. Проблемы построения сервис-ориентированных прикладных информационных систем в Semantic web среде на основе агентного подхода // Проблемы программирования. −2006. − N 2-3. − С. 493–502. 6. Tsalgatidou A., Athanasopoulos G., Pantazoglou M., et al. Developing scientific workflows from heterogeneous services // ACM Sigmod Record. − 2006. − N 2. − Р. 22–28. 7. Sirin E., Parsia B., Hendler J. Template-based composition of semantic web services. In AI symposium on agents and the semantic web.− 2005. 8. Fu X., Bultan T, Su J.. Conversation protocols: A formalism for specification and verification of reactive electronic services, // Theoretical Computer Science. − 2004. − N 328(1-2).− Р. 19–37. 9. Berardi D., Calvanese D., De Giacomo G. et al. Automatic composition of transition-based semanticweb services with messaging // In Proc. 31st Int. Conf.on Very Large Data Bases (VLDB).− 2005.− Р. 613–624. 10. Berardi D., CalvaneseD., De Giacomo G., et al. Automatic composition of e-services that export their behavior // In Proc. 1st Int. Conf. on Service OrientedComputing (ICSOC).− 2003.− Р. 43–58. 11. Gerede C., Hul lR., Ibarra O., J. Su. Automated composition of e-services: Lookaheads.In Proc. 2nd Int. Conf. onService-Oriented Computing (ICSOC). − 2004. 12. Ludaescher B., Altintas I., Berkley C., et al. Scientific workflow management and the kepler system // J. of Concurrency and Computation: Practice & Experience. Special Issue on Scientific Workflows. 13. Rao J., Su X. A survey of automated web service composition methods // In Proc. of the 1st Int.Workshop on Semantic Web Services and Web Process Composition.− 2004. 14. Elgedawy I., Tari Z., Winikoff M. Exact functional context matching for web services, // In Proc. Int. Conf. on ServiceOriented Computing (ICSOC).− 2004. − P. 143–152. 15. Zeng L., Benatallah B., Ngu A., et al. Qos- aware middleware for web services composition // IEEE Transactions on Software Engineering. − 2004. − N 30(5). − Р. 311–327. 16. W3C. Web services semantics – WSDL-S 1.0. 2005.Nov. http://www.w3.org/Submission/ WSDL-S/. 17. Web Service Modeling Ontology. http: //www.wsmo.org/. 18. Battle S. et al. Semantic Web Services Ontology (SWSO) Version 1.0. http://www. daml.org/services/swsf/1.0/swso/.2005. 19. Luo J., Montros B., Kim A. et al. OWL-S support to the existing UDDI infrastructure // In Proc. 4th IEEE Int. Con. on Web Services (ICWS). − 2006. 20. Andon Ph., Deretsky V. Control Oriented Ontology and Process Description for Cooperation Agents in Information Retrieval // Sixth International Scientific Conf. „Electronic Computers and Informatics ECI’2004”. Х Kosice – Herlany, Slovakia, September 22–24. − 2004. − P. 14–18. Получено 18.03.2009 Об авторе: Дерецкий Валентин Александрович, кандидат физико-математичних наук, ведущий научный сотрудник. Место роботи автора: Институт программных систем НАН Украины. 03187, проспект Академика Глушкова, 40. Тел.: 38 044 526 4342. e-mail: dva@isofts.kiev.ua.
id nasplib_isofts_kiev_ua-123456789-4413
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
issn 1727-4907
language Russian
last_indexed 2025-12-07T16:14:07Z
publishDate 2009
publisher Інститут програмних систем НАН України
record_format dspace
spelling Дерецкий, В.А.
2009-11-02T15:04:22Z
2009-11-02T15:04:22Z
2009
Подход к композиции Веб–сервисов на основе спецификации функциональной семантики / В.А. Дерецкий // Пробл. програмув. — 2009. — № 2. — С. 30-39. — Бібліогр.: 20 назв. — рос.
1727-4907
https://nasplib.isofts.kiev.ua/handle/123456789/4413
681.3
Главная задача композиции Веб-сервисов состоит в идентификации готовых к исполь-зованию Веб-сервисов через процедуры поиска, согласования и оркестровки управления выбранными сервисами в соответствии с целевой спецификацией. В данной работе мы предлагаем и исследуем модель композиции Веб-сервисов через поиск сервисов в соответствии с требованиями функциональной спецификации целевого сервиса. Рассматривается общий алгоритм композиции с учетом или без запуска на выполнение составляющих сервиса.---------------
Головне завдання композиції Веб-сервісов полягає в ідентифікації готових до використання Веб-сервісов через процедури пошуку, узгодження і оркестровки управління вибраними сервісами відповідно до специфікації цільового сервісу. У цій роботі, ми пропонуємо і досліджуємо модель композиції Веб-сервісов через пошук сервісів відповідно до вимог функціональної специфікації цільового сервісу. Розглядається загальний алгоритм композиції з обліком або без запуску на виконання складових сервісу.------------------
The main objective of composing web services is to identify usable web services through discovery and to orchestrate or assemble selected services according to the goal specification. In this paper, we offer and study a framework of composition of Web services through discovery from a given goal service in accordance with the requirements of functional specification of having a specification of goal service. The general algorithm of composition is developed.
ru
Інститут програмних систем НАН України
Програмування для комп’ютерних мереж та Internet
Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
Підхід до композиції ВЕБ-сервісів на основі специфікацій функціональної семантики
Approach to composition of WEB- services on basis of specification of functional semantics
Article
published earlier
spellingShingle Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
Дерецкий, В.А.
Програмування для комп’ютерних мереж та Internet
title Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
title_alt Підхід до композиції ВЕБ-сервісів на основі специфікацій функціональної семантики
Approach to composition of WEB- services on basis of specification of functional semantics
title_full Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
title_fullStr Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
title_full_unstemmed Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
title_short Подход к композиции Веб–сервисов на основе спецификации функциональной семантики
title_sort подход к композиции веб–сервисов на основе спецификации функциональной семантики
topic Програмування для комп’ютерних мереж та Internet
topic_facet Програмування для комп’ютерних мереж та Internet
url https://nasplib.isofts.kiev.ua/handle/123456789/4413
work_keys_str_mv AT dereckiiva podhodkkompoziciivebservisovnaosnovespecifikaciifunkcionalʹnoisemantiki
AT dereckiiva pídhíddokompozicíívebservísívnaosnovíspecifíkacíifunkcíonalʹnoísemantiki
AT dereckiiva approachtocompositionofwebservicesonbasisofspecificationoffunctionalsemantics