Диплом: Адаптивная динамическая информационная система управления сайтом

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
15
следует то, что в ней будут описаны подпроекты Spring, и уж тем более
сторонние фреймворки (такие, как Hibernate и Enterprise Java Beans).
Книга [14] является обновленной версией книги [13], и описывает самую
последнюю версию Spring Framework 4. В книге рассматриваются начало
работы с платформой Spring Framework, использование инверсий управления
(англ. Inversion of Control, IoC), внедрения зависимостей (англ. Dependency
injection, DI), применение аспектно-ориентированного программирования,
доступ и хранение данных с использованием Spring Framework, Hibernate,
MyBatis, JPA 2. Книга интересна своей актуальностью, несмотря на порой не
совсем качественный перевод.
В книге [12] описаны версия Spring Framework версии 3, язык
выражений SpEL, новые аннотации для работы с контейнерами IоС и
поддержка архитектуры REST (сокр. от англ. Representational State Transfer —
«передача состояния представления»). В данной книге затронут очень важный
вопрос сокращения XML конфигурации приложений при помощи
использования Java аннотаций. На данный момент — это очень актуально в
связи с тенденцией полного отказа от XML конфигурации, так как это сильно
упрощает конфигурирование приложений. Так же в книге довольно подробно
описана работа с базами данных с использованием JDBC, дано понятие классов
поддержки DAO, раскрыта тема управления транзакциями. Большая глава
книги посвящена теме обмена сообщениями Java Message Service (JMS), и
внедрению Enterprise Java Beans в приложения, построенные на платформе
Spring. Недостатком книги является довольно большой и совершенно не
актуальный раздел, посвященный безопасности Веб-приложений.
Книга [11] дает представление о библиотеке Spring Security, которая
является частью платформы Spring и используется для обеспечения
безопасности веб-приложений. В книге чрезвычайно широко рассмотрены
архитектура и дизайн библиотеки, показан механизм фильтров безопасности,
описан процесс создания фильтров, пользователей и их ролей безопасности. Без
16
всякого сомнения можно заявлять, что в данной книге есть вся информация для
успешной разработки защищенных приложений с использованием данной
библиотеки. Единственными недостатками данной книги можно считать
приверженность автора к XML конфигурации и отсутствие русскоязычного
варианта книги.
Несмотря на то, что в данной выпускной квалификационной работе для
работы с базой данных используется ORM библиотека Hibernate, что
подразумевает практически полное отсутствие запросов к базе с
использованием языка запросов SQL, совершенно необходимо иметь
представление как о самом языке запросов, так и о особенностях работы
конкретной системы управления базами данных (СУБД). Данное приложение
использует СУБД SQL Server 2014, что и повлияло на используемые
литературные источники.
Книга [8] позиционируется корпорацией Microsoft как официальный
учебный курс. В книге описано создание обьектов баз данных (баз данных,
таблиц) с помощью языка запросов Transact-SQL, описаны типы данных,
описано формирование как вложенных, так и статических запросов,
модификация данных и оптимизация запросов к базам данных. Книга может
использоваться как справочник, так и как учебное пособие для подготовки к
экзамену 70-461 для получения сертификата MCSA SQL Server 2012.
В книге [9] основной упор сделан на администрировании СУРБД
Microsoft SQL Server 2012, соответственно в ней содержатся подробные
сведения о настройке клиентов, серверов и служб SQL Server,
конфигурировании использования памяти, процессоров и подключений. Также
в ней рассмотрен вопрос о локальном и удаленном управлении серверами
Microsoft SQL Server, создании групп серверов, регистрации серверов как при
помощи SSMS (SQL Server Management Studio), так и при помощи PowerShell и
политик. В книге имеется информация о настройке баз данных, таблиц баз
данных, представлений, индексов и журналов транзакций и вопросы
17
автоматизации работы с СУРБД Microsoft SQL Server 2012 и ее обслуживанию:
архивации, восстановлению, мониторингу, а также выявлению и устранению
возможных неполадок.
Книга [10] интересна в первую очередь тем, что в ней рассматриваются
установка, настройка, администрирование и разработка баз данных с помощью
вполне актуальной на данный момент редакции СУРБД Microsoft SQL Server
2014. Также в книге рассмотрены вопросы создания баз данных и основных ее
объектов: таблиц, индексов, представлений, хранимых процедур и функций,
триггеров и показана работа средств отображения объектов и их характеристик.
Стоит обратить внимание что не существует критической (для этой работы)
разницы между СУРБД Microsoft SQL Server 2012 и 2014, но в любом случае,
очень полезно иметь информацию о различиях между ними, и нововведениях
последней версии.
Книга Madhusudhan Konda Just Hibernate [7] посвящена ORM (англ.
Object-Relational Mapping, рус. объектно-реляционное отображение)
библиотеке Hibernate, и включает в себя описание сущностей, аннотаций, языка
запросов Hibernate, типов данных, кеширования и наследования. Особое
внимание в книге уделено практической части с фрагментами кода, что
позволяет довольно быстро получать результаты на относительно несложных
задачах. Стоит лишь добавить, что книгу не следует рассматривать как полное
руководство по Hibernate, и в любом случае необходимы обращения к полной
официальной документации на сайте разработчиков данной библиотеки.
В данной главе так же описываются основные понятия и термины,
используемые в данной выпускной квалификационной работе.
Система управления содержимым (контентом) (англ. Content
management system, CMS) - информационная система или компьютерная
программа, используемая для обеспечения и организации совместного процесса
создания, редактирования и управления контентом (то есть содержимым) [18].
Основными функциями систем управления содержимым являются
18
предоставление инструментов для создания, управления, публикации
содержимого и представление информации в удобном для навигации и поиска
виде.
Платформа Java - ряд программных продуктов и спецификаций
корпорации Oracle, которые совместно предоставляют систему для разработки
прикладного программного обеспечения и встраивания её в любое
кроссплатформенное программное обеспечение [19]. Платформа Java широко
используется в различных компьютерных системах, начиная от встраиваемых
систем, до корпоративных серверов и суперкомпьютеров. Одной из важнейших
составляющих платформы является виртуальная машина Java (англ. Java Virtual
Machine, JVM), которая служит для исполнения байт-кода Java, который в свою
очередь создается компилятором Java (javac), а учитывая то, что виртуальная
машина Java доступна для подавляющего числа аппаратных и программных
платформ и то, что на всех платформах используется одинаковый байт-код, то
любое программное обеспечение написанное под платформу Java будет
одинаково работать на большинстве программно-аппаратных платформах.
Программная же платформа Java включает в себя следующие пакеты программ:
Java Card: Технология, позволяющая небольшим Java-приложениям
надежно работать на устройствах c малым объёмом памяти, таких
как смарт-карты, сим-карты, кредитные карты.
Java Micro Edition (Java ME): Технология, включающая в себя
несколько наборов библиотек (или профилей) для устройств с
ограниченной вычислительной мощностью, ограниченным объёмом
места для хранения информации, небольшим размером дисплея и
маленькой емкости батареи. Технология используется
преимущественно для разработки приложений для мобильных
устройств, КПК и ресиверов цифрового телевидения. На данный
момент технология уже считается устаревшей.
Java Standard Edition (SE) - стандартная версия платформы Java,
предназначенная для создания и выполнения приложений,
19
рассчитанных на индивидуальное пользование или на
использование в масштабах малого предприятия. Java SE включает
в себя как содержит фундаментальные классы и интерфейсы, так и
классы для работы с базами данных (JDBC), классы для создания
графических интерфейсов (Swing), и многие другие. На данный
момент актуальной версией является Java Standard Edition 8.
Java Enterprise Edition (Java EE) спецификация, расширяющая
платформу Java SE, и описывающая архитектуру серверной
платформы для задач средних и крупных предприятий. Java EE в
основном ориентирована на использование её в качестве веб-
приложений, причем как в интернете, так и в локальных сетях
предприятий, причем Java EE является промышленной технологией
и часто используется в высокопроизводительных проектах, в
которых необходима надежность, масштабируемость и гибкость.
Платформа Java Enterprise Edition 7 включает в себя такие
технологии, как Enterprise Java Beans (EJB), Java Persistence API
(JPA), Java Servlets, Java Server Pages (JSP), JavaServer Pages
Standard Tag Library (JSTL), Java Server Faces (JSF), Java API for
XML Based Web Services (JAX-WS), Java API for RESTful Web
Services (JAX-RS), Java Naming and Directory Interface (JNDI), Java
Message Services (JMS), JTA, JAAS, JavaMail, JACC, JCA, JAF,
StAX, CDI, и некоторые из них будут описаны ниже. На основе
спецификации Java EE создан фреймворк Spring, который широко
используется в данном проекте.
Язык программирования Java - объектно-ориентированный язык
программирования, разработанный компанией Sun Microsystems (в
последующем приобретённой компанией Oracle). Приложения Java обычно
транслируются в специальный байт-код, поэтому они могут работать на любой
виртуальной Java-машине вне зависимости от компьютерной архитектуры. [20].
20
Основными возможностями языка являются автоматическое управление
памятью, расширенные возможности обработки исключительных ситуаций
(Exceptions), богатый набор средств ввода-вывода, набор стандартных
коллекций (массив, список, стек), наличие простых средств создания сетевых
приложений, наличие классов, позволяющих выполнять и обрабатывать HTTP-
запросы и ответы, встроенные средства создания многопоточных приложений,
унифицированный доступ к базам данных, поддержка обобщений (Generics),
поддержка лямбд-выражений. Язык как, и платформа постоянно развивается, и
дополняется новыми возможностями с каждым выпуском.
Java Persistence API (JPA) - интерфейс прикладного программирования
нгл. Application Programming Interface, API) входящий с версии Java 5 в состав
платформ Java SE и Java EE, предоставляющий возможность сохранять в
удобном виде Java-объекты в базах данных [21]. Существует несколько
реализаций интерфейса JPA, например, EclipseLink, ActiveJDBC, EJB или более
распространённая реализация Hibernate. Java Persistence API реализуя
концепцию ORM, использует POJO (Plain Old Java Object) классы сущности
(Entity), к которым предъявляются особые требования:
1) Класс обязан иметь пустой конструктор
2) Класс не может быть вложенным, быть интерфейсом или типом enum.
3) Класс не может иметь модификаторов final и не может содержать final-
поля или свойства.
4) Класс должен содержать хотя бы одно поле @Id (обозначающее
первичный ключ).
5) Должны быть созданы методы геттеры и сеттеры.
Стоит заметить, что в сторонних реализациях обязательные требования могут
различаться, поэтому в случае их использования необходимо обращаться к
официальной документации производителя реализации.
21
Объектно-реляционное отображение (англ. Object-Relational Mapping,
ORM) - технология программирования, которая связывает базы данных с
концепциями объектно-ориентированных языков программирования, создавая
«виртуальную объектную базу данных» [22]. ORM позволяет разработчику
работать с обьектами баз данных таким же образом, как и с обычными
обьектами в объектном-ориентированном программировании.
Hibernate - библиотека для языка программирования Java,
предназначенная для решения задач объектно-реляционного отображения
(object-relational mapping — ORM) [23]. Главной задачей библиотеки является
освобождение разработчика от низкоуровневого программирования по
обеспечению создания и хранения объектов в реляционных базах данных.
Hibernate используется как для проектирования классов-сущностей и таблиц “с
нуля”, так и для работы с существующими базами данных.
Библиотека Hibernate решает задачу связи классов-сущностей Java с
таблицами базы данных (с приведением типов данных Java к типам данных
SQL) и предоставляет средства для генерации и обновления таблиц, построения
запросов и обработки полученных данных, что значительно уменьшает время
разработки. Hibernate также автоматически генерирует SQL-запросы и
освобождает разработчика от ручной обработки данных, что облегчает
портирование приложений на базы данных SQL различных поставщиков (часто
для этого стоит только сменить диалект Hibernate).
Соединение с базами данных на Java (англ. Java DataBase Connectivity,
JDBC) - платформенно-независимый промышленный стандарт взаимодействия
Java-приложений с различными СУБД, реализованный в виде пакета java.sql,
входящего в состав Java SE [24].
Enterprise Java Beans (EJB) - спецификация технологии написания и
поддержки серверных компонентов, содержащих бизнес-логику. Является
частью Java EE [25]. Используется для поддержки сохранности данных (Java
Persistence API), распределённых транзакций, поддержки параллельного
22
изменения данных и многопоточности, событий, автоматизированной
установки на сервер приложений (deploy), безопасности и ограничения доступа
к данным.
Java Server Faces (JSF) - фреймворк для веб-приложений, написанный на
Java [26]. Он служит для облегчения разработки пользовательских интерфейсов
для Java EE-приложений. В отличие от прочих MVC-фреймворков, которые
управляются запросами, подход JSF основывается на использовании
компонентов. Состояние компонентов пользовательского интерфейса
сохраняется в том случае, когда пользователь запрашивает новую страницу и
затем восстанавливается, если запрос повторяется. Для отображения данных
обычно используется JSP, Facelets, но JSF можно приспособить и под другие
технологии, например, XUL. На основе JSF создано большое количество
шаблонизаторов, один из которых (Freemarker) используется в данной работе.
FreeMarker [27] является технологией серверных шаблонов с
поддержкой Java и высокой степенью интеграции со Spring Framework. Так же
в нем присутствует полная поддержка стандартов XML, XHTML и HTML5.
Интересной особенностью является остановка развертки приложения, при
наличии не валидной разметки.
Фреймворк (англ. Framework) – является каркасом программных систем,
который может включать в себя вспомогательные программы (модули),
библиотеки кода, языки сценариев, системы сборки и управления
зависимостями и другое программное обеспечение, которое облегчает
разработку больших программных проектов, в основном за счёт использования
единого и совместимого API (англ. application programming interface).
Spring Framework - Гибкая, легкая платформа разработки с открытым
исходным занимает лидирующее место среди инфраструктур для разработки
приложений с использованием Java EE. Она работает в тесной интеграции с
другими гибкими и облегченными Java-технологиями с открытым кодом,
23
такими как Hibernate, Groovy, MyBatis. Spring Framework отлично
взаимодействует с Java EE.
Spring Boot является составной частью Spring Framework, и представляет
из собой инструмент для создания каркаса приложения. Он удобен в первую
очередь тем, что разработчик не тратит времени на настройку связей проекта с
серверами приложений. Чрезвычайно важно отметить, что spring boot не
генерирует код приложения (Absolutely no code generation and no requirement for
XML configuration), то есть он не является средством автоматического создания
приложений.
Spring Security - библиотека, являющаяся частью Spring Framework.
Единственной ее задачей является обеспечение безопасности приложения.
Gradle - система автоматической сборки проектов, использующая DSL
(язык, специфический для предметной области) на языке Groovy, в котором
порядок выполнения задач определяется отношениями зависимостей. Gradle
очень хорошо себя показывает на расширяющихся много-проектных сборках, и
поддерживает инкрементальные сборки, автоматически определяя, какие
компоненты сборки не изменились и какие зависимые задачи не требуют
перезапуска. Стоит заметить, что Gradle не конфликтует с системой сборки
Maven, при условии соблюдения описаний зависимостей, что позволяет с
некоторыми допущениями использовать две системы сборки одновременно.
Maven – система автоматизированной сборки проектов на основе
описания их структуры в файлах на языке POM (Project Object Model), который
является одним из подмножеств XML. Файлы описания проекта содержат его
спецификации, а не отдельные команды выполнения (в отличии, например, от
Ant или Make). Все задачи по обработке, описанные в спецификации, Maven
выполняет посредством последовательной обработки встроенными и внешними
плагинами.
24
Apache Tomcat [28] - контейнер сервлетов с открытым исходным кодом,
разрабатываемый Apache Software Foundation. Реализует спецификацию
сервлетов и спецификацию JavaServer Pages (JSP) и JavaServer Faces (JSF) [26].
WildFly - сервер приложений Java EE с открытым исходным кодом,
разработанный компанией JBoss. Версии WildFly старше 8.1 называются по
именам героев мультсериала Южный парк (8.1.0 Кенни, 8.2.0 Твик) [29].
1.2. Основные этапы проектирования информационных систем
управления сайтом
Процесс создания информационных систем (ИС) описывается в
стандарте ГОСТ 34.601-90 [39], и содержит в себе восемь взаимосвязанных
стадий с включенными в них этапами. Стандарт допускает пропуск стадии
“Эскизный проект” и некоторых этапов на всех стадиях. Так же стандартом
допускается объединение стадий "Технический проект" и "Рабочая
документация" в единственную стадию "Технорабочий проект".
Первой стадией проектирования ИС является стадия формирования
требований к ИС, и содержит в себе три этапа:
1) на этапе обследования объекта и обоснования необходимости создания
ИС проводится сбор данных об объекте и осуществляемых видах
деятельности, проводится оценка качества функционирования объекта
ИС и осуществляемых видах деятельности, выявление проблем,
решение которых возможно и целесообразно средствами
автоматизации, производится оценка целесообразности создания ИС;
2) на этапе формирования требований пользователя к ИС проводится
подготовка исходных данных для формирования требований к ИС,
таких как характеристика ИС, описание требований к ИС, ограничение
возможных затрат на разработку, ввод в действие и эксплуатацию ИС,
ожидаемый от ИС эффект, условия создания и функционирования ИС,
и формулировка и оформление требований пользователей к ИС;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)