Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 09 2016 20:21:06
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Метаданные и прикладное программирование


Большинство программ на сегодняшний день подобны египетским пирамидам из миллиона кирпичиков друг на друге и без конструктивной целостности — они просто построены грубой силой и тысячами рабов.

Alan Kay

Метаданные - это меташаблон проектирования

Что такое метаданные

Самое простое для понимания определение: метаданные – это данные о данных. Чаще всего к метаданным относят информацию, описывающую структуры используемых программой данных, а также, способы их представления, методы их обработки, права доступа к ним и прочие настройки. Большинство более-менее качественных ресурсов в интернете созданы на базе некоторой системы управления содержимым сайта, которая, в свою очередь, формирует “контент” веб-страниц на основе определенной информации, извлекая ее, к примеру, из базы данных. Эта информация и является метаданными по отношению к содержимому управляемого сайта, потому как содержит перечень страниц, панелей, меню, профилей пользователей и прочих структурных элементов сайта – является данными, описывающими данные.

В настоящее время само по себе использование метаданных при разработке программ и ресурсов в интернете уже не является откровением, но то, как и на сколько широко и глубоко эти метаданные используются, существенно влияет не только на "читаемость" программного кода или html разметки, но и на и возможность декомпозиции программы на отдельные функциональные компоненты, пригодные, в том числе, для повторного использования.

Трехуровневая архитектура программных продуктов

Многим известна трехуровневая архитектура программных продуктов, представленная уровнем работы с данными, уровнем бизнес – логики, который определяется назначением программы и третьим уровнем - уровнем пользовательского интерфейса. В этой статье рассмотрим метаданные, как инструмент для отделения уровня работы с данными от уровня бизнес – логики и, как средство “разгрузки” уровня пользовательского интерфейса от ненужных ему деталей.

Состав и применение метаданных в прикладном программировании

Большинство программных продуктов, выполняющих что-то осмысленное и полезное, используют для хранения своих данных реляционные базы данных – этот путь естественный и весьма хорошо "протоптан". По этой причине выделить описание используемых программой таблиц в элемент метаданных кажется логичным и первым, что приходит в голову. Хранение в специальных структурах данных информации о таблицах (имя, перечень полей с указанием типа и прочих атрибутов) позволит инкапсулировать логику работы с отдельной таблицей (например: чтение, обновление, вставка и удаление записей) в специальном сервисе. Этот сервис мог бы предоставлять удобный программный интерфейс, а при инициализации получать на вход метаданные, описывающие структуру нужной вам таблицы – метаописание таблицы. Естественно, сразу приходит мысль в раздел метаданных включить метаописание соединения с базой данных. Такой подход поможет изолировать особенности работы с той или иной СУБД (Oracle, MS Access, MS SQL Server, MySQL и т.п.) от общего подхода к работе с данными.

Метаопределение интерфейса таблицы

Если вы мыслите категориями объектно-ориентированного подхода к проектированию программных продуктов, то согласитесь с аргументом, что работы с базой данных в терминах таблиц, пусть даже посредством сервисов, работающих на основе метаданных, - недостаточно для полноценного отделения уровня работы с данными от уровня бизнес – логики. Объекты, с которыми имеет дело программа, могут не описываться исключительно отдельными записями конкретной таблицы: элементы информационной модели могут быть представлены в базе данных совокупностью связанных записей, хранящихся в разных таблицах. Да и логика интерпретации данных одной и той же таблицы может отличаться в каждом конкретном случае, и определяться контекстом использования, например, текущим бизнес - сценарием или профилем пользователя.

Одним из следующих шагов в расширении структур метаданных может стать создание метаописания интерфейса таблицы, а именно, описание интерпретации каждого отдельного поля таблицы, например: простое значение, значение из справочника, ссылка на другой объект, автоматически вычисляемое значение и т.д. Метаописание интерфейса таблицы должно характеризоваться именем интерфейса, именем таблицы и набором характеристик для каждого поля, в состав которых входит описанный выше способ интерпретации, модификатор доступа “только для чтения”, подпись и прочие полезные атрибуты.

Следующим шагом, логично завершающим первый этап разработки набора метаданных, является введение метаописания информационного объекта, которое, помимо уникального имени, будет иметь коллекцию ссылок на интерфейсы таблиц с указанием различных характеристик этих ссылок – компонентов объекта. Смысл такого подхода в том, что моделируемые программой объекты зачастую имеют множество функциональных аспектов, которые создаются по различным шаблонам проектирования и предоставляют информацию о своем состоянии через отдельные интерфейсы. Для каждого объекта, в таком случае, должен быть, как минимум, определен тип связи с экземплярами его компонентов, например: “один ко многим”, “один к одному”, “один к одному или нулю” (наличие информации необязательно) и т.д. Разработка и реализация сервиса работы с данными программы в терминах экземпляров информационных объектов – брокером информационных объектов - существенно поможет в решении поставленной выше задачи: отделении реализации уровня работы с данными от реализации уровня бизнес – логики. Уровень пользовательского интерфейса также будет упрощен, потому как User Interface будет иметь дело с экземпляром или коллекцией экземпляров информационных объектов и их брокером. Методы этого брокера будут позволять создавать, читать, удалять и сохранять изменения в информационном объекте в знакомом многим контексте транзакций. Также, проверки целостности и допустимости значений атрибутов компонентов (свойств интерфейсов) уместно частично возложить на сервисы метаданных.

Метаданные - это вещь в себе

В заключении, хотелось бы сказать, что возможных расширений наборов метаданных придумано и разработано достаточно много с небольшими различиями в названиях, назначениях, структурах и т.д. В состав метаданных включают метаопределения запросов, метаопределения бизнес - сценариев и процедур контроля целостности данных, метаопределения профилей пользователя и другие. Большинство серьезных современных систем автоматизации построены на основе метаданных не только ради того, чтобы их код был прозрачным и разделяемым на уровни, но и потому, что сами по себе сервисы работы с метаданными являются, по сути, “вещью в себе”, что делает их элементом повторного использования по отношению к различным конечным программным продуктам. Эти программные продукты могут работать с совершенно разными базами данных и решать совершенно разные задачи, и для этого не потребуется вносить изменения в их программный код.

Если тема применения метаданных в прикладном программировании вам интересна, то предлагаю продолжить знакомиться с ней в контексте рассмотрения вопросов информационного моделирования на примере демонстрационной программы.



Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.