2009-10-05

Модель и мета-модель

Разберемся теперь с понятиями "модель" и "мета-модель".

Перефразирую всем известное определение чтобы оно было в согласии с нашей тематикой. Модель - это отображение прототипа, адекватное для решаемой задачи. Как прототип, так и его модель может быть объектом или явлением (другими словами: сущностью или процессом). В свою очередь, объект или явление может быть физическим или информационным. Нас, конечно же, интересуют информационные модели. Адекватность, как требование к модели, прямо приводит к тому, что любая модель всегда субъективна.

Мета-модель - это модель модели, задающая правила, ограничения, закономерности и элементы для построения моделей. Таким образом, для построения любой информационной модели, необходимо построить цепочку мета-моделей от прототипа до базового алфавита (символьного письма, аналоговой, цифровой или бинарная записи). Например: для моделирования склада, необходимо отобразить в реляционную модель: сущности (такие как помещения, стелажи, контейнеры, персонал и т.д.), атрибуты сущностей (объем, количество, грузоподъемность) и связи (размещение товаров в контейнерах, расписание работы). Но это не все, реляционная модель имеет свою мета-модель - это язык, на котором описана структура базы данных (например SQL). Для языка, мета-моделью является его синтаксис, описанный в форме Бакуса-Наура и раскладывающий все нетерминальные конструкции через набор правил до терминалов (базового алфавита).
 
Таким образом, любая информационная система строится с применением мета-моделей и ничего необычного тут нет. Другое дело, что мета-модель часто остается скрытой, т.е. человек, работающий в системе имеет дело с моделью, но повлиять на ее структуру или функции уже не в состоянии без инженера, построившего систему.  Но нас интересует как раз мета-данные или мета-информация, добавляющие гибкость в этот слоеный пирог, позволяя проводить изменения на несколько уровней в глубину без перепроектирования.

Мета-данные - это некоторые атрибуты, добавляемые в модель, и не относящиеся к прототипу напрямую, а относящиеся к способу интерпретации модели прототипа на разных слоях информационной системы. Таким образом, применение метаданных позволяет повысить абстрактность системы.

В заключении кратко приведу стратегический архитектурный подход, который считаю оправданным в смете вышеизложенного:
1. Широкое применение интерпретируемых мета-данных (скриптовых языков и формальных грамматик) в моделировании предметной области.
2. Отделение абстрактных алгоритмов от бизнес-логики. Например, модуль для работы с изображениями в формате PNG должен быть написан на компилируемом коде, а вот модуль для статистической обработки сигналов, приходящих от датчика температуры - это типичный интерпретируемый алгоритм, который лучше всего сделать частью информационной модели и погрузить в базу данных.
3. Отказ от полной формализации данных на каждом слое абстракции в информационной системе. Ведь данные могут транзитно проходить сквозь слой, чтобы быть интерпретированы на другом слое. Нужно заметить, что максимальное понимание и интерпретация данных может быть достигнута только человеком, который работает с информационной системой.

Комментариев нет:

Отправить комментарий