Главная страница

веб-сайт частной медклиники. Автоматизированная информационная система на основе вебтехнологий для частной медицинской клиники


Скачать 4.65 Mb.
НазваниеАвтоматизированная информационная система на основе вебтехнологий для частной медицинской клиники
Дата26.04.2023
Размер4.65 Mb.
Формат файлаdocx
Имя файлавеб-сайт частной медклиники.docx
ТипДокументы
#1091969
страница9 из 14
1   ...   6   7   8   9   10   11   12   13   14

3. Разработка веб-приложения

3.1 Выбор системы управления базами данных


Чтобы упростить работу с такими хранилищами данных и повысить эффективность их применения, создаются специализированные системы управления базами данных. Одной из таких СУБД является MySql.

Это реляционная система управления базами данных. Таково официальное определение. 

MySQL создавалась силами шведских разработчиков из одноименной компании в 1994 году. Тогда и состоялся ее релиз под свободной лицензией. Позже компанию поглотила Oracle. MySQL распространяется бесплатно и входит в стандартный набор утилит LAMP для разработки сайтов на базе Linux.

MySQL — не единственная в своем роде. Но системы управления базами данных часто ассоциируют конкретно со шведской разработкой. Доходит до того, что серверы баз данных с любым ПО называют MySQL. Все благодаря ее популярности и признанности среди крупных корпораций. Ее используют в Facebook, YouTube, Google и тысячах других IT-компаний.

MySQL — это популярная СУБД с моделью «клиент-сервер». Поэтому часто можно услышать от других разработчиков словосочетание «MySQL-сервер». Это действительно сервер, только сервер базы данных. Он создан для обеспечения доступа к данным для других сервисов и приложений. 

Принцип работы MySQL-серверов.

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

Технически немного иные, но по своей сути идентичные процессы происходят в среде MySQL:

  • Система создает базу данных для хранения информации (ее сортировки, идентификации и т.п.).

  • Клиенты (другие компьютеры в сети) подают запросы к базе с помощью специфичных для SQL команд.

  • Серверное приложение обрабатывает запрос и выдает ответ клиенту (выдает запрашиваемые данные).

Для взаимодействия с MySQL-сервером используются соответствующие утилиты. Некоторые работают только в командной строке. Некоторые награждены графическим интерфейсом. Популярные решения – WorkBench, SequelPro, SQL Studio, TablePlus. Правда, большинство вебмастеров предпочитает phpMyAdmin, так как та входит в LAMP и работает в браузере.

    1. Теоретические основы разработки web-приложения


Виды web-приложений.

Web-приложение — это приложение, одна часть которого загружается в браузер и взаимодействует с пользователем (визуально-интерфейсная часть), а другая находится на web-сервере и выполняет запросы, поступающие от первой, а затем возвращает ответ. Часть, которая загружается в браузер и с которой взаимодействует пользователь, называется клиентской частью (фронтенд). На web-сервере находится серверная часть web-приложения (бэкенд).

Различия между web-приложением и web-сайтом представлены таблице 3.

Таблица 3 – Различия между web-приложением и web-сайтом

Web-сайт

Web-приложение

Позволяет просматривать данные

Позволяет манипулировать данными

Можно пользоваться без аутентификации

Требуется аутентификация

Выдает заранее подготовленные HTML-страницы, в основном, со статическими файлами

Фрагменты HTML-страницы генерируются и обновляются «на лету»

Проще в разработке; меньше настроек для посетителя

Требует разработки; дает больше настроек для пользователя. Это порождает сложность, обратная сторона чего — потенциальные ошибки


Преимущества web-приложений.

Web-приложение обладает многими преимуществами, в том числе перечисленными ниже:

  • не требует установки на жесткий диск и поэтому не занимает много пространства;

  • не требует обновления, потому что обновляется централизованно;

  • пользоваться можно с любого устройства, на котором есть web-браузер;

  • не зависит от платформы и операционной системы (ОС): если web-приложение совместимо с браузером, оно работает;

  • разработчику не требуется создавать клиентские приложения для разных ОС, потому что используется браузер.

Архитектура web-приложения.

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

Серверные web-приложения.

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

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

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 информационные блоки — это публикации в ленте, истории, рекомендации, а элементы управления — кнопки вкладок.

1   ...   6   7   8   9   10   11   12   13   14


написать администратору сайта