Например, Бобцов

ПРОБЛЕМЫ ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ СЕТЕВЫХ СЕРВИСОВ

А.М. Дергачев

УДК 004.75, 004.772, 004.62
ПРОБЛЕМЫ ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ СЕТЕВЫХ СЕРВИСОВ
А.М. Дергачев
Рассматриваются основные проблемы, которые возникают при использовании сетевых сервисов на этапах поиска, выбора и интеграции. Рассмотрены качественные характеристики, по которым можно производить сравнение и выбор сервисов, и абстрактная модель, наглядно демонстрирующая взаимодействие сетевых сервисов. Ключевые слова: сетевой сервис, проблемы, модель, взаимодействие, качество сервиса.
Введение
С увеличением числа организаций, вовлеченных в использование технологии сетевых сервисов, растет количество сетевых сервисов, предоставляющих родственные услуги на получение однотипной информации. Прозрачность выбора между родственными по своим функциям сервисами, а также эффективность поиска среди сервисов запрашиваемой информации или услуги может быть обеспечена методами оптимизации поиска и построением плана выполнения запроса. Автоматизация проектирования таких систем может быть обеспечена набором типовых решений, поддерживаемых интегрированной средой разработки. В свою очередь, необходима среда выполнения, реализующая соответствующие алгоритмы планирования и выполнения запроса поиска по сетевым сервисам в соответствии с выбранными на стадии проектирования типовыми решениями.
Постановка задачи
Основной целью данной работы является описание аналитической модели взаимодействия сетевых сервисов и выбор математической формы ее представления, позволяющей исследовать эффективность использования сетевых сервисов программными приложениями корпоративных информационных систем и влияние на нее различных методов оптимизации поиска и алгоритмов построения плана выполнения запроса по сетевым сервисам. Результаты исследования планируется использовать для разработки типовых решений проектирования программных приложений корпоративных информационных систем, основанных на указанных выше методах, и программной среды их выполнения.
Описание проблем использования сетевых сервисов
Первая проблема – это проблема поиска сетевых сервисов. На сегодняшний день существует два различных подхода: использование реестров и использование поисковых систем. Каждый из подходов имеет свои преимущества и недостатки. Реестры, как правило, обладают структурой и реализуют стандарт UDDI, но ограничены списком сервисов, входящих в базу данных. Поисковые системы производят поиск по всему Интернету, но результаты поиска не содержат какого-либо описания сервиса. Последние исследования [1] показывают, что поисковые системы находят большее количество Интернет-сервисов и процент рабочих сервисов от всех найденных у поисковых систем выше. Но ввиду сложности автоматизации использования результатов поисковых систем отдавать им предпочтение преждевременно.
В большинстве случаев результатом поиска будет не один сервис, а список сервисов, который может быть достаточно большим (в Интернете существуют сотни, а может быть, и тысячи сетевых сервисов, предоставляющих прогноз погоды). Появляется проблема выбора. Основная сложность с выбором единственного сервиса из множества аналогичных заключается в определении набора параметров, по которым будет производиться выбор. Целью выбора является предоставление пользователю максимального качества сервиса. Для описания качества сервиса (QoWS) [2] предлагается использовать различные

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 1 (71)

83

ПРОБЛЕМЫ ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ СЕТЕВЫХ СЕРВИСОВ
характеристики сервисов, такие как доступность, надежность, быстродействие, безопасность, соответствие стандартам и др. Сбор и хранение такой информации должны быть организованы отдельно от самих сервисов, в какой-то централизованной системе, так как поставщик сервиса может предоставить заведомо ложную информацию и тем самым обмануть пользователя. Также стоит предусмотреть возможность выбора сервиса по нескольким параметрам QoWS, а значит, необходимо решить задачу многокритериальной оптимизации. Но выбор сервиса – не последняя проблема, с которой придется столкнуться при использовании сервисов.
После того как сервисы найдены и отобраны, необходимо организовать их взаимодействие. На этом этапе возникает сразу несколько проблем, такие как синтаксическая совместимость, семантическая совместимость, проблемы, связанные с глобализацией и локализацией.
Проблема синтаксической совместимости связана с тем, что сервисы могут быть реализованы на разных программных и аппаратных платформах, и необходимо организовать обмен данными между ними. Для организации взаимодействия необходимо знать список доступных операций и параметров, типы данных параметров и возвращаемых результатов. Для решения этой проблемы создан язык описания сетевых сервисов (WSDL), который позволяет автоматизировать процесс их разработки и вызова.
Проблема семантической совместимости намного сложнее, и готового решения на сегодняшний день здесь нет. Построение семантического графа [3] и использование теоретико-множественного подхода к получению логических выводов на основе баз знаний [4] позволяет наделять операции и параметры поиска физическим смыслом и использовать для их формализации языки описания онтологии, например, OWL.
Вечной проблемой интеграции различных приложений являются глобализация и локализация. При организации взаимодействия различных сетевых сервисов нужно учесть различия в представлении данных в разных странах: форматы дат и денежных сумм, различные единицы измерения массы, длины, температуры и т.д. Несмотря на то, что сетевые сервисы являются машинно-ориентированными приложениями, они могут оперировать текстовыми данными, а значит, нужно предусмотреть и возможность перевода текстов с одного языка на другой.
Очевидно, что проблем использования сетевых сервисов слишком много, и разработанные языки, протоколы и стандарты (WSDL, SOAP, OWL…) не решают их в полной мере. Возможным решением могла бы стать единая, централизованная система, способная автоматизировать поиск, выбор и взаимодействие сервисов, обеспечив тем самым наилучшее качество сервиса. Для создания такой системы необходимо исследовать возможные варианты взаимодействия сетевых сервисов. Исследование можно проводить на абстрактной модели, которая отражала бы сущность взаимодействия.
Схематичное изображение модели сервиса в виде графа
Сервис можно изобразить в виде графа (рис. 1, a), где вершинам графа соответствуют операции, входящие в сервис (A, B и C), а ребра графа отображают зависимости между операциями: операция C является зависимой от операции B. Аналогичным образом могут быть показаны зависимости между операциями разных сетевых сервисов (рис. 1, б).
аб
Рис. 1. Зависимости между операциями: одного сервиса (а), разных сервисов (б)
Использование графов для отображения схем сервисов позволяет не только наглядно отображать взаимозависимости сервисов, но и решать практические задачи. Рассмотрим пример с картографическим сетевым сервисом, который имеет две операции: операцию преобразования адреса в координаты (высоту и долготу) и операцию получения изображения местности, соответствующей заданным координатам (рис. 2, а). Предположим, что аналогичные сервисы предоставляют сразу три конкурирующие компании. Операции от разных провайдеров сервиса обладают различными параметрами QoWS. Тогда, выполнив операцию объединения графов, отображающих схемы сервисов, и указав для каждой операции параметр качества, например, время выполнения операции, получаем граф, изображенный на рис. 2, б.
84 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2011, № 1 (71)

А.М. Дергачев

аб
Рис. 2. Граф операций: одиночного сервиса (а), объединенного сервиса (б)
Решив задачу поиска наикратчайшего пути из точки A в точку B, можно ответить на вопрос, операциями каких сервисов нужно воспользоваться, чтобы выполнить необходимую задачу за минимальное время. Стоит заметить, что в качестве значений мог быть выбран абсолютно любой параметр – надежность, репутация или цена использования сервиса. По сути, получаем готовое решение для задачи однокритериальной оптимизации. Более того, такой подход позволяет комбинировать отдельные операции сервисов и создавать из них новые сервисы с лучшими показателями качества обслуживания.
Математическое описание модели сервиса
Математическое описание модели сервиса необходимо для применения методов оптимизации поиска и нахождения оптимального плана вызова сервисов. Для описания сервиса использованы такие понятия, как схема сервиса, связи сервиса, запрос сервиса, сервисный путь, граф операций и граф набора операций [5]. Схема сервиса отображает ключевые возможности всех сетевых сервисов предметной области. Она предоставляет словарь и позволяет создать язык сервисных запросов. Схема сервиса определяется записью S  (SG1, SG2 ,..., SGn , D) , где SGi  (Vi , Ei , i ),i  1,..., n , является ориентированным ациклическим графом (сервисным графом), где:  Vi  {opij | 1  j  m}  набор операций сетевого сервиса;
 i  корневой элемент графа (точка входа, через которую можно получить доступ ко всем операциям сервиса);
 Ei  {eij | 1  j  l} отражает зависимости между двумя операциями из одного графа;
 D  {Di, j | 1  i  n 1  j  n  i  j} отражает зависимости между двумя некорневыми операциями
из различных графов;  SG  SGi  SG j является конкатенацией двух сервисных графов, полученной объединением корне-
вых элементов SGi и SG j .
Зависимости между двумя внутренними операциями относятся к внутрисервисным зависимостям, и могут быть удовлетворены вызовом двух операций в определенном порядке. Зависимости между сервисами могут быть удовлетворены, когда осуществляется доступ к множеству сервисов. Предполагается отсутствие зависимостей между корневыми элементами графов. Также предполагается, что все множественные зависимости к одной операции должны быть удовлетворены до выполнения этой операции. Например, есть две зависимости к операции opk : opi и op j . В этом случае операции opi и op j должны
быть вызваны до операции opk . Также следуют отметить, что в случае присутствия в схеме сервиса единственного графа, т.е. n =1, S становится сервисной схемой с одиночным графом.
Сервисный путь для сервисного графа SG  (V , E, ) определяется как
Pi  ({opi1,..., opij ,..., opik }, E, ) , где   это корень SG , E  E , и k  1 ; opij V для 1  j  k , и для
каждого opij , 0  j  (k 1) , e j  E : e j  (opij ,opi( j1) ) .
Граф операции G(op) для сервисного графа SGi  (Vi , Ei , i ) – это объединение всех сервисных путей в SG, которые ведут к операции op, G(op)  Pi , где Pi  ({opi1,..., opij ,..., opik }, E, ) . Граф опера-

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 1 (71)

85

ПРОБЛЕМЫ ЭФФЕКТИВНОГО ИСПОЛЬЗОВАНИЯ СЕТЕВЫХ СЕРВИСОВ

ций G(op) является направленным подграфом сервисного графа SG. На рис. 3, б, показан граф операции
G(d ) , который получен из SG (рис. 3, а) путем объединения двух сервисных путей P1 и P2 , которые ведут к сервисной операции d.

 ab

P2
e

 be

P1
c

f

c

d
SG

d
G(d)

аб

Рис. 3. Граф: сервиса SG (а), операции d (б)

Граф набора операций для сервисного графа SGi  (Vi , Ei , i ) определяется как
G(op)  ki1G(opi ) , где op  {opij | 1  i  k} . G(op) является направленным подграфом сервисного гра-
фа SG. Например, на рис. 3 граф для набора операций {a, d, f }  это сам граф SG, т.е. G({a, d, f })  SG .
Модель QoWS формально определяет набор качественных параметров для сетевых сервисов, которые указаны в таблице  время реакции, надежность, доступность, цена и репутация. Время реакции  время между моментом вызова op и моментом получения результата. Надежность  это возможность вызова op с гарантированным временем ответа. Доступность  это вероятность того, что операция доступна. Цена определяет стоимость вызова op. Репутация  это мера достоверности операции. Она определяется соотношением того, что операция предоставила и тем, что было обещано. Значения параметров в QoWS модели могут быть как целочисленными, так и дробными.

Параметр Время реакции
Надежность
Доступность
Цена Репутация

Определение Время обработки операции + время возращения результатов Nудачных(op) Nвсего(op)  отношение удачных вызовов к
общему количеству вызовов op UpTime(op)/TotalTime(op) , где UpTime – время, когда op
была доступна; TotalTime – общее время Денежная сумма, необходимая для вызова операции
uk1Оценка(op)/n 1  репетиция  10 , где Оценка – оцен-
ка, поставленная пользователем; n – количество оценок

Тип число число
число
число число

Индекс 1 2
3
4 5

Таблица. Параметры QoWS
Сервисная связь определяется как набор экземпляров сервисов I  ({sid , op1,..., opn}) , где sid – уникальный идентификатор сервиса; op – операция сервиса, определенная как пара op  (opid , (op)) ,
где opid является идентификатором операции,  – меточной функцией, которая присваивает каждой сер-
висной операции набор значений параметров QoWS, обозначенный Q  ik1Qi . Функция определяет
i-й параметр op, где i – индекс параметра согласно таблице. Каждый экземпляр сервиса I в сервисной связи согласован с сервисным графом SG, т.е. операции в I определены в SG и следуют зависимостям, определенным в SG.

86 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2011, № 1 (71)

В.О. Тишкин
Сервисный запрос – это выражение сервисных вычислений в форме {s | (s)} , где s – это пере-
менная, представляющая запись из сервисного отношения SR, а  – это формула сервисных вычислений. Формулы составляются рекурсивно и имеют один из следующих форматов:  xq y , где q – оператор сравнения параметров QoWS (один из {, , , , , }); x и y могут быть па-
раметрами QoWS или константами;  s.op  t.op , где s.op означает операцию из записи s, а t.op – операцию из записи t; s.op  t.op при-
нимает истинное значение, если t и s имеют одинаковый набор сервисных операций, и ложное в противном случае;  SR(s) , где SR – сервисное отношение; s – переменная, содержащая сервисную запись; отношение
SR(s) принимает истинное значение, если s принадлежит SR, и ложное в противном случае.
Заключение
Практическое применение представленной выше модели и ее математического описания можно продемонстрировать на примере использования сервиса-реестра недвижимости. Сервисный запрос на получение истории покупаемой недвижимости при стоимости выполнения запроса не более 200 рублей может быть составлен следующим образом:
Q1  {s.sid,s[G(history _ report)]|RE(s)  fee(s.history _ report)  200} , где G(history _ report) – граф операций получения history_report; fee(s.history _ report) указывает на стоимость вызова операции; RE (RealEstate) – сервис-реестр недвижимости.
Такая модель охватывает функциональность, поведение и качественные параметры сетевых сервисов, что позволяет осуществлять запросы с указанием критериев необходимого качества обслуживания. В дальнейшем предполагается расширение модели за счет использования математических методов оптимизации и алгоритмов создания плана вызова сервисов с учетом требований пользователя.
Литература
1. Eyhab Al-Masri, Qusay H. Mahmoud. Investigating Web Services on the World Wide Web // WWW 2008. – Р. 795–804.
2. Anbazhagan Mani, Arun Nagarajan. Understanding quality of service for Web services // Материалы компании IBM [Электронный ресурс]. – Режим доступа: http://www.ibm.com/developerworks/library/wsquality.html, свободный.
3. Клименков С.В., Максимов А.Н., Харитонова А.Е. Семантический анализ проектной документации // Научно-технический вестник СПбГУ ИТМО. – 2008. – № 46. – C. 198–202.
4. Бессмертный И.А. Теоретико-множественный подход к логическому выводу в базах знаний // Научно-технический вестник СПбГУ ИТМО. – 2010. – № 66. – C. 43–48.
5. Qi Yu, Athman Bouguettaya. Foundations for Efficient Web Service Selection // Springer – 2009. – 160 c.
Дергачев Андрей Михайлович – Санкт-Петербургский государственный университет информационных технологий, механики и оптики, старший преподаватель, dam600@gmail.com

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 1 (71)

87