Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
27.11.2024
Размер:
400.98 Кб
Скачать

Конспект лекций по дисциплине

«Интерактивное программирование веб-приложений»

1. Веб-технологии и современные средства разработки.

1.1. Понятие сети Интернет.

Компьютерные сети — это одна из самых важных технологий современности. Количество компьютеров, подключенных к глобальной сети Интернет, измеряется миллионами (и это число постоянно растет).

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

Интернет (англ. Internet, от Interconnected Networks) — глобальная телекоммуникационная сеть информационных и вычислительных ресурсов,

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

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

Веб-мониторинговая компания Netcraft опубликовала отчет о количестве работающих в интернете сайтов и персональных блогов к 1

февраля 2012 года. Согласно данным Netcraft, к февралю в сети работали 612 843 429 сайтов и блогов, что на 5,2% или 30 млн больше, чем месяцем ранее.

Доступ пользователей к Интернету осуществляется при помощи поставщиков услуг Интернета, или Интернет-провайдеров (Internet Service

Provider, ISP). Интернет-провайдер предоставляет сеть маршрутизаторов и линий связи.

Способы подключения к сети Internet:

модемное соединение (dial-up, DSL);

высокоскоростное подключение через локальную сеть (LAN);

1

беспроводное подключение (GPRS, Wi-Fi и т.д.).

Местные Интернет-провайдеры подключаются к Интернет-

провайдерам национального или интернационального звена, таким как

UUNet и Sprint. Последние используют высокоскорост-ные маршрутизаторы,

соединенные оптоволо-конными кабелями. Каждый из Интернет-

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

С точки зрения технологий и развития существование Интернета обеспечивается созданием, проверкой и внедрением Интернет-стандартов.

Эти стандарты вырабатываются проблемной группой разработок для Интернета (Internet Engineering Task Force, IETF). Документы, создаваемые

IETF, носят название RFC (Requests For Comments — предложения для обсуждения).

Изначально подобные документы предназначались для разрешения архитектурных проблем, возникавших в сетях-предшественницах Интернета.

В настоящее время эти документы составляются весьма точно и детально,

описывая различные протоколы. Существует более 6000 различных документов RFC.

1.2. Понятие Web 1.0.

Web 1.0 является ретронимом понятия, которое относится к статусу

WWW и любому стилю дизайна вебсайта, используемому перед появлением термина Web 2.0. Это — общий термин, который был создан, чтобы описать Сеть перед «взрывом пузыря «.com»» в 2001, который многие специалисты называют поворотным моментом для развития Интернета.

WEB 1.0 сформировался в 90-е годы во многом хаотично и имел главный качественный скачок – переход от простого размещения документов виде файлов к созданию сайтов на основе программного обеспечения

(движка и шаблонов показа) и баз данных.

2

Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1989—1991 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки.

Версии HTML:

HTML 1 — стандартов не имел;

RFC 1866 — HTML 2.0, одобренный как стандарт 22 сентября

1995 года;

HTML 3.2 — 14 января 1997 года;

HTML 4.0 — 18 декабря 1997 года;

HTML 4.01 (изменения, причём более значительные, чем кажется на первый взгляд) — 24 декабря 1999 года;

ISO/IEC 15445:2000 (так называемый ISO HTML, основан на

HTML 4.01 Strict) — 15 мая 2000 года.

HTML 5 — в разработке. Конец разработки запланирован на 2014

год.

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

Уникальные решения и развитие в интернете возможны в 3-х областях:

программирование сайта;

дизайн сайта;

контент сайта.

Использование старых технологий и старых принципов организации размещения и доступа к данным автоматически ограничивает «гладкий стиль» с точки зрения программирования и программных решений.

3

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

Все варианты по количеству и взаимному расположению информационных блоков на сайте были определены достаточно быстро такими студиями как Лебедев, Пирогов, Актис и т.д. Контент, сайта WEB 1.0

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

1.3. Концепция Web 2.0.

Появление термина Web 2.0 принято связывать со статьей «Tim O’Reilly — What Is Web 2.0» («Тим О’Рейли – Что такое Веб 2.0») от 30

сентября 2005 года. В этой статье Тим О’Рейли увязал появление большого числа сайтов, объединенных некоторыми общими принципами, с общей тенденцией развития интернет-сообщества, и назвал это явление Web 2.0, в

противовес «старому» Web 1.0.

По определению данному в этой статье Web 2.0 – это методика проектирования систем, которые путем учета сетевых взаимодействий,

становятся тем лучше, чем больше людей ими пользуются. Особенностью

Web 2.0. является принцип привлечения пользователей к наполнению и многократной выверке контента.

Веб-службы – это программы, доступ к которым осуществляется через Веб (то есть протокол HTTP), а обмен данными происходит в формате XML.

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

В отличие от обычных динамических библиотек, такой подход обладает огромным плюсом – Веб-служба находится на серверах компании,

4

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

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

Asynchronous JavaScript and XML (AJAX) — подход к построению пользовательских интерфейсов веб-приложений, при котором веб-страница,

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

Использование Ajax стало наиболее популярно после того как Google начала активно использовать его при создании своих сайтов, таких как Gmail и

Google Maps.

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

п.). Пожалуй, именно с этой технологии начались разговоры о новой эпохе веба.

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

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

Теперь все выглядит так: есть какая-то новость, которую,

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

5

частью какого-то одного сайта, а как бы существуют сами по себе и могут использоваться кем угодно и где угодно.

Веб mash-up (дословный перевод — «смешение») — сервис, который полностью или частично использует в качестве источников информации другие сервисы, предоставляя пользователю новую функциональность для работы. В результате такой сервис может становиться также новым источником информации для других веб mash-up сервисов.

Таким образом образуется сеть зависимых друг от друга сервисов,

интегрированных друг с другом.

Например, сайт по поиску недвижимости с интегрированными картами

Google Maps в итоге представляет собой новый, более удобный сервис, с

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

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

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

Дизайн. Понятие Web 2.0 так же отразилось и в дизайне.

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

имитация отражений и теней. В целом, восприятие внешнего вида на глаз кажется более приятным. Графика таких сайтов занимает больший объем,

нежели при использовании простого дизайна.

Эти изменения в дизайне связаны с совпавшим по времени выходом новых версий ОС. Однако это приводит к явному однообразию таких сайтов и в последнее время считается, графический облик классического дизайна

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

1.4. Концепция Web 3.0.

6

Выявившиеся недостатки концепции Web 2.0 привели к формированию нового течения, получившего название Web 3.0. По определению данному Джейсоном Калаканисом (руководителя Netscape.com) Web 3.0 – это высококачественный контент и сервисы, которые создаются талантливыми профессионалами на технологической платформе Web 2.0.

Наиболее распространенной версией трактовки термина Web 3.0

является идентификация его как Семантической Паутины (Semantic Web).

Главная мысль этой концепции базируется на внедрении мета-языка,

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

Проблемы на этапе обработки и вывода информации:

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

отсутствие гарантии адекватного описывания веб-мастерами собственных ресурсов (аналогично с историей использования тега «keywords»);

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

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

Вторым по распространенности определением Web 3.0 является концепция Менеджеров знаний. Согласно этой концепции, менеджер знаний

– это эксперт в конкретной области, привносящий в сообщество (Web 2.0)

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

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

7

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

Автор термина «Web 2.0» Тим О’Рейли (Tim O'Reilly) предложил определить Web 3.0 как взаимодействие интернета с физическим миром,

однако до тотального внедрения подобных технологий (распознавание жестов в iPhone и контроллере Wii) в бытовое обращение о новом поколении

Web говорить еще рано. Также он неоднократно выступал с критикой отождествления «семантического веба» и концепции Web 3.0.

1.5. Серверные языки программирования.

Ксерверным языкам программирования можно отнести:

Perl;

PHP;

Python;

Ruby;

Java (JSP);

любой .NET язык программирования (технология ASP.NET).

Язык Perl создан системным программистом Ларри Уоллом (Larry Wall) как средство UNIX, позволяющее "склеивать" из программок,

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

Perl является основным средством создания приложений CGI, удобен для решения задач администрирования Web-серверов, электронной почты и других систем. Благодаря быстроте и легкости написания сценариев на этом языке он распространился и на другие платформы: DOS, Windows, OS/2, Mac, VMS и пр. Одно из основных достоинств языка Perl— его открытость и доступность.

Perl — это интерпретируемый язык, оптимизированный для просмотра содержимого текстовых файлов, выделения из них информации и генерирования отчетов на основе этой информации, а также просто хороший

язык для выполнения многих задач системного администрирования UNIX.

8

Изначально PHP расшифровывалось как Personal Home Page (персональная домашняя страница), поскольку множество программистов использовало его для создания своих веб-сайтов.

Однако в последние несколько лет фразой Personal Home Page можно,

скорее, описать какой-то сайт, размещенный на дешевом хостинге, а не высокоэффективный язык программирования. Поэтому теперь PHP означает

PHP: Hypertext Preprocessor (PHP: гипертекстовый препроцессор). PHP-код существует в виде сценариев, которые являются простыми текстовыми файлами.

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

Python — мощный и простой для изучения язык программирования. Он позволяет использовать эффективные высокоуровневые структуры данных и предлагает простой, но эффективный подход к объектно-ориентированному программированию.

Интерпретатор Python может быть легко расширен с помощью новых функций и типов данных, написанных на C/C++ (или других языках, к

которым можно получить доступ из C). Также Python можно применять как язык расширений для настраиваемых приложений.

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

9

Ruby — интерпретируемый язык программирования высокого уровня.

Обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» и

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

Ruby был задуман в 1993 году (24 февраля) японцем Юкихиро Мацумото, стремившимся создать язык, совмещающий все качества других языков, способствующие облегчению труда программиста. Ruby близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-

ориентированному подходу — к Smalltalk.

2. Технология создания веб-приложений и веб-сервисов ASP.NET.

2.1. Платформа Microsoft .NET Framework.

Microsoft .NET Framework предоставляет модульные компоненты,

которые упрощают разработку распределенных приложений. Microsoft ASP.NET является одной из множества технологий, которые являются частью .NET Framework.

Microsoft .NET может включать в себя следующие технологии:

.NET Framework;

Серверы;

Клиенты;

Visual Studio 2008.

Основными компонентами .NET Framework являются: общеязыковая среда выполнения (Common language runtime - CLR), библиотека классов

.NET Framework, включающая ADO.NET, ASP.NET, Windows Forms и Windows Presentation Foundation (WPF). .NET Framework предоставляет среду управляемого выполнения, возможности упрощения разработки и развертывания, а также возможности интеграции со многими языками программирования.

10