Принцип детализации услуги
В контексте разработки программного обеспечения и архитектуры программного обеспечения детализация сервисов является ключевой проблемой проектирования при применении парадигмы сервис-ориентации , например, во время сервис-ориентированного моделирования . Детализация сервиса определяет объем бизнес-функциональности и структуру полезной нагрузки сообщения в операции сервиса, которая предоставляется в рамках сервис-ориентированной архитектуры (SOA) .
Определение
[ редактировать ]Детализация сервиса — это как проблема предметной области приложения ( детализация бизнеса ), так и проблема проектирования программного интерфейса ( техническая детализация ); это свойство контракта на обслуживание , предоставляемое поставщиком услуг. Это относится к семантике и синтаксису содержимого входящего (запроса) и исходящего (ответного) сообщения, которое можно рассматривать как экземпляры двух общих шаблонов интеграции предприятия : командного сообщения и документального сообщения . По определению операция крупнодетализированной службы имеет более широкую сферу применения, чем мелкодетализированная служба, хотя эти термины относительны. Первый вариант обычно требует большей сложности конструкции, но может уменьшить количество вызовов, необходимых для выполнения задачи. [1]
Критерии
[ редактировать ]Из-за ошибок распределенных вычислений найти адекватную степень детализации сложно. [2] Единого простого ответа не существует, но существует ряд критериев (см. ниже). Основная цель моделирования сервисов и проектирования с детализацией — добиться слабой связи и модульности , которые являются двумя основными принципами SOA. [3] и удовлетворить другие архитектурно значимые требования .
На степень детализации сервиса влияет множество факторов; [4] Четыре особенно важных фактора, которые следует учитывать при проектировании достаточной детализации, — это производительность, размер сообщения, транзакционность и бизнес-функция:
Бизнес-функция
[ редактировать ]В идеале каждая операция службы соответствует одной бизнес-функции, хотя, если одна операция может предоставлять несколько функций без усложнения конструкции или увеличения размеров сообщений, такая общность может снизить затраты на внедрение и использование.
Производительность
[ редактировать ]Доступ к веб-сервисам осуществляется удаленно, и вызовы операций веб-сервиса создают дополнительные сетевые нагрузки. Уменьшение количества запросов на обслуживание снижает эти накладные расходы.
Размер сообщения
[ редактировать ]Грубо структурированные сервисы могут передавать больше данных, чем детальные сервисы, включая данные, которые не требуются специально для задачи. Это усложняет обработку сообщений в конечной точке и, в свою очередь, может снизить производительность. Уменьшение размера сообщения может потребовать добавления более детальной операции.
Характеристики качества обслуживания, включая транзакционность
[ редактировать ]Для концептуальной ясности каждая операция службы должна выполнять одну транзакцию на уровне системы и оставлять целостность данных за пределами службы на усмотрение бизнес-логики потребителя службы. Это также упрощает восстановление после ошибок и, как правило, упрощает проектирование.
Существует гораздо больше критериев принятия решений для поиска подходящей степени детализации; глобального оптимума не существует. Шестнадцать таких критериев сопряжения взяты из литературы. [5]
Узоры
[ редактировать ]Поскольку один размер не подходит всем, при проектировании детализации сервисов можно извлечь выгоду из многих существующих работ по шаблонам в различных типах распределенных систем, особенно тех, которые связаны с сервисами, а также из работ по шаблонам, связанных с проектированием API (например, проектирование API в объектно-ориентированных системах). ориентированное программирование) и корпоративная интеграция. Обзор таких языков дан здесь .
Ссылки
[ редактировать ]- ^ Джосуттис, Н. (2007). SOA на практике. Севастополь, Калифорния, США: О'Рейли. ISBN 978-0-596-52955-0 .
- ^ Ф. Лейманн «Свободная связь и архитектурные последствия» , основной доклад ESOCC 2016 г.
- ^ Крафциг Д., Банке К., Слама Д. (2004). Корпоративная SOA: лучшие практики сервис-ориентированной архитектуры, 1-е издание. Прентикс Холл. ISBN 978-0131465756 .
- ^ Страница 21 в Циммерманне, О., Руководящие модели и инструменты принятия решений для SOA, облака и проектирования решений для аутсорсинга, http://resources.sei.cmu.edu/asset_files/Presentation/2011_017_001_24654.pdf
- ^ Service Cutter: систематический подход к декомпозиции сервисов, М. Гизель, Л. Кёлбенер и др.. Европейская конференция по сервис-ориентированным и облачным вычислениям, 185-200, ( PDF )
Внешние ссылки
[ редактировать ]- Концептуальная структура детализации услуг
- Запись о детализации услуги в глоссарии услуг
- Cooking EA – Детализация сервиса
- Тематическое исследование IEEE о роли детализации сервиса в успешной реализации SOA
- Архитектурные знания в эталонной архитектуре инфраструктуры SOA (пример SOA)
- Получение права детализации веб-сервиса содержит информацию о принципе детализации сервиса и полезные советы о том, как его правильно реализовать.
- Руководство для практикующего SOA
- Решение проблемы детализации сервиса
- Грубозернистые интерфейсы
- Структура метрик для оценки детализации сервисов SOA
- Каталог инструментов Service Cutter и критериев соединений на GitHub