1.3.1. Веб-программирование
Веб-программирование (Веб-разработка) – это бурно развивающийся раздел программирования, ориентированный на разработку динамических Интернет-приложений [37].
Языки веб-программирования делятся на две группы: клиентские и серверные.
Клиентские языки обрабатываются на стороне пользователя (в основном в браузере). Соответственно обработка скрипта зависит от браузера пользователя, и пользователь имеет полномочия настроить свой браузер так, чтобы тот вообще игнорировал скрипты. При этом если браузер старый, он может не поддерживать тот или иной язык или версию языка, на которую опирался разработчик. С современными браузерами таких проблем возникать не должно, к тому же языки программирования не так уж часто кардинально обновляются (раз в несколько лет) и лучшие из них давно известны. Код клиентского скрипта может посмотреть каждый, выбрав в меню своего браузера "Исходный код страницы".
Преимущество клиентского языка заключается в том, что обработка скриптов на таком языке может выполняться без отправки документа на сервер. Программа сразу проверит правильное заполнение формы перед отправкой, и, если необходимо, выведет ошибку. Отсюда же вытекает и то ограничение, что с помощью клиентского языка программирования ничто не может быть записано на сервер.
Самым распространенным из клиентских языков является JavaScript, разработчиками которого является компания Netscape совместно с компанией Sun Microsystems. Еще один популярный язык – это VBScript. Помимо этого в последнее время набрали популярность такие технологии как AJAX, Adobe Flash, Microsoft Silverlight и др.
Серверные языки программирования открывают перед программистом большие просторы в деятельности.
Когда пользователь делает запрос на какую-либо страницу (переходит на нее по ссылке, или вводит адрес в адресной строке своего браузера), то вызванная страница сначала обрабатывается на сервере (то есть выполняются все программы, связанные со страницей) и только потом возвращается к посетителю по сети в виде файла. Этот файл может иметь расширения: HTML, PHP, ASP, Perl, SSI, XML, DHTML, XHTML.
Работа программ уже полностью зависима от сервера, на котором расположен сайт, и от того, какая версия того или иного языка поддерживается.
Важной стороной работы серверных языков является Система управления базами данных (СУБД). Это, по сути, тоже сервер, на котором в определенном пользователем порядке хранится разная необходимая информация, которая может быть вызвана в любой момент. Популярными среди систем управления базами данных являются:
IBM DB2;
Microsoft SQL Server;
MySQL;
Oracle;
PostgreSQL;
SQLite.
Хронология развития веб-технологий показана на рис. 1.4.
Рис. 1.4. Хронология развития веб-технологий
1.3.2. HTML HTML (HyperText Markup Language – "язык разметки гипертекста") – стандартный язык разметки документов во Всемирной паутине [38]. Большинство веб-страниц создаются при помощи языка HTML. Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме. HTML является приложением SGML (стандартного обобщенного языка разметки) и соответствует международному стандарту ISO 8879. Язык HTML был разработан британским ученым Тимом Бернерсом-Ли приблизительно в 1991-1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (CERN). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области верстки. HTML успешно справлялся с проблемой сложности SGML путем определения небольшого набора структурных и семантических элементов – дескрипторов. Дескрипторы также часто называют "тегами". С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). Текстовые документы, содержащие код на языке HTML (такие документы традиционно имеют расширение .html или .htm), обрабатываются специальными приложениями, которые отображают документ в его форматированном виде. Такие приложения, называемые "браузерами" или "Интернет-обозревателями", обычно предоставляют пользователю удобный интерфейс для запроса веб-страниц, их просмотра (и вывода на иные внешние устройства) и, при необходимости, отправки введенных пользователем данных на сервер. Наиболее популярными на сегодняшний день браузерами являются (по данным на январь 2010 г.) [39]:
Спецификация HTML имеет несколько версий:
Подробнее данная технология будет освещена в лекции 2. 1.3.3. XHTML XHTML (Extensible Hypertext Markup Language – расширяемый язык разметки гипертекста) – язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML [40]. Как и HTML, XHTML соответствует спецификации SGML, поскольку XML является ее подмножеством. Стандарт XHTML построен не как самодостаточное описание языка, а как перечень различий между HTML 4.01 и XHTML [41]:
Для XHTML страниц рекомендуется задавать MIME-тип – application/xhtml+xml, но это не является обязательным, более того – браузер Internet Explorer 8 и младшие версии, не смогут обрабатывать страницу, поэтому с XHTML 1.0 традиционно используется MIME-тип для HTML – text/html. Версии XHTML:
Подробнее данная технология будет освещена в лекции №2. 1.3.4. CSS CSS (Cascading Style Sheets – каскадные таблицы стилей) – технология описания внешнего вида документа, написанного языком разметки [42]. Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML, но может применяться с любыми видами документов в формате XML, включая SVG и XUL. Термин "каскадные таблицы стилей" был предложен Хокон Виум Ли в 1994 году. Совместно с Бертом Босом он стал развивать CSS. CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения и других аспектов представления документа. Основной целью разработки CSS являлось разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS) [43]. Это разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печать, чтение голосом (специальным голосовым браузером или программой чтения с экрана) и др. Наиболее полно поддерживающими стандарт CSS являются браузеры, работающие на Gecko (Mozilla Firefox и др.) и WebKit (Arora, Google Chrome, Safari), а также браузер Opera [44]. Что касается Internet Explorer, то только 8-ая его версия полностью поддерживает CSS 2.1 и частично – CSS 3 [45]. Преимущества применения CSS [42, 43]:
Недостатки применения CSS [42, 43]:
Подробнее данная технология будет освещена в лекции №2. 1.3.5. XML XML (eXtensible Markup Language – расширяемый язык разметки) – рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил [46]. XML – текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощенным подмножеством языка SGML. Годом рождения XML можно считать 1996 год, в конце которого появился черновой вариант спецификации языка, или 1998, когда эта спецификация была утверждена. Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть, не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имен (namespace). К достоинствам использования XML можно отнести [46, 47]:
К недостаткам XML можно отнести [46, 47, 48]:
Наиболее распространены три способа преобразования XML-документа в отображаемый пользователю вид:
Без использования CSS или XSL XML-документ отображается как простой текст в большинстве Веб-браузеров. Некоторые браузеры, такие как Internet Explorer, Mozilla и Mozilla Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши. Подробнее данная технология будет освещена в лекции 7. 1.3.6. JavaScript Объектно-ориентированный скриптовый язык программирования JavaScript (первоначально назван LiveScript его создателем, Бренданом Ваше, и развернут в составе браузера Netscape Navigator) был впервые представлены публике в 1995 году. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса. На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом легким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке. JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам – функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания – что придает языку дополнительную гибкость. Структурно JavaScript можно представить в виде объединения трех четко различимых друг от друга частей:
Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться. Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что согласуется с определением DOM как независимого от языка интерфейса документа. Для добавления JavaScript-кода на страницу, можно использовать теги <script></script>. Область применения JavaScript очень широка:
Для обеспечения высокого уровня абстракции и достижения приемлемой степени кросс-браузерности при разработке веб-приложений используются библиотеки JavaScript. Они представляют собой набор многократно используемых объектов и функций. Среди известных JavaScript библиотек можно отметить Adobe life, Dojo Toolkit, Extjs, jQuery, Mootools, Prototype, Qooxdoo. На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее часто используемых браузеров. В Internet Explorer, Mozilla Firefox, Safari, Chrome, Opera имеется полная поддержка третьей редакции ECMA-262. Подробнее данная технология будет освещена в лекции 12. |
|
1.3.7. PHP PHP (PHP: Hypertext Preprocessor – "PHP: препроцессор гипертекста", Personal Home Page Tools – "Инструменты для создания персональных веб-страниц") – скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки веб-приложений [50]. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов. Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект не является свободным и распространяется под собственной лицензией. В области программирования для Интернета PHP – один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP. Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу Tiobe, базирующемся на данных поисковых систем, в декабре 2009 года PHP находится на 3 месте среди языков программирования (уступая Java и C), поднявшись за год на две позиции [51]. К крупнейшим сайтам, использующим PHP, относятся Facebook (который, однако, использует транслятор кода HipHop с PHP на C++ с целью оптимизации), ВКонтакте, Wikipedia. В настоящий момент существует единственная реализация PHP, ни одна сторонняя компания не поддерживает исполняемых модулей, отличных от официальной сборки. Такое положение вещей, с одной стороны, позволяет быстро внедрять и распространять нововведения среди сообщества разработчиков, с другой стороны, разрабатывать язык программирования в условиях отсутствия стандарта, так как единая реализация обеспечивает его по факту. В таких условиях большое значение приобретает версия интерпретатора, определяющая текущую функциональность (обратная совместимость между версиями интерпретатора не соблюдается строго). 1.3.8. Perl Perl – высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный в 1987 г. Ларри Уоллом, лингвистом по образованию [52]. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language "практический язык для извлечения данных и составления отчетов". Согласно Ларри Уоллу, Perl имеет два девиза. Первый – "There's more than one way to do it" ("Есть больше одного способа сделать это", также известный как TMTOWTDI); второй – "Easy things should be easy and hard things should be possible" ("Простые вещи должны быть простыми, а сложные вещи – возможными"). Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. Перл унаследовал много свойств от языков С, shell script, awk. Perl также знаменит огромной коллекцией дополнительных модулей CPAN [53]. 1.3.9. AJAX AJAX (Asynchronous Javascript and XML – "асинхронный JavaScript и XML") – подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в "фоновом" обмене данными браузера с веб-сервером [54]. В результате, при обновлении данных веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными. Впервые термин AJAX был публично использован в 2005 году в статье Джесси Джеймса Гарретта (Jesse James Garrett) "Новый подход к веб-приложениям" [55]. Гарретт придумал термин, когда ему пришлось как-то назвать новый набор технологий, предлагаемый им клиенту. AJAX – не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:
В качестве формата передачи данных обычно используются JSON или XML. К преимуществам AJAX можно отнести:
К недостаткам AJAX можно отнести:
Подробнее данная технология будет освещена в лекции №6. 1.3.10. Adobe Flash Adobe Flash (ранее известная как Macromedia Flash) – мультимедийная платформа, используемая для создания векторной анимации и интерактивных приложений, а также для интеграции видеороликов в веб-страницы [56]. Разработка Flash была начата компанией FutureWave, создавшей пакет анимации FutureSplash Animator. В 1996 году FutureWave была приобретена компанией Macromedia, которая переименовала FutureSplash Animator в Flash. Под этим наименованием платформа продолжает развиваться и поныне (хотя после того, как в 2005 году компания Macromedia была поглощена Adobe, Macromedia Flash стал официально называться Adobe Flash). Adobe Flash позволяет работать с векторной, растровой и ограниченно с трехмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. В основе Flash лежит векторный морфинг, то есть плавное "перетекание" одного ключевого кадра в другой. Это позволяет делать сложные мультипликационные сцены, задавая лишь несколько ключевых кадров для каждого персонажа. Flash использует язык программирования ActionScript, основанный на ECMAScript. В качестве основного средства разработки используется пакет Adobe Flash Professional (последняя версия Adobe Flash CS4). Стандартным расширением для скомпилированных Flash-файлов является SWF (Shockwave Flash или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV (при этом Flash в данном случае используется только как контейнер для видеозаписи). Flash-контент воспроизводится с помощью целого ряда программных средств, но доминирующее положение на рынке занимает официальный Adobe Flash Player, распространяемый в качестве бесплатного плагина для большинства современных браузеров. Основной недостаток Flash-приложений – чрезмерная требовательность к ресурсам процессора. Недостаточная мощность компьютера может повлиять на производительность операционной системы в целом, либо привести к искажению результатов работы Flash-приложения, связанных с отображением анимации или подсчетом времени. Другой важный недостаток заключается в том, что не всегда есть возможность запустить Flash-приложение, либо она связана с некоторыми трудностями (например, необходимо установить плагин или обновить его до последней версии). Также использование Flash для размещения текстовой информации препятствует ее индексированию поисковыми системами. Однако существует множество способов решить эту проблему. Подробнее данная технология будет освещена в лекциях №16 и 17. 1.3.11. Silverlight Microsoft Silverlight – это мультимедийная технология схожая по решаемым задачам с Adobe Flash. Также Microsoft Silverlight – это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application) [57]. Silverlight реализован для ОС Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Mac OS X 10.4, Mac OS X 10.5 и браузеров Internet Explorer 6.0/7.0/8.0, Mozilla Firefox 1.5/2.0/3, Safari 3.1, Google Chrome 3.0. В будущем также планируется поддержка Opera, мобильных устройств, начиная с Windows Mobile 6 и Symbian (Series 60), и, возможно, других платформ. Silverlight предоставляет графическую систему, схожую с Windows Presentation Foundation, и объединяет мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был разработан, чтобы работать с XAML и с языками Microsoft .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в Silverlight приложениях, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать виджеты для Windows Sidebar в Windows Vista. Silverlight поддерживает воспроизведение WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player. Silverlight позволяет динамически загружать XML и использовать DOM для взаимодействия с ним так же, как это делается в Ajax. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования, такие как Iron Ruby и Iron Python, которые в свою очередь исполняются в DLR (Dynamic Library Runtime) , а не CLR (Common Language Runtime). Подробнее данная технология будет освещена в лекции 16 и 17. 1.3.12. ASP.NET ASP.NET – технология создания веб-приложений и веб-сервисов от компании Microsoft [58]. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. Хотя ASP.NET берет свое название от старой технологии Microsoft ASP, она значительно от нее отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft .NET. Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект .NET Framework (C#, Visual Basic.NET, и JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д. Вместе с тем следует учитывать, что указанное преимущество не всегда может быть реализовано. Это связано с тем, что на скорость работы реального проекта влияют множество факторов. В первую очередь это квалификация руководителей разработки и исполнителей: медленные алгоритмы легко сводят на нет незначительное преимущество скомпилированного кода перед интерпретацией серверных скриптов Преимущества ASP.NET перед ASP:
Подробнее данная технология будет освещена в лекции 6 и 7. 1.3.13. Ключевые термины Веб-программирование, Клиентские языки программирования, Серверные языки программирования, HTML, XHTML, CSS, XML, JavaScript, PHP, Perl, AJAX, Adobe Flash, Microsoft Silverlight, ASP.NET. 1.4. Краткие итоги Интернет – глобальная телекоммуникационная сеть информационных и вычислительных ресурсов. В течение всего пяти лет Интернет достиг аудитории свыше 50-ти миллионов пользователей. Различают логическую и физическую модели Интернета. Под логической прежде всего понимают Всемирную паутину (World Wide Web), а под физической – компьютеры, серверы и средства передачи данных между ними. Чтобы различные компьютеры сети могли взаимодействовать, они должны использовать один и тот же протокол. Систему протоколов Интернет называют "стеком протоколов TCP/IP". Всемирная паутина – распределенная система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключенных к Интернету. Всемирная паутина стоит на "трех китах":
Концепции развития Всемирной паутины можно условно разделить на Веб 1.0, Веб 2.0, Веб 3.0. Веб-программирование – это раздел программирования, ориентированный на разработку динамических Интернет-приложений. Языки веб-программирования делятся на две группы: клиентские и серверные. Клиентские языки обрабатываются на стороне пользователя (в основном в браузере). Серверные языки программирования обрабатываются на стороне сервера. Важной стороной работы серверных языков является Система управления базами данных (СУБД). HTML – стандартный язык разметки документов во Всемирной паутин. XHTML – язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML. CSS – технология описания внешнего вида документа, написанного языком разметки. XML – текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки. JavaScript – это объектно-ориентированный скриптовый язык программирования. PHP – скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки веб-приложений. Perl – высокоуровневый интерпретируемый динамический язык программирования общего назначения. AJAX – подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в "фоновом" обмене данными браузера с веб-сервером. Adobe Flash и Microsoft Silverlight – мультимедийные платформы, используемые для создания RIA-приложений, а также для интеграции видеороликов в веб-страницы. ASP.NET – технология создания веб-приложений и веб-сервисов от компании Microsoft. |
|
- 1. Исторические аспекты возникновения и развития Интернета
- 1.1. История возникновения и развития Веб
- 1.1.1. Понятие "Интернет"
- 1.1.2. Хронология
- 1.1.3. Принципы работы
- 1.1.3.1. Физическая модель
- 1.1.3.2. Логическая модель
- 1.1.4. Ключевые термины
- 1.2. Эволюция концепции Веб
- 1.2.1. Веб 1.0
- 1.2.2. Веб 2.0
- 1.2.3. Веб 3.0
- 1.2.4. Выводы
- 1.2.4. Ключевые термины
- 1.3. Основные технологии в Интернете
- 1.3.1. Веб-программирование