Модели информации и данных
Атом и универсум информации
Александр Михайлович Горбачев
© Александр Михайлович Горбачев, 2021
ISBN 978-5-4493-1338-6
Создано в интеллектуальной издательской системе Ridero
Введение
Информационные компьютерные технологии пришли в этот мир в конце 1940-х годов. До начала 1980-х годов они оставались уделом небольшого числа профессионалов, но с возникновением персональных компьютеров они широко проникли в нашу жизнь, и в том числе в бытовую сферу. Увеличение уровня интеграции микропроцессоров и развитие телекоммуникационных технологий привели к тому, что современные мобильные телефоны-смартфоны стали компьютерами, несравненно более мощными как по производительности, так и по ресурсам даже по сравнению с самыми развитыми компьютерами 80-х годов минувшего века. Каждый год изобретаются новые материалы, технологии, всё увеличиваются масштабы производительности, объем и разнообразие ресурсов в электронных устройствах, а через это – увеличиваются объемы хранимых и передаваемых данных, число человеко-машинных интерфейсов и, как следствие, глубина вхождения и широта использования устройств и гаджетов в жизни современного человека и бизнеса.
В октябре 2003 года по обвинению в хищениях и неуплате налогов был арестован самый богатый человек России Михаил Ходорковский. Михаил провел в тюрьме более 10 лет. Пробыв эти годы в заключении, он пропустил бум сенсорных смартфонов и начало эпохи планшетов. После освобождения из заключения одним из его самых первых желаний было получить iPhone и iPad компании Apple. Это яркий пример современности, показывающий, что означают технологии и как много места занимают устройства в жизни современного человека. На сегодняшний день самыми дорогими компаниями, судя по их биржевой стоимости, являются Apple и Google, отодвинув на третью строчку нефтяной ExxonMobil.
И, тем не менее, не потребовалось никакого внешнего вмешательства в то, чтобы разрушить Вавилонскую башню компьютерных технологий, ибо её не существовало испокон веков. Аппаратные и программные платформы, языки программирования и форматы данных настолько несовместимы между собой, что самая невесомая материя, на которую не распространяются даже таможенные пошлины – информация, остается жестко связанной с конкретными платформами, в то время как межплатформенные коммуникационные технологии слишком отстали от всех остальных технологий в IT-сфере. До сих пор определение правил и последовательности интеграции как средства коммуникации между различными программными приложениями является результатом полу-ручного труда. Технологии построения автоматической трансформации данных между различными платформами отсутствуют, вместо этого существуют эмуляторы сред, технологии виртуализации. В многообразии решений люди уже отказываются что-либо понимать в технологической подложке, а потому IT-корпорации им настойчиво предлагают SaaS (программный продукт как услуга), IaaS (инфраструктура как услуга) и технологии виртуализации. Впрочем, и эти решения не являются панацеей, поскольку они лишь завертывают всё те же программные продукты в новую упаковку и позволяют закрыть глаза и не замечать технологии, лежащие в основе информационных систем. Эволюционное развитие информационных компьютерных технологий привело к тому, что на сегодняшний день они уже созрели в достаточной степени. Это выражается в замедлении развития операционных систем, сред программирования и систем управления базами данных. В отдельных областях технологии даже перезрели, что отражается на сложности программирования систем, использующих сервисно-ориентированную архитектуру (SOA), базирующихся на web-сервисах и т. д. Как результат – лавинообразное увеличение числа framework’ов (программных сред, для создания пользовательских интерфейсов) и существенное увеличение времени тестирования систем при их разработке на основе этих технологий.
Не кажется ли Вам, что закон Мура и неостанавливающийся лавинообразный технический прогресс в виде непрерывного наращивания аппаратных компьютерных ресурсов с одной стороны, и несовершенство программных IT-технологий с другой стороны, выглядят как странная дисгармония? В этой книге я постараюсь сделать серьезный шаг к её разрушению. За прошедший десяток лет я сформировал некоторый набор, с моей точки зрения, интересных мыслей – теоретических знаний и практических наблюдений, которых я не встречал в законченном или в достаточной степени оформленном виде ни в программных реализациях, ни в теоретических выкладках. В своих измышлениях я не претендую на роль пионера и даже на оригинальность, поскольку, как сказал в 1899 году специальный уполномоченный американского бюро патентов Чарльз Дюэлл: «Все, что могло быть изобретено, уже изобрели» – похоже, примерно так и есть, за исключением деталей. Я постарался собрать мысли воедино, и предоставить вам квинтэссенцию своих записей, наблюдений и исследований в концентрированном виде в этой монографии.
Более 15 лет моя работа связана с ERP-системами. В последние несколько лет, сталкиваясь с вопросами и претензиями пользователей к несовершенству программных продуктов, а также при общении с коллегами, я не устаю повторять идею о том, что, скорее всего, современные информационные технологии находятся еще на столь ранней стадии и в настолько несовершенном виде, что множество вещей, простых и понятных в естественном мире, являются слишком технологически сложными и недостижимыми в программных продуктах. Прежде всего, это касается обмена данными между различными программными продуктами, трансформации данных, платформозависимости программных продуктов, существенной ограниченности в модификации структур данных и процессов, и пр. Также это касается и реализации довольно простых процессов в понимании людей, далёких от программирования. Подобных примеров можно привести воз и маленькую тележку. В результате за понятными вещами и процессами в естественном понимании, на бытовом уровне и даже в базовом профессиональном уровне могут стоять очень сложные и ресурсоёмкие технологии. Анализ, проектирование и изменение программных систем стоят конечным потребителям сотни долларов за час работы консультантов и программистов. Добавление колонки в отчет может потребовать 8 часового дня работы программиста. Все это регулярно вызывает закономерные вопросы пользователей «Почему так дорого?» и «Почему так медленно делаются изменения?». Альтернативой для пользователей является только добровольное залезание в прокрустово ложе коробочных решений вместо настройки системы под конкретные требования компаний, что является жестоким компромиссом, и подавляет волю, разум и веру в информационные технологии людей, привыкших к свободе мысли.
Эта книга посвящена обзору существующих технологий, и затем в ней сделана попытка воспроизвести информационный универсум – объемлющую информационную модель, которая сможет объединить и примирить разные технологии, сделать их прозрачными и взаимо-трансформируемыми.
Программные технологии становятся все сложнее с каждым днём (хотя и дают большие возможности), а программисты прошлого века, столкнись они только с одним пластом современного программирования от web-систем до баз данных, несомненно, испытали бы шок и впали бы в депрессию от обилия требуемых знаний о системах программирования. Признак сложности не является признаком совершенства, а требование наличия определенного объема знаний не означает, что система будет работать лучше по сравнению с системами на компьютерах прошлого столетия. И, напротив, складывается тенденция того, что при создании распределенных, веб-ориентированных, модульных, трехзвенных программных систем, тестирование становится все сложнее, обслуживание накладных процессов коммуникации между составляющими системы, пользовательским интерфейсом и пр. отнимает все больше сил разработчика. В этом смысле я придерживаюсь идей демокритовского атомизма, пытаясь разложить составляющие информационных технологий на элементарные частицы – атомы, отбросив, таким образом, чисто технологические детали, не добавляющие ценности в конечный результат или же имеющие утилитарные и побочные функции. И через эту «технику» я стремлюсь разобраться и переосмыслить начала информационных процессов вновь. Я попрошу вас не сравнивать атомизм, как подход по отбрасыванию незначащих деталей, и разбор предметов «по винтикам», с наивным искусством, которое рассматривает мир через примитивное представление.
Я предполагаю, что читатели обладают базовыми знаниями в области информатики, управления базами данных, а также в области логических методов искусственного интеллекта. Несмотря на то, что я пытаюсь достаточно просто и подробно описать суть вещей и привести достаточное количество примеров, тем не менее, неподготовленного читателя могут смутить ссылки на некоторые технологии, которые никак не возможно было бы описать в этой книге. Впрочем, при наличии огромного количества информации в Интернете, я думаю, что отсылка к терминам, системам и технологиям не станет препятствием для неосведомленного в чем-то читателя, если в нем присутствует пытливость ума.
Я вполне понимаю, что можно найти множество произведений подобной направленности с поиском рецепта для всеобъемлющего решения любых задач – в том числе записи в блогах и на интернет сайтах, статьи, научные работы и книги. Также я не хочу навязывать вам какую-то определенную программную реализацию со словами «вот видите, это настоящий интеллект, настоящая реализация такой-то графовой модели». Вместе с тем, мы с вами уже видели не один десяток таких «конкретных» программ и книг, каждый раз непременно разочаровываясь. Поэтому, задумывая эту книгу, я старался обратиться к основам основ и дать детальную аргументацию, почему меня волнуют одни технологии и менее симпатичны другие, а также какие взгляды существуют на одну и ту же проблематику. И всё-таки в основном я хочу высказать свою собственную точку зрения, а не описывать среднестатистический взгляд, за долгие годы ставший нормой.
Дело в том, что, несмотря на обилие интеллектуальных технологий, в большинстве из них отсутствует такая важная составляющая, как полнота. Полнота требует видения того, как система будет работать вообще, в целом. Является ли она жизнеспособной, не решает ли она какую-то маленькую частичку общей задачи. Дает ли она возможность быть не только «вещью в себе», но и позволяет ли через себя развиваться другим технологиям. Я постарался дать полную картину. Что получилось – судить Вам.
Для чего эта книга
Постановка задачи – один из самых важных разделов любого описания, любой теории, любой практической задачи. Откройте какую-нибудь книгу, посвященную бизнес-процессам, внедрению программного обеспечения или управлению проектами, и Вы увидите одно и то же правило: «максимально точно определяйте цель». Самыми дорогими являются ошибки и упущения, сделанные на этапе проектирования системы. Непродуманность результата сказывается на качестве и на эффективности теории. Поэтому начнем с цели.
Целью этой книги является описание модели данных, которая будет способствовать созданию интеллектуальных информационных систем. Я бы написал об «универсальной информационной системе», но это было бы слишком похоже на «сферического коня в вакууме», то есть на выхолощенную систему, якобы рассчитанную на любую сферу применения, но не реализующую ничего конкретного. Так что информационная система может представлять собой платформу или набор для создания систем, например, библиотеку или программный интерфейс. Такая платформа призвана сделать шаг вперед для улучшения существующих прикладных систем. Тем не менее, далее я буду применять термин «интеллектуальная или универсальная информационная система».
На уровне современных информационных систем модель данных, описываемая в этой книге, позволит системам гораздо гибче отражать их информационное наполнение, развить собственный словарь данных, снять жесткие ограничения на структуру данных, заложенную в современных моделях данных, при этом, не отрицая принципы их построения. Предлагаемая модель данных позволит модифицировать собственные структуры данных к индивидуальным требованиям пользователей. То есть, позволит не стоять им на месте, а развиваться органически и непрерывно в противоположность «методу водопада», который в настоящее время применяется в 95% систем для изменения структур данных.
К интеллектуальной информационной системе мы предъявляем ряд требований. Оговорюсь, что «интеллектуальная информационная система» на сегодняшний день выглядит как нечто несбыточное. Но, пожалуй, пройдёт 7—15 лет и то, что сегодня мы подразумеваем под «интеллектуальной» системой, станет самой ординарной и естественной информационной системой. При этом часть следующих требований относится к самому сегодняшнему определению «интеллектуальности» системы. Итак, интеллектуальная система должна обладать следующими свойствами:
– способность решать задачи различного уровня и свойства, то есть универсальные задачи. Система, обладающая знаниями о том, как решается задача, должна решать её на основе исходных данных универсальной структуры и универсальные интерфейсы взаимодействия с пользователем,
– способность найти решение задачи. Если система не может решить определенную задачу, но система обладает знаниями о решении более абстрактной задачи, части задачи или похожей задачи, она должна сформировать алгоритм решения задачи,
– способность запросить и получить решение задачи. Если система не представляет, каким образом она может решить задачу, либо ей не хватает данных для решения задачи, то система должна обладать возможностями узнать у другой похожей системы, как решать задачу,
– способность обучаться. Система с учетом уже полученных знаний должна их накапливать, и при необходимости пользоваться ими, не запрашивая вновь,
– способность планировать действия. Система должна иметь возможность декомпозировать задачи и вырабатывать план действий,
– способность анализировать ситуацию. Система должна анализировать, интерпретировать внешнюю ситуацию и понимать, каким образом внешняя ситуация измениться при влиянии на неё.
В общем и целом, эти цели системы сводятся к ряду задач, связанных с логическими операциями, операциями интерпретации данных, операциями по структурированию данных.
Основной вопрос в контексте данной книги: а для чего нужна такая система? Есть тысячи специализированных систем. Но день за днём продолжают появляться позаказные системы, а это означает, что специализированные системы не в состоянии решать задачи с должной мерой универсальности, гибкости и масштабируемости. Одним из ярких примеров являются системы управления проектами. В каждой из них можно найти «червоточину», несмотря на то, что управление проектами – чрезвычайно широко распространенная область, требующая автоматизации.
Также есть гораздо более эффективный механизм, чем какая-то универсальная система – это человек, которые отлично справляется с этими задачами. Однако по сравнению с человеком компьютер обладает свойствами, которые человеку неподвластны:
– точность запоминания данных и долгосрочность памяти. Со временем человек способен забывать информацию, в том числе и важную информацию. Компьютер хранит данные так, как они были сохранены.
– объем хранения данных. Компьютер может хранить множество данных, которые невозможно запомнить человеку. Например, в системах управления персоналом компьютерные системы могут хранить данные по десяткам тысяч сотрудников, когда-либо работавших в компании. Ни один человек не может сделать подобного.
– собственность. Компьютер является собственностью, то есть определенный человек и компания может быть уверены, что данные будут принадлежать человеку и компании.