Сети ЭВМ и телекоммуникации. 4
Содержание
.
Введение
Всемирная информационная сеть (World Wide Web, далее Web) имеет недолгую, по людским меркам, историю. Годом рождения Web считается 1992 год, а отцом основателем был Тим Бернерс-Ли, который сумел, используя новые сетевые технологии и опыт своих предшественников, сделать Web приятным и удобным средством распространения информации во всемирной сети компьютерных сетей Internet.
Толчок
для своего стремительного и победного
шествия по планете Web получила в 1993
году, когда Марк Андерсен с группой
студентов университета Иллинойса,
разработали бесплатно
HTML
был разработан на основе
Цель исследования изучение Web – технологий, средств и языков создания web – приложений
Задачи исследования:
Рассмотреть информационные системы World Wide Web на основе языка Hypertext Markup Language и его расширений.
Описать клиентские и серверные технологии создания веб-приложений.
Раскрыть использование систем управления базами данных для Web - приложений
Методы
исследования: изучение научной литературы.
Итак, World Wide Web — глобальная компьютерная сеть — на сегодняшний день содержит миллионы сайтов, на которых размещена всевозможная информация. Люди получают доступ к этой информации посредством использования технологии Internet. Для навигации в WWW используются специальные программы – Web-браузеры, которые существенно облегчают путешествие по бескрайним просторам WWW. Вся информация в Web-браузере отображается в виде Web-страниц, которые являются основным элементом байтов WWW.
Web-страницы, поддерживая технологию мультимедиа, объединяют в себе различные виды информации: текст, графику, звук, анимацию и видео. От того, насколько качественно и красиво сделана та или иная Web-страница, зависит во многом ее успех в Сети.
Пользователю приятно посещать те Web-страницы, которые имеют стильное оформление, не отягощены чрезмерно графикой и анимацией, быстро загружаются и правильно отображаются в окне Web-браузера.
Еще недавно лишь веб-дизайнеры «правили бал» в Интернете. Все великолепие Всемирной паутины было создано именно ими. Однако Web развивалась очень быстро. Прошло совсем немного времени, и оказалось, что правильно представить текст и со вкусом подобрать изображение — это далеко не все, что требуется от разработчика веб-страницы. Программы, которые еще недавно были экзотической новинкой, прочно поселились на веб-серверах и вошли в состав HTML-документов. Уже никого не удивишь Java-аплетом на веб-странице или CGI-сценарием на сервере. Статические документы постепенно уходят в прошлое. Вскоре веб-страницы, не обеспечивающие интерактивного взаимодействия с пользователем, станут анахронизмом.
С появлением веб-программ оказалось, что веб-дизайнер попросту не в состоянии в одиночку справиться с оформлением полноценного веб-узла. Слишком много разнообразной работы появилось у него. И если оформление веб-страниц требует таланта художника, то включение в них программ — это область чистого программирования. Не удивительно, что наряду с веб-дизайном в World Wide Web появилось новое направление — Internet-программирование.
Скорость развития Web очень высока. Но, тем не менее, уровень ожиданий пользователей постоянно растет. Сначала горстка продвинутых пользователей прокладывала тропу, совершая покупки в электронных магазинах, а потом все больше и больше новых пользователей не только делали покупки в Сети, но и совершали свое первое путешествие по Web именно с этой целью. За относительно небольшой промежуток времени Web-сайты эволюционировали от обычных электронных буклетов до предоставления таких комплексных услуг, как доступ к банковскому счету, подача резюме и обслуживание клиентов.
В свою очередь, компании осознали ключевые моменты в удовлетворении этих предпочтений [10]. Ниже перечислены некоторые из них:
общение с пользователями;
способность прислушаться к пользователям;
включение
пользователей в команду
Несмотря на то, что готовой формулы для создания дружественных Web-приложений не существует, разработаны технологии и инструменты, которые можно использовать для повышения эффективности процесса разработки Web-приложений.
Основная часть
1 Информационная система WWW
WWW1 — гипертекстовая информационная система сети Internet. Другое ее краткое название — Web.
Во-первых, это гипертекст — структурированный текст с введением в него перекрестных ссылок, отражающих смысловые связи частей текста. Слова-ссылки выделяются цветом и/или подчеркиванием. Выбор ссылки вызывает на экран связанный со словом-ссылкой текст или рисунок. Можно искать нужный материал по ключевым словам.
Информация, доступная по Web-технологии, хранится в Web-серверах. Сервер имеет программу, постоянно отслеживающую приход на определенный порт запросов от клиентов. Сервер удовлетворяет запросы, посылая клиенту содержимое запрошенных Web-страниц или результаты выполнения запрошенных процедур.
Клиентские программы WWW называют браузерами. Для подготовки материалов для их включения в базу WWW разработаны специальный язык HTML2 и реализующие его программные редакторы.
Для связи Web-серверов и клиентов разработан протокол HTTP3, работающий на базе TCP/IP4. Web-сервер получает запрос от браузера, находит соответствующий запросу файл и передает его для просмотра в браузер.
Популярными серверами являются Apache Digital для ОС5 Unix, Netscape Enterprise Server и Microsoft Internet Information Server (IIS6), которые могут работать как в Unix, так и в Windows NT, и Netware Web Server, предназначенный для работы в ОС Netware. Все три сервера поддерживают язык CGI7, имеют встроенный HTML-редактор.
Кроме того, в первых двух из них поддерживается стандарт шифрования SSL8 для защиты передаваемых по сети данных от несанкционированного доступа.
1.1
HTML и его расширения
HTML
— гипертекстовый язык для
заполнения информационных Web-серверов.
Он описывает структуру
Описание на HTML — это текст в формате ASCII и последовательность включенных в него команд (управляющих кодов, называемых также дескрипторами, или тегами). Эти команды расставляются в нужных местах текста, определяя шрифты, переносы, появление графических изображений, ссылки и т. п.
"Классическая" схема HTTP-сеанса выглядит так.
1. Установление TCP-соединения.
2. Запрос клиента.
3. Ответ сервера.
4. Разрыв TCP-соединения.
Таким образом, клиент посылает серверу запрос, получает от него ответ, после чего взаимодействие прекращается. Обычно запрос клиента представляет собой требование передать HTML-документ или какой-нибудь другой ресурс, а ответ сервера содержит код этого ресурса.
В состав HTTP-запроса, передаваемого клиентом серверу, входят следующие компоненты.
• Строка состояния (иногда для ее обозначения используют также термины строка-статус, или строка запроса).
• Поля заголовка.
• Пустая строка.
• Тело запроса.
Строку состояния вместе с полями заголовка иногда называют также заголовком запроса. Структурная схема представлена на рисунке А.1 приложения А.
Расширение языка HTML — это XML9 (подмножество языка из стандарта SGML10). Другое направление развития HTML — его динамическая версия DHTML.
SGML
определяет содержимое и форму
документов в виде
XML
позволяет использовать в
1.2
Программы для Интернет
При помощи языка HTML можно не только описывать формат шрифта, фон странички, вставлять в текст таблицы и графику, но и подключать элементы управления: кнопки, списки, поля для ввода информации. Однако, чтобы обрабатывать данные, введенные при помощи формы, придется писать программу. Написание программ может стать необходимым делом и во многих других случаях.
Программы для Web можно разделить на те, которые выполняются на клиентской машине, и те, которые выполняются на сервере.
Программы, выполняющиеся на клиентской машине либо входят непосредственно в состав HTML-документа, либо располагаются в отдельных файлах и загружаются с сервера по мере необходимости.
Рассмотрим
типы программ, обеспечивающих работу
Web и использующих протокол HTTP. Понятно,
что никакой НТТР-обмен
Программы, выполняющиеся на клиенте
Один из типов программ, предназначенных для выполнения на клиент-машине, — сценарий JavaScript.
Исходный текст сценария представляет собой часть веб-страницы, поэтому сценарий JavaScript передается клиенту вместе с документом, в состав которого он входит. Обрабатывая HTML-документ, браузер встречает исходный текст сценария и запускает его на выполнение.
Другой
тип программы, выполняющейся на
клиент-машине, Java-аплет, связывается
с веб-страницей несколько по-
Ко всем программам, которые передаются с сервера на клиент-машины и запускаются на выполнение, применяется одно общее требование: эти программы должны быть лишены возможности обращаться к ресурсам компьютера, на котором они выполняются. Такое требование вполне обосновано. Ведь передача по сети и запуск Java-аплетов и JavaScript-сценариев происходит автоматически без участия пользователя, поэтому работа этих программ должна быть абсолютно безопасной для компьютера. Другими словами, языки, предназначенные для создания программ, выполняющихся на клиент-машине, должны быть абсолютно непригодны для написания вирусов, «троянских коней» и прочих «продуктов» такого рода.
Программы, выполняющиеся на сервере
Код программы, работающей на сервере, не передается клиенту. При получении от клиента специального запроса, предполагающего выполнение такой программы, сервер запускает ее и передает параметры, входящие в состав запроса. Средства для генерации подобного запроса обычно входят в состав HTML-документа.
Результаты своей работы программа, о которой идет речь, оформляет в виде HTML-документа и передает веб-серверу, а последний, в свою очередь, дополняет полученные данные HTTP-заголовком и передает их клиенту. Взаимодействие клиента и сервера в этом случае показано на рисунке Б.3 приложения Б
Из
программ, предназначенных для выполнения
на сервере, следует упомянуть CGI-сценарии,
ISAPI-расширения и фильтры, а также
Java-сервлеты. CGI-сценарии, ISAPI-расширения
и Java-сервлеты выполняют роль дополнений,
расширяющих возможности веб-серверов,
и отличаются друг от друга особенностями
взаимодействия с серверами. ISAPI-фильтры
— программы несколько иного рода. Они
активно вмешиваются в работу сервера
и изменяют его поведение.
2 Клиентские технологии
Технологии создания веб-приложений условно можно разделить на клиентские (то есть используемые веб-браузерами и другими веб-клиентами, например, офисными приложениями или клиентами средств мгновенной передачи сообщений) и серверные (то есть использующиеся на веб-серверах).
Клиентские
технологии применяются главным
образом для повышения
2.1
JAVA
Наибольшую известность приобрела Java [14] — это технология и язык программирования сетевых приложений, разработанный фирмой Sun Microsystems для систем распределенных вычислений.
Язык Java является универсальным объектно-ориентированным языком программирования, как, например, C++.
Программа на С++, предназначенная для работы в операционной системе UNIX, не сможет работать на компьютере под управлением Windows — ее нужно будет в большей или меньшей степени переделывать.
При работе в сети, объединяющей компьютеры под управлением Windows, OS/2, UNIX, FreeBSD, MacOS и других операционных систем, эта проблема является весьма существенной. Язык Java и призван решить ее.
С++ является языком компилирующего типа: программный продукт получается в виде готового исполняемого модуля, при этом формат исполняемого файла зависит от операционной системы.
Есть
и другой путь — языки-интерпретаторы:
специальная программа-
Для
пользователей важны также
аппаратная независимость (мобильность) за счет создания приложений в виде байт-кодов для некоторой виртуальной машины (рисунок В.1 приложения В) — каждая платформа интерпретирует эти байт-коды; благодаря введению компиляции потеря эффективности, присущая интерпретации, здесь менее значительна;
интеграция с браузерами;
используемые
программные объекты могут
Другими словами, в узле-клиенте достаточно иметь лишь браузер, все остальное можно получить по сети. Однако при этом обостряется проблема информационной безопасности. В связи с этим загружаемым по сети программам обычно запрещается обновлять и читать файлы, кроме тех, которые находятся на хосте самого аплета.
Программы, написанные на Java можно поделить на два типа: к первой группе относятся приложения Java, предназначенные для автономной работы под управлением специальной интерпретирующей машины Java. Реализации этой машины созданы для всех основных компьютерных платформ.
Вторая группа — это так называемые аплеты (applets). Аплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.
Приложения, относящиеся к первой группе (мы будем называть их просто приложениями Java), — это обычные автономные программы. Так как они не содержат машинного кода и работают под управлением специального интерпретатора, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Однако не следует забывать, что программы Java без перетрансляции способны работать на любой платформе, что само по себе имеет большое значение в плане разработок для Internet.
Аплеты Java встраиваются в документы HTML, хранящиеся на сервере Web. С помощью аплетов вы можете сделать страницы сервера Web динамичными и интерактивными. Аплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Из соображений безопасности аплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web. Более сложную обработку данных можно выполнять, организовав взаимодействие между аплетами и расширениями сервера Web — приложениями CGI и ISAPI13.
Для
повышения производительности приложений
Java в современных браузерах
В результате общая скорость выполнения аплета Java увеличивается в несколько раз.
Автономные приложения Java работают под управлением специального интерпретатора (виртуальной машины Java), поэтому для их отладки вам также не потребуется сеть Internet.
Однако
есть одно важное обстоятельство —
аплеты, взаимодействующие с
Java-аплеты
доступны из HTML-документов (обращение
к ним через тег <applet>), хотя
могут использоваться и
Внутри Java существуют 3 основных семейства технологий [15]:
J2EE — Java Enterprise Editon, для создания программного обеспечения уровня предприятия;
J2SE — Java Standard Editon, для создания пользовательских приложений, в первую очередь — для настольных систем;
J2ME — Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах.
На сегодняшний день релизом является версия 1.5 (5.0). Самым главным её преимуществом по сравнению с предыдущей версией (1.4) является введение понятия шаблонов (аналог C++) и синтаксиса «for each». Это позволяет избежать ошибок привидения типа ещё на уровне компиляции, что увеличивает производительность и, что самое главное, качество труда программиста.
Sun
Microsystems предлагает набор средств JDK (Java
Development Kit) для создания Java-программ.
2.2
JavaScript и Visual Basic Script
JavaScript — самый распространенный язык написания сценариев, используемый при создании динамических Web-страниц, совместимых с различными браузерами [12].
JavaScript является специализированным языком для создания программ, работающих исключительно под управлением браузера. Тексты этих программ, которые еще называют скриптами, размещаются прямо в HTML-документе, в специальных разделах. Благодаря такой встроенности JavaScript имеет больше возможностей для взаимодействия с различными элементами Web-страницы и с самим браузером. Кроме того, JavaScript, как и Java, является объектно-ориентированным языком и имеет широкие возможности.
JavaScript
— язык и интерпретатор этого
языка для генерации и
<SCRIPT LANGUAGE = "javascript"> <!- — . . . //- -> </SCRIPT> (*)
где <!- — . . . //- -> — текст в виде комментария. Браузеры, не имеющие JavaScript-обработчиков, просто игнорируют комментарий, а современные браузеры исполняют записанные в (*) вместо многоточия команды. В отличие от Java программы на JavaScript полностью интерпретируются в браузере.
Visual Basic Scripting Edition (обычно просто VBScript) — язык программирования компании Microsoft, предназначенный для создания скриптов. Он является подмножеством языка Visual Basic и широко используется при создании скриптов в операционных системах семейства Windows.
Скрипты на языке VBScript чаще всего используются в следующих областях:
автоматизация администрирования систем Windows;
серверный программный код в страницах ASP;
клиентские
скрипты в браузере Internet Explorer.
2.3.
Приложения Macromedia Flash
Еще одна очень популярная веб-технология, основанная на выполнении кода в клиентском приложении, — приложения Macromedia Flash. Macromedia Flash Player, как и виртуальная Java-машина, обладает ограниченными возможностями с точки зрения доступа к ресурсам клиентского компьютера. Так, приложения Flash не имеют доступа к файловой системе, за исключением служебного каталога Macromedia Flash Player, а доступ к внешним устройствам ограничивается микрофонами и видеокамерами. Доступ к сетевым ресурсам ограничивается доменом, с которого было получено данное приложение. Отметим, что, так же как и Java-аплеты, приложения Flash могут управляться с помощью кода JavaScript, присутствующего на той же странице.
Имеется и ряд других средств, реализованных обычно в виде так называемых модулей расширения (plug-in), представляющих собой исполняемый код. При этом современные браузеры обладают средствами ограничения возможностей, связанных с их загрузкой и выполнением.
Все перечисленные средства расширения функциональности HTML-страниц могут быть использованы и в динамических страницах, генерируемых серверными веб-приложениями, — подобные страницы могут содержать ссылки приложения Flash, аплеты.
Элементарные требования безопасности требуют, чтобы возможности, связанные с выполнением кода в веб-клиентах, могли быть существенно ограничены как минимум посредством средств администрирования клиентских приложений.
В этом случае любое более или менее серьезное приложение, основанное исключительно на применении клиентских технологий, в известной степени обречено на провал в силу того, что условия, необходимые для его функционирования, могут не соответствовать требованиям корпоративной информационной безопасности, принятым в той или иной компании. В этом одна из причин массового развития и широкого применения технологий, связанных с выполнением кода приложений на самих веб-серверах.
3 Серверные технологии
3.1
Perl
Помимо программ, выполняющихся на клиентской машине, возможна разработка приложений, выполняющихся на сервере. Одним их языков для создания таких приложений является PERL.
Перл унаследовал много свойств от языков Си, shell script, awk. Сегодня основной для разработчиков является пятая версия языка Perl, однако (на некоторых веб-серверах) продолжают использоваться программы (скрипты), написанные на четвёртой версии (из-за частичной обратной несовместимости). Фактически стандарт языка определяется реализацией интерпретатора.
С
2000 года идет разработка новой (шестой)
версии языка. В отличие от предыдущих
версий, разработчики планируют создать
четко определенный стандарт языка. В
настоящее время существуют экспериментальные
компиляторы Perl 6, но продолжается дальнейшая
дискуссия о новых правилах [13].
3.2
Python
Python — это интерпретируемый, интерактивный, объектно-ориентированный язык программирования высокого уровня. Поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточную обработку.