База данных и Интернет

База данных и Интернет

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

У Web-приложений есть несколько преимуществ по отношению к классическим настольным (десктопным) приложениям:

  • ну, во-первых, если вы приобрели лицензию на использование такого приложения, то его не нужно устанавливать. Достаточно лишь использовать данные для авторизации, которые вам выдадут;
  • web-приложения не нужно обновлять — за вас это сделает разработчик. Для разработчика это также большой плюс, ведь обновлять и поддерживать программу ему нужно лишь у себя на хостинге;
  • не нужно скачивать и устанавливать у себя на компьютере приобретенное программное обеспечение.
  • web-приложение всегда кроссплатформенное. Конечно, современные системы разработки действительно дают возможность разработать кроссплатформенное (не web) приложение. Для этого используются разные технологии. Например, Java использует для этого виртуальную машину, а Delphi просто из одного проекта генерирует разные исполняемые файлы для разных операционных систем (платформ), что также достаточно удобно. Философское сравнение Delphi с другими и информационными системами можно почитать Delphi -лучшая классическая среда программирования.

Для рядового пользователя наберется еще много подобных плюсов, как и минусов:

  • зависимость от Интернета. Если у вас вдруг пропадет подключение к Интернет, то вы не сможете воспользоваться программой;
  • функционал web-приложений все-таки, не смотря, на развитость интернет-технологий, отстает от десктопного программного обеспечения. Я не думаю, например, что использовать Photoshop или CorelDraw в web-версии будет удобнее, чем в настольной. Я также не думаю, что тот же MS Officce в web-версии удобнее использовать, чем в десктопной.

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

Основные концепции интернет-технологий

Размещение информации из базы данных в Интернете подразумевает под собой ее публикацию на web-страницах HTML. Для этого используются разные технологии.

Вся информация, которую вы видите в сети Интернет, размещена на web-страницах. Для разработки данных страниц применяется язык разметки гипертекста HTML и его расширение XML.

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

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

Чтобы получить с web-сервера html-страницу, браузер формирует запрос, посредством ввода в адресную строку браузера URL-адреса страницы. Браузер и web-сервер соединяются друг с другом посредством протокола передачи данных в Интернете под названием HTTP (протокол передачи гипертекста). Современная версия этого протокола — HTTPS. Точнее говоря — это расширение протокола HTTP, поддерживающее безопасность передачи данных через Интернет (обычно посредством установки SSL-сертификата).

Чтобы расширить возможности web-сервера создается, так называемое программное расширение web-сервера. Для браузеров также создаются программные расширения. Схематически это выглядит так:

Браузер и веб сервер
Браузер и web-сервер

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

Сценарии пишутся на разных языках. Это может быть устаревший VBScript, JScript, современный и популярный JavaScript, а также супермодные системы, такие как Asm.js (который является более современной и лаконичной реализацией синтаксиса JavaScript) и WebAssembly, которые соперничают с JavaScript.

Также для взаимодействия web-сервера и браузера на языке Java пишутся апплеты и сервлеты. Хотя бытует мнение, что апплеты уже технологически устарели.

При взаимодействии web-сервера и браузера также может использоваться технология элементов управления ActiveX, консольный программы, созданные как по технологии CGI-интерфейса, программы с интерфейсом WinCGI, библиотеки .dll по технологии интерфейса ISAPI, динамические страницы IDC/HTX, а также страницы ASP и ASP.NET.

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

Сценарии, написанные на языках JavaScript, JScript и VBScript.

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

Такие скрипты являются расширением языка разметки гипертекста HTML и могут быть включены в тело документа HTML.

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

Но все современные браузеры поддерживают JavaScript. Данный язык сценариев в настоящее время является одним из лидирующих. Это объектно-ориентированный язык, похожий на С. Первоначально JavaScript использовался в браузере Netscape Navigator, JScript и VBScript использовался в браузере Internet Explorer от Microsoft.

Языки JScript и JavaScript практический одинаковые, разными являются объектные модели.

VBScript же по функциональности аналогичен двум другим, но он более привычен для программистов, работающих с Visual Basic.

Клиентские и серверные расширения могут писаться на данных языках. Если расширение является клиентским, то есть является расширением для браузера, то сценарии, написанные на вышеназванных языках включаются непосредственно в тело web-документа, прямо в html. Если же речь идет о расширении web-сервера, то тогда сценарии применяются для динамического формирования документа в ответ на запрос браузера.

Расширения на стороне клиента необходимы для того, чтобы разгрузить web-сервер. В этом случае принято говорить об активности на стороне клиента. Активность ан стороне клиента может быть реализована по-разному. Для этого могут быть использованы вышеобозначенные апплеты, а также элементы управления ActiveX. В настоящее время обе технологии считаются устаревшими, но все же применяются. Но рассмотрим их в качестве общего представления о технологиях.

ActiveX

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

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

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

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

ActiveX — это технология общего использования компонента, если так можно выразиться. Если рассмотреть на примере ОС Windows, то это выглядит так: один раз установили во время установки какой-либо программы и после этого все остальные программы во время своей установки, если они будут использовать точно такой же элемент управления ActiveX они сначала проверят, не установлен ли такой же ActiveX уже в системе. Если да, то естественно устанавливаться он больше второй раз не будет. Если не обнаружен, то установится. Также установится, если версия устанавливаемая более новая, чем та, которая уже установлена.

Установка ActiveX называется регистрацией компонента. Так вот, если во время загрузки web-страницы с сервера обнаруживается, что ранее такой ActiveX еще не использовался у пользователя, то пользователю потребуется его сначала загрузить, а затем установить. Конечно это все происходит автоматически, но тем не менее — это нарушает универсальность браузера, поэтому ActiveX лучше использовать на серверной стороне.

Апплеты и сервлеты

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

Код такого апплета интерпретируется виртуальной машинной Java, которая входит в состав обозревателя. Апплеты Java включаются непосредственно в HTML-текст.

Сервлеты работают на серверной стороне и предназначены для обработки запросов от браузера.

Интерфейсы CGI и WinCGI

CGI И WinCGI предназначены для создания модулей расширения на стороне сервера. CGI являются правилами (протоколом) взаимодействия сервера и модуля расширений. Модули расширения сервера необходимы для того, что расширить возможности web-сервера по обработке информации. Интерфейс CGI — применим при разработке консольных приложений (модулей расширений).

Интерфейс WinCGI — это уже интерфейс, который используется для построения модулей расширения сервера в среде WIndows.

Интерфейсы ISAPI/NSAPI

Это уже более современные интерфейсы, которые активно используются и в настоящее время. Использование данных интерфейсов предполагает формирование файлов .DLL. То есть, интерфейсы выполнены в этом виде.

Интерфейс ISAPI разработан компанией Microsoft, а интерфейс NSAPI — компанией Natscape. Из названия интерфейсов становится понятным, что они используют функции API операционной системы.

Браузер делает запрос web-сервера, который, в свою очередь запускает модуль расширения, реализованные как библиотеки DLL. То есть, надо понимать, что для такой реализации нужно подбирать хостера, который работает по ISAPI-технологии (на базе WIndows) с использованием web-сервера IIS. Для этого вы можете, например арендовать виртуальный сервер.

Качественный виртуальный сервер можно арендовать на одном из известных хостингов, таких как: Макхост по промокоду в  40% (DLFGJKA45POZVB) или Рег.ру с промокодом в 5% (A5FB-FA58-D9D3-34C1).

Браузер осуществляет запрос web-серверу по определенному правилу. Затем из этого запроса web-сервер извлекает параметры и передает их модулю расширения. А модуль расширения формирует исходя из этих параметров web-страницу. Web-сервер же передает эту web-страницу в обозреватель, используя при этом протокол передачи данных HTTP/HTTPS.

Одно из существенных отличий интерфейсов CGI/WinCGI и ISAPI заключается в том, что при многопользовательском доступе (когда к сайту (web-серверу) обращается множество пользователей сети) при CGI/WinCGI интерфейсах для каждого из обратившихся пользователей, то есть на каждый запрос обозревателя создается отдельный модуль расширения, а при использовании интерфейса ISAPI библиотека загружается один раз, а затем для каждого пользователя используются экземпляры загруженной библиотеки.

Конечно же это это сказывается в лучшую сторону на производительности.

Web-страницы ASP/ASP. NET, PHP и IDS/HTX

ASP/ASP. NET, PHP и IDS/HTX — это технологии, предназначенные для формирования web-страниц, содержащих информацию из баз данных. Скажем так, что PHP — это скриптовый язык или язык сценариев. Но, в принципе — это же тоже технология, поэтому ошибкой так его назвать не будет.

ASP представляет собой технология формирования web-страницы, которая содержит в себе шаблон HTML и запрос к базе данных на языке SQL. Как раз таки скриптовый язык JScript и используется в страницах типа ASP. С помощью этого языка сценариев и объектной модели ASP и формируется внешний пользовательских интерфейс web-страницы и доступ к базе данных.

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

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

IDS — страница, содержащая системную запись для соединения с базой данных, SQL-запрос к ней и параметры идентификации подключения к базе данных.

HTX — формат, содержащий шаблон HTML, который определяет то, как будет выглядеть результирующая страница и какая информация и в каком виде будет на ней представлена.

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

Формирование web-страниц

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

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

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

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

С помощью вышеназванных технологий ( CGI/WiCGI, ISAPI, IDC/HTXБ, ASP/ASP.NET) создается расширение сервера. Но мы всегда писали о том, что модуль расширения сервера делает выборку из базы данных и формирует web-страницу, которую высылает обратно web-серверу. Но мы не указывали, с помощью каких технологий осуществляется доступ и подключение к базе данных.

Для подключения к базе данных используются такие современные технологии как ODBC, OLE DB, ADO (используется совместно с ASP), ADO.NET (используется совместно с технологий ASP.NET), современный механизм доступа к данным FireDAC системы разработки RAD Studio и другие. Причем отметим сразу, что хоть технология ADO.NET и является следующим витком развития ADO, но не заменяет ее, так как ADO — это не устаревшая технология (как иногда можно встретить на страницах других блогов), а параллельно развивающаяся технология доступа к данным, которая используется при построении приложений, не использующих NET-фреймворки.

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

Двухуровневые web-приложения
Двухуровневые web-приложения

Трехуровневые web-приложения
Трехуровневые web-приложения

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

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

ODBC — это драйвер доступа к данным и управления ими, в основном к реляционным БД с помощью языка структурированных запросов SQL.

OLE DB — технология связывания и внедрения объектов является технологий доступа к данным более высокого уровня, которая основывается на COM-технологии. Иначе говоря OLE DB использует объектную модель данных и, таким образом, является более универсальной. По своей сути она объектно-ориентированная. Данные могут быть абсолютно разными. Это может быть реляционная база данных, данные формата MS Excel и другие табличные процессоры, файлы текстового типа и так далее.

Для доступа к данным в OLE DB используется провайдер данных (поставщик данных). Это универсальная надстройка над физическим форматом данных.

Возможна также совместная работа, когда OLE DB получает доступ к данным через интерфейс ODBC.

ADO (ActiveX Data Objects) является еще более абстрактной моделью доступа к данным. Эта модель использует доступ к различным провайдерам OLE DB и является одной из моих любимых моделей. Модель содержит в себе несколько объектов доступа к данным, которые позволяют создавать подключение к базе данных, управлять им, осуществлять выборку из базы данных, формируя при этом набор данных, а также дает возможность манипулировать данными, используя команды языка SQL. Первоначально эта модель разрабатывалась для использования ее в сетях Интранет/Интернет, но она, более, чем успешно используется для построения десктопных приложений по обработке баз данных и очень сильно напоминает устаревший механизм доступа к данным BDE, при этом оставаясь современной технологией.

ADO.NET — это технология доступа к данным, построенная на основе платформы .NET. Имеет свою, отличную от ADO модель данных. Данные технологии не являются совместимыми и развиваются параллельно.

Статическая публикация базы данных в Интернете

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

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

Динамическая публикация базы данных в Интернете

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

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

На одном сервере могут присутствовать как статические, так и страницы, создаваемые динамическим способом.

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

Web-приложения являются отдельным классом приложений, которые стали на одну линию с десктопными приложениями.

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

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

Обычно web-приложения, которые публикуют базы данных в Интернете, выполняются на стороне сервера. Как было указано в последнем рисунке этой статьи: обозреватель формирует запрос web-серверу, web-сервер передает это запрос своему расширению, которое передает его серверу приложений. Сервер приложений же, используя механизмы доступа к данным обращается к серверу базы дынных (промышленному СУБД), который уже из физической БД извлекает данные, передавая из обратно серверу приложений, а сервер приложений передает их в дельта-пакетах программе-расширению web-сервера. Web-сервер же, используя полученные данные и шаблон внешнего вида web-страницы формирует окончательный облик web-страницы и передает ее браузеру.

Но в последнее время появился новый тип web-приложений, называемый SPA (Single Page Application) — одностраничное приложение, которое выполняется на стороне клиента. И если классическое web-приложение — это тонкий клиент, то SPA — это аналог толстого клиента обычного десктопного приложения. Эта технология достаточно интересная и мы ее обязательно коснемся чуть позже, так она современная и ее неплохо было бы сравнить с другими технологиями.

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

Понравилась статья? Поделиться с друзьями:
Блог Алексея Иванкова
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: