АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция
|
Цель: Описание структуры серверной части системы Alfa. Систематизация серверной части. Обеспечение управляемости и контроля над серверной частью системы
Стандарт 5. Архитектура серверной части.
Стандарт 5. Архитектура серверной части. 1
Основные положения. 2
Схема серверной архитектуры. 4
Структура интерфейсного типа таблицы. 5
Управление приложением через контекст. 5
Основные положения
- Управление транзакциями. Используются длинные транзакции.
- Используется технология тонкий клиент. Т.е. вся обработка данных сосредоточена на сервере БД.
- На основе реляционной СУБД Oracle построено объектное хранилище данных на основе дерева пользовательских классов (в дальнейшем просто классов). Объекты системы являются экземплярами классов.
- Объектное хранилище данных построено на основе таблиц метамодели. Объекты хранятся в универсальной структуре хранения (УСХ), заложенной в метамодели, или в собственных индивидуальных структурах, настроенных на уровне их классов.
- Система является многоязыковой, все именования описания дерева классов и метамодели создаются при помощи «понятий». Понятию принадлежит определенное пространство текстовых представлений. Например для понятия «валюта» существуют текстовые представления «валюты», «введите валюту» и т.п. Каждое текстовое представление может вводиться в различных языках, зарегистрированных в системе. Сами объекты пользовательских классов не являются многоязыковыми, они вводятся на определенном языке.
- Любая таблица метамодели содержит уникальное поле Id – первичный ключ. Обеспечивается уникальность Id только внутри таблицы. Для этого к таблице создается Sequence.
- Доступ к низкоуровневому хранилищу информации (таблицам метамодели), хранящему описание дерева классов, понятия, УСХ и т.п. осуществляется через интерфейсные API-типы. Рисунок 1.
- Набор таблиц метамодели объединяется в бизнес-объекты (БО) метамодели. Существование записи в одной из таблиц БО не имеет значения без соответствующих записей в других таблицах БО.
- DPI-типы для каждой таблицы метамодели создаются автоматически, из Er-win. Этот тип содержит набор стандартных статических функций и процедур, обеспечивающих взаимодействие с указанной таблицей. Редактирование DPI-типа запрещено.
- API-тип создается для каждой таблицы метамодели, он наследуется от соответствующего DPI-типа. В нем происходит переопределение необходимых методов DPI-типа и определение новых.
- Любое обращение из внешней среды на изменение к таблицам метамодели запрещено. Операции INSERT, UPDATE, DELETE осуществляются через методы API-типа. Обращение к методам DPI-типа разрешено только в API-типе для той же таблицы метамодели.
- В некоторых случаях реализации серверной логики на уровне метамодели, при необходимости осуществления массированных изменений, разрешено прямое обращение к таблицам метамодели через INSERT, UPDATE, DELETE.
- Информация о дереве классов хранится в метамодели. Классы наследуются друг от друга. Класс имеет набор атрибутов, состоящий из унаследованных от классов-предков атрибутов, перекрытых атрибутов и собственных атрибутов. Перекрытие атрибута осуществляется путем создания в классе-наследнике одноименного атрибута.
- Каждый класс содержит весь перечень собственных экземпляров объектов, а также все объекты классов-потомков.
- В системе реализовано множественное наследование на уровне объекта. Один и тот же объект может одновременно быть экземпляром нескольких классов. Причем некоторые из атрибутов, определенных для разных классов, которым принадлежит объект, могут иметь синхронизируемые значения.
- Для внешней среды пользовательский класс должен быть представим в табличном виде, для осуществления выборок его данных запросами SELECT. Для этого, для каждого класса создается вид с именем: CLS_<имя класса>.
- Для каждого класса автоматически создается DPI-тип, содержащий стандартный набор статических процедур и функций, реализующих интерфейс данного класса. DPI-тип не редактируется.
- API-тип создается для каждого класса, он наследуется от соответствующего DPI-типа. В нем происходит переопределение необходимых методов DPI-типа и определение новых.
- При создании класса-наследника, его DPI-тип наследуется от API-типа класса-предка. Тем самым осуществляется наследование методов от класса к классу.
- Любое обращение на выборку экземпляров класса осуществляется через его вид, а любое обращение на изменение его объектов – через API-тип класса.
- На конкретных проектах внесение изменений осуществляется путем создания собственных наследников от существующего дерева классов и перекрытия или определения серверных методов.
- Изменение API-типа класса, от которого существуют наследники, осуществляется регламентным образом, описанным в Стандарте 6.
- Реализация бизнес логики в триггерах запрещена.
- Отображение данных метамодели или пользовательских классов на клиентское приложение осуществляется при помощи выборок. Выборка представляет собой набор операций, доставляющих и изменяющих данные на клиенте. Выборки хранятся на сервере.
- Выборка имеет набор атрибутов, свойства которых определяют способы вывода атрибута на клиентском приложении.
- Выборки наследуются друг от друга. В выборке наследнике автоматически появляется весь набор операций и атрибутов, определенных в предке. В выборке наследнике эти атрибуты и операции могут быть переопределены, а так же могут быть созданы новые.
- Для каждого класса создается три выборки по умолчанию: одна для редактирования класса в табличной форме, две другие наследуются от нее и предназначены для редактирования класса в карточной форме (одна выборка для вызова карточки из табличной формы, другая выборка для самой карточки объекта). Выборки по умолчанию пересоздаются при изменении структуры класса.
- Основная выборка по умолчанию класса (редактирования в табличной форме) наследуется от основной выборки класса-предка для данного класса.
- Выборки, более точно настраиваемые для редактирования объектов класса, как правило, наследуются от выборок по умолчанию, с целью обеспечения автоматической поддержки изменений, производимых в классе (например, добавления нового атрибута). При пересоздании выборок по умолчанию, наследуемые от них выборки присоединяются к вновь созданным.
- Выборки предназначены для работы с любыми серверными данными, будь то таблицы метамодели или пользовательские классы.
Поиск по сайту:
|