Как использовать практически неограниченные возможности кластеров, состоящих из сотен или даже тысяч простых серверов, но стоящих существенно меньше, чем сопоставимые по производительности SMP-серверы? Имеется множество подходов к решению этой злободневной проблемы, один из которых предложила молодая компания ActiveGrid.

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

Питер Яред, основатель компании ActiveGrid, утверждает, что с помощью ее инструментов можно создать серьезное приложение всего за несколько дней, написав 150 строк кода вместо 14 тыс. на языке Java. Это известие вызвало бурную реакцию не только компьютерной, но и деловой прессы. Может ли данная технология быть универсальной? Скорее всего, нет, но в некоторых случаях она действительно способна дать положительный эффект. Конечно, не в качестве полноценного конкурента Java.

Итак, в 2005 году язык Java сыграл роль слона, чье спокойное шествование по улицам корпоративных информационных систем пытается нарушить Яред. С его именем ассоциируется и техническая политика возглавляемой им компании. Яред занимает свою нынешнюю позицию года два, а прежде занимался разработкой ответственных систем по заказу американского правительства, основал компанию jRad, купленную впоследствии NetDynamics, и вместе с последней попал в Sun Microsystems, где пять лет руководил разработкой серверов приложений на Java (!), наконец, был руководителем альянса Liberty Network.

Видимо, уже в те годы в нем зрело внутреннее несогласие с некоторыми взглядами, исповедуемыми в Sun. Так, в своем блоге Яред пишет, что техническое руководство Sun пресекало любые попытки разработки скриптовых языков на базе Java для виртуальной машины JVM. К качестве примера он упоминает несостоявшиеся инициативы — альтернативные языки javab (1999 год) и Java 3 (2003).

В том, что утверждает Яред, конечно же, есть зерно истины: ничто не стоит на месте. Сейчас происходит примерно то же, что наблюдалось в 90-е, когда языки программирования Cи и C+ уступили свои позиции Java. В области малого и среднего бизнеса конкуренция между Java и .Net обостряется. А в результате складывается очень выгодная позиция для «третьей» стороны.

Сейчас — удачное время для проникновения в большой бизнес хакерских инноваций — именно так расценил LAMP аналитик Тим О?Рейли, занимающийся корпоративными технологиями. Разумеется, хакерских, но в классическом, благородном смысле этого слова. Конечно, не следует предаваться иллюзиям и забывать о размерах бизнеса таких компаний, как IBM, Sun или BEA Systems, и об их инсталляционной базе. И еще экстремистам стоит напомнить о преемственности поколений. Скажем, весьма существенная часть приложений, написанных на Коболе, продолжает жить, а этот язык — даже не динозавр, а что-то существовавшее еще раньше.

Возглавив компанию и создав технологию, которую если и можно считать альтернативой языку Java, то с очень большой натяжкой, Яред объявил Java и среды разработки на его основе очередными динозаврами, поставил их в один ряд с мэйнфреймами IBM и ERP-системами SAP. Продукт собственной компании, ActiveGrid Application Server, Яред называет сервером приложений следующего поколения. Таким образом, он дает ему зеленый свет, а другими словами — «включает лампу» LAMP.

С помощью этой метафоры, «лампа», Яред обыгрывает свое стремление стать одним из лидеров в области облегченных архитектур (lightweight architecture) и оседлать — естественно с пользой для себя — стек программного обеспечения LAMP. До сих пор облеченные архитектуры применяли компании, специализировавшиеся на обслуживании большого количества пользователей, но каждая из них создавала частное решение. Продукты ActiveGrid Application Server и ActiveGrid Application Builder образуют «общность», названную ActiveGrid Enterprise LAMP. Она добавила стеку продуктов LAMP недостающие ему корпоративные возможности, и теперь облеченные архитектуры становятся доступны всем.

Если признать соперничество с Java исключительно маркетинговым приемом, то появление ActiveGrid Enterprise LAMP Server и ActiveGrid Application можно рассматривать с нескольких точек зрения. Во-первых, это очередной этап развития интегрированных сред разработки приложений (Integrated Development Environment, IDE). Сочетание философии Open Source с открытой расширяемой конструкцией IDE дает возможность появления альтернативных подходов, одним из которых и является ActiveGrid Enterprise LAMP.

Во-вторых, в образе ActiveGrid Enterprise LAMP перед нами предстает одна из наиболее оригинальных попыток конвергенции двух широко обсуждаемых технологических новшеств — кластеров, построенных из дешевых серверов (например, лезвийных), и сервис-ориентированных приложений. Имеются в виду приложения «переднего фронта», обеспечивающие сервис через сеть, такие как Google, Amazon или Yahoo! Для кластера в данном случае, как и у некоторых других производителей, используется термин grid, но с уточнением: Яред дал аппаратной архитектуре оригинальное название — «транзакционный грид».

ActiveGrid Application Builder позволяет работать примерно так, как это можно делать на языках 4GL с использованием PowerBuilder. Это — прикладной графический редактор для стандартных схем XML, таких как BPEL и XForms. Сервер приложений ActiveGrid Grid Application Server основан на Apache и обеспечивает выполнение XML-приложений в кластере, состоящем максимум из 1024 узлов. В результате ActiveGrid Enterprise LAMP упрощает и ускоряет разработку сервис-ориентированных приложений.

За шумными маркетинговыми заявлениями Яреда скрывается интересная идея реанимации языков четвертого поколения, но с использованием стандартов метаданных XML и Web-сервисов, а также языка описания бизнес-потоков BPEL. В отличие от предшественников, ActiveGrid Application Builder представляет все данные как XML Web-сервисы, а метаданные для доступа ко всем данным фигурируют в стандарте XML Schema. Разработчику методы и сервисы доступа к данным представляются только как Web-сервисы. «Внутри себя» ActiveGrid представляет данные в виде текстовых файлов в формате XML, иначе говоря, текстовых файлов с самоописанием, но программист не имеет к ним прямого доступа. Среда разработки полностью визуализирована, можно лишь перетаскивать схемы данных и потоки работ на диаграмме. Есть весьма ограниченная возможность редактировать тексты кодов на языке Python или Perl.

Внутренняя сервисная организация ActiveGrid Enterprise LAMP является самой главной находкой Яреда, но по какой-то причине об этом не говорится явно. А ведь именно собственная сервисная архитектура и позволяет создавать решения, масштабируемые от нескольких десятков до нескольких сотен серверов в кластере. Скрытость данного момента придает интриге, связанной с появлением ActiveGrid, особый шарм. Конечно, хотелось бы понять, как организовано распределение многопотоковой нагрузки, характерной для сервис-ориентированного приложения, в кластере, не имеющем центрального управляющего органа, но эта информация не раскрывается.


Стек LAMP

Термин LAMP (иногда используется обозначение L.A.M.P) предложен немецким экспертом в области Open Source Михаэлем Кунцем в 1998 году. Им обычно обозначают набор свободно распространяемого инструментария, состоящего из следующих компонентов:

  • Linux — операционная система;
  • Apache — Web-сервер;
  • MySQL ;— СУБД;
  • Perl, PHP и Python — языки программирования Web-приложений.

Облегченная архитектура

Недавно появившийся термин «облегченная архитектура» определяют от обратного. В категорию «тяжелой» архитектуры попадают инфраструктуры, созданные с использованием J2EE, имеющие сложный интерфейс API и способные работать на дорогих SMP-серверах или относительно небольших кластерах. А «облегченную» архитектуру имеют инфраструктуры, основанные на стеке открытых стандартов и способные работать на больших кластерах, собранных из простых серверов. В качестве примеров обычно указывают четыре решения: LAMP, Open Source Java, Ruby on Rails и Skinny .Net. Среди корпоративных решений, построенных на базе «облегченной» архитектуры, наиболее популярны сайты компаний Google, Amazon и Yahoo!

От тяжелой трехзвенной архитектуры к облегченной