Разработка прототипа системы управления объектно-ориентированной базой данныхРефераты >> Программирование и компьютеры >> Разработка прототипа системы управления объектно-ориентированной базой данных
Согласованная с OMA прикладная система состоит из совокупности классов и экземпляров, взаимодействующих при помощи Брокера Объектных Заявок (Object Request Broker (ORB)). Объектные Службы (Object Services) представляют собой коллекцию служб, снабженных объектными интерфейсами и обеспечивающих поддержку базовых функций объектов. Общие Средства (Common Facilities) образуют набор классов и объектов, поддерживающих полезные во многих прикладных системах функции. Прикладные объекты представляют прикладные системы конечных пользователей и обеспечивают функции, уникальные для данной прикладной системы.
CORBA (Common Object Request Broker Architecture) определяет среду для различных реализаций ORB (Object Request Broker), поддерживающих общие сервисы и интерфейсы. Это обеспечивает переносимость клиентов и реализаций объектов между различными ORB.
Брокер Объектных Заявок обеспечивает механизмы, позволяющие объектам посылать или принимать заявки, отвечать на них и получать результаты, не заботясь о положении в распределенной среде и способе реализации взаимодействующих с ними объектов.
Объектные Службы:
· Служба Уведомления Объектов о Событии (Event Notification Service).
· Служба Жизненного Цикла Объектов (Object Lifecycle Service).
· Служба Именования Объектов (Name Service).
· Служба Долговременного Хранения Объектов (Persistent Object Service).
· Служба Управления Конкурентым Доступом (Concurrency Control Service).
· Служба Внешнего Представления Объектов (Externalization Service).
· Служба Объектных Связей (Relationships Service).
· Служба Транзакций (Transaction Service).
· Служба Изменения Объектов (Change Management Service).
· Служба Лицензирования (Licensing Service)/
· Служба Объектных Свойств (Properties Service).
· Служба Объектных Запросов (Object Query Service).
· Служба Безопасности Объектов (Object Security Service).
· Служба Объектного Времени (Time Service).
Общие Средства заполняют концептуальное пространство между ORB и объектными службами с одной стороны, и прикладными объектами с другой. Таким образом, ORB обеспечивает базовую инфраструктуру, Объектные Службы – фундаментальные объектные интерфейсы, а задача Общих Средств – поддержка интерфейсов сервисов высокого уровня. Общие Средства подразделяются на две категории: "горизонтальные" и "вертикальные" наборы средств. "Горизонтальный" набор средств определяет операции, используемые во многих системах, и не зависящие от конкретных прикладных систем. "Вертикальный" набор средств представляет технологию поддержки конкретной прикладной системы (вертикального сегмента рынка), такого, как здравоохранение, производство, управление финансовой деятельностью, САПР и т.д.
· Средства поддержки пользовательского интерфейса (User Interface Common Facilities)
· Средства управления информацией (Information Management Common Facilities)
· Средства управления системой (System Management Common Facilities)
· Средства управления задачами (Task Management Common Facilities)
· Вертикальные общие средства (Vertical Common Facilities)
· Вертикальные общие средства предназначены для использования в качестве стандартных для обеспечения интероперабельности в специфических прикладных областях.
· Поддержка интероперабельности брокеров в стандарте CORBA 2.0
О роли СУООБД в архитектуре OMG можно прочесть в [13].
На основе анализа вышеизложенного, были выбраны в качестве основания следующие базовые службы СУООБД:
· Служба Долговременного Хранения Объектов – управление хранением объектов
· Служба Управления Конкурентным Доступом и Служба Транзакция – объединены вместе протоколом согласованного управления.
· Служба Изменения Объектов – управление журнализацией изменений
3.2 Менеджер памяти
Менеджер памяти является ключевым модулем системы.
Его наличие позволяет
· Абстрагироваться от особенностей обращения к различным видам памяти.
· Создавать сколь угодно вложенные друг в друга структуры данных.
· Иметь единый интерфейс на каждом уровне вложенности.
· Организовать кэширование объектов
В состав менеджера памяти входит 3 системы управления:
1. Система управления виртуальной памятью
2. Система управления каналами
3. Система управления кэшированием объектов
3.3 Виртуальная память и каналы
Виртуальная память представляет собой непрерывную для пользователя, с ней работающего, область памяти, которая может быть вложена в другую виртуальную память. Виртуальная память состоит из сегментов, связанных между собой в двунаправленную цепь. Каждому сегменту известно его положение относительно нижнего логического уровня. Работа с виртуальной памятью происходит через канал, выделенный для нее. Канал – это набор характеристик описывающих: где расположена виртуальная память, и в каком ее месте мы находимся. Количество каналов ограничено, поэтому канал выделяется той виртуальной памяти, которая нужна в данный момент. Система имеет набор каналов, которые могут иметь ссылку на виртуальную память, либо быть незанятыми. Первые 5 каналов – это базовые каналы, отображенные на физические носители (оперативная память, файл). Вторые 5 каналов – каналы виртуальной памяти, хранящие каталоги объектов. Остальные каналы предназначены для работы с объектами. Все каналы основываются на каких-либо других каналах, образуя, в общем случае, 5 независимых деревьев. Корень – один из базовых каналов (0 4). Одна и та же виртуальная память не может быть загружена в два канала. При переходе от верхнего канала к нижнему выполняется трансляция адреса.
Рис 3: Связь каналов с хранилищами объектов
Таблица 2: Параметры канала
Параметр канала |
Семантика |
NCHAN |
Номер текущего канала |
LOWCH |
Нижний канал; в него вложен этот канал |
CHGCTX |
Признак изменения данных заголовка фрагмента |
TEKADR |
Текущая позиция для чтения/записи |
SYNCADDR |
Адрес начала заголовка текущего сегмента в нижнем канале |
TEKADR0 |
Позиция, соответствующая началу данных фрагмента |
PREDADDR |
Адрес заголовка предыдущего фрагмента (–1, если его нет) |
NEXTADDR |
Адрес заголовка следующего фрагмента (–1, если его нет) |
BUSYLEN |
Занятая длина |
LEN |
Выделенная длина |