Когда мы имеем дело с развитием, существует большой соблазн представлять его как развитие эволюционное, то есть имеющее некоторые глобальные, эмерджентные свойства, когда множество независимых процессов косвенно, посредством каких-то неявных алгоритмов, влияют друг на друга. Разумеется, такой подход — это не более, чем метафора, настоящая реальная эволюция присуща только живой природе, однако, мне показалось любопытным представление об информационных технологиях как эволюционирующей среде, а также проведение условного сравнительного анализа между живым организмом и информационным.
Я предполагаю рассматривать программное и аппаратное обеспечение, а также, использующие их информационные технологии, как эволюционирующие «организмы», совокупность которых образует некоторое связное пространство, представляющее собой аналог биосферы. Такой подход не есть новаторство, попытки распространить феноменологию эволюционных процессов на социальные процессы появляются постоянно, одну весьма значимую попытку применить эволюционный подход к информатике предпринял футуролог Станислав Лем еще в 1966 году в работе «Сумма Технологий». Чаще всего «эволюцию» применяют в качестве синонима понятию развития вообще, которым удобно пользоваться при ретроспективном анализе тех или иных систем, претерпевающих серьезные качественные изменения. Однако, сравнительный анализ биологической эволюции и эволюции информационных систем показывает, что мы имеем довольно точное и адекватное подобие, позволяющее относится к эволюционной модели в информатике с большей серьезностью, по крайней мере как к прочной аналогии.
Эволюцию, в самом деле, очень удобно применить к процессам нелинейного развития сложных систем. Напомним, что эволюция характеризуется следующими факторами:
- Наличием «борьбы за существование» вследствие ограниченности общего ресурса для существования;
- Наличием механизмов изменчивости, благодаря которому происходит видовое изменение (мутации);
- Наличием механизмов отбора, который часто называют «естественным», предполагая, что «искусственный» отбор есть прихоть причудливых потребностей человека.
Механизмы отбора основаны на общей организации всей совокупности организмов (среды), что крайне важно, ибо какое-то конкурентное качество не есть абсолютная характеристика, но существует только в отношении устройства среды и других организмов. Для объектов техногенеза и информационных организмов, вышеназванные эволюционные признаки останутся без изменений. Борьба за существование будет реализована в полной мере через механизмы существования рынков, использование тех или иных ресурсов, потребления тех или иных решений. Конкурентоспособность решений будет определяться не только их внутренними качествами, но и всей совокупной инфраструктурой, появился даже отдельный, заимствованный из биологии термин — экосистемы, а также социальными технологиями и даже субъективными факторами. Конечно, «мутация» информационных систем происходит не настолько случайно, как это приписывается биологической эволюции. Скорее наоборот, свойства систем выбираются сознательно, в результате анализа потребностей и действующих тенденций. Но как уже отмечалось, совокупность учитываемых факторов гораздо больше, чем способность их рационального анализа, поэтому логически предсказать появление софтверного «хита» практически невозможно.
Единственное отличие, которое мы находим в биологической и информационных эволюциях – механизмы самовоспроизводства (размножение). Известные кролики из штата Кентукки справляются с задачей копирования себя без специальных средств типа флешки или рекордера. (Справедливости ради отметим, что механизмы развития живого организма, основанного на копировании ДНК, довольно сильно напоминает обычное «компьютерное» копирование с использованием немагнитных носителей.)
Еще большей неожиданностью оказывается подобие биологических и информационных организмов.
- Состав. Организмы состоят из совокупности типизированных элементов.
Информационные организмы имеют очень высокую типизацию. Вспомним, что своим появлением вычислительные машины обязаны предположению об эквивалентности данных и программ их обработки. Информационные организмы дискретны, на нижнем уровне все элементы информационных систем раскладываются условно до бита (0|1). Информационные организмы детерминированы — любая программа есть совокупность алгоритмов. Всё это дает право говорить, что типизация для информационных организмов достигает своего высшего уровня – возможности полной формализации всего информационного пространства.
- Организация. Организмы состоят из особых функциональных единиц, специализированных по строению и специализирующихся функционально.
Организация есть центральный аспект существования организмов, в том числе и информационных. Именно ее наличие обеспечивает все функции жизнедеятельности, описанные ниже. Для информационных организмов мы имеем весьма развитую организацию, которая с появлением глобальных сетей и компонентных технологий стала одним из ключевых моментов в реализации информационных систем. Современное программирование представляет собой в меньшей степени разработку алгоритмов, а в большей степени разработку интерфейсов и их архитектуры.
- Обмен веществом и энергией. Организмы представляют собой открытые системы, совершающие постоянный обмен веществом и энергией с окружающей средой.
Прямая аналогия между данными (информацией) и веществом, которая здесь напрашивается, не является вполне корректной, но она уместна, особенно, если мы рассматриваем информационные системы изолированно. Гораздо более точным образом «вещества и энергии» для информационных организмов будут те же виды ресурсов, что используются при моделировании социальных и экономических систем – финансы, материальные ресурсы, товары, труд и т.п.
- Раздражимость и психические функции. Организмы имеют способность отвечать на определенные внешние воздействия специфическими проявлениями (реакциями). Сочетания раздражитель-реакция могут накапливаться в виде памяти.
Под раздражимостью информационных систем можно понимать очень многие вещи. Имеет полное право взгляд на информационную систему как на некоторую функцию, очень сложно организованную и имеющую механизмы управления. И в качестве «реакции» на «раздражители» оказываются способности реагировать заданным образом на запросы пользователей, импликативные модули обработки, реализующие ветвления потоков в зависимости от тех или иных условий, обработка событий. А в широком смысле – любой диалог, любой интерфейс, любая процедура или модуль.
Отдельно выделим экспертные системы, семантические и нейронные сети, в которых делаются попытки имитировать накопление «знания» о каких-то предметных областях, реализуя способность системы к развитию своих «психических» функций.
- Гомеостаз (регуляторные системы). Организм поддерживает свое динамическое равновесие с окружающей средой, он ведет себя так, словно желает сохранить свое существование и уникальность.
Проблема целостности (integrity) является центральной в существовании информационных систем. На сегодняшний день не создано технологий, которые позволяют системе автоматически поддерживать свою целостность, напротив, большинство систем рождаются крайне неустойчивыми. Разработка механизмов поддержания системы в работоспособном состоянии так, чтобы ни одно воздействие не приводило к разрушению системы, есть важнейшая задача при проектировании и разработке. Классическое представление о целостности (например, в реляционных базах) определяет ее на уровне данных, но клиент-серверные технологии распространяют это свойство выше, включая целостность бизнес-логики в корпоративных системах. Целостность распреденных систем, основанных на облачных технологиях — это уже всегда отдельная сложнейшая задача.
- Наследование. Отдельные признаки (свойства) организма передаются с помощью специальных носителей.
Анализируя этот признак невозможно удержаться и не указать на то, что именно механизм «наследования» (inheritance) в объектно-ориентированном программировании создал тот уровень эффективности, который обеспечил существование информационных технологий как независимый социальный фактор. В более широком смысле под наследованием можно понимать закрепление удачных решений при версионном обновлении программ производителями.
- Онтогенез (индивидуальное развитие). Новый организм возникает в ходе процессов индивидуального развития, при котором специализация элементов приводит к образованию различных по функциональности органов.
Рассматривая процесс разработки системы, особенно в проектировании, мы сможем выделить характерные этапы, когда система, усложняясь с уровня «черного» ящика (вход – обработка – выход), обретает архитектуру, соответствующую поставленным задачам. Модули обретают специализацию, диалоги – проработанные сценарии.
- Филогенез (эволюционное развитие). Организмы представляют собой сущности, возникающие путем естественного отбора своих предшественников и дающие новые виды потомков.
Эта аналогия — очевидна, мы о ней говорили с самого начала.
Укажем обязательно, что эволюционный подход и представление об объектах как организмах, применим к описанию любых объектов техногенеза и предметной деятельности человека, а также к описанию социальных систем различных уровней общности (включая системы производства), но подробный анализ этого, к сожалению, выходит за формат настоящей статьи.
Справедливости ради, необходимо отметить, что единой теории эволюции на текущий момент просто не существует. Поэтому применить «в лоб» какую-нибудь модель, которая могла бы считаться классической не удается. Однако, используя всю совокупность современных представлений, можно с большой долей уверенности говорить, что эволюционный процесс характеризуется четырьмя основными фазами:
- Образование базовой ветви – появление организма, обладающего принципиально новыми свойствами и характеристиками, совокупность которых есть некоторое видовое пространство дальнейшего эволюционирования;
- «Взрыв» видового разнообразия – практически единовременное появление огромного количества новых видов, свойства которых существенно отличаются, но расположены в границах базового;
- Отбор наиболее жизнеспособных видов – закрепление новых видов в цепочках потребления ресурсов жизнеобеспечения, формирование некоторой новой целостности, устойчивость которой обеспечивается всеми элементами, входящими в нее;
- Передача эволюционного фронта как устойчивое существование новой базовой ветви и проявление ею конкурентных преимуществ.
Эволюционные ветви развиваются независимо друг от друга. Однако, идеальных ситуаций, в которых бы организм развивался изолированно не существует. Мы всегда имеем дело с «сообществом» организмов, если угодно с мета-организмом, макро-организмом. В биологически системах — это геобиоценозы, для информационного пространства — социальная организация и организация бизнеса. Поэтому мы всегда имеем координированное развитие систем различного типа, когда в этом развитии можно выделить этапы, поколения, эпохи. Условный «палеозой» с персоналками и офисными пакетами, «кайназой» с акцентом на корпоративные решения, современные «голоценовые» процессы, где рынки персональных информационных технологий от тонких клиентов уходят в мобильность. Таких кластеризаций и делений может быть очень много, фактически, это дело вкуса, настолько разнообразна и причудлива среда.
В заключении я не могу удержаться, чтобы не попытаться нарисовать портрет системы, которая может появиться на следующем эволюционном витке, я буду говорить о корпоративной системе (эта тематика мне ближе). При этом корпоративность предполагает не столько не столько функциональное покрытие задач какого-то предприятия, сколько информационную обработку связей между большим количеством элементов, когда информационная интерпретация деятельности представляет собой структурированное пространство взаимозависимых решений. На этом уровне сложность обусловленного поведения есть эффективность решений, а значит их конкурентоспособность. Эта эффективность для Объекта, обладающего корпоративной системой поддержки бизнеса, складывается из своевременности формирования управляющих сигналов, возможности координации исполнения задач различными подразделениями согласно этим сигналам, контроля за качеством исполнения этих задач согласно каких-то нормативов; и возможности адаптации жизненного цикла при появлении новых, ранее неизвестных задач.
Система, работа которой направлена на обеспечение управления, должна быть активной, т.е. сигнализировать о состоянии тех или иных участков работы и их показателей в случае отклонения от заданного диапазона значений или нештатного поведения пользователей в системе.
Активность системы есть аспект принципиальной важности, с этого момента система становится полноправным участником производственной деятельности, а не просто сложным калькулятором с памятью. Таковая система будет внутри себя хранить «представление» об идеальном производственном цикле и иметь способность обработки плановых и фактических показателей работы, сравнения их, отслеживание динамического изменения каждого вида ресурса, а также возможность альтернативного моделирования развития. При наличии отлаженной инфраструктуры электронных расчетов, можно представить себе ситуацию, когда система «самостоятельно» осуществляет закупки материалов и комплектующих, по мере необходимости, производит расчеты с потребителями и платит налоги.
Отсюда вытекает следующее свойство информационной системы будущего – примат обработки событий. Данные, поставляемые в систему, обрабатываемые системой и генерируемые системой как результирующие, будут иметь ярко выраженную временную составляющую, логика системы будет выглядеть как структура возможных событий, с появлением в системе понятия «будущего», т.е. наличие средств моделирования Объекта, прогнозирования его развития и проработки альтернативных вариантов планирования.
Оба этих свойства позволяют говорить о возможности нового режима работы с системой – мониторинга деятельности, когда мы имеем в системе средства отображения информационной «динамики», представляющих информацию в наиболее ясной форме, обновляющих её по мере изменения на различных участках работы.
Выделение в «идеальной» модели областей принятия решения, например, при достижении каких-то критических показателей или других совокупных условий, с активизацией запросов к Лицам, Принимающим Решения или экспертам, позволит добиться необходимой скорости реакции системы на внешние и/или внутренние события. При этом обратные связи в системе (реализованные в описанных выше способностях) позволяют динамически модифицировать модель жизненного цикла Объекта, т.е. система начинает обладать способностью к самообучению.
И вот эта способность к самообучению, способность системы хранить и обрабатывать знания — это самая важная ее часть. Но это тема уже совсем другой статьи.
Автор: Ermit