Одной из задач исследования является выделение и выражение (в терминах шаблонов ISO 15926-7) концептов, которые используются для описания сервисов. Другими словами требуется указать на язык (онтологию, метамодель), которая может использоваться для моделирования предметной области.
Формализация предметной области в виде набора концептов, их взаимосвязей и ограничений представляет собой онтологическую задачу. Такие задачи не принято решать отдельным исследователям или небольшим коллективам, так как выделение смысла понятия требует рассмотрения всех его аспектов. Это может быть обеспечно только участием множества исследователей и экспертов предметной области. Поэтому для решения поставленной задачи необходимо использовать существующие источники, в которых рассматривается проблема моделирования сервисов. Надо проанализировать и сравнить результаты уже проведенных исследований, понять могут ли они быть использованы для решения
проблемы согласования описания деятельности и описания инфраструктуры, какие средства потребуется добавить в языки моделирования сервисов для этого.
Ниже приведен список основных материалов, которые будут использоваться:
1. Прежде всего, стоит обратить внимание, на продукты организаций по стандартизации (OASIS, The Open Group, OMG). Результатом их работы стало появление целого ряда стандартов и предложений для описания СОА, многие из которых пересекаются в значительной степени.
- OASIS Reference Model for SOA Стандарт определяет типовое описание (reference model) как абстрактную структуру (abstract framework) для обеспечения понимания значимых связей между сущностями предметной области. По сути, типовое описание для СОА идентично онтологии СОА и включает набор концептов, аксиом и их взаимосвязей. Замечание: авторы отмечают, что, хотя выделенные концепты и связи могут применяться в различных "сервисных" окружениях, но предложенные определения сфокусированы на области разработки ПО и не обеспечивают полностью использования вне рамок домена софта.
- The Open Group SOA Ontology Драфт стандарта аналогичный OASIS Reference Model for SOA, но предлагает несколько отличающийся набор концептов предметной области. Отличие SOA Ontology - явно указанное стремление к поддержке моделеориентрованной инженерии СОА. Разработанная онтология выражена и доступна на языке OWL-DL. Замечание: ведутся дискуссии по поводу того, что создано два перекрывающих друг-друга стандарта.
- OASIS Reference Architecture for SOA Второй драфт типовой архитектуры для СОА. Типовая архитектура описывает то, как сущности из онтологии СОА, должны компоноваться для ее реализации. Reference Architecture представляет абстрактные архитектурные элементы (паттерны) и не зависит от конкретных технологий, протоколов и программных продуктов. Одним из преимуществ стандарта является использование ISO 42010 (один из стандартов системной инженерии), в качестве базы для архитектурного моделирования. Вводятся заинтересованные стороны со своими потребностями, группы описаний (view), которые эти потребности удовлетворяют, и методы описаний (viewpoint), с помощью которых создаются view. Подробнее здесь. Выделяются три группы описаний СОА: Service Ecosystem, Realizing SOAs, Owning SOAs. Уже по названиям этих ГО можно определить чьи потребности они удовлетворяют. Замечание: Типовая архитектура обладает тем же недостатком, что и типовой набор методов (reference processes). Они не могут быть использованы организацией в чистом виде, требуется адаптация. Возможно, по аналогии с ситуационной инженерией методов, здесь уместно говорить о ситуационной инженерии архитектуры.
- The Open Group SOA Reference Architecture Драфт стандарта. Типовая архитектура представляется в виде набора слоев (layers), каждый из которых можно отождествить с группой описаний (view) из ISO 42010, однако, явно на это не указывается. Выделены слои: Operation System, Service Components, Services, Business Processes, Consumer, Integration, Quality of Service, Information Architecture, Governance.Уделено вниманию порождению (инстантиниации) конкретной архитектуры из типовой.
- OMG SOA Modeling Language (SoaML) Specification for the UML Profile and Metamodel for Services (UPMS). Расширение UML для моделирования сервисов. Может рассматриваться как нотация для OASIS Reference Model for SOA. SoaML, по сравнению с UML, предоставляет дополнительные возможности для описания слабой связности сервисов, на которой основана СОА. Интеграция с UML позволяет применять порождающее моделирование от моделей абстрактной архитектуры к моделям для конкретной реализации; нотация может применяться для моделирования различных сервисных доменов и различных уровней абстракции сервисов; в планах интеграция SoaML с моделями BPMN, BMM и другими UML-based моделями.
- Эти и другие стандарты, описывающие различные аспекты СОА, во многом повторяют друг друга. Конкурирующие OMG, The Open Group и OASIS совместно выпустили документ Navigating the SOA Open Standards Landscape Around Architecture, в котором предпринята попытка увязать костяк стандартов между собой. В документе, мало внимания уделено недостаткам сушществующих стандартов и тому, насколько они перекрывают друг друга. Необходимо критически подходить к представленной в нем информации. На титульной странице есть интересная OMG Note: This does not represent the official position of the Object Management Group. Видимо, к общему пониманию использования своих стандартов они так и не пришли. Ниже рисунок из этого документа, предлагающий версию связей между основными продуктами:
2. Существует ряд стандартов, сфокусированных на веб-сервисах, которые являются самой распространенной технологией реализации СОА. В них также заложены определенные метамодели. Прежде всего это: SOAP (протокол обмена сообщениями), WSDL (язык описания интерфейсов веб-сервисов), UDDI (стандарт для обеспечения хранения и поиска веб-сервисов), WS-BPEL (взаимодействие веб-сервисов).
Service Component Architecture - модель для построения приложений и систем на основе СОА.
Service Data Object - спецификация для описания данных, обрабатываемых веб-сервисами.
В связи с тем, что стоит онтологическая задача, отдельно надо выделить стандарт
OWL-S: Semantic Markup for Web Services, также известный как WSML (Web Service Modeling Language). Стандарт описывает онтологию веб-сервисов, выраженную на OWL. Рассматривается представление веб-сервиса в качестве процесса (Process как подкласс ServiceModel).
3. Jean-Jacques Dubray интересуется построением систем на основе СОА. Он считает, что развитие методов создания таких систем, существенно тормозится из-за существующего набора стандартов в этой области. Проблема в том, что все эти стандарты предлагают различную интерпретацию концептов предметной области, они разрозенены, под ними нет единой метамодели. Те же метамодели, которые предлагаются стандартизирующими организациями (см. пункт 1), по его мнению, не помогают правильному пониманию СОА, так как проедлагают метамодель сервисов, но не метамодель СОА.
Jean-Jacques Dubray разрабатывал
WSPER - метамодель, которая объединяет концепты из метамоделей WSDL, SCA/SDO и BPEL, и предназначенная для создания описания СОА, которое может быть эффективно использовано при разработке конкретных систем.
WSPER Primer
4. Существует ряд материалов, в которых рассматриваются проблемы моделирования сервисов. Среди них можно выделить:
- "Engineering Service Oriented Systems. A Model Driven Approach" Karakostas B., Zorgios Y. В книге предлагается абстрактное понимание сервиса, которое не ограничивается сферой разработки ПО.
- Работы Thomasa Erl'a и других авторов из серии The Prentice Hall Service Oriented Computing Series. Понимание ориентации на сервисы, как набора принципов проектирования ( "SOA. Principles of Service Design"), легло в основу SOA Manifesto
- Michael Bell (2008). Service-Oriented Modeling: Service Analysis, Design, and Architecture. Wiley. Предложена комплексная методика моделирования сервисов при разработке ПО, включающая в себя набор моделей для различных нужд - Service Oriented Modeling Framework.
- IBM предлагает собственную методику - Service Oriented Modeling and Architecture (SOMA). Сфера примнения методики та же - разработка ПО.
Замечание
Очевидно, что в каждом из этих ресурсов, разный объект рассмотрения. Где-то сервис рассмаривается как концептуальная сущность (средство доступа к функциям ресурса), где-то как технология реализации (веб-сервис, приложение). Кто-то уделяет внимание тому, что такое сервис и как его описывать, кто-то концентрируется на том, как создавать и описывать архитектуру сервисов. Дополнительно, распространена путаница между сервисом (СОА) и сервисом (ITIL).
Необходимо учитывать различия в определениях сервиса в указанных источниках и понимать:
В дальнейшем, планируется рассмотреть указанные вопросы