Формальной темой февральского номера журнала является «доверительное управление» («Trust Management») в среде Web-сервисов. Однако полноценная тематическая подборка отсутствует: теме номера посвящены только две из шести больших статей номера. Поэтому я буду представлять статьи в порядке их расположения в оглавлении.
Статью «Введение в открытую архитектуру Grid-сервисов» («An Open Grid Services Architecture Primer») представили Эндрю Гримшоу, Марк Морган, Дуэйн Меррилл, Хиро Кишимото, Андреас Савва, Дэвид Снеллинг, Крис Смит и Дейв Берри (Andrew Grimshaw, Mark Morgan, Duane Merrill, University of Virginia, Hiro Kishimoto, Andreas Savva, David Snelling, Fujitsu, Chris Smith, Platform Computing, Dave Berry, Edinburgh National e-Science Centre).
Grid-компьютинг основывается на виртуализации, интеграции и управлении сервисами и ресурсами в распределенной неоднородной среде, которая включает пользователей и ресурсы из различных организационных и административных областей. В настоящее время разработчики строят гриды, используя либо разрозненные программные компоненты и протоколы категории open source, либо проприетарные технологии. Хотя в каждом сегменте этой области имеются многочисленные свободно доступные и коммерческие решения, возможности их взаимодействия ограничены. В результате образуются островки grid-компьютинга, которые не могут взаимодействовать, что препятствует использованию всего потенциала этой технологии.
Сценарии использования гридов ставят несколько существенных проблем перед конечными пользователями, разработчиками приложений и IT-менеджерами. Эти проблемы касаются безопасности (аутентификации, авторизации, доверительности и целостности данных), качества обслуживания (соответствия соглашениям об уровне обслуживания, доступности и т.д.), управления данными, планирования и управления ресурсами. Если эти проблемы не решаются ни разработчиками приложений, ни промежуточным программным обеспечением, то приходится наблюдать нарушение сроков выполнения проекта, перерасход средств и не совсем полноценное программное обеспечение.
В открытой архитектуре Grid-сервисов (Open Grid Services Architecture, OGSA) эти сложные проблемы решаются путем определения набора стандартных интерфейсов, протоколов взаимодействия сервисов и профилей существующих стандартов, который используется в качестве основы построения устойчивых грид-приложений и систем управления гридом. Таким образом, OGSA определяет сервисы, их взаимодействия и философию разработки.
OGSA является сервис-ориентированной архитектурой, основанной на подходах Web-сервисов. Эта архитектура открыта в двух отношениях. Во-первых, разработка спецификаций и профилей производится в рамках полностью открытого процесса, в котором ни одна группа компаний не может навязывать свои спецификации сервисов и протоколов взаимодействия. Результирующие спецификации и профили являются следствием общей договоренности и не являются проприетарными. Во-вторых, возможны разные реализации, включающие эталонными реализациями с открытыми кодами.
Полезность OGSA иллюстрируется на примере трех классов приложений, поддерживающих: высокопроизводительные вычисления, доступ к федеративным данными и мобильность сервисов.
Следующая статья написана Карлосом Кейсидо, Джеймсом Джоши и Суммитом Туладхаром (Carlos E. Caicedo, James B.D. Joshi, University of Pittsburgh, Summit R. Tuladhar, Ericsson) и называется «Проблемы безопасности в IPv6» (IPv6 Security Challenges).
Internet-протокол версии 6 (IPv6) разрабатывался с целью расширения и, в конечном счете, замены возможностей, обеспечиваемых протоколом IPv4. IPv4 является важнейшим компонентом современной инфраструктуры Internet, и IPv6 является единственной существующей альтернативой IPv4, которая сможет поддерживать ускоряющийся рост числа Internet-ориентированных приложений и устройств. Срочность внедрения IPv6 диктуется нехваткой адресов, запас которых, как ожидается, полностью исчерпается в начале следующего десятилетия, и возрастающей потребностью в более совершенном Internet-протоколе с фундаментальной поддержкой безопасности. Считается, что IPv6 позволит улучшить многие черты IPv4, решить многие проблемы этого протокола и, что еще более важно, сделать Internet более безопасным.
В сетевом сообществе имеются разные точки зрения относительно принятия IPv6, в том числе, мнение, что разработка IPv6 – это неудачная попытка, и что этот протокол не обладает существенными преимуществами перед IPv4. Однако принятие IPv6 неизбежно. В действительности, в многочисленных странах Европы, равно как и Азии, включая Корею, Японию и Китай, обладающих ограниченным адресным пространством IPv4, переход к IPv6 полагается национальным приоритетом. Работа по глобальному внедрению IPv6 поддерживается, прежде всего, консорциумом IPv6 Forum и его членами.
Хотя в США переход к IPv6 продвигается медленно, возможно, из-за отсутствия срочной потребности в IP-адресах, в последнее время темпы миграции возрастают. Министерство обороны США взяло на себе роль лидера в этом процессе, образовав для поддержки процесса перехода и наблюдения за ним Управление по переходу на IPv6 (IPv6 Transition Office) в Агентстве оборонных информационных систем (Defense Information Systems Agency). Кроме того, в соответствии с требованием Административно-бюджетного управления США (US Office of Management and Budget) все федеральные органы должны были к середине 2008 г. иметь сетевые магистрали на основе IPv6.
Американский сетевой консорциум Internet2 реализует инфраструктуру, поддерживающую IPv6 и используемую, в основном, для выполнения исследований. Активную роль во внедрении IPv6 играет научно-исследовательская сеть Министерства обороны США (Defense Research and Engineering Network), причем основное внимание уделяется вопросам безопасности. В мире имеется ряд других исследовательских проектов, в ходе которых также внедряется IPv6, изучаются преимущества протокола, и разрабатываются новые приложения. Кроме того, IPv6 используется в мировом сообществе мобильных коммуникаций как один из предпочтительных протоколов поддержки трафика данных в нескольких стандартах мобильных коммуникаций.
Все это показывает, что подготовка к наступлению эпохи IPv6 близится к завершению. Однако некоторые проблемы перехода к IPv6 и внедрения этого протокола могут привести к серьезным последствиям для безопасности. Хотя новые черты IPv6 могут привести к появлению новых разновидностей атак на Internet-протокол, другие формы могут принять и известные атаки уровня IPv4. Кроме того, отсутствие подготовленных профессиональных специалистов, а также нехватка IPv6-ориентированных средств анализа и мониторинга сетевой безопасности приведут к замедлению реакции на атаки, подрывающие безопасность, что будет способствовать расширению брешей в сильно взаимосвязанных средах IPv6.
Коротко говоря, хотя IPv6 разрабатывался с учетом требований безопасности, проблемы безопасности могут стать препятствием к его успешному внедрению, если не приложить соответствующие усилия для изучения проблем и уязвимостей сетевой инфрастуктуры, основанной на IPv6.
Следующие две статьи образуют тематическую миниподборку. Авторами статьи «Динамическое доверительное управление» («Dynamic Trust Management») являются Мэтт Блейз, Сэмпат Кэннан, Инсап Ли, Олег Сокольский, Джонатан Смит, Ангелос Керомитис и Венке Ли (Matt Blaze, Sampath Kannan, Insup Lee, Oleg Sokolsky, Jonathan M. Smith, University of Pennsylvania, Angelos D. Keromytis, Columbia University, Wenke Lee, Georgia Institute of Technology).
В сервис-ориентированной архитектуре (service-oriented architecture, SOA) функции разделяются по службам, которые обрабатывают запросы, поступающие по сети от других служб. При обработке запроса служба может, в свою очередь, посылать запросы вторичным службам и т.д.
В продолжающемся проекте Министерства обороны и Разведывательного сообщества (Intelligence Community) США Global Information Grid (GIG) рационализируется и модернизируется архитектура сетецентричных операций (network-centric operation) США. В GIG соединяются общая сетевая архитектура и развитая технология целостности и безопасности информации. Большее внимание уделяется информации, передаваемой по сети, и обеспечиваемым службам, а не сетевым характеристикам.
При разработке таких сервис-ориентированных систем приходится идти на очевидный компромисс между безопасностью, гибкостью и стоимостью. В предыдущих сетевых архитектурах МО США создавались логические «зазоры» между разными сетями, такими как, например, NIPRNET и SIPRNET, и службы реплицировались в каждой такой сетевой среде. В принципе, при использовании раздельных сетей информационная безопасность гарантируется, поскольку отсутствуют сетевые пути из более безопасных сетей к менее безопасным.
Хотя GIG является проектом, специфичным для МО, многие выявляемые в нем проблемы доверительного управления естественным образом возникают в существующих и появляющихся коммерческих и других публичных сетевых средах, в особенности тех, которые базируются на SOA. В частности, в традиционных архитектурах децентрализованного доверительного управления, которые, вообще говоря, являются полезными, напрямую не решаются такие задачи, как смена политики при быстро изменяющихся сетевых условиях. Подобные проблемы возникают в любой крупномасштабной системе, основанной на быстро изменяющейся, потенциально ненадежной сетевой инфраструктуре, такой как Internet.
Поэтому авторы считают, что архитектура GIG может использоваться для изучения проблем доверительности в крупномасштабных компьютерных средах вообще, а не только в военных и правительственных сетях.
Вторую статью тематической подборки – «Моделирование установки доверительных отношений для Web-сервисов» («Modeling Trust Negotiation for Web Services») – написали Халвард Скогсруд, Хамид Мотахари-Незхад, Буалем Бенаталлах и Фабио Касати (Halvard Skogsrud, ThoughtWorks, Hamid R. Motahari-Nezhad, Boualem Benatallah, University of New South Wales, Australia, Fabio Casati, University of Trento, Italy).
В Web-сервисах с ограничением доступа обычно используется заранее известная идентификационная информация инициаторов запроса. Однако при постоянно возрастающем числе Web-сервисов большая часть пользователей является неизвестной провайдеру услуг. Среди моделей контроля доступа, решающих проблему неизвестных пользователей, наибольшее внимание в промышленных и академических кругах привлекает установление доверительных отношений. При этом подходе решения о разрешении или запрете доступа принимаются на основе не идентификационной информации инициатора запроса, а уровня доверяя, установленного между инициатором запроса и провайдером услуг.
В процессе установки доверительных отношений стороны обмениваются удостоверяющими данными (credential), подписанными утверждениями, описывающими некоторые атрибуты соответствующей стороны. Например, это могут быть электронные версии водительских прав или паспорта. В тех случаях, когда пользовательские атрибуты, включаемые в удостоверяющие данные, являются по своей природе конфиденциальными, такими как информация о кредитной карте, медицинские данные и т.д., требуются дополнительные переговоры, поскольку держатель этой информации может согласиться раскрыть ее только в определенных условиях.
Процедура установки доверительных отношений управляет поведением участников переговоров. Она описывает, какие удостоверяющие данные требуются для доступа к некоторому ресурсу, и какая информация может быть раскрыта в течение переговоров. Однако известно, что такие политики трудно разрабатывать и поддерживать, поскольку в настоящее время отсутствуют какие-либо среды, пригодные для управления их эволюцией. Это особенно верно для Web-сервисов.
Управление политикой в течение всего ее жизненного цикла часто не учитывается при разработке модели политики. Политики редко остаются неизменными. Обычно они изменяются и уточняются, отражая изменения в стратегиях безопасности. К изменениям политик может приводить также развитие бизнес-стратегий или законов.
Управлять изменениями в уже внедренных Web-сервисах трудно и дорого, особенно потому, что взаимодействия служб могут затрагивать многочисленные автономные службы и управляться согласованными контрактами. Изменения могут приводить к нарушению нескольких типов ограничений, включая внутреннюю согласованность (например, ограничения на взаимосвязь ролей) и контракты на взаимодействия (например, аннулирование предоставленных ранее прав доступа). Это может иметь серьезные последствия, например, неавторизованный доступ к конфиденциальной информации и наказания за нарушения законов или контрактов.
В статье обсуждаются подходы к управлению политиками установки доверительных отношений на основе моделей.
Следующая статья уже из области оптимизирующих компиляторов языков программирования. Ее написали Кристов Бейлс и Эрик д’Холландер (Kristof Beyls, Tele Atlas, Erik H. D’Hollander, Ghent University, Belgium). Статья называется «Refactoring for Data Locality» («Рефакторинг для достижения локальности данных»).
Рефакторинг программы означает преобразование ее внутренней структуры для улучшения ее качественных характеристик, таких как организация программы, скорость ее выполнения, читабельность, без изменения функциональных характеристик. Хотя наиболее часто рефакторинг рассматривается как способ улучшения внутренней архитектуры программы, авторы применяют этот подход для повышения скорости выполнения. Часто основным узким местом является не время вычислений, а задержки из-за доступа к основной памяти. Процессоры могут выполнить сотни команд за то время, которое требуется для чтения одного слова из основной памяти.
Разрыв в производительности между процессорами и основной памятью сокращается благодаря наличию иерархии кэшей. Только если запрашиваемые процессором данные находятся в кэше, система может доставить их ему быстро, не вынуждая простаивать. В основном, в кэшах сохраняются недавно использованные данные. Если процессор быстро обращается к тем же самым данным, происходит результативное обращение в кэш (cache hit). Если же повторное обращение к данным происходит спустя долгий промежуток времени, эти данные уже могут быть вытеснены из кэша, что приводит к безрезультативному обращению в кэш (cache miss).
Аппаратура кэшей занимает большую часть оборудования кристалла процессора. Однако во многих приложениях безрезультативные обращения в кэш вынуждают процессор простаивать больше половины времени выполнения. В этих случаях скорость выполнения сильнее выигрывает от сокращения числа безрезультативных обращений в кэш, чем от уменьшения объема вычислений.
Характер доступа к данным редко демонстрирует низкий уровень локальности данных. Соответствующее безрезультативное обращение в кэш появляется из-за команд, обращающихся к слишком многим другим данным в промежутке между двумя использованиями данного элемента данных. Трасса выполнения команд, выполняемых между использованием и повторным использованием одного и того же элемента данных, называется маршрутом повторного использования (reuse path). Весь код на этом маршруте, обращающийся к данным, вносит свой вклад в будущее безрезультативное обращение в кэш. Имеется несколько инструментальных средств профилирования кэша, таких как Intel VTune, Cprof и Cachegrind, определяющих области, в которых происходит большая часть безрезультативных обращений в кэш, и выделяющих соответствующие участки в исходном коде. Однако выделенные строки кода показывают только концы маршрутов повторного использования, приводящих к этим безрезультативным обращениям. Во многих случаях рефакторинг других частей кода позволяет улучшить временную локальность данных.
На рисунке показан пример использования разработанного авторами инструмента профилирования повторного использования, названного ими советами по оптимизации локальности (suggestions for locality optimizations, SLO). Горизонтальные подсвеченные блоки показывают строки исходного кода с безрезультативными обращениями в кэш. 95% таких обращений произошло в строке 5 функции inproduct. Естественно попытаться переписать эту функцию для обеспечения лучшей производительности кэша. Но, к сожалению, рефакторинг функции inproduct не позволяет сократить объем данных, к которым обращается процессор в промежутке между использованием и повторным использованием.