BOLD - инструмент реализации MDA в Delphi


Функции Object Space


Понятие объектного пространства (Object Space) является важнейшим элементом в архитектуре Borland MDA. Любой разработчик, использующий эту технологию, рано или поздно неизбежно сталкивается с необходимостью применения на практике многих возможностей, предоставляемых архитектурой MDA-приложений, однако без понимания основ работы с объектным пространством многие из таких возможностей остаются недоступными. В архитектуре MDA-приложений объектное пространство занимает центральный (средний) уровень (рис. 1), называемый бизнес-уровнем или уровнем управления.

Перечислим основные функции бизнес-уровня в Borland MDA:

• хранение информации о модели; обеспечение целостной логической структуры приложения, обработка внутренних событий системы;

• взаимодействие с уровнем представления, обработка внешних событий от пользователя;

• взаимодействие с уровнем данных, обработка внешних событий от СУБД.

Как уже говорилось, объектное пространство по своей сути является экземпляром модели приложения, аналогично тому как объект является экземпляром класса. Это означает, что в объектном пространстве воплощаются и наполняются конкретным содержанием все сущности и все связи, присутствующие в модели (классы, атрибуты, ассоциации, роли).

Для обеспечения таких функций в Borland MDA включены специальные классы-носители информации модели, а также классы, реализующие управление элементами объектного пространства и осуществляющие обработку событий, происходящих в системе. Для иллюстрации решаемых на этом уровне системных задач рассмотрим вопрос контроля и управления жизненным циклом объектов во время работы приложения. При запуске MDA-приложения часть объектов загружается с уровня данных в объектное пространство (необходимость загрузки того или иного объекта может задавать либо разработчик на этапе создания приложения, либо пользователь во время его выполнения — эти вопросы будут освещены в последующих частях цикла). При этом часть объектов остается не загруженной в память, однако приложение считает, что они тем не менее существуют, поскольку не были удалены во время прошлых сеансов работы. Таким образом, формируется совокупность объектов в памяти и объектов в БД, которая образует так называемое концептуальное объектное пространство. Если при этом происходит удаление объекта, он все равно остается в памяти и в БД, пока не будет вызван метод UpdateDatabase. До момента вызова этого метода удаленный объект помечается системой как удаленный и не будет существовать в концептуальном объектном пространстве, став недоступным для использования. Для управления такими ситуациями Borland MDA имеет специальные средства, так называемые машины состояния (State Machines). Подробнее о них мы поговорим в дальнейшем — при описании взаимодействия бизнес-уровня и уровня данных.

В начало В начало



- Начало -  - Назад -  - Вперед -