Что такое датацентричность?
Предприятие, ориентированное на данные, — это предприятие, в котором все функциональные возможности приложений основаны на единой простой и расширяемой модели данных.
Дейв МакКомб
Президент и соучредитель Semantic Arts, практикующий специалист и идейный лидер в области применения семантических технологий в архитектуре предприятия и приложениях. Он руководит семантическими и дата-ориентированными проектами для десятков клиентов из списка Fortune 1000.
Во-первых, давайте убедимся, что мы отличаем это от существующего положения вещей, которое мы можем описать как мышление, ориентированное на приложения.
Очень немногие крупные предприятия имеют единую модель данных. У них есть одна модель данных для каждого приложения, и у них есть тысячи приложений (включая те, которые они купили, и те, которые они создали).
Эти модели непростые. В каждом рассмотренном нами случае модели данных приложения как минимум в 10 раз сложнее, чем должны быть, а сумма всех моделей данных приложения как минимум в 100–1000 раз сложнее, чем необходимо.
Мера сложности — это сумма всех элементов схемы, которые разработчики и пользователи должны изучить, чтобы освоить систему.
- В реляционной технологии это будет количество классов плюс количество всех атрибутов (столбцов).
- В объектно-ориентированных системах это количество классов плюс количество атрибутов.
- В системе на основе XML или json это количество уникальных элементов и/или ключей.
Количество элементов в схеме напрямую определяет количество строк кода приложения, которые необходимо написать и протестировать. Это также усложняет работу конечного пользователя, поскольку каждый элемент в конечном итоге появляется в формах или отчетах, и пользователь должен понять, что они означают и как они связаны друг с другом, чтобы использовать систему.
Очень немногие организации имеют приложения, основанные на расширяемой модели. Большинство моделей данных очень жесткие. Вот почему мы называем их «структурированными данными».
Мы определяем структуру, обычно в концептуальной модели, а затем преобразуем эту структуру в логическую модель и, наконец, в физическую модель (специфичную для базы данных). Весь код записывается в модель. В результате расширение модели имеет большое значение. Вы возвращаетесь к концептуальной модели, вносите изменения, а затем проводите анализ последствий, чтобы выяснить, насколько код должен измениться.
Расширяемая модель, напротив, спроектирована и реализована таким образом, что в модель можно добавлять изменения даже во время использования приложения.
В мире, ориентированном на данные, мы говорим о модели данных, которая
- в первую очередь касается того, что означают данные (то есть семантики)
- во вторую очередь, а иногда и локально, речь идет о структуре, ограничениях и проверке данных.
Многие люди думают, что модель значения — это «просто» концептуальная модель, которую необходимо перевести в «логическую» модель и, наконец, в «физическую» модель, прежде чем ее можно будет реализовать.
Многие люди считают, что концептуальной модели не хватает детализации и/или точности, необходимой для реализации. За последнее десятилетие внедрения этих систем мы обнаружили, что при правильном использовании семантическая (концептуальная) модель данных может быть запущена непосредственно в производство. И что он содержит все необходимые детали для поддержки бизнес-требований.
Ориентация на данные — это вопрос степени. Это не двоично. Компания ориентирована на данные в той степени (или в процентном отношении), в которой ее среда приложений соответствует этой цели.
Ориентированность на данные и управляемость данными
Многие компании утверждают, что они «управляемы данными». Это не совсем то же самое, что ориентированность на данные.
«Управление данными» больше относится к роли данных в процессах принятия решений. Компания, не опирающаяся на данные, полагается на человеческое суждение как на обоснование своих решений. Компания, управляемая данными, полагается на доказательства из данных.
Управление данными не является противоположностью ориентированности на данные. На самом деле они вполне совместимы, но простое управление данными не гарантирует, что вы ориентированы на данные. Вы можете принимать все свои решения на основе наборов данных и при этом иметь тысячи неинтегрированных наборов данных.
Управление данными — это обоснованное стремление, хотя управление данными не означает ориентацию на данные. Управление данными значительно выиграет от ориентации на данные, поскольку простота и легкость интеграции делают управление данными проще и эффективнее.
Нам нужно, чтобы наши приложения были эфемерными
Первым следствием позиции, ориентированной на данные, является то, что приложения эфемерны, а данные являются важным и устойчивым активом. Это противоположно существующему статус-кво.
При традиционной разработке каждый раз, когда вы реализуете новое приложение, вы преобразуете данные в представление нового приложения. Эти прикладные системы представляют собой очень крупные капитальные проекты.
Это заставляет людей думать о них как о более традиционных капитальных проектах (фабриках, офисных зданиях и т.п.). Когда вы инвестируете 100 миллионов долларов в новую ERP- или CRM-систему, вы не склонны думать, что это пустяк. Но это может быть пустой тратой ресурсов. И может быть на самом деле вам не следует тратить такие деньги на прикладные системы, но, учитывая, что они у вас уже есть, пришло время переосмыслить это как невозвратные затраты.
Одним из способов укоренения прикладных систем является связь приложения с данными, которыми оно управляет. Приложение становится хранителем данных. Данные — это второсортный материал, а приложение — главное. При работе с данными данные постоянны и устойчивы, а приложения могут приходить и уходить.
Data-Centric разработан с учетом совместного использования данных
Вторым следствием позиции, ориентированной на данные, является совместное использование по умолчанию. По умолчанию для систем, ориентированных на приложения, предполагается локальная самодостаточность.
Большинство систем реляционных баз данных основывают управление целостностью на наличии обязательных ограничений внешнего ключа. То есть система заказов требует, чтобы все заказы поступали от действительных клиентов. Они справляются с этим с помощью локальной таблицы действительных клиентов. Это не обмен информацией. Это локальное накопление, ставшее возможным благодаря копированию данных о клиентах откуда-то еще. И этот процесс копирования является постоянным налогом на системную интеграцию. Если бы они действительно делились информацией, они бы просто ссылались на клиентов, существующих в другой системе. Некоторые системы на основе API частично справляются с этой задачей, но между системой заказа и системой клиента, на которой размещен API, по-прежнему существует тесная связь. Это улучшение, но вряд ли конец игры.
Теперь можно иметь один экземпляр каждого из ваших ключевых типов данных — не «золотой источник», который копируется и реструктурируется для различных потребителей приложений, а единую копию, которую можно используется на месте.
Возможна ли вообще дата-ориентированность?
Самые опытные разработчики, прочитав вышеизложенное, объяснят вам, почему это невозможно. Судя по их опыту, это невозможно. Большинство из них выросли с традиционными подходами к развитию. Они научились создавать традиционные автономные приложения. Они знают, как работают приложения, основанные на реляционных системах. Они воспользуются этим опытом, чтобы объяснить вам, почему это невозможно. Они скажут вам, что пробовали это раньше, и это не сработало.
Более того, они понятия не имеют, как гораздо более простая модель может воссоздать все различия, необходимые в сложном бизнес-приложении. В традиционной практике не существует такого понятия, как расширяемая модель данных.
Вам нужно проявить сочувствие и признать, что, основываясь на их опыте, каким бы обширным он ни был, они правы. С их точки зрения это невозможно.
Но чье-то мнение о том, что что-то невозможно, не означает, что это невозможно. В конце 1400-х годов большинство европейцев думали, что мир плоский и плыть на запад, чтобы добраться до Дальнего Востока, бесполезно. Подобным же образом в 1900 году большинство людей были убеждены, что полет тяжелее воздуха невозможен.
Преимущество, которое мы имеем по сравнению с доколумбовцами и дорайтами, состоит в том, что мы уже постКолумбы и пострайты. Эти идеи теоретически верны и уже доказаны.