автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Применение аспектно-ориентированного подхода к созданию ортогональных долговременных объектных систем в архитектуре с веб-клиентом

кандидата технических наук
Зудин, Андрей Борисович
город
Москва
год
2010
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Применение аспектно-ориентированного подхода к созданию ортогональных долговременных объектных систем в архитектуре с веб-клиентом»

Автореферат диссертации по теме "Применение аспектно-ориентированного подхода к созданию ортогональных долговременных объектных систем в архитектуре с веб-клиентом"

На правах рукописи

ЗУДИН АНДРЕЙ БОРИСОВИЧ

ПРИМЕНЕНИЕ АСПЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА К СОЗДАНИЮ ОРТОГОНАЛЬНЫХ ДОЛГОВРЕМЕННЫХ ОБЪЕКТНЫХ СИСТЕМ В АРХИТЕКТУРЕ С ВЕБ-КЛИЕНТОМ

Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

2 С Я К В 2011

Москва 2010 г.

004619546

Работа выполпена на кафедре «Вычислительные системы и сети» Московского государственного института электроники и математики

Научный руководитель: Саксонов Евгений Александрович

доктор технических наук, профессор

Официальные оппоненты: Каширин Игорь Юрьевич

доктор технических наук, профессор

Авдошин Сергей Михайлович кандидат технических наук, доцент

Ведущая организация: Институт системного анализа РАН

Защита состоится января 2010 г. в часов на заседании

диссертационного совета Д 212.133.01 при Московском государственном институте электроники и математики (МИЭМ) по адресу 109028, Москва, Б. Трехсвятительский пер., дом 3.

С диссертацией можно ознакомиться в библиотеке МИЭМ.

Автореферат разослан декабря 2010 г.

Ученый секретарь /7

диссертационного совета, //1--

кандидат технических наук, /9у

доцент (Бузников С.Е.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

Для работы с подобными данными создаются системы долговременного программирования. Одной из важных задач долговременного программирования является создание программных средств, которые оперируют долговечными, конкурентно доступными и потенциально большими объемами информации. Такие программные средства принято называть долговременными (ДПС) (Persistent Application Systems (PAS)). Типичными представителями ДПС являются, например, CAD/CAM системы, системы автоматизации офисов, CASE средства, среды разработки программных средств, интегрированные системы управления медицинскими учреждениями, большие научные базы данных и программы их анализа, географические информационные системы, системы моделирования окружающей среды, объектно-ориентированные базы данных и системы моделирования процессов.

Среди известных подходов наибольший интерес представляют ортогональные системы долговременного программирования (ОСДП) н их развитие - объектные ОСДП.

ОСДП предназначены улучшить системную архитектуру, упростить поддержку и увеличить производительность ДПС. Абстрагирование от времени жизни данных позволяет создавать и манипулировать объектами независимо от их типа и посредством этого совместить программную модель данных и модель данных СУБД. В результате увеличивается продуктивность разработчиков ДПС систем.

Объектные ОСДП (ООСДП), появлению которых во многом способствовало развитие Интернет, ставят перед своими разработчиками множество различных вопросов. Особенностью работы с долговременными объектами является то, что она затрагивает такие аспекты, которые не отражены в

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

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

Представленная в работе ООСДП на основе тонкого клиента, являясь эффективной реализацией ортогональной стабильности объектов, является так же и средой разработки и выполнения для информационных Интернет систем, где вся разработка может вестись на основе клиентского языка сценариев, не требуя изменений на других уровнях многозвенной архитектуры.

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

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

Для достижения поставленной цели в работе сформулированы и решены следующие задачи:

- исследованы -возможности и особенности существующих универсальных ООСДП и на базе этого анализа, с учетом требований, предъявляемых тонкими клиентами, построена метамодель для создания, хранения и управления доступом к объектам в хранилище;

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

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

- разработаны модели параллельной обработки запросов, позволяющие оценить значения характеристик процесса исполнения запросов;

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

На защиту выносятся:

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

2. Методы организации параллельной обработки и требования к языкам программирования для работы с долговременными объектами и их реализация на основе аспектно-ориентированного подхода.

3. Математические модели параллельной обработки запросов в системах долговременного программирования.

4. Методы программной реализации прототипа ортогональной объектной системы долговременного программирования.

Научная новизна полученных результатов состоит в вявлении связей и установлении закономерностей при создании и реализации систем долговременного программирования на основе аспектно-ориентированного подхода, разработке концепции прототипа ООСДП для работы "^еЬ-клиентов. Разработке математических моделей для расчета характеристик процесса параллельной обработки запросов.

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

Достоверность и обоснованность результатов диссертации обусловлены их согласованностью с известными данными, опубликованными в

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

Методы исследований

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

Реализация и внедрение результатов

Результаты, полученные при выполнении диссертационной работы, использовались в ООО «Х-КШО» при создании специализированного программного обеспечения для МВД России, при создании компонентов системы долговременного программирования в Интернет системе для Торгово-промышленной палаты России.

Апробация работы

Основные результаты диссертации докладывались и обсуждались на отечественных и зарубежных научно-технических конференциях: Международная конференция «Ломоносов-2003», (Москва, 2003), Научная конференция «Ломоносовские Чтения», Секция Вычислительной Математики и Кибернетики, (Москва, НИВЦ, 2003), ХЬУ1 Всероссийская конференция по проблемам математики, информатики, физики и химии. (Москва, РУДН, 2010), 2-я Международная научно-практическая конференция. Современные информационные компьютерные технологии - шс1Т - 2010, (Беларусь, Гродно, 2010).

Публикации

Результаты диссертации отражены в 9 опубликованных печатных работах.

Структура и объем диссертации

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

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

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

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

Показаны принципиальные отличия между ДПС и известными подсистемами поддержки.

Исследованы свойства и отличительные особенности" ортогональных систем долговременного программирования (ОСПД).

Показано, что ОСДП, как средства создания ДПС, отличаются от СУБД и языков программирования СУБД тем, что дают разработчику возможность пользоваться долговременными данными независимо от их назначения. Эта независимость становится возможной при следовании следующим трем принципам: независимости, ортогональности типа, определения времени жизни. Разработчики языков программирования для ОСДП сталкиваются с задачами унификации системы типов ЯП и моделей данных СУБД, построения механизмов именования сохраненных объектов и задачей дальнейшего развития систем.

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

Исследования показали, что популярной архитектурой распределенных вычислений на сегодняшний день являются многозвенные архитектуры с тонким клиентом, например, Интернет браузерами, которые не требуют изменений с развитием системы, опираются на международные стандарты и не предъявляют больших системных требований. Исследованы возможности и особенности существующих универсальных ООСДП и на базе этого анализа с учетом требований, предъявляемыми тонкими клиентами, строится метамодель для создания, хранения и управления доступом к объектам в хранилище.

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

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

Изучены особенности объектные ОДС, связанные с возможностью унифицированной работы с объектами любых типов, позволяющей значениям любого типа иметь произвольное время жизни. Основной особенностью современных ООСДП является предоставление разработчику приложения всех средств современных объектно-ориентированных языков программирования для работы с долговременными объектами. При этом, с самого начала развития ООСДП, наблюдалась тенденция использования хорошо известных ЯП, таких как С++, Smalltalk и, в последнее время, Java.

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

Показано, что основная проблема, с которой встречаются создатели системы типов для долговременных систем, заключается в необходимости предоставить выразительно мощную модель данных, обладающую совершенной системой защиты, и при этом описываемую в как можно более статической форме. Разработаны последовательные шаги для достижения этих двух противоречащих друг другу целей: Шаг 1. Конструкторы типов. Шаг 2. Сокрытие информации о типе при помощи типовых операторов, связанных квантором существования (абстрактных типов). Шаг 3. Использование полиморфизма.

При этом наиболее применимыми являются параметрический полиморфизм и полиморфизм включения, знакомый по его применению в большинстве современных объектно-ориентированных языках.

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

function Count: VT => (List[T] -> int). Преимуществом построения абстрактных функций является то, что такую функцию можно поместить в хранилище и использовать по мере надобности для вычисления размера любых списков.

Показана необходимость динамической проверки соответствия типов в долговременных системах и предложены способы ее реализации. С ростом количества типизированных файлов в системе, программа будет все чаще работать не с одним, а с несколькими файлами и появится необходимость межфайловых ссылок. Это является одним из глав'ных отличий между хранилищем типизированных файлов и объектов. Файлы являются автономными хранилищами данных, и сами по себе не поддерживают ссылки на другие файлы, в то время как объекты обычно сильно связаны друг с другом.

Исследованы механизмы связывания. Связывание используется для достижения следующих результатов: создание новых объектов (и их помещение в долговременное хранилище), повторное использование существующих в хранилище объектов, создание новых комбинаций из существующих или/и новых объектов, пошаговое создания объектов. Показано, что механизмам связывания приходится учитывать такие факторы, как, например, указание на то, является ли значение константой или переменной; время связывания; время проверки соответствия типов, контекст.

Исследованы задачи обеспечения параллельных вычислений в долговременных системах. Задача эффективного и согласованного переноса данных из долговременного хранилища в оперативную память и обратно усложняется необходимостью параллельных вычислений. Ее можно поделить на две различных подзадачи: задача поддержки одновременного переноса данных в хранилище и вычислений с этими данными; задача поддержки параллельных зависимых вычислений оперирующими кратковременными данными.

Показано, что принцип независимости ортогональных долговременных систем и невозможность создавать простейшую (АСШ) транзакцию в контексте другой транзакции приводят к тому, что минимальной транзакцией будет являться создание нового процесса средствами операционной системы. Это существенно ограничивает возможности параллельных вычислений и тем самым вступает в противоречие с другим ключевым принципом ортогональных долговременных систем: принципом вычислительной полноты.

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

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

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

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

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

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

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

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

Обозначенные принципы построения систем долговременного программирования легли в основу прототипа системы PWEB (Persistent WEB).

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

С технической точки зрения логическая структура системы реализуется следующим образом:

- на пользовательском уровне активные клиенты работают под управлением Интернет-браузеров таких, например, как Microsoft Internet Explorer или Mozilla Firefox, код активных клиентов реализуется на языке сценариев JavaScript, взаимодействие с сервером-хранилищем осуществляет по протоколу HTTP(s) с помощью асинхронных вызовов, что позволяет вести параллельную обработку информации;

- на уровне сервера приложений представлен Java 2 Enterprise Edition -совместимым сервером. Данный уровень отвечает за загрузку кода активных клиентов в Интернет-браузеры, а так же за обработку высоко уровневых запросов, с которыми обращаются активные клиенты;

- на уровне данных в системе PWEB представлен СУБД поддерживающей стандарт SQL-92 и построенной на сетях хранения данных в качестве хранилища информации.

Сеть Хранения Данных (СХД) - высокоскоростная коммутируемая сеть передачи данных, объединяющая серверы, рабочие станции, дисковые хранилища и ленточные библиотеки для решения следующих задач:

• консолидация (объединение) дисковых ресурсов, упрощается наращивание объемов хранения, снижается стоимость;

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

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

резервное копирование, репликация, процедуры восстановления и перехода на резервные узлы);

• обеспечение централизованного управления подсистемой хранения.

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

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

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

В третьей главе приводятся результаты разработки математических моделей для расчета характеристик обслуживания запросов при их параллельной обработке

В качестве модели для анализа обработки запросов исследована система с К ресурсами (в терминах СМО - приборами) и пуассоновскими потоками запросов, требующих для исполнения различного количества приборов. Здесь ресурсам

(приборам) соответствуют средства хранения данных, а потоки запросов к ресурсам образуются запросами к хранимым данным.

Интенсивность поступления запросов постоянна Лк,0<Л11<<*>,к = 1,К, т.е. все потоки стационарны и независимы в совокупности.

Длиной запроса считается количество необходимых приборов для его исполнения. Каждый запрос, поступивший в систему, характеризуется вектором I фиксированной длинны К, где /¡=1 означает, что для

исполнения запроса необходим г-й прибор, а /¡=0 означает, что г-й прибор для исполнения запроса не требуется.

В качестве показателей производительности системы приняты II -коэффициент занятости приборов ям*- среднее время ожидания в очереди.

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

В связи с этим предложено упростить модель следующим образом: все К приборов объединяются в один общий ресурс, и считается, что ¿-запросу требуется процентов ресурса, где целое, 0 <^¿100. Длительность обслуживания ¿-запроса имеет экспоненциальное распределение с интенсивностью /ик,0 < /лк < к - \,К .

Исследована система с двумя входящими пуассоновскими потоками, интенсивности Л,,Л2> буфером ограниченной емкости г, интенсивность

обслуживания запросов 1-типа - запросов 2-тина - Мг ■ Допустимо

параллельное исполнение запросов, при условии (ад + 100, при этом возможно параллельное исполнение г, 1-запросов и тг 2-заиросов.

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

В качестве стохастической модели, описывающей функционирование СМО, рассмотрен марковский процесс {ЛГ(г),г2:0}, определенный на множестве состояний Х = \Х„т,Х1то,Хтт,Хпоо,...,Хкк^лн\.

Состояние процесса Х^^ {!) = {кх ,к1,т1,т1) для момента £ значит, что в

данный момент времени t на обслуживании находится кх запросов 1-типа, к2 запросов 2-типа, в очереди т, запросов 1-типа, т2 запросов 2-типа. Число состояний процесса \X{t),t > 0} конечно и все состояния процесса сообщаются, то {X(t),t S О} - эргодический процесс, и существуют фшальные вероятности: > 0, не зависящие от начального состояния процесса и

совпадающие со стационарными вероятностями Пусть Рк,кЛтг = mi) стационарная вероятность состояния

(^.fejjiHj,^). С учетом дисциплины исполнения запросов, получена система уравнений для расчета вероятностей состояний.

Получены формулы, позволяющие вычислять значения основных показателей качества обработки запросов:

3 * ' г

- средняя длинна очереди: Q = £ К ■ sK , где sf: — ЛИ 2 Pij/^t,;^ .

К = й к^ГЩ*0 №2=0

Q Q

- среднее время ожидания в очереди запросов 1 и 2-типа: Wi = —, w2 =--.

Л Л> ~ ~ ~ ?

- вероятность потерь к\ я = + (р1М + р01г0 ) ■ Л1 , где Л, = т~ГГ •

л1 + я2

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

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

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

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

ЗАКЛЮЧЕНИЕ. ОБЩИЕ ВЫВОДЫ 1. Обзор существующих теоретических и практических проблем, возникающих при создании ортогональных долговременных систем, показал необходимость использования более гибких подходов на этапе проектирования,

обеспечивающих сокращение этапов разработки и отладки программ.

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

3. Разработаны математические модели для анализа процесса параллельной обработки запросов, позволяющие вычислять время обработки, вероятности потери запросов, определять параметры хранилища данных.

4. Разработан прототип системы PWEB обладающий базовыми возможностями объектно-ориентированной ортогональной системы долговременного программирования, позволяющими с использованием метаобъекгного протокола расширять базовую функциональность системы до необходимого пользователю уровня.

5. На основе использования метаобъекгного протокола, для решения проблемы объединения системы типов языка программирования, и модели данных СУБД предложен способ описания стабильных типов на языке XML. Как следствие ортогонального использования долговременных и кратковременных объектов, стандартный механизм связывания языка сценариев JavaScript был расширен механизмом связывания имени с сохраненным объектом в хранилище. Связывание также происходит непосредственно с прямым участием метаобъектов.

6. Эффективное использование метаобъекгного протокола обуславливает необходимость тщательной разработки метаобъекгного интерфейса и, таким образом, определять базовые классы. В соответствии с этим разработаны стандартные метаклассы для реализации оптимистической и пессимистической модели синхронизации. Разработан протокол взаимодействия хранилища с клиентом при фиксации транзакций.

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

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

ОСНОВНЫЕ ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Зудин А.Б. Спецификация требований к долговременным объектным системам на основе сравнительного анализа моделей сохраняемости объектов // Материалы международной конференции «Ломоносов-2003», М.:, МГУ,2003, с. 7.

2. Зудин А.Б. Системы долговременного программирования. // Мир компьютерной автоматизации. - М.: № 3,2003. С. 50 - 56.

3. Зудин А.Б. Концепции интеграции языков программирования и баз данных //Мир компьютерной автоматизации. - М.:, № 6,2003. С. 34 - 39.

4. Зудин А.Б. Применение аспектно-ориентированного программирования в \УеЬ-системах со сложным клиентом // Математическое и программное обеспечение информационных систем: Межвуз. сб. науч. тр. / Цод ред. А.Н. Пылькнна - М.: Горячая линия - Телеком, 2007. - С. 86 - 92.

5. Зудин А.Б. Методы хранения объектов в системах долговременного программирования // Математическое и программное обеспечение вычислительных систем: Межвуз. сб. науч. тр. / Под ред. А.Н. Пылькина - М.: Горячая линия - Телеком, 2007. С. 92 -95.

6. Зудин А.Б. Системы долговременного программирования. // Качество. Инновации. Образование. - М.:, № 9, 2008. С. 17 - 20.

7. Зудин А.Б. Модель обслуживания запросов в системах долговременного программирования // Проблемы передачи и обработки информации в сетях и системах телекоммуникаций. Материалы 16-й международной научно-технической конференции. - Рязань, 2010. С. 83 - 85.

8. Зудин А.Б. Модель доступа в системах долговременного программирования // ХЬУ! Всероссийская конференция по проблемам математики, информатики, физики и химии. Секции математики и информатики. Тезисы докладов. М.: РУДН, 2010. С. 53-54.

9. Зудин А.Б. Система долговременного программирования // Современные информационные компьютерные технологии (шс1Т -2010). 2-я Международная научно-практическая конференция. Беларусь, Гродно, 2010. С. 57 - 61.

Подписано в печать 21.12.2010. Формат 60x84/16. Бумага типографская № 2. Печать - ризография. Усл. печ. л. 1,1 Тираж 100 экз. Заказ -1(199.

Московский государственный институт электроники и математики 109028, Москва, Б.Трехсвятительский пер., 3.

Центр оперативной полиграфии (495) 916-88-04, 916-89-25

Оглавление автор диссертации — кандидата технических наук Зудин, Андрей Борисович

ВВЕДЕНИЕ.

1. ОБЪЕКТНЫЕ ОРТОГОНАЛЬНЫЕ СИСТЕМЫ ДОЛГОВРЕМЕННОГО ПРОГРАММИРОВАНИЯ.

1.1 Системы долговременного программирования.

1.2 Основные понятия и свойства ООСДП.

1.2.1 Персистентность (Долговременность).

1.2.2 Принципы ортогонального долговременного программирования.

1.2.3 Объектные ортогональные долговременные системы.

1.3 Обзор проблемы и выбор путей решения.

1.3.1 Интеграция системы типов и модели данных.

1.3.2 Механизмы связывания.

1.3.3 Параллельный доступ.

Выводы.

2. ОБЩИЕ ПРИНЦИПЫ ПОСТРОЕНИЯ Р\¥ЕВ.

2.1. Аспектно-ориентированное программирование.

2.2. Подходы к реализации распределенных об ьекггных ортогональных долговременных систем.

2.3. Выбор модели вычислений.

2.3.1. Логическое представление системы.

2.3.2. Техническая реализация.

2.3.3. Работа с распределенными данными.

2.4. Метаобъекты в Р\УЕВ.

2.4.1. Поддержка параллельных вычислений различными клиентами.

2.4.2. Синхронизация доступа в рамках одного клиента.

2.4.3. Управление кэш памятью объектов.

Выводы.

3. МАТЕМАТИЧЕСКИЕ МОДЕЛИ ИСПОЛНЕНИЯ ЗАПРОСОВ В СИСТЕМАХ ДОЛГОВРЕМЕННОГО ХРАНЕНИЯ.

3.1 Описание системы.

3.1.1. Простая дисциплина обслуживания.

3.1.2. Дисциплины обслуживания с параллельной обработкой.

3.2. Дисциплина исполнения в системе с общим разделяемым ресурсом.

3.2.1. Описание системы.

3.2.2. Стохастическая модель системы.

3.2.3.Вычисление показателей эффективности работы системы.

3.2.4. Пример составления СУР.

3.3. Имитационная модель.

3.3.1. Реализация имитационной модели. Результаты расчетов.

Выводы.

4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРЕДЛАГАЕМЫХ РЕШЕНИЙ.

4.1. Архитектура ООСДП PWEB.

4.2. Описание мил-аобъектного протокола.

4.3. Описание стандартных метаобъектов PWEB.

4.3.1. Назначение метаобъекта экземпляру класса.

4.4. Реализация транзакционного подхода обеспечения параллельного доступа в системе PWEB.

4.5. Менеджер обьектов.

4.6. Менеджер классов.

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

Введение 2010 год, диссертация по информатике, вычислительной технике и управлению, Зудин, Андрей Борисович

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

Для работы с подобными данными создаются системы долговременного программирования. Одной из важных задач долговременного программирования является создание программных средств, которые оперируют долговечными, конкурентно доступными и потенциально большими объемами информации. Такие программные средства будем называть долговременными' или долговечными (ДПС). Типичными представителями ДПС являются, например, CAD/CAM системы, системы автоматизации офисов, CASE средства, среды разработки программных средств, интегрированные системы управления медицинскими учреждениями, большие научные базы данных и программы их анализа, географические информационные системы, системы моделирования окружающей среды, объектно-ориентированные базы данных и системы моделирования процессов.

ДПС (Persistent Application Systems (PAS)) - приобретают все большую социальную и экономическую значимость. Они потенциально обладают длительным временем жизни, средствами поддержки одновременного доступа со стороны пользователей и состоят из большого объема^ данных и программного кода. В связи с этим актуальными являются исследования, направленные на разработку принципов и подходов к построению персистентных систем.

Среди исследуемых подходов наибольший интерес представляют ортогональные системы долговременного программирования (ОСДП) и их развитие - объектные ОСДП.

ОСДП предназначены улучшить системную архитектуру, упростить поддержку И' увеличить производительность ДПС. Абстрагирование от времени жизни данных позволяет создавать и манипулировать объектами независимо от их типа и посредством этого совместить программную модель данных и модель данных СУБД. В результате увеличивается продуктивность разработчиков ДПС систем.

Объектные ОСДП (ООСДП), появлению которых во многом способствовало развитие Интернет, ставят перед своими разработчиками множество различных вопросов. Задачи, в которых используются ООСДП, настолько различны по своим требованиям, что практически невозможно разработать универсальную систему, которая предоставляет эффективные решения для всех возможных задач.

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

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

Представленная в работе ООСДП на основе тонкого клиента, являясь эффективной реализацией ортогональной стабильности объектов, является так же и средой разработки и выполнения для информационных Интернет систем, где вся разработка может вестись на основе клиентского языка сценариев, не требуя изменений на других уровнях многозвенной архитектуры.

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

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

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

- разработаны модели параллельной обработки запросов, позволяющие оценить значения характеристик процесса исполнения запросов;

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

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

2. Методы организации параллельной обработки и требования к языкам программирования для работы с долговременными объектами и их реализация на основе аспектно-ориентированного подхода;

3. Математические модели параллельной обработки запросов в системах долговременного программирования.

4. Методы программной реализации прототипа ортогональной объектной системы долговременного программирования.

Научная новизна полученных результатов состоит в выделении связей и установлении закономерностей при создании и реализации систем долговременного программирования на основе аспектно-ориентированного подхода, разработке концепции прототипа ООСДП для работы \¥еЬ-клиентов.

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

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

Методы исследований

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

Реализация и внедрение результатов

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

Апробация работы

Основные результаты диссертации докладывались и обсуждались на отечественных и зарубежных научно-технических конференциях: Международная конференция «Ломоносов-2003», (Москва, 2003), Научная конференция «Ломоносовские Чтения», Секция Вычислительной Математики и Кибернетики, (Москва, НИВЦ, 2003), ХЬУ1 Всероссийская конференция по проблемам математики, информатики, физики и химии. (Москва, РУДН, 2010), 2-я Международная научно-практическая конференция. Современные информационные компьютерные технологии — тсГГ - 2010, (Беларусь, Гродно, 2010).

Публикации

Результаты диссертации отражены в 9 опубликованных печатных работах.

Заключение диссертация на тему "Применение аспектно-ориентированного подхода к созданию ортогональных долговременных объектных систем в архитектуре с веб-клиентом"

ЗАКЛЮЧЕНИЕ. ОБЩИЕ ВЫВОДЫ

1. Обзор существующих теоретических и практических проблем, возникающих при создании ортогональных долговременных систем, показал необходимость использования более гибких подходов на этапе проектирования, обеспечивающих сокращение этапов разработки и отладки программ.

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

3. Разработаны математические модели для анализа процесса параллельной обработки запросов, позволяющие вычислять время обработки, вероятности потери запросов, определять параметры хранилища данных.

4. Разработан прототип системы PWEB обладающий базовыми возможностями объектно-ориентированной ортогональной системы долговременного программирования, позволяющими с использованием метаобъектного протокола расширять базовую функциональность системы до необходимого пользователю уровня.

5. На основе использования метаобъектного протокола, для решения проблемы объединения системы типов языка программирования, и модели данных СУБД предложен способ описания стабильных типов на языке XML. Как следствие ортогонального использования долговременных и кратковременных объектов, стандартный механизм связывания языка сценариев JavaScript был расширен механизмом связывания имени с сохраненным объектом в хранилище. Связывание также происходит непосредственно с прямым участием метаобъектов.

6. Эффективное использование метаобъектного протокола обуславливает необходимость тщательной разработки метаобъектного интерфейса и, таким образом, определять базовые классы. В соответствии с этим разработаны стандартные метаклассы для реализации оптимистической и пессимистической модели синхронизации. Разработан протокол взаимодействия хранилища с клиентом при фиксации транзакций.

7. Показано, что системы, подобные Р\УЕВ целесообразно строить по модульному принципу, с разбиением всех компонент системы на логически обособленные модули, взаимодействующие друг с другом посредством четко определенных интерфейсов. Это позволяет использовать различные реализации для каждого модуля с последующей настройкой под конкретные конфигурации для повышения производительности системы и удовлетворения специфических требований целевых информационных систем. Эффективность различных алгоритмов и их пригодность для различных типов информационных систем можно оценить, экспериментируя с различными реализациями модулей, отвечающими за организацию кэш памяти, обработку транзакций, и т.д.

Работы целесообразно продолжить в следующих направлениях:

• Исследования в области контроля над параллельными взаимодействующими вычислениями. Представляют интерес изучение и разработка новых механизмов, с помощью которых распределенные параллельные вычисления могут взаимодействовать друг с другом в рамках Р>УЕВ.

• Исследования в области эффективной поддержки параллельных вычислений путем обеспечения соответствующими ресурсами. Здесь важно более подробно проработать вопросы управления общими ресурсами в распределенных долговременных ортогональных системах программирования.

• Расширение используемой системы типов в сторону объектно-ориентированной модели.

• Повышение степени масштабируемости системы.

Библиография Зудин, Андрей Борисович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Башарин Г.П. Лекции по математической теории телетрафика. М.: Изд-во РУДН, 2004. С. 52 83

2. Боев В.Д. Моделирование систем / Инструментальные средства GPSS WORLD. С.-Пб.: Изд-во "БВХ-Петербург", 2004. 350 с.

3. Бочаров П.П., Печинкин A.B. Теория массового обслуживания. М.: Изд-во РУДН, 1995. 529 с.

4. Бочаров П.П., Шлумпер Л.О. Однолинейная система массового обслуживания с фоновыми запросми / / АиТ. 2005. №6. С. 74 88.

5. Бэкон Д., Харрис Т. Операционные системы. Параллельные и распределенные системы. СПб.: Питер; Киев: Издательская группа BHV, 2004. 840 с.

6. Бычков С.П., Храмов A.A. Разработка моделей в системе моделирования GPSS. М.: МИФИ, 1997. 32 с.

7. Введение в информационный бизнес / Под ред. акад. Тихомирова В.П. и проф. Хорошилова A.B. М.: Финансы и статистика, 1996. - 246с.

8. Вишневский В.М. Теоретические основы проектирования компьютерных сетей / / М.: Изд-во "Техносфера", 2003.

9. Гнеденко Б.В., Коваленко И.Н. Введение в теорию массового обслуживания. М.: Наука, Гл. ред. физ.-мат. лит., 1987. 336 с.

10. Гордеев A.B., Молчанов А.Ю. Системное программное обеспечение. -СПб.: Питер, 2002. 736 с.

11. Зелковиц М., Шоу А., Гэннон Д. Принципы разработки программного обеспечения. М.: Мир, 1982. - 368 с.

12. Зудин А.Б. "Спецификация требований к долговременным объектным системам на основе сравнительного анализа моделей сохраняемостиобъектов". Материалы международной конференции «Ломоносов-2003», М.:, МГУ, 2003, с. 7.

13. Зудин А.Б. Системы долговременного программирования. // Мир компьютерной автоматизации. М.: №3, 2003 с. 50 - 56.

14. Зудин А.Б. Концепции интеграции языков программирования и баз данных. Мир компьютерной автоматизации, М.:, № 6, 2003. с.

15. Зудин А.Б. Методы хранения объектов в системах долговременного программирования // Математическое и программное обеспечение вычислительных систем: Межвуз. сб. науч. тр. / Под ред. А.Н. Пылькина М.: Горячая линия - Телеком, 2007. с. 92-95.

16. Зудин А.Б. Системы долговременного программирования. // Качество. Инновации. Образование. 9, 2008. с. 17 -20.

17. Зудин А.Б. Модель обслуживания запросов в системах долговременного программирования // Проблемы передачи и обработки информации в сетях и системах телекоммуникаций. Материалы 16-й международной научно-технической конференции. -Рязань, 2010. с. 83 85.

18. Зудин А.Б. Модель доступа в системах долговременного программирования // XLVI Всероссийская конференция по проблемам математики, инфоматики, физики и химии. Секции математики и информатики. Тезисы докладов. М.: РУДН, 2010. с. 53-54.

19. Зудин А.Б. Система долговременного программирования // Современные информационные компьютерные технологии (mclT2010). 2 Международная научно-практическая конференция. Беларусь, Гродно, 2010.

20. Камер Дуглас Э. Компьютерные сети и Internet. Разработка приложений для Internet : Пер. с англ. М.: Изд. дом "Вильяме", 2002. -640 с.

21. Климов Г.П. Стохастические системы обслуживания. М.: Наука. 1966 - 244 с.

22. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р., Штайн К. Алгоритмы: построение и анализ. 2-е изд. -М.: Вильяме, 2005. 1296 с.

23. Матюшенко С.И., Спесивов С.С. Основы имитационного моделирования в среде GPSS WORLD. М.: Изд-во РУДН, 2006.

24. Семенов Ю.А. Сети Интернет. Архитектура и протоколы. М.:, изд. "Сирин". 1998.-424 с.

25. Слама Д., Гарбис Д., Рассел П. Корпоративные системы на основ CORBA. -М.: Издательский дом «Вильяме», 2000. 368 с.

26. Советов Б.Я. Моделирование систем. М.: Высшая школа. 1995. 372 с.

27. Спортак М., Паппас Ф. и др. Компьютерные сети и сетевые технологии, ДиаСофт, 2002. 736 с.

28. Танненбаум Э., М. Ван Стен. Распределенные системы. Принципы и парадигмы. СПб.: Питер, 2003. - 877 с.

29. Томасян А. Управление параллельной обработкой транзакций: Методы, Производительность, Анализ // Перевод. "Вычислительные Системы и Сети", 1998.

30. Ульман Дж. Основы систем баз данных: Пер. с англ. М.: Финансы и статистика. 1983. - 572 с.

31. Хелд Г. Технологии передачи данных. СПб.: Питер. 2003. - 720 с.

32. Цимбал А., Анпшна М. Технологии создания распределенных систем.

33. Для профессионалов. СПб.: Питер, 2003.- 576 с.

34. Чадин П. Многоверсионность данных и управление параллельными транзакциями / / "Открытые системы", 2005.

35. Шенк Д.Д. Руководство Novell. Технология клиент/сервер и ее приложения. М.: Лори. 1995. - 272 с.36. www.gpss.ru Имитационное моделирование с использованием GPSS.37. www.minutemansoftware.com Свободнораспространяемая версия GPSS WORLD.

36. Albano, A., Ghelli, G., Occhiuto, M. E., and Orsini, R. "A Strongly Typed, Interactive Object-Oriented Database Programming Language"

37. Astrova I., "Evaluating Persistence Models", Proceedings of the Workshop on Computer Science and Information Technologies CSIT'2000 UFA, Russia, 2000.

38. Aspect-Oriented software development network, www.aosd.net

39. The Aspect Programming Guide 1998-2002, Xerox Corporation.

40. Atkinson, M.P., Bailey, P.J., Chisholm, K.J., Cockshott, W.P. & Morrison, R., 1983. An Approach to Persistent Programming. Computer Journal 26, 4 pp 360-365.

41. Atkinson, M.P. & Morrison, R., 1985. Procedures as Persistent Data Objects. ACM Transactions on Programming Languages and Systems 7,4

42. Atkinson, M.P. & Morrison, R., 1986. Integrated Persistent Programming Systems. In Proc. 19th International Conference on Systems Sciences, Hawaii.

43. Atkinson, M.P. & Morrison, R. "Orthogonally Persistent Object Systems". VLDB Journal 4, 3 (1995) pp 319-401.

44. Cardelli, L. & MacQueen, D.B., 1988. Persistence and Type Abstraction. In Data Types and Persistence, Atkinson, M.P., Buneman, O.P. & Morrison, R. (ed.), Springer-Verlag.

45. Cardelli, L. & Wegner, P., 1985. On Understanding Types, Data Abstraction and Polymorphism. ACM Computing Surveys 17, 4.

46. Codd E. F., "Extending the Database Relational Model to Capture More Meaning", ACM Trans. Database Systems, 4, #4 (December 1979).

47. Connor, R. C. H., 1990. Types and Polymorphism in Persistent Programming Systems. Ph. D. Thesis, University of St Andrews.

48. Bancilhon F., Khoshafian, S. "A Calculus of Complex Objects", Proc. ACM SIGACT-SIGMOD Sypm. on Principles of Database Systems, 1986.

49. Bernstein, P.A., Handzilacos, N. Goodman, "Concurrency Control and Recovery in Database Systems", Addison-Wesley, 1987.

50. Checn, P."The EntityHRelationship Model — Toward a Unified View of Data", ACMP Trans, database Systems, 1, No.l (March 1976).

51. Gray, J., Reuter, A. "Transaction Processing: Concepts and Techniques", Corrected Second Printing, Morgan Kaufmann, 1993. Section 7.6.

52. Kiczales, J. Lamping, A. Mendhekar, etc. Aspect-oriented programming. Published in proceedings of the Europeen Conference on Object-Oriented Programming. Finland, Springer-Verlag LNCS 1241. June 1997.

53. Lampson, B. W., Sturgis , H. E.: "Crash Recovery in a Distributed Data Storage System". Technical report, XEROX Research, Palo Alto, June 1979.

54. McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P. & Levin, M.I., 1962. The Lisp Programmers' Manual. M.I.T. Press, Cambridge , Massachusetts.

55. Meta Object Facility (MOF) Specification. Version 1.3. March, 2000.

56. Morrison, R., Brown, A.L., Dearie, A. & Atkinson, M.P., 1990. On the Classification of Binding Mechanisms. Information Processing Letters 34.

57. O'Brien, P., Bullis, B. and Schaffert, C. "Persistent and Shared Objects in Trellis/Owl"

58. O'Neil, O. "Database Principles, Programming, Performance", Morgan Kaufmann, 1994, Section 9.5

59. Papadimitriou, C. "The Theory of Database Concurrency Control", Computer Science Press, 1986.

60. Schmidt, J.W. "Some High Level Language Constructs for Data of Type Relation", ACMP Trans. Database Systems, 2(3), Sept. 1977.

61. Sheard, T. & Stemple, D., 1989. Automatic Verification of Database Transaction Safety. ACM Transactions on Database Systems 12, 3

62. Stonebraker, M. & Kemnitz, G., 1991. The POSTGRES Next Generation Database Management System. Communications of the ACM 34, 10.

63. Stratchey, C., 1967. Fundamental Concepts in Programming Languages. Oxford University Press, Oxford.

64. Tennent, R.D., 1977. Language Design Methods Based on Semantic Principles. Acta Informática 8 pp. 97-112.68. van Wijngaarden, A., Mailloux, B.J., Peck, J.E.L. & Koster, C.H.A. 1969. Report on the Algorithmic Language ALGOL 68.