Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системный анализ, управление и обработка информации. Часть II.pdf
Скачиваний:
59
Добавлен:
05.02.2023
Размер:
4.73 Mб
Скачать

61

2.2 Практическая работа №5 «Технологии Internet»

Цель работы: Освоение технологии Internet на примере протокола

WebSocket.

2.2.1 Самостоятельная работа

Принципы функционирования Internet, типовые информационные объекты и ресурсы. Ключевые аспекты WWW-технологии. Адресация в сети Internet. Методы

исредства поиска информации в Internet, информационно-поисковые системы. Языки и средства программирования Internet приложений. Язык гипертекстовой разметки HTML, основные конструкции, средства подготовки гипертекста (редакторы и конверторы). Базовые понятия VRML. Организация сценариев отображения

ипросмотра HTML документов с использованием объектно-ориентированных языков программирования.

Литература: [2, 10, 11].

2.2.2 Порядок выполнения работы

Основы технологий Internet аспирант начал изучать на третьем курсе бакалавриата в дисциплине «Сети и телекоммуникации». В более широком аспекте эти технологии изучены в дисциплине «Современные компьютерные технологии» (см. [2], раздел 8 «Сервисные технологии»).

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

2.2.2.1 История вопроса

Обобщенное (суммарное) обозначение всех технологий Internet получило название «Всемирная паутина» [2.2.1]: «Всеми́рная паути́на( нгл. World Wide Web) — распределенная система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключённых к сети Интернет. Для обозначения Всемирной паутины также используют слово веб (англ. web «паутина») и аббревиатуру WWW.

Всемирную паутину образуют сотни миллионов веб-серверов. Большинство ресурсов Всемирной паутины основано на технологии гипертекста. Гипертекстовые документы, размещаемые во Всемирной паутине, называются веб-страницами. Несколько веб-страниц, объединённых общей темой, дизайном, а также связанных

62

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

Визитной карточной технологий Internet является понятие гипертекста [2.2.2]: «Гиперте́кст(англ. hypertext) — термин, обозначающий систему из текстовых страниц, имеющих перекрестные ссылки.

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

В компьютерной терминологии гипертекст — это текст, сформированный с помощью языка разметки (например, HTML) с расчетом на использование гиперссылок. ...».

Что касается языка разметки HTML, он был разработан британским учёным Тимом Бернсом-Ли, ориентировочно в 1986-1991 годах в стенах организации ЦЕРН (г. Женева в Швейцарии) [2.2.3]: «HTML (от (англ. HyperText Markup Language — «язык гипертекстовой разметки разметки») — стандартизированный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML). Язык HTML интерпретируется браузерами; полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства.

Язык HTML до 5-й версии определялся как приложение SGML (стандартного обобщённого языка разметки по стандарту ISO 8879). Спецификации HTML5 формулируются в терминах DOM (объектной модели документа).

Язык XHTML является более строгим вариантом HTML, он следует синтаксису XML и является приложением языка XML в области разметки гипертекста.

Во всемирной паутине HTML-страницы, как правило, передаются браузерам от сервера по протоколам HTTP или HTTPS, в виде простого текста или с использованием шифрования. ...».

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

направление развития серверных средств подготовки html-документов, первоначально определенные через интерфейс CGI;

направление развития клиентских средств манипулирования отражением веб-страниц в браузерах.

Интерфейс CGI заложил основу протокола взаимодействия серверной и клиентской сторон программного обеспечения [2.2.4]: «CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитают названия «скрипт» (сценарий) или «CGI-программа». По сути позволяет использовать консоль ввода и вывода для взаимодействия с

63

клиентом.

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

В начале 1995 года был разработан свободный сервер Apache, который дал интенсивный толчек серверным средствам подготовки html-документов [2.2.5]: «Apache HTTP-сервер (… назван именем группы племён североамериканских индейцев апачей; кроме того, является искажённым сокращением от англ. a patchy server; среди русских пользователей общепринято переводное апа́ч) — свободный веб-сервер.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аудентификации пользователей, модифицировать сообщения об ошибках и т.д. ...».

Именно этот сервер обеспечил интенсивное развитие и внедрение языка динамического формирования html-страниц на стороне сервера — PHP [2.2.6]: «PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов. ...».

Что казается стороны клиентов, то здесь особую популярность получил язык JavaScript [2.2.7]: «JavaScript (аббр. JS) — мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией языка ECMAScript (стандарт ECMA262).

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

С момента своего появления, технологии Internet всегда претендовали на нечто большее, чем просто публичное распрострпнение документов, представленных в гипертексте. Обладая достаточно универсальными средствами отображения информации на стороне клиента (браузерами), технологии Internet обеспечивали парадигму «тонкого клиента» [2.2.8]: «Тонкий клиент (англ. thin client) в компьютерных технологиях — компьютер или программа-клиент в сетях с клиентсерверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями. Данным термином может также называться P2P-клиент, использующий в качестве

64

сервера другие узлы сети. ...».

Серьезным заказчиком на «тонкий клиент» является промышленное производство, но технологии Internet, на уровне обработки информации языками сценариев, не удовлетворяют многим его требованиям: быстродействию, надежности, защищенности, стоимости и другим.

В 1997 году корпорация Sun Microsystems кадинально изменила ситуацию предложив технологию сервлетов и апплетов на основе языка Java.

Сервлеты Java кардинально изменили качество работы серверов приложений [2.2.9]: «Сервлет является интерфейсом Java, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.

Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов. Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы. ...». Кроме того, являясь компилируемым языком, Java освобождает серверы от необходимости проводить синтаксический анализ программного обеспечения сервера, ответственного за формирование html-страницы для клиента. Также обеспечивается кэширование повторяющихся запросов, что невозможно при использовании языка PHP.

В целом, технология Java сервлетов реализована в проекте Apache Tomcat [2.2.10]: «Tomcat (в старых версиях — Catalina) — контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов, спецификацию JavaServer Pages (JSP) и JavaServer Face (JSF). Написан на языке Java.

Tomcat позволяет запускать веб-приложения, содержит ряд программ для самоконфигурирования.

Tomcat используется в качестве самостоятельного веб-сервера, в качестве сервера контента в сочетании с веб-сервером Apache HTTP Server, а также в качестве контейнера сервлетов в серверах приложений JBoss и GlassFish. ...».

Для реализации «тонкого клиента» компания Sun Microsystems предложила Java-апплеты [2.2.11]: «Java-апплет — прикладная программа, чаще всего написан-ная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-обозревателе с использованием виртуальной Java машины (JVM), или в Sun's AppletViewer, автономном средстве для испытания апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995 году. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт код Java, таких, как Jython.

Апплеты используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML. Так как байт-код Java платформо-независим, то Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая Microsoft Windows, UNIX, Apple Mac OS и GNU Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows. ...».

65

Как показала практика, получив полезный первоначальный успех, апплеты стали вытесняться скриптовыми языками, такими как JavaScript, и сейчас используются очень редко, хотя поддержка их в браузерах является обязательной.

Начиная с 2005 года, на стороне клиента особую популярность получила технология AJAX [2.2.12]: «AJAX, Ajax (от англ. Asynchronous Javascript and XML

— «асинхронный JavaScript и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее. По-русски иногда произносится по существующей аналогии у имени Ajax — Аякс, но у аббревиатуры AJAX нет устоявшегося варианта на кириллице. ...». На рисунке 2.6 схематически представлено сравнение классической технологии HTTP и ее модификации с помощью AJAX.

Рисунок 2.6 — Технологии HTTP и AJAX (заимствовано из источника [2.2.12])

66

Хорошо видно, что современные браузеры, построенные по объектно-ориен- тированной технологии, имеют специальный «Обработчик AJAX», который способен самостоятельно устанавливать с серверами соединения, скачивать с них данные, обычно в формате XML, и использовать эти данные для изменения уже загруженной ранее html-станицы.

Преимущества такого подхода состоят в том, что:

нет необходимости, при каждом изменении данных, обращаться к веб-серве- ру за новой страницей, которую тот еще должен и построить;

нет необходимости заново перерисовывать всю страницу.

Вкачестве недостатков технологии AJAX следует отметить сильное изменение самой html-страницы, в которой язык HTML начинает играть второстепенную роль:

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

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

Всовременных технологиях Internet такие технологии как AJAX занимают ведущее место, в частности, в современном языке разметки HTML5 [2.2.13], но несмотря на различные усовершенствования, AJAX обеспечивает только классическое синхронное взаимодействие клиента и сервера: при необходимости, «Обработчик AJAX» устанавливает соединение с сервером, делает запрос, ждет подготовку данных, скачивает данные и разрывает соединение с сервером.

Вдекабре 2011 года был опубликован новый асинхронный протокол взаимодействия клиента и сервера, названный WebSocket [2.2.14]. Википедия дает ему такое описание [2.2.15]: «WebSocket — протокол связи поверх TCP-соединения,

предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.

В настоящее время в W3C осуществляется стандартизация API Web Sockets. Черновой вариант стандарта этого протокола утверждён IETF.

WebSocket разработан для воплощения в веб-браузерах и веб-серверах, но он может быть использован для любого клиентского или серверного приложения. Протокол WebSocket — это независимый протокол, основанный на протоколе TCP. Он делает возможным более тесное взаимодействие между браузером и веб-сайтом, способствуя распространению интерактивного содержимого и созданию приложений реального времени. ...».

Учитывая большое количество вариантов реализации систем построенных на базе протокола WebSocket, рассморим пример, реализующий эту технологию на языке Java.