В тематической подборке пять статей. Приглашенные редакторы тематической части номера — Джинг Донг, Реймонд Пауль и Лиан Джай Джанг. Их вводная заметка называется «Сервис-ориентированные архитектуры с гарантией качества» (High-Assurance Service-Oriented Architectures).
Новые достижения в области сервисных технологий обеспечивают регистрацию, обнаружение, запрос и предоставление программных сервисов. Сервисный подход пронизывает сегодня многие аспекты современного общества — от планирования, принятия решений и модернизации индустрии услуг до мультимедийных интерактивных интерфейсов. Однако, несмотря на переход от традиционных систем к сервисной парадигме, требования гарантирования качества сервисов остаются теми же. К сожалению, добиться выполнения требований гарантии качества для сервисных систем труднее, чем для традиционных систем, основанных на непосредственном использовании компьютеров, поскольку сервисы могут разрабатываться собственными силами или поставляться сторонними разработчиками. Кроме того, сервисы в сетевой инфраструктуре допускают территориально-распределенные взаимодействия и дистанционное управление, что повышает важность безопасных коммуникаций и оперативного доступа к удаленным системам.
В прошлом практические методы разработки систем с гарантированным качеством ориентировались главным образом на системы, основанные на непосредственном использовании компьютеров. Однако существующие методы могут не совсем подходить для разработки в сервисной среде: отсутствует какой-либо стандартный способ определения свойств гарантированного качества; в интерфейсах сервисов обычно специфицируются функциональные аспекты — вводные и выводные параметры, предусловия и эффекты выполнения (input, output, preconditions, effects — IOPE); свойства гарантированного качества сервиса остаются в интерфейсе сервиса вообще неопределенными или определяются некоторым случайным образом. Все это создает новые трудности при поиске сервиса с требуемыми гарантируемыми характеристиками качества.
Кроме того, новые проблемы возникают при композиции сервисов, в особенности при динамической композиции — нужно не только взаимное соответствие IOPE-параметров компонуемых сервисов, но также, чтобы удовлетворялись системные требования в целом. При композиции сервисов могут возникать сложные потоки работ, сильно затрудняющие анализ требований к гарантированному качеству. Поэтому для успешного перехода к сервисным системам с гарантированным качеством требуется адаптация существующих методов при одновременной разработке новых подходов.
Первая статья подборки, которую написали Пол Тауненд, Джай Ксу, Ник Лукер, Даченг Жанг, Джин Пенг Хуэй, Джин Ксин Ли и Лианг Жонг, называется «CROWN-C: grid-система промежуточного слоя с гарантией качества» (CROWN-C: A High-Assurance Service-Oriented Grid Middleware System).
Сервис-ориентированную архитектуру можно определить как архитектуру приложений, в которой все функции выполняются в независимых сервисах, вызываемых в указываемых последовательностях, образующих бизнес-процессы. SOA облегчает разработку сложных межорганизационных программных систем, а также интеграцию существующих унаследованных систем.
Слабая связанность сервисов со строго определенными интерфейсами позволяет конструировать приложения, которые в соответствии с текущими потребностями пользователей обнаруживают во время выполнения автономные системные компоненты и связываются с ними. Для быстрого создания систем с динамическими условиями выполнения и запросами ресурсов разработчики могут использовать процесс «чрезвычайно отложенного связывания» (ultralate binding). Конкретные функциональные возможности приложений можно частично изменять простым изменением композиции используемых в них сервисов.
Слабо связанная природа SOA означает также, что разработчики могут повторно использовать сервисы в разных приложениях, а доступность нескольких функционально эквивалентных сервисов может сокращать время и стоимость разработки и способствовать созданию отказоустойчивых систем.
В grid-сообществе сервисная парадигма используется для создания сервис-ориентированных grid-систем (service-oriented grid, SOG). Этот подход помогает координировать совместное использование ресурсов и решать задачи в виртуальных организациях (virtual organization, VO). VO образуется всякий раз, когда разработчик создает приложение или поток работ, где используются автономные сервисы, принадлежащие нескольким организациям, каждая из которых делится проприетарными сервисами или частью своего знания.
Однако подход SOG порождает много новых проблем, которые не стоят перед разработчиками традиционных распределенных систем. Эти проблемы, главным образом, связаны с гарантоспособностью систем, поскольку требования к этим системам существенно выше тех, которые ставятся перед обычными системами. Такие проблемы относятся как к композиции потоков работ, так и к базовым сетевым средам, являющимся неоднородными и охватывающими много административных доменов. Гарантоспособность можно определить как свойство компьютерной системы, позволяющее пользователям доверять сервисам, которые она им предоставляет. Традиционно гарантоспособность охватывает такие качества системы, как доступность (availability), защищенность (safety), целостность (integrity), удобство эксплуатации (maintainability), конфиденциальность (confidentiality) и надежность (reliability).
Многие проблемы гарантоспособности проистекают из автономности отдельных сервисов, участвующих в потоках работ VO. Например, у участника VO отсутствует контроль над доступностью сервисов, предоставляемых другими участниками. Участник VO также может очень мало знать (или не знать ничего) о надежности таких сервисов, процедурах доступа, сохраняющих конфиденциальность данных и процедурах, совместно используемых вместе с этими сервисами, защищающих их целостность.
На гарантоспособности сервисных систем сильно сказываются используемые программные средства промежуточного слоя, информация об устойчивости собственно программного обеспечения практически отсутствует. При конструировании таких систем организации не доверяют сервисам сторонних производителей, предпочитая создавать собственные сервисы, для которых у них имеется статистика качества обслуживания. В обоих случаях отсутствуют методы оценки гарантоспособности.
Динамическая природа SOA-приложений часто приводит к появлению непредсказуемых потоков работ и бизнес-процессов. Поскольку в каждой организации, входящей в состав VO, имеются собственные механизмы безопасности и политики защиты своих локальных ресурсов, композиционное приложение должно функционировать в нескольких разнородных областях безопасности (security realm). Область безопасности — это группа принципалов (людей, компьютеров, сервисов и т.д.), зарегистрированных с применением соответствующей системы аутентификации и управляемых на основе согласованного набора безопасных процессов и политик.
Поскольку организации и сервисы могут взаимодействовать динамически и гибко, не для каждой пары взаимодействующих областей безопасности могут иметься соглашения по поводу аутентификации. Возможное решение этой проблемы состоит в образовании некоторых вспомогательных областей, обеспечивающих путь аутентификации между двумя раздельными взаимодействующими областями. Однако создание такого пути аутентификации чревато существенными накладными расходами. Этот процесс может включать в себя многочисленные дополнительные операции для преобразования удостоверяющей информации, и в нем требуется длинная цепочка промежуточных вызовов. Кроме того, во многих случаях такие пути аутентификации между областями безопасности просто не могут существовать.
Еще одна проблема, относящаяся к безопасности, состоит в том, что традиционные методы контроля доступа, основанные на идентификации каждого пользователя VO, не масштабируются при возрастании числа пользователей и сервисов, особенно, если состав пользователей и сервисов часто изменяется в динамике. Очень сложно в динамике обеспечить взаимное доверие между инициаторами запросов сервисов и поставщиками этих сервисов, находящимися в разных областях безопасности, при сохранении их конфиденциальности в открытых grid-средах.
Эти проблемы по отдельности решаются и в сообществе Web-сервисов, и в grid-сообществе, но ни в одной из развитых систем промежуточного программного обеспечения SOG не решается задача интеграции конкретных технологий гарантоспособности и безопасности с целью создания полностью интегрированной среды оценки и внедрения безопасных и гарантоспособных приложений и систем. Исследователи из университетов Лидс в Великобритании и Беньхань в КНР совместно разрабатывают систему промежуточного программного обеспечения для grid, в которой обеспечиваются интегрированные инструментальные средства для оценки гарантоспособности. В рамках проекта в систему программного обеспечения промежуточного слоя для grid, созданную китайскими исследователями, встраиваются средства обеспечения гарантоспособности и безопасности, разработанные в университете Лидс.
Вей-Тек Цай, Ксинью Жоу, Йинонг Чен и Ксиайинг Бай представили статью «О тестировании и оценке сервис-ориентированного программного обеспечения» (On Testing and Evaluating Service-Oriented Software).
SOA поддерживает совместное использование Web-сервисов и коммуникации с ними. Многочисленные стандарты и поддерживающие их методы, направленные на решение проблем безопасности Web-сервисов (WS-Security, WS-Trust, XACML, SAML и т.д.), обеспечивают уровень безопасности, которому могут доверять пользователи. Например, в среде Internet люди могут безопасно пользоваться услугами банков, платить по счетам и совершать покупки. Несмотря на такой прогресс, методы обеспечения надежности сервисов, их тестирования и верификации являются еще недостаточно зрелыми, чтобы обеспечивать заслуживающую доверия обработку данных. Исследования в сфере Web-сервисов и SOA сегодня концентрируются на протоколах, функциональности, транзакциях, онтологии, композиции, Semantic Web и интероперабельности, а гарантоспособности и доверительности сервисов уделяется недостаточное внимание. Например, брокеры сервисов не несут ответственность за качество сервисов, поэтому их достоверность не гарантируется. Традиционные методы обеспечения гарантоспособности — доказательство корректности, отказоустойчивость, формальная верификация на основе моделей, тестирование, оценка и т.д. — могут повысить уровень доверительности отдельных сервисов. Однако разработчикам необходимо переработать эти методы для обеспечения возможности их применения к динамическим приложениям, компонуемым из сервисов во время выполнения.
В SOA-приложениях можно использовать традиционные подходы независимой верификации и оценки на каждой фазе жизненного цикла разработки (моделирование, сборка, внедрение, управление и т.д.). Однако в этом случае должен быть доступен весь код, и независимая группа должна тестировать каждый сервис и все их возможные комбинации. Для этого требуются очень большие расходы, поскольку число доступных сервисов и их комбинаций может быть огромным. Кроме того, поставщики сервисов могут не захотеть предоставлять свой код, который часто выполняется на их собственных серверах.
Для решения проблем гарантоспособности и доверительности SOA авторы предлагают открытую среду, в которой для повышения эффективности тестирования применяется групповое тестирование. В этой среде распознаются и устраняются тестовые случаи, не обеспечивающие дополнительного покрытия. Кроме того, при добавлении новых тестовых случаев заново оценивается покрытие получаемого тестового набора. Эксперименты показывают, что среда позволяет сократить расходы на тестирование при сохранении его эффективности.
Авторами статьи «QoS-реконфигурируемые Web-сервисы и композиции для систем с гарантией качества» (QoS-Reconfigurable Web Services and Compositions for High-Assurance Systems) являются И-Линг Йен, Фарох Бастани, Хуэй Ма и Хонг Мей.
Реконфигурируемость — важное свойство многих современных адаптивных прикладных систем, в особенности, систем с гарантией качества. Например, динамическая адаптивность часто требуется в интеллектуальных системах управления транспортными средствами, авионике, космических системах и интеллектуальных видеосетях при отказах компонентов системы, падении уровня мощности, непредвиденных условиях эксплуатации и т.д. Кроме того, некоторые системы являются многоцелевыми, и в каждом случае системные требования оказываются схожими, но для достижения каждой конкретной цели требуется адаптация.
SOA — идеальное средство для получения реконфигурируемых систем, которые могут статически или динамически выбирать и компоновать сервисы для удовлетворения изменяющихся системных требований.
Во многих исследовательских работах задача выбора сервиса решается на основе критериев качества обслуживания (quality-of-service, QoS), таких как надежность, выполнение ограничений реального времени и точность. Однако в большинстве случаев требования QoS специфицируются только на общесистемном уровне, и остается непонятным, как вывести из них цели QoS для отдельных сервисов. Хотя проводились исследования методов эффективной компоновки группы сервисов, удовлетворяющей общесистемным требованиям QoS, во многих реальных приложениях имеется ограниченный выбор сервисов. Это особенно верно для специализированных прикладных областей.
Реконфигурируемые сервисы обеспечивают альтернативный подход, который может служить дополнением к методам выбора сервисов с целью удовлетворения изменяющихся системных требований QoS. Например, сервис кодирования изображений может обрабатывать изображение с разным разрешением и различными коэффициентами сжатия для достижения компромисса между расходами времени и памяти, с одной стороны, и качеством, с другой. Сервис поддержки принятия решений может производить поиск наилучшего решения в большом пространстве поиска, достигая требуемого компромисса между временем вычислений и точностью решения. Реконфигурируемые сервисы могут расширять пространство решений и существенно способствовать гарантированию требуемого качества обслуживания.
Авторы разработали основанный на правилах метод параметризации для преобразования компонентов в реконфигурируемые сервисы. Кроме того, разработаны методы анализа QoS и принятия решений для выбора реконфигурируемых и обычных сервисов для компоновки системы.
Статью «Обеспечение своевременности в сервис-ориентированной архитектуре электронной науки» (Assuring Timeliness in an e-Science Service-Oriented Architecture) написали Джон Слоан, Тафи Хошгофтаар и Венкат Рафав.
Для организации вычислений на основе общедоступных ресурсов, называемых также «супервычислениями на безвозмездной основе» (volunteer supercomputing), требуются услуги громадного числа поставщиков, каждый из которых обеспечивает одну и то же услугу (предоставление вычислительной мощности) относительно небольшому количеству инициаторов запросов — обычно исследователей, выполняющих тот или иной проект. В центре такой архитектуры находится некоторый портал, связывающий поставщиков и инициаторов запросов. Основная задача портала состоит в координации взаимодействия с многочисленными поставщиками, зарегистрированными на портале, даже в тех случаях, когда они располагаются в ненадежных периферийных областях Internet. Для обеспечения надежного взаимодействия должны решаться проблемы, внутренне присущие структуре супервычислений на безвозмездной основе.
В такой архитектуре «провайдер» представляет собой специальную программу, которую владельцы персональных компьютеров загружают с портала и инсталлируют у себя, и когда машина становится свободной, провайдер предлагает порталу свой вычислительный сервис. По сути дела, именно провайдер является душой супервычислений на безвозмездной основе. В этой ситуации разработчики должны обращать особое внимание на аспекты координации, а также уметь обходить проблемы, начиная от ненадежных или утрачиваемых сетевых соединений и заканчивая новыми пользователями, ошибки в программах которых могут привести к зависаниям. Для большей части этих проблем характерен один и тот же симптом: провайдер затрачивает на выполнение своей работы существенно большее время, чем ожидает портал.
Портал безвозмездных супервычислений должен справляться с разнообразными повседневными сбоями, а для этого он должен знать, когда следует переназначить часть работы другому провайдеру, используя данные о точности и своевременности предыдущих услуг этого провайдера. В совокупности на портале требуется поддерживать сложный процесс принятия решений. Это процесс моделировался для упрощенной версии Berkeley Open Infrastructure for Network Computing (Boinc, boinc.berkeley.edu/grid_paper_04.pdf), а модель была оттранслирована в язык Time Automata среды Uppaal (www.it.uu.se/research/group/darts/papers/texts/new-tutorial.pdf), предназначенной для верификации систем реального времени. Модель была расширена с целью охвата дополнительных сценариев использования, таких как приложения электронной науки с ограничениями ввода-вывода.
При моделировании Boinc использовались три дополнительных средства верификации на основе моделей, обеспечивших авторам понимание требований к системам вычислений на основе общедоступных ресурсов: Simple Promela Interpreter (Spin, en.wikipedia.org/wiki/SPIN_model_checker), Labeled Transition System Analyzer (LTSA, www.doc.ic.ac.uk/~hf1/phd/papers/de04.pdf) и Colored Petri Net Tools (CPN Tools, www.daimi.au.dk/~kris/VPSM06/STTT.pdf). Поскольку инфраструктура Boinc ориентирована на координацию вычислительно-ограниченных частей работ, авторы в большей степени стремились к исследованию возможности применения архитектур типа Boinc для выполнения частей работ с ограничениями ввода/вывода, а не корректности результатов.
Авторы еще одной статьи тематической подборки — «Спецификация сервисов, гарантирующих качество» (Specifying High-Assurance Services) — Колин Аткинсон, Даниэль Бреннер, Джованни Фальконе и Моника Юхаш.
Сервис-ориентированные архитектуры имеют много достоинств, однако они усложняют верификацию систем — у разработчиков программного обеспечения отсутствует возможность свести вместе компоненты (сервисы) SOA, пока они не образуют систему в среде выполнения, и во время работы этой системы взаимосвязи между компонентами могут динамически изменяться. Поэтому, отсутствуют гарантии того, что показатели качества, полученные во время разработки и развертывания системы, останутся действительными при изменениях ее конфигурации. Риск отказов по причине неправильного толкования контрактов в SOA оказывается выше, чем в традиционных системах, где все контракты можно протестировать во время разработки. Это, в свою очередь, затрудняет и удорожает использование систем с гарантией качества, которые должны обеспечивать высокий уровень гарантоспособности с известной степенью достоверности.
Наилучшим способом решения этой проблемы большинство исследователей считают семантическую композицию сервисов. Основа этого подхода — описание сервисов настолько точным образом, что корректность композиций сервисов может гарантироваться динамически, за счет автоматических методов логического вывода, а не традиционной верификации. Для этого лучше всего подходят языки, обладающие не только строго определенной семантикой, основанной на логике предикатов, но также и хорошо известными вычислительными свойствами, поддерживающими эффективный автоматический вывод. Поэтому в подходах к семантическому описанию сервисов, таких как Ontology Web Language for Services (OWL-S; www.w3.org/Submission/2004/07) или Web Service Modeling Ontology (WSMO; www.w3.org/Submission/WSMO), используются языки, основанные на дескриптивной логике и тщательно разработанные для повышения эффективности логического вывода.
Однако до тех пор, пока в процессе композиции сервисов принимают участие люди, у его направленности на обеспечение гарантий качества на основе логического вывода будет иметься оборотная сторона. Семантическая композиция сервисов основывается на языках, оптимизированных для обеспечения эффективного логического вывода, а не для удобочитаемости. Кроме того, для получаемых спецификаций отсутствует поддержка методов динамической верификации, являющихся основой контролирующей деятельности людей.
Таким образом, хотя этот подход хорошо работает для относительно небольших систем, поддающихся автоматическому выводу, для больших и сложных систем, для которых требуется участие людей, работа с семантическими описаниями сервисов затруднительна. Однако именно для этих крупных и сложных систем более всего требуется гарантированное обеспечение качества и участие людей.
Группа программной инженерии Мангеймского университета исследует вспомогательный подход к спецификации сервисов, направленный на достижение баланса между возможностью машинной обработки и удобочитаемостью, а также на поддержку методов как логического вывода, так и тестирования. Авторы полагают, что в течение долгого времени люди будут продолжать участвовать в процессах композиции и верификации сложных сервисных систем, и что использование методов вывода должно уравновешиваться поддержкой человеческой деятельности по разработке и верификации. Авторы основывают свой подход на языках Unified Modeling Language и Object Constraint Language, разработанных в расчете на простое использование людьми, и новом методе описания тестов. Хотя эти языки не оптимизированы для логического вывода, к анализу UML/OCL применим ряд методов верификации на основе моделей и доказательства теорем. Кроме того, они являются основой множества технологий преобразования моделей и специализации языков, поддерживаемых индустрией разработки на базе моделей (model-driven development).
Вне тематической подборки опубликована статья Лоуренса Кэрина, Джорджа Цыбенко и Джеффа Хафса «Стратегии компьютерной безопасности: методология QuERIES» (Cybersecurity Strategies: The QuERIES Methodology).
Организации как частного, так и государственного секторов пытаются определить объемы затрат, требуемых для защиты их интеллектуальной собственности. В результате они обычно реализуют стратегии компьютерной безопасности без использования количественной методологии оценки и снижения рисков. Сегодня трудно ответить даже на простые вопросы: каков должен быть объем инвестиций, какие меры безопасности будут оказывать наибольшее влияние, и как измерить уровень повышения безопасности? Подход Quantitative Evaluation of Risk for Investment Efficient Strategies (QuERIES) разработан для обеспечения ответов на подобные вопросы и позволяет получить количественную оценку рисков компьютерной безопасности. Подход основывается на строгих количественных методах компьютерных наук, теории игр, теории управления и экономики. Предварительные эксперименты с методологией QuERIES показали, что она является достойной альтернативой использованию «красных команд» (взломщики системы безопасности, не знакомые с ее внутренним устройством), хакерского анализа (его участники имеют доступ к деталям организации защиты) и других методологий поддержки принятия решений, ранее использовавшихся для оценки рисков компьютерной безопасности.
До сих пор методология QuERIES фокусировалась на проблеме защиты критической интеллектуальной собственности Министерства обороны США, где катастрофические последствия вызывает потеря любой единицы интеллектуальной собственности. QuERIES может найти применение и для анализа других сценариев атак или защиты путем соответствующего изменения используемой экономической модели.
До новой встречи, с уважением, Сергей Кузнецов, kuzloc@ispras.ru.