Сети ЭВМ и телекоммуникации. 4

     Содержание

.

     Введение

     Всемирная информационная сеть (World Wide Web, далее Web) имеет недолгую, по людским меркам, историю. Годом рождения Web считается 1992 год, а отцом основателем был Тим Бернерс-Ли, который сумел, используя новые сетевые технологии и опыт своих предшественников, сделать Web приятным и удобным средством распространения информации во всемирной сети компьютерных сетей Internet.

     Толчок  для своего стремительного и победного  шествия по планете Web получила в 1993 году, когда Марк Андерсен с группой  студентов университета Иллинойса, разработали бесплатно распространяемую программу Mosaic для просмотра Web-страниц.

     HTML был разработан на основе мощного  языка разметки SGML, путем переноса  некоторых его функций разметки  данных в сетевую среду для  разметки гипертекста. Одновременно  с развитием Web технологий, насыщением Web новыми сервисами и возможностями, развивался и язык разметки гипертекста. С момента своего появления стандарт HTML претерпел множество изменений, последнее из которых это спецификация HTML 4.01, анонсированная консорциумом W3C 24 декабря 1999 г.

     Цель  исследования изучение 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-серверов. Он описывает структуру документа,  вид которого на экране определяется  браузером [16].

     Описание  на HTML — это текст в формате ASCII и последовательность включенных в него команд (управляющих кодов, называемых также дескрипторами, или тегами). Эти команды расставляются в нужных местах текста, определяя шрифты, переносы, появление графических изображений, ссылки и т. п.

       "Классическая" схема HTTP-сеанса выглядит так.

     1. Установление TCP-соединения.

     2. Запрос клиента.

     3. Ответ сервера.

     4. Разрыв TCP-соединения.

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

     В состав HTTP-запроса, передаваемого клиентом серверу, входят следующие компоненты.

     • Строка состояния (иногда для ее обозначения используют также термины строка-статус, или строка запроса).

     • Поля заголовка.

     • Пустая строка.

     • Тело запроса.

     Строку  состояния вместе с полями заголовка  иногда называют также заголовком запроса. Структурная схема представлена на рисунке А.1 приложения А.

     Расширение  языка HTML — это XML9 (подмножество языка из стандарта SGML10). Другое направление развития HTML — его динамическая версия DHTML.

     SGML определяет содержимое и форму  документов в виде последовательности  объектов данных.

     XML позволяет использовать в документах  типы элементов, создаваемые для конкретных приложений, в нем также используются шаблоны DTD11. Для обмена документами на XML между Web-узлами разработан протокол ICE12.

     1.2 Программы для Интернет 

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

     Программы для Web можно разделить на те, которые выполняются на клиентской машине, и те, которые выполняются на сервере.

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

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

     Программы, выполняющиеся на клиенте

     Один  из типов программ, предназначенных  для выполнения на клиент-машине, — сценарий JavaScript.

     Исходный  текст сценария представляет собой  часть веб-страницы, поэтому сценарий JavaScript передается клиенту вместе с  документом, в состав которого он входит. Обрабатывая HTML-документ, браузер встречает  исходный текст сценария и запускает его на выполнение.

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

     Ко  всем программам, которые передаются с сервера на клиент-машины и запускаются на выполнение, применяется одно общее требование: эти программы должны быть лишены возможности обращаться к ресурсам компьютера, на котором они выполняются. Такое требование вполне обосновано. Ведь передача по сети и запуск Java-аплетов и JavaScript-сценариев происходит автоматически без участия пользователя, поэтому работа этих программ должна быть абсолютно безопасной для компьютера. Другими словами, языки, предназначенные для создания программ, выполняющихся на клиент-машине, должны быть абсолютно непригодны для написания вирусов, «троянских коней» и прочих «продуктов» такого рода.

       

     Программы, выполняющиеся на сервере

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

     Результаты  своей работы программа, о которой идет речь, оформляет в виде HTML-документа и передает веб-серверу, а последний, в свою очередь, дополняет полученные данные HTTP-заголовком и передает их клиенту. Взаимодействие клиента и сервера в этом случае показано на рисунке Б.3 приложения Б

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

     2 Клиентские технологии

 

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

     Клиентские  технологии применяются главным  образом для повышения интерактивности  приложений, например для проверки корректности вводимых данных без дополнительного  обращения к серверу, и для  создания удобного пользовательского  интерфейса. Так, современные веб-браузеры и некоторые почтовые клиенты способны интерпретировать код на скриптовых языках, выполнять Java-аплеты, использовать другие дополнения, такие как Macromedia Flash Player, средства просмотра презентаций QuickTime, средства воспроизведения мультимедиа-данных.

     2.1 JAVA 

     Наибольшую  известность приобрела Java [14] — это технология и язык программирования сетевых приложений, разработанный фирмой Sun Microsystems для систем распределенных вычислений.

     Язык  Java является универсальным объектно-ориентированным языком программирования, как, например, C++.

     Программа на С++, предназначенная для работы в операционной системе UNIX, не сможет работать на компьютере под управлением Windows — ее нужно будет в большей или меньшей степени переделывать.

     При работе в сети, объединяющей компьютеры под управлением Windows, OS/2, UNIX, FreeBSD, MacOS и других операционных систем, эта проблема является весьма существенной. Язык Java и призван решить ее.

     С++ является языком компилирующего типа: программный продукт получается в виде готового исполняемого модуля, при этом формат исполняемого файла зависит от операционной системы.

     Есть  и другой путь — языки-интерпретаторы: специальная программа-интерпретатор  читает исходный текст программы  и выполняет соответствующие  действия. Если для каждой операционной системы разработать интерпретатор, то исходный текст программы можно будет использовать на любой платформе. Однако языки интерпретирующего типа существенно проигрывают компиляторам в скорости. В качестве компромисса разработчики Java пошли по следующему пути: компилятор Java преобразует исходный текст программы в объектный код, формат которого не зависит от платформы. Этот объектный код и обрабатывается впоследствии интерпретатором Java, за счет чего и достигается увеличение скорости при полной независимости от платформы. На рисунке В.1 приложения В представлены компоненты программного обеспечения для языка Java

     Для пользователей важны также следующие  черты языка:

     аппаратная  независимость (мобильность) за счет создания приложений в виде байт-кодов для некоторой виртуальной машины (рисунок В.1 приложения В) — каждая платформа интерпретирует эти байт-коды; благодаря введению компиляции потеря эффективности, присущая интерпретации, здесь менее значительна;

     интеграция  с браузерами;

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

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

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

     Вторая  группа — это так называемые аплеты (applets). Аплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.

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

     Аплеты Java встраиваются в документы HTML, хранящиеся на сервере Web. С помощью аплетов  вы можете сделать страницы сервера Web динамичными и интерактивными. Аплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Из соображений безопасности аплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web. Более сложную обработку данных можно выполнять, организовав взаимодействие между аплетами и расширениями сервера Web — приложениями CGI и ISAPI13.

     Для повышения производительности приложений Java в современных браузерах используется компиляция "на лету"- Just-In-Time compilation (JIT14). При первой загрузке аплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается.

     В результате общая скорость выполнения аплета Java увеличивается в несколько  раз.

     Автономные  приложения Java работают под управлением  специального интерпретатора (виртуальной  машины Java), поэтому для их отладки вам также не потребуется сеть Internet.

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

     Java-аплеты  доступны из HTML-документов (обращение  к ним через тег <applet>), хотя  могут использоваться и независимо  от них. При обращении к аплету  он компилируется на сервере,  а для исполнения передается  клиенту вместе с Web-страницей. 

     Внутри  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 — язык и интерпретатор этого  языка для генерации и управления  просмотром составных гипертекстовых  документов. JavaScript более прост, чем  Java, и тексты JavaScript исполняются быстрее,  чем тексты Java или запросы к  CGI, поскольку обработчики событий JavaScript реализованы в браузере, а не в сервере. Тексты на JavaScript записываются непосредственно в HTML документе с помощью специальных тегов и имеют вид

     <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 — это интерпретируемый, интерактивный, объектно-ориентированный язык программирования высокого уровня. Поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточную обработку.