Нынешнюю ситуацию в корпоративных ИТ-инфраструктурах можно сравнить с тем, что было когда-то со звуковоспроизводящей аппаратурой. Энтузиасты аудиотехники эпохи виниловых пластинок не были филофонистами и больше говорили о технике (о вертушках, колонках, усилителях и проводах), чем о ее предназначении — о музыке. Спустя несколько десятилетий рынок аудиосистем достиг зрелости, аппаратура достигла такого качества, что за исключением узкого круга фанатов Hi-Fi о ее свойствах вообще никто не задумывается, но при этом музыкальный рынок расцвел. Сейчас нечто подобное происходит в ИТ, здесь до недавнего времени все разговоры профессионалов были сосредоточены на вопросе «Как?»: на объектах, на сервисных архитектурах, на сервисных шинах, на сетевых протоколах TCP/IP и т. п. Но почти никто не говорит и не задумывается над вопросом «Зачем?», в частности, о том, что на самом деле интересует пользователей. Сегодня, под влиянием роста объемов данных, фокус внимания наконец-то сместился со средств на цели, и, как следствие, началось изменение архитектуры информационных систем, для обозначения которой был предложен новый термин «архитектура, ориентированная на информацию» (Information Oriented Architecture, IOA). Несмотря на существующую пока неопределенность, уже понятно, что архитектура IOA может воплощаться в виде двух близких сервисных концепций: «информация как сервис» (Information as a Service, IaaS) и «данные как сервисы» (Data as a Service, DaaS). Первая предполагает снабжение пользователей непосредственно информацией, а вторая — данными.
Двуединые ПО и IOA
В природе, науке и религии сосуществуют два противоположных и взаимодополняющих начала, образующих единую сущность. Как писал великий датчанин Пит Хейн в одном из своих самобытных стихотворений, известных как груки, — все в жизни выпукло или наоборот. За свои груки он трижды выдвигался на Нобелевскую премию, а среди почитателей его таланта были Норберт Винер и Нильс Бор. Примером единства противоположностей в математике может служить пара, состоящая из непрерывности и дискретности, в литературе — из прозы и поэзии, в философии — из материализма и идеализма, в компьютерной науке и информационных технологиях — из аппаратного и программного обеспечения. В ПО тоже есть свои инь и ян — данные и процессы. В этом смысле ПО не оригинально — любое производство, где происходит переработка сырья в товар, можно рассматривать точно так же с двух точек зрения. Специалист по оборудованию видит в технологической цепочке взаимосвязанный набор машин и механизмов, однако, с точки зрения специалистов по продуктам, ту же самую цепочку можно рассматривать как чередование фаз переработки от исходного сырья вплоть до получения конечного результата. Дуализм ПО в том, что его можно рассматривать как набор приложений, осуществляющих те или иные трансформации исходных данных, наподобие станков. Но можно смотреть и со стороны данных, они проходят через какое-то количество фаз обработки, чтобы в конечном итоге предоставить результаты в форме, наиболее удобной для восприятия их человеком. В таком случае программную систему можно рассматривать как последовательность преобразований от сырых данных до конечной информации.
Общепризнанным примером систем, ориентирующихся на данные, стали реляционные СУБД. В них данные занимают центральное место, и к ним по необходимости применяются те или иные инструменты, что напоминает обработку изделия на станке с числовым программным управлением, где меняются инструменты, прикладываемые к заготовке. Примером альтернативного процессного подхода служит объектно-ориентированное программирование, где данные рассматриваются как нечто временное — они нужны только на момент обработки. Здесь для программиста, мыслящего объектами, СУБД есть не что иное, как место для сохранения произвольных данных, но СУБД создавались для другого, они приспособлены, например, для работы с таблицами, а не для чего-то еще. Из-за разночтений в отношении к данным, существующим в ООП и СУБД, между этими двумя областями возникло противоречие, известное как проблема потери соответствия, суть которой в рассогласовании между системами типов и средствами доступа к данным у языка программирования и системы баз данных. Эта проблема затрудняет разработку объектных приложений, которым по их логике требуется обращаться к базам для получения необходимых данных.
Упомянутый дуализм ПО оставался незамеченным до появления SOA — сервисная идея получила широкое признание, однако далеко не везде, успех SOA оказался односторонним и в известном смысле символизировал победу ян (процессную ориентацию), оставив в тени инь — данные. В этой связи закономерно, что ни один из поставщиков решений SOA ничего не сделал в области интеграции данных, и, как следствие, сфера применения SOA оказалась ограниченной избранными областями, в которых отсутствует потребность в интеграции корпоративных данных. Однако круг корпоративных приложений шире, и наряду с процессными задачами есть и другие, например аналитика, где на первом плане данные и требуется целостный взгляд на корпоративное информационное пространство. Как отмечают эксперты Forrester, до 80% усилий, связанных с бизнес-аналитикой, уходит на интеграцию данных, из них 80% идет на обнаружение, идентификацию и профилирование данных.
Невозможность использования существующих архитектур SOA вовсе не означает неизбежного отказа от сервисной идеи — для приложений, ориентированных на данные, требуется еще нечто иное, но тоже сервисное, плотнее связанное с данными (инь для данных). Именно этот альтернативный сервисный архитектурный подход получил название Information Oriented Architecture. Первые робкие мысли по поводу IOA были высказаны еще пять-шесть лет назад, но более оживленно об архитектуре IOA (см. рисунок) заговорили недавно, чему способствовала, в частности, активная позиция аналитиков из Bloor Research. Сервисы есть и в SOA, и в IOA, и в обоих случаях они предназначены для интеграции, но если SOA ориентирована на интеграцию приложений, то IOA — на интеграцию данных. Сервисная идея, реализуемая в SOA, позволяет одному приложению использовать в виде сервисов коды других приложений, а при реализации сервисной идеи в IOA создается общее интегрированное пространство данных, которое через сервисы доступно всем приложениям.
Компоненты информационно-ориентированной архитектуры |
IOA и виртуализация данных
На практике сервисный подход к данным не мог быть воплощен до появления каких-то реальных результатов в области виртуализации данных (Data Virtualization) — платформы для формирования желаемого интегрированного пространства данных. Обычно под виртуализацией данных понимают процесс абстрагирования контента, заключенного в данных, от разнообразия форм и источников данных, среди которых могут быть файлы, СУБД, различного рода репозитории, размещаемые на самых разных типах устройств.
Виртуализация данных
Свой путь виртуализация начинала с оперативной памяти, затем подобралась к системам хранения, следом — к серверам и коммуникациям, и вот теперь пришла очередь данных. Леонид Черняк |
Разнообразие технологий, используемых для виртуализации данных, существенно шире по сравнению с виртуализацией серверов или рабочих мест. Первые работы в направлении виртуализации данных начались в шестидесятые годы с деления оперативной памяти мэйнфреймов и мини-компьютеров на страницы для создания большей по размеру виртуальной памяти. Тогда объемы памяти измерялись десятками килобайт, и чтобы компенсировать это ограничение, данные постранично подгружали с внешних носителей в оперативную память, а у пользователя создавалось впечатление, будто он работает с памятью неограниченного размера, то есть он не задумывался о том, где данные на самом деле размещены. Позже, в 80-е годы были созданы специальные шлюзы, позволявшие работать с множеством гетерогенных баз данных, в 90-е появились первые разработки в области виртуальных хранилищ, а в нулевые годы внимание переместилось на интеграцию информации предприятия (Enterprise Information Integration, EII). Системы класса EII позволяют объединять данные разных типов из разных источников для снабжения ими подсистем создания отчетов и панелей управления (dashboard). История виртуализации данных в современном понимании совсем недавняя, сам термин существует с 2005 года — его предложил Эрик Браутон в статье «Periscope: Access to Enterprise Data», где он определил виртуализацию данных как способность видеть данные из разных источников без необходимости знать, где они на самом деле размещены.
Может сложиться впечатление, будто виртуализация представляется почти идеальным решением всех проблем, однако следует заранее оговориться — за все приходится платить. Простота на пользовательском уровне может обернуться колоссальными сложностями на уровне операционном. Основная причина в том, что приходится работать с данными на физическом уровне, обрабатывать огромные потоки разнообразных данных, поступающих из множества источников, размещенных в различных местах, что влечет за собой:
- логическую сложность данных (Data Complexity) — во многих случаях бывает сложно понять и идентифицировать природу, еще сложнее автоматически распознавать входные данные и устанавливать их соответствие с моделью;
- структурную сложность данных (Data Structure) — данные не всегда поступают в адекватной форме, отсюда следует необходимость в их преобразовании в соответствии с принятыми стандартами, чтобы они могли быть использованы в приложениях;
- сложность физического размещение данных (Data Location) — в силу технических причин входные данные могут находиться в разных физических местах;
- проблему полноты данных (Data Completeness) — для получения полноценной картины неполные данные из разных источников должны быть согласованы и объединены;
- задержку данных (Data Latency) — при работе в реальном времени неизбежно рассогласование, которое необходимо преодолевать.
Невзирая на сложности, рынок виртуализации данных быстро развивается — в 2010 году его размер составил 3,3 млрд долл., а в 2012 году, по оценкам Forrester Research, он возрастет вдвое. Здесь действуют такие компании, как IBM, Informatica, Microsoft и Red Hat, а лидируют три специализированные компании — Composite Software, Denodo Technologies и Radiant Logic.
IaaS и DaaS
Две составляющие IOА — Information as a Service и Data as a Service — представляют собой качественно разные явления, хотя их нередко отождествляют, что некорректно, поскольку в одном случае речь идет о предоставлении пользователю информации, а в другом — данных, что не одно и то же. Например аналитики из Forrester Research утверждают, что в понятие IaaS входят: виртуализация доступа и федерация (Virtual Data Access & Federation), собирающие воедино все источники данных и представляющие данные в унифицированной форме; виртуализация размещения и управления (Virtual Data Placement & Management); виртуализация систем управления (Virtual Runtime Management).
Скорее всего, такая трактовка IaaS неполна, поскольку системы, обеспечивающие IaaS, будут строиться не только с использованием технологий виртуализации данных.
DaaS
Основная функция средств DaaS состоит в обеспечении единообразного доступа к данным вне зависимости от того, в каком формате и где они размещены. Эти средства в реальном времени снабжают бизнес-процессы данными, предполагают интеграцию, преобразование с последующей доставкой данных в форме сервисов. Очевидно, что решения класса DaaS намного проще, чем IaaS, поскольку имеют дело с привычными и понятными данными, а не c плохо определенной информацией. По существу, это обычная инженерная задача — DaaS есть не что иное, как совокупность технологий виртуализации данных с добавкой к ним сервисов доставки по требованию. Систему поддержки DaaS можно представить в виде трех уровней: подключение к источникам данных и виртуализация данных; федерализация и интеграция данных; публикация данных в виде сервисов.
От DaaS не следует ждать слишком многого — на выход таких систем поступают данные, полученные из входных без использования каких-то серьезных методов обработки, однако DaaS придает корпоративным системам три важнейших качества:
- оперативность (Agility) — пользователи могут просматривать меньшее количество данных, делая это быстрее, причем знаний о природе данных требуется меньше;
- эффективность — к работе с данными могут быть привлечены эксперты, осуществляющие предварительную обработку и затем публикующие результаты, что сокращает время и средства, затрачиваемые пользователями;
- улучшенное качество данных — внедрение DaaS способствует логической централизации данных и, как следствие, обеспечению единственной точки для обновления, лучших условий для тестирования.
Появление DaaS создает условия для возникновения нового направления бизнеса — продажи данных, прибыльность которого настолько велика, что газета Wall Street Journal назвала его «новой золотой жилой».
IaaS
DaaS: данные по требованию
Если провести анкетирование среди ИТ-специалистов с одним вопросом: «Что такое данные?», то большая часть полученных ответов сведется к очевидной формуле: «Данные — это «мешок битов и байтов»». Еще недавно такую интерпретацию можно было принять, но в нынешних условиях такой ответ безнадежно устарел. Леонид Черняк |
Подход DaaS — это эволюционный, а не революционный шаг, и будущее принадлежит IaaS. Отраслевые аналитики и футурологи все чаще используют новую метафору — «компьютерный кембрийский взрыв», проводя таким образом аналогию между бурным количественным и качественным ростом информационно-компьютерных технологий и взрывным ростом всего живого, имевшим место в период кембрия. Антропологи расходятся в объяснениях причин случившегося 550 млн лет назад, они выдвигают несколько гипотез, среди них есть одна, наиболее близкая к причинам возникновения компьютерного взрыва XXI века. Эта гипотеза связывает природу кембрийского взрыва с развитием у живых существ мозга и органов чувств — вместе с ними организмы приобрели способность обрабатывать информацию, поступающую из окружающей среды, и, как следствие, активнее развиваться. С недавнего времени создаваемые бизнес-системы начинают снабжаться разнообразными средствами для получения данных извне (медийные файлы, неструктурированные тексты, данные от разнообразных датчиков и многое иное). Количество данных, поступающих из этих источников, несравнимо больше, чем в тех системах, которые создавались еще совсем недавно. Эти источники заставили компьютерный мир непосредственно соприкоснуться с миром реальным, но, как выяснилось, компьютерный мир был не готов к переменам, и, чтобы как-то скрасить неловкую ситуацию, ей придумали собственное имя «Проблема Больших Данных». Надо отметить, что те производители, которые изначально ориентировались на работу с серьезными объемами данных, представленных в разных форматах, например InterSystems, оказались лучше подготовленными к происходящим переменам.
Потребность в предоставлении информации в виде сервисов возникает, когда количество данных, из которых извлекается информация, преодолевает некоторый предел, и такой момент настал — Большие Данные вышли на передний край. Мы переживаем не очередную «смену парадигмы», а смену компьютерных эпох, заканчивается эра вычислений (computing era) и наступает эра решения проблем (problem solving era). Отличительная особенность последней эпохи в том, что на первый план выходит аналитика, проверенные расчетные методы невозможно перенести на большие объемы, нужны новые — аналитические. Благодаря происходящему, становится понятным, что вычисления — это частный случай применения компьютеров для поддержки принятия решений. Вычисляя, мы преобразуем одни данные в другие и передаем их человеку, который использует их для принятия решений, то есть осознание смысла, заложенного в данные, и извлечение информации из них остаются за человеком. Таким образом, вычисления автоматизируют одну часть, но не весь процесс принятия решений, и они могли оставаться единственным инструментом для поддержки принятия решения до тех пор, пока использовались ограниченные по сложности модели и, соответственно, обрабатываемое ими количество данных было невелико. На седьмом десятке лет компьютерной истории сняты практически все технические ограничения на пути увеличения объемов данных, скоростей обработки — сегодня можно собирать любые данные об окружающем мире и создавать модели требуемой точности. И вот тут кончается эра вычислений и наступает эра решения проблем.
Среди провозвестников наступающей эры был Майкл Броди, главный ученый телекоммуникационной компании Verizon IT, созданной Международным институтом семантических технологий (Semantic Technology Institute International). Броди считает, что мы вступаем в новый мир, где все устроено по иным правилам, — например, многоядерные архитектуры, виртуализацию, сервис-ориентированные компьютерные системы и Semantic Web он объединяет в Computer Science 2.0. Как следствие, в фокусе внимания будут совершенно иные инструменты, соответствующие реальному миру. Эти инструменты будут отличаться большей степенью автоматизации, будут более абстрактны и интеллектуальны, и к тому же им будет присуща некая неопределенность или размытость. Новые технологии должны быть приспособлены к реальному миру, где доминирует приблизительность, нет абсолютных ответов, а непрекращающееся изменение ответов на поставленные вопросы является нормой.
Очевидно, что на входе компьютерных систем всегда были и всегда будут те или иные данные, полученные датчиками, телеметрическими приборами, считывателями, сканерами, фото и телекамерами и т. д. Но на выходе могут быть данные и информация, подготовленная в форме, удобной для ее восприятия человеком. В эпоху вычислений на выходе были только данные, которых было немного, и их превращение в полезную информацию самим пользователем не представляло большого труда, хватало простейших средств отображения. Сейчас же на выходе образуются огромные объемы данных, и без применения специальных средств справиться с ними невозможно. Эпоха решения проблем характеризуется наличием средств для более полной автоматизации процесса принятия решений, средств, позволяющих превращать данные в информацию. Не вдаваясь в тонкости, напомним, что данные — это то, что понятно машине и в некоторых случаях может быть понятно человеку, а информация — это представление данных в форме, наиболее удобной человеку. По этой причине сейчас фокус внимания смещается на технологии визуализации и на то, что называют технологиями Information as a Sevice, позволяющими человеку «заглянуть» в данные.
Информационные сервисы IaaS
На пути к технологиям работы с информацией
Для того чтобы компьютерные технологии можно было с полным правом называть информационными, они должны научиться работать с информацией. Леонид Черняк |
Концепция предоставления информации в форме сервисов впервые была упомянута в декабре 2006 года в отчете IDC Information as Service to the Enterprise. Нередко под IaaS понимают платформу, построенную на современных сервисных стандартах, обеспечивающую доступ к любому типу данных с использованием широкого спектра интерфейсов. Однако такая трактовка зауживает понятие — скорее, IaaS можно назвать стратегией или методикой, предназначенной для обеспечения пользователей необходимой им информацией. Как дисциплина, IaaS отражает актуальную сегодня тенденцию к конвергенции управления информацией (Information Management) с разработкой ПО, результатом которой являются новые инструменты работы именно с информацией, а не с данными.
Что же даст подход IaaS, если будет внедрен в следующие поколения корпоративных архитектур? Архитектура данных приобретет достаточную гибкость для того, чтобы одни и те же данные могли быть использованы по разным назначениям. Удастся обеспечить распределенный доступ к данным в режиме реального времени. Откроется возможность улучшить контроль доступа к данным. Повысится производительность и масштабируемость приложений
Конечная цель IaaS состоит в своевременном снабжении потребителей полноценными и точными сведениями, а платформой для решений IaaS могут быть самые различные технологии и их сочетания. Невзирая на разнообразие возможных подходов, можно построить условную классификацию, позволяющую лучше осознать суть методики, используемой в IaaS. Во-первых, имеется очевидное деление систем IaaS по типу доставки сервисов: принудительный (push) и по запросу пользователя (pull). В мобильной связи первый тип доставки так и называют «пуш-уведомление», которое посылается пользователю сверху, без запроса. Альтернативный подход — извлечение информации по запросу пользователя, или «вытягивание». Во-вторых, деление сервисов по типу организации процесса доступа к данным с целью получения информации. Таких способов тоже два: интеграционный (federated information services) — данные не перемещаются, а все, что связано с валидизацией и необходимыми преобразованиями, осуществляется в процессе формирования сообщения. Второй способ, репликационный (replicated information services), отличается тем, что для доступа к данным создается некий промежуточный кэш (Operational Data Store). Казалось бы, первый способ предпочтительнее, поскольку данные не дублируются и исключается любая вероятность рассогласования между исходным и промежуточным состоянием данных. Но у репликации есть важные достоинства — ее проще контролировать по производительности, готовности и функциональности соответствующих систем. В-третьих, системы IaaS допустимо классифицировать по способам реализации. Информацию можно готовить на уровне ПО промежуточного слоя или же в виде специализированных пакетов, которые состоят из отдельных компонентов, обеспечивающих доступ к разнообразным источникам данных, включая XML, SQL или плоские файлы. Наибольшее распространение получило использование архитектур SOA и корпоративных сервисных шин.
Будущее IOA
Большие Данные — новая теория и практика
Big Data — это не спекулятивные размышления, а символ технической революции. Необходимость в аналитической работе с Большими Данными заметно изменит лицо ИТ-индустрии и стимулирует появление новых программных и аппаратных платформ. Леонид Черняк |
Создание полноценных систем IOA, снабжающих пользователей информацией по запросу, остается делом неопределенного будущего. Спустя шестьдесят с лишним лет оказалось, что никаких информационных технологий не существует, а есть только технологии работы с данными. Модель Джона фон Неймана предполагает раздельное существование данных и их смысла, данные в ней — просто числа и символы, а то, как с ними работать (семантика), зашито в приложениях. В эру вычислений, когда данные использовались только в расчетах, это раздельное существование никого не смущало, но с переходом в эру решения проблем оно становится помехой, вынуждая к необходимости поддерживать однозначное соответствие между кодами приложений и форматами данных. В области данных для реализации IOA требуется сделать примерно то, что в SOA называют слабой связанностью (loose coupling). В будущем эту задачу смогут решить семантические технологии, которые должны каким-то образом связать данные с контентом, и тогда распространение данных освободится от привязки к приложениям — данные будут в каком-то виде содержать самоописание, а приложения смогут автоматически подстраиваться под изменения данных.