1. Введение
Веб-сервисы (WS) представляют собой автономные программные компоненты, предназначенные для удалённого обнаружения, вызова и композиции. В то время как семантические подходы (например, OWL-S) направлены на автоматизированное логическое рассуждение, их внедрению препятствуют сложность и стоимость. Следовательно, производственные системы в основном полагаются на синтаксические описания с использованием WSDL (Web Services Description Language). Данное исследование восполняет этот пробел, изучая синтаксические методы композиции WS, в частности, посредством построения и анализа сетей композиции веб-сервисов с использованием трёх устоявшихся метрик схожести строк: Левенштейна, Джаро и Джаро-Винклера. Основная цель — сравнительная оценка производительности этих метрик в выявлении правдоподобных взаимосвязей сервисов, основанная исключительно на синтаксических признаках из реальных WSDL-файлов.
2. Предпосылки и связанные работы
2.1 Семантические и синтаксические веб-сервисы
Парадигма семантических веб-сервисов, продвигаемая такими стандартами, как OWL-S, стремится внедрить машинно-интерпретируемый смысл в описания сервисов с использованием онтологий. Однако, как отмечено в PDF и подтверждено исследованиями Консорциума Всемирной паутины (W3C), широкое внедрение остаётся ограниченным из-за значительных ручных усилий, требуемых для аннотирования, и нерешённых проблем в сопоставлении онтологий. Этот практический барьер поддерживает интерес к надёжным синтаксическим методам, которые могут работать с существующими, несемантическими описаниями WSDL, составляющими подавляющее большинство развёрнутых сервисов.
2.2 Метрики схожести для WSDL
Предыдущие работы по синтаксическому обнаружению, такие как работа [3] в PDF, классифицируют схожесть по измерениям: лексическое (текстовые свойства), атрибутное, интерфейсное (входные/выходные параметры операций) и QoS. Наша работа фокусируется на лексическом и интерфейсном уровнях, применяя универсальные метрики схожести строк к именам элементов (сервиса, операции, параметров), извлечённым из WSDL. Этот подход соответствует тенденциям использования скрытой семантики посредством статистического анализа текста, как видно в методах, подобных LSA (Latent Semantic Analysis), применяемых к веб-сервисам.
3. Методология и построение сети
3.1 Сбор и предварительная обработка данных
В качестве тестовой базы использовалась коллекция реальных описаний WSDL. Каждый WSDL-файл был проанализирован для извлечения ключевых синтаксических элементов: имен сервисов, имен операций и имен параметров. Эти текстовые элементы были нормализованы (приведение к нижнему регистру, удаление специальных символов) для формирования основы вычисления схожести.
3.2 Реализация метрик схожести
Были реализованы и сравнены три метрики:
- Расстояние Левенштейна: Измеряет минимальное количество операций редактирования одного символа (вставки, удаления, замены), необходимых для преобразования одной строки в другую. Нормализованная схожесть вычисляется как $sim_{Lev}(s_1, s_2) = 1 - \frac{edit\_distance(s_1, s_2)}{\max(|s_1|, |s_2|)}$.
- Схожесть Джаро: Основана на количестве и порядке совпадающих символов. Формула: $sim_j = \begin{cases} 0 & \text{если } m=0 \\ \frac{1}{3}\left(\frac{m}{|s_1|} + \frac{m}{|s_2|} + \frac{m-t}{m}\right) & \text{иначе} \end{cases}$, где $m$ — количество совпадающих символов, а $t$ — половина количества транспозиций.
- Схожесть Джаро-Винклера: Вариант, повышающий оценку для строк с общими префиксами. $sim_{jw} = sim_j + (l \cdot p \cdot (1 - sim_j))$, где $l$ — длина общего префикса (до 4 символов), а $p$ — постоянный коэффициент масштабирования (обычно 0.1).
3.3 Процесс генерации сети
Для каждой метрики была построена сеть композиции веб-сервисов. Узлы представляют отдельные веб-сервисы. Ненаправленное ребро создаётся между двумя узлами сервисов, если агрегированный показатель схожести их извлечённых элементов (например, средняя схожесть по всем парам имён операций) превышает предопределённый порог $\theta$. Сети генерировались для диапазона значений $\theta$ для анализа чувствительности.
4. Экспериментальные результаты и анализ
Ключевые итоги производительности
Джаро-Винклер выявил больше семантически правдоподобных связей при более высоких порогах. Джаро создавал более разреженные, потенциально более точные сети при более низких порогах. Левенштейн был более чувствителен к незначительным вариациям в написании.
4.1 Сравнение топологических свойств
Топологическая структура сгенерированных сетей анализировалась с использованием метрик, таких как средняя степень, коэффициент кластеризации и средняя длина пути. Сети, построенные с помощью Джаро-Винклера, последовательно демонстрировали более высокую связность (более высокая средняя степень) и более сильную локальную кластеризацию при сопоставимых порогах, что позволяет предположить, что он более эффективно группирует сервисы с действительно схожим функционалом.
Описание диаграммы (предполагаемое): Линейная диаграмма, отображающая «Плотность сети» в зависимости от «Порога схожести» для трёх метрик, показала бы, что Джаро-Винклер сохраняет более высокую плотность, чем Джаро и Левенштейн, по мере увеличения порога, что указывает на его способность сохранять значимые связи при более строгих критериях.
4.2 Производительность метрик при различных порогах
Исследование выявило явный компромисс:
- Высокие пороги ($\theta > 0.9$): Джаро-Винклер превзошёл другие метрики, всё ещё формируя связную компоненту связанных сервисов, в то время как другие сети фрагментировались. Это согласуется с его конструкцией для сопоставления имён и идентификаторов с общими префиксами.
- Низкие и средние пороги ($\theta \approx 0.7$): Метрика Джаро была предпочтительнее, так как она генерировала меньше ложных рёбер (ложноположительных срабатываний) по сравнению с Левенштейном, который часто связывал сервисы на основе незначительных совпадений строк.
4.3 Проверка статистической значимости
Парные статистические тесты (например, критерий знаковых рангов Уилкоксона) над распределениями сетевых метрик по множеству бутстрап-выборок подтвердили, что различия в среднем коэффициенте кластеризации и центральности по степени между Джаро-Винклером и другими метриками являются статистически значимыми ($p < 0.05$).
5. Техническая основа и математические детали
Основу анализа составляет математическая формулировка метрик. Коэффициент повышения Джаро-Винклера критически важен: $sim_{jw} = sim_j + (l \cdot p \cdot (1 - sim_j))$. Это придаёт существенный вес совпадениям префиксов, что высокоэффективно для технической номенклатуры (например, «getUserProfile» и «getUserData»). В отличие от этого, расстояние редактирования Левенштейна, $d_{Lev}$, одинаково относится ко всем операциям редактирования символов, что делает его менее разборчивым для camelCase или сокращённых терминов, распространённых в дизайне API. Выбор функции агрегации (среднее, максимум, взвешенное среднее) для объединения схожестей по нескольким элементам сервиса также существенно влияет на итоговый вес ребра и топологию сети.
6. Пример использования: сценарий композиции сервисов
Сценарий: Автоматическое предложение цепочки композиции для сервиса «Бронирование путешествий» с использованием только синтаксических данных WSDL.
Применение подхода:
- Представление узлов: Сервисы: FlightSearch, HotelFinder, CarRentalAPI, WeatherService, CurrencyConverter.
- Вычисление схожести: Используя Джаро-Винклер, FlightSearch и HotelFinder имеют высокую схожесть из-за общих имён параметров, таких как «location», «date», «adults». CarRentalAPI также получает высокие оценки с ними. WeatherService и CurrencyConverter показывают более низкую схожесть с основной группой.
- Формирование сети: При пороге 0.85 возникает чёткий кластер, связывающий FlightSearch, HotelFinder и CarRentalAPI.
- Вывод композиции: Кластер сети напрямую предлагает жизнеспособный путь композиции: Цепочка FlightSearch -> HotelFinder -> CarRentalAPI для полного рабочего процесса бронирования путешествий, с WeatherService и CurrencyConverter в качестве потенциальных периферийных сервисов.
7. Будущие применения и направления исследований
- Гибридные семантико-синтаксические системы: Использование синтаксических сетей в качестве быстрого, масштабируемого слоя предварительной фильтрации для сужения круга кандидатов для более ресурсоёмкого семантического логического вывода, аналогично тому, как работает генерация с извлечением в больших языковых моделях (LLM).
- Интеграция с графами знаний API: Встраивание узлов из синтаксических сетей в более крупномасштабные графы знаний API, подобные исследованным в работе APIGraph, обогащая их рёбрами синтаксической схожести.
- Динамическая композиция в микросервисах: Применение этих сетевых моделей в средах выполнения (например, Kubernetes, Istio) для предложения или автоматической композиции микросервисов на основе дескрипторов развёртывания в реальном времени.
- Продвинутые метрики: Исследование схожести на основе эмбеддингов (например, использование BERT или Word2Vec на тексте WSDL) для захвата более глубокого контекстуального смысла, оставаясь при этом «синтаксическими» в смысле отсутствия необходимости в формальных онтологиях.
8. Ссылки
- W3C. (2001). Web Services Description Language (WSDL) 1.1. W3C Note. Retrieved from https://www.w3.org/TR/wsdl
- Martin, D., et al. (2004). OWL-S: Semantic Markup for Web Services. W3C Member Submission.
- Dong, X., et al. (2004). Similarity Search for Web Services. In Proceedings of the 30th VLDB Conference.
- Elgazzar, K., et al. (2010). Clustering WSDL Documents to Bootstrap the Discovery of Web Services. In IEEE International Conference on Web Services (ICWS).
- Zhu, J., et al. (2020). APIGraph: A Large-Scale API Knowledge Graph. In Proceedings of the 28th ACM Joint Meeting on ESEC/FSE.
- Winkler, W. E. (1990). String Comparator Metrics and Enhanced Decision Rules in the Fellegi-Sunter Model of Record Linkage.
9. Экспертный анализ и критические выводы
Ключевой вывод: Эта статья представляет прагматичную и необходимую проверку реальности. Она верно определяет, что грандиозное видение полностью семантических, автоматически компонуемых веб-сервисов застопорилось в производстве из-за сложности, что перекликается с проблемой «пропасти внедрения», наблюдаемой в других областях, управляемых ИИ. Переход авторов к тщательной оценке синтаксических методов — это не шаг назад, а стратегический боковой манёвр в сторону внедряемых решений. По сути, их работа утверждает: прежде чем мы сможем научить машины «понимать» сервисы, давайте сначала усовершенствуем то, как они «видят» и «связывают» их на основе поверхностных паттернов. Это напоминает ранние, высокоэффективные подходы в компьютерном зрении, которые полагались на созданные вручную признаки (как SIFT) до революции глубокого обучения — они работали надёжно с ограниченными данными.
Логическая последовательность: Логика обоснована и сфокусирована на инженерии. Предпосылка: Семантические методы дороги. Наблюдение: Синтаксические данные (WSDL) в изобилии. Гипотеза: Различные метрики схожести строк дадут сети композиции разного качества. Проверка: Построение сетей, анализ топологии. Результат: Джаро-Винклер лучше для высоконадёжных связей; Джаро лучше для более широкого, зашумлённого исследования. Последовательность от распознавания проблемы через методологическое сравнение к практическим рекомендациям ясна и убедительна.
Сильные стороны и недостатки: Основная сила — применение методов сетевой науки к проблеме программной инженерии, обеспечивающее количественный, структурный взгляд на взаимосвязи сервисов. Использование реальных WSDL-файлов заземляет исследование в практичности. Однако значительный недостаток — отсутствие количественной эталонной истины для валидации. Откуда мы знаем, что связь в сети «уместна»? Оценка кажется частично интуитивной. Исследование было бы значительно усилено оценкой сетей по сравнению с эталоном известных, валидных композиций сервисов или использованием сетей для работы рекомендательной системы по композиции с измерением её точности, аналогично тому, как оценивается предсказание связей в анализе социальных сетей.
Практические рекомендации: Для практиков сообщение ясно: Начните с Джаро-Винклера. Если вы создаёте реестр сервисов или рекомендательную систему и вам нужно найти высокосхожие сервисы (например, для дедупликации или высокоточных предложений), реализуйте Джаро-Винклер с высоким порогом. Для исследовательских задач, таких как обнаружение потенциально связанных сервисов в разных доменах, используйте метрику Джаро с более низким порогом. Исследование также неявно выступает за стратегию использования нескольких метрик: используйте разные метрики на разных этапах конвейера обнаружения. Более того, эта работа закладывает основу для рассмотрения экосистемы сервисов как графа — перспективы, фундаментальной для современного DevOps и платформенной инженерии, как видно на примере роста таких инструментов, как Backstage от Spotify, который использует каталог программного обеспечения, смоделированный как граф. Следующий логический шаг — интегрировать эти рёбра синтаксической схожести в такие порталы для разработчиков, чтобы автоматически предлагать зависимости и композиции.