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