В настоящее время использование облачной инфраструктуры для размещения данных и их обработки становится важным технологическим трендом.
При размещении, хранении и обработке данных дистанционного зондирования Земли (ДЗЗ), в частности, гиперспектральных изображений, изображений большого размера, наборов связанных фрагментов изображений, в распределённой информационной среде следует учитывать, помимо большого размера, структурные особенности этих данных, а именно, пространственную зависимость данных, необходимость согласования многомерной структуры данных и последовательного представления их при хранении.
Именно поэтому достаточно популярный путь перехода в «облако» на основе использования технологий «больших данных» (Big Data), в частности, программной платформы Hadoop, для организации обработки и хранения данных дистанционного зондирования наталкивается на значительное число проблем, связанных с тем, что технологии Big Data в первую очередь ориентированы на обработку текстовой информации. Отдельные проекты использования платформы Hadoop для хранения и обработки набора изображений только подтверждают это.
Однако, общие принципы и методологию распределённого хранения и параллельной обработки данных полезно использовать при разработке систем обработки и хранения данных ДЗЗ. Следует выделить две основных идеи: 1) тотальное распараллеливание данных и вычислений с обеспечением отказоустойчивости как на уровне хранения, так и при обработке, и 2) наличие базовой инструментальной среды, позволяющей исследователям сосредоточится на написании содержательной части обработки, обеспечивая распределённое отказоустойчивое хранение данных, снимая проблемы организации распределённой обработки «на месте хранения», доставки исполняемого кода на узлы хранения для проведения вычислений.
Начальные реализации платформы Hadoop основаны на парадигме MapReduce. Основная проблема заключается в сложности представления произвольного алгоритма обработки (получения результата) в виде двухэтапной процедуры, где на первом этапе (этапе Map) происходит формирование частичных промежуточных результатов обработки отдельных частей единого массива данных, а на втором этапе (этапе Reduce) на их основе собирается окончательный результат. Дополнительной проблемой такой организации вычислений является необходимость сохранять все промежуточные результаты в локальной дисковой памяти узлов распределённого вычислительного кластера, поэтому для обеспечения приемлемой эффективности процесса такой обработки объём данных после первого этапа должен уменьшиться на несколько порядков. Именно поэтому, организация распределённой обработки изображений на базе платформы Hadoop зачастую реализуется в вырожденном виде (только этап Map), по сути, используя только встроенные в данную инфраструктуру средства организации распределённой обработки «на месте хранения».
Поскольку не все методы обработки можно реализовать в рамках парадигмы MapReduce, то появились потоковые методы обработки больших данных, которые также основаны на идее разбиения исходного набора данных на независимые блоки с последующей потоковой схемой их преобразования в результат с использованием распределённой отказоустойчивой организации вычислений. Возросшая при этом эффективность обработки связана, в первую очередь, с реализованной возможностью не сохранять промежуточные результаты вычислений на диск.
При творческом развитии и адаптации изложенных идей применительно к задачам разработки распределённых систем обработки и хранения данных ДЗЗ необходимо учитывать особенности этих данных, представленных преимущественно в виде изображений, т.е. пространственно-зависимых данных. Простое разбиение крупноформатного изображения на отдельные фрагменты, которое реализуется в системах на базе платформы Hadoop, в большинстве случаев не применимо, оно должно быть программно-контролируемым, особенно при использовании в процессе обработки локальных операций на основе скользящей окрестности.
Для технологий обработки данных ДЗЗ (в первую очередь, крупноформатных гиперспектральных изображений) характерно наличие предварительной обработки в виде многоэтапного процесса, при котором промежуточные данные существенно не редуцируются в объёме. Распределённая организация вычислений при этом связана с использованием декомпозиции на перекрывающиеся фрагменты, то есть совместно с основными отсчётами, которые будут изменяться в процессе обработки, хранятся пограничные отсчёты из соседних фрагментов, которые используются только в процессе обработки и при многоэтапной обработке должны корректироваться по результатам завершения очередной операции.
Решением в данном случае является использование концепции Data-as-a-Service.
Все компоненты системы хранения и обработки гиперспектральных изображений, в том числе сами данные, реализуются как сервисы, размещенные в облачной вычислительной среде. В качестве интеграционного решения используется децентрализованное объединение (федерация) равноправных взаимодействующих друг с другом сервисов, реализованное на базе одной из составляющих платформы Hadoop – сервисе координации процессов распределённых приложений Zookeeper.
Основной структурной единицей хранения в системе является распределённое изображение, которое доступно пользователю как набор взаимодействующих сервисов хранения, т.е. каждый фрагмент распределённого изображения представляется в виде отдельного сервиса (фрейм-сервиса) со своим уникальным именем в иерархии изображений-сервисов. Фрейм-сервис, помимо интерфейса доступа к данным, реализует интерфейс, обеспечивающий получение и выполнение задания на обработку контролируемых данных. Причём, в процессе такой обработки данные не изменяются, а создаётся новое распределённое изображение, фрагменты которого могут быть не согласованы между собой в части обеспечения последующей сбалансированности распределённой обработки. Тем не менее, наличие "интеллекта" у фрейм-сервиса и связей с соседями позволяет выполнить все необходимые для такого согласования действия автономно в фоновом режиме, предоставляя пользователю необходимые ему функции (чаще всего это визуализация) и данные непосредственно сразу после создания. Таким образом, реализуется ориентированный на данные подход к организации вычислений, при котором фрагменты данных заранее распределены по узлам хранения распределённой системы, а в процессе обработки вместо данных пересылаются процедуры их обработки.
Сервисы-обработчики могут функционировать в двух режимах – как фильтр и как ресурс. В первом случае сервис получает и перерабатывает потоковые данные, во втором – передает специальным образом оформленную задачу, которая выполняется в виртуальной машине фрейм-сервиса.
Все сервисы регистрируются в распределенном репозитарии Zookeeper, который обеспечивает группировку всех сервисов по передаваемой от них информации: сервисов-обработчиков по типам операций, фрейм-сервисов по принадлежности к исходному ГСИ, пространственным координатам и другим статистическим характеристикам.
Особенностью вычислительных задач обработки изображений является тот факт, что значительное число методов сложной обработки изображений могут быть реализованы как последовательное применение некоторых законченных типовых операций над изображениями. Именно это обстоятельство определяет эффективность применения разнообразных программных систем обработки изображений к решению широкого спектра исследовательских и прикладных задач обработки и анализа изображений.
Базовый вариант формирования задачи обработки изображений заключается в задании последовательности выполняемых операций обработки, т.е. графа обработки.
Наряду с последовательным вариантом организации вычислений по такому графу обработки при хранении всех промежуточных данных в оперативной памяти фрейм-сервиса рассматривается схема с параллельным выполнением всех шагов алгоритма и непосредственной передачей части данных от одной операции к другой по мере готовности. Фактически формируется некоторый поток данных (потоковая сеть), элементы которого преобразуются на каждом шаге и передаются последующему для дальнейшей обработки. Из-за необходимости анализа процесса вычислений в потоковых сетях произвольного вида обычно рассматриваются только конвейеры из последовательно соединенных операций. При реализации произвольных потоковых сетей необходимо проводить предварительный анализ графа обработки на корректность вычислений и выполнять возможное согласование структуры данных и процессов вычислений.
Предлагаемая архитектура предоставляет не просто способ построения сложной распределенной системы, а качественно иной принцип использования привычных сущностей, которые вместе обеспечивают определённый синергетический эффект. Рассмотренные решения позволят организовать технологию обработки данных ДЗЗ с использованием метапрограммирования и мультимодального подхода, при котором пользователь может указывать не конкретные операции обработки, а некоторые обобщающие этапы, формулировать требуемые цели обработки и намечать пути их реализации.
Работа выполнена при поддержке Российского фонда фундаментальных исследований (проект № 1529-07077).