Проектирование динамического интерфейса для работающего web-приложения
Изложение процесса создания ориентированного на интенсивную обработку данных программного обеспечения управления расчётно-платёжной системой. Особенности разработки программного продукта в Cache Intersystems. Принципы технологии xml-DOM, javascripts.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 26.10.2014 |
Размер файла | 2,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
В связи с распространением и ростом сети Интернет, возникает необходимость в информационных системах, предоставляющих Web-интерфейс. Среди множества разнообразных систем можно выделить доминирующий класс приложений, которые особенно актуальны, и востребованы на сегодняшний день - это, так называемые, приложения, ориентированные на интенсивную обработку данных (Data Intensive Web-Applications). Под Web-приложением, ориентированным на интенсивную обработку данных, будем понимать Web-систему, главной целью которой является обработка и поддержка большого количества структурированных данных, которые обычно хранятся в СУБД [1].
Разработка таких системы включает выполнение различных задач, таких как проектирование структуры данных, разработка интерфейса гипертекста для отображения хранимой информации, управление контентом и т.д. Таким образом, для эффективной разработки и сопровождения сложной информационной системы необходима поддержка технологических средств.
Целью данной дипломной работы является разработка динамического интерфейса для работающего Web-приложения, ориентированного на интенсивную обработку данных. Так же требуется модернизация существующей базы данных, с целью повышения удобства для операторов и программистов, увеличения быстродействия. В основной перечень мероприятий входят: проектирование связей базы данных, разработка интерфейса для приложения, проведение экономической оценки, оценки надежности и безопасности. В процессе выполнения дипломного проекта необходимо проанализировать существующие технологии разработки динамических меню, рассмотреть модели баз данных, выявить недостатки и преимущества, предложить оптимальные решения.
Данный дипломный проект выполнен на актуальную для предприятия тему, тесно связанную с реальными планами исследований и производства, решая практическую задачу по доработке, модернизации и внедрению программного обеспечения управления расчетно-платежной системой.
программный cache intersystems платёжный
1. Постановка задачи
В настоящий момент на предприятии ООО «Цифра+» навигация в системе «ПК-Ресурс» организованна в виде двухуровневого статического меню, пункты меню которого не зависят от прав пользователя.
Для повышения эффективности работы оператора, а так же повышения безопасности требуется пересмотреть существующий подход. В ходе дипломной работы необходимо разработать модуль для динамического моделирования меню, с разграничением прав доступа и возможностью непосредственного редактирования в браузере.
Так же на предприятии на текущий момент база данных по городу представлена в виде разрозненных файлов реализованных в виде классов не имеющих между собой связей.
Необходимо проанализировать и задать отношения между существующими классами базы данных, не изменяя их структуру.
В рамках данной разработки необходимо выполнить следующие задачи:
- выбор программных средств(выбор ПО для редактирования разделов и уровня вложенности, выбор средств для динамического построения меню);
- разработка модуля динамического меню, с возможностью редактирования и разграничением прав доступа;
- исследование и разработка новой структуры базы данных
Необходимо провести экономическое обоснование разработки, рассчитать надежность ПК и обеспечить безопасность эксплуатации проектируемого ПК.
2. Обзор существующих аналогов и вариантов решения задачи
2.1 Построение меню
Ш Wayfinder
Wayfinder - класс для создания многоуровневых меню на основе дерева документов администраторского раздела. Wayfinder служит для организации списков ссылок для MODx. Благодаря поддержке шаблонов позволяет выводить списки в любом необходимом виде:
· Меню в виде списка, таблицы, изображений, с иконками и т.д.;
· Статичные меню;
· Меню с различными эффектами (выпадающие, раскрывающиеся и т.д.);
· Карта сайта.
Особенности:
· большой набор шаблонов для разных видом ссылки (текущая, родительская и т.д.);
· динамическое добавление параметра class в каждый пункт;
· подсчет числа документов для каждого родительского документа;
· много вариантов сортировки;
· динамическое подключение CSS-таблиц и Javascript;
· динамическое отображение/скрытие подпунктов [2].
Wayfinder довольно-таки гибкий инструмент и позволяет определить, какие ресурсы включить или исключить из меню, каков шаблон меню, как глубина меню вашего сайта. Граница ваших возможностей определяется HTML/CSS кодом.
Ш ExtJS
Ext JS - это мощная инфраструктура для разработки на JavaScript, которая не только предоставляет базовые средства и упрощает работу с Ajax, но и располагает большим набором многократно используемых компонентов пользовательского интерфейса.
Ext JS имеет специальный компонент для создания меню Ext.menu. Это - контейнер, к которому можно добавить пункты меню. Меню могут сдержать как пункты меню, так и общие компоненты[3].
Ш Плагин Com_swmenufree
С помощью компонента swMenuFree можно легко создать на сайте удобное многоуровневое выпадающее меню любой сложности. Можно создать как горизонтальное так и вертикальное меню. Разширение swMenuFree поможет создавать меню без особых знаний таблиц стилей css и языка программирования java (рисунок 1). В компоненте есть большое количество гибких настроек. Можно выбрать тип меню, задать размеры меню, ширину и цвет. Можно установить множество шрифтов и эффектов. Компонент swMenuFree работает с Joomla 1.5-1.7.
Рисунок 1 - редактор модуля меню swMenuFree
Ш Динамическое меню SuperFish
Superfish является плагином jQuery, который работает также на чистом CSS (то есть грациозно деградирует при отсутствии javascript) (рисунок 2,3). При этом плагин superfish обладает следующими преимуществами:
· Поддержка сенсорных устройств. Android, iOS, Windows Phone 7 и IE10 (с сенсорным экраном), первое прикосновение откроет ассоциированное подменю, по второму прикосновению сработает переход по ссылке. Мышка и клавиатура работают как обычно. Отметьте, что сейчас требуется подключать hoverintent плагин для поддержки некоторых Android браузеров и сенсорного взаимодействия в IE10. Ситуация может поменяться.
· Временной отрезок на тот случай, если курсор мышки непроизвольно дергается. По умолчанию стоит 800миллисекунд.
· Поддержка плагина hoverintent. Superfish автоматически определяет наличие плагина hoverintent и использует его технологии для mouseover (задержка при mouseout срабатывает независимо от наличия плагина hoverintent). На всех примерах этой страницы используется hoverintent. Если по каким-то причинам вы захотите использовать плагин hoverintent на ваших страницах, но не в связке с Superfish, то установить опцию disableHI в true. Отметьте: по состоянию на v.1.5.1 вы должны использовать обновленную версию (r7) hoverintent, которое поддерживает событие делегирования (delegation).
· На наличие подменю указывают css стрелки, классы добавляются соответствующим ссылкам. Вы можете отключить стрелки через опцию cssArrows, если потребуется.
· Можете указать путь к текущей странице, в том случае, если меню не используется. Чтобы понять как это работает можно просмотреть nav-bar пример. Отметьте, вам потребуется добавить класс `current' к соответствующим элементам, идеально на серверной стороне.
· Опционально вы можете использовать функции обратного вызова. Эти функции позволяют улучшать и расширять функциональность, без необходимости изменять код ядра Superfish.
· Поддерживает открытые методы hide и show, которые вы можете вызывать на элементы списка, которые имеют дочерние подменю. Также есть метод для утилизации Superfish. Здесь пример страницы, где демонстрируются вышеописанные методы.
· Используется делегирование событий для лучшей производительности и гибкости.
· Анимация. По умолчанию используется fade, но также можно использовать пользовательскую анимацию[4].
Рисунок 2 - Меню построенное с использованием SuperFish
Рисунок 3 - редактор меню SuperFish
Ш Zen
Технология InterSystems Zen™ позволяет быстро создавать сложные интернет-приложения. Это дает возможность разработчикам легко строить веб-приложения с интерфейсами, которые обычно ассоциируются со сложными настольными решениями.
InterSystems Zen™ - передовой инструментарий быстрого создания мощных веб-приложений со сложным интерактивным интерфейсом, работающих с базами данных. Zen-приложения активно используют AJAX (Асинхронный JavaScript и XML), поддерживая все возможности создания объектно-ориентированных приложений на базе продуктов корпорации InterSystems. Zen включает большую библиотеку уже созданных компонентов, которая позволяют разработчикам легко включать в веб-приложения такие элементы, как различные меню, таблицы, списки и многое другое. Каждый компонент содержит информацию о своем поведении и визуальном представлении «по умолчанию». Для описания поведения компоненты используются HTML/JavaScript и Cache Object Script. Для решения задач представления сложной графики используется XML-стандарт SVG (Scalable Vector Graphics). Для визуального оформления компонент и Zen-приложений в целом широко применяется технология CSS (каскадные таблицы стилей), что позволяет легко изменять оформление приложений. Компоненты расширяемы и могут быть быстро модифицированы под потребности конкретного проекта, используя объектно-ориентированные методы программирования.
Zen использует InterSystems CSP для обеспечения управления сессией, идентификации пользователей, шифрования данных, и передачи хранимой информации сессии между различными страницами. Поэтому безопасность и управление сессией автоматически "встроены" в каждую страницу Zen, избавляя, таким образом, разработчиков от лишней головной боли. Zen компоненты могут также быть размещены на веб-страницах, разработанных с использованием тэг-ориентированного подхода CSP.
Компонент Zen представляет собой описание класса, которое специфицирует внешний вид и поведение компонента на странице. Определение класса в Zen содержит (в составе единого документа) полное описание компонента, включая стили, код на стороне сервера и код на стороне клиента.
Во время выполнения Zen создает два объекта для каждого компонента, используемого на странице: объект на клиентской стороне, который автоматически создается Zen как объект JavaScript в браузере, и объект на серверной стороне. Zen в автоматическом режиме управляет состоянием обоих объектов и потоком информации между ними.[5]
Типы компонентов Zen. Библиотека Zen включает в себя компоненты, реализующие все стандартные типы HTML-контроля: поля ввода, текстовые поля, кнопки, поля метки и т.д. Эти компоненты имеют дополнительные типы поведения, унаследованные из класса контроля, используемого в Zen.
Zen также включает в себя набор более сложных насыщенных данными компонентов, которые автоматически отображают данные из БД и «знают», как динамически обновлять эти данные в ответ на определенные пользовательские события. Например, используемый в Zen мощный табличный компонент автоматически отображает данные внутри таблицы с использованием запроса к базе данных. Табличный компонент поддерживает разбиение текста на страницы, прокрутку текста, сортировку по столбцам, фильтрацию и разные стили. Содержимое таблицы может быть обновлено с сервера без перерисовки всей страницы.
В число других компонентов Zen входят:
· Menu - поддерживаются различные типы меню;
· Grid - для добавления поведения стилей электронных таблиц к веб-странице;
· Tree - для отображения иерархических данных с элементом управления деревьями);
· Tab - компонент-вкладка содержит набор вкладок, каждая из которых содержит набор других компонентов;
· Chart - реализуется широкий комплекс компонентов-диаграмм с использованием формата SVG, включая линейные диаграммы (line charts), диаграммы с областями (area charts), круговые диаграммы (pie charts), а также диаграммы, показывающие верхние и нижние значения данных (hie-low charts), и точечные диаграммы (XY charts);
· Graphical Meter - спидометры, датчики и т.п. позволяют отображать данные как динамические визуальные компоненты.
В ходе изучения рассмотрели несколько вариантов построения меню с использованием плагинов и программ, так же существует большое количество программных решений(меню на jQuery, меню из БД, меню с использованием html и css, и др.).
Проведенный мной обзор аналогов построения меню показал, что в подавляющем большинстве решений меню представлено в классическом виде, а именно без привязки к пользователю. Так же учитывая главное требование заказчика - не выходить из рамок Cache, ни один из существующих вариантов не удовлетворяет задаче.
2.2 Возможность редактирования пунктов меню - Grid cotrol ActiveX
Ш SimpleGrid1 ActiveX Control
SimpleGrid1 ActiveX Control при размещении на форме, позволяет представить данные в виде таблицы с большим количеством возможностей, помимо основных они включают в себя возможность добавлять с помощью CellData, CellBackColor и свойства CellForeColor столбца Flag, возможность выбора нескольких строк, так же не требуется вручную центрировать заголовки столбцов. Высота сетки автоматически регулируется[6].
Ш MstGrid ActiveX Control
MstGrid является профессиональным и легким в использовании компонентом для создания управляющей сетки, она обеспечивает широкий набор функций для создания удобных интерфейсов : отображения, редактирования, форматирования, систематизирования и представления данных в виде таблиц. Это полезный компонент, который облегчит процесс разработки приложений. Основные особенности MstGrid: поддерживает тему Windows XP и визуальные стили, которые имитируют стили, доступные в Office.
Функции:
* Возможность изменять формат и стиль ячейки для каждого пользователя;
* Каждая ячейка может отображать изображения в дополнение к данным;
* Любое количество фиксированных строк и столбцов;
* Авто размер строки или столбца;
* Перемещение строки или столбца, изменение размера строк или столбцов, сокрытие строки или столбца;
* Создание чередующихся строк;
* Возможности импорта и экспорта;
* Сортировать один или несколько столбцов в соответствии с любым критериям;
* Перенос слов;
* Объединение ячеек.
Ш Activex grid control - igrid
Контрол igrid activex является управляющей сеткой, что позволяет редактировать ячейки с помощью встроенных редакторов и может эмулировать список outlook сообщении. Является хорошей заменой для listview в режиме отчета. Igrid реализует множество полезных функций - многоколоночную сортировку, пользовательские ячейки, сохранения и восстановления макета, собственный менеджер памяти. Контрол полностью поддерживает визуальные стили Windows XP. Каждая ячейка сетки может быть отформатирована отдельно от других клеток в сетке. Разработчики могут использовать строки формата, флаги форматов (горизонтальное и вертикальное выравнивание, многоточие в конце или в середине текста клеток, так что результат вписывается в клетки прямоугольника, и т.д.). Цвета элементов igrid могут быть скорректированы. Также можно отключить вертикальные или горизонтальные линии сетки, использовать multiselect режим для одновременного выбора некоторых клеток и режим строки, чтобы выбрать все ячейки в одной строке, заголовки столбцов могут быть плоскими или объемными. Главной отличительной особенностью igrid является возможность редактировать свои клетки с помощью встроенного редактора (текстовые поля, выпадающие списки и флажки , однострочные и многострочные текстовые поля, автоматическая регулировка ширины выпадающего списка на основе самого длинного текста шириной comboitems, и т.д.). Она также обеспечивает много полезных методов и событий для тонкой настройки процесса редактирования. Igrid поддерживает виртуальный режим. В этом режиме, igrid запрашивает новые строки всякий раз, когда они должны быть показаны.
Ш MSFlexGrid control
Microsoft FlexGrid ( MSFlexGrid ) контрол управления, отображения и действия на табличные данные. Это создает полную гибкость для сортировки, слияния и форматирования таблиц, содержащих строки и картинки. При привязке к данным управления, MSFlexGrid отображает данные только для чтения.
Ш VSFlexGrid
VSFlexGrid полнофункциональный контрол для отображения и редактирования данных в табличной форме, включает в себя VSFlexString, мощный механизм для обработки регулярных выражений. VSFlexGrid включает в себя последние технологий связывания -- OLE dB и ADO 2.1, DAO, привязке к 2-D или 3-D массивам. VSFlexGrid позволяет создавать свой собственный источник данных классов, или использовать сетку в несвязанном режиме. Он будет читать и писать в сжатый двоичный файл или текстовый файл (совместимый с Microsoft Access и Excel). VSFlexGrid предоставляет все основы, плюс дополнительные возможности, такие как очертания деревьев, сортировка, слияние клеток, маски, редактирование, графические листы, и автоматической агрегации данных[7].
Рассмотрев программные варианты представления данных в табличных формах, проанализировав необходимые функции, простоту использования и быстроту работы с ними выбор пал на VSFlexGrid.
3. Описание существующего программного комплекса
3.1 Функциональная часть
Система предназначена для реализации следующих функций выполняемых в ООО «Электросвязь.Сети.Системы»:
1. Начисление суммы оплаты за оказанные услуги населению города (абоненты):
· телевидение;
· радиовещание;
· интернет услуги;
· тех поддержка;
· продажа оборудования и др.
2. Учет оплаты предоставленных услуг абонентами
· через кассовые аппараты установленные в ООО «Электросвязь.Сети.Системы»;
· через банкоматы города;
· через банки.
3. Работа с должниками по оплате оказанных услуг
· выписка уведомлений о прекращении услуги;
· оформление наряда заказа на отключение абонента от предоставления услуги.
4. В БД системы хранятся данные об абонентах ООО «Электросвязь.Сети.Системы» (персональные данные абонента, услуги, оказываемые абонентам, данные о начисленных суммах и оплаты, задолженность абонента);
5. В БД предусмотрено хранение данных об установленном оборудовании в домах и квартирах в графическом виде (схемы, чертежи и изображ приборов).
3.2 Программная реализация ПК
ПК реализован в виде веб- приложения состоящего из взаимосвязанных страниц html, а именно csp страниц в терминологии СУБД Cache фирмы Intersystems (USA) . БД системы хранится в виде глобалов (логическая структура: классы данных под управлением СУБД Cache) . Программное обеспечение написано в среде Cache Studio. Разработанная система является модульной, расширяемой и адаптируемой к различным видам ресурсов.
Схема базы данных системы начислений и учёта оплаты услуг представлена на рисунке 4.
Рисунок 4 - структура БД
4. Описание принятых решений
Внедренная система работает на базе Cache Intersystems. В связи с этим разрабатываемые модули так же должны быть написаны в среде Cache Intersystems.
4.1 СУБД Cache - постреляционная база данных
27 августа 1998 г. впервые в Москве состоялась презентация компании InterSystems и ее нового флагманского продукта - постреляционной СУБД Cache. Изначально выпускаемые ею продукты базировались на разработках компании DEC, которые были популярны в СССР благодаря клонированию семейства компьютеров PDP-11, известных как СМ-4. За более чем двадцатилетнюю историю, пройдя ряд эволюционных этапов развития, несколько раз поменяв названия продуктов (DBMS, Open M), InterSystems выпустила последнюю версию СУБД, назвав ее Cache. Это слово французского происхождения, в английском оно обозначает нечто ценное и престижное. Заметим, что в англоязычных компьютерных изданиях можно встретить и менее претенциозное название того же продукта - Cach.
Прикладные разработки, предпринимаемые сегодня, как правило, ориентированы на поддержку сложных информационных потоков и многообразных производственных процессов. В этих условиях наиболее важной задачей разработчика становится правильное понимание структур этого “макрокосмоса” и его адекватное отображение в “микрокосмос” электронной обработки данных.
Основой представляемой реализации постреляционного подхода являются:
· истинно многомерная база данных,
· представление одних и тех же объектов данных структурами разных типов (реляционные таблицы, сетевые и иерархические структуры, и т.п.),
· работа с объектами данных с помощью методов, соответствующих текущей структуре представления данных.
Традиционные реляционные СУБД представляют мир несколько упрощенно, в двух измерениях. Реляционная модель базы данных сложного современного приложения состоит из множества таблиц, имеющих сложнейшие взаимосвязи. Для приложений, в которых существенную роль играет скорость обработки транзакций, реляционные СУБД данных зачастую слишком громоздки и медленны. Постреляционная СУБД Cachе хранит информацию, используя многомерную модель.
В Cache все свойства классических СУБД сохранены. Скорость доступа к данным чрезвычайно высока, а так как лишняя информация не хранится, многомерная модель базы данных очень компактна. Cache представляет собой полностью интегрированную высокопроизводительную систему управления базами данных и среду быстрой разработки современных приложений, ориентированных на обработку транзакций. Эта постреляционная СУБД основана на транзакционной многомерной модели данных (TMDM). TMDM обеспечивает одновременную работу любого числа клиентов без потери производительности. Двумерные реляционные таблицы используют простую для понимания математическую модель, пригодную для достаточно простых приложений и запросов. Однако в реальной ситуации представляемая в базе данных информация многомерна. Попытки обрабатывать такую информацию в реляционных СУБД неизбежно ведут к неудовлетворительной производительности. В отличие от ранних многомерных СУБД, которые были оптимизированы для “складирования данных”, транзакционная модель Cache оптимальна для обработки транзакций в системах с большими и сверхбольшими БД (объемы которых измеряются сотнями гигабайт и даже терабайтами) и большим количеством одновременно работающих пользователей. TMDM позволяет разработчикам получить великолепную производительность, отказавшись от хранения избыточных данных и таблиц.
В приложениях, где модели данных и отношения между ними очень сложны, отчетливо видны все преимущества Cache. Доступ к постреляционной базе данных Cache осуществляется любым из трех способов:
· Cache Direct Access - прямой доступ к данным, обеспечивает максимальную производительность и полный контроль со стороны программиста;
· Cache SQL - реляционный доступ, обеспечивающий межсистемное взаимодействие (ODBC) и максимальную производительность реляционных приложений с использованием встроенного SQL. Как показывают тесты, производительность Cache SQL как минимум в три раза выше, чем у традиционных реляционных СУБД, использующих реляционное ядро;
· Cache Objects - объектный доступ, для максимальной продуктивности разработки при использовании Java, ActiveX, C++ и других объектных технологий
Преимущества СУБД Cache Intersystems. Cache от InterSystems представляет собой полностью интегрированную высокопроизводительную систему управления базами данных и среду быстрой разработки современных приложений, ориентированных на обработку транзакций. В основе системы лежит объектно-ориентированная архитектура, интегрированная с транзакционной многомерной моделью данных, для обеспечения высочайшей производительности, масштабируемости и надежности в WEB и других сетевых средах.
Cache доступна в пяти конфигурациях. От Cache PC для однопользовательской версии, до Cache' Enterprise для больших конфигураций. Цены варьируются от 125 до 1000 долларов на одного работающего пользователя. Версии Cache' доступны для Microsoft Windows 95/98, Windows NT, Digital OpenVMS, IBM AIX, Hewlett Packard HP/UX, Digital Unix, Sun Solaris и других популярных платформ.
Cache обеспечивает на сегодняшний день самый быстрый в индустрии SQL. Для обеспечения более высокой производительности в реляционных приложениях Cache SQL обеспечивает способность к взаимодействию с обычными реляционными приложениями, включая большинство популярных средств анализа данных и подготовки отчетов. Поскольку данные Cache фактически хранятся в оптимизированных многомерных структурах, приложения, использующие Cache SQL, работают быстрее с постреляционной базой данных.
Cache предоставляет гибкий и немедленный доступ к данным и к объектам, и к реляционным таблицам при помощи унифицированной таблицы данных(рисунок 5). В то время как большинство баз данных, имеющих и доступ к объектам, и к реляционным таблицам предоставляют одну форму доступа на вершине другой формы доступа, Cache позволяет обоим двигаться прямо к данным.
Рисунок 5 -Доступ к данным в Cache и в других БД
Как показывают тесты, производительность Cache SQL как минимум в три раза выше, чем у традиционных реляционных СУБД, использующих реляционное ядро. Сравнение производительности Cache и Oracle представлено в приложении А.
В качестве внутренних "физических" структур Cache использует структуру B*- деревеьев, которые являются частным случаем В-деревьев. Деревья, которые имеют равное число уровней в каждом своем поддереве, называются сбалансированными (от английского balanced trees, отсюда и В-деревья). B-дерево (balanced), у которого каждый ключ указывает на блок данных, содержащий требуемую запись, называется B*-деревом. B*-дерево наследует все основные свойства B-дерева, в частности сбалансированность. B*-дерево является символьно-упорядоченной структурой. B*-дерево оптимизировано таким образом, что при поиске требуемого узла происходит минимальное обращение к дисковым блокам. Оно делает возможной интеграцию области указателей и области данных. B*-деревья состоят из различных блоков: блока каталога на вершине, одного или нескольких блоков указателей, а также блоков данных, находящихся на нижнем уровне и содержащих хранимую информацию. Прежде чем СУБД Cache записывает узел B*-дерева, отдельные индексы объединяются в одну символьную строку, поэтому скорость доступа к узлам не зависит от их вложенности. Сортировка B*-дерева происходит только в момент записи ранее несуществующего узла. B*-деревья в Cache имеют высокую степень свободы реорганизации и не имеют областей переполнения. Также Cache поддерживает сжатие ключей: имена соседних узлов, имеющих общее начало, сохраняются не целиком а лишь частично. Каждое имя узла сравнивается с предыдущем, длина совпадающей части сохраняется в виде числового значения, и, наконец в виде числовых символов - уникальная часть. Блоки данных на нижнем уровне связаны друг с другом дополнительными указателями, так что последовательные операции с базой данных проводятся в оптимальном режиме, не покидая текущий уровень данных. Для ускорения работы все блоки структуры B*-деревьев сохраняются в многоуровневом кэше в оперативной памяти, как только они прочитаны процессом с диска. Следовательно, при дальнейших попытках доступа к данному B*-дереву исключается повторное обращение к диску, что ведет к дальнейшему росту производительности.
Ведущие аналитики говорят, что объектная ориентация - ключевой элемент постреляционной технологии. В отличие от реляционных и объектно-реляционных баз данных, предлагающих, в лучшем случае, ограниченные объектные возможности, Cache включает полнофункциональную реализацию объектной технологии. Cache Objects полностью поддерживают множественное наследование, инкапсуляцию и полиморфизм. Таким образом, Cache обеспечивает разработчика всей мощью объектной технологии.
В дополнение, многомерные данные упрощают поиск, блокировку и изменение только тех данных, которые относятся к транзакции. Ни приложению, ни ядру базы данных не нужно тратить время на доступ к множеству таблиц или блокировать целые страницы данных, во время поиска. Таким образом, отдельная транзакция проходит быстрее и больше транзакций может обрабатываться одновременно.
Концепция разреженных массивов, реализованная InterSystems, делает многомерную модель данных еще более эффективной. Нулевые ячейки в Cache не занимают дискового пространства. Отсутствие пустых ячеек позволяет уменьшить время поиска или загрузки данных в локальную память.
Уникальный протокол распределенного кэша резко увеличивает производительность и масштабируемость благодаря значительному снижению сетевого трафика. Если по сети поступает запрос, пакет ответных данных включает в себя не только запрашиваемые данные, но и связанные с ними дополнительные. Состав дополнительных данных определяется по специальному алгоритму переработки внутреннего представления данных в многомерной модели данных Cache. Эта “дополнительная” информация кэшируется локально на машине клиента или на промежуточном сервере. Обычно последующие запросы данных удовлетворяются уже из локального кэша, предотвращая, таким образом, повторную пересылку данных. Если клиентом были произведены изменения данных, то к серверу базы данных вернутся только изменения. Протокол распределенного кэша хранит информацию о том, где объекты и данные кэшируются, решает текущие проблемы и поддерживает целостность базы. Снижение потока данных через сеть означает ускорение выполнения транзакции и увеличение максимального количества клиентов в каждой конкретной сети.
Постреляционная СУБД Cache включает в себя основные компоненты, необходимые для разработки приложений, ориентированных на интенсивную обработку транзакций. В систему включены следующие компоненты:
· Cache Object Server. Сервер объектов Cache позволяет использовать объекты Cache в Java, ActiveX и C++, а также во многих других средствах разработки приложений;
· Cache SQL Server. Реляционный сервер Cache обеспечивает высокопроизводительный доступ к базам данных Cache через SQL и ODBC. Скорость доступа к данным в несколько раз превышает показатели реляционных СУБД;
· Cache Studio - Среда разработки иерархий классов объектов и построения компонент приложений;
· Cache Distibuted Cache Protocol (DCP). Протокол Распределенного Кэша - уникальная сетевая технология фирмы InterSystems, которая распределяет базу данных по сети, в зависимости от работы приложений, оптимизируя производительность и пропускную способность сети;
· Cache ObjectScript. Встроенный в Cache объектно-ориентированный язык программирования предназначен для написания компонент, определяющих логику работы приложений и работу с базой данных.
В Cache Object обеспечивается:
· полная поддержка наследования, включая множественное;
· пользовательские типы данных (Advanced Data Types - ADT) для эффективного хранения и представления сложных данных прикладных систем;
· полнофункциональная объектная модель, включая отношения использования, включения и ссылки между объектами;
· прямая поддержка популярных объектно-ориентированных языков и технологий, включая Java, ActiveX и C++;
· “прозрачное” хранение объектов в базе данных Cache (если требуется высокая производительность) или в популярных реляционных базах данных, например, Oracle и Microsoft SQL Server.
В отличие от перечисленных ранее объектных СУБД, работающих хорошо только на небольших проектах, мощные объектно-ориентированные возможности Cache имеют в своей основе мощную, хорошо зарекомендовавшую себя технологию, на базе которой эксплуатируются прикладные системы с тысячами одновременно работающих пользователей. Транзакционное ядро сервера базы данных поддерживает сохранение копии базы данных в режиме online, автоматическую поддержку логической и физической целостности базы данных, репликацию и “теневые” сервера - технологии, необходимые при построении систем масштаба предприятия. Cache также обеспечивает SQL-доступ к объектам базы данных, возможна и одновременная модификация базы данных из объектных и реляционных приложений.
Важнейшими свойствами Cache является совместимость разрабатываемого программного обеспечения. Созданные однажды, объекты Cache могут свободно использоваться другими объектными технологиями. Например, определения классов объектов Cache могут использоваться, без изменений и дополнительного программирования, как классы Java, ActiveX и C++. Это позволяет избежать “крестовых походов” между приверженцами других объектных технологий и языков программирования, и использовать наиболее подходящий инструмент для решения конкретной прикладной задачи.
В соответствии с темой дипломной работы немалый интерес представляют возможности объектного языка Cache ObjectScript, определяющего логику работы приложений и работу с базой данных.
4.2 JavaScript
JavaScript - прототипно-ориентированный сценарный язык программирования. Является диалектом языка ECMAScript. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит вбраузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
Возможности языка. JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам - функции как объекты первого класса, объекты как списки, карринг, анонимные функции,замыкания - что придаёт языку дополнительную гибкость.
Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:
· объекты, с возможностью интроспекции;
· функции как объекты первого класса;
· автоматическое приведение типов;
· автоматическая сборка мусора;
· анонимные функции.
В языке отсутствуют такие полезные вещикак:
· модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;
· стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода-вывода, базовых типов для бинарных данных;
· стандартные интерфейсы к веб-серверам и базам данных;
· система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.
Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей;
· ядро (ECMAScript),
· объектная модель браузера (Browser Object Model или BOM (de)),
· объектная модель документа (Document Object Model или DOM).
Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться.
Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что согласуется с определением DOM как независимого от языка интерфейса документа. В противоположность этому ряд авторов находят BOM и DOM тесно взаимосвязанными.
Ядро. ECMAScript не является браузерным языком и в нём не определяются методы ввода и вывода информации. Это основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в расширении их новыми составляющими.
Объектная модель браузера. Объектная модель браузера - браузер-специфичная часть языка, являющаяся прослойкой между ядром и объектной моделью документа. Основное предназначение объектной модели браузера - управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window, центральным объектом DOM. Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей:
· управление фреймами;
· поддержка задержки в исполнении кода и зацикливания с задержкой;
· системные диалоги;
· управление адресом открытой страницы;
· управление информацией о браузере;
· управление информацией о параметрах монитора;
· ограниченное управление историей просмотра страниц;
· поддержка работы с HTTP cookie.
Объектная модель документа
Объектная модель документа - интерфейс программирования приложений для HTML и XML-документов. Согласно DOM, документ (например, веб-страница) может быть представлен в виде дерева объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:
· генерация и добавление узлов;
· получение узлов;
· изменение узлов;
· изменение связей между узлами;
· удаление узлов.
JavaScript и Java. Общим заблуждением является то, что JavaScript аналогичен или тесно связан с Java, это не так. Оба языка имеют C-подобный синтаксис, являются объектно-ориентированными и как правило широко используются в клиентских веб-приложениях, на этом их сходство заканчивается:
· Java реализует ООП подход, основанный на классах, JavaScript - на прототипах;
· Java имеет статическую типизацию, JavaScript - динамическую типизацию;
· Java загружается из скомпилированного байт-кода; JavaScript интерпретируется напрямую из файла (но часто с незаметной JIT-компиляцией)[8].
4.3 Xml
XML (Extensible Markup Language) - это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного типа, используя для этого произвольный набор инструкций. Разработчиков Интернет приложений, пытающихся на практике использовать новую технологию, могут заинтересовать конкретные вопросы, связанные с проблемами создания, обработки XML-документов, их отображения на стороне клиента. В этой статье дается краткое представление о том, что представляет собой и для чего нужен XML-документ и на практических примерах иллюстрируются некоторые простые, но пока, к сожалению, мало описанные механизмы его обработки. Язык XML обеспечивает ту многоуровневость представления данных, которая является чертой систем баз данных.
Правила создания XML- документа
В общем случае XML- документы должны удовлетворять следующим требованиям:
· В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация;
· Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника", т.е., в отличие от HTML, нельзя опускать закрывающие тэги;
· В XML учитывается регистр символов;
· Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки;
· Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов;
· Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования ( т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).
Если XML- документ не нарушает приведенные правила, то он называется формально-правильным и все анализаторы, предназначенные для разбора XML- документов, смогут работать с ним корректно.
Обработка XML-документов. Основным сдерживающим фактором в продвижении XML технологии в Web на сегодняшний день является отсутствие полной поддержки этого формата всеми производителями броузеров - программ, наиболее часто используемых на стороне клиента. Выходом из создавшейся ситуации может стать вариант, при котором обработкой XML документов занимается серверная сторона Используя любой существующий XML-анализатор, можно формировать необходимую информацию уже на сервере и посылать клиенту нормальный HTML-документ. Однако такой способ, конечно, менее гибок, и позволяет использовать XML технологию лишь для хранения структурированной информации, но не для ее динамического изменения на стороне клиента.
Объектная модель документа DOM. Одним из самых мощных интерфейсов доступа к содержимому XML документов является Document Object Model - DOM. Объектная модель XML документов является представлением его внутренней структуры в виде совокупности определенных объектов. Для удобства эти объекты организуются в некоторую древообразную структуру данных - каждый элемент документа может быть отнесен к отдельной ветви, а все его содержимое, в виде набора вложенных элементов, комментариев, секций CDATA и т.д. представляется в этой структуре поддеревьями. Т.к. в любом правильно составленном XML-документе обязательно определен главный элемент, то все содержимое можно рассматривать как поддеревья этого основного элемента, называемого в таком случае корнем дерева
· XML DOM - простая и вместе с тем предлагающая богатые возможности программная модель. Представление XML-документа деревом объектов, хранящимся в памяти, упрощает работу с данными, к которым требуется произвольный доступ.
· XML DOM отлично подходит для работы с данными небольшого или среднего объема.Коль скоро файл данных имеет достаточно небольшие размеры, его содержимое не займет слишком много места в памяти.
· XML DOM - наилучший выбор, если необходимо работать (имея возможность вносить изменения) сразу со всеми находящимися в памяти XML-данными. XML DOM является чрезвычайно мощным инструментом, если вашему приложению необходимо работать с данными в режиме произвольного доступа, а данные после их обработки должны быть заново сохранены в файле на диске или потоке[29].
4.4 Internet Explorer
Выбор Internet Explorer обусловлен тем что созданные ранее модули системы корректно работают лишь в данном браузере.
Internet Explorer - программа-браузер, разрабатываемая корпорацией Microsoft с 1995 года. Входит в комплект операционных систем семейства Windows. Согласно разным методам подсчета, доля Internet Explorer среди пользователей варьировалась между 24,64% и 58,15% (на январь 2014 года).
Internet Explorer имеет вкладки, блокировщик всплывающих окон, фишинг-фильтр, встроенный RSS-агрегатор, поддержку интернациональных доменных имён, средств групповой политики и возможность автообновления через Windows Update.
Функции. Internet Explorer был разработан для просмотра разных типов веб-страниц и поддержки ряда функций операционной системы, включая обновления Windows. Internet Explorer основанный на браузерном движке Trident и поддерживает ряд установленных и развивающихся стандартов, таких как HTML5,CSS3, SVG и др.
Нестандартные расширения. Разработчики Internet Explorer предложили ряд собственных расширений для разных стандартов, включая HTML, CSS и DOM. В результате этого многие веб-страницы отображаются некорректно в веб-браузерах, которые не работают с этими стандартами. Это создало потребность в создании режима совместимости, который бы позволил отображать элементы, предназначенные для Internet Explorer в других браузерах.
В Internet Explorer был добавлен ряд расширений для DOM, которые были внедрены другими браузерами. Они включают свойство innerHTML, которое устанавливает или получает всю разметку и содержание внутри данного элемента; объект XMLHttpRequest, который позволяет получать данные с сервера в фоновом режиме и совершать AJAX запросы; параметр designMode для contentDocument объекта, который расширяет возможности редактирования HTML-контента.
Microsoft предложила несколько других функций на рассмотрение W3C для будущей стандартизации. Среди них свойство CSS 'behaviour', которое связывает поведение элементов HTML с поведением JScript; профиль HTML+TIME, поддерживающий синхронизацию медиа для документов HTML, и формат файлов языка векторной графики VML. Но все они были отклонены в первоначальной форме. VML был объединен с PGML, что привело к созданию утвержденного W3C формата SVG.
Для использования приложений, написанных на JavaScript, на устройствах с разным типом управления, Microsoft предложила внедрение pointer-событий (MSPointerDown, MSPointerMove и т.д.), которые призваны одинаково работать на всех устройствах. Объект pointer-события предоставляет дополнительные свойства, которые помогают определить тип взаимодействия пользователя с приложением (мышь, прикосновение, стилус), геометрию области сенсорного контакта пользователя с устройством, давление и наклон пера. При желании разработчик может написать уникальный код для каждого устройства ввода. Идея была принята W3C, в результате чего был разработан стандарт Pointer events.
Кэш. Internet Explorer кэширует данные о посещенных страницах в папке Temporary Internet Files, чтобы предоставить более быстрый доступ (или офлайн доступ) к ранее посещенным веб-страницам. Контент индексируется в файле базы данных Index.dat. Существует множество файлов Index.dat, которые индексируют разные типы контента - посещенный контент, новостные ленты, посещенные URL и так далее. До выхода версии IE7 очистка кэша вычищала индексирование, но файлы не удалялись надежно. Начиная с IE7, после очистки кэша, файлы также безопасно удаляются.
4.5 VSFlexGrid
VSFlexGrid полнофункциональный контрол для отображения и редактирования данных в табличной форме, включает в себя VSFlexString, мощный механизм для обработки регулярных выражений. VSFlexGrid включает в себя последние технологий связывания -- OLE dB и ADO 2.1, DAO, привязке к 2-D или 3-D массивам. VSFlexGrid позволяет создавать свой собственный источник данных классов, или использовать сетку в несвязанном режиме. Он будет читать и писать в сжатый двоичный файл или текстовый файл (совместимый с Microsoft Access и Excel). VSFlexGrid предоставляет все основы, плюс дополнительные возможности, такие как очертания деревьев, сортировка, слияние клеток, маски, редактирование, графические листы, и автоматической агрегации данных. VSFlexGrid имеет два свойства, которые определяют его размеры: Rows и Cols. При работе в связанном режиме, эти свойства устанавливаются автоматически, основываясь на данных из источника. В несвязанном режиме, можно задать произвольные значения. Существует два основных типа строк и столбцов: фиксированные и с возможностью прокрутки. Фиксированные строки остаются в верху сетки, когда пользователь прокручивает сетку по вертикали, так и фиксированные колонки остаются в левом краю сетки, когда пользователь прокручивает сетку по горизонтали. Фиксированные клетки используются для отображения заголовков столбцов и строк информации. Количество фиксированных строк и столбцов устанавливается FixedRows и FixedCols свойства. Свойство AllowUserResizing позволяет пользователю изменять размеры строк и столбцов, перетаскивая края фиксированных клеток. Свойство ExplorerBar позволяет пользователю перемещать и сортировать столбцы, перетаскивая в строках заголовки. VSFlexGrid содержит методы и свойства, которые позволяют суммировать данные и отображать их в иерархическом порядке(рисунок 6). Для отображения иерархических представлений данных, используется свойства OutlineBar и OutlineCol. VSFlexGrid может быть использован в Visual C++, а также в Visual Basic.
Подобные документы
Технологии разработки программного обеспечения. Процедура постановки задачи, определения требований. Последовательность действий логической, разветвленной и циклической структуры. Терминология программирования. Этапы создания программного продукта.
презентация [793,8 K], добавлен 15.11.2010Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Анализ существующего программного обеспечения. Этапы создания проекта. Концептуальное, логическое и физическое проектирование базы данных. Структура программного продукта. Руководство программиста и оператора. Тестирование программного продукта.
курсовая работа [586,4 K], добавлен 26.06.2015Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Этапы разработки и отладки приложения "Помощь почтальону". Составление сопроводительной документации. Выбор средств и методов программирования. Анализ проектных данных. Особенности создания базы данных, СУБД. Тестирование созданного программного продукта.
контрольная работа [2,5 M], добавлен 17.12.2014Общее описание разрабатываемого программного обеспечения, требования к его функциональности и сферы практического применения. Выбор инструментальных средств разработки. Проектирование структур баз данных и алгоритмов, пользовательского интерфейса.
дипломная работа [3,1 M], добавлен 19.01.2017Требования к функциям и задачам, выполняемым системой "Подбор кредита ОАО "Россельхозбанк". Проектирование архитектуры программного продукта. Структурная схема программного продукта. Описание компонент программного обеспечения. План менеджмента проекта.
курсовая работа [684,0 K], добавлен 03.05.2015Анализ области автоматизации. Проектирование пользовательского интерфейса и баз данных. Выбор платформы создания информационной системы. Взаимодействие приложения с источниками данных. Оценка длительности и стоимости разработки программного обеспечения.
дипломная работа [2,2 M], добавлен 09.08.2011Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.
курсовая работа [1,6 M], добавлен 23.02.2016