автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Разработка методики построения унифицированных трехзвенных объектно-ориентированных приложений
Автореферат диссертации по теме "Разработка методики построения унифицированных трехзвенных объектно-ориентированных приложений"
На правах рукописи Олейник Павел Петрович
РАЗРАБОТКА МЕТОДИКИ ПОСТРОЕНИЯ УНИФИЦИРОВАННЫХ ТРЁХЗВЕННЫХ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПРИЛОЖЕНИЙ
Специальность 05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук
Ростов-на-Дону 2007 г.
003065004
Работа выполнена на кафедре экономики и прикладной математики в Педагогическом институте Южного федерального университета.
Научный руководитель: доктор технических наук, профессор
Владимир Иванович Сидельников
Официальные оппоненты: доктор технических наук, профессор
Владимир Иванович Божич кандидат физико-математических наук, доцент
Людмила Юрьевна Жилякова
Ведущая организация: Южно-Российский государственный технический университет (Новочеркасский политехнический институт)
Защита состоится 27 сентября 2007 г. в Ц.ОО часов на заседании диссертационного совета К.212.208.04 по физико-математическим и техническим наукам при ФГОУ ВПО «Южный федеральный университет» по адресу: 344090, Ростов-на-Дону, пр. Стачки 200/1, корпус 2, ЮГИНФО ЮФУ, к. 206.
С диссертацией можно ознакомится в зональной научной библиотеке Южного федерального университета по адресу: 344006, г. Ростов на Дону, ул. Пушкинская, 148
Автореферат разослан » августа 2007 г.
Ученый секретарь диссертационного совета кандидат физико-математических наук, доцент
Муратова Г.В.
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы.
Современные предприятия и организации разрабатывают информационные системы для решения прикладных задач. При этом в качестве хранилища информации используются реляционные системы управления базами данных (РСУБД). В свою очередь для разработки пользовательского интерфейса применяются объектно-ориентированные языки программирования (ООЯП).
Учитывая различие в назначении реляционных баз данных (РБД) и ООЯП, возникает так называемое объектно-реляционное несоответствие (ОРН). Данный термин был введен С. Амблером1 для описания проблем, возникающих при построении корпоративных информационных систем (КИС). Один из известных подходов, позволяющих частично исключить последствия ОРН, получил название «методы объектно-реляционного отображения» (ОРО). Все методы отображения были условно поделены нами на две категории. К первой относятся методы, не имеющие таблиц в базе данных (БД), содержащих метаинформацию системы. Данные методы подробно описаны в работах С. Амблера1 и М. Флауера2.
Учитывая тенденцию добавления метаинформации в ООЯП, мы считаем, что более перспективными являются методы, поддерживающие метаинформацию в БД. Данный подход был использован в исследовании при проектировании объектного ядра в РСУБД. В настоящее время практически полностью отсутствуют работы, посвященные ОРО, поддерживающим метаинформацию. Из имеющихся работ можно выделить два цикла статей: первый принадлежит украинскому ученному В. Костра3, а второй - профессору США (и Канады) Над-карни4. Оба этих цикла посвящены применению разработанной ими модели для хранения данных в медицинских КИС. Модель получила название «Сущность-Атрибут-Значение (ЕАУ)».
Проанализированные реализации инструментов ОРО, исполь-
1 Ambler S., Agile Database Techniques: Effective Strategies for the Agile Software Developer, John Wiley & Sons, 2003,373p.
2 Флауер M„ Архитектура корпоративных программных приложений, Пер. с англ. - М.: Издательский дом «Вильяме», 2004. - 544 е.: ил. - Парал. тит. англ.
3 Костра В. В., Прокопчук Ю. А. Модели хранения первичных данных в медицинской информационной системе // Вестник ХГТУ. 2003. №2(18). С. 254-259
4 Nadkami P. М., Brandt С. A., Morse R., Matthews К., Sun К, Deshpande А. М., Gadagkar R., Cohen D. В., Miller P. L., Metadata-driven creation of data marts from an EAV-modeled clinical research database, International Journal of Medical Informatics 65, 2002,p.225-241
зующие РСУБД в качестве хранилища информации, были разделены на два класса. К первому нами отнесены инструменты, позволяющие организовать объектную систему на основе РСУБД. Здесь можно выделить два известных инструмента: 1) компоненты BOLD for Delphi5, 2) реализация технологии ECO6. К сожалению, в данных инструментах не задействованы многие широко используемые средства, имеющиеся в СУБД. При этом не предполагается использование таких элементов БД как представления, хранимые процедуры (ХП) и функции. При выборке данных происходит динамическая генерация запросов, что снижает производительность ИС.
Другой класс инструментов ОРО описывает взаимосвязь с таблицами БД на уровне объявления классов в КП, т.е. непосредственно с помощью внутренних средств языка программирования. Данный недостаток присущ рассмотренным системам Hibernate7 и EJB 3.08. При этом метаинформация об объектной системе недоступна в БД. Как следствие, часть общих процедур, манипулирующих метаинформаци-ей, невозможно перенести в среду БД.
При обсуждении ОРН С. Амблер1 указывает на то, что РСУБД оперируют понятиями нормализованных отношений и возвращают данные в виде кортежей. В свою очередь ООЯП рассматривают объекты как экземпляров классов, написанных на ОО-языке программирования. В связи с этим возникает необходимость трансформации данных, из кортежей в объекты. Одним из вариантов решения проблемы является разработка иерархии преобразователей данных (ПД) для соответствующих классов. Данное решение наиболее полно описано у М. Фаулера2. При этом в качестве примера рассматривалось клиент-серверное приложение.
Анализ существующих архитектур ИС показал, что доминирующей является трёхзвенная. В связи с этим подход, основанный на ПД, нельзя считать оптимальным, поскольку он связан с необходимостью реализовать механизм передачи объектов с сервера приложений (СП) на клиентское приложение (КП).
В литературе уделяется мало внимания проблеме реализации базовых классов предметной области. Наиболее полным руководством
5 Грибачев К. Г, Delphi и Model Driven Architecture. Разработка приложений баз данных. - СПб.: «Питер», 2004. - 352с.: ил.
6 Даниленко Е., Разработка приложений ЕСО в Borland C#BuiIder и Borland Delphi 8 for the Microsoft .Net Framework, http://rsdniu/article/devtools/ecodev.xml
7 Minter D., Linwood J., Pro Hibernate 3, Apress, 2005,264p.
8 Keith M., Schincariol M., Pro EJB 3. Java Persistence API, Apress, 2006,480p.
по данному вопросу можно считать монографию Р. Хотки9, в которой описывается применение обобщений языка С# на платформе .Net Framework 2.0. Однако описываемые реализации подходят лишь для их применения в клиент-серверных приложениях и поэтому они привязаны к графическому отображению. Кроме того, описанная иерархия классов не является последовательной. Так базовые классы системы спроектированы как параметрированные, а производные - созданы с подстановкой типов. При этом не решен вопрос как создать дочерний класс, унаследованный от последнего. В данной работе часть классов предметной области представляют собой коллекции объектов, параметрированные типом соответствующего класса-элемента. В диссертационном исследовании выделено две иерархии классов, представляющих объект как на СП, так и в КП, что позволяет на основе разработанной методики проектировать КИС на основе трёхзвенной архитектуры.
При проектировании ИС очень часто применяют плагиную архитектуру, суть которой заключается в возможности проектирования единого модуля загрузки плагинов, в которых реализована бизнес-логика приложения. Чаще всего плагины представляют собой скомпилированные dll-библиотеки и загрузка выполняется непосредственно при загрузке основного приложения10. Этот подход нельзя использовать для СП, так как он требуется физического перезапуска системы, что приводит к прерыванию выполнения клиентских запросов. В данной работе предложен альтернативный подход к реализации плагинов, которые в нашем случае представляют текстовые файлы с описанием классов на ООЯП. Этот подход требует наличия в системе (на СП) классов, позволяющих компилировать программный код в момент выполнения приложения.
Современные языки программирования, например, С#п и Java12 предоставляют данную возможность. Имеющиеся работы, описывающие возможность динамической компиляции кода не предполагают её использование при проектировании СП. Это связано с тем, что на момент компиляции и загрузки кода в память, требуется поступающие от клиентских приложений запросы ставить в очередь и начинать их вы-
9 Lhotka R., Expert С# 2005 Business Objects, Second Edition, Apress, 2006, 695p.
10 Osherove R, Creating a Plug-In Framework,
http://msdn.microsoft.com/library/default.asp7urH/library/en-u s/dnaspp/html/pluginframework.asp
11 Poore E., C# Script for .NET 2.0, http://codeproject.com/csharp/CSharpScript.asp
12 Шиддт Г., Полный справочник по Java SE б, Пер. с англ. - М.: «Диалектика-Вильяме», 2007. -1040с.: ил. - Парал. тит. англ.
полнение только после окончания компиляции. В свою очередь при поступлении запросов на перекомпиляцию кода в момент выполнения клиентских запросов требуется ставить в очередь процесс компиляции. Т.е. необходимо реализовать модуль синхронизации доступа, что является нетривиальной задачей.
В современной литературе уделяется недостаточно внимания принципам разработки графических интерфейсов КП, особенно процессу наследования таких элементов как форма. В частности, в работах Дж. Рихтера13 и Э. Троелсена14, посвященных языку программирования С# 2.0 и новейшей среде разработки Microsoft Visual Studio 2005 указывается на возможные проблемы при использовании наследования форм. Ряд сторонних фирм-разработчиков компонентов предоставляют возможность наследования. Одной из таких фирм является Developer Express15, компоненты которой применялись при разработке графического интерфейса. Все выделенные классы, используемые в КП, подробно рассмотрены в диссертационной работе. Иерархия классов может быть реализована на любом ООЯП с соответствующей заменой необходимых базовых классов, предоставляемых системой.
Таким образом, перед разработчиком КИС возникает задача разработки методики построения унифицированных трёхзвенных объектно-ориентированных приложений, имеющих развитый графический интерфейс и манипулирующих данными, физически расположенными в РСУБД. В данной работе рассмотрены все ключевые аспекты проектирования элементов описанной архитектуры и представлен процесс интеграции отдельных элементов в рамках единой ИС.
Объектом исследования являются трёхзвенные приложения, разрабатываемые на ООЯП и манипулирующие данными, получаемыми из РСУБД.
Предметом исследования являются:
• методика построения трёхзвенных приложений;
• методика проектирования и реализации базовых классов графического интерфейса клиентского приложения;
• организация объектной системы на основе реляционной БД;
• принципы построения графического интерфейса, отобра-
13 Рихтер Дж., CLR via С#. Программирование на платформе Microsoft .NET Framework 2.0 на языке С#. Мастер-класс. / Пер. с англ. — М.: Издательство «Русская Редакция»; СПб.: Питер, 2007,—656стр.: ил.
14 Троелсен Э„ Язык программирования С# 2005 и платформа .Net 2.0.3-е издание. : Пер. с англ. - М.: ООО "ИД. Вильяме", 2007. - 1168 с. : ил. - Парал. тит. анлг.
13 Сайт корпорации DevExpress http://www.devexpress.com
жающего данные.
Методика исследования. Метамодель объектной системы реализована в среде целевой СУБД Microsoft SQL Server 2005. Для реализации СП и клиентского приложения использован основной язык программирования платформы .Net Framework 2.0 С#
Цель и задачи работы.
Целью диссертационной работы является разработка методики построения унифицированных трёхзвенных объектно-ориентированных приложений, применение которой для проектирования КИС позволит снижать затраты как на модификацию, так и на добавление новой бизнес-логики предметной области.
Для достижения поставленной цели решаются следующие задачи:
разработка методики построения объектной оболочки на основе РСУБД;
создание единой архитектуры процедур выборки данных;
проектирование механизма унифицированной фильтрации данных;
реализация архитектуры СП, позволяющей динамически расширять ее функциональность без физического перезапуска системы;
разработка иерархии классов, позволяющей выполнять преобразования реляционного набора данных в объекты предметной области;
проектирование иерархии классов для объектов, отображаемых в клиентском приложении;
реализация механизма преобразования данных, получаемых с
СП.
Научная новизна.
1. Предложенная общая методика построения трехзвенных приложений отличается от известных тем, что базируется на синтезе сформулированных в диссертационном исследовании подходов и методов построения каждого из трех ее звеньев и позволяет разрабатывать КИС, не зависящие от предметной области.
2. Разработан метод ОРО, отличающийся от известных отсутствием недостатков, присущих методам ОРО с поддержкой метаин-формации (отсутствие строгой типизации значений атрибутов, сохранение всех значений атрибутов в единой таблице БД), применение которого позволяет поддерживать метаинформацию объектной системы и программно генерировать такие элементы информационной системы как представления, табличные функции (ТФ), хранимые процедуры (ХП) и т.п., что способствует автоматизации выполнения рутинных
операций и сокращению времени и затрат на разработку КИС.
3. Разработана унифицированная архитектура хранимых процедур выборки данных, извлекающая информацию из объектной системы, реализованной в РБД, и основанная на метаинформации объектной системы, что выгодно отличает полученную реализацию от имеющихся аналогов за счёт упрощения процесса отладки, модификации и доработки программного кода.
4. С целью формирования механизма фильтрации данных на клиентском приложении реализован алгоритм представления логических выражений с помощью языка XML, что позволяет унифицировать модель БД относительно единой структуры и, тем самым, даёт возможность применения метамодели в различных областях.
5. Впервые разработана архитектура СП, позволяющая динамически расширять функциональность системы без её физического перезапуска. Тем самым решена ключевая проблема разработки крупных трёхзвенных ИС, заключавшаяся в необходимости перезапуска сервера приложений для расширения его функциональных возможностей.
6. Предложен механизм реализации плагинов в виде текстовых файлов на ООЯП, отличающийся от известных наличием возможности динамической компиляции кода, что позволяет сокращать цикл разработки и развёртывания нового функционала на СП за счёт переноса части операций (компиляции кода, загрузки dll-библиотек в память), непосредственно на СП и, тем самым, уменьшать время и затраты на разработку программного продукта.
7. Разработан и реализован алгоритм синхронизации доступа к СП, отличающийся от известных наличием возможности ранжировать пользователей системы на основе выполняемых функций.
8. Разработаны и реализованы иерархии классов на ООЖ1:
• отличающаяся от известных наличием возможности применять классы не только в клиент-серверных, но и в трехзвенных приложениях и позволяющая выполнять преобразование данных из реляционных кортежей в объекты предметной области;
• позволяющая представлять данные в КП и отличающаяся от известных тем, что классы не содержат в своём составе методов, необходимых для извлечения данных из БД, что решает важную проблему разработки ПО, заключающуюся в зависимости между собой отдельных элементов кода;
• предназначенных для создания графического пользовательского интерфейса. При этом использовалось наследование графиче-
ских форм, что позволяет создавать системы на основе принципа повторного использования кода и обеспечивает возможность применения ранее спроектированных классов. Для задания значений внешних ключей спроектированы дополнительные формы, позволяющие избавить пользователя от необходимости занесения значений объектных идентификаторов при выполнении фильтрации данных и, тем самым, отличает полученную реализацию от имеющихся, предполагающих необходимость задания суррогатных ключей.
Практическая ценность.
В работе рассмотрена реализация всех элементов трёхзвенной архитектуры. При проектировании СП и КП использован язык программирования С# 2.0. Для построения структуры БД применена СУБД Microsoft SQL Server 2005. Разработанная методика может быть применена к другим ООЯП, поддерживающим метаинформацию, например, к Java. Объектная метамодель системы может быть реализована в любой современной РСУБД, например, в Oracle и DB2.
Элементы системы могут быть использованы при построении не только трёхзвенных, но других видов приложений, что достигнуто за счёт гибкости и независимости разработанных решений. В частности, классы, преобразующие реляционный набор данных в объекты бизнес-логики, присутствующие на СП, необходимо перенести на КП (в случае реализации архитектуры клиент-сервер). Разработанная иерархия графических форм может быть применена в любом приложении, для которого требуется развитый интерфейс.
Унифицированный механизм фильтрации данных может быть использован не только в среде РСУБД, но и в других видах СУБД.
Разработанный СП может быть использован в любой КИС, для которой критичен простой и требуется высокая производительность.
На основе и с использованием предложенной методики созданы три информационные системы:
1. «ПайУголь» - программный комплекс, выполняющий учёт и распределение пайкового угля для жителей Ростовской области;
2. «AxSilo» - программно-аппаратный комплекс автоматизированного приёма и учёта сельскохозяйственной продукции.
3. «Фурнитура» - программный комплекс, учитывающий номенклатуру фурнитуры, используемой при пошиве джинсовой одежды.
Проведенные исследования подтверждаются 3 актами о внедрении разработанной методики. Результаты, полученные в ходе диссертационного исследования, частично использованы в курсе «Информа-
ционные технологии» в Педагогическом институте ЮФУ.
Апробация результатов работы.
Результаты работы докладывались и обсуждались на следующих научных конференциях:
• IV Всероссийская научно-практическая конференция студентов «Молодежь и современные информационные технологии» (Томск, ТПУ, 2006);
• X Всероссийская научно-практическая конференция «Научное творчество молодёжи» (Анжеро-Судженск, 2006);
• IV Международная научно-практическая конференция «Теория, методы проектирования, программно-техническая платформа корпоративных информационных систем» - 2 доклада (Новочеркасск, ЮРГТУ, 2006);
• I Международная научно-практическая конференция «Передовые научные разработки - 2006» (Днепропетровск, 2006);
• VII Международная научно-практическая конференция «Компьютерные технологии в науке, производстве, социальных и экономических процессах» - 2 доклада (Новочеркасск, ООО НПО «Темп», 2006);
• VII Международная научно-практическая конференция «Моделирование. Теория, методы и средства» (Новочеркасск, ЮРГТУ, 2007).
Публикации. Основные результаты диссертации опубликованы в 13 работах - научных журналах и сборниках конференций общим объемом 4,5 пл., в том числе 5 статей объемом 2,7 п.л. в научных журналах, рекомендованных ВАК РФ для опубликования основных результатов докторских диссертаций. Имеется 1 свидетельство об официальной регистрации программы для ЭВМ.
Структура и объём диссертации. Диссертационная работа состоит из введения, четырех глав, заключения, списка использованных источников из 114 элементов и 6 приложений. Основной текст диссертационной работы изложен на 218 машинописных страницах, включая 84 рисунка и 4 таблицы.
ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении обосновывается актуальность темы диссертации, формулируется цель исследования, раскрывается научная новизна и практическая значимость полученных результатов.
Первая глава диссертации состоит из пяти параграфов. В ней дается обзор существующих технологий и особенностей построения
кис.
Цель главы рассмотреть все элементы информационных систем (ИС) от применяемой модели баз данных до языков программирования, используемых при реализации клиентских приложений.
В первой части главы рассматриваются существующие на сегодняшний день модели баз данных (МБД) и применяемые реализации СУБД. Рассматриваются достоинства и недостатки каждой системы, их применимость в контексте современных приложений. Внимание уделяется иерархической, сетевой, реляционной, объектно-ориентированной, объектно-реляционной и слабоструктурированной моделям данных. Благодаря наличию ряда ключевых достоинств именно реляционная модель данных (РМД) получила наибольшее распространение (рис. 1).
А "'л-• Т -•fc.
F1(PK) F2 F3 F4 F5 F6 F7
1 3н1 Зн2 ЗнЗ Зн4 Зн5 Знб
2 Зн11 Зн12 3н13 Зн14 Зн15 Зн16
3 Зн21 Зн22 3н23 Зн24 Зн25 Зн26
4 3н31 3н32 ЗнЗЗ 3н34 3н35 ЗнЗб
5 Зн41 Зн42 3н43 Зн44 Зн45 Зн46
Степень
; Первичный ключ
Внешний ключ
: S
F1(PK) F2 F3 F4(FK)
1 Зн51 Зн52 2
2 Зн61 Зн62 5
Рис. 1. Основные составляющие РМД Во второй части главы обсуждаются наиболее распространённые архитектуры приложений. Рассмотрены достоинства и недостатки следующих архитектур: 1) локальные приложения; 2) файл/сервер; 3) клиент/сервер; 4) клиент/сервер на базе web; 5) трёхзвенная архитектура; 6) распределённая архитектура БД; 7) многозвенная архитектура распределённых объектов.
Из анализа становится очевидным, что наибольшее распространение получила трёхзвенная архитектура, позволяющая реализовать бизнес-логику предметной области на едином звене, т.е. на сервере приложения (СП) (рис. 2).
При этом клиентское приложение (КП) предоставляет развитый графический интерфейс пользователя (ГИП).
Рис. 2. Трёхзвенная архитектура
В третьей части главы рассмотрены основные преимущества ООЯП:
• сопровождение ПО осуществляется в конкретном месте;
• объектная технология предоставляет компромиссное решение проблем качества и производительности;
• объектно-ориентированное программирование (ООП) вообще и наследование в частности позволяют строго разделить систему на модули;
• распределение работы над проектом происходит естественным образом;
• создание прототипов и постоянная эволюция системы значительно упрощают ее сопровождение;
• модель передачи сообщений упрощает описание интерфейсов между модулями и внешними (или взаимодействующими) системами;
• переход от концептуального моделирования, через анализ и проектирование, к кодированию почти незаметен;
• сокрытие информации посредством инкапсуляции позволяет создавать безопасные системы.
Благодаря наличию этих преимуществ ООЯП стали доминировать при разработке КИС.
Таким образом, с одной стороны в качестве хранилища информации используются РБД, а с другой - для разработки приложений применяют ООЯП. В связи с различиями в представлении информации в РМД и в ООЯП, возникает так называемое ОРН.
В четвёртой части главы рассмотрены основные последствия ОРН, выявлены основные причины появления, и возможности уменьшения воздействий при проектировании КИС. Наиболее часто используемым способом решения проблем ОРН является организация объектной системы в РБД. Данные методы получили название методов
объектно-реляционного отображения (ОРО).
В пятой части главы методы ОРО разделены на две категории: 1) ОРО без поддержки метаинформации; 2) ОРО с поддержкой мета-информации.
Под метаинформацией объектной системы в РБД подразумевается набор взаимосвязанных таблиц, в которых хранятся данные обо всех классах, атрибутах, типах допустимых значений, иерархия наследования и пр.
При рассмотрении первой группы методов были описаны следующие: Внедрённое значение (Embedded Value), Крупный сериали-зованный объект (Serialized LOB), Наследование с одной таблицей (Single Table Inheritance), Наследование с таблицами для каждого класса (Class Table Inheritance) и Наследование с таблицами для каждого конкретного класса (Concrete Table Inheritance).
При изучении второй группы методов рассмотрены: отображение метаданных (Metadata Mapping) и Сущность-Атрибут-Значение (Entry-Attribute-Value, EAV).
Наиболее перспективными, на наш взгляд, являются методы ОРО, поддерживающие метаинформацию. Наиболее проработанным
Рис. 3. Метод ОРО Entry-Attribute-Value
На рис. 3 представлена как метамодель системы, описывающая наличие классов и атрибутов в системе, так и структура таблиц, позволяющих хранить объекты предметной области.
Данная модель в имеющейся реализации не пригодна для построения КИС из-за того, что значения атрибутов не типизированы, т.е. все атрибуты сохраняются в одной таблице. Не уделено внимание возможности сохранения истории изменения значения. Кроме того, в структуру таблиц БД занесено не достаточно метаинформации.
Выводы по первой главе. Рассмотрены существующие МБД и имеющиеся реализации СУБД, применяемые при проектировании КИС. Благодаря наличию ряда ключевых достоинств, широкое распространение получила РМД.
При разработке ИС чаще всего применяют ООЯП, поддерживающие парадигму компонентного программирования. Из-за различных аспектов применения РМД и ООП возникает ОРН. Для преодоления этого несоответствия разработаны различные методы ОРО. позволяющие организовать таблицы РБД таким образом, что появляется возможность реализовать принципы ООП. Рассмотрены существующие методы ОРО. систематизированные по наличию метаинформа-ции.
При рассмотрении существующих архитектур приложений, отмечалось, что наибольшее распространение получила трёхзвенная архитектура. В настоящее время отсутствуют работы, в которых описаны архитектурные решения, принятые при реализации каждого звена описываемой архитектуры. Как правило, предлагается подход к реализации одного конкретного элемента и не уделяется внимание интеграции с остальными звеньями. Проблеме проектирования, реализации и интеграции каждого элемента трехзвенной архитектуры посвящены 2-4 главы данной работы.
Вторая глава диссертации состоит из четырёх параграфов. В ней рассмотрена организация объектной системы на основе РБД.
Цель главы представить единое объектное ядро, рассмотреть состав и структуру таблиц, отведённых для представления метаин-формации и разработать механизмы хранения объектов и методы их извлечения.
В первой части главы разработана метамодель объектной системы, реализованная в СУБД SQL Server 2005 (рис. 4).
Данная метамодель является существенно модифицированной версией метода Сущность-Атрибут-Значение (рис. 3). Все значения атрибутов строго типизированы, т.е. атрибуты могут быть не только простых типов (символы, целые числа и т.д.), но их типами могут быть и классы.
Для реализации данной возможности между таблицами Attribute и Class имеются две связи: первая указывает принадлежность атрибута к конкретному классу, а вторая позволяет задать тип атрибута, который также является классом.
Иерархия классов организуется с помощью рекурсивного внешнего ключа таблицы Class. Для группировки классов по выполняемым функциям введена таблица Class Category.
Во второй части главы рассмотрены состав и структура таблиц, позволяющие сохранять объекты и значения атрибутов в РБД. реализованная в СУБД SQL Server 2005 (рис. 5).
Рис. 5. Структура таблиц, используемых для хранения объектен
Для каждого простого класса выделена отдельная таблица. Это выгодно отличает полученную реализацию от метода Сущность-Атрибут-Значение. Количество таблиц, выделенных для хранения значений атрибутов, соответствует количеству типов данных, присутствующих в среде целевой СУБД.
Структура всех таблиц одинакова, что необходимо для унификации методов извлечения данных.
В третьей части главы уделяется внимание проблеме сохранения истории изменения значений атрибутов. Для предоставления данной возможности во все таблицы БД, предназначенных для хранения значений атрибутов классов, добавлена два поля: State и TS. Первое поле указывает состояние записи. Если в данном столбце присутствует значение 0, то значение атрибута является текущим. В случае модификации значения в атрибуте, происходит копирование старого значения в ту же самую таблицу и выставление соответствующего значения в поле State.
В реализации предполагается сохранять устаревшие записи в той же таблице, что и активные. Несмотря на увеличение объёма таблиц, снижается время на извлечение исторических записей. Кроме того, по полю State построен кластерный индекс, что позволяет увеличить выборку активных записей. Поле TS типа timestamp позволяет отследить изменение конкретной записи.
В четвёртой части главы рассмотрена архитектура унифицированных процедур выборки данных. На рис. 6 представлен пример разработанной архитектуры, позволяющей выбирать данные о классах.
При реализации архитектуры необходимо было решить две противоположные задачи: с одной стороны требуется обеспечить высокое быстродействие системы, что возможно лишь минимизацией динамически генерируемых SQL запросов, а с другой - клиентскому приложению необходимо предоставить возможность фильтрации данных по значениям атрибутов любых классов, присутствующих в системе, что требует генерации динамического программного кода.
Данные физически хранятся в трёх таблицах: Class, ClassType, ClassCategory. На основе таблиц строится представление ClassView. Достоинством представления является то, что оно физически хранится в откомпилированном виде на сервере СУБД. Т.к. в представление невозможно передать параметры, то данные из представления выбираются в табличной функции (ТФ).
В реализации многих СУБД, в том числе и в MS SQL Server 2005 запрещается динамическое выполнение SQL кода из функций.
Поэтому введено ещё одно звено - хранимая процедура (ХП), которая вызывается непосредственно из СГ .
О
«stored procedure»
+ ClassProcView(@Filter Xml): Table
«table function»
+ ClassFuncTable(@Filter Xml): Table
ClassView «view»
+ ClassNo: bigint + SysName : varchar(70) + Description: varchar(IOO) + BaseClassNo: bigint + BaseClassSysName: varchar(70) + ClassTypeNo: bigint + ClassTypeSysName: varchar(70) + ClassCategoryNo: bigint + ClassCategorySysName :varchar(70 + State: smallint + TS: Timestamp
CiassType «table»
+ ClassTypeNo : bigint «PK» + SysName : varchar(70) +■ Description : varchar(100) + State: smallint + TS : Timestamp_
Class «table»
+ ClassNo : bigint «PK» + SysName : varchar(70) + Description: varchar(IOO) + BaseClassNo : bigint «FK» + ClassTypeNo : bigint «FK» + ClassCategoryNo : Bigint «FK» + State: smallint + TS : Timestamp
-->
ClassCategory «table»
+ ClassCategoryNo : bigint «PK» + SysName: varchar(70) + Description: varchar(IOO) + State: smallint + TS: Timestamp
Рис. 6. Унифицированная архитектура процедур выборки данных Для передачи параметров в ХП (и в ТФ) используется переменная типа XML. Ее структура представлена на рис. 7.
На основе значений, присутствующих в данной переменной формируется SQL запрос к БД. Предложенный подход позволяет оптимизировать алгоритмы разбора условных выражений и, тем самым, увеличить скорость выполнения запросов.
С целью преобразования переданного XML документа в SQL запрос предложен механизм построения дерева логического выражения, которое для представленного выражения (рис. 7) примет вид, изображённый на рис. 8.
<Criterias> <0r> <And>
<Criteria Name="a" Operator="equal">
<Item Value="5"/> </Criteria>
<Criteria Narae="b" Operator="equal">
<Item Value="4"/> </Criteria> </And>
<Criteria Name="c" Operator="notequal">
cltem Value="17"/> </Criteria> <And>
<Criteria Name="d" Operator="like"> <Item Value="abc%"/> </Criteria>
<Criteria Name="e" Operator="in"> <Item Value="l"/> <Item Value="4"/> <Item Value="6"/> </Criteria> </And> </0r>
</Criterias>
Рис. 7 - Логическое выражение (a=5 andb=4) or col7 or (d like abc%' and e in (1,4,6))
Рис. 8 - Дерево логического выражения После соответствующего обхода дерева на выходе получим SQL выражение.
Выводы по второй главе. Рассмотрены недостатки самого распространённого метода ОРО, поддерживающего метаинформацию объектной системы, получившего название Сущность-Атрибут-Значение. Разработан новый метод ОРО, свободный от отмеченных недостатков. Представлена метамодель объектной системы, сохраняющая всю необходимую информацию. Описаны состав и структура выделенных таблиц, внешние ключи и связи. Ключевой особенностью реализации является строгая типизация значений атрибутов, что достигнуто за счёт введения отдельной таблицы для каждого типа данных, присутствующего в РСУБД. Архитектура системы рассмотрена на примере реализации в СУБД Microsoft SQL Server 2005. Уделено
внимание проблеме сохранения истории изменения значений атрибутов. Рассмотрена архитектура унифицированных ХП, позволяющих извлекать информацию из объектной системы. Для передачи условия фильтрации данных используется XML документ.
Третья глава диссертации состоит из четырёх параграфов. В ней рассмотрена архитектура СП, поддерживающего динамическое расширение функциональности.
Цель главы представить архитектуру СП, позволяющего расширять свою функциональность без физического перезапуска, рассмотреть механизм реализации плагинов, механизм преобразования данных из реляционного набора в объекты.
В первой части главы разработана общая архитектура СП позволяющая динамически расширять функционал без физического перезапуска системы (рис. 9).
Рассмотрим модули, присутствующие в реализации:
1. Модуль синхронизации доступа управляет очередями запросов на создание бизнес-объектов и запросов на перезагрузку плагинов.
2. Модуль компиляции программного кода осуществляет выбор подходящего компилятора для исходных кодов плагина, компиляцию и загрузку в память откомпилированной dll-библиотеки.
3. Модуль обработки запросов создаёт соответствующие объекты для выполнения запросов к БД.
4. Модули расширений (плагины) необходимы для реализации бизнес-логики приложений._
Корпоративный сервер приложений
Модуль синхронизашш доступа
Менеджер синхронизации
Очередь запросов создания объектов
Очередь запросов ■^перезагрузки плагинов
Модуль обработки запросов
Запрос, не возвращающий объектов
Запрос, возвращающий единственный объект
Запрос, возвращающий коллекцию объектов
Модуль компиляции программного кода
Менеджер КОМПИЛЯЦИИ •-4 Файл программного кода 11
Загрузчик классов --¡( компилятор ¡МБиблиотеки|]
Язык программирования |1
Модуль расширений (плагин)
' Серверный преобразователь _данных_
Объект переноса данных
Коллекция объектов переноса данных
Рис. 9 - Архитектура сервера приложений В существующих работах отсутствует описание возможности применения динамической компиляции программного кода на СП. Причина в том, что данная функциональность требует проектирования
модуля синхронизации доступа. В диссертации разработан алгоритм синхронизации, позволяющий остановить выполнение запросов, поступающих от КП на момент перезагрузки плагинов.
Во второй части главы рассмотрены интерфейсы, выполняющие запросы к БД (рис. 10).
Рис. 10 - Интерфейсы выполнения запросов к БД
В соответствии с принципами ООП, разработан базовый интерфейс, представляющий запрос к БД. От него унаследованы три дочерних интерфейса. Интерфейс 1Ехеси1ег]ЧопС2иегу позволяет выполнить запрос, не возвращающий результат на СП. 1Ехеси1:ог8са1аг предназначен для возвращения одного объекта бизнес-логики в качестве результата выполнения запроса. Классы, реализующие 1Ехес1йогВтсИг^Ыз!:, возвращают коллекцию взаимосвязанных объектов.
В третьей части главы рассмотрена иерархия классов, необходимых для реализации модулей расширений (плагинов) для СП. Каждый плагин состоит как минимум из трёх классов (рис. 11):
1) Серверный преобразователь данных выполняет конвертацию результата запроса к РБД из набора записей в коллекцию объектов;
2) Объект переноса данных реализует бизнес-логику приложения, инициализируется значениями из полей таблиц БД и передаётся клиентскому приложению;
3) Коллекция объектов переноса данных представляет собой список объектов и необходима для последующей передачи на КП.
Рис. 11 — Структурные элементы модуля расширений
Введение трёх иерархий классов позволяют снизить воздействия ОРН. В отличие от имеющихся работ, все описанные классы не привязаны непосредственно к интерфейсу пользователя, так как их использование предполагается только на СП. Иерархия классов, написанных на языке СМ 2.0, представлена на рис 12.
Рис. 12 - Базовые классы, используемые дня преобразования данных
При реализации классов применялись обобщения (generic). Тем самым достигается единообразное представление всех элементов независимо от глубины иерархии классов, что отсутствует в имеющихся реализациях.
Четвёртая часть главы посвящена проблеме применения шаблонов проектирования при реализации СП. Шаблоны проектирования (ШП) - это многократно используемые решения широко распространённых проблем, возникающих при разработке программного обеспечения.
Все объекты, реализуемые в модулях расширений, создаются с помощью экземпляра класса ExecuterFactory. Концепция создания объектов в соответствии с переданными параметрами является реализацией паттерна проектирования Factory Method (Метод фабрики). Так как все классы создаются с помощью одного единственного экземпляра ExecuterFactoiy, то данный класс реализован в виде ШП Singleton (Одиночка). При этом была использована много поточная версия шаб-
лона Double-Checked Locking (Двойная проверка с блокировкой).
Управление плагинами и создание удалённых объектов построено по следующему принципу:
1) СП управляет загрузкой и компиляцией плагином;
2) КП может только запрашивать создание удалённых объектов.
Проведя аналогию с шаблоном Read-Only Interface (Интерфейс,
предназначенный только для чтений), можно сделать вывод, что клиентское приложение выполняет только чтение данных, а СП может выполнять как чтение, так и изменение (перекомпиляция плагинов). Так как клиент взаимодействует с серверным объектом только через интерфейс IExecuterFactory, ему запрещено вызывать методы изменения. Для управления синхронизацией и блокировкой клиентских запросов в момент выполнения компиляции и загрузки плагинов реализован ШП Read/Write Lock.
Выводы по третьей главе. Разработана общая архитектура СП, позволяющего динамически расширять его функциональность. Представлено назначение отдельных модулей и способы их взаимодействия между собой. Описан алгоритм синхронизации доступа к СП.
Выделена иерархия интерфейсов, позволяющих выполнять запросы к БД. Имеются интерфейсы, позволяющие выполнять запросы не возвращающие данных в КП, запросы возвращающие как единственный объект, так и коллекцию связанных между собой объектов.
Каждый плагин состоит как минимум из трёх классов используемых для представления единого объекта предметной области, коллекции взаимосвязанных объектов и серверного преобразователя данных, выполняющего конвертацию реляционных кортежей в объекты. Данным способом уменьшаются воздействия ОРН. Учитывая большую популярность ШП, было принято решение реализовать основную функциональность СП на их основе.
Чётвёртая глава диссертации состоит из трёх параграфов. В ней рассмотрена архитектура КП, последнего звена трёхзвенной архитектуры.
Цель главы разработать архитектуру КП, рассмотреть механизмы получения и сохранения объектов с СП, представить иерархию классов преобразователей данных (ПД), спроектировать иерархию классов, позволяющих организовать развитый графический интерфейс пользователя (ГИП).
В первой части главы рассмотрены классы предметной области, которые представляют бизнес-объекты на стороне КП. Выделенные
базовые классы предметной области изображены на рис. 13. Так как
классы предназначены для отображения информации, то класс, представляющий единственный объект реализует интерфейс IeditableObject, позволяет редактировать свойства объекта через графические редакторы. Класс, представляющий связанный список объектов предметной области (BaseClientBusinessObjectList), унаследован от класса библиотеки .Net Framework 2.0 BindingList, что позволяет отображать данные в таком графическом элементе как Grid.
Во второй части главы рассмотрены ПД, получающие объекты с СП и преобразующие их в классы предметной области и соответствующие связанные списки объектов. Корневым классом всех клиентских ПД является AbstractClientBusinessMapper (рис. 13).
В рассмотренной иерархии различаются классы представляющие единственный объект предметной области и связанный список объектов, поэтому для каждого класса разработаны соответствующие преобразователи.
BaseClientBusinessMapperObject предназначен для получения единственного объекта с СП и преобразования его в объект предметной области. Класс параметрирован двумя типами: первый представляет собой класс на СП, а второй - класс в клиентском приложении.
Рис. 13 - Базовые классы предметной области Для извлечения списка объектов введён преобразователь
ВазеСНепгВштеБзМаррегОЬуесЛГлз!;, получающий коллекцию объектов с СП и преобразующий его в список, пригодный для вывода на
(Графический интерфес пользователя
t t
Клиентский преобразователь данных 11
t А .t I
Список объектов предметной области Объект предметной области Р
Клиентское приложение
Коллекция объектов переноса данных
-Г~
X
Объект переноса данных
[Серверный преобразователь данных"
Наборы данных
SQL запросы
Сервер приложений Сервер СУБД
Объектная надстройка
Реляционная база данных
Рис. 14 - Модель передачи данных
Клиентский преобразователь данных получает информацию с соответствующего серверного преобразователя и манипулирует необходимыми объектами, присутствующими на СП.
В третьей части главы рассмотрена иерархия базовых классов, используемых при проектировании ГИП (рис. 15).
Рассмотрим основные достоинства выделенной иерархии форм:
1. Введение единой базовой формы для всей иерархии (AbstractForm). Данный подход позволит воспользоваться ключевой особенностью объектно-ориентированной парадигмы разработки ПО - наследованием.
2. Унификация управления элементами и всей формой в целом через единый класс (компонент FormManager). Разработка единой «точки доступа» ко всей функциональности формы, что соответствует реализации шаблона проектирования Фасад (Facade).
3. Единое управление расположением компонентов на форме (BaseLayoutForm).
4. Развитые возможности по представлению набора данных. Необходимо предусмотреть возможность как представления данных в виде таблицы (BaseGridForm), так и данных, имеющих иерархические
связи в виде дерева (ВазеТгееРогш).
Рис. 15 - Иерархия графических форм в приложении
5. Поддержка возможности редактирования одной записи (ВазеАиРогт).
6. Наличие форм с подстановочными данными (ВаэеОпсИюокир и ВазсТгееЫйЬоокирРогт). Чтобы избавить пользователя системы от необходимости внесения значений в поля внешних ключей, требуется разработать соответствующие формы, поддерживающие данную функциональность.
Выводы по четвёртой главе. Разработана общая архитектура базовых классов предметной области, описаны достоинства, появившиеся за счёт применения обобщений для реализации иерархии. Описан состав и структура классов, позволяющих выполнять преобразования данных из бизнес-объектов, созданных на СП в объекты предметной области, функционирующих на клиентском приложении и предназначенных для отображения информации в ГИП.
В заключении сформулированы результаты исследования.
ОСНОВНЫЕ РЕЗУЛЬТАТЫ, ВЫНОСИМЫЕ НА ЗАЩИТУ
На основе сформулированной методики построения приложений:
1. Разработана модель объектной системы на основе РСУБД;
2. Спроектирована архитектура унифицированных процедур выборки данных;
3. Разработан сервер приложений, поддерживающий динамическое расширение функционала без его физического перезапуска;
4. Спроектирована архитектура механизма преобразования данных из реляционного набора в коллекцию классов;
5. Реализована архитектура базовых классов графического приложения, отображающего данные в клиентском приложении.
СПИСОК РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕРТАЦИИ
1. Олейник П.П. Представление метамодели объектной системы в реляционной базе данных // Известия высших учебных заведений. Северо-Кавказский регион. Спецвыпуск «Математическое моделирование и компьютерные технологии» 2005. С. 3-8
2. Олейник П.П. Критерии оптимальности алгоритма сохранения истории записей в реляционной БД // Молодёжь и современные информационные технологии: сборник трудов IV Всероссийской научно-практической конференции студентов, аспирантов и молодых учённых. Томск, 28 февраля - 2 марта 2006 г. - Томск: Изд-во ТПУ, 2006. С. 393-395
3. Олейник П.П. Организация метамодели объектной системы на основе реляционной СУБД // Научное творчество молодёжи: Материалы X Всероссийской научно-практической конференции (21-22 апреля 2006 г.) Ч. 1. - Томск: Изд-во Том. ун-та, 2006. С. 87-88
4. Олейник П.П. Критерии выбора языка программирования для реализации корпоративного сервера приложений // Теория, методы проектирования, программно-техническая платформа корпоративных информационных систем: Материалы IV Междунар. науч.-практ. конф., г. Новочеркасск, 26 мая 2006 г. / Юж.-Рос. гос. техн. ун-т. (НПИ). - Новочеркасск: ЮРГТУ, 2006. С. 94-98.
5. Олейник П.П. Внутренняя архитектура корпоративного сервера приложений // Теория, методы проектирования, программно-техническая платформа корпоративных информационных систем: Материалы IV Междунар. науч.-практ. конф., г. Новочеркасск, 26 мая 2006 г. / Юж.-Рос. гос. техн. ун-т. (НПИ). - Новочеркасск: ЮРГТУ, 2006. С. 27-29.
6. Олейник П.П. Проблема выбора оптимального языка программирования для реализации программного продукта // Матер1али V М1жнародно1 науково-практично! конференциконференцй «Дина-мжа наукових дослщжень - 2006». Том 7. Дтпропетровськ: Наука I освгга, 2006. С.67-69.
7. Сидельников В.И., Олейник П.П. Метод представления истории изменения данных // Информационные технологии. Теоретический и прикладной научно-технический журнал. 2006. №7. С. 37-48.
8. Олейник П.П. Об одном способе реализации базовой архитектуры управления данными // Компьютерные технологии в науке, производстве, социальных и экономических процессах: Материалы VII Междунар. науч.-практ. конф., г. Новочеркасск, 17 нояб. 2006 г.: В 3 ч.
/ Юж.-Рос. гос. техн. ун-т. (НПИ). - Новочеркасск: ООО НПО «Темп», 2006. - Ч. 2. С. 46-49.
9. Олейннк П.П. Об одном способе реализации трёхзвенного приложения // Компьютерные технологии в науке, производстве, социальных и экономических процессах: Материалы VII Междунар. науч.-практ. конф., г. Новочеркасск, 17 нояб. 2006 г.: В 3 ч. / Юж.-Рос. гос. техн. ун-т. (НПИ). - Новочеркасск: ООО НПО «Темп», 2006. - Ч. 2. С. 43-46.
10. Олейник П.П. Декларативный подход к реализации шаблона проектирования Singleton // Информационные технологии и вычислительные системы. 2006. №4. С. 45-51.
11. Олейник П.П. Практические аспекты реализации многопоточного сервера приложений // Информационные технологии. Теоретический и прикладной научно-технический журнал. 2007. №1. С. 4750.
12. Олейник П.П. Унифицированный механизм представления логических выражений // Моделирование. Теория, методы и средства: Материалы VII Междунар. науч.-практ. конф., г.Новочеркасск, 6 апр. 2007 г.: В 3 ч. / Юж.-Рос. гос. техн. ун-т (НПИ). - Новочеркасск: ЮР-ГТУ, 2007.-Ч.З. С. 67-71.
13. Олейник П.П. Применение параметрированных типов при реализации базовых классов предметной области // Информационные технологии. Теоретический и прикладной научно-технический журнал. 2007. № 8. С. 14-17.
14. Олейник П.П. Многопоточный сервер приложений, поддерживающий динамическую компиляцию модулей расширений (SharpArchitect Application Server), Свидетельство об официальной регистрации программы для ЭВМ № 2006613503, 9 октября 2006 г.
Оглавление автор диссертации — кандидата технических наук Олейник, Павел Петрович
ВВЕДЕНИЕ.
ГЛАВА 1. ОСОБЕННОСТИ РЕАЛИЗАЦИИ КОРПОРАТИВНЫХ ПРИЛОЖЕНИЙ.
1.1. модели баз данных и реализации СУБД.
1.2. подходы к организации приложений управления данными.;.
1.3. преимущества объектно-ориентированного программирования.
1.4. Объектно-реляционное несоответствие.
1.5. Методы объектно-реляционного отображения.
1.6. выводы по главе.
ГЛАВА 2. ОРГАНИЗАЦИЯ ОБЪЕКТНОЙ СИСТЕМЫ В РБД.
2.1. Организация объектной метамодели на основе реляционной СУБД MS SQL Server
2.2. Организация хранения значений атрибутов в РБД.
2.3. Представление истории изменения объектов.
2.4. Методика построения унифицированных хранимых процедур выборки данных.
2.5. выводы по главе.
ГЛАВА 3. АРХИТЕКТУРА КОРПОРАТИВНОГО СЕРВЕРА ПРИЛОЖЕНИЙ, ПОДДЕРЖИВАЮЩЕГО
ДИНАМИЧЕСКОЕ РАСШИРЕНИЕ ФУНКЦИОНАЛЬНОСТИ.
3.1. Общая архитектура СП.
3.2. Иерархия классов, выполняющих запросы к БД.
3.3. Модель классов преобразования реляционного набора в объекты переноса данных.
3.4. Применение шаблонов проектирования при реализации корпоративного СП.
3.5. Выводы по главе.
ГЛАВА 4. УНИФИЦИРОВАННАЯ АРХИТЕКТУРА КЛИЕНТСКОГО ПРИЛОЖЕНИЯ.
4.1. Базовые классы предметной области.
4.2. Методика преобразования объектов, полученных от СП в объекты предметной области
4.3. Архитектура базовых классов отображения данных.
4.4. Выводы по главе.
Введение 2007 год, диссертация по информатике, вычислительной технике и управлению, Олейник, Павел Петрович
Актуальность темы.
Современные предприятия и организации разрабатывают информационные системы для решения прикладных задач. При этом в качестве хранилища информации используются реляционные системы управления базами данных (РСУБД). В свою очередь для разработки пользовательского интерфейса применяются объектно-ориентированные языки программирования (ООЯП).
Учитывая различие в назначении реляционных баз данных (РБД) и ООЯП, возникает так называемое объектно-реляционное несоответствие (ОРН). Данный термин был введен С. Амблером для описания проблем, возникающих при построении корпоративных информационных систем (КИС) [80]. Один из известных подходов, позволяющих частично исключить последствия ОРН, получил название «методы объектно-реляционного отображения» (ОРО). Все методы отображения были условно поделены нами на две категории. К первой относятся методы, не имеющие таблиц в базе данных (БД), содержащих метаинформацию системы. Данные методы подробно описаны в работах С. Амблера и М. Флауера [73, 80-81].
Учитывая тенденцию добавления метаинформации в ООЯП, мы считаем, что более перспективными являются методы, поддерживающие метаинформацию в БД. Данный подход был использован в исследовании при проектировании объектного ядра в РСУБД. В настоящее время практически полностью отсутствуют работы, посвященные ОРО, поддерживающим метаинформацию. Из имеющихся работ можно выделить два цикла статей: первый принадлежит украинскому учённому В. Костра [28-89], а второй -профессору США (и Канады) Надкарни [104-105]. Оба этих цикла посвящены применению разработанной ими модели для хранения данных в медицинских КИС. Модель получила название «Сущность-Атрибут-Значение (EAV)».
Проанализированные реализации инструментов ОРО, использующие РСУБД в качестве хранилища информации, были разделены на два класса. К первому нами отнесены инструменты, позволяющие организовать объектную систему на основе РСУБД. Здесь можно выделить два известных инструмента: 1) компоненты BOLD for Delphi , 2) реализация технологии ECO [19, 103]. К сожалению, в данных инструментах не задействованы многие широко используемые средства, имеющиеся в СУБД. При этом не предполагается использование таких элементов БД как представления, хранимые процедуры (ХП) и функции. При выборке данных происходит динамическая генерация запросов, что снижает производительность информационной системы (ИС).
Другой класс инструментов ОРО описывает взаимосвязь с таблицами БД на уровне объявления классов в клиентском приложении (КП), т.е. непосредственно с помощью внутренних средств языка программирования. Данный недостаток присущ рассмотренным системам Hibernate [83,102] и EJB 3.0 [91]. При этом метаинформация об объектной системе недоступна в БД. Как следствие, часть общих процедур, манипулирующих метаинформацией, невозможно перенести в среду БД.
При обсуждении ОРН С. Амблер указывает на то, что РСУБД оперируют понятиями нормализованных отношений и возвращают данные в виде кортежей [80]. В свою очередь ООЯП рассматривают объекты как экземпляров классов, написанных на ОО-языке программирования. В связи с этим возникает необходимость трансформации данных из кортежей в объекты. Одним из вариантов решения проблемы является разработка иерархии преобразователей данных (ПД) для соответствующих классов. Данное решение наиболее полно описано у М. Фаулера [73]. При этом в качестве примера рассматривалось клиент-серверное приложение.
Анализ существующих архитектур ИС показал, что доминирующей является трёхзвенная [35, 73]. В связи с этим подход, основанный на ПД, нельзя считать оптимальным, поскольку он связан с необходимостью реализовать механизм передачи объектов с сервера приложений (СП) на клиентское приложение.
В литературе уделяется мало внимания проблеме реализации базовых классов предметной области. Наиболее полным руководством по данному вопросу можно считать монографию Р. Хотки [93], в которой описывается применение обобщений языка С# на платформе .Net Framework 2.0. Однако описываемые реализации подходят лишь для их применения в клиент-серверных приложениях и поэтому они привязаны к графическому отображению. Кроме того, описанная иерархия классов не является последовательной. Так базовые классы системы спроектированы как параметрированные, а производные - созданы с подстановкой типов. При этом не решен вопрос как создать дочерний класс, унаследованный от последнего. В данной работе часть классов предметной области представляют собой коллекции объектов, параметрированные типом соответствующего класса-элемента. В диссертационном исследовании выделено две иерархии классов, представляющих объект как на СГГ, так и в КП, что позволяет на основе разработанной методики проектировать КИС на основе трёхзвенной архитектуры.
При проектировании ИС очень часто применяют плагиную архитектуру, суть которой заключается в возможности проектирования единого модуля загрузки плагинов, в которых реализована бизнес-логика приложения. Чаще всего плагины представляют собой скомпилированные dll-библиотеки и загрузка выполняется непосредственно при загрузке основного приложения [73, 86, 106]. Этот подход нельзя использовать для СП, так как он требуется физического перезапуска системы, что приводит к прерыванию выполнения клиентских запросов. В данной работе предложен альтернативный подход к реализации плагинов, которые в нашем случае представляют текстовые файлы с описанием классов на ООЯП. ЭтсУг подход требует наличия в системе (на СП) классов, позволяющих компилировать программный код в момент выполнения приложения.
Современные языки программирования, например, С# и Java предоставляют данную возможность [42, 58-59, 107]. Имеющиеся работы, описывающие возможность динамической компиляции кода не предполагают её использование при проектировании СП. Это связано с тем, что на момент компиляции и загрузки кода в память, требуется поступающие от клиентских приложений запросы ставить в очередь и начинать их выполнение только после окончания компиляции. В свою очередь при поступлении запросов на перекомпиляцию кода в момент выполнения клиентских запросов требуется ставить в очередь процесс компиляции. Т.е. необходимо реализовать модуль синхронизации доступа, что является нетривиальной задачей.
В современной литературе уделяется недостаточно внимания принципам разработки графических интерфейсов КП, особенно процессу наследования таких элементов как форма. В частности, в работах Дж. Рихтера и Э. Троелсена [58, 70], посвященных языку программирования С# 2.0 и новейшей среде разработки Microsoft Visual Studio 2005 указывается на возможные проблемы при использовании наследования форм. Ряд сторонних фирм-разработчиков компонентов предоставляют возможность наследования. Одной из таких фирм является Developer Express (сайт компании расположен по адресу http://www.devexpress.com/), компоненты которой применялись при разработке графического интерфейса. Все выделенные классы, используемые в КП, подробно рассмотрены в диссертационной работе. Иерархия классов может быть реализована на любом ООЯП с соответствующей заменой необходимых базовых классов, предоставляемых системой.
Таким образом, перед разработчиком КИС возникает задача разработки методики построения унифицированных трёхзвенных объектно-ориентированных приложений, имеющих развитый графический интерфейс и манипулирующих данными, физически расположенными в РСУБД. В данной работе рассмотрены все ключевые аспекты проектирования элементов описанной архитектуры и представлен процесс интеграции отдельных элементов в рамках единой ИС.
Объектом исследования являются трёхзвенные приложения, разрабатываемые на ООЯП и манипулирующие данными, получаемыми из РСУБД.
Предметом исследования являются:
• методика построения трёхзвенных приложений;
• методика проектирования и реализации базовых классов графического интерфейса клиентского приложения;
• организация объектной системы на основе реляционной БД;
• принципы построения графического интерфейса, отображающего данные.
Методика исследования. Метамодель объектной системы реализована в среде целевой СУБД Microsoft SQL Server 2005. Для реализации СП и клиентского приложения использован основной язык программирования платформы .Net Framework 2.0 С#
Цель и задачи работы.
Целью диссертационной работы является разработка методики построения унифицированных трёхзвенных объектно-ориентированных приложений, применение которой для проектирования КИС позволит снижать затраты как на модификацию, так и на добавление новой бизнес-логики предметной области.
Для достижения поставленной цели решаются следующие задачи:
• разработка методики построения объектной оболочки на основе РСУБД;
• создание единой архитектуры процедур выборки данных;
• проектирование механизма унифицированной фильтрации данных;
• реализация архитектуры СП, позволяющей динамически расширять ее функциональность без физического перезапуска системы;
• разработка иерархии классов, позволяющей выполнять преобразования реляционного набора данных в объекты предметной области;
• проектирование иерархии классов для объектов, отображаемых в клиентском приложении;
• реализация механизма преобразования данных, получаемые СП.
Научная новизна.
1. Предложенная общая методика построения трехзвенных приложений отличается от известных тем, что базируется на синтезе сформулированных в диссертационном исследовании подходов и методов построения каждого из трех ее звеньев и позволяет разрабатывать КИС, не зависящие от предметной области.
2. Разработан метод ОРО, отличающийся от известных отсутствием недостатков, присущих методам ОРО с поддержкой метаинформации (отсутствие строгой типизации значений атрибутов, сохранение всех значений атрибутов в единой таблице БД), применение которого позволяет поддерживать метаинформацию объектной системы и программно генерировать такие элементы информационной системы как представления, табличные функции (ТФ), хранимые процедуры и т.п., что способствует автоматизации выполнения рутинных операций и сокращению времени и затрат на разработку КИС.
3. Разработана унифицированная архитектура хранимых процедур выборки данных, извлекающая информацию из объектной системы, реализованной в РБД, и основанная на метаинформации объектной системы, что выгодно отличает полученную реализацию от имеющихся аналогов за счёт упрощения процесса отладки, модификации и доработки программного кода.
4. С целью формирования механизма фильтрации данных на клиентском приложении реализован алгоритм представления логических выражений с помощью языка XML, что позволяет унифицировать модель БД относительно единой структуры и, тем самым, даёт возможность применения метамодели в различных областях.
5. Впервые разработана архитектура СП, позволяющая динамически расширять функциональность системы без её физического перезапуска. Тем самым решена ключевая проблема разработки крупных трёхзвенных ИС, заключавшаяся в необходимости перезапуска сервера приложений для расширения его функциональных возможностей.
6. Предложен механизм реализации плагинов в виде текстовых файлов на ООЯП, отличающийся от известных наличием возможности динамической компиляции кода, что позволяет сокращать цикл разработки и развёртывания нового функционала на СП за счёт переноса части операций (компиляции кода, загрузки dll-библиотек в память), непосредственно на СП и, тем самым, уменьшать время и затраты на разработку программного продукта.
7. Разработан и реализован алгоритм синхронизации доступа к СП, отличающийся от известных наличием возможности ранжировать пользователей системы на основе выполняемых функций.
8. Разработаны и реализованы иерархии классов на ООЯП:
• отличающаяся от известных наличием возможности применять классы не только в клиент-серверных, но и в трехзвенных приложениях и позволяющая выполнять преобразование данных из реляционных кортежей в объекты предметной области;
• позволяющая представлять данные в КП и отличающаяся от известных тем, что классы не содержат в своём составе методов, необходимых для извлечения данных из БД, что решает важную проблему разработки программного обеспечения (ПО), заключающуюся в зависимости между собой отдельных элементов кода;
• предназначенных для создания графического пользовательского интерфейса. При этом использовалось наследование графических форм, что позволяет создавать системы на основе принципа повторного использования кода и обеспечивает возможность применения ранее спроектированных классов. Для задания значений внешних ключей спроектированы дополнительные формы, позволяющие избавить пользователя от необходимости занесения значений объектных идентификаторов при выполнении фильтрации данных и, тем самым, отличает полученную реализацию от имеющихся, предполагающих необходимость задания суррогатных ключей.
Практическая ценность.
В работе рассмотрена реализация всех элементов трёхзвенной архитектуры. При проектировании СП и КП использован язык программирования С# 2.0. Для построения структуры БД применена СУБД Microsoft SQL Server 2005. Разработанная методика может быть применена к другим ООЯП, поддерживающим метаинформацию, например, к Java. Объектная метамодель системы может быть реализована в любой современной РСУБД, например, в Oracle и DB2.
Элементы системы могут быть использованы при построении не только трёхзвенных, но других видов приложений, что достигнуто за счёт гибкости и независимости разработанных решений. В частности, классы, преобразующие реляционный набор данных в объекты бизнес-логики, присутствующие на СП, необходимо перенести на КП (в случае реализации архитектуры клиент-сервер). Разработанная иерархия графических форм может быть применена в любом приложении, для которого требуется развитый интерфейс.
Унифицированный механизм фильтрации данных может быть использован не только в среде РСУБД, но и в других видах СУБД.
Разработанный СП может быть использован в любой КИС, для которой критичен простой и требуется высокая производительность.
На основе и с использованием предложенной методики созданы три информационные системы:
1. «ПайУголь» - программный комплекс, выполняющий учёт и распределение пайкового угля для жителей Ростовской области;
2. «AxSilo» - программно-аппаратный комплекс автоматизированного приёма и учёта сельскохозяйственной продукции.
3. «Фурнитура» - программный комплекс, учитывающий номенклатуру фурнитуры, используемой при пошиве джинсовой одежды.
Проведенные исследования подтверждаются 3 актами о внедрении разработанной методики. Результаты, полученные в ходе диссертационного исследования, частично использованы в курсе «Информационные технологии» в Педагогическом институте ЮФУ.
Работа выполнена в соответствии с паспортом специальности 05.13.11 «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей» в рамках следующих пунктов: п. 1 «Модели и методы проектирования и анализа алгоритмов и программ, их эквивалентных преобразований и верификаций», использовался при проектировании и реализации алгоритма унифицированных хранимых процедур выборки данных, а также при реализации механизма преобразования реляционного набора данных в объекты предметной области; п. 2 «Синтаксис и семантика языков программирования, построение и оптимизация трансляторов, создание и реализация языков программирования» использовался при реализации структуры XML документа, применяемого в качестве синтаксиса языка разметки при фильтрации наборов данных; п. 3 «Организация баз данных и знаний, построение систем управления базами данных и знаний» применялся при проектировании базы данных объектного ядра на основе РСУБД, а также при организации представлений, хранимых процедур и функций на основе структуры таблиц БД; п. 5 «Разработка и исследование человеко-машинных интерфейсов, программных средств распознавания образов и визуализации, мультимедийного общения» применялся при выделении базовых классов графических форм, используемых для создания человеко-машинных интерфейсов клиентского приложения; п. 6 «Организация распределенных и параллельных систем, разработка и исследование эффективных алгоритмов для управления параллельными процессами, создание языков и инструментальных средств параллельного программирования» использован при проектировании многопоточного корпоративного сервера приложений, поддерживающего динамическое расширение функциональности и при синхронизации доступа со стороны клиентского приложения и приложения администратора; п. 8 «Создание и исследование новых технологий проектирования, анализа, оценки качества, стандартизации и сопровождения программных систем» использован при разработке методики проектирования и реализации унифицированных трёхзвенных объектно-ориентированных приложений.
Апробация результатов работы.
Результаты работы докладывались и обсуждались на следующих научных конференциях:
• IV Всероссийская научно-практическая конференция студентов «Молодежь и современные информационные технологии» (Томск, ТПУ, 2006);
• X Всероссийская научно-практическая конференция «Научное творчество молодёжи» (Анжеро-Судженск, 2006);
• IV Международная научно-практическая конференция «Теория, методы проектирования, программно-техническая платформа корпоративных информационных систем» - 2 доклада (Новочеркасск, ЮРГТУ, 2006);
• I Международная научно-практическая конференция «Передовые научные разработки - 2006» (Днепропетровск, 2006);
• VII Международная научно-практическая конференция «Компьютерные технологии в науке, производстве, социальных и экономических процессах» - 2 доклада (Новочеркасск, ООО НПО «Темп», 2006);
• VII Международная научно-практическая конференция «Моделирование. Теория, методы и средства» (Новочеркасск, ЮРГТУ, 2007).
Публикации. Основные результаты диссертации опубликованы в 13 работах - научных журналах и сборниках конференций общим объемом 4,5 п.л., в том числе 5 статей объемом 2,7 п.л. в научных журналах, рекомендованных ВАК РФ для опубликования основных результатов докторских диссертаций. Имеется 1 свидетельство об официальной регистрации программы для ЭВМ.
Структура и объём диссертации. Диссертационная работа состоит из введения, четырех глав, заключения, списка использованных источников из 114 элементов и 6 приложений. Основной текст диссертационной работы изложен на 218 машинописных страницах, включая 84 рисунка и 4 таблицы.
Заключение диссертация на тему "Разработка методики построения унифицированных трехзвенных объектно-ориентированных приложений"
4.4. Выводы по главе
В данной главе представлена общая архитектура базовых классов предметной области, описаны достоинства, появившиеся за счёт применения обобщений для реализации иерархии. Изучен состав и структура классов, позволяющих выполнять преобразования данных из бизнес-объектов, созданных на СП в объекты предметной области, функционирующих на клиентском приложении и предназначенных для отображения информации в ГИП.
Рассмотрена методика преобразования данных из реляционных кортежей, в объекты, существующие на сервере приложений и последующее преобразование в объекты, пригодные для отображения их в графическом интерфейсе.
В последнем разделе главы описаны базовые классы, применимые для построения развитого ГИП. Сформулированы критерии оптимальности, которым соответствует полученная реализация. Рассмотрено назначение каждого выделенного класса.
ЗАКЛЮЧЕНИЕ
В диссертационной работе разработана методика построения унифицированных трёхзвенных объектно-ориентированных приложений, в которых для хранения информации используется реляционная система управления базами данных.
Актуальность темы возникла в связи с повсеместным распространением РСУБД, используемых в качестве хранилища информации. При этом для построения клиентских приложений чаще всего используют объектно-ориентированные языки программирования. Отметим, что анализ существующих архитектур построения корпоративных приложений показал, что доминирующей является трёхзвенная. В связи с отсутствием работ, посвящённых процессу разработки всех звеньев данной архитектуры в пределах единой информационной системы, возникала задача разработки методики построения унифицированных трёхзвенных объектно-ориентированных приложений.
С целью уменьшения последствий объектно-реляционного несоответствия предложена методика построения объектной системы на основе реляционной СУБД. Рассмотрены как модель, применимая для сохранения метамодели объектной системы, так и структура БД, созданная для хранения экземпляров классов. Уделено внимание принципам организации классов и атрибутов классов. Разработан механизм представления истории изменения значений атрибутов объекта.
Для упрощения процесса фильтрации данных предложена унифицированная архитектура процедур выборки данных. При этом в качестве входного параметра используется переменная типа XML. Предложен алгоритм построения синтаксического дерева, с помощью которого происходит преобразование введённых значений параметров в SQL выражение.
В исследовании детально рассмотрена архитектура корпоративного сервера приложений, поддерживающего динамическое расширение функциональности без физического перезапуска системы. Представлена общая структура СП, основные модули и взаимосвязь модулей в рамках единой инфраструктуры. Также рассмотрена иерархия классов, выполняющих запросы к БД и возвращающих данные в виде реляционных кортежей.
В работе уделено внимание модели классов, выполняющих преобразование из реляционных кортежей в объекты переноса данных. Учитывая популярность применения шаблонов проектирования в крупных информационных системах, было принято решение: отдельные элементы системы реализовать с их помощью. При этом описано применение основных шаблонов при реализации СП. Кроме того, для части ШП представлена альтернативная реализация, в которой отсутствуют недостатки, присущие имеющимся реализациям.
При рассмотрении принципов построения клиентского приложения особое внимание уделено проблеме проектирования базовых классов предметной области. После представления имеющихся подходов были сформулированы критерии, которым отвечает оптимальная реализация. В соответствии с ними получена работоспособная архитектура базовых классов.
В исследовании уделено внимание принципам преобразования объектов, полученных от СП в объекты базовых классов предметной области. Представлена архитектура решения и взаимосвязи между отдельными элементами системы.
Также уделено внимание принципам разработки графического интерфейса пользователя. На основе изученных литературных источников сформулированы критерии оптимальности, в соответствии с которыми была спроектирована иерархия классов.
Подведя итог проделанной работе, можно утверждать, что разработанная методика построения трёхзвенных приложений и представленные архитектурные решения, применяемые при реализации каждого из звеньев системы, могут быть использованы практически в любом приложении вне зависимости от прикладной предметной области, в которой они функционируют.
Библиография Олейник, Павел Петрович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Алифанов А., Использование атрибутов в среде .NET, http://vwwv.rsdn.ru/article/dotnet/attributes.xml
2. Амблер С., Гибкие технологии: экстремальное программирование и унифицированный процесс разработки. Библиотека программиста. СПб.: Питер, 2005.-412 е.: ил.
3. Ахо А., Сети Р., Ульман Дж., Компиляторы: принципы, технологии и инструменты.: Пер. с англ. — М.: Издательский дом "Вильяме", 2003. — 768 с.: ил. — Парал. тит. англ.
4. Багуи С., Объектно-ориентированные базы данных: достижения и проблемы, http://www.osp.ru/os/2004/03/184042/
5. Бек К., Фаулер М., Экстремальное программирование: планирование. СПб.: Питер, 2003.144с.
6. Бек К., Экстремальное программирование. СПб.: Питер, 2002,224с.: ил.
7. Берк П. Дж. и др., SQL Server 2000 XML, Пер. с англ.; Под ред. С.М. Молявко. -М.:Бином. Лаборатория знаний, 2003. 638 е., ил.
8. Боуррет P., XML и базы данных, http://xml.nsu.ru/pdf/database.zip
9. Буч Г., Якобсон А., Рамбо Дж., Унифицированный процесс разработки программного обеспечения.- СПб.: Питер, 2002.-496 е.: ил.
10. Виноградов С. А., Моделирование иерархических объектов, http://www.citforum.ru/database/articles/tree.shtml
11. Гамма Э. и др, Приёмы объектно-ориентированного проектирования. Паттерны проектирования, СПб: Питер, 2001. 368 е.: ил. (Серия «Библиотека программиста»),
12. Гладченко А., Деревья в поддерживающих стандарты SQL базах данных, http://www.sql.rii/articles/mssql/2005/061904TreesInSQLdatabases.slitml
13. Голованов М., Иерархические структуры данных в реляционных БД, http://www. rsdn.ru/article/db/Hierarchv. xml
14. Гома X., UML. Проектирование систем реального времени, параллельных и распределённых приложений: Пер. с англ. М.: ДМК Пресс, 2002. - 702с.: ил.
15. Гранд М., Шаблоны проектирования в Java, Пер. с англ. С. Беликовой. М.: Новое знание, 2004. - 559с.: ил.
16. Грейв М., Проектирование баз данных на основе XML, Пер. с англ. М.: Издательский дом «Вильяме», 2002. - 640 е.: ил. - Парал. тит. англ.
17. Грофф Дж., Вайнберг П., SQL: Полное руководство, Пер. с англ. -2-е изд., перераб. и доп. К.: Издательская группа BHV, 2001.-816 е., ил.
18. Грэхем И., Объектно-ориентированные методы. Принципы и практика. 3-е издание.: Пер. с англ. М.: Издательский дом «Вильяме», 2004. - 880 е.: ил. - Парал. тит. англ.
19. Даниленко Е., Разработка приложений ЕСО в Borland C#Builder и Borland Delphi 8 for the Microsoft .Net Framework, http://rsdn.ru/article/devtools/ecodev.xm 1
20. Дейт К. Дж., Введение в системы баз данных, 7-е издание.: Пер. с англ. М.: Издательский дом «Вильяме», 2001. - 1072 с.: ил. - Парал. тит. англ.
21. Дейтел X., Дейтел П., Как программировать на С++: Пер. с англ. М.: ЗАО «Издательство БИНОМ», 1999 г. -1024 е.: ил.
22. Дейтел Х.М., Дейтел П.Дж. и др., Как программировать для Internet и WWW, М.: Бином, 2003. 1184., ил - Парал. тит. англ.
23. Дейтел Х.М., Дейтел П.Дж. и др., Как программировать на XML, М.: Бином, 2001. -944., ил Парал. тит. англ.
24. Джордан Д., Обработка объектных баз данных в С++. Программирование по стандарту ODMG, Пер. с англ.: Уч. пос. М.: Издательский дом «Вильяме», 2001. -384с.: ил. - Парал. тит. англ.
25. Дубина О., Обзор паттернов проектирования, http://citforum.ni/SE/proiect/pattern/
26. Коннолли Т., Бегг К., Страчан А., Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд. /: Издательский дом «Вильяме», 2000. -1120 е.: ил. Парал. тит. англ.
27. Корявченко A., .Net. Использование Remoting в multitier приложениях // RSDN Magazine. 2002. №1
28. Костра В. В., Прокопчук Ю. А. Модели хранения первичных данных в медицинской информационной системе // Вестник ХГТУ. 2003. №2(18). С. 254-259
29. Костра В.В., Алпатов А.П., Прокопчук Ю.А., Госпитальные информационные системы: архитектура, модели, решения. Днепропетровск: УГХТУ, 2005. - 257 с.
30. Крёнке Д., Теория и практика построения баз данных. 9-е изд. СПб.: Питер, 2005 -859 с.:ил. - (Серия «Классика computer science»).
31. Кривонос Н., Журналирование изменений структуры БД и данных, http://www.sql.ru/articles/mssql/2005/03070 lChangesLotzuing.shtml
32. Кузнецов С., Дискуссия об архитектурах объектно-ориентированных СУБД, http://citfomm.ru/database/articles/oodbmsarchitectures/
33. Кузнецов С., Наиболее интересные новшества в стандарте SQL:2003, http://citforum.ru/database/sql/sql2003/
34. Кэй М., XSLT. Справочник программиста, 2-е изд., М.: Символ-Плюс, 2002. 1016., ил.- Парал. тит. англ.
35. Лейнекер P., СОМ+. Энциклопедия программиста, Пер. с англ.: СПб.: ООО «ДиаСофтЮП», 2002. 656с.
36. Маклин С., Нафтел Дж., Уильяме К., Microsoft .Net Remoting, Пер. с англ. М.: Издательско - торговый дом «Русская редакция», 2003. - 384 е.: ил.
37. Мамаев Е., Шкарина JL, Microsoft SQL Server 2000 для профессионалов СПб: Питер, 2001,- 1088с.: ил.
38. Меркульев А., Архитектура разработки приложений реляционных баз данных и инструмент для генерации кода приложения, http://dvakovkm.tripod.com/am/orc.htm
39. Меркульев А., Объектно-компонентная платформа создания приложений БД, http://www.dotsite.spb.ru/Publications/Publicationl57.aspx
40. Мюллер Р. Дж., Базы данных и UML проектирование : Пер. с англ. М.: Лори, 2002. - 420с.: ил. - Парал. тит. англ.
41. Нейгел К., Ивьен Б., Глинн Дж. и др., Язык программирования С# 2005 для профессионалов. Си шарп: Пер. с англ. М: Компьютерное издательство "Диалектика", 2006 г. -1376 е.: ил.
42. Ноутон П., Шилдт Г., Java 2: Пер. с англ. СПб.: БХВ-Петербург, 2001. -1072 е.: ил.
43. Ньюкомер Э., Веб-сервисы. Для профессионалов, СПб.: Питер, 2003. 256с.: ил.
44. Олейник П.П., Декларативный подход к реализации шаблона проектирования Singleton // Информационные технологии и вычислительные системы. 2006. №4. С. 4551.
45. Олейник П.П., Многопоточный сервер приложений, поддерживающий динамическую компиляцию модулей расширений (SharpArchitect Application Server), Свидетельство об официальной регистрации программы для ЭВМ № 2006613503,9 октября 2006 г.
46. Олейник П.П., Организация метамодели объектной системы на основе реляционной СУБД// Научное творчество молодёжи: Материалы X Всероссийской научно-практической конференции (21-22 апреля 2006 г.) Ч. 1. Томск: Изд-во Том. ун-та, 2006. С. 87-88
47. Олейник П.П., Практические аспекты реализации многопоточного сервера приложений // Информационные технологии. Теоретический и прикладной научно-технический журнал. 2007. №1. С. 47-50.
48. Олейник П.П., Представление метамодели объектной системы в реляционной базе данных // Известия высших учебных заведений. Северо-Кавказский регион. Спецвыпуск «Математическое моделирование и компьютерные технологии» 2005. С. 3-8
49. Олейник П.П., Применение параметрированных типов при реализации базовых классов предметной области // Информационные технологии. Теоретический и прикладной научно-технический журнал. 2007. № 8. С. 14-17.
50. Олейник П.П., Проблема выбора оптимального языка программирования для реализации программного продукта // Матер1али V М1жнарод-ноУ науково-практично'1 конференцп "Динамжа наукових дослщжень 2006". Том 7. Дшпропетровськ: Наука i ocBiTa, 2006. С.67-69.
51. Рамбо Дж. и др., UML: специальный справочник, СПб.: Питер, 2002. 656с.: ил.
52. Рихтер Дж., CLR via С#. Программирование на платформе Microsoft .NET Framework 2.0 на языке С#. Мастер-класс. / Пер. с англ. — М.: Издательство «Русская Редакция»; СПб.: Питер, 2007. — 656 стр.: ил.
53. Робинсон С. и др., С# для профессионалов, в 2-х т., Пер. с англ. М.: Лори, 2003. -1002 с. :ил. - Парал. тит. лист.
54. Рыков А.С., Методы системного анализа: многокритериальная и нечёткая оптимизация, моделирование и экспертные оценки. М.: Экономика, 1999. - 316с.: ил.
55. Савитч У., Язык С++. Курс объектно-ориентированного программирования, 3-е изд.: Пер. с англ. М.: Издательский дом «Вильяме», 2001. - 704 с.: ил. - Парал. тит. англ.
56. Свириденков А., Применение XML в реляционных БД для хранения объектов сложной структуры, http://ibase.ru/devinfo/xmldb.htm
57. Сеппа Д., Microsoft ADO.Net, Пер. с англ. М.: Издательско-торговый дом «Русская редакция», 2003. - 640с.: ил.
58. Сидельников В.И., Олейник П.П., Метод представления истории изменения данных, Информационные технологии. Теоретический и прикладной научно-технический журнал. 2006. №7. С. 37-48.
59. Смирнов А., Протоколирование действий пользователей и версионность записей // RSDN Magazine. 2004. №2
60. Степаненко В., Обзор SQL Server 2005 для разработчика баз данных, http://www.sql.ru/articles/mssql/2005/042401OverviewSOLServer2005forDatabaseDevelop er.shtml
61. Степаненко В., Поддержка XML в Microsoft SQL Server 2005, httD://www.sql.ru/articles/mssql/2005/020901XMLSupportInMicrosoftSQLServer2005.shtm 1
62. Тенцер А., Естественные ключи против искусственных ключей, hUpV/www.ibase.nj/devinfo/NaturalKevsVersusAtrincialKevsBvTentser.html
63. Топп У., Форд У., Структуры данных в С++, М.: Бином, 2001. 816., ил.- Парал. тит. англ.
64. Троелсен Э., Язык программирования С# 2005 и платформа .Net 2.0.3-е издание.: Пер. с англ. М.: ООО "И.Д. Вильяме", 2007. - 1168 с.: ил. - Парал. тит. англ.
65. Усов А.С., Объектное представление о реляционной модели, http://www.alexus.ru/russian/articles/acrobat/OOP RM.pdf
66. Фаронов В.В., Шумаков П.В., Delphi 5. Руководство разработчика баз данных, М.: «Нолидж», 2001. 640., ил.
67. Флауер М., Архитектура корпоративных программных приложений, Пер. с англ. М.: Издательский дом «Вильяме», 2004. - 544 е.: ил. - Парал. тит. англ.
68. Холзнер С., XML. Энциклопедия, 2-е изд. СПб.: Питер, 2004. -1101с.: ил.
69. Чанг Б., Скардина М. и др., Oracle9i XML. Разработка приложений электронной коммерции с использованием технологии XML, М.: Лори, 2003. 492., ил.
70. Чистяков В., Нововведения в С# 2.0 // RSDN Magazine. 2003. № 6
71. Шаллоуей А., Трот Дж., Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию, Пер. с англ.:- М.: Издательский дом «Вильяме», 2002. 288с.: ил. - Парал. тит. англ.
72. Шилдт Г., Полный справочник по С#, Пер.с англ. М.: Издательский дом «Вильяме», 2004. - 752 с. ил. - Парал. тит. англ.
73. All popular programming languages, for each one the description and why to choose it, http://www.scriptol.orp/choose.php
74. Ambler S., Agile Database Techniques: Effective Strategies for the Agile Software Developer, John Wiley & Sons, 2003,373p.
75. Ambler S.W., Mapping objects to relational databases. What you need to know and why, http://www-106.ibm.com/developerworks/webservices/library/ws-mapping-to-rdb/
76. Bacon D., Double-Checked Locking is Broken Declaration, http://www.cs.umd.edu/-pugh/iava/memoryModel/DoubleCheckedLocking.html
77. Bauer C., King G., Hibernate in Action, Manning Publications, 2005,431 p.
78. Ben-Gan I., Wolter D., Inside Microsoft SQL Server 2005: T-SQL Programming, Microsoft Press, 2006,532p.
79. Blake C., Run Time Compiler, Ьир:/Ду\у\у.с-5Ьафсог-ner.comAJploadFile/ChrisBlake/RunTimeComDilerl2052005045037AM/RunTimeCompiler. aspx
80. Boland D., Pluggable Remote Object Hosting, http://www.codeproiect.com/csharp/dbremoteplugins.asp
81. Fussell M.L., Foundations of Object Relation Mapping, http://w\vw.chimu.com/publications/obiectRe1ational/obiectRelational.pdf
82. Golding Т., Professional .NET 2.0 Generics, Wiley Publishing, Inc., 2005,410p.
83. Gross Ch., Foundations of Object-Oriented Programming. Using .Net 2.0 Patterns, Apress, 2006,358p.
84. IBM Corp., Книга no DB2 и XML, http://www.ibm.com/developerworks/ru/library/db2xml-intro/contents.html?S TACT=105AGX99&S CMP=GR01GR01
85. Keith M., Schincariol M., Pro EJB 3. Java Persistence API, Apress, 2006,480p.
86. Klein S., Professional SQL Server 2005 XML, Wiley Publishing, 2006,549p.
87. Lhotka R., Expert C# 2005 Business Objects, Second Edition, Apress, 2006,695p.
88. MacDonald M., Pro .NET 2.0 Windows Forms and Custom Controls in C#, Apress, 2006, 1081p.
89. McCaffrey J., The Analytic Hierarchy Process, http://msdn.microsoft.com/msdnmag/issues/05/Q6/TestRun/default.aspx
90. McCown F., Remoting with GUIs, http://codeproiect.com/csharp/remotinggui.asp
91. Microsoft Corp., BindingList Generic Class, http://msdn2.microsoft.com/en-us/librarv/msl32679.aspx
92. Microsoft Corp., Designing Data Tier Components and Passing Data Through Tiers, http://msdn.microsoft.com/librarv/default.asp?url=/library/en-us/dnbda/litml/BOAGag.asp
93. Microsoft Corp., IEditableObject интерфейс, http://msdn.microsoft.com/librar\yrus/default.asp?url=/library/njs/cpref/html/frlrfsvstemcom ponentmodelieditableobiectclasstopic.asp
94. Microsoft Corp., Proxy Attribute класс, http://msdn.microsoft.com/librarv^s/default.asp?url-/librarv/ms/cpref/html/frlrfsystemrunti meremotingproxiesproxyattributeclasstopic.asp
95. Microsoft Corp., ReaderWriterLock класс, http://msdn.microsoftxom/library^s/default.asp?url=/library/RUS/cpref/html/frlrfSvstemTh readinpReaderWriterLockClassTopic.asp
96. Minter D., Linwood J., Pro Hibernate 3, Apress, 2005,264p.
97. Mukerji J., Miller J., MDA Guide VI.0.1. http://www.omg.org/cgi-bin/apps/doc7omg/03-06-01.pdf
98. Poore E., C# Script for .NET 2.0, http://codeproiect.com/csharp/CSharpScript.asp
99. Rector В., Comparing .NET Generics and С++ Templates, http://www.codeguru.com/csharp/.net/cppmanaged/windowsservices/article.php/c7423/
100. Silva P., Design Pattern: Singleton in C#, http://www.devhood.com/Tutorials/tutorial details.aspx?tutorial id=486&printer=t
101. Snodgrass R. Т., Developing Time-Oriented Database Applications in SQL, San Francisco, California, «Morgan Kaufmann Publishers», 2000
102. Snodgrass R., Temporal Support in Standard SQL, http://www.dbpd.com/vault/9810snod.html
103. Straughan A., Dynamically Loading an Assembly, http://www.c-sharpcorner.com/Code/2002/April/LoadingAssemblvInfo.asp
104. TIOBE Programming Community Index for May 2006, http://www.tiobe.com/tpci.htm 1 KZografos K. G., Analytic Hierarchy Process (AHP): ITS APPLICATION IN FTS
105. BUSINESS MODEL ASSESSMENT,http://projectapps.vtt.fi/Connect/Rainbow/Documents/connect/2%5Eday3%20sessionZog rafos.pdf
-
Похожие работы
- Разработка методов структурного синтеза трехзвенных механизмов
- Объектно-ориентированная методология эволюционной разработки математического обеспечения
- Разработка автоматизированной системы определения стоимости строительства в режиме удаленного доступа
- Синтез многозвенной информационной системы управления на основе моделей многоальтернативной оптимизации
- Объектно-ориентированное моделирование систем управления технологическим процессом шлюзования судов
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность