В тематический раздел вошли четыре большие, три краткие статьи и вводная заметка приглашенного редактора Тициана Маргарии, озаглавленная «Сервис в глазах наблюдателя» (Service Is in the Eyes of the Beholder).
Сервисный подход сегодня — это широкомасштабная философия, относящаяся как к техническим сервисам (печать, передача и прием факсов, хранение данных и т.д.) и телекоммуникационным услугам, так и к высокоуровневым сервисам поддержки бизнес-процессов и повседневно используемым Web-сервисам. Однако в разных сферах применения сервисный подход обладает разными уровнями зрелости. Так, в области телекоммуникаций, где и зародился этот подход, давно разрабатываются и проверяются на практике структуры, стандарты и инструменты, а сама деятельность управляется специальной «технической дисциплиной», ориентированной на поддержку непрерывного функционирования и надежности. В сфере разработки Web-сервисов, независимо от опыта, накопленного в области телекоммуникаций, специалисты руководствуются более масштабной концепцией, подразумевающей наличие всемирного «чародея», который в любой момент, в любой ситуации знает, каким образом предоставить пользователям наилучшую услугу. Техническая реализация этой концепции в данной сфере находится пока в начальном состоянии.
Разрыв между концепцией и уровнем зрелости технологии соответствует классической модели эволюции — от творчества к инженерии. В компьютерной науке переход от творчества (уникальных, творчески, вручную изготовленных артефактов) к инженерии (индустриальным, развитым методам) повсеместен. В последние два-три десятилетия такой переход наблюдался в разработке компиляторов, программной инженерии, проектировании аппаратуры компьютеров и других областях Сначала появляется концепция и убедительные иллюстративные примеры, демонстрирующие потребность в некотором новом сервисе. Это сопровождается громадным разрывом между обещаниями и реальным состоянием дел, но в результате в конце концов оказывается возможным говорить о возникновении «решения». Такой переход был характерен и для WWW, а сегодня подобное происходит и в области Web-сервисов.
ИТ-сообщество все еще пытается понять, в чем суть и основные характеристики сервисного подхода. Общепризнанное свойство сервисного подхода независимо от области применения — участие пользователей. У пользователей должна иметься возможность непосредственно влиять на сервисы, управлять ими и приспосабливать их к своим потребностям. Таким образом, сервисный подход потенциально оказывает разрушительное воздействие на существующие структуры. Его эффект можно сравнить с эффектом перевода Библии на общепринятые языки, что, устранив потребность в изучении латыни, обеспечило доступ к этим текстам широкой публике.
С технической точки зрения к сервисному подходу можно относиться как к подходу 80/20 — «просто для многих, сложно для некоторых». Больше всего усилий затрачивается на разработку внешних компонентов технологии: полную виртуализацию технических деталей; слабое связывание сервисов, обеспечивающее их максимальную свободу выбора, оркестровку и эволюцию; учет особенностей прикладных областей, позволяющий сообществу пользователей каждой прикладной области напрямую пользоваться готовыми сервисами.
Вопросы «В чем состоит простота сервисного подхода?» и «Кто сталкивается с его сложностями?» приводят к запутанной схеме разделения труда. Эти вопросы решаются, в частности, в области интеллектуальных сетевых сервисов (Intelligent Network Service, INS), обеспечивающих первые систематические определения и эксплуатационные внедрения сервисного подхода в индустрию. В архитектурном стеке INS четко определяется несколько уровней сервисов с разными ответственностями и ролями. Каждый уровень разрабатывался соответствующей группой экспертов, действовавших на основе нормативных руководств, которые зафиксированы в семействе стандартов INS (серия ITU-T Q.1200). Если посмотреть на эту структуру с сегодняшних позиций сервисного подхода, то можно заметить, что она может быть легко отображена на более общую область корпоративных сервисов, в которой она также определяет различные ответственности и роли и тем самым обеспечивает очевидное разделение труда в соответствии с моделью «просто для многих, сложно для некоторых». Сервисы виртуальной частной сети или универсального персонального номера, эквивалентные сквозному сервису, могли бы выступать в качестве компонентов межкорпоративных сервисов, которые определяются в нисходящей манере в соответствии с руководствами, подобными COBIT.
Деление на «некоторых» и «многих» может показаться надуманным, поскольку численность групп ИТ-поддержки часто превышает численность групп бизнес-менеджеров, бизнес-разработчиков и бизнес-аналитиков. Однако эта ситуация возникла по историческим причинам: слишком многие продолжают изобретать колесо. Парадигма сервисной ориентации поможет устранить это недоразумение.
На следующем уровне происходит оркестровка — крупные сервисы детализируются в виде слоя распределенных процессов, которые совместно реализуют требуемый сквозной процесс. Здесь же определяется следующий уровень абстракции — устанавливается, какие процессы могут быть использованы в распределенной оркестровке. Для этого требуется знание структуры соответствующей организации, а ИТ-поддержка после соответствующей начальной установки может потребоваться только в исключительных случаях.
Локальные процессы отвечают более мелкоструктурным сервисам, участвующим в нескольких сквозных процессах. Они похожи на повторно используемые средства из области телекоммуникаций, которые достаточно абстрактны для того, чтобы их понимали пользователи («многие») без потребности в знании деталей реализации, и тем не менее достаточно конкретны, чтобы их можно было сравнительно просто отобразить на базовые сервисы, предоставляемые поставщиком (для этого требуются «некоторые» специалисты).
На нижнем уровне имеется набор сервисов, предоставляемых на доступных платформах. Независимо от того, идет ли речь о коммуникационных, офисных сервисах, сервисах, поддерживающих хранение данных, и т.п., все они являются наиболее мелкими структурными единицами и обеспечивают виртуализацию специфичных черт платформы. Этот уровень находится в компетенции разработчиков программного обеспечения.
Однако действительно «избранными» являются люди, разрабатывающие и совершенствующие общую сервисную архитектуру. В результате образуется новый, ориентированный на будущее класс специалистов, имеющих дело как прикладными областями, так и с ИТ.
Первую статью тематической подборки «Сервисные компьютерные системы: современный уровень и исследовательские проблемы» (Service-Oriented Computing: State of the Art and Research Challenges) представили Михаэль Папацоглы, Паоло Траверсо, Шахрам Дустдар и Франк Лейман.
В парадигме сервисных компьютерных систем (service-oriented computing) сервисы используются для поддержки разработки быстродействующих, малозатратных, интероперабельных, эволюционирующих и массивно распределенных приложений. Сервисы являются автономными, платформно-независимыми сущностями, которые можно описывать, публиковать, обнаруживать и слабо связывать. Сервисы выполняют широкий диапазон функций, от ответов на простые вопросы до выполнения сложных бизнес-процессов, для которых требуются сквозные взаимосвязи между разными уровнями потребителей и поставщиков сервисов. Любая часть кода и любой компонент приложения, входящие в систему, могут быть повторно использованы и преобразованы в сервис, доступный в сети.
В сервисах отражается подход к программированию, основанный на идее компоновки приложений путем обнаружения и вызова доступных сервисов для выполнения некоторой задачи. Этот подход не зависит от конкретных языков программирования и операционных систем и позволяет организациям раскрыть свою ключевую компетенцию в виде программных компонентов, доступных в Internet или разнообразных локальных сетях, с использованием стандартных языков и протоколов, основанных на XML.
Наиболее перспективной технологией, основанной на использовании данной парадигмы, являются Web-сервисы. Internet здесь используется как коммуникационная среда. Для передачи данных применяется протокол SOAP (Simple Object Access Protocol), для определения сервисов — язык WSDL (Web Services Description Language), для их оркестровки — язык BPEL4WS (Business Process Execution Language for Web Services).
Ключом к пониманию является сервисная архитектура (Service-Oriented Architecture, SOA) — логическое средство разработки программных систем для обеспечения сервисов приложениям, ориентированным на конечных пользователей, или другим сервисам, распределенным в сети, путем публикации и обнаружения интерфейсов. В основе этого подхода — множество сложным образом переплетенных понятий, протоколов и технологий из различных дисциплин, включая распределенные вычислительные системы, компьютерные архитектуры, программное обеспечение промежуточного слоя, grid, программную инженерию, языки программирования, системы баз данных, безопасность и представление знаний. Эта громадная сложность, а также потребность в развитии технологии с одновременным пониманием бизнес-процессов и организационных структур приводят к сильной фрагментации исследовательской работы в этой области. Авторы проводят анализ ряда текущих проектов в контексте плана перспективных исследований, включающего четыре основные взаимосвязанные темы: основы сервисов, построение сервисов, управление сервисам и их мониторинг, сервисная инженерия.
Томас Магеданц, Никлас Блюм и Симон Дутковски — авторы статьи «Эволюция понятий SOA в области телекоммуникаций» (Evolution of SOA Concepts in Telecommunications).
Индустрия телекоммуникаций находится на перепутье. Операторы должны развертывать глобальные IP-сети, обеспечивающие совместное использование фиксированных и мобильных телекоммуникаций, кабельных сетей и Internet. Платформы, обеспечивающие предоставление услуг операторов, должны поддерживать эффективную разработку, создание, внедрение, предоставление и управление согласованными сервисами в расчете на различные способы доступа и бизнес-модели. До сих пор ключевым аспектом телекоммуникационных платформ было создание новых требуемых приложений на основе повторного использования расширяемого набора сервисных компонентов.
Сегодня предоставление телекоммуникационных сервисов основывается на SOA. Современные платформы, базирующиеся на технологии Web-сервисов, появились в результате эволюции интеллектуальных сетей и объектно-ориентированных программных интерфейсов. Дополнительное давление на телекоммуникационные компании по созданию открытого рынка сервисов, основанного на наборе общедоступных сервисов и компонентов, оказывает развитие Web 2.0.
В тематической подборке выделен раздел «Сервисный подход на предприятии» (Service Orientation in the Enterprise), которому посвящены три небольшие статьи. Ян Босх написал статью «Навстречу мобильным сервисам: три подхода» (Toward Mobile Services: Three Approaches).
Обстановка внедрения программных продуктов быстро изменяется. Десять лет назад было достаточно разработать вариант продукта для настольного ПК, чтобы на него обратило внимание большинство заказчиков — важно, чтобы такой продукт отвечал их ожиданиям. По мере повышения скорости и уровня доступности Internet популярность завоевали продукты и сервисы, основанные на Web. В последние годы новой тенденцией является использование в корпоративном секторе мобильных устройств, и, хотя мобильные сервисы похожи на ранние продукты, основанные на Web, у них имеются технические и физические ограничения. Однако их преимуществом является независимость от местоположения пользователей, в то время как существующие решения для персональных компьютеров в лучшем случае могут обеспечить только возможность эпизодической смены расположения.
Переход к применению мобильных устройств обычно происходит в процессе, состоящем их трех стадий. На первой стадии оказывается, что данную задачу невозможно выполнить с применением какого-либо мобильного устройства общего назначения, хотя имеется соответствующая потребность и доступны специализированные мобильные устройства. На второй стадии мобильные устройства общего назначения начинают обеспечивать возможность выполнения требуемой задачи в мобильном контексте, но вариант использования мобильного решения остается вторичным по отношению к стационарному решению. Наконец, на третьей стадии пользователи предпочитают выполнять данную задачу с применением мобильного устройства, хотя стационарное решение по-прежнему доступно. Эти тенденции ставят проблемы обеспечения единообразного и интегрированного доступа. Естественной архитектурной целью является максимизация числа программным компонентов, общих для этих трех разновидностей платформ, при минимизации объема кода, специфичного для конкретного вида платформ.
Однако в случае мобильных платформ приходится делать выбор между тремя подходами, у каждого из которых имеются свои достоинства и недостатки.
Вторая статья раздела, «Новые парадигмы для проектов электронного правительства следующего поколения» (New Paradigms for Next-Generation E-Government Projects), представлена Стефаном Фридрихсом и Стефаном Юнгом.
В конце XX века в секторе общественных услуг началась электронная революция, в особенности в связи с упрощением громоздких административных процедур. На этой ранней стадии развития технологии электронного правительства была распространена точка зрения, что для поддержки требуемых преобразований и улучшения качества общественных услуг можно опираться только на технологии Internet. К сожалению, сейчас наметилась тенденция к увеличению разрыва между расходами на предоставление общественных услуг и их ценностью для населения. Достижения в области технологий фокусировались на совершенствовании пользовательских интерфейсов сервисов, и это порождало ожидания высококачественных услуг. Хотя правительства преуспели в создании нескольких новых каналов предоставления народу существующих сервисов, они пренебрегли развитием серверной архитектуры, что привело к недостаточному удовлетворению общественными услугами.
Вызывают сомнения объемы финансирования неудачных ИТ-проектов в секторе общественных услуг. Эти проекты продолжают инвестироваться налогоплательщиками, эксперты со все большим скепсисом относятся к крупномасштабным инициативам в области электронного правительства. В действительности, чем крупнее проект, тем более вероятен его провал: лишь 40% крупных инициатив считается успешно реализованными, но и в этих случаях обещанные преимущества часто не обеспечиваются.
Так не сдерживается ли процесс развития электронного правительства слабостью руководства? В большинстве европейских стран признано, что для достижения целей эффективности общественных служб государственным чиновникам нужна интенсивная ИТ-подготовка, однако у многих должностных лиц, привлекаемых к реализации проектов электронного правительства, все еще отсутствуют навыки, требуемые для обеспечения обещанного качества услуг.
В проектах электронного правительства нового поколения основное внимание должно уделяться не созданию должной технологии, а более глубокому пониманию организационных преобразований и управления бизнес-процессами.
Третья статья раздела написана Иоханнесом Хельбигом и Александром Шердиным и называется «Создание ценности бизнеса за счет гибкой ИТ-инфраструктуры» (Creating Business Value through Flexible IT Architecture).
Глобализация и электронная коммерция приводят к быстрому росту и постоянному изменению рынка логистики. Современные цепочки поставки включают много звеньев поставщиков, розничных торговцев и заказчиков. Сложность таких сетей возрастает по причине раздельного формирования цен в стоимостных цепочках, поэтому дифференциация в логистике является вопросом не только стоимостных преимуществ. Ключевым фактором успеха являются ИТ, необходимым условием успешного использования которых является построение гибкой архитектуры.
При наличии 600 тыс. служащих и годового оборота в 40 млрд. евро компания Deutsche Post World Net является крупнейшим в мире поставщиком логистических услуг. Восемь лет назад почтовое подразделение компании столкнулось с конкуренцией в связи с отменой государственного регулирования и глобализацией, причем существующая ИТ-архитектура скорее препятствовала, чем способствовала изменениям. В компании было принято решение о создании архитектуры, направленной на достижение большей гибкости к бизнесу за счет применения адаптивных систем; повышение эффективности ИТ за счет возрастающего привлечения людей из мира бизнеса; обеспечение базиса для эффективного руководства ИТ; концентрации на создании специализированных функциональных средств при повторном использовании существующих бизнес-служб; разработку приложений в стиле «управляемой эволюции». Таким образом, в Deutsche Post программа применения SOA развивалась под влиянием требований бизнеса.
В унаследованных приложениях бизнес-логика была жестко запрограммирована и требовались избыточные данные, поэтому была определена архитектура уровня логических сервисов, связывающая архитектуры процессного и прикладного уровней. Эта архитектура основывалась на прикладных областях и бизнес-сервисах, являясь ядром общей сервисной архитектуры. За счет повторного использования бизнес-сервисов и сокрытия унаследованных приложений и инфраструктуры за фасадом бизнес-сервисов архитектура логических сервисов помогла уменьшить взаимное влияние изменений в бизнесе и ИТ, а также облегчить повторное использование ИТ-ресурсов.
Основная идея управляемой эволюции архитектуры компания Deutsche Post состояла в балансировании между краткосрочными целями повышения ценности бизнеса и долгосрочной целью поддержки согласованности ИТ.
Автор статьи «Навстречу реализации управления предприятием, ориентированной на использование политик» (Toward the Realization of Policy-Oriented Enterprise Management) — Матиас Кайзер.
На предприятиях для управления разнообразными операциями используются традиционные корпоративные программные системы, состоящие из модулей, отражающих организационную структуру предприятия. Обычно каждый из этих моделей обеспечивает поддержку бизнес-подразделения и в число таких моделей входят программные средства поддержки хранилищ данных и аналитики, управления связями с заказчиками, управления цепочками поставок и модель планирования корпоративных ресурсов.
В состав системы SAP R/3 входят эти и многие другие модули, однако несмотря на широкое и успешное применение у модульного подхода имеется несколько серьезных проблем. Во-первых, у систем имеется тенденция становиться монолитными и связями между модулями становится слишком сложно управлять. Обычно это называют «проблемой декомпозиции систем». Кроме того, сложные взаимозависимости и требования интероперабельности затрудняют реализацию таких систем. Поскольку системы используются разнотипными организациями, у систем имеется множество параметров. Настройка этих параметров в соответствии с потребностями организации занимает много времени. Эту проблему часто называют проблемой взаимодействия с системными средствами (feature interaction problem). В третьих, в каждом модуле отражается функциональность целого бизнес-подразделения, поэтому трудно разрабатывать процессы, пересекающие традиционные бизнес-функциональные границы и почти невозможно реагировать на изменения или непредвиденные требования бизнес-процессов. В результате, подразделения начинают подгонять свои операции под возможности соответствующего модуля.
Статью «Поддержка полного жизненного цикла сквозных процессов» (Full Life-Cycle Support for End-to-End Processes) представили Бернхард Стеффен и Пракаш Нараян.
В крупных организациях для минимизации совокупной стоимости владения, управления рисками и защиты инвестиций требуются автоматизация и стандартизация, часто сопровождаемые радикальной реорганизацией. Это является необходимыми предварительными условиями для усиления лидерства предприятия в бизнесе на основе использования инновационных процессов и одновременного соблюдения новых нормативных правил, требующих возможности аудита и мониторинга любых бизнес-решений и операций. Эта потребность противоречит текущему состоянию дел, когда, по сути, для реализации любого процесса, определенного бизнес-разработчиками, требуется поддержка ИТ-специалистов; реализация на основе ИТ полностью отрывается от исходной модели даже в том случае, когда полуавтоматически по ней генерируется; изменения в модели не воздействуют автоматически на реализацию, и наоборот.
В центре Centre of Innovation for Service-Centered Continuous Engineering (www.scce.info) применяется целостный подход для ликвидации разрыва между требованиями к процессам со стороны бизнеса и реализацией процессов на основе ИТ. Обеспечивается бесшовный метод и соответствующий набор инструментальных средств. В этом решении ключевым является комбинирование сервисного подхода с модельно-ориентированной разработкой. Сервисный подход помогает сократить разрыв между требованиями и реализацией в процессе разработки программного обеспечения. Модельно-ориентированная разработка также служит сокращению этого разрыва. Однако, в то время как в сервисном подходе применяются инженерные методы, модельно-ориентированные проектирование и разработка основываются на математических структурах. Математические модели образуют базис для полуавтоматической генерации фрагментов программного кода. Это должно гарантировать, что в результирующей реализации сохранятся существенные свойства и характеристики, заложенные в исходной модели.
Автором еще одной тематической статьи, «Контракты компонентов в сервис-ориентированной архитектуре» (Component Contracts in Service-Oriented Architectures), является Франциско Курбера.
В основе сервисных архитектур лежат распределенные программные компоненты, предоставляемые или используемые независимыми сторонами. Поскольку доступ к таким компонентам не ограничен рамками организаций, он должен поддерживаться явными контрактами компонентов и общепринятыми стандартами. Хотя подобные контракты должны покрывать все технические или бизнес-аспекты взаимодействия с сервисами, сегодня в центре внимания находятся политики обеспечения качества обслуживания (quality-of-service, QoS). С точки зрения SOA необходимо учитывать два раздельных аспекта использования политик QoS: интероперабальность компонентов, являющуюся предметом стека спецификаций Web-сервисов, и компоновку, которая определяется моделями компоновки, такими как архитектура сервисных компонентов.
Контракт сервиса охватывает как функциональные, так и нефункциональные аспекты наблюдаемого поведения сервисного компонента. К функциональным аспектам относится бизнес-семантика операций компонента, включая его интерфейс и соблюдаемый им протокол. Не функциональные аспекты включают технические особенности взаимодействия, такие как сериализация данных и протоколы QoS.
Для поддержки большинства базовых видов SOA-контрактов имеется стандарты и инфраструктура. Функциональные интерфейсы специфицируются с использованием языка WSDL, в котором также обеспечивается поддержка информации о политиках и семантике. В политиках выражаются свойства QoS, такие как безопасность, надежная доставка и транзакционное поведение. Однако для использования всего потенциала SOA должны появляться инфраструктурные средства определения более развитых и выразительных контрактов. Для достижения этой цели ведется работа по созданию отраслевых стандартов, обеспечивающих совместное использование определений бизнес-семантики в данной области индустрии. Также наблюдается существенный прогресс в исследованиях семантических Web-сервисов, направленных на обеспечение более гибкой среды поддержки таких контрактов. Эти два направления являются взаимно дополняющими, и их развитие может революционизировать практику применения SOA.
Вне тематической подборки в номере опубликована статья Максима Петренко, Дениса Пошиванюка, Вацлава Райлиха и Йозефа Бухты «Обучение принципам эволюции программного обеспечения на основе Open Source» (Teaching Software Evolution in Open Source).
Учебные курсы по инженерии программного обеспечения должны быть направлены на подготовку студентов к карьере в ИТ-индустрии и опираться на мировой опыт. Однако в большинстве курсов студенты с нуля разрабатывают программы, в которых отсутствуют характеристики промышленного программного обеспечения: большой объем, сложная архитектура, высокое качество кода и т.д. Кроме того, в сегодняшних условиях, когда 65% расходов на программное обеспечение уходят на развитие существующих программ, фокусирование на разработке неэффективно. Преподаватели знают об этом дефекте и рекомендуют включить в учебные планы тему эволюции программного обеспечения.
О вреде избыточного питания компьютеров
Декабрьский номер журнала Computer (IEEE Computer Society, Vol. 40, No. 12, December 2007) посвящен технологиям, способствующим эффективному потреблению электропитания серверами, центрами обработки данных и суперкомпьютерами. Этой теме посвящена развернутая вводная заметка приглашенных редакторов и три статьи подборки. В качестве приглашенных редакторов выступили Луиз Андре Барросо и Урс Хелцле из компании Google, назвавшие свою заметку «Доводы в пользу компьютерных систем с соразмерным потреблением энергии» (The Case for Energy-Proportional Computing).
Эффективность потребления энергии в течение некоторого времени была основной движущей силой развития технологий мобильных и встроенных компьютеров, а теперь управление энергопотреблением стало ключевой проблемой функционирования серверов и центров обработки данных. Многие методы энергосбережения, разработанные для мобильных устройств, стали естественными кандидатами для применения в этой новой проблемной области. Однако здесь требуются дополнительные исследования, посвященные созданию эффективных методов энергопотребления.
В современных серверах энергия наименее эффективно потребляется, когда они работают в самом обычном режиме; для устранения этого перекоса требуется существенное переосмысление принципов организации компонентов и систем. Авторы полагают, что первичной целью должно стать соразмерное потребление энергии.
Очевидна тенденция, что именно электроэнергия может стать доминирующим фактором совокупной стоимости владения серверами. В первом приближении расходы на поддержку охлаждения и питания пропорциональны количеству энергии, потребляемой серверами.
Понижению уровня энергопотребления компьютерами способствует деятельность таких организаций, как Climate Savers Computing Initiative (www.climatesaverscomputing.org), содействующих повсеместному внедрению высокоэффективных источников питания и использованию энергосберегающих средств, уже присутствующих в имеющемся у пользователей компьютерном оборудовании. Появление более эффективных многоядерных микропроцессоров также способствует созданию серверов с более эффективным энергопотреблением, однако в долговременной перспективе сохраняется та же тенденция: повышению производительности сопутствует повышение уровня энергопотребления.
Многие из методов снижения энергопотребления, разработанные для мобильных устройств, напрямую применимы к серверам общего назначения, включая поддержку нескольких уровней подаваемой мощности, отключение блоков базовой логики с целью экономии энергии (clock-gating), динамическое масштабирование напряжения и частоты. В мобильных устройствах высокая производительность требуется в короткие промежутки времени, когда пользователь ожидает ответа от компьютера, после чего следуют относительно длинные интервалы простоя. Аналогичная двухрежимная модель присуща использованию многих встроенных компьютеров, например, в агентах сенсорных сетей.
Этот шаблон функционирования толкает инженеров к тому, чтобы добиваться высокой эффективности энергопотребления на уровне пиковой производительности и в режиме ожидания, однако модель использования серверов, в особенности применяемых в крупномасштабных Internet-сервисах, иная. Серверы редко полностью переходят в режим ожидания и лишь изредка функционируют в режиме пиковой производительности (большую часть времени они загружены на 10-50% своей максимальной возможности). Такое поведение не случайно, а является следствием принципов проектирования распределенных систем, предназначенных для оказания услуг. Если сервис в Internet обеспечивается таким образом, что средняя загрузка сервера близка к 100%, то могут возникнуть трудности при обеспечении гарантированной пропускной способности и времени задержки, поскольку даже незначительные колебания трафика и любое внутреннее нарушение функционирования могут вывести значения требуемых параметров сервиса за пределы допустимых границ. Кроме того, отсутствие разумного резерва мощности приводит к усложнению обычных операций, поскольку, например, выполнение любой задачи по обслуживанию сервера потенциально может вызвать серьезное нарушение функционирования сервисов. Аналогично в правильно организованных сервисах редко допускаются значительные периоды простоя серверов, поскольку это означало бы наличие существенных непроизводительных затрат.
Полный простой серверов маловероятен даже в те периоды времени, когда наблюдается низкий уровень спроса на соответствующие сервисы; в крупномасштабных службах обычно требуются сотни серверов, между которыми распределяется общая нагрузка. В некоторых случаях можно было бы перевести часть серверов в полностью бездействующее состояние, сокращая число активных клиентских компьютеров. Однако часто это трудно сделать, поскольку между машинами распределяются не только вычисления, но и данные. Распределение данных между несколькими машинами повышает уровень доступности данных и способствует также ускорению процедуры восстановления после аварийного отказа аппаратуры или программного обеспечения за счет распределения рабочей нагрузки восстановления между большим числом узлов, как это делается в Google File System. В результате все серверы должны быть доступными даже в периоды низкой нагрузки, и, кроме того, сетевые серверы часто выполняют многочисленные фоновые задачи, из-за чего их невозможно перевести в состояние бездействия.
Поскольку для серверов периоды полного бездействия возникают крайне редко, для них невозможно эффективно применять методы экономии энергии, основанные на специальном режиме функционирования. Для большинства привлекательных режимов экономии энергии свойственны очень высокие расходы на восстановление обычного режима функционирования, например время, требующееся для раскрутки диска, а это затрудняет использование приложений и снижает полезность подобных подходов.
Энергопотребление сервера зависит от уровня его утилизации, например числа запросов в секунду, которые должен обрабатывать Web-сервер. Даже сервер со сравнительно эффективным потреблением энергии расходует примерно половину своей пиковой энергии в периоды, когда ему почти нечего делать. Показатель эффективности потребления энергии получается путем деления показателя утилизации на соответствующий показатель потребляемой энергии. Тогда пиковая эффективность потребления энергии проявляется в периоды пиковой утилизации, а по мере понижения значения показателя утилизации быстро падает. В частности, эффективность потребления энергии в диапазоне показателя утилизации от 20 до 30% более чем вдвое уступает эффективности потребления энергии в периоды пиковой производительности.
Ответственность за устранение несоответствия между характеристиками энергопотребления серверов и рабочими нагрузками серверных приложений лежит, прежде всего, на разработчиках компонентов и систем: они должны помочь построить машины, в которых объем потребляемой энергии был бы пропорционален объему выполняемой работы. Такие машины с соразмерным потреблением энергии в идеале вообще не будут потреблять энергию в периоды бездействия, почти не будут потреблять энергию при малой нагрузке и повышать уровень потребления энергии по мере повышения нагрузки.
Первая статья подборки называется «Модели и метрики, позволяющие оптимизировать эффективность энергопотребления» (Models and Metrics to Enable Energy-Efficiency Optimizations) и представлена Сьюзан Ривуар, Кристосом Козиракисом, Мехулом Шахом, Партасарати Ранганатаном и Джастином Мецой.
По данным Агентства по защите окружающей среды США, в период с 2000-го по 2006 год потребление энергии серверов и центров обработки данных в американских компаниях удвоилось и еще раз удвоится в течение следующих пяти лет. Это влияет не только на стоимость электроэнергии, требуемой центрам обработки данных, но также приводит к необходимости приобретения и эксплуатации аппаратуры охлаждения, которая может потреблять полватта мощности на каждый ватт, потребляемый сервером. Все эти расходы, связанные с энергией, потенциально могут превышать стоимость приобретения компьютерной аппаратуры.
Основными взаимосвязанными подходами к решению этой проблемы являются встраивание в конструкцию компонентов, поддерживающих эффективное энергопотребление, а также адаптивное управление энергопотреблением систем или групп систем при изменении рабочей нагрузки или условий окружающей среды. Примером первого подхода служит технология изготовления электронных схем, препятствующих подачи тактовых сигналов в неиспользуемые части процессора.
Для применения второго подхода на системном уровне требуются политики разумного использования этих состояний с низким потреблением энергии для экономии энергии. Для содействия этой оптимизации требуются метрики эффективности энергопотребления, которые могли бы помочь разработчикам сравнивать разные решения и находить перспективные технологии поддержки эффективности энергопотребления. Также требуются модели предсказания последствий применения политик динамического управления энергией, в особенности в случае нескольких машин.
Ву-Чун Фенг и Кирк Камерон представили статью «Список Green500: поощрение экологически рациональных компьютеров» (The Green500 List: Encouraging Sustainable Supercomputing).
С 1992 года производительность суперкомпьютеров выросла в 10 тыс. раз, но производительность в расчете на один ватт потребляемой мощности возросла только в 300 раз, а производительность в расчете на удельную площадь — только в 65 раз. Из-за недостаточного совершенствования этих характеристик суперкомпьютеров исследователям приходится проектировать и оборудовать новые машинные залы, а в некоторых случаях и целые здания. Некоторые современные суперкомпьютеры из списка Top 500 потребляют до 10 МВт, что достаточнo для удовлетворения потребностей в энергии города с населением 40 тыс. жителей.
По мере того как узлы суперкомпьютера потребляют все больше энергии, их приходится размещать все менее плотно и подвергать энергичному охлаждению. Если не использовать специальные средства охлаждения, компьютеры перегреваются и становятся слишком ненадежными для проведения научных расчетов. К сожалению, специальные средства охлаждения могут стоить столько же, сколько сам суперкомпьютер, а расходы на эксплуатацию и поддержку этих средств оказываются еще больше.
Парадигма «производительность любой ценой» больше не является оправданной. К сожалению, в метрике, основанной исключительно на производительности, не отражаются показатели эффективности энергопотребления. Тем не менее эта метрика, происходящая от эталонных тестовых наборов Linpack и системы тестов SPEC, существенно повлияла на проектирование современных серверов и суперкомпьютеров. Требуются новые метрики, в которых учитывались бы различия разных архитектур в части эффективности энергопотребления. К сожалению, при разработке метрики приходится сталкиваться с техническими и политическими проблемами. Что касается технической стороны, метрика и связанные с ней тестовые наборы должны восприниматься специалистами как представители рабочей нагрузки, обычно присутствующей в производственных системах. С точки зрения политики, в метриках и тестовых наборах должно быть серьезно заинтересовано сообщество.
Авторы занимаются пропагандой идеи проектирования суперкомпьютеров (и центров обработки данных) с эффективным энергопотреблением уже семь лет. В рейтинге Green 500 суперкомпьютеры ранжируются по объему энергии, требуемой для выполнения фиксированного объема научно-производственных расчетов. В отличие от этого, подкомитет SPECPower организации SPEC разрабатывает соответствующие эталонные тестовые наборы для серверов, на которых исполняются коммерческие производственные коды.
Последняя статья тематической подборки называется «Компьютерные системы со знанием жизненного цикла» (Life Cycle Aware Computing: Reusing Silicon Technology). Ее написали Джон Оливер, Раджеван Амиртараджан, Венкатеш Акелла, Рональд Гейер и Фредерик Чонг.
Поскольку в процессе производства полупроводникового оборудования используются высокоочищенный кремний, затраты энергии достаточно велики — примерно 41 МДж на микросхему DRAM площадью 1,2 кв. см. Для иллюстрации макроэкономического воздействия этих энергетических расходов авторы приводят тот факт, что к 2015 году полупроводниковая индустрия Японии будет потреблять 1,7% всего бюджета электроэнергии страны. Для производства энергии, достаточного для создания килограмма полупроводников, требуется около 600 килограммов ископаемого топлива.
Если говорить про охрану окружающей среды, то для создания упомянутой микросхемы DRAM используется 72 грамма токсичных химических веществ. В 2000 году полупроводниковая индустрия произвела 28,4 млн. кв. см таких микросхем, использовав около 17 млн. килограммов опасных веществ. Поскольку каждый год производится все больше полупроводниковых устройств, возрастают расходы и на утилизацию полупроводников.
Несмотря на все эти расходы, типичный процессор используется только в течение части своего ожидаемого жизненного цикла. Хотя развитие технологии приводит к тому, что полупроводниковое оборудование быстро устаревает, кристаллы можно было бы повторно использовать для решения менее ответственных компьютерных задач. Стратегия повторного использования привела бы к созданию «цепи питания» компьютерных устройств, амортизирующей энергетические затраты, которые требуются для создания процессоров — в особенности встроенных процессоров с пониженным энергопотреблением.
Единственная статья декабрьского номера, не вошедшая в тематическую подборку, называется «Анализ проблем научных потоков работ» (Examining the Challenges of Scientific Workflows) и написана Иоландой Гил, Евой Дилман, Марком Эллисманом, Томасом Варингером, Джеффри Фоксом, Деннисом Гоблом, Мироном Ливни, Люком Моро и Джимом Майерсом.
Существенные научные достижения все более возможны только на основе сложного набора процессов вычислений и анализа данных. Вычисления могут состоять из тысяч шагов, и на каждом шаге могут интегрироваться разные модели и источники данных, созданные различными научными группами. Приложения и данные могут быть также распределены в среде обработки. При сборке таких сложных распределенных вычислений и управлении ими возникает много проблем, а все более амбициозные научные запросы постоянно наталкиваются на ограничения современной технологии.
Научные потоки работ представляют собой парадигму представления и управления распределенными научными вычислениями, позволяющую ускорить прогресс науки. Научные потоки работ управляют потоками данных между отдельными шагами преобразования и анализа данных, а также организуют исполнение этих шагов в распределенной среде. Каждый шаг в потоке работ специфицирует выполнение некоторого процесса или вычисления (например, программы или Web-сервиса). Поток работ связывает шаги в соответствии с потоком данных и зависимостями между шагами. Представление этих вычислительных потоков работ содержит много подробностей, требуемых для выполнения каждого шага, включая использование конкретных вычислительных ресурсов и ресурсов хранения данных в распределенной среде.
Системы управления потоками работ используют эти явные представления сложных вычислительных процессов для управления их жизненным циклом и автоматизации их исполнения. В дополнение к этой автоматизации потоки работ могут обеспечить информацию, необходимую для воспроизведения научных результатов, отслеживания происхождения результатов и совместного использования результатов между сотрудниками. Системы потоков работ демонстрируют эти возможности в разнообразных приложениях, в которых потоки работ состоят из тысяч компонентов, обрабатывающих крупные распределенные наборы данных с использованием высокопроизводительных вычислительных ресурсов. Некоторые системы потоков работ внедряются для повседневного использования в научных виртуальных образованиях, позволяющих ученым сотрудничать за пределами организационных и физических границ.
Большая часть выполняемых исследований в области научных потоков работ посвящается созданию потоков работ, их повторному использованию, отслеживанию происхождения данных, оптимизации производительности и надежности. Однако для полной реализации потенциала технологии потоков работ требуется удовлетворить многие дополнительные требования и решить множество проблем. Для научных приложений требуются поддержка динамического анализа под управлением событий, управление потоковыми данными, налаживание взаимодействия с пользователями, интеллектуальная поддержка коллективной разработки потоков работ, обеспечение совместного использования результатов в коллаборациях.
С Новым годом и до следующей встречи, Сергей Кузнецов, kuzloc@ispras.ru.