Современные информационные технологии/2. Вычислительная
техника и программирование
Немеров А.А.
Томский государственный
университет систем управления и радиоэлектроники, Россия
Классификация сервисов в
сервис-ориентированной архитектуре
В
связи с многообразием сервисов возникает необходимость классификации.
Классификация позволяет отнести сервис к определенной категории и,
следовательно, определить совокупность унаследованных свойств, характерных для
всех сервисов данной категории. Существуют различные способы классификации
сервисов. В данной работе предложены следующие:
• фундаментальная классификация;
• классификация по целевой аудитории;
• классификация по доступу к данным;
• классификация бизнес-логики;
• классификация по уровню интерфейса;
• классификация по значимости для системы;
• классификация по требованию к качеству
обслуживания.
Фундаментальная классификация сервисов. Фундаментальная классификация делит сервисы по категориям,
слоям и этапам расширений [1, 2]. Сервисы делятся на следующие категории:
• Простые сервисы;
• Составные сервисы;
• Сервисы бизнес-процессов.
Иногда,
к этим категориям добавляют четвертую: общедоступные бизнес-процессы. Как
сервисы соотносятся со слоями и этапами расширений можно увидеть на рисунке 1.

Рисунок
1 - Фундаментальная классификация: слои и этапы расширения
Нижний
слой – простые сервисы. Они образуют первый этап расширения, называемый
фундаментальный этап. Средний слой — составные (сложные) сервисы, которые
совместно с простыми сервисами образуют второй этап расширения: объединяющий
этап. Третий этап расширения – этап поддержки процесса. Его образуют все слои
вместе.
Простые
сервисы — это нижний слой, который предоставляет базовую функциональность.
Обычно эти сервисы невозможно или не имеет смысла делить на более мелкие
сервисы. Как правило, роль этих сервисов инкапсулировать работу с сервером,
чтобы потребители имели к нему доступ через общий интерфейс СОА. Эти сервисы
решают мелкие задачи, работая напрямую с операционной системой. Простые сервисы
делятся на 2 типа: сервисы, работающие с данными, и сервисы, работающие с
логикой. Сервисы, работающие с данными, осуществляют преобразование данных. Как
правило, это небольшая атомарная операция с данными. Более сложные манипуляции
с данными проводят составные сервисы. Сервисы, работающие с данными, могут
работать с базой данных, файлами, устройствами ввода-вывода и т.п.
Сервисы, работающие с логикой реализуют
некоторый простейший алгоритм бизнес-логики. Например: для систем с линейной
алгеброй одним из простейших сервисов может быть сервис, осуществляющий
перемножение матриц.
Составные
сервисы при своей работе используют другие сервисы. Используемые сервисы могут
принадлежать слою простых или составных сервисов. То есть составные сервисы
могут использовать сервисы своего слоя, чего не могут себе позволить простые
сервисы. В терминологии СОА составление сервисов из других сервисов называется
оркестровкой. Составные сервисы работают на более высоком уровне, чем простые
сервисы и решают более сложные задачи. Составные сервисы не работают напрямую с
операционной системой, они обращаются к простым сервисам (возможно системным).
То есть алгоритм, который реализует составной сервис, полностью состоит из
вызова простых сервисов.
Верхний
слой составляют сервисы бизнес-процесса. Это те сервисы, с которыми работают
пользователи. Каждый сервис решает свою задачу, результат которой интересен для
конечного пользователя. В качестве примера можно привести сервис идентификации
человека в видеопотоке или фрактальное сжатие изображения.
Классификация по целевой аудитории. Сервисы можно классифицировать по их доступности. Одни
сервисы могут быть доступны всем, другие доступны только сервисам более
высокого уровня. В рамках этой классификации деление может быть следующим:
• сервисы, доступные всем (публичные
сервисы);
• сервисы, доступные определенному кругу
людей (например, тем, кто за них заплатил или работникам определенного отдела
на предприятии). В этой категории может быть несколько подкатегорий. Это могут
быть сервисы доступные всем работникам организации и сервисы доступные только
определенному отделу.
• Сервисы, доступные только другим
сервисам внутри системы (системные сервисы).
Классификация по доступу к данным. Все сервисы можно условно разделить на сервисы только для
чтения и сервисы изменения данных. Сервисы только для чтения не изменяют данных
системы, а могут только считывать их и трансформировать для передачи за пределы
системы. Сервисы изменения в процессе своей работы имеют потенциальную
возможность изменить данные системы.
Классификация бизнес-логики. Сервисы верхнего слоя (Process Services) решают задачи
конечного пользователя в определенной предметной области. Внутри этой области
сервисы также можно классифицировать по решаемой задаче. Если взять область
работы с изображениями, то здесь сервисы можно разделить на сервисы обработки и
сервисы анализа изображений; на сервисы, работающие со статическими
изображениями, и сервисы, работающие с видео, и т.п. Исходя из классификации
предметной области, можно будет принимать определенные решения при работе с
сервисами. Известно, что в общем случае задачи анализа изображений сложнее, чем
задачи обработки, на этом основании мы можем выделить больше ресурсов для задач
анализа.
Классификация по уровню интерфейса.
• SaaS — Software
as a Service. Приложение, предоставляемое как сервис;
• PaaS — Platform as a Service. Платформа,
предоставляемая как сервис;
• IaaS — Infrastructure as a Service.
Инфраструктура, предоставляемая как сервис.
Внутри
этих категорий иногда встречаются подкатегории. Например, DaaS (Desktop
as a Service) [3].
Классификация по значимости для системы. Набор сервисов в системе может изменяться: сервисы могут
добавляться и удаляться. Однако в системе могут существовать сервисы, от
которых зависит работа системы. Набор таких сервисов должен быть жестким и
недоступным для удаления.
Классификация по требованию к качеству
обслуживания. Под качеством
обслуживания здесь подразумевается критичность сервиса к скорости работы
системы. Можно разделить все сервисы 2 категории: сервисы реального времени и
сервисы, не требующие выполнения в реальном времени.
Литература:
1. Josuttis N. SOA
in practice. – O’Reilly, 2007 – 344p
2. Erl T. SOA
Design Patterns. – Prentice Hall, 2008 – 864p
3. Jefferey K. The
future of cloud computing / Jefferey K., Neidecker-Lutz B. // Cloud Computing
Expert Group Report 2009 [Электронный
документ]. – Режим доступа:
http://cordis.europa.eu/fp7/ict/ssai/docs/cloud-report-final.pdf,
свободный (дата обращения: 02.12.2013)