Опубликован: 04.07.2012 | Уровень: специалист | Доступ: платный

Лекция 15: Web 2.0. Создание динамических веб-страниц на клиентской стороне. AJAX. Семантический Web. Mashups

< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Аннотация: Цель лекции: дать общее описание концепции асинхронного взаимодействия клиентских и серверных веб-приложений и рассмотреть реализацию концепции на примере AJAX. Показать современные тенденции развития веб-технологий

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

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

Термин получил распространение после конференции по Web 2.0 Медиа в 2004 году с подачи Тима О'Рейли для выражения нового способа взаимодействия разработчиков ПО и конечных пользователей через Веб. Ключевой принцип идеологии Web 2.0 был сформулирован как: "Интернет - как платформа".

Правомерность термина оспаривают многие эксперты, в том числе Тим Бернерс-Ли, поскольку многие компоненты технологий Web 2.0 существовали еще с первых лет существования сети Веб.

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

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

Сайты Web 2.0 предоставляют для пользователей возможность:

  • Не просто получать информацию, но и выполнять программы исключительно через браузер;
  • Размещать и управлять своими данными.

Еще одна важная концепция Web 2.0 - "Архитектура участия", которая поощряет пользователей повышать ценность ПО, путем его использования.

В качестве ключевых для Web 2.0 рассматриваются следующие технологии:

  • Веб-сервисы - это программы, доступ к которым осуществляется через протокол HTTP, а обмен данными происходит в формате XML (или производном от него). Веб-сервис реализуется на серверах компании, её создавшей. В любой момент пользователю доступны самые свежие данные; Веб-сервисы являются платформо-независимыми, поскольку инструменты для работы с HTTP и XML есть в любом современном языке программирования.
  • AJAX. Использование Ajax стало наиболее популярно после того как Google начала активно использовать его при создании своих сайтов, таких как Gmail и GoogleMaps.
  • Веб-синдикация (на основе технологий RSS или Atom) - одновременное распространение информации в том числе аудио- и видео- на различные страницы или веб-сайты.
  • Веб mash-up - сервис, который полностью или частично использует в качестве источников информации другие сервисы, предоставляя пользователю новую функциональность для работы. Веб mash-up сервис может становиться также новым источником информации для других веб mash-up сервисов. Таким образом, образуется сеть зависимых друг от друга сервисов, интегрированных друг с другом.
  • Теги - ключевые слова, описывающие рассматриваемый объект, либо относящие его к какой-либо категории. Теги можно рассматривать как метки, которые присваиваются объекту, для определения его места среди других объектов.
  • Фолксономия - популярная классификация, практика совместной категоризации информации (ссылок, фото, видео клипов и др.) посредством произвольно выбираемых меток (тегов). Примеры использования фолксономии: Flickr, del.icio.us.
  • Социальное ПО - широкий диапазон ПО, предназначенного для обмена и совместного доступа к информации пользователей сети Веб.

К недостаткам Web 2.0 можно отнести следующие:

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

Семантическая веб-сеть

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

Термин был введен Тимом Бернерсом-Ли в мае 2001 года.

В семантической веб-сети предполагается повсеместное использование

  1. универсальных идентификаторов ресурсов (URI),
  2. онтологий и языков описания метаданных.

Концепция семантической веб-сети была принята и продвигается W3С. Для её внедрения предполагается создание сети документов, содержащих метаданные о ресурсах WWW, и существующей параллельно с ними. Тогда как сами ресурсы предназначены для восприятия человеком, метаданные используются машинами (поисковыми роботами и другими интеллектуальными агентами) для получения однозначной информации о свойствах этих ресурсов с помощью механизмов логического вывода.

Техническую часть семантической паутины составляет семейство стандартов на языки описания, включающее XML, XML Schema, RDF, RDF Schema, OWL и др. Необходимость описания метаданных так или иначе приводит к дублированию информации. Каждый документ должен быть создан в двух экземплярах: размеченным для чтения людьми, а также в машинно-ориентированном формате.

Фолксономия

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

Основными проблемами фолксономии, приводящими к ненадежности и несогласованности результатов, являются:

  1. Наличие форм множественного числа.
  2. Полисемия.
  3. Синонимия.
  4. Глубина (специфичность) использования меток.

Фолксономию можно рассматривать в качестве одного из ключевых элементов в развитии Семантической веб-сети, в рамках которой все веб-страницы содержат машинно-ориентированные метаданные, описывающие содержимое страниц. Эти метаданные должны значительно улучшать точность работы поисковых систем.Однако во избежание трудностей, вызванных ненадежностью и несогласованностью в работе больших сообществ авторов страниц, им рекомендуется использовать стандарты метаданных, например Дублинское ядро (Dublin Core).

Онтология

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

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

Для описания онтологий Веб был разработан специальный язык - OWL (Web Ontology Language), построенный на основе XML. Язык OWL может быть использован для описания классов и отношений между ними. В основе языка - представление действительности в модели данных "объект - свойство". Язык применим не только для описания веб-страниц, но и любых объектов действительности и рассматривается в качестве одной из фундаментальных технологий, необходимых для построения Семантической веб-сети.

Семантические веб-сервисы

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

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

Потенциальная выгода от использования семантических веб-сервисов заключается в возможности автоматического поиска (а также композиции) программными агентами подходящих сервисов для решения поставленных задач.

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

AJAX

AJAX (Asynchronous JavaScript and XML) - это концепция использования нескольких смежных технологий, ориентированная на разработку высокоинтерактивных приложения, быстро реагирующих на действия пользователя, выполняющих большую часть работы на стороне клиента и взаимодействующих с сервером посредством внеполосных обращений.

Внеполосным обращением называется запрос к серверу, который приводит к оперативному обновлению страницы вместо ее замены. Внеполосный вызов HTTP - это HTTP запрос, который выдается за пределами встроенного модуля, обеспечивающего отправку форм HTTP. Вызов инициируется событием, связанным со страницей HTML и обслуживается компонентом-посредником, обычно объектом XmlHttpRequest.

Популярность AJAX связана с появлением сервиса Google Suggest в 2005 году. Данный сервис на основе объекта XMLHttpRequest предоставляет в распоряжение пользователя достаточно динамический веб-интерфейс. В процессе ввода символов пользователем в поле поискового запроса JavaScript отправляет их на сервер и получает от него список подсказок:

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

  • Приложение должно передавать пользователям свежие данные, полученные с сервера.
  • Новые данные должны интегрироваться в существующую страницу без ее полного обновления.

Для работы с такими приложениями в браузере, необходимо, чтобы он соответствовал требованиям:

  • Поддержка посредников (для внеполосных вызовов HTTP). Обычно реализуется в форме объекта XmlHttpRequest.
  • Поддержка обновляемой модели DOM.

Объект XmlHttpRequest представляет собой компактную объектную модель для отправки сценарием обращений HTTP в обход браузера. Клиентский код сценария не может влиять на процесс размещения запроса и результат отправки запроса. XmlHttpRequest позволяет сценарию отправлять HTTP запросы и обрабатывать полученные ответы.

В качестве формата передачи данных обычно используются JSON или XML.

JSON

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

JSON строится на двух структурах данных:

  • Набор пар имя/значение. В различных языках это реализовано как объект, запись, структура, словарь, хэш-таблица, список с ключом или ассоциативный массив.
  • Пронумерованный набор значений. Во многих языках это реализовано как массив, вектор, список или последовательность.

В JSON используются следующие формы данных:

  • Объект - это неупорядоченное множество пар имя/значение, заключённое в фигурные скобки { }. Между именем и значением стоит символ ":", а пары имя/значение разделяются запятыми.
  • Массив (одномерный) - это множество значений, имеющих порядковые номера (индексы). Массив заключается в квадратные скобки [ ]. Значения отделяются запятыми.
  • Значение может быть строкой в двойных кавычках, или числом, или true, или false, или null, или объектом, или массивом. Эти структуры могут быть вложены друг в друга.
  • Строка - это упорядоченное множество из нуля или более символов юникода, заключенное в двойные кавычки, с использованием escape-последовательностей начинающихся с обратной косой черты (backslash). Символы представляются простой строкой.

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

{
  "firstName": "Сергей",
  "lastName": "Иванов",
  "profile": {
    "position": "доцент, к.ф.-м.н.",
    "department": "кафедра информационных систем",
    "age": 40 
  },
   "subjects": [
     "интернет-технологии",
     "информационные технологии"
   ]
}

Использование JSON в AJAX

Следующий фрагмент Javascript кода показывает, каким образом клиент может использовать XMLHttpRequest, чтобы запрашивать с сервера объект в формате JSON. (Предполагается, что серверная часть программы выполняет запросы в формате JSON).

var the_object;
var http_request = new XMLHttpRequest();

http_request.open( "GET", url, true );
http_request.send(null);

http_request.onreadystatechange = function () 
{
  if ( http_request.readyState == 4 ) 
  {
    if ( http_request.status == 200 ) 
    {
      the_object = eval( "(" + http_request.responseText + ")" );
    } else 
    {
      alert( "There was a problem with the URL." );
    }
    http_request = null;
  }
};

В данном примере использование XMLHttpRequest не является универсальным. Полезность XMLHttpRequest ограничивается политикой ограничения домена: URL ответа на запрос должен принадлежать тому же DNS домену, что и сервер, на котором находится страница, содержащая запрос.

< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Галина Башкирова
Галина Башкирова

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

Системный администратор информационно-коммуникационных» систем.
Мне нужно самой найти тему? или делать по высланным темам

 

Константин Моренко
Константин Моренко
Елена Кашникова
Елена Кашникова
Россия, братск