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

10:03 01.09.2009   |   1201 |  Леонид Черняк |



В Москве Oracle Coherence 3.5, программный инструментарий для организации распределенных сред содержащихся в оперативной памяти данных, был представлен месяц спустя поле мировой премьеры (см."Oracle представляет новую версию Coherence") – в конце августа. Эта версия стала первым обновлением, выполненным под торговой маркой Oracle, а до 2007 года данный продукт именовался Tangosol Coherence – по названию разработавшей его компании Tangosol.

Основное отличие версии 3.5 от предшествующей – больший объем данных, размещаемых в оперативной памяти, теперь он измеряется терабайтами. Кроме того, в новую версию включен компонент Coherence Guardian, который автоматически обнаруживает и корректирует нарушения в работе сервисов, повышена производительность модуля, предназначенного для управления сессиями Coherence*Web, и обеспечена интеграция с Oracle WebLogic Server и Oracle WebLogic Portal, что значительно повышает производительность и масштабируемость приложений, развернутых на базе этих платформ.

Московская премьера не привлекла к себе заметного внимания, и это определенно свидетельствует о неподготовленности к ее восприятию, что совершенно незаслуженно. В Coherence заложен весьма нетривиальный подход к созданию распределенных систем, имеющий хорошие перспективы и нуждающийся в серьезном переосмыслении. Нынешняя тенденция к многоядерности процессорных архитектур позволяет предположить, что Coherence или его последователи получат со временем более широкое распространение. Слово "когерентность" в название включено не случайно, его можно интерпретировать как восприятие чего-то единым целым, а не по отдельным составляющим. Продукт был задуман в качестве инструментария промежуточного слоя для управления размещенными в оперативной памяти данными для кластеризованных приложений J2EE и серверов приложений в многоуровневых архитектурах, сейчас он поддерживает и .Net, и C++. Coherence обеспечивает распределение данных, согласование, репликацию и модификацию данных в кластерных конфигурациях с гарантией высокой скорости и надежности. Эти качества заданы идеологией продукта, разработанной Кэмероном Парди, основателем Tangosol (после приобретения этой компании Oracle в 2007 году он стал вице-президентом Oracle по разработке). Парди по-своему смотрит на природу распределенных систем: он пришел к выводу, что их следует интерпретировать не как набор отдельных клеток, а как единый многоклеточный организм.

По мнению Парди, существует два альтернативных подхода к созданию распределенных программных систем: один можно назвать традиционным, а другой, предложенный им, - "органическим". В первом случае каждый сервер, каждый процесс рассматриваются изолированно, как отдельный одноклеточный организм. Одиночное существование несет свои сложности, его поддержание должно учитывать все возможные проблемы, организм должен быть рассчитан на самозащиту, то есть на нарушения в самом себе и в связях с окружением. На этом построена вся современная техника, вся теория надежности, где основными показателями являются средняя наработка на отказ (MTBF), среднее время восстановления (MTTR) и подобные им. Но, в отличие от других систем, компьютерные системы хорошо приспособлены к кластеризации, что дает возможность создания многоклеточных механизмов. Классическое представление о кластерах возникло вместе с первыми Unix-серверами, но сегодня вместе с появлением серверов приложений оно приобрело более широкий смысл. Серверы на базе Java EE могут работать на кластерах собранных из виртуальных машин JVM, из них то можно собирать многоклеточные "органические" системы. Суть органичности в том, что существование многоклеточного организма не подвергается угрозе в случае отмирания одной клетки. Толерантность к такому событию исключает необходимость в каких либо специальных действиях по восстановлению.

Среди технологий, используемых для создания "органического" кластера, можно выделить две — логическую модель кэширования и ее реализацию в форме обмен сообщениями каждого сервера с каждым (hub-less messaging, то есть без концентратора). Эти, расположенные в оперативной памяти кэши образуют грид данных (data grid). Память становится с каждым годом дешевле и дешевле и в нынешних условиях позволительно иметь кэши большого размера. Coherence предполагает использование кэшей с различной функциональностью, выбор определенного типа зависит от предназначения системы. Общей для девяти возможных типов кэшей является модель взаимодействия называемая "совещательной комнатой", в ней каждый видит всех остальных, замечает появление и уход, может разговаривать с любым, подобная одноранговая модель позволяет одновременно говорить с несколькими. Система обмена сообщениями без концентратора обладает обладает высокой надежностью и не предъявляет высоких требований к поддерживающей ее аппаратуре.

В Coherence допустимы три типа программных интерфейсов, которые определяют свойства аппаратной платформы. Это может кластерное издание Clustered Edition, работающее на аппаратном кластере, Enterprise Edition, здесь платформой может быть корпоративная сеть и Grid Edition, в этом случае платформой может служит географически разнесенный грид в классическом его понимании. Среди наиболее востребованных областей приложения Coherence можно назвать актуальные сегодня обработку сложных событий CEP (Complex Event Processing) и экстремальную обработку транзакций XTP (eXtreme Transaction Processing), где есть необходимость работе с большими объемами данных в режиме реального времени.


Теги: