Ontology-based Software Engineering

НОВЫЕ ПОДХОДЫ К ПРОЕКТИРОВАНИЮ АРХИТЕКТУРЫ ПРОГРАММНЫХ КОМПЛЕКСОВ

1. В последнее время ощущается необходимость интеграции и взаимодействия приложений в рамках совокупности большого количества информационных систем предприятия или нескольких предприятий. Наблюдаются тенденции перехода к бизнесу “реального времени” и созданию систем так называемого “расширенного предприятия”, объединяющего само предприятие, его поставщиков, партнеров и клиентов в единую систему. Поэтому требуется взаимодействие приложений как в рамках одной информационной системы, так и между системами отдельных участников бизнес-процесса.

Выход из создавшегося положения, активно развиваемый ведущими поставщики информационных технологий, такими как IBM, Microsoft, Oracle и другими, состоит в переходе от централизованной инфраструктуры информационных технологий и замкнутого на себе функционала прикладных систем к архитектуре, обеспечивающей возможности быстрого создания новых систем из набора доступных сервисов, т.е. переходе на сервисные модели взаимодействия между приложениями общей системы в рамках так называемой сервис-ориентированной архитектуры (Service-oriented Architecture SOA) и ее реализации с помощью процессно-ориентированных моделей функций предприятия (Model-driven architecture MDA).

2. Сервис-ориентированная архитектура (SOA) является стилем архитектуры ПО, которая обеспечивает планирование использования информационных технологий в виде модульных бизнес-сервисов для достижения конкретных бизнес-целей. SOA является концептуальной архитектурой бизнеса, где бизнес-функциональность, или логика приложений, становится доступной для пользователей SOA как множество многократно совместно используемых сервисов в ИТ-сети. Сервисы в SOA является модулями бизнес-процесса, или модулями функциональности приложения с открытыми интерфейсами, вызываемыми с помощью сообщений. Основная причина появления SOA – заветная мечта индустрии программирования о замене «ручного» кодирования программ «от и до» на «промышленную» сборку приложений из «стандартных комплектующих», как это происходит в автомобильной или других «традиционных» отраслях промышленности. Компоненты программы могут размещаться на различных узлах сети и представлять собой независимые, слабо связанные, заменяемые сервисы-приложения.

Для бизнеса SOA означает удовлетворение потребностей клиентов, реальную гибкость бизнеса, быстрое время выхода на рынок, простоту сотрудничества и низкую стоимость бизнеса. Для ИТ-организаций SOA означает большую производительность, снижение затрат на ИТ-решения за счет ускорения разработки приложений, более мягкого повторного использования сервисов, более высокого качества приложений, и в целом более быстрого реагирования на запросы бизнес-клиентов для улучшения и модификации системы. Дополнительно к этому существует возможность использования сервисов независимых поставщиков, что обеспечивает еще большую ценность SOA. Более того, даже интеграцию унаследованных приложений (legacy) целесообразно проводить с применением данной технологии, когда определенная, наиболее важная часть существующей функциональности как бы “инкапсулируется” и представляется стандартизированным интерфейсом. В случаях, когда сервисы представляют собой реализации вычислительных процедур, говорят о системах сервис-ориентированных вычислений SOC (Service-oriented Computing).

3. На сегодня усилиями ведущих ИТ компаний мира созданы методология и инструментарий проектирования сервисно-ориентированных систем, наиболее полно отраженные в многосерийной публикации Industrial SOA.-http://www.oracle.com/technetwork/articles/soa/ind-soa-toc-1934143.html. Они ориентиро-ваны на разработку приложений, в основном, с использованием web-сервисов (служб). Под web-сервисами понимаются программные системы, которые используют XML (Extensible Markup Language) в качестве формата данных, стандарты Web Services Description Language (WSDL) для описания своих интерфейсов, Simple Object Access Protocol (SOAP) для описания формата принимаемых и посылаемых сообщений и стандарт Universal Description, Discovery and Integration (UDDI) для создания каталогов доступных сервисов. Для комбинирования сервисов в необходимые приложения предложены процедуры “хореографии” и оркестровки“, при этом хореография веб-сервисов определяет взаимодействие между сервисами с помощью обменных уведомлений, а оркестровка описывает взаимодействие сервисов в рамках одного бизнес-процесса, в частности, с использованием языка типа WS-BPEL (Web Services Business Process Execution Language). Проще всего бизнес-процесс представить в качестве простой оркестровки веб-сервисов, которая составляет поток задач (workflows), согласно которому последовательно подключаются сервисы, при этом каждый сервис следует за предыдущим без промедления или пробела и его действие заканчивается как раз перед тем, как начинается действие следующего сервиса.

4. Компанией IBM для удовлетворения потребностей сервис-ориентированного ИТ-предприятия предложена операционная среда реализации компонентов SOA (ODOE – On Demand Operating Environment), основными составляющими которой являются:

Сервисы приложений (Application Services) – включают в себя все компоненты, которые необходимы, чтобы построить скомпонованную информационную систему.

Сервисная шина предприятия (Enterprise Service Bus – ESB) выступает как интеллектуальный слой для подключения информационных систем, различных данных и других сервисов, которые обычно распределены по всей ИТ среде предприятия.

Бизнес-сервисы (Business Services) – это открытая часть бизнес-процессов и бизнес-функциональности, к которой обращаются и которая обеспечивает реализацию заданной ценности на запрос.

Общие сервисы (Common Services) – компоненты общих сервисов обеспечивают персонализацию доставки и индивидуальной обработки, а также другие утилиты, такие как отчетность. Эти сервисы позволяют определять и выполнять условные потоки, в основном для логических сервисов бизнес-функций, а также любой другой сервис.

Сервисы информационного менеджмента (Business Performance Management) – обеспечивают унифицированный способ представления, доступа,

поддержания, управления, анализа и интеграции данных и контента из гетерогенных информационных источников.

Сервисы инфраструктуры (Infrastructure Services) – это набор независимых от платформы сервисов, который позволяет всем другим сервисам быть установленными, выполняться и контролироваться в конкретной инфраструктуре, составленной из операционных систем и сетевых и аппаратных систем.

Информация о наиболее известных средствах разработки сервисов приведены в табл.1. Следует также отметить, что на сегодня существует ряд известных репозитариев сервисов общего назначения, например, таких как:

• Amazon Web Service Developer Connection (http://Developer. amazonwebservices.com)

• XML Web Services Repository (www.xmlwebservices.cc)

• UDDI service registry (www.uddi.org)

• Xmethod service registry (xmethods.net/)

• IBM UDDI (http://www-306.ibm.com/software/ solutions/webservices/ uddi/).

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

Такой репозитарий мог бы стать основой для создания среды знаний о сервисах, или Service Science Knowledge Environment, которая объединит научные круги, промышленность и правительство, а также другие европейские институты. При этом ресурсы знаний первой очереди могут относиться к различным доменным приложениям, таких как: электронная администрация, электронное правительство, электронное здравоохранение, производство, энергопотребление с акцентом на возможности SmartGrid сети, передовые программные сервисы, цепочки поставок и логистики, сервисы туризма и отдыха, передовые сервисы в области телекоммуникаций. Список сервисных секторов, обеспечивающих реальный вклад в современную экономику, не ограничивается перечисленными выше названиями. Умный транспорт, умные здания, интеллектуальное водоснабжения – это только некоторые другие сервисные сектора возможного применения, для которых новые сервисы могут быть задуманы и разработаны.

Веб-сервисы, описанные на языка WSDL, содержат преимущественно синтаксическую информацию, и это затрудняет организацию автоматического поиска веб-сервиса и выполнение композиции сервисов. Поэтому было (кроме введения в описания семантических аннотаций) предложено непосредственно использовать семантическую информацию в веб-сервисах, в результате чего появилось понятие семантических веб-сервисов (SWS) со своими языками описания, представителем которого можно назвать OWL-S (Web Ontology Language for Web Services) и WSMO (Web Service Modeling Ontology). SWS создаются на базе существующей технологии веб-сервисов для обеспечения динамического поиска сервисов, их композиции, вызова веб-сервисов. Результатом этого является возможность автоматизации этих процедур, которые в настоящее время требуют вмешательства разработчиков программного обеспечения. Но как это может быть достигнуто? Подход к решению задачи заключается в использовании более точных описаний семантических веб-сервисов, которые понятны для компьютера.

6. SOA с помощью веб-сервисов становится основой для объединения разнородных бизнес-систем через Интернет. С помощью SOA функциональные потребности предприятия в корпоративных системах удовлетворяются набором сервисов, а не отдельным приложением, что фундаментально меняет подходы разработчиков к реализации. Конфигурация и координация сервисов в архитектуре, основанной на сервисах, и композиция сервисов и процессов одинаково важны в современных системах сервисов. Как отмечалось выше, сервисы взаимодействуют друг с другом с помощью сообщений. Сообщение можно осуществить с помощью шаблона «запрос-ответ», когда в определенный момент времени только один из конкретных сервисов вызывается одним потребителем (связь «один-к-одному», или синхронная модель); с помощью шаблона «публикация / подписка», когда на одно конкретное событие может откликнуться много сервисов (связь «один-ко-многим», или асинхронная модель); с помощью интеллектуальных агентов, которые определяют координацию сервисов, поскольку каждый агент имеет в своем распоряжении определенную часть знаний о бизнес-процессе и может обмениваться этими знаниями с другими агентами.

7. В ИПСА НТУУ «КПИ» исследуются гибридные сервисно-ориентированные архитетуры, управляемые событиями (EDSOA), в которых сервисы генерируют события и тем самым переводят бизнес процесс из одного состояния в другое. В свою очередь, благодаря событиям сервисы подключаются для передачи состояния процесса и данных от одного сервиса, который обнаружил и опубликовал событие, к другим сервисам, запускаемым при появлении конкретных событий.

Только формирования бизнес-сервисов и бизнес-событий, а затем их целевая увязка для решений задач бизнеса позволяет добиться стратегических преимуществ для предприятия. При этом необходимо «накинуть» на всю программную инфраструктуру организации «сеть» программных датчиков и программных агентов, а также аппаратных датчиков, которые следят за событиями во всех аппаратных и программных компонентах, отслеживают значимые для бизнеса события и передают в центр принятия решений сигналы, ассоциированные с этими событиями. Это позволяет технологически управлять бизнесом не вслепую, а иметь четкую картину всего, что происходит в данный момент на предприятии.

8. В последние годы исследуется концепция разработки систем сервисов на базе онтологий разного уровня (Domain, Application, Task ontologies). Онтологии, описанные на языке OWL, – это формальное явное описание понятий в данной предметной области. В центре большинства онтологий находятся классы. Например, класс Action может представлять все процедуры (запуска задач, передачи данных, контроля потока данных и т.д.). Конкретные процедуры – это экземпляры этого класса. Класс может иметь подклассы, которые представляют более конкретные понятия, чем надкласс. Слоты описывают свойства классов и экземпляров: процедура Tаsk может содержать файл (containsFile), создавать ресурс (createsResource) или зависеть от определенных условий (hasDependency).

Слоты могут иметь различные фацеты, которые описывают тип значения, числовые значения, разрешенные пределы их изменения и др. Онтология вместе с набором индивидуальных экземпляров классов образует базу знаний. На самом деле, трудно определить, где заканчивается онтология и где начинается база знаний. Группой управления объектами OMG (Object Management Group) предложена иерархическая система уровней описания семантики системы сервисов при ее моделировании, которая состоит из информационного уровня (М0), уровня моделей (М1), уровня метамодели (М2) и уровня мета-метамодели (М3), который часто называют Meta Object Facility (MOF).

9. Процесс проектирования системы сервисов может быть смоделирован как процесс преобразований моделей, начиная с метамодели в качестве входных данных и используя набор правил преобразования. При этом преобразование само по себе является также моделью. Модели преобразования могут иметь различные области применения:

• Создание моделей нижнего уровня, и в итоге программного кода, двигаясь от моделей более высокого уровня.

• Отображение и синхронизация между моделями на том же уровне или на различных уровнях абстракции.

• Создание представления о системе на базе запросов.

• Эволюция задач модели, таких как рефакторинг модели, т.е. изменение внутренней структуры системы с целью сделать её проще для понимания и внесения дальнейших изменений, при этом не изменяя существующей функциональности.

• Обратное проектирование от моделей нижнего уровня или кода модели более высокого уровня.

Преобразование моделей является ключевым элементом в проектировании систем сервисов, обеспечивая плавное средство обработки входящих онтологических моделей с целью генерирования, фильтрации и обновления целевых моделей. Языки преобразования моделей реализуют различные типы преобразования, такие как модель-модель (ММ) или модель-код (МК). Особенностью данного подхода является то, что разработчик большую часть времени работает не с кодом, а с моделями.

10. Для трансформации моделей предложен модельно – управляемый подход (MDA). MDA использует MOF-основанные модели для создания и манипулирования точными, подробными, компьютерно-считываемыми описаниями структуры приложений, не зависящих от языков программирования, операционных систем или баз данных, которые могут быть использованы для их реализации. Следует отметить, что ключевым стандартом MDA является MOF, а не UML, как некоторые люди до сих пор верят.

MDA можно использовать, чтобы получить контроль и систематически улучшать весь жизненный цикл ИТ-решений: от моделирования общего бизнеса (содействия эффективной связи между бизнес-аналитиками и IT разработчиками и выполнению конкретных требований к решению) до разработки, внедрения, интеграции и управления многими видами программных артефактов. MDA на основе трехслойного подхода обеспечивает:

Вычислительную независимую модель CIM (Сomputing Independent Model), которая описывает систему с вычислительной независимой точки зрения, освещая структурные аспекты системы, изменяя акцент от моделирования домена на моделирование архитектуры.

Независимую от платформы модель PIM (Platform Independent Model), которая может рассматриваться как определение системы с точки зрения технологии нейтральной виртуальной машины или вычислительной абстракции.

Модель для конкретной платформы PSM (Platform Specific Model), которая, как правило, охватывает технические концепции и сервисы, составляющие платформу реализации. То есть эта модель направлена на конкретную технологию реализации системы сервисов.

Метамодель описывает свойства и конструкции каждой из CIM, PIM и PSM моделей точно. В нашем контексте выбирается платформа на основе веб-сервисов. Поставщик сервисов создает абстрактное описание интерфейса сервиса, который может быть использован потенциальными пользователями сервисов, для того, чтобы можно было найти и вызвать этот сервис с помощью сообщений на основе XML. Параметры веб-сервисов при обращении к репозиторию, в котором потенциальные пользователи могут искать соответствующие сервисы, а также протоколы для связи сервисов и их клиентов – образуют платформу реализации как сервис-ориентированную архитектуру.

Различные типы платформы могут отличаться. Общим свойством платформы является ее сервисно-ориентированная архитектура, а конкретными технологиями реализации – сами веб-сервисы и сервисные механизмы (например, Apache Axis или Oracle BPEL). Как уже отмечалось выше, метамоделирование является одним из самых важных понятий MDA. Онтологии рассматриваются как CIM модели, поэтому концептуальные модели PIM и PSM также отражают семантику для данного домена приложений, соответствующую семантике доменов реального мира (Real World) независимо от конкретных потребностей приложений. Таким образом, онтология выступает в качестве основы метамодели для того, чтобы генерировать концептуальные модели для реализации конкретных информационных систем.

11. Возможное слияние онтологического и MDA подходов приводит к следующему возможному процессу разработки программного обеспечения:

(А) Построить независимые общую (GO) и доменную (DO) онтологии. Часть DO использовать в качестве вычислительной независимой модели (CIM).

(Б) Преобразовать CIM в независимую от платформы модель (PIM).

(В) Преобразовать PIM в модель конкретной платформы (PSM) и артефакт зависимых моделей (например, модель схемы базы данных), и определить методику сравнения и поиска сервисов.

(Г) Превратить части онтологий DO и GО в онтологию контекста (CO).

(Д) Применить преобразования PSM в коды приложений и программных артефактов.

При создании модели конкретной платформы (PSM) осуществляется поиск необходимых сервисов через сеть, при этом используются онтологии для повышения точности поиска сервиса и открытие такого сервиса, в котором упоминается в точности искомое понятие, а не произвольных сервисов, в описаниях которых встретилось заданное ключевое слово. Общеизвестно, что в различных предметных областях одни и те же понятия могут быть представлены различными терминами. Механизм онтологии в этих случаях позволяет формировать осмысленные иерархические взаимосвязи между сервисами, то есть реализовать композицию сервисов, способную удовлетворить запрос пользователя, хотя в ее описании может не быть некоторых ключевых слова из входного запроса.

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

Наука о сервисах (которая развивается довольно активно) имеет по своей сути междисциплинарные признаки с долгосрочной целью стать действительно междисциплинарной отраслью. Ключевой движущей силой науки о сервисах является желание промышленности получить (в потенциально огромных количествах) новый тип профессионалов. Новый профессионал должен иметь глубокие знания в нескольких существующих дисциплинах, а также иметь навыки интегрирования науки и искусства дизайна сервисов и реализации ценностей путем объединения технологий, бизнес-модели, и социально-организационных инноваций для улучшения бизнес- и социальных систем. Подготовка таких специалистов нового типа – сервисных специалистов - с сентября 2016 начинается в ННК «ИПСА» НТУУ «КПИ» для нужд сервисной экономики Украины и отечественной ИТ-индустрии в рамках отдельной специализации «Системное проектирование сервисов» новой специальности «Компьютерные наук и информационные технологии».

Предлагаемые темы сквозных выпускных работ «магистр – доктор философии»:

  1. Автоматическое преобразование онтологии системы сервисов с описанием на языке OWL в исполнительный код на языке  Java (AutomaticMappingofOWLOntologiesintoJava
  2. Трансформация системы здравоохранения благодаря использованию технологий больших данных (TransformingHealthCareThroughBigData)
  3. Сервис-ориентированная архитектура с самоорганизацией на базе модели многоагентного взаимодействия потоков исполнения, адаптирующегося к динамическим условиям среды(Service-oriented architecture with self-organization).
  4. Онтологическая основа (framework) разработки платформенно-независимых инженерных систем, основанных на знаниях, в электронно-вычислительной промышленности

Предлагаемые темы бакалаврскихработ:

1. Инструментарий разработки и развертывания семантических сервисов

2. Исследование автоматизированного инструментария для разработки семантически аннотированных веб-сервисов

3. Сервисы мобильной системы взаимодействия хронических больных и врача

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>