Компоненты системного ядра

Версия 1.0 alpha

В настоящем документе дается общее описание компонент ядра ORE (Object-Relational Engine).

 

Система управления объектами

Подсистема реализации объектов

Менеджер транзакций

Менеджер доступа

Подсистема исполнения методов и запросов

Система хранения данных

Доступ к реляционным данным через ODBC

Система распределенной обработки

Распределенная обработка посредством TCP/IP sockets

Распределенная обработка посредством Remote Automation

Процессор языка

Система пользовательского интерфейса

Процессор форм

Дизайнер форм

Дизайнер методов


Система управления объектами

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

Подсистема реализации объектов

Реализуется в неявном виде, как совокупность методов классов AREA, OBJECT и CLASS, позволяющая совершать над объектами и классами стандартные методы, обеспечивающие минимальную объектную модель.

Используется

исполняющим приложением;

всеми другими системами.

Методы

Создание объекта заданного класса.

Проверка возможности удаления заданного объекта

Удаление заданного объекта и всех объектов, которыми он владеет.

Изменение значения заданного атрибута заданного объекта.

Получение значения заданного атрибута заданного объекта.

Исполнение заданного объекта в качестве процесса.

Исполнение заданного метода применительно к заданному объекту.

 

Менеджер транзакций

Менеджер транзакций реализован в явном виде, как внутренний класс системного ядра, экземпляр которого функционирует в контексте конкретной рабочей области (экземпляра класса AREA).

Используется

подсистемой реализации объектов.

Методы

Проверить, является ли существующий объект заблокированным.

Блокировать объект.

Блокировать новый объект как находящийся в процессе создания.

Блокировать новый объект, как вновь созданный.

Блокировать существующий объект, как вновь созданный.

Блокировать существующий объект, как удаленный.

Разблокировать объект, если в ходе транзакций ни одно из его значений не было изменено..

Передать менеджеру хранения все изменения, сделанные в течении текущей транзакции, без посылки менеджеру хранения команды завершения транзакции.

Завершить транзакцию с сохранением всех произведенных в течении ее изменений и разблокировать все блокированные в ходе ее объекты, послать менеджеру хранения команду завершения транзакции, после чего начать новую транзакцию.

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

 

Менеджер доступа

Менеджер доступа реализован в явном виде, как внутренний класс системного ядра, экземпляр которого функционирует в контексте конкретной рабочей области (экземпляра класса AREA).

Используется

исполняющим приложением;

системой распределенной обработки;

система пользовательского интерфейса.

Методы

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

Проверить возможность определенной операции доступа применительно к экземплярам заданного класса.

Проверить возможность определенной операции доступа применительно к заданному объекту.

Предусматриваются следующие уровни доступа

Нет прав доступа к некоторому объекту или классу.

Просмотр множества объектов-экземпляров некоторого класса.

Изменение значений атрибутов некоторого объекта.

Создание объекта-экземпляра некоторого класса.

Удаление некоторого объекта.

Исполнение метода применительно к некоторому объекту.

Полный контроль.

 

Подсистема исполнения методов и запросов

Подсистема реализуется в неявном виде, как совокупность методов классов OBJECT, CLASS и METHOD позволяющая совершать над объектами и классами стандартные методы, обеспечивающие определенные требования минимальную объектную модель.

Используется

исполняющее приложением;

подсистемой реализации объектов;

системой распределенной обработки;

системой пользовательского интерфейса.

Методы

Создать новый процесс, то есть экземпляр данного метода, как класса.

Исполнить существующий процесс.

Уничтожить существующий процесс.

Исполнить метод или запрос без создания процесса.

Исполнить метод c созданием процесса. Создать новый процесс, получить входные параметры процесса, исполнить процесс, вывести выходные параметры и уничтожить существующий процесс, если его уничтожение не обеспечивается вызвавшим процессом.

 


Система хранения данных

Подсистема реализуется в явном виде, как совокупность методов класса AREA и COLLECTION, и в явном виде, внутреннего класса DATABASE. Система обеспечивает хранение объектов и исполнение методов во внешних источниках данных.

Используется

менеджером транзакций;

подсистемой исполнения методов и запросов.

Методы

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

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

Создать объект в базе данных.

Сохранить объект в базе данных.

Удалить объект из базы данных.

Блокировать объект в базе данных для изменения.

Реализовать множество объектов-экземпляров данного класса, хранящихся в базе данных.

Проверить соответствие атрибутов данного класса физической структуре базы данных.

Произвести генерацию или реструктуризацию физической структуры базы данных на основании атрибутов данного класса.

Завершить транзакцию в базе данных и начать новую транзакцию.

Отменить транзакцию в базе данных и начать новую транзакцию.

Транслировать метод или запрос, реализованный на языка ORL в метод, исполняемый непосредственно во внешнем источнике данных.

Исполнить метод или запрос непосредственно во внешнем источнике данных.

 

Доступ к реляционным данным через ODBC

В качестве внешнего источниках данных рассматриваются, в первую очередь, реляционные или другие данные, осуществление доступа к которым возможно через ODBC API. Среди них в качестве основных рассматриваются следующие:

Microsoft SQL Server

Достоинства

- низкая стоимость.

Недостатки

- неэффективно реализованная изоляции транзакций.

Oracle SQL Server

Достоинства

- высокая эффективность.

Недостатки

- высокая стоимость.

Данные Excel

Достоинства

Недостатки

Dbf-файлы

Достоинства

Недостатки

 


Система распределенной обработки

Реализуется в неявном виде, как совокупность методов классов AREA, и COLLECTION, позволяющих исполняемой рабочей области как получать доступ ко множествам объектов, хранящихся в удаленной рабочей области, исполняемым другим приложением или на другом компьютере, так и выставить для использования удаленной рабочей областью множества своих объектов.

Используется

исполняющее приложением;

подсистемой реализации объектов;

менеджером транзакций;

подсистемой исполнения методов и запросов.

Методы

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

Установить соединение данной рабочей области с удаленной рабочей областью - заместителем. При этом в данной рабочей области создадутся заместители (proxy) классов удаленной рабочей области и станут доступны объекты-экземпляры этих классов.

Уничтожить соединение одной рабочей области с другой рабочей областью - заместителем.

 

Распределенная обработка посредством TCP/IP sockets

Основным транспортным протоколом, на базе которого реализуется система распределенной обработки, является TCP/IP, используемый посредством интерфейса Windows Sockets. Достоинством данного протокола является большая гибкость при взаимодействии рабочих областей разных версий, так как языком общения между удаленными областями является непосредственно ORL.

 

Распределенная обработка посредством Remote Automation

В случае реализации система распределенной обработки на базе Remote Automation удаленная область представляется COM-объектом, имплементирующим dual-интерфейс, и поддерживающим Remote Automation.

 


Процессор языка

Предназначен как для разбора и исполнения исходных текстов на языке ORL, так и для сохранения текущего состояния рабочей области в виде текста на языке ORL. Реализован явно в классе DATAFILE, и поддерживается теми классами, для которых определен метод LOAD.

Используется

исполняющее приложением;

системой хранения данных;

системой распределенной обработки;

системой пользовательского интерфейса;

подсистемой исполнения методов и запросов.

Методы

Создать входной ORL-файл для чтения.

Транслировать входной файл в рабочую область.

Прочитать объект из входного ORL-файла.

Создать выходной ORL-файл для записи.

Транслировать рабочую область в выходной файл.

Записать объект в выходной ORL-файл.

Прочитать запрос (метод) из текстового файла, после чего исполнить запрос (метод) без создания процесса.

 


Система пользовательского интерфейса

Предназначена для исполнения прикладных форм, а также визуальной спецификации этих форм и исполняемых применительно к ним методов.

Процессор форм

Осуществляет непосредственно исполнение прикладных форм.

 

Дизайнер форм

Должен позволять визуальную спецификацию прикладных форм. В настоящей версии не реализован.

 

Дизайнер методов

Должен позволять визуальную спецификацию прикладных методов. В настоящей версии не реализован.

 


Объектно-реляционный язык ORL и системное ядро