Utility Computing - путь к уменьшению сложностей

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

Впервые проблема контроля загруженности вычислительных ресурсов возникла в 1965 г. с появлением на сцене первого многопроцессорного компьютера Univac 1108A. В эту систему была введена новая низкоуровневая вычислительная команда - операция "установки семафора", гарантирующая, что один из процессоров успеет считать содержимое ячейки памяти и изменить его значение, прежде чем любой другой процессор попытается в свой черед изменить те же данные.

Мартинез из Blue Titan: "Минимально сложные

 концевые точки, но интеллектуальная структура"

Немало трудностей возникает даже в таких системах, где разработчик имеет полные сведения о конфигурации аппаратуры и должен управлять портфелем знакомых приложений с известными операциями ввода и вывода данных. И уж куда более сложные барьеры приходится преодолевать при реализации "коммунальных" моделей в динамических средах, например в схемах grid-вычислений.

Успешное решение таких проблем зависит от соблюдения "слабой связи", под которой разработчики подразумевают технологии, минимизирующие риск нарушения критических условий для работы приложений.

Задача сохранения определенной свободы может, однако, стать невыполнимой при усложнении аппаратуры, как это было в случае с Univac, либо развертывании такой инфраструктуры, как Microsoft .Net. Ее решение требует переноса сложностей с узлов сети на сетку доставки сервисов.

"Среди компаний наблюдается заметная тенденция к применению слабосвязанных, ориентированных на сервисы решений, - отмечает Франк Мартинез, технологический руководитель фирмы Blue Titan Software (Сан-Франциско), специализирующейся на сервисных структурах. Тем не менее, предупреждает он, здесь необходимы согласованность и поощрение разработок, использующих слабые связи, а это очень и очень непросто.

Оберегайте свободу

Utility Computing зависит от сохранения слабой связи

- ИТ-индустрия борется с хаосом, при котором множество обрабатывающих узлов должны работать вместе

- "Слабая связь" на базе сообщений поддерживает сцепление без утраты гибкости

- Простые концевые точки сетей должны сочетаться с интеллектуальными сервисными структурами 

По мнению Мартинеза, среды разработки ПО хорошо справляются с генерацией кода приложений, однако неявным образом делают его зависимым от ресурсов. "Инструменты играют немалую роль в усугублении сложностей, - говорит он. - Мы широко используем среды программирования, но они создают точки жесткой привязки даже в исходно слабо связанной архитектуре".

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

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

С выходом на этот путь, добавляет он, "надо отходить от программирования и интеграции в формах, зависящих от кода, и начать программировать, оперируя контрактами. Как раз на это и ориентирован WSDL (язык описания Web-сервисов). Усвоив данный функциональный аспект, придерживайтесь принципа простоты кода и вводите изменения на основе правил. Необходимы минимально сложные концевые точки, но интеллектуальная структура".

Устройства, выступающие в роли потребителей обычных коммунальных услуг, тоже являются простыми концевыми точками сложных сетей; например, сантехника или электроприборы работают вне зависимости от деталей структуры коммунальной сети, лишь бы удовлетворялись нужные условия в концевой точке.

Конечно, аналогии могут завести слишком далеко. Биты не настолько однородны, как кубометры или киловатт-часы. Однако чем проще концевые точки, тем меньше вероятность, что к ним будут применяться противоречивые допущения или с ними будут обращаться запрещенным способом.

После почти четырех десятилетий попыток сдержать хаос множества переусложненных клиентов, разделяющих примитивную общую сеть, которая их не защищает от самих себя, разработчикам приложений следует приветствовать наступление эры Utility Computing.