Веб-приложение для автоматизации учета правонарушений

Структура комитета государственной безопасности Республики Беларусь. Язык программирования PHP. Ограничения возможностей JavaScript. Архитектура клиент-сервер. Классы, реализующие непосредственно логику работы веб-приложения. Структура таблиц базы данных.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.08.2017
Размер файла 4,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования Республики Беларусь

Учреждение образования

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет компьютерных систем и сетей

Кафедра электронных вычислительных машин

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к дипломному проекту

на тему

Веб-приложение для автоматизации учета правонарушений

Студент А.А. Подосенова

Руководитель В.В. Ярошевич

Консультанты:

от кафедры ЭВМ М.М. Татур

по экономической части Л.И. Старова

Нормоконтролер А.С. Сидорович

МИНСК 2017

ВВЕДЕНИЕ

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

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

Основные направления деятельности Комитета государственной безопасности Республики Беларусь:

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

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

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

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

оперативную связь - в интересах правоохранительных органов.

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

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

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

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

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

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Структура комитета государственной безопасности Республики Беларусь

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

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

Деятельность Комитета государственной безопасности Республики Беларусь регламентирована законом Республики Беларусь «Об органах государственной безопасности Республики Беларусь» №390-З от 10 июля 2012 г.

Основные задачи КГБ Республики Беларусь:

– защита независимости и территориальной целостности Республики Беларусь;

– обеспечение национальной безопасности Республики Беларусь в политической, экономической, военной, научно-технологической, информационной, социальной, демографической и экологической сферах;

– оценка текущего состояния национальной безопасности Республики Беларусь;

– прогнозирование его развития, а также разработка и осуществление комплекса мер по предупреждению и выявлению угроз национальной безопасности Республики Беларусь;

– внесение в соответствии с законодательством Республики Беларусь предложений Президенту Республики Беларусь по обеспечению национальной безопасности Республики Беларусь;

– информирование Президента Республики Беларусь и по его

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

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

– организация и осуществление в пределах своей компетенции контрразведывательной деятельности и внешней разведки;

– предупреждение, выявление и пресечение террористической и иной экстремистской деятельности, организованной преступности и коррупции;

– предупреждение, выявление и пресечение незаконной миграции, незаконного оборота наркотических средств, психотропных веществ, их прекурсоров и аналогов;

– предупреждение, выявление и пресечение оружия, боеприпасов, ядерных материалов и их компонентов, а также иных объектов экспортного контроля, контрабанды;

– осуществление предусмотренных законодательством Республики Беларусь полномочий в сфере государственных секретов;

– обеспечение государственных органов и иных организаций правительственной и оперативной связью;

– организация и обеспечение в пределах своей компетенции криптографической и инженерно-технической безопасности шифрованной и других видов специальной связи в Республике Беларусь и организациях Республики Беларусь.

Контроль за деятельностью органов государственной безопасности осуществляют:

– президент Республики Беларусь;

– совет Министров Республики Беларусь в пределах полномочий, делегированных ему Президентом Республики Беларусь.

Надзор за точным и единообразным соблюдением органами государственной безопасности законов и иных актов законодательства Республики Беларусь обеспечивают:

– генеральный прокурор Республики Беларусь;

– прокуроры, подчиненные Генеральному прокурору, в пределах их компетенции.

Структура комитета государственной безопасности:

– управление КГБ по г. Минску и Минской области;

– управление КГБ по Брестской области;

– управление КГБ по Витебской области;

– управление КГБ по Гомельской области;

– управление КГБ по Гродненской области;

– управление КГБ по Могилевской области;

– управление военной контрразведки КГБ Республики Беларусь;

– государственное учреждение образования «Институт национальной

безопасности Республики Беларусь»;

– 14 отдельный полк правительственной связи Комитета государственной безопасности Республики Беларусь;

– автотранспортное государственное учреждение «Гараж оперативного назначения Комитета государственной безопасности Республики Беларусь»;

– государственное учреждение «Научно-технический центр Комитета государственной безопасности Республики Беларусь»;

– государственное учреждение «Санаторий «Лесное» Комитета государственной безопасности Республики Беларусь»;

– государственное учреждение «Военно-медицинское управление Комитета государственной безопасности Республики Беларусь».

1.2 Обзор существующих аналогов

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

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

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

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

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

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

При более подробном рассмотрении выделим следующие преимущества Access:

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

2) Расположения всех объектов, которыми оперирует Access в одном файле. Это позволяет без труда переносить программу на другие ПК.

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

4) Распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft.

5) Наличие возможности управления объектами Access через высокоуровневый, стандартный для пакета Office, язык программирования VBA.

6) Возможность создания в таблицах таких полей как Счетчик и OLE.

7) Возможность организации ссылочной целостности через удобный интерфейс - схема БД.

8) Наличие мастеров для создания тех или иных операций с программой.

9) Макросы.

10) Обработка на клиенте при определенных условиях только индексов и возврат с файл сервера данных по отобранным индексам.

11) Удобный визуальный редактор запросов (редактор запросов по образцу).

12) Наличие возможности программного управления транзакциями для поддержки целостности БД.

13) Наличие довольно неплохого оптимизатора запросов.

14) Проекты Access - один из лучших сред для разработки клиентской части к MS SQL Server.

15) Работа с ODBC, возможность интерактивной разработки запросов для различных СУБД.

16) Наличие RunTime версии.

17) Возможность защиты кода паролем и «компиляция» в mde/ade формат для распространения среди конечных пользователей.

Недостатки Access:

Сложности при расширяемости и обновлениях;

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

Трудности в разработке «нестандартного» графического интерфейса.

Склонность к разрушению БД при сетевых сбоях.

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

Низкая производительность при большом количестве пользователей при работе в классической ФС архитектуре.

Неудобный редактор запросов интерактивного SQL.

Нестрогая совместимость версий Access при разработке проектов с разными версиями MS SQL Server.

Обладает несложными способами защиты с использованием пароля БД (возможно применения дополнительных мер по защите от несанкционированного доступа с использованием процедур VBA).

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

Различие оформления инструкций запросов/функций в режимах конструкторов и исходном VBA коде.

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

1.3 Аналитический обзор

Веб-приложение для автоматизации учета правонарушений представляет собой веб-приложение, написанное на языке PHP установленное и настроенное на удаленном сервере под управлением Linux, предоставляющее интерфейс, с использованием HTML, CSS и JavaScript, для взаимодействия с системы с пользователем, посредством HTTP запросов, передавая данные в виде XML.

Веб-приложение - это клиент-серверное приложение, в котором клиентом выступает браузер, а сервером - веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. Для того чтобы получить представление о том, что такое веб-сервер, написанный на PHP, можно воспользоваться книгой «Разработка веб -приложений с помощью PHP и MySQL». [1]

Данная книга раскроет базовые аспекты по разработке веб -приложений, управляемых базами данных. В ней подробно описано применение PHP и MySQL для построения крупных коммерческих веб-сайтов. Одним из достоинств книги является то, что основное внимание в книге уделено реальным приложениям. Здесь рассматриваются как простые интерактивные системы приема заказов, так и различные аспекты электронных систем продажи и безопасности во взаимосвязи с созданием реального веб-сайта. Подробно описаны все стадии разработки множества типовых проектов на PHP и MySQL, в числе которых служба веб -почты, приложение поддержки веб-форумов и электронный книжный магазин. Заслуживают особого внимания главы, посвященные объектно-ориентированному программированию на PHP, динамической генерации документов, доступу к веб-службам с помощью XML и SOAP и созданию приложений Веб 2.0 с помощью AJAX.

1.4 Язык программирования PHP

PHP (Hypertext Preprocessor - Препроцессор Гипертекста) - это широко используемый язык сценариев общего назначения с открытым исходным кодом. [2]

PHP - язык программирования, специально разработанный для написания веб-приложений (скриптов, сценариев), исполняющихся на веб-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.

Огромным плюсом PHP, в отличие от, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. Пользователь даже может не знать, получает ли он обычный HTML-файл или результат выполнения скрипта.

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

1.5 MySQL

MySQL - это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных. [3]

MySQL отличатся хорошей скоростью работы, надежностью,

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

Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License).

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

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

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

Приложение на РНР, использующее для хранения информации базу данных (в частности MySql) всегда работает быстрее приложения, построенного на файлах. Дело в том, что базы данных написаны на языке C++, и написать на PHP программу, которая работала бы с жёстким диском эффективнее базы данных - задача неразрешимая по определению, поскольку программы на PHP в принципе работают медленнее, чем программы на C++, так как РНР - интерпретатор, а С++ - компилятор.

Таким образом, основное достоинство базы данных заключается в том, что она берёт на себя всю работу с жёстким диском и делает это очень эффективно.

1.6 Web-сервер Apache

Apache - это HTTP сервер, обладающий высокой надежностью и гибкостью, под HTTP сервером следует понимать программное обеспечение для обработки HTTP запросов. Основная работа Apache это обработка и ответ на HTTP запросы и генерирование динамическое содержание страниц. Гибкость достигается путем использования файла .htaccess, благодаря которому можно переопределять глобальные настройки сервера Apache. Выглядит это следующим образом. Apache имеет свои глобальные настройки, но при обращении к сайту он ищет файл .htaccess, считывает из него директивы и применяет их, а не глобальные. Обычно файл .htaccess лежит в корне сайта, и определяет настройки сервера для всего сайта, однако он может располагаться и в любом внутреннем каталоге сайта, определяя таким образом настройки сервера именно для этого каталога. Вебмастерами этот файл используется для настройки редиректов, обработки ошибок, безопасности, доступа, кодировки и т.д. [4]

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

На сегодняшний день Apache является одним из самых популярных ПО для веб-сервера. Его используют хостинг-провайдеры по всему миру.

1.7 HTML & CSS

HTML (от англ. HyperText Markup Language - язык гипертекстовой разметки) - стандартизированный язык разметки документов во всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык HTML интерпретируется браузерами; полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства. [5]

Под гипертекстом в этом случае понимается текст, связанный с другими текстами указателями-ссылками.

Язык HTML является приложением SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879.

Во всемирной паутине HTML-страницы, как правило, передаются браузерам от сервера по протоколам HTTP или HTTPS, в виде простого текста или с использованием шифрования.

HTML представляет собой достаточно простой набор кодов, которые описывают структуру документа. HTML позволяет выделить в тексте отдельные логические части (заголовки, абзацы, списки и т.д.), поместить на web-страницу подготовленную фотографию или картинку, организовать на странице ссылки для связи с другими документами.

HTML не задает конкретные и точные атрибуты форматирования документа. Конкретный вид документа окончательно определяет только программа-браузер на компьютере пользователя Интернета.

HTML также не является языком программирования, но веб-страницы могут включать в себя встроенные программы-скрипты на языках JavaScript и Visual Basic Script и программы-апплеты на языке Java.

Основными компонентами HTML являются:

– тег;

– атрибут;

– значение.

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

Атрибут HTML изменяет тег. Например, можно выровнять абзац или изображение внутри тега.

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

Теги представляют собой зарезервированные последовательности символов, начинающиеся с “<” (знака меньше) и заканчивающиеся “>” (знаком больше).

Закрытие тега отличается от открытия только наличием символа “/”.

1.8 JavaScript

JavaScript - прототипно-ориентированный сценарный язык программирования. Является реализацией языка ECMAScript (стандарт ECMA-262). [6]

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

JavaScript изначально создавался для того, чтобы сделать web-странички «живыми». Программы на этом языке называются скриптами. В браузере они подключаются напрямую к HTML и, как только загружается страничка - тут же выполняются.

Программы на JavaScript - обычный текст. Они не требуют какой-то специальной подготовки.

В этом плане JavaScript сильно отличается от другого языка, который называется Java.

JavaScript может выполняться не только в браузере, а где угодно, нужна лишь специальная программа - интерпретатор. Процесс выполнения скрипта называют «интерпретацией».

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

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

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

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

1) Создавать новые HTML-теги, удалять существующие, менять стили элементов, прятать, показывать элементы и т.п.

2) Реагировать на действия посетителя, обрабатывать клики мыши, перемещения курсора, нажатия на клавиатуру и т.п.

3) Посылать запросы на сервер и загружать данные без перезагрузки страницы (AJAX).

4) Получать и устанавливать cookie, запрашивать данные, выводить сообщения и многое, многое другое.

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

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

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

Большинство возможностей JavaScript в браузере ограничено текущим окном и страницей, которые приведены на рисунке 1.1.

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

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

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

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

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

Рисунок 1.1 - Ограничения возможностей JavaScript

Есть как минимум три замечательных особенности JavaScript:

- полная интеграция с HTML/CSS;

- простые вещи делаются просто;

- поддерживается всеми распространёнными браузерами и включён по умолчанию.

Поэтому JavaScript и является самым распространённым средством создания браузерных интерфейсов.

1.9 Архитектура клиент-сервер

«Клиент-сервер» - вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. [7]

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

Взаимодействие между клиентом и сервером происходит посредством

стандартных специальных протоколов, таких как TCP/IP.

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

Сервер может обслуживать нескольких клиентов одновременно. В этом случае говорят о многопользовательском режиме. Только не стоит понимать слово «одновременно» в буквальном смысле. Запросы выполняются сервером последовательно. Если одновременно приходит более одного запроса, то запросы устанавливаются в очередь. В данном случае очередь - это список невыполненных клиентских запросов. Иногда запросы могут иметь приоритеты. Приоритет - это уровень «важности» выполнения запроса. Запросы с более высокими приоритетами должны выполняться раньше.

Рисунок 1.2 - Архитектура клиент-сервер

Цикл выполнения запроса состоит из пересылки запроса и ответа между клиентом и сервером и непосредственным выполнением этого запроса на сервере.

Так как у нас разрабатывается web-приложение, то в качестве сервера у нас будет веб-сервер. Он представляет из себя то хранилище информационных ресурсов, предоставляемые пользователям в соответствии со стандартами протокола передачи данных HTTP.

Работа с документами веб-сервера осуществляется при помощи браузера (например, IE, Opera или Mozilla), который отсылает серверу запросы, созданные в соответствии с протоколом HTTP. В процессе выполнения задания сервер может связываться с другими серверами.

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

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

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

1.10 REST-сервис

REST (Representational state transfer) - это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web, который, как правило, используется для построения веб-служб. [8]

Пример такой системы продемонстрирован на изображении 1.3.

Рисунок 1.3 - REST-сервис

Системы, поддерживающие REST, называются RESTful-системами.

Данная технология стала популярной, когда она была подробно описана и представлена Роем Филдингом в его докторской диссертации под названием Architectural Styles and the Design of Network-based Software Architectures в 2000 году. Рой известен своими вкладами в развитие веба, в особенности HTTP.

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

Управление информацией сервиса - это целиком и полностью основывается на протоколе передачи данных. Наиболее распространенный протокол конечно же HTTP. Так вот, для HTTP действие над данными задается с помощью методов:

– GET (получить);

– PUT (добавить, заменить);

– POST (добавить, изменить, удалить);

– DELETE (удалить).

Таким образом, действия CRUD (Create-Read-Updtae-Delete) могут выполняться как со всеми 4-мя методами, так и только с помощью GET и POST.

Самое главное достоинство сервисов в том, что с ними работать может какая угодно система, будь то сайт, flash, программа и др. так как методы парсинга XML и выполнения запросов HTTP присутствуют почти везде.

2. СИСТЕМНОЕ ПРОЕКТИРОВАНИЕ

Изучив теоретические аспекты разрабатываемой системы и выработав список требований необходимых для разработки системы, разбиваем систему на функциональные блоки(модули). Это необходимо для обеспечения гибкой архитектуры. Такой подход позволяет изменять или заменять модули без изменения всей системы в целом.

В разрабатываемом веб-приложении можно выделить следующие блоки:

– блок представления;

– блок обработчиков событий представления;

– блок кэширования данных;

– блок обработки http-запросов;

– блок контроллеров;

– блок проверки прав доступа;

– блок сервисов;

– блок кэширования данных;

– блок взаимодействия с базой данных;

– база данных;

– блок формирования документов.

Структурная схема, иллюстрирующая перечисленные блоки и связи между ними приведена на чертеже ГУИР.400201.206 С1.

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

Рассмотрим функциональные блоки веб-приложения.

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

Блок обработчиков событий представления содержит набор JavaScrip-файлов, выделенных в некое подобие классов и контроллеров, а также плагинов, подключаемых для каждой из страниц. Подключаемые JavaScript-файлы делают страницу более динамичной, то есть осуществляют обработку событий, вызываемых пользователями, от простых, например, изменение внешнего отображения HTML-элемента, так и более сложных, проверка правильности заполнения формы и взаимодействия с сервером, клиентским приложением, приводящим к изменению разметки страницы без видимой для пользователя перезагрузки страницы, за это отвечает технология Ajax, расшифровывающая как Asynchronous Javascript and XML.

Технология AJAX обладает следующими общим достоинствами:

– возможность создания удобного web-интерфейса;

– активное взаимодействие с пользователем;

– частичная перезагрузка страницы, вместо полной;

– удобство использования.

AJAX использует два метода работы с веб-страницей: изменение web-страницы не перезагружая её, и динамическое обращение к серверу. Второе может осуществляться несколькими способами, в частности, XMLHttpRequest

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

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

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

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

Блок формирования документов содержит множество классов для работы с документами типа Microsoft Excel разных версий. Осуществляет формирование, сохранение файлов на сервере и передачу файлов пользователю. Структура файла генерируется автоматически в зависимости от типа запроса.

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

База данных совокупность данных хранимая на удаленном сервере, взаимодействие с которой осуществляется посредством предоставляемого функционала СУБД MySQL и языка структурированных запросов SQL.

Блок кэширования данных представляет собой прослойку классов между вызовом и вызываемой функции сервиса. Это значит, что, совершая вызов функции сервиса вызов происходит не на прямую, а через классы посредников. В каждом сервисе есть специальный метод, который возвращает набор функций, результаты которых необходимо кэшировать и для последующих запросов возвращать. При первом вызове таких методов происходит стандартная работа по подготовке данных для формирования запроса, формирование запроса, получения ответа и его обработка. Как только метод выполнит все возложенные на него обязанности и передаст результат работы, этот результат также пройдет через блок кэширования и эти данные будут сохранены. Повторный запрос к этому методу до сервиса уже не дойдет, так как данные уже будут возвращаться их серверного кэша, это достигается при использовании программного обеспечения memcached, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. С помощью клиентской библиотеки (для C/C++, Ruby, Perl, PHP, Python, Java, .Net и др.) позволяет кэшировать данные в оперативной памяти множества доступных серверов.

В API memcached есть только базовые функции: выбор сервера, установка и разрыв соединения, добавление, удаление, обновление и получение объекта, а также Compare-and-swap. Для каждого объекта устанавливается время жизни, от 1 секунды до бесконечности. При исчерпании памяти более старые объекты автоматически удаляются. Для PHP также есть уже готовые библиотеки PECL для работы с memcached, которые дают дополнительную функциональность.

3. ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ

В данном разделе подробно рассматривается функционирование программных модулей. Перечислены соответствующие классы и большинство их компонентов, описана структура и связи таблиц в базе данных. Состав и отношения основных классов показаны также на диаграмме классов (чертёж ГУИР.400201.206 РР.1).

3.1 Классы, реализующие непосредственно логику работы веб-приложения

К данным классам относятся прежде всего классы контроллеров их сервисов и моделей со своими менеджерами.

Контроллеры обрабатывают входящие запросы, действия пользователей. Принимают данные отправляемые пользователями и передают их на дальнейшую обработку своим сервисам. Контроллеры реализуют необходимую логику веб-приложения. Родительским классом контроллеров является класс Controller, содержащий основные возможности данных классов:

– предобработка данных;

– пост обработка данных;

– инициализация класса View, ответственного за формирование представления.

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

– проверка данных;

– формирование ошибок;

– построение постраничной навигации.

Основным классом приложения является класс Dispatcher. Его предназначение заключается в принятии запроса, определение контроллера, ответственного за обработку пришедшего запроса. Также инициализирует базовые свойства контроллера и определяет порядок выполнения его функций.

Контроллер, который был вызван классом Dispatcher, осуществляет:

– принятие входящих параметров;

– предобработку данных;

– вызов сервисов, с передачей им данных;

– принятие ответа от сервиса и его обработка;

– формирование ответа.

Все методы контроллера с являются так называемыми методами

действий. Методы действий представляют такие методы контроллера, которые обрабатывают запросы по определенному URL.

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

За поиск HTML-шаблонов и формирование разметки отвечает класс представления View. Класс контроллера вызывает отдельный компонент представления, который создает в качестве ответа HTML-разметку. За ответы в формате JSON отвечает класс JsonResponse, также вызываемый из класса контроллера.

3.1.1 Класс AccountController

Данный класс отвечает за доступ пользователя к системе.

Методы класса AccountController, приведены в таблице 3.1.

Таблица 3.1 - Методы класса AccountController

Метод

Описание

login

Осуществляет авторизацию пользователя и предоставление ему доступа к системе.

logout

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

3.1.2 Класс ConvictionsController

Данный класс отвечает за работу с осуждениями правонарушителей.

Свойства класса ConvictionsController, приведены в таблице 3.2.

Методы класса ConvictionsController, приведены в таблице 3.3.

Таблица 3.2 - Свойства класса ConvictionsController

Свойство

Описание

layout

Данное свойство отвечает за базовый шаблон представления. Обеспечивающий изменение внешнего вида страницы.

Таблица 3.3 - Методы класса ConvictionsController

Метод

Описание

сonvictions

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

Метод

Описание

createConviction

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

viewConviction

Предоставляет страницу с данными об осуждении.

editConviction

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

deleteConviction

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

3.1.3 Класс DefendantsController

Данный класс отвечает за работу с данными правонарушителей.

Методы класса DefendantsController, приведены в таблице 3.4.

Таблица 3.4 - Свойства класса DefendantsController

Метод

Описание

defendants

Предоставляет страницу со списком правонарушителей и связанными с ней функциями.

createDefendant

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

viewDefendant

Предоставляет страницу с данными о правонарушителе.

editDefendant

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

Метод

Описание

«Правонарушители». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных.

deleteDefendant

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

3.1.4 Класс ExcelController

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

Методы класса ExcelController, приведены в таблице 3.5.

Таблица 3.5- Методы класса ExcelController

Метод

Описание

getExcelDocument

Осуществляет формирование Excel-документов и передает их пользователю.

3.1.5 Класс IndexController

Данный класс отвечает за работу с общими и системными функциями системы.

Свойства класса IndexController, приведены в таблице 3.6.

Методы класса IndexController, приведены в таблице 3.7.

Таблица 3.6 - Свойства класса IndexController

Свойство

Описание

layout

Данное свойство отвечает за базовый шаблон представления. Обеспечивающий изменение внешнего вида страницы.

Таблица 3.7 - Свойства класса IndexController

Метод

Описание

jsDisabled

Предоставляет страницу с предупреждением о том, что у пользователя отключено или браузер не поддерживает использование JavaScript.

Метод

Описание

error404

Предоставляет страницу с 404 ошибки.

error

Предоставляет страницу с ошибкой.

clearData

Осуществляет удаление сессионной информации.

setDataToNextPage

Осуществляет передачу информации на следующую страницу.

3.1.6 Класс NoticesController

Данный класс отвечает за работу с извещениями, отправляемыми по месту работы правонарушителя.

Свойства класса NoticesController, приведены в таблице 3.8.

Методы класса NoticesController, приведены в таблице 3.9.

Таблица 3.8 - Свойства класса NoticesController

Свойство

Описание

layout

Данное свойство отвечает за базовый шаблон представления.

Таблица 3.9 - Свойства класса NoticesController

Метод

Описание

getCreateNotice

Предоставляет окно с формой создания, содержащей поля соответствующие полям из таблицы «Извещения».

createNotice

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

getEditNotice

Предоставляет окно с формой редактирования, содержащей поля соответствующие полям из таблицы «Извещения».

editNotice

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

deleteNotice

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

3.1.7 Класс PlacesWorkController

Данный класс отвечает за работу с данными о месте работы.

Методы класса PlacesWorkController, приведены в таблице 3.10.

Таблица 3.10 - Свойства класса PlacesWorkController

Метод

Описание

createPlaceWork

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

viewPlaceWork

Предоставляет страницу содержащей данные о текущем месте работы.

viewPlaceWorkInPrivateCase

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

editPlaceWork

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

deletePlaceWork

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


Подобные документы

  • Многоуровневые архитектуры клиент–сервер. Диаграммы классов, реализующих уровни презентации, бизнес–логики и базы данных приложения. Словесное описание процесса выполнения транзакций. Создание, изменение и удаление хранимых процедур, их выполнение.

    курсовая работа [3,4 M], добавлен 23.03.2013

  • Создание базы данных при помощи СУБД, разработка собственного приложения. Информационно-логическая модель рекламного агентства. Структура реляционной базы данных в Access. Заполнение таблиц информацией. Структура приложения и взаимодействия форм.

    курсовая работа [12,6 M], добавлен 17.06.2014

  • Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".

    практическая работа [26,0 K], добавлен 04.02.2015

  • Архитектура клиент-сервер на основе сокетов Windows. Описание утилиты Ipconfig. Конфигурирование стека TCP/IP. Реализация сокетов через классы NET. Структура библиотечных и пользовательских классов. Схема интерфейса пользователя и работы приложения.

    курсовая работа [419,5 K], добавлен 13.12.2012

  • Обзор существующего программного обеспечения. Структура и отличительные особенности формата MP3. Сокеты TCP/IP, клиент-сервер. Язык программирования Visual Basic.net в среде разработки Visual Studio 2008. Разработка приложения "MP3_Catalogizator".

    дипломная работа [2,1 M], добавлен 09.02.2015

  • Назначение и возможности разработанного приложения. Определение ограничения на таблицу в среде MS SQL Server. Структура базы данных: состав и содержание таблиц, SQL-код. Диалог пользователей с разработанным приложением, корректировка таблиц-справочников.

    курсовая работа [1,8 M], добавлен 30.04.2013

  • Описание основных используемых технологий и языков программирования. Язык программирования JavaScript. Таблица стилей CSS. Общая схема работы web-приложения. API система "1С-Битрикс: Управление сайтом". Формирование требований к сценариям работы.

    дипломная работа [186,4 K], добавлен 30.04.2014

  • Проектирование базы данных для автоматизации деятельности по учету автотранспорта ГИБДД Вяземского района. Выбор инструментария для разработки базы данных и приложения по её ведению. Описание интерфейса и физической структуры приложения баз данных.

    курсовая работа [2,2 M], добавлен 28.06.2011

  • Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.

    курсовая работа [1,0 M], добавлен 16.12.2012

  • Представление данных в памяти компьютера. Обобщенные структуры и модели данных. Методы доступа к информации. Физическая организация системы управления базами данных, структура сервера. Архитектура "клиент-сервер". Создание базы данных с помощью "Денвер".

    курсовая работа [770,3 K], добавлен 17.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.