Данный документ является попыткой описание архитектуры информационного организма, обладающего уникальными свойствами и способностями по сравнению со стандартными, классическими решениями. Метафора информационного организма и гипотеза о возможности его создания проистекает из сравнительного анализа биологического организма, который в краткой форме приведен ниже.
Важнейшей особенностью АИС будет являться ее активность (одно из метаправил), которая реализована следующими способностями: a. Сигнализировать в случае отклонения системы от заданного цикла прохождения задач и/или получения абнормальных характеристик решений, включая поведение пользователей в системе; b. Предписывать выполнение тех или иных задач согласно модели жизненного цикла обработки, запрещая выполнение задач, противоречащих жизненному циклу; c. Накапливать (вероятнее всего - автоматически) непротиворечивую информацию в виде коллекции правил, используемых в дальнейшем для жизненного цикла обработки. Для реализации активных свойств АИС нам необходима детализация общей схемы и выработка нескольких решений в рамках создания механизмов поддержки целостности. Предлагаемые решения таковы: l. Использование средой в явном виде МОДЕЛИ ОБРАБОТКИ ДАННЫХ (МОД), которая будет выполнять следующие функции: i. Служить репозитарной системой для работы с Алфавитом; ii. Служить схемой работы конечного автомата обработки, включая генерацию внутренних сигналов АИС; iii. Служить моделью нормального (идеального) жизненного цикла, с заданными характеристиками «нормы»; m. Использование средой специальных механизмов доступа к Операционному пространству (СИГНАЛИНГ): i. Реализация контекстного права на выполнение той или иной операции (или блокирование ее); ii. Автоматический сигнальный запуск той или иной обработки; n. Использование средой ПРОДУКЦИОННОЙ МАШИНЫ для обработки событий, и, в связи с этим: i. Требование формализации описания операций (событий, отношений) в Семантической сети; ii. Ведение лога всех (уровни значимости операций, отражения их в Семантической сети будет рассматриваться отдельно) операций в системе; Конечный автомат, обрабатывающий лог, имеет селективные ветвления («ветвление «из»), обусловленные как характером обработки, так и качеством данных, в зависимости от которых обработка может разниться. С другой стороны, существует мультипликативные ветвления («ветвление «в»), которые интегрируют промежуточные решения. К этому можно добавить, что значительное количество данных можно рассматривать только как гипотезы, которые необходимо рассматривать в качестве альтернативных вариантов. Для реализации таковой возможности предлагается рассматривать МОД как структуру, согласно которой генерируются уникальные экземпляры, хранящие информацию о своем «рождении», что позволяет различать параллельные информационные потоки. С этой точки зрения можно рассматривать МОД как модель «ветвящейся вселенной». Активность МОД может быть реализована несколькими способами, из которых следует выбрать генерацию сигналов к прочим программным модулям, участвующим в обработке. Этот способ самый дешевый по ресурсу и позволяет более легкую расширяемость, но накладывает ряд ограничений на любые программы, работающие в среде. Среди этих ограничений следует отметить:
Реализация Продукционной машины (левая часть которой - проверка обработки на соответствие ПРАВИЛАМ среды, а вторая - генерация «новых» Правил среды) должна быть выполнена следующей последовательностью:
Необходимо отметить ряд тонких, неочевидных моментов, касающихся отношений между МОД, Правилами, Скриптами и средствами их обработки. МОД - это объект, являющийся некоторой коллекцией Правил и записанный на языке Скрипта. МОД не тождественен всей совокупности Правил среды. На текущий (и в ближайшей перспективе) нет ресурсной возможности использовать МОД как сквозное описание всех операций. МОД есть существенно более узкая. МОД описывает только крупные объекты среды, где условно-элементарный уровень ограничивается программными модулями и «группами» данных. Но, МОД может быть (точнее - должен быть) расширяем на всю среду, когда каждый программный модуль имеет свой МОД, обладающую свойством инкапсуляции - модель обработки данных программного модуля - личное дело программного модуля за исключением интерфейсом со средой. В этом случае можно говорить об иерархической (в общем случае - сетевой) реализации МОД. В данном документе мы станем различать МОД как МОД среды в целом или просто МОД, а также МОД программного модуля или ММОД. Зафиксируем на рассмотрении примеров тот результат, который мы получили. J) y. Часть событий операций на входе имеют смешанную природу, формируются как следы выполнения прошлых операций и как генерация новых фактов. Так, в нашем примере, событие «проведение инспекции» не приводит к запуску обработки автоматически, поскольку данные пропуска должны поступить к обработке «физически», т.е. быть привезенными или переданными электронными средствами. Это, вообще говоря, независимое событие, поскольку данные могут потеряться в ходе своей доставки, и цикл обработки может прерваться. Реализация второго события, необходимого для запуска может осуществлять уже интерактивно (при выполнении сценариев диалогов презентационного слоя) или автоматически (при появлении файла соответствующей спецификации). z. Описанное выше
приводит нас к заключению, что событие,
запускающее операцию должно иметь
логическое выражение. Т.е. общий вид
события на входе операции имеет вид: aa. Из рассматриваемых примеров видно, что мы можем использовать еще одно ограничение, которое существенно обеспечивает целостность существования среды, без потери полноты реализации. Мы можем ввести понятие входного события как логического выражения коллекции выходных событий. Т.е. обрабатывать всегда список условно-элементарных объектов. Это позволит нам применить язык типа SADT / ITEM для описания МОД, а значит добиться однозначной непротиворечивости описания и исполнения событийных Скриптов МОД. bb. Кроме того, мы рассматриваем события в системе как именованные и уникальные. При этом эта именованность и уникальность существует в разрезе класс/экземпляр, т.е. событие точно привязано к месту на МОД, а с другой стороны - может иметь целую коллекцию идентифицированных экземпляров в любой из этих точек. С этой точки зрения идентифицированы и операции - каждая выполняется в определенном контексте, и результаты смешиваются только в мультипликативных точках (число которых заведомо ограничено и «смешивание», вероятнее всего, происходит интерактивно, а не автоматически). Реализовать такую многослойность позволяет принцип хранения «родовой» информации, который мы касались много выше, который наверняка остался недостаточно прописанным для понимания. Остановимся подробнее. dd. Отметим также, что реализация этих принципов на уровне модульных МОД, со средствами мониторинга событий, ведения логов и их обработки даст впечатляющие результаты по наведению прозрачности обработки и повышения ее эффективности. Подведем промежуточные итоги. Концепция МОД может быть непротиворечиво реализована на уровне описания и обработки событий в среде, где операции рассматриваются как неделимый элемент обработки каких-то неделимых данных. Эта неделимость на уровне обработки событий (ЕЕ - Eventual Engine) имеет принципиальное значение, ибо позволяет модифицировать логику жизненного цикла среды, а проецирование этой логики на уровень модулей даст нам сквозное, непротиворечивое, интегрированное описание процессов обработки. Ради интереса исключительно познавательного вернемся к началу и дадим интерпретацию АИС как информационного организма в рамках метафоры ЕЕ:
Но двинемся дальше. Мы имеем целую совокупность проблем, связанных с тем, что мы не можем рассматривать данные как условно-элементарные объекты, а операции как непараметрические. В связи с тем, что объемы информационных потоков изначально не позволяют нам исследовать возможность организации единой базы данных или распределенной базы, существующей по единым принципам, нам приходится изначально останавливаться на технических решениях, которые могут определить идеологию. (Это нисколько не противоречит принципам восходящего проектирования, к слову.) Изначально, наши данные разделены на два типа: объекты баз данных, где экземпляр есть запись в таблице, описывающей класс объекта и файлы, где данные представляют некоторый структурированный объект согласно формату файла. С другой стороны мы имеем актуальные данные, находящиеся в обработке непосредственно и архивные данные, доступ к которым представляет собой отдельную задачу, иногда - нетривиальную. Такое деление необходимо оставить, априорных ограничений на его использование в Активной Интегрированной Среде не существует. Операции, обрабатывающие массивы данных также неоднородны с точки зрения АИС. Существуют операции, ведение логов которых приведет к неоправданному увеличению данных (а значит не подлежащие описанию в рамках ЕЕ), существует операции, необратимо изменяющие объект обработки, когда не существует «отката», но только повторный запуск обработки по восстановленным данным из бэкапированного источника. Существуют операции, выполняющиеся в неопределенном цикле и имеющие неопределенные критерии запуска и качества результата (таковые в огромном количестве присутствуют в работе экспертов). Тем не менее, частичная логика (которую можно и должно отразить в Семантической сети) может присутствовать в полном объеме, и очень жесткая, например, связи (точнее - корреляции) данных по разным типам пропусков по одному участку. Эти корреляции должны иметь сигнальную природу, но быть существенно параметризированными. Мы приходим к необходимости задания в Алфавите и Семантической сети репозитария всех классов объектов и всех классов значимых операций. При этом мы должны сохранить принцип экземплярности и наследования «родовых признаков». Данная задача решается с необходимой полнотой обработкой МОДЕЛИ ПОТОКОВ ДАННЫХ (МПД), которая очень похожа на сигнальную модель, но не тождественна ей. Внимание! В связи с тем, что наша МОД расщепилась, нам необходимо начать именовать ранее описанную часть МОД как СИГНАЛЬНУЮ МОДЕЛЬ (СМ), что мы и станет делать. Возникает естественный вопрос, чем отличается СМ от МПД, почему нельзя рассматривать сигнал как один из типов данных, или возникновение объекта как записи в БД или ссылки на файл как возникновение сигнала на обработку? Есть три причины. Во-первых, реализационная причина. Сигнальный механизм независим от типов данных, их структуры и логики их обработки. Логика сигнального механизма - это логика совокупной последовательности выполнение операций. ЕЕ как единый сервер для среды в целом - есть непременное условие поддержки целостности. МПД могут (и должны) существовать локально как совокупность МПД без единого синхронизирующего сервера (хотя ЕЕ может осуществлять синхронизацию МПД также). Т.е. можно сказать, что событийная логика - это представление о процессе рода деятельности «с точки зрения» операций. МПД - напротив, представления с точки зрения объектов, т.е. МПД дополняет СМ. Вторая причина - технологическая. Логика событий и логика потоков в общем случае независимы. Т.е. должна быть реализована возможность предоставлять изменение логики последовательности обработки без изменения структуры и типов данных и напротив, модернизация процедур обработки и структуры данных могут не приводить к изменению логики деятельности. Третья причина - разные области детализации. Прописывание сигнальной логики необходимо сильнее там, где происходит необходимость или возможность интерактивной работы или генерация событий внешнего мира. Логика потоков данных наиболее подробно описывает ситуации автоматической обработки, где автоматический анализ характеристик данных приводит к ветвлению и проработке альтернативных вариантов. Но необходимо понимать, что СМ и МПД - это два способа представления единой МОД, т.е. «расщепление вселенной» обработки едино для каждой из них. И, разумеется, большинство завершение операций означает появление объекта обработки и соответствующего сигнала, что подчеркивает единство СМ и ПМД в рамках МОД. Наверное, вы уже обратили внимание на то, что СМ и МПД имеет общие элементы - операции. Именно через операции реализуется поддержка общей целостности и верификация МОД. Для автоматически запускаемых операций (где нет сигналов, генерируемых пользователями, администраторами или технологами системы) мы должны наложить определенные требования к реализации, которые мы не станем рассматривать в настоящем документе. И так, на текущем этапе концептуального проектирования, мы имеем только два не проработанных аспекта - описание МОД в программных модулях предназначенных для интерактивной работы (например, обработка экспертами данных полученных в результате автоматического анализа) и синхронизация данных, полученных из различных источников. В рамках сформулированных нами принципов названная задача является тривиальной. Для такого рода обработки нам необходимы процессы (операции) типа роботов (или демонов), т.е. некоторые процессы, которые непрерывно следят за соблюдением правил над объектами в рамках распределенной работы и генерируют сигналы для запуска тех или иных операций. Такие роботы (демоны) есть операции, но операциями, не являющимися элементами жизненного цикла рода деятельности, а операциями среды, т.е. внутренними операциями (что-то типа органов внутренних дел, очень точное, между прочим, определение J).Следует отметить, что операционное задание целостности есть только один из вариантов. Существует универсальное решение, когда мы добавляем в МОД соответствующие разделы по описанию законов отношения между объектами и их параметрами. Такое решение бесконечно дорого по отношению к текущему ресурсу, хотя, безусловно, красиво, но мы не станем его прорабатывать. Поэтому нам придется оставить Семантическую модель как комментарий к МОД, расшифровывающую значение тех или иных областей данных, их отношений, операций и прочих программных компонент среды. Собственно, на этом наше проектирование концептуального уровня закончено, поскольку мы получили ответы на все интересующие нас вопросы. Мы не стали прорабатывать очевидные вещи, такие как использование логов для восстановления данных как макрокоманды и пр., что вызвано нехваткой времени проектирования. Не стали мы прорабатывать концептуальные вещи универсализации хранения данных согласно модели BHC («Be, Have, Can»), что вызвано жесткими условиями производительности. Все технические вопросы могут быть решены в оперативном порядке. Все концептуальные вопросы могут получить разрешение в дальнейшей детализации проекта. В качестве закрепления результатов опишем получившуюся среду:
А.Егоров
|