Файл: Автоматизированная информационная система на основе вебтехнологий для частной медицинской клиники.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 288
Скачиваний: 3
СОДЕРЖАНИЕ
1.1 Описание предметной области
1.2 Обзор существующих аналогов
1.3 Моделирование бизнес-процессов
2. Проектирование веб-приложения
2.1 Требования к веб-приложению
2.1.1 Требования к структуре меню
2.1.2 Требования к структуре страниц
2.1.3 Требование к системе контроля доступа
2.1.4 Требование к хранению данных
2.1.5 Требования к программному обеспечению серверной части
2.1.6 Функциональные требования к системе
2.1.7 Требования к информационному обеспечению
2.1.8 Требования к надежности системы
2.1.9 Требования к безопасности системы и к обеспечению защиты информации
2.1.10 Требования к эргономике системы
2.1.11 Требования к эксплуатации системы, техническому обслуживанию, ремонту и хранению систем
2.1.12 Требования к патентной чистоте
2.1.13 Требования по стандартизации
2.2 Описание средств проектирования
2.3.1 Диаграмма вариантов использования
2.3.2 Диаграмма последовательности
2.4 Технология проектирования БД
3.1 Выбор системы управления базами данных
3.3 Инструменты разработки web-приложений
3.4 Особенности разработки web-приложений
3.7 Создание класса для работы с базой данных
Для формирования ответа бэкенд может обращаться к базе данных за нужной информацией для наполнения шаблона страницы.
Web-приложения с использованием AJAX.
При первом запросе к странице передается HTML-код каркаса. Код JavaScript асинхронно подгружает остальные фрагменты страницы и может «на лету» отправлять запросы на сервер и обрабатывать его ответы в формате XML (eXtended Markup Language) или JSON (JavaScript Object Notation). Эта технология называется «асинхронный JavaScript и XML» (Asynchronous JavaScript And XML, AJAX).
Клиентские приложения.
Вся нагрузка возложена на клиентскую сторону. Сервер только доставляет HTML-код со ссылками на стили и сценарии JavaScript, а эти сценарии обеспечивают логику, отображение и подгружают нужный контент.
Все взаимодействие с пользователем происходит на одной странице, поэтому такие приложения называют одностраничными (single page applications, SPA). Пользователь выполняет некоторые действия, отправляет запрос и получает ответ без перезагрузки страницы.
Для создания одностраничных web-приложений используются такие фреймворки, как, например, Ember.js, Angular, React, Backbone.js и Vue.js.
Прогрессивные web-приложения.
Прогрессивные web-приложения (англ. progressive web application, PWA) — это web-приложения, разработанные с помощью определенных специальных технологий и стандартных шаблонов, что позволяет им пользоваться преимуществами десктопных и web-приложений.
Прогрессивные web-приложения могут хранить данные на стороне клиента, поэтому ими можно пользоваться без подключения к интернету и работа с данными ведется быстрее.
Они обладают следующими характеристиками:
-
доступность для поиска: контент можно найти через поисковики; -
возможность установки: приложения доступны с домашнего экрана устройства или в средстве запуска приложений; -
возможность создания ссылок: можно передать ссылку на прогрессивное web-приложение другому пользователю; -
независимость от сети: работают без подключения к интернету или при слабом подключении; -
прогрессивное усовершенствование: доступны на базовом уровне в старых браузерах, а полный функционал доступен в новых браузерах; -
повторное привлечение: когда доступен новый контент, приложение может отправлять уведомления; -
адаптивный дизайн: доступны на любых устройствах с экраном и браузером, в том числе на мобильном телефонах, планшетах, ноутбуках, телевизорах, холодильниках и т.п.; -
безопасность: соединение между пользователем, приложением и сервером защищено, и третьи стороны не могут получить доступ к конфиденциальным данным.
Принципы работы web-приложений.
Web-приложения состоят из серверной части (back-end, бэкенд) и клиентской части (front-end, фронтенд). Пользователи взаимодействуют с клиентской частью через интерфейс, который отображается в браузере (Chrome, Firefox, Safari, Edge и др.). По команде пользователя запрос отправляется на сервер через интернет. На сервере его обрабатывает серверный код и возвращает клиенту ответ, данный фрагмент представлен на рисунке 12.
Рисунок 13 – Возвращение клиенту ответа
В ответе может содержаться как готовая HTML-страница, так и шаблон страницы или данные, например, в формате XML или JSON. Это зависит от выбранного типа рендеринга (формирования) страницы. То есть, страница может отправляться вообще без изменений (статическая страница) или же бэкенд вносит в нее изменения, после чего отправляет ее браузеру (динамическая страница). Рендеринг может производиться либо полностью на сервере, либо в разных соотношениях распределяться между сервером и клиентом, либо выполняться только клиентом.
Статические и динамические страницы.
Страницы первых web-сайтов содержали только текст в формате HTML. Со временем добавились изображения и таблицы, но web-страницы оставались статическими в прямом смысле слова. Со временем появились технологии, которые позволили придать им динамику. Эту эволюцию мы рассмотрим подробнее в следующих подразделах.
Обработка статических web-страниц.
Клиент отправляет серверу навигационный запрос. В ответ на этот запрос сервер передает клиенту статическую web-страницу без изменений. Весь ее контент (текст, изображения и т.д.) каждый раз выводится одинаково. Этот контент «жестко» закодирован в самой странице.
Обработка динамических страниц.
Бэкенд.
В 1993 году появилась спецификация Common Gateway Interface (CGI). Это интерфейс, который используется программой для связи с web-сервером. Такая программа называется шлюзом. Шлюз может быть написан на любом языке программирования, который использует стандартный ввод-вывод: C/C++, Fortran, PERL, TCL, любая оболочка Unix (shell), Visual Basic, AppleScript. На практике большинство сценариев было написано на Perl.
Эти сценарии позволяли использовать один и тот же шаблон, чтобы наполнять его разным контентом. Таким образом, страницы стали динамически генерироваться на сервере в тексте сценария. В то же время, с точки зрения отклика на действия пользователя в режиме реального времени страницы оставались статическими.
В 1995 году с возникновением JavaScript появилась возможность реагировать на действия пользователя мгновенно и открывать всплывающие окна. Web-страницы оживились. В этом же году был создан язык PHP. Он позволял объединять HTML-код с логикой.
Выгода — не приходится создавать каждую страницу отдельно. Один и тот же код выполняет рендеринг любой страницы. Такой рендеринг называется серверным рендерингом (server-side rendering, SSR). Сервер обрабатывает запрос, формирует страницу из шаблона, а клиент получает готовую полнофункциональную HTML-страницу.
Сейчас для написания кода бэкенда используется множество языков и специальных фреймворков. Самые популярные — это Java (с использованием Java Servlet API), PHP + Laravel, Python + Django, Node.js, языки платформы .NET (C#, VB) + ASP.NET, Ruby + Ruby on Rails и Go. Выбор конкретного языка и фреймворка зависит от характера решаемых задач.
Доступ к базе данных.
Список продуктов с информацией о них может храниться в базе данных (БД). С ней взаимодействует серверный код. Он может читать данные из базы, добавлять, изменять или удалять их. В качестве системы управления базой данных используются MySQL, PostgreSQL, Memcached, MongoDB, Redis и другие. Для работы с БД существует множество библиотек, ориентированных на различные серверные языки программирования.
Фронтенд.
Интерфейс web-приложения может передаваться браузеру не только в виде целой HTML-страницы. Например, в одностраничном приложении это каркас: мета-теги, ссылки на стили и на сценарии, а также элементы, в которые сценарий подставляет нужный контент.
Окончательный вид приложение приобретает после загрузки всего контента и задействования всех стилей. Но и после этого некоторые меню и списки формируются динамически при нажатии соответствующих кнопок, а некоторые обновляются в режиме реального времени. Например, комментарий к публикации можно отправить, не покидая страницу, и он отобразится, как только будет установлено, что он успешно добавлен в хранилище.
Фронтенд может содержать информационные блоки и элементы управления. Например, в Facebook информационные блоки — это публикации в ленте, истории, рекомендации, а элементы управления — кнопки вкладок.
3.3 Инструменты разработки web-приложений
Основные инструменты для web-разработки:
-
библиотеки JavaScript; -
инструменты web-разработки – интерфейсные среды (Front end Frameworks); -
фреймворки web-приложений; -
языки / платформы; -
базы данных; -
CSS препроцессоры; -
web-серверы; -
локальные сервера – Dev среда разработки.
Библиотеки JavaScript.
Javascript – один из самых популярных языков программирования в сети. Библиотека Javascript – это предварительно написанный скрипт на Javascript, который предоставляет более легкий доступ на всех этапах разработки web-cайта или приложения.
Библиотеки JavaScript:
-
jQuery: быстрая, маленькая и многофункциональная библиотека JavaScript. -
BackBoneJS: Дает JS-приложению коннект с моделями, представлениями, коллекциями и событиями. -
D3.js: библиотека JavaScript для управления документами на основе данных. -
React: библиотека Javascript Facebook, разработанная для создания пользовательских интерфейсов. -
Пользовательский интерфейс jQuery: Набор взаимодействий, эффектов, виджетов и тем пользовательского интерфейса. -
jQuery Mobile: система пользовательского интерфейса на основе HTML5, предназначенная для создания адаптивных web-сайтов. -
Underscore.js: помощники по функциональному программированию без расширения каких-либо встроенных объектов. -
Moment.js: помогают анализировать, проверять, манипулировать и отображать даты в JavaScript. -
Lodash: современная библиотека утилит, обеспечивающая модульность, производительность и дополнительные возможности. -
Vue.js: среда JavaScript с открытым исходным кодом, используемая для создания пользовательских интерфейсов.
Инструменты web-разработки – интерфейсные среды (Front end Frameworks).
Предназначены для фронтенд разработки и обычно состоят из пакета, состоящего из других файлов и папок, таких как HTML, CSS, JavasScript и т.д. Существует также множество автономных фреймворков. Надежная структура таких пакетов может быть важным инструментом для разработчиков фронтенда.
-
Bootstrap: HTML, CSS и JS-фреймворк для разработки адаптивных мобильных проектов в Интернете. -
Foundation: семейство адаптивных интерфейсных сред, которые позволяют легко создавать красивые адаптивные web-сайты, приложения и электронные письма, которые выглядят потрясающе на любом устройстве. -
Semantic UI ("Семантический пользовательский интерфейс"): среда разработки, которая помогает создавать красивые адаптивные макеты с использованием удобного HTML. -
Uikit: легкий и модульный интерфейс для разработки быстрых и мощных web-интерфейсов.
Фреймворки web-приложений.
Фреймворки web-приложений – это программный каркас, предназначенный для помощи и снятия головной боли при разработке web-приложений и сервисов.
-
Ruby: Ruby on Rails – это инфраструктура web-приложений, которая включает в себя все необходимое для создания web-приложений на основе базы данных с шаблоном MVC. -
AngularJS: позволяет расширить словарный запас HTML для web-приложения. AngularJS – это фреймворк, хотя он гораздо более легкий и иногда называется библиотекой. -
Ember.js: платформа для создания амбициозных web-приложений. -
Express: быстрый и минималистичный web-фреймворк для Node.js. -
Meteor: полнофункциональная платформа приложений JavaScript, которая собирает все части, необходимые для создания современных web-приложений и мобильных приложений, с единой базой кода JavaScript. -
Django: web-инфраструктура Python высокого уровня, которая способствует быстрой разработке и чистому, прагматичному дизайну. -
ASP.net: бесплатная полностью поддерживаемая платформа web-приложений, которая помогает создавать web-решения на основе самых современных web-стандартов. -
Laravel: бесплатный фреймворк для web-приложений с открытым исходным кодом для создания web-приложений по шаблону MVC. -
Zend Framework 2: платформа с открытым исходным кодом для разработки web-приложений и сервисов с использованием PHP. -
Phalcon: полнофункциональный PHP-фреймворк, поставляемый как C-расширение. -
Symfony: набор PHP-компонентов и каркас web-приложения. -
CakePHP: популярная среда PHP, которая делает создание web-приложений проще, быстрее и требует меньше кода. -
Flask: микрофрейм для Python, основанный на Werkzeug и Jinja 2. -
CodeIgniter: мощный и легкий PHP-фреймворк, созданный для разработчиков, которым необходим простой и элегантный инструментарий для создания полнофункциональных web-приложений.
Языки / Платформы.
За всеми инструментами web-разработки стоит язык. Язык программирования является формальным языком, предназначенным для построения связи с компьютером чтобы программист мог удобно и максимально быстро создавать программы.
-
PHP: популярный язык сценариев общего назначения, который особенно подходит для web-разработки. -
NodeJS: управляемая событиями среда ввода-вывода на стороне сервера JavaScript, основанная на V8. -
Javascript: язык программирования HTML и web. -
HTML5: язык разметки, последняя версия HTML и XHTML. -
Python: язык программирования, который позволяет работать быстрее и более эффективно интегрировать системы. -
Ruby: динамический язык программирования с открытым исходным кодом и с упором на простоту и производительность. -
Scala: чистый объектно-ориентированный язык, позволяющий постепенно и легко перейти к более функциональному стилю. -
CSS3: последняя версия каскадных таблиц стилей, используемых при фронтальной разработке сайтов и приложений. -
SQ: язык структурированных запросов, используемый с реляционными базами данных. -
Golang: язык программирования с открытым исходным кодом, позволяющий легко создавать простые, надежные и эффективные программы. -
Rust: язык системного программирования, который работает невероятно быстро, предотвращает ошибки и гарантирует безопасность потоков. -
Elixir: динамический, функциональный язык, предназначенный для создания масштабируемых и поддерживаемых приложений. -
TypeScript: язык программирования с открытым исходным кодом, представляющий собой расширенный набор JavaScript, который компилируется в простой JavaScript.