Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
25-27.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
59.79 Кб
Скачать
    1. Классификация сервисов

Для удобства сервисы классифицируют по следующей схеме:

  • Application frontends – хотя они и не являются сервисами, они являются неотъемлимой частью SOA. Они инициируют все бизнес процессы и получают конечный результат. Типичными примерами application frontend’ов являются GUI или batch (пакетные) процессы.

  • Basic services – являются фундаментов в SOA. Они представляют основные элементы вертикального домена. Базовые сервисы могут быть дата- или логик- ориентированные.

  • Intermediary services – разделяются на технологические шлюзы (technology gateway), адаптеры, фасады и сервисы добавляющие функциональность (functionality-added services). В отличие от process centric services промежуточные сервисы не содержат состояния (stateless).

  • Process centric services – инкапсулируют знания о бизнес процессе организации. Этот тип сервисов как правило поддерживает состояния, т.е. является stateful.

  • Public enterprise services – предоставляют интерфейсы для взаимодействия между предприятиями. По эти причинам они как правило менее детализированы (coarse-grained) и предоставляют такие необходимые механизмы как безопасность (security), биллинг (billing) и отказоустойчивость.

Выделенные типы сервисов обладают радом различающихся характеристик.

Basic services

Intermediary services

Process-centric services

Public enterprise services

Описание

Простые дата- или бизнеслогика- ориентированные сервисы

Технологические адаптеры, мосты и фасады (adapters, façades, gateways)

Инкапсулируют логику процесса

Сервис, разделяемый с другим предприятием или партнёрами

Сложность реализации

От низкой до средней

От средней до высокой

высокая

Зависит от конкретного сервиса

Управление состоянием (state management)

Нет (stateless)

Нет (stateless)

Да (stateful)

Зависит от конкретного сервиса

Переиспользуемость (reusability)

высокая

низкая

низкая

Высокая

Частота изменений

низкая

От умеренной до высокой

высокая

низкая

Обязательно для архитектуры SOA

да

нет

нет

Нет

Basic Services

Базовые сервисы являются основным компонентом в архитектуре SOA. Они являются простыми сервисами и не поддерживают состояние. Различают два вида базовых сервисов – дата- и логика-ориентированные. В действительности, это различие весьма условное и граница между типами сервисов достаточно прозрачная. Деление на эти два подтипа обусловлено чисто академическими принципами.

Сервисы ориентированные на данные (data oriented services)

Их основной задачей является предоставление услуг по сохранению и поиску данных, блокировка и поддержка транзакций. В чистом виде такие сервисы не предоставляют никакой бизнес логики по обработки этих данных., за исключением, возможно бизнес валидации. Основным отличием от технических сервисов обработки данных является их вертикальное выделение. В то время как обычные технические сервиса (например Data Access Layer) предоставляют услуги по работе с абстрактными данными для всей системы (или приложения), бизнес сервисы предоставляют услуги по сохранению лишь связанной группы сущностей, например, заказ на поставку товара. Как следствие большое приложение требует наличия нескольких data-centric service’ов.

Одной из основных задач создания SOA архитектуры является выделение основных сущностей, наподобие того, как это делается в ER-моделях (сущность-связь). Однако, важно понимать, что полученные сущности являются лишь входными и выходными данными для сервисов. Важным отличием является то, что сервисы не могут содержать взаимосвязи друг на друга, как это можно сделать, например, в связанном графе объектов.

Проектирование data-oriented сервисов порождает ряд проблем, с которыми разработчики не сталкиваются при проектировании единой монолитной схемы данных. Это проблема владения данными. Т.е. в данном случае - какую сущность отнести к какому сервису. Сразу возникает ряд связанных проблем с распределением транзакционности.

Logic-centric Services

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]