Файл: Особенности алгоритмизации при разработке WEB-приложений (Теоретические основы разработки web-приложений)..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 02.05.2023

Просмотров: 193

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Выбор системы управления базами данных обычно стоит между MySQL и PostgreSQL. Обе эти системы бесплатны, однако анализ показывает, что MySQL более популярна, а также обладает более удобным редактором. Разница по скорости выполнения некоторых операций, например, операций select или insert, можно оценить, как несущественную.

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

ORM (Object-Relational Mapping) - это технология программирования, позволяющая представлять записи в базе данных как объекты в языке программирования и наоборот. Для Java самым распространенным фреймворком, который берет на себя задачи ORM, является Hibernate [3].

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

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

Самыми распространенными аннотациями являются:

  • @Entity показывает, что данный класс является отражением базы данных;
  • @Table позволяет указывать данные о таблице, с которой связан данный класс;
  • @Id показывает, что данное поле является отражением главного ключа в таблице базы данных, которая соответствует данному объекту;
  • @Column позволяет указывать информацию о колонне, с которой связано поле;
  • @ManyToOne обозначает, что данное поле отражает связь "многие к одному";
  • @OneToMany обозначает, что данное поле отражает связь "один ко многим";
  • @ManyToMany обозначает, что данное поле отражает связь "многие ко многим".

Анализ показывает, что фреймворк Hibernate является весьма эффективным при создании Web-приложений.

Java Database Connectivity (JDBC) – является простым фреймворком для работы с базой данных. Он позволяет установить соединение между аппликацией и базой данных и высылать SQL запросы. Реализован в виде пакета java.sql и входит в состав JavaSE.

Соединение с базой данных реализовано в виде класса с интерфейсом java.sql.Connection. После этого можно создавать объекты типа Statement, которые содержат в себе SQL запрос. Существует три вида таких объектов:


  • Statement для запросов общего назначения;
  • PreparedStatement для запросов с параметрами;
  • CallableStatement для вызова хранимых процедур.

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

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

Если взаимодействие с приложением будет происходить через браузер, то интерфейс пользователя реализуется с использованием стандартных технологий HTML, CSS и JavaScript. Эти технологии поддерживаются всеми современными браузерами, поэтому приложением можно будет пользоваться на любом компьютере с доступом в Интернет.

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

AngularJS – это Javascript фреймворк с открытым исходным кодом, который разрабатывается и поддерживается компанией Google. AngularJS позволяет создавать быстрые одностраничные Web-приложения. Термин "одностраничные" означает, что браузер не перезагружает страницу для того чтобы показать пользователю новую информацию, а вместо этого получает ее с сервера и вставляет в указанное место на странице.

Кроме этого, AngularJS обладает двумя другими важными компонентами:

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

- Dependency Injection позволяет устанавливать связи между контроллерами и уменьшить количество повторяющегося кода.

Работа AngularJS основана на модели Model-View-Controller (рисунок 5).

Пользователь взаимодействует в View (Вид), изменяет данные в Model (Модели) через Data Binding или взывает функции из Controller (Контроллера). Контроллер работает с данными в Модели, а также взаимодействует с сервером. AngularJS обнаруживает изменения в Модели и изменяет Вид.

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

Рисунок 5 – Схематическая модель MVC для AngularJS

  • ng-app обозначает, что содержимое этого html элемента управляется с помощью приложения, написанного в AngularJS;
  • ng-controller определяет управляющий контроллер для текущего тэга;
  • ng-bind устанавливает одностороннюю связь с параметром;
  • ng-model устанавливает двустороннюю связь с параметром (two way data binding);
  • ng-repeat повторяет тэг указанное количество раз (полезен при создании таблиц данных);
  • ng-click вызывает определенное действие по нажатию на объект.

Twitter Bootstrap является фреймворком для визуального оформления Web-интерфейсов. Включает в себя готовые компоненты: кнопки, таблицы, формы, навигация и т.д. Все компоненты совместимы с большинством современных браузеров (Firefox, Chrome, Internet Explorer, Safari, Opera и т.д.). Twitter Bootstrap позволяет быстро создавать красивые интерфейсы, которые будут динамически меняться в зависимости от размера экрана устройства.

AngularUI – это библиотека для AngularJS, позволяющая создавать интерфейсы пользователя. Представляет собой Twitter Bottstrap, переписанный на AngularJS.

Приложение MASS широко использует различные элементы библиотеки: кнопки, таблицы, меню, формы, окна модальные, datapicker и пр.

Библиотека Google Charts, разработанная Google добавляет к AngularJS возможность рисования графиков. К достоинствам данной бесплатной библиотеки можно отнести:

  • большой выбор разных видов графиков;
  • совместимость с большинством современных браузеров;
  • возможность построения графиков в реальном времени.

В качестве источника информации для построения графика Google Chart использует Javascript объект, который содержит в себе информацию о всех координатах, которые нужно изобразить. Приложение MASS стрит графики на основе данных полученных в форме JSON от стороны сервера.

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

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

Заключение

Web-приложения более универсальны и практичны для конечного пользователя. Достаточно будет установить web-приложение на сервер, работающий под любой современной ОС, и можно пользоваться им через интернет на любом мобильном устройстве или компьютере, работающем под управлением Windows, Linux, Mac OS или какой-либо другой ОС. Если приложения сделаны качественно, то они будут работать одинаково хорошо в любом браузере, будь то Mozilla Firefox, Opera, Google Chrome, Internet Explorer или Safari.

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