close

Вход

Забыли?

вход по аккаунту

?

2739.Web- технологии

код для вставкиСкачать
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
А.В. Сычев
WЕВ-ТЕХНОЛОГИИ
Часть 2
Учебное пособие
Издательско-полиграфический центр
Воронежского государственного университета
2009
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Утверждено научно-методическим советом факультета компьютерных наук ВГУ 15 декабря 2008 г., протокол № 4
Рецензент доц. И.В.Илларионов
Учебное пособие предназначено для использования на лабораторных занятиях и для самостоятельной работы студентов 2-го курса дневного отделения факультета компьютерных наук по курсу «Web-технологии».
Для специальности: 230201 – Информационные системы и технологии
и направления: 230200 – Информационные системы
2
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 6. ВВЕДЕНИЕ В XML
В 1986 году, задолго до того, как идея создания сети Веб была воплощена в жизнь, универсальный стандартизированный язык разметки
SGML (Standardized Generalized Markup Language) был утвержден в качестве международного стандарта (ISO 8879) определения языков разметки, хотя SGML существовал еще с конца шестидесятых. Он использовался для того, чтобы описывать языки разметки, предоставляя при
этом автору возможность давать формальные определения каждому элементу и атрибуту языка.
Язык HTML первоначально был всего лишь одним из SGMLприложений. Он описывал правила, по которым должна быть подготовлена информация для World Wide Web. Таким образом, язык HTML – это
набор предписаний SGML, сформулированных в виде определения типа
документа (DTD), объясняющих, что именно обозначают тэги и элементы. Схема DTD для языка HTML хранится в веб-браузере.
К недостаткам языка HTML можно отнести следующие:
· HTML имеет фиксированный набор тэгов. Нельзя создавать свои
тэги, понятные другим пользователям.
· HTML – это исключительно технология представления данных. HTML
не несет информации о значении содержания, заключенного в тэгах.
· HTML – «плоский» язык. Значимость тэгов в нем не определена, поэтому с его помощью нельзя описать иерархию данных.
· В качестве платформы для приложений используются браузеры.
HTML не обладает достаточной мощью для создания веб-приложений на
том уровне, к которому в настоящее время стремятся веб-разработчики.
Например, на языке HTML невозможно разработать приложение для
профессиональной обработки и поиска документов.
· Большие объемы трафика сети. Существующие HTML-документы,
используемые как приложения, перегружают Интернет большими объемами трафика в системах клиент-сервер. Примером может служить пересылка по сети большого по объему документа, в то время как необходима только небольшая часть этого документа.
Таким образом, с одной стороны, язык HTML является очень удобным
средством разметки документов для использования в веб, а с другой –
документ, размеченный в HTML, имеет мало информации о своем содержании. Если тот или иной документ несет достаточно полную информацию о своем содержании, появляется возможность сравнительно
легко провести автоматическую обобщенную обработку и поиск в файле, хранящем документ. Язык SGML позволяет сохранять информацию о
содержании документа, однако вследствие особой сложности он никогда
не использовался так широко, как HTML.
3
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Группа экспертов по языку SGML, возглавляемая Джоном Боузэком (Jon
Bosak) из компании Sun Microsystems, приступила к работе по созданию
подмножества языка SGML, которое могло бы быть принято Webсообществом. Решено было удалить многие несущественные возможности
SGML. Перестроенный таким образом язык назвали XML. Упрощенный
вариант оказался значительно более доступным, чем оригинал, его спецификации занимали всего 26 страниц по сравнению с более чем 500 страницами спецификаций SGML.
6.1. Структура XML
Рассмотрим более детально структуру и особенности этого языка.
XML (eXtensible Markup Language) – рекомендованный W3C язык разметки. XML – текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе специализированных языков разметки. XML
является упрощённым подмножеством языка SGML.
Язык XML имеет следующие достоинства:
· Это человекоориентированный формат документа, он понятен как человеку, так и компьютеру.
· Поддерживает Юникод.
· В формате XML могут быть описаны основные структуры данных: записи, списки и деревья.
· Это самодокументируемый формат, который описывает структуру и
имена полей также как и значения полей.
· Имеет строго определённый синтаксис и требования к анализу, что
позволяет ему оставаться простым, эффективным и непротиворечивым.
· Широко используется для хранения и обработки документов.
· Это формат, основанный на международных стандартах.
· Иерархическая структура XML подходит для описания практически
любых типов документов.
· Представляет собой простой текст, свободный от лицензирования и
каких-либо ограничений.
· Не зависит от платформы.
· Является подмножеством SGML, для которого накоплен большой
опыт работы и созданы специализированные приложения;
К известным недостаткам языка можно отнести следующие:
· Синтаксис XML избыточен.
§ Размер XML документа существенно больше бинарного представления тех же данных (порядка 10 раз).
§ Размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON,
4
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
YAML) и особенно в форматах данных, оптимизированных для конкретного случая использования.
§ Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.
§ Для большого количества задач не нужна вся мощь синтаксиса
XML, и можно использовать значительно более простые и производительные решения.
· Пространства имён XML сложно использовать и их сложно реализовывать в XML парсерах.
· XML не содержит встроенной в язык поддержки типов данных. В нём
нет понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
· Иерархическая модель данных, предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно ориентированными графами.
Вообще говоря, XML можно рассматривать не только как новый язык
разметки, но и как основу для целого семейства технологий:
XML
DTD
XDR
XSD
Пространство
имен
XPath
Технические рекомендации об использовании
XML
Определение типа документа (схема)
Формат XML Reduced (схема Microsoft)
Определение схемы XML (схемы W3C)
Метод определения имен элементов и атрибутов
Язык путей XML
XLink
XPointer
Язык ссылок XML
Язык указателей XML
DOM
SAX
XSL
API для объектной модели документа
Простой API для XML
Расширяемый язык таблиц стилей
XSL-FO
Объекты форматирования XSL
XSLT
Язык преобразований XSL
XInclude
Синтаксис XML Include
XBase
Синтаксис XML Base URI
По сути, XML служит метаязыком для описания структуры других языков. Взаимосвязь между SGML, XML, HTML и некоторыми другими языками показана на диаграмме (рис. 6.1).
5
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Рис. 6.1. Диаграмма взаимосвязи между языками разметки
Важным отличием XML от HTML является то большое внимание, которое уделяется контролю за тем, насколько точно соблюдаются правила
языка при разметке документов. В зависимости от этого принято выделять
правильно построенные и действительные XML документы.
Документ XML считается правильно построенным, если он соответствует всем синтаксическим правилам XML.
Проверка действительности документа предполагает выполнение следующих действий:
· Проверка использования только заданного набора дескрипторов.
· Проверка полного соответствия порядка следования элементов и атрибутов содержанию документа или определенным правилам.
· Контроль типов данных (достигается при использовании соответствующей схемы).
· Контроль целостности данных для обеспечения оптимального обмена информацией через Веб с помощью транзакций.
Рассмотрим теперь основные синтаксические правила построения XML
документов.
· XML-документ содержит один и только один корневой элемент, содержащий все остальные элементы.
· Дочерние элементы, содержащиеся в корневом элементе, должны
быть правильно вложены.
· Имена элементов подчиняются правилам:
§ Имя начинается с буквы, знака подчеркивания или двоеточия.
§ После первого символа в имени могут быть буквы, цифры, знаки
переноса, подчеркивания, точка или двоеточие.
§ Имена не могут начинаться с буквосочетания XML.
6
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
XML-документ имеет следующую структуру:
· Первая строка XML-документа называется объявлением XML. Это
необязательная строка, указывающая версию стандарта XML (обычно это
1.0). Также здесь может быть указана кодировка символов и внешние зависимости.
· Комментарий может быть размещен в любом месте дерева. XML
комментарии размещаются внутри пары тегов <!-- и заканчиваются -->.
Два знака дефис (--) не могут быть применены ни в какой части внутри
комментария.
· Остальная часть этого XML-документа состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержимое.
· Элемент обычно состоит из открывающего и закрывающего тегов,
обрамляющих текст и другие элементы.
· Открывающий тег состоит из имени элемента в угловых скобках;
· Закрывающий тег состоит из того же имени в угловых скобках, но
перед именем ещё добавляется косая черта.
· Содержимым элемента называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные)
элементы.
· Кроме содержания у элемента могут быть атрибуты – пары
имя=значение, добавляемые внутрь открывающего тега после названия
элемента.
· Значения атрибутов всегда заключаются в кавычки (одинарные или
двойные), одно и то же имя атрибута не может встречаться дважды в одном элементе.
· Не рекомендуется использовать разные типы кавычек для значений
атрибутов одного тега.
· Для обозначения элемента без содержания, называемого пустым
элементом, необходимо применять особую форму записи, состоящую из
одного тега, в котором после имени элемента ставится косая черта «/».
К сожалению, описанные выше правила позволяют контролировать
только формальную правильность XML-документа, но не содержательную. Для решения второй задачи используются так называемые
схемы.
Схема четко определяет имя и структуру корневого элемента, включая спецификацию всех его дочерних элементов. Программист может
задать, какие элементы и в каком количестве обязательны, а какие –
необязательны. Схема также определяет, какие элементы содержат атрибуты, допустимые значения этих атрибутов, в т. ч. значения по
умолчанию.
7
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Чаще всего для описания схемы используются следующие спецификации:
· DTD (Document Type Definition) – язык определения типа документов.
· XDR (XML Data Reduced) – диалект XML, разработанный Майкрософт.
· XSD (язык определения схем XML) – рекомендована консорциумом
W3C.
XML документ отличается от HTML документа также и тем, как он отображается в веб-браузере. Без использования CSS или XSL XML-документ
отображается как простой текст в большинстве веб-браузеров. Некоторые
веб-браузеры такие, как Internet Explorer, Mozilla и Firefox отображают
структуру документа в виде дерева, позволяя сворачивать и разворачивать
узлы с помощью нажатия клавиши мыши.
Наиболее распространены три способа преобразования XML-документа
в отображаемый пользователю вид:
· Применение стилей CSS.
· Применение преобразования XSLT.
· Написание на каком-либо языке программирования обработчика
XML-документа.
6.2. Языки описания cхем XML
Идея создания собственных тэгов, имеющих специальное значение и
помогающих описать содержание документа, сама по себе просто замечательна. Но если каждый пользователь может создавать свои собственные
описания, каким образом их распознавать? С этой целью в спецификации
XML для описания подобных «самодеятельных» тэгов используются схемы. Они необходимы для того:
· чтобы описать, что именно является разметкой;
· описать точно, что означает разметка.
Наиболее известными языками описания схем являются следующие:
· DTD (Document Type Definition) – язык определения типа документов,
который первоначально использовался в качестве языка описания структуры SGML-документа.
· XDR (XML Data Reduced) – диалект схемы XML, разработанный Microsoft, который поддерживался в Internet Explorer 4 и 5 версий.
· XML Schema или просто XSD (язык определения схем XML) – рекомендация консорциума W3C с 2001 года.
6.3. DTD-схема
Схема DTD предоставляет шаблон разметки документа, в котором указываются наличие, порядок следования и расположение элементов и их
атрибутов в документе XML (рис. 6.2).
8
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Элементы
Пустые
Контейнеры
с о д е р ж а т
Данные
Дочерние
элементы
Данные
+
дочерние
элементы
Рис. 6.2. Модель содержания ХМL-документа в схеме DTD
Каждый элемент документа может иметь один из типов, приведенных в
таблице 6.1.
Т а б л и ц а 6.1
Типы элементов схемы DTD
Содержание
Синтаксис
Комментарий
Данные
<!ELEMENT имя (#PCDATA)>
Содержит только текстовые
данные
Другие элементы
<!ELEMENT имя (дочерний
элемент 1, дочерний
элемент 2)>
Содержит только дочерние
элементы
Смешанное
<!ELEMENT имя (#PCDATA,
дочерний элемент)*>
Содержит комбинацию текстовых данных и дочерних элментов
EMPTY
<!ELEMENT имя EMPTY>
Ничего не содержит
ANY
<!ELEMENT имя ANY>
Может содержать текстовые
данные или дочерние элементы
Атрибуты, находящиеся внутри тэгов документа, описываются отдельно
с помощью синтаксиса:
<!ATTList
имя_элемента имя_атрибута1 (тип) значение_по_умолчанию
………………………
имя_элемента имя_атрибутаN (тип) значение_по_умолчанию >
При этом атрибут в DTD может иметь один из трех типов:
· Строка.
· Маркированный атрибут.
· Атрибут с перечислением.
9
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Кроме типа атрибута можно также задавать и его модальность (табл. 6.2).
Т а б л и ц а 6.2
Модальности атрибутов в схеме DTD
Значение
#REQUIRED
#FIXED
#IMPLIED
Описание
Атрибут обязательно должен быть указан
Значение атрибута не должно отличаться от указанного
Необязательное значение
Рассмотрим в качестве примера описание атрибутов строкового типа
для элемента, описывающего некоторое сообщение:
<!ATTLIST message
number
date
from
status
CDATA
CDATA
CDATA
CDATA
#REQUIRED
#REQUIRED
#FIXED
#IMPLIED>
Если этот элемент содержит атрибуты с перечислением, то их описание
может выглядеть, например, следующим образом:
<!ATTLIST message
number
from
alert
ID
#REQUIRED
CDATA
#REQUIRED
(low | normal | urgent) “normal”>
Маркированные атрибуты элемента могут быть четырех типов:
1. ID
2. IDREF
3. ENTITIES
4. NMTOKEN
Уникальный идентификатор элемента (начинается с буквы, двоеточия или подчеркивания)
Ссылка на элемент, содержащий атрибуты ID
Ссылка на внешний элемент
Содержит буквы, цифры, точки, знаки подчеркивания,
переносы, двоеточия, но не пробелы
И, наконец, в DTD можно использовать следующие индикаторы вхождения последовательностей (табл. 6.3).
Т а б л и ц а 6.3
Индикаторы вхождения последовательностей в схеме DTD
Символ
,
|
?
+
*
Пример
(a, b, c)
(a | b | c)
date
subject?
paragraph+
brother*
Описание
Последовательное использование элементов списка
Используется один из членов списка
Используется один и только один элемент
Необязательное использование (0 или 1 раз)
Используется один или несколько раз
Используется ноль или несколько раз
10
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
В качестве примера приведем DTD-схему, описывающую структуру
электронного почтового ящика:
<!ELEMENT mailbox (message*)>
<!ELEMENT message (head, body)>
<!ATTLIST message uid CDATA #REQUIRED>
<!ELEMENT head ( from,to+, subject?, CC*, notify?) >
<!ELEMENT from (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT CC (#PCDATA)>
<!ELEMENT notify EMPTY>
<!ELEMENT body (#PCDATA)>
Исходный XML-документ, удовлетворяющий данной схеме, может выглядеть, например, так:
<?xml version="1.0" ?>
<!DOCTYPE mailbox SYSTEM "mailbox.dtd">
<mailbox>
<message uid="1">
<head>
<from>user1@myhp.edu</from>
<to>user2@myhp.edu</to>
<subject>Re:</subject>
</head>
<body>
What's up!
</body>
</message>
<message uid="2">
<head>
<from>user3@myhp.edu</from>
<to>user2@myhp.edu</to>
<subject>Remind</subject>
<CC> user1@myhp.edu </CC>
<notify/>
</head>
<body>
Remind me about meeting.
</body>
</message>
</mailbox>
Обратите внимание на 2-ю строчку документа, в которой указывается
внешняя ссылка на файл, содержащий DTD-схему.
В принципе DTD допускает два способа использования в XML-документе.
· Объявление внутренней схемы:
<!DOCTYPE корневой_элемент [
<!ELEMENT корневой_элемент (модель содержания)>
]>
11
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
·
Объявление внешней схемы:
<!DOCTYPE корневой_элемент SYSTEM “name.DTD”>
В заключение укажем на следующие недостатки DTD схем:
· Не являются экземплярами XML. Требуется изучение совершенно
другого языка.
· Не предоставляют контроль за типами данных, за исключением самых простых текстовых данных.
· Не являются экземплярами XML, поэтому их нельзя легко расширить или преобразовать в экземпляры других языков разметки HTML или
DHTML.
· Не обеспечивают поддержки пространств имен XML.
6.4. DOM XML. Преобразование XML документов
Для программной обработки XML-документов используется модель XML
DOM, которая определяет объекты и свойства всех XML элементов и методы
(интерфейс) для доступа к ним. Иначе говоря, XML DOM описывает, каким
образом необходимо получать, изменять, добавлять и удалять XML-элементы.
Согласно DOM:
· все, что содержится внутри XML-документа, является узлом;
· весь документ представляется узлом документа;
· каждый XML-элемент – узел элемента;
· текст внутри XML-элементов – текстовый узел;
· каждый атрибут – узел атрибута;
· комментарии – узлы комментариев.
XML документ в соответствии с моделью XML DOM представляется как
дерево из узлов, при этом:
· Все узлы дерева находятся в определенных отношениях друг с другом.
· Все узлы доступны через дерево. Их содержимое может быть изменено, удалено; новые элементы могут быть добавлены в дерево.
· Дерево начинается с корневого узла и разветвляется вниз вплоть до
текстовых узлов на самом низшем уровне дерева.
· Все узлы находятся в иерархических отношениях между собой.
· Эти отношения описываются с помощью понятий: родитель, дочерний и потомок (все дочерние на одном уровне).
Альтернативным интерфейсом для обработки XML-документов является SAX.
SAX (Simple API for XML) – прикладной программный интерфейс для
парсера с последовательным доступом к XML. Этот интерфейс предоставляет механизм чтения данных из XML-документа.
SAX парсер является поточным и управляемым событиями. Задачей
пользователя SAX API заключается в описании методов, вызываемых событиями, возникающими при анализе документа.
12
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Такими событиями могут быть:
· текстовый узел;
· узел элемента XML;
· инструкция обработки XML;
· комментарий XML.
События вызываются обнаружением как открывающего тэга, так и закрывающего тэга любого из этих элементов документа. Атрибут XML
также рассматривается как событие.
Анализ документа является однонаправленным (т. е. без возвратов по
дереву).
В отличие от DOM формальной спецификации для SAX не существует.
В качестве нормативной рассматривается Java-реализация SAX.
Следует отметить достоинства и недостатки SAX.
Достоинства
· Затраты памяти существенно меньше (зависит от максимальной глубины дерева документа и количества атрибутов в узле элемента), чем в
случае DOM (требуется хранить в памяти все дерево документа).
· Скорость работы выше за счет сокращения затрат времени на выделение памяти для элементов дерева в случае DOM.
· Потоковое чтение данных с диска в случае DOM невозможно. Если
для размещения всего документа в памяти недостаточно места, то использование SAX является безальтернативным.
Недостатки
· Процедура проверки правильности предполагает доступ ко всему
документу одновременно.
· Это также требуется и в случае XSLT преобразования.
Если загрузить «чистый» XML-документ в веб-браузер, то можно будет увидеть древовидную структуру этого документа, как на
рисунке 6.3.
В этом как раз и заключается главное отличие между XML и HTML, а
именно разделение структуры документа и его представления в браузере.
Конкретный вид XML-документа описывается отдельно с помощью CSS
или XSL.
CSS и XSL – принципиально разные технологии, имеющие лишь частичное пресечение областей применения. CSS-форматирование применяется к HTML-документу браузером на клиентской стороне, а XSLпреобразование выполняется, как правило, на сервере, после чего результат отправляется браузеру клиента. XSL базируется на XML, благодаря
чему XSL более гибок и универсален. У разработчиков имеется возможность использовать средства контроля за корректностью составления
стилевых списков (используя схемы XML).
13
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Рис. 6.3. Древовидная структура XML документа
С помощью XSL можно преобразовать XML-документ в формат HTML,
WML, RTF, PDF, SQL, SWF, а также в другой XML и XSL документ. XSL
указывает, как будет оформлен документ, где и каким образом должны
размещаться данные.
Cпецификация XSL состоит из трех частей:
· XSLT (XSL Transformations) – язык для преобразования XML;
· XPath – язык путей и выражений, используемый в XSLT для доступа
к отдельным частям XML-документа;
· XSL-FO (XSL Formatting Objects) – язык для верстки XML.
Наиболее распространенным механизмом XSLT преобразований для
систем, работающих на платформе Microsoft Windows, является MSXML;
для систем на основе GNU – xsltproc.
Для того чтобы обработать XML-документ c помощью XSL, необходимо
в XML-документе написать следующую инструкцию:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="my-style.xsl"?>
<root>
< !-- ... -- >
</root>
Возвращаясь к рассмотренному ранее примеру, добавив в XML-файл
ссылку на XSL-файл, получим следующий код разметки:
14
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE mailbox SYSTEM "mailbox.dtd">
<?xml-stylesheet href="mailbox.xsl" type="text/xsl" ?>
<mailbox>
<message uid='1'>
<body>Проверка почтового ящика</body>
<head>
<to>user2@myhp.edu</to>
<to>user3@myhp.edu</to>
<from>user1@myhp.edu</from>
<subject>Test</subject>
<cc></cc>
<notify></notify>
</head>
</message>
<message uid='2'>
<body>Это письмо не является спамом</body>
<head>
<to>user2@myhp.edu</to>
<from>user4@myhp.edu</from>
<subject>Интересное предложение</subject>
<notify></notify>
</head>
</message>
</mailbox>
После загрузки данного документа в веб-браузере его вид кардинально
изменится:
15
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Содержимое XSL файла mailbox.xsl приводится ниже:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
version="1.0"
<xsl:template match = "mailbox">
<h2 align="center" color="red">Почтовый ящик</h2>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match = "message">
<table align="center" border="0" width="80%" bgcolor="gray">
<tr>
<td width="20%"><b>From:</b></td><td>
<xsl:value-of select="head/from"/></td>
</tr>
<tr>
<td width="20%"> <b>To:</b> </td>
<td> <xsl:for-each select="head/to">
<xsl:apply-templates/>,
</xsl:for-each>
</td>
</tr>
<tr>
<td width="20%"><b>Subject:</b></td><td>
<xsl:value-of select="head/subject"/></td>
</tr>
<tr>
<td width="20%"><b>CC</b></td><td>
<xsl:value-of select="head/cc"/></td>
</tr>
<tr>
<td width="20%"><b>Notify</b></td><td>
<xsl:value-of select="head/notify"/></td>
</tr>
<tr>
<td colspan="2">
<textarea cols="120%" rows="3">
<xsl:value-of select="body"/> </textarea></td>
</tr>
</table>
<br/><hr/><br/>
</xsl:template>
</xsl:stylesheet>
16
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
6.5. XSLT и XPath
Спецификация XSLT является рекомендацией W3C.
В результате применения таблицы стилей XSLT, состоящей из набора
шаблонов, к XML-документу (исходное дерево) образуется конечное дерево, которое может быть другой XML-структурой, HTML-документом или
обычным текстом. Правила выбора данных из исходного дерева записываются на языке запросов XPath. XSLT применяется в основном в вебпрограммировании и для генерации отчётов.
Благодаря XSLT реализуется отделение данных от их представления в
рамках парадигмы MVC (Model-view-controller).
XPath (XML Path Language) – язык запросов к элементам XMLдокумента. XPath был разработан для организации доступа к частям документа XML в файлах трансформации XSLT и является стандартом консорциума W3C. В языке XPath используется компактный синтаксис, отличный
от принятого в XML. Начиная с версии 2.0, XPath является составной частью языка XQuery. XPath призван помочь обходить всевозможные деревья, получать необходимые элементы из другой ветви относительно точки
обхода, распознавать предков, потомков, атрибуты элементов. Это полноценный язык навигации по дереву.
Для нахождения элемента(ов) в дереве документа используются пути
адресации.
Каждый шаг адресации состоит из трех частей:
· оси, например, child::
· условия проверки узлов, например, имена элементов документа body, html;
· предиката, например, attribute::class
Дополнением к ядру языка является набор функций, которые делятся на
5 групп: системные, функции с множествами, строковые, логические, числовые функции.
6.6. XSL-FO
XSL-FO (eXtensible Markup Language Formatting Objects) – рекомендованный W3C язык разметки предпечатных материалов. По сути, XSL-FO –
это унифицированный язык представления. Он не имеет семантической
разметки (как в HTML) и сохраняет все данные документа внутри себя (в
отличие от CSS, который модифицирует представление по умолчанию для
внешнего HTML или XML-документа).
В результате применения XSLT-преобразования к исходному XML документу получается его описание на языке XSL-FO. FO-процессор конвертирует XSL-FO-документ в какой-либо читаемый и / или печатаемый формат. Наиболее часто используется преобразование в PDF либо PS; некоторые FO-процессоры могут давать на выходе RTF-файлы либо просто показывать документ в окне.
17
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
6.7. XQuery
XQuery – язык запросов, разработанный для обработки данных в формате XML.
В настoящее время рабочими группами консорциума W3C ведутся работы по развитию этого стандарта данного языка, с добавлением выражений
для свободного поиска по тексту и для внесения изменений в XML–документы и базы данных, а также для процедурных операций.
В рамках стандарта SQL:2006 разработаны механизмы для встраивания
XQuery-запросов непосредственно в SQL-запросы.
Контрольные вопросы
1. Что такое SGML?
2. Какие недостатки языка HTML вы знаете?
3. Что такое DTD?
4. Какими достоинствами обладает язык XML по сравнению с HTML?
5. Что входит в семейство технологий XML?
6. Какую роль играет XML в качестве метаязыка?
7. Какова связь между XML, SGML и HTML?
8. Что значит правильно построенный XML-документ?
9. Что значит действительный XML-документ?
10. Какие синтаксические правила должны соблюдаться в XML-документе?
11. Что такое схема XML? Для чего она необходима?
12. Какие вы знаете спецификации схем XML?
13. Каким образом реализуется отображение XML-документа?
14. Какое назначение имеет XML DOM?
15. Каким образом описывается документ в XML DOM?
16. Существуют ли помимо XML DOM альтернативные API для XMLдокументов?
17. Какую роль играют события в SAX?
18. Для чего необходимы CSS и XSL?
19. Что такое XSL?
20. Что такое XSLT?
21. Что такое XPath?
22. Какая связь между XSLT и XPath?
23. Что такое XQuery?
18
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 7. ИНТЕГРАЦИЯ И ВЗАИМОДЕЙСТВИЕ В СЕТИ ВЕБ
Во многих компаниях уже сложилась тенденция предоставлять своим
сотрудникам, партнерам и клиентам доступ ко всем типам информации и
сервисов посредством сети Веб. Однако в корпоративных сетях компаний
функционирует огромное число разнородных бизнес-приложений, созданных в различное время, различными организациями, на базе различных
технологий. Задача веб-интеграции заключается в том, чтобы объединить
разнородные веб-приложения и системы в единую среду на базе сети Веб.
Практикуются следующие подходы к веб-интеграции:
· Интеграция на уровне представления. Данный уровень позволяет
пользователю взаимодействовать с приложением. Интеграция на уровне
представления даёт доступ к пользовательскому интерфейсу удаленных
приложений.
· Интеграция на уровне функциональности. Данная интеграция подразумевает обеспечение прямого доступа к бизнес-логике приложений. Это
достигается непосредственным взаимодействием приложений с API (программному интерфейсу приложений) или же взаимодействием посредством веб-сервисов.
· Интеграция на уровне данных. В данном случае предполагается доступ к одной или нескольким базам данных, используемых удаленным приложением.
· Комплексная интеграция. Коммерческие решения по веб-интеграции,
как правило, включают все три типа интеграции.
Использование веб-интеграции выгодно по многим причинам:
· Веб-интеграция позволяет развертывать информационные системы
на базе сторонних приложений без необходимости разбираться в их родительских системах, программных средах и архитектурах баз данных.
· SOA и веб-сервисы используют программный язык и платформонезависимые интерфейсы между приложениями корпоративной инфраструктуры ИТ. Это дает очевидные преимущества в поддержке, управляемости, развертывании информационных сетей.
· Веб-интеграция позволяет конструировать комплексную функциональность, комбинируя разнородные компоненты посредством протоколов
веб-сервисов.
· Веб-интеграция позволяет использовать веб-сервисы разработчиков.
· Веб-интеграция позволяет развивать программные интерфейсы приложений через протоколы веб-сервисов без программирования.
Для веб-интеграции обычно используется коммерческое ПО или популярные технологии такие, как PHP/Python/Perl, XForms, SOAP и т. д.
19
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
7.1. Интеграция на основе XML
Большое количество систем, стандартов и технологий приводит к тому,
что эффективно связать разные источники данных в одну систему не получается. Даже такие, на первый взгляд однородные источники, как системы
управления базами данных, применяют языки запросов и форматы представления выбираемой информации, которые редко полностью совместимы между собой. Как следствие, проекты интеграции в таких условиях
требуют больших усилий – требуется вникать в детали различных баз данных, протоколов, операционных систем и так далее. В результате интеграция нескольких приложений или систем реализуется по схеме, представленной ниже (рис. 7.1).
Приложение 1
Приложение 6
Приложение 2
Приложение 5
Приложение 3
Приложение 4
Рис. 7.1. Классическая схема взаимодействия приложений
Заставить разные системы работать вместе – чрезвычайно трудоемкая
задача. Идея использования XML в интеграции информационных систем
сводится к созданию общего XML-языка, которым могла бы пользоваться
каждая из них (рис. 7.2).
20
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Такое решение сразу же намного упрощает проект. Вместо реализации
взаимодействия между каждой парой систем следует всего лишь научить
каждую из них «говорить» на XML-языке. Иначе говоря, все сводится к
разработке нескольких врапперов (wrapper – упаковщик, программное
средство создания системной оболочки для стандартизации внешних обращений и изменения функциональной ориентации действующей системы), которые будут переводить со стандартного XML-языка интегрированной системы на язык, понятный каждой системе в отдельности. Такое
решение имеет следующие преимущества:
· средства разработки и стандартные библиотеки для XML существуют
практически на всех платформах и для большинства популярных языков
программирования;
· методы работы с XML достаточно стандартны для того, чтобы в разных системах можно было пользоваться одинаковыми приемами;
· информация, оформленная в виде XML, может обрабатываться не
только машинами, но и человеком (что намного облегчает отладку).
В принципе, интеграция по XML-схеме не отличается коренным образом от интеграции на основе любого другого общего стандарта. Вместе с
тем, она имеет целый ряд весомых преимуществ:
· XML-языки не зависят от аппаратных и программных платформ, что
позволяет связывать разнородные системы;
· выразительная мощность XML достаточно велика для того, чтобы
описать данные практически любой сложности;
Рис. 7.2. Схема взаимодействия приложений на основе ХМL
21
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Интеграция на основе XML практически реализуется в рамках протоколов:
· XML-RPC. Это протокол удаленного вызова процедур с передачей
данных в формате XML через TCP-порт 80, т.е. HTTP -порт.
· WDDX (Web Distributed Exchange). Представляет собой механизм
обмена сложными структурами данных по протоколу HTTP. Протокол базируется не на структурах, а на событиях.
· ebXML (electronic buisiness XML) – XML для электронного бизнеса.
Основное назначение – предоставление открытой XML-инфраструктуры,
обеспечивающей безопасное глобальное использование информации электронного бизнеса.
· Веб-сервисы (веб-службы).
7.2. Веб-сервисы
Веб-сервис (web service) – программная система, имеющая идентификатор
URI, и общедоступные интерфейсы которой определены на языке XML.
Описание этой программной системы может быть найдено другими приложениями, которые могут взаимодействовать с ней в соответствии с этим описанием посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности
при использовании сервис-ориентированной архитектуры приложения.
Сервис-ориентированная
архитектура
(SOA,
service-oriented
architecture) – модульный подход к разработке программного обеспечения,
основанный на использовании сервисов со стандартизированными интерфейсами.
В основе SOA лежат принципы многократного использования функциональных элементов ИТ, унификации типовых операционных процессов.
Компоненты программы могут быть распределены по разным узлам сети, и
предлагаются как независимые и слабо связанные, заменяемые сервисыприложения.
Интерфейс компонентов SОА-программы осуществляет инкапсуляцию
деталей реализации конкретного компонента (ОС, языка программирования и т. п.).
SOA хорошо зарекомендовала себя при построении крупных корпоративных программных систем. Целый ряд разработчиков и интеграторов
предлагают инструменты и решения на основе SOA (например, платформы
Microsoft .NET, IBM WebSphere, SAP NetWeaver, Diasoft и др.).
Веб-сервисы .NET имеют следующие достоинства:
· Открытость стандартов. В веб-сервисах отсутствуют какие-либо
скрытые или недоступные элементы. Каждый аспект технологии, от способа поиска веб-сервиса до его описания и организации связи с ней, определен общедоступными стандартами.
22
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
· Межплатформенность. Язык программирования, который позволяет создавать XML-документы, отправлять информацию посредством http и
позволяет взаимодействовать с любым веб-сервисом. Можно получать вебуслугу из системы, отличной от .NET.
· Простота.
· Поддержка сообщений на понятном человеку языке. Переход от
двоичных стандартов, применяемых в СОМ и CORBA, к XML-тексту позволил упростить исправление ошибок и обеспечил возможность осуществлять взаимодействие с веб-сервисами по обычным каналам HTTP.
Работа веб-сервисов построена на использовании нескольких открытых
стандартов:
XML – расширяемый язык разметки, предназначенный для хранения и
передачи структурированных данных;
SOAP – протокол обмена сообщениями на базе XML;
WSDL – язык описания внешних интерфейсов веб-сервисов на базе
XML;
UDDI – универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description, and Integration). Каталог веб-сервисов
и сведений о компаниях, предоставляющих веб-сервисы во всеобщее пользование или конкретным компаниям.
7.3. Спецификация WSDL
Каждый веб-сервис предоставляет документ WSDL (Web Service
Description Language – язык описания веб-сервиса), в котором описывается
все, что клиенту необходимо для работы с этим сервисом. WSDL-документ
предоставляет простой и последовательный способ задания разработчиком
синтаксиса вызова любого веб-метода.
WSDL-документ имеет основанный на XML формат, в соответствии с
которым информация подразделяется на пять групп. Первые три группы
представляют собой абстрактные определения, не зависящие от особенностей платформы, сети или языка, а оставшиеся две группы включают конкретные описания.
7.4. Протокол SOAP
Связь между веб-сервисами и их клиентами осуществляется посредством сообщений в формате XML.
SOAP (Simple Object Access Protocol – простой протокол доступа к объектам) представляет собой протокол сообщений для выбора веб-сервисов.
Основная идея стандарта SOAP заключается в том, что сообщения
должны быть закодированы в стандартизированном XML-формате.
Кроме сообщений SOAP, для обмена данными с сервисами .NET можно
использовать методы GET и POST протокола HTTP.
23
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Преимущества применения формата SOAP перед другими форматами
для передачи данных:
· Кодировать в XML структуры данных и наборы DataSet с использованием SOAP так же легко, как и данные простых скалярных типов.
· При использовании SOAP-сообщений предоставляются дополнительные инструменты, позволяющие легко добавлять, например, функцию
обеспечения безопасности или трассировки.
· Имеются наборы инструментов SOAP для различных языков программирования (и даже для предыдущих версий Microsoft C++ и Visual
Basic). Иначе, для того чтобы обеспечить связь с сервисом посредством
методов GET и POST протокола HTTP, придется, очевидно, самостоятельно конструировать строку запроса, а затем проводить синтаксический анализ ответа.
7.5. Стандарт DISCO
Стандарт DISCO предоставляет простейший способ получения доступа
к файлам манифестов, позволяющий группировать ссылки на веб-сервисы.
DISCO-файл может включать файлы различных веб-серверов и поддерживать «динамический поиск» – автоматический поиск каталога файлов
веб-сервисов на сервере.
Файлы манифеста полезны тем, что объединяют множество вебсервисов в единственном списке, однако они не позволяют клиентам отыскивать веб-сервисы определенного типа без указания наименования компании-разработчика.
7.6. Спецификация UDDI
Спецификация UDDI (Universal Description, Discovery, and Integration –
универсальное описание, поиск и интеграция) позволяет избежать указанных проблем посредством использования специального хранилища (репозитория), где предприятия и организации могут размещать данные о предоставляемых ими сервисах. Инициаторами создания технологии UDDI
стали более 100 компаний (полный список можно найти по адресу
http://www.uddi.org/community.html), включая Sun и Microsoft. Объединив
свои усилия, эти компании разработали проект спецификации UDDI, которая по истечении 18 месяцев была стандартизирована.
Информация в этом репозитории должна обновляться вручную. С этой
целью некоторые «узловые операторы» хранят идентичные копии репозитория UDDI. Эти компании обеспечивают хранение указанного репозитория и бесплатный доступ к нему для популяризации веб-серисов.
Кроме того, Майкрософт включила версию UDDI в программное обеспечение сервера Windows .NET для использования в корпоративных сетях интернета.
24
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
В хранилище UDDI содержатся сведения о предприятиях, предоставляющих веб-сервисы, о типе каждого сервиса и связях с информацией и
спецификациями, относящимися к этим сервисам. Интерфейс UDDI сам по
себе представляет собой веб-сервис. Для регистрации или поиска службы
следует отправить SOAP-сообщение.
Главными недостатками веб-сервисов являются меньшая производительность и больший размер сетевого трафика по сравнению с такими технологиями, как RMI, CORBA, DCOM, за счет использования текстовых
XML-сообщений.
Контрольные вопросы
1. Какие подходы к веб-интеграции вам известны?
2. Для чего необходима веб-интеграция?
3. Какую роль играет XML в веб-интеграции и почему?
4. Что такое враппер?
5. Какие протоколы используются для веб-интеграции?
6. Что такое веб-сервис?
7. В чем суть сервис-ориентированной архитектуры?
8. На каких стандартах базируется работа веб-сервисов?
9. Опишите какую роль выполняют спецификации WSDL, SOAP, DISCO
и UDDI.
25
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 8. СИНДИКАЦИЯ И АГРЕГИРОВАНИЕ ВЕБ-КОНТЕНТА
Веб-синдикация – форма синдикации при которой содержимое веб-сайта
предоставляется другим многочисленным веб-сайтам. Иначе говоря, вебсиндикация означает создание доступных с сайта веб-потоков (feed), предоставляющих всем пользователям в форме краткой сводки информацию о
новом содержимом, появившемся на сайте (это могут быть новости, сообщения из форума и др.).
Веб-поток – формат данных, используемый для предоставления пользователям часто обновляемого контента. Распространители контента объединяют (синдицируют) веб-потоки, давая пользователям возможность подписаться на них. Другое название для веб-потока – синдицированный поток. Создание набора веб-потоков, которые доступны одновременно в одном месте называется агрегированием. Для этого используются специальные агрегаторы.
Агрегатор потоков (feed aggregator) – клиентское веб-приложение, собирающее синдицированный веб-контент такой, как новостные заголовки,
блоги, подкасты и другие, в одном месте для более удобного просмотра.
Для принимающего сайта веб-синдикация является эффективным способом размещения более исчерпывающей и своевременной информации на
своих страницах.
Для сайта, передающего синдицируемую информацию, выгода заключается в большей степени его представленности среди различных онлайн
платформ. Кроме того, порождается дополнительный трафик, что по сути
является простой и бесплатной формой рекламы сайта в сети Веб.
Взаимодействие веб-потоков и агрегаторов происходит в следующем
порядке:
· Провайдер контента публикует ссылку на поток со своего сайта.
· Пользователь может зарегистрировать эту ссылку с помощью программы-агрегатора на своем компьютере.
· Программа-агрегатор затем опрашивает все серверы, входящие в
список зарегистрированных потоков, с целью получения нового контента.
· При наличии нового контента программа-агрегатор либо информирует пользователя о наличии такового либо, сразу же загружает его.
Контент веб-потока обычно представляет собой веб-страницы, гиперссылки либо мультимедиа. Извлечение контента с сайта в форме веб-потока
обычно производится средствами самого веб-сайта. Однако не все веб-сайты
могут иметь веб-поток. В этом случае могут быть использованы средства
сторонних агентов. Веб-поток – это веб-документ, обычно в XML формате,
содержащий тематические элементы, содержащие ссылки на более полную
версию материала. Является удобным инструментом для доставки структурированной информации. Пользователи могут подписываться на веб-потоки
26
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
с помощью агрегаторов или программ для чтения потоков, которые комбинируют содержимое нескольких веб-потоков для отображения на одной
странице (или нескольких последовательных страницах).
Некоторые из веб-браузеров содержат встроенные возможности для агрегирования потоков. Это делается путем простого ввода URL веб-потока
или кликом на гиперссылке в браузере. Формат веб-потоков не предназначен для непосредственного чтения пользователем, поскольку позволяет автоматически переносить контент с сайт на сайт. Для представления информации из веб-потока обычно используются 2 формата: RSS и Atom.
Если сравнивать веб-поток с более традиционной почтовой технологией
доставки часто обновляемой информации, то можно указать на следующие
преимущества первого:
· Поскольку при подписке пользователь не указывает свой адрес электронной почты, эта технология лишена таких потенциальных угроз, как
спам, вирусы, фишинг и кража личной информации.
· При отказе от использования веб-потока нет необходимости отправлять запрос на отказ от подписки; пользователь просто исключает данный
поток из своего агрегатора.
· Имеются широкие возможности для автоматической сортировки сообщений от веб-потоков вплоть до использования сложных правил и регулярных выражений.
· Браузеры Internet Explorer (начиная с 7.0), Opera, Safari, Firefox и другие
могут работать с веб-потоками через инструменты панели Закладок, Избранного и других. Имеются также специализированные программы для чтения
веб-потоков, например FeedDemon, Thunderbird, Outlook 2007 и другие.
Агрегатор позволяет объединить информацию из разных потоков в одном окне веб-браузера или веб-приложения. Такое приложение называется
RSS-каналом, новостной лентой, агрегатором потоков или поисковым агрегатором. Подкастинг-агрегаторы могут автоматически загружать медиа-файлы. Объединенный контент агрегатор получает и интерпретирует
обычно в формате RSS или других форматах, основанных на XML, например RDF/XML или Atom. Наиболее развитые методы агрегирования вебпотоков реализуются на основе технологий AJAX и XML компонентов –
веб-виджетов (web widgets).
Многие языки программирования имеют библиотеки функций, позволяющие загружать, обрабатывать, генерировать и выполнять удаленную
загрузку каналов. Например, в Perl имеется поддержка нескольких библиотек в пространстве имен XML::RSS
Формат RSS
RSS – семейство XML-форматов, предназначенных для описания лент
новостей, анонсов статей, изменений в блогах и т. п.
27
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
В разных версиях аббревиатура RSS имела разные расшифровки:
· Rich Site Summary (RSS 0.9x);
· RDF Site Summary (RSS 0.9 и 1.0);
· Really Simple Syndication (RSS 2.x).
Из-за существования нескольких различных версий формата RSSканалов программы-агрегаторы должны уметь работать со всеми вариантами, что создаёт определенные трудности их разработчикам. Проблемы
совместимости возникают также при вставке в RSS-описания небольших
HTML-фрагментов, которые в одних случаях оформляются как CDATA узлы, а в других – как HTML-кодированные PCDATA узлы. Существуют
проблемы с различными форматами представления дат и метаданных.
Как работает RSS?
1) Создается RSS документ в виде файла с расширением .xml.
2) Этот файл размещается на веб-сайте.
3) RSS-поток регистрируется в RSS-агрегаторах.
Рассмотрим пример RSS-документа.
<?xml version="1.0" encoding="windows-1251" ?>
<rss version="2.0">
<channel>
<title>My Home Page</title>
<link>http://www.MyHP.edu</link>
<description>Free web building tutorials</description>
<item>
<title>RSS Demo</title>
<link>http:// www.MyHP.edu/rss</link>
<description>New RSS demo on my home page</description>
</item>
<item>
<title>XML Demo</title>
<link> www.MyHP.edu/xml</link>
<description>New XML demo on my home page</description>
</item>
</channel>
</rss>
В первой строке размещено объявление версии XML и кодировки документа. Вторая строка идентифицирует данный документ как RSS документ
версии 2.0. В третьей строке содержится элемент <channel>, описывающий RSS поток. Он в свою очередь содержит дочерние элементы:
· <title> – описывает заголовок RSS канала.
· <link> – описывает гиперссылку на канал.
· <description> – содержит краткую характеристику канала.
Каждый элемент <channel> может содержать один или более <item>
элементов. Каждый элемент <item> описывает отдельную статью RSS ис28
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
точника. В свою очередь каждый элемент <item> имеет три обязательных
дочерних элемента:
· <title>,
· <link>,
· <description>.
Кроме обязательных элементов <channel> может содержать некоторые
дополнительные дочерние элементы:
Элемент <category> описывает категорию потока и используется
RSS агрегаторами для группировки сайтов на основе категорий.
Элемент <copyright> информирует об авторском праве на данный
документ.
Элемент <image> предназначен для отображения изображения при
показе потока агрегатором. В свою очередь он содержит три обязательных
дочерних элемента:
·
<url> – URL изображения;
·
<title> – альтернативный текст, отображаемый при невозможности
показа изображения;
·
<link> – содержит гиперссылку на веб-сайт, содержащий канал,
Пример:
<image>
<url>http://www.myhp.edu/images/me.gif</url>
<title>My home page</title>
<link>http://www.myhp.edu</link>
</image>
Элемент <language> информирует о языке документа. Может быть использован агрегаторами для группировки сайтов по языку.
Создание RSS потока не ограничивается разработкой RSS документа.
Необходимо еще опубликовать этот файл. Для этого потребуется выполнить следующую последовательность действий:
1. Выбрать подходящее название для RSS файла. Расширение должно
быть .xml.
2. Проверить RSS файл на правильность с помощью подходящей программы-валидатора, например, взятой по адресу http://www.feedvalidator.org.
3. Разместить RSS файл в подходящем веб-каталоге веб-сервера.
4. Скопировать одну из «кнопок»:
или
в веб-каталог.
5. Вставить выбранную «кнопку» на исходящую страницу RSS потока
в виде гиперссылки на RSS-файл, например:
<a href = "www.myhp.edu/rss/myrss.xml">
< img src="www.myhp.edu/rss/rss.gif" width="35" height="15">
</a>
29
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
6. Разместить созданный RSS поток в популярных каталогах RSS потоков, при этом URL потока должен ссылаться именно на сам XML-файл
потока, т. е. http://www.myhp.edu/rss/myrss.xml.
7. Можно также зарегистрировать поток в популярных поисковых системах, например:
· Yahoo – http://publisher.yahoo.com/rss_guide/submit.php
· Google – http://www.google.com/ig
· MSN – http://w.moreover.com/site products/ind/pingserver.html
8. Периодическое обновление потока.
В принципе, можно самостоятельно заниматься формированием данных
в соответствующем формате RSS для работы потока. Однако имеются достаточно удобные высокоуровневые средства для автоматизации данной
работы. Например:
· MyRSSCreator – http://www.myrsscreator.com/
· FeedFire – http://www.feedfire.com/site/index.html.
Для чтения RSS потоков используются специальные программы чтения – RSS ридеры. Некоторые из браузеров имеют встроенные RSS ридеры.
Контрольные вопросы
1) Что такое веб-синдикация?
2) Что такое веб-поток?
3) Что такое агрегирование веб-потоков?
4) Каким образом осуществляется взаимодействия веб-потока и агрегатора?
5) Какие форматы данных используются для описания веб-потоков?
6) Что такое RSS?
7) Как работает RSS?
30
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 9. ОРГАНИЗАЦИЯ ПРОЦЕССА РАЗРАБОТКИ
ВЕБ-КОНТЕНТА (CMS/CMF)
Система управления контентом (Content management system, CMS) –
компьютерная программа, используемая для создания, редактирования,
управления и публикации контента некоторым систематическим образом.
Обычно такие системы используются для хранения и публикации большого количества документов, изображений, музыки или видео.
Система управления веб-контентом (Web content management system,
WCMS или Web CMS) – програмное обеспечение CMS-класса, реализованное обычно в виде веб-приложения и предназначенное для создания, и
управления HTML содержимым. WCMS обычно используется для управления и контроля большими, динамически изменяемыми коллекциями вебматериала (HTML документами и связанными с ними картинками). Такая
система упрощает процесс создания, управления, редактирования контента
и многие другие важные задачи, связанные с поддержкой этих процессов.
WCMS предоставляет следующие возможности:
· Применение автоматических шаблонов отображения (в HTML
или XML формате), автоматически применяемых к новому или существующему контенту. Тем самым вид всех документов может задаваться
из одного места.
· Простота редактирования контента. Пользователю достаточно
легко создавать и управлять контентом, поскольку ему либо вообще не
требуется знания языков программирования или языков разметки, либо
требуется минимальное знание таковых.
· Масштабируемость. Возможность расширения функциональности
существующего сайта путем установки поставляемых с дистрибутивом
WCMS плагинов и модулей.
· Управление документами. Имеются средства управления жизненным
циклом документов с момента создания до удаления.
· Визуализация контента. Любой пользователь может работать с виртуальной копией всего веб-сайта, множества документов или кодами программ, что позволяет увидеть все изменения множества взаимосвязанных
ресурсов перед их окончательным применением.
В зависимости от способа применения шаблонов для генерации вебстраниц принято выделять три основные типа WCMS-систем: с автономной обработкой, онлайн обработкой и гибридные системы.
· Автономные системы обрабатывают все содержимое путем применением шаблонов перед публикацией веб-страниц.
· On-line системы применяют шаблоны в момент посещения сайта
пользователями (либо извлекают страницы из кэша).
31
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
· Гибридные системы комбинируют первые два подхода. Некоорые из
них вместо статических HTML страниц генерируют исполняемые коды
(JSP, PHP, Perl), избавляя от необходимости установки WCMS-системы на
каждом веб-сервере.
Каркасная система управления содержимым (Content Management
Framework, CMF) – это инструментарий для создания систем управления
содержимым, а также отдельных веб-приложений. Некоторые CMS, предоставляющие API для расширения своей функциональности, можно рассматривать как CMF, например WCMS Drupal.
Контрольные вопросы
1.
2.
3.
4.
Что такое CMS? Для чего предназначена CMS?
Что такое WCMS? Для чего предназначена WCMS?
Какие типы WCMS вы знаете?
Что такое CMF? Для чего используется CMF?
32
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 10. ВЕБ-ПОРТАЛЫ
Портал предоставляет единую точку безопасного доступа часто в форме веб-интерфейса, и предназначен для агрегирования и персонализации
информации с помощью подходящих портлетов.
Например, корпоративный портал (корпоративный информационный
портал) – среда интеграции информации, людей и процессов из различных
организационных подразделений. Важным признаком корпоративных порталов является децентрализованное распределение и управление контентом, что позволяет информации постоянно обновляться.
Портлеты – подключаемые программные компоненты пользовательского интерфейса, управляемые и отображаемые в веб-портале. Портлеты генерируют фрагменты кода разметки, которые внедряются на страницу портала. Страница портала представляет собой набор непересекающихся окон портлетов. Например, окно электронной почты, окно погоды, окно
форума или новостей. Стандартизация портлетов нацелена на предоставление в распоряжение программиста портлетов, которые могут быть
встроены в любой портал, поддерживающий стандарты.
WSRP (Web Services for Remote Portlets) – протокол, который можно рассматривать как стандарт для веб-сервисов, позволяющий автоматически
встраивать удаленно запущенные портлеты из совершенно разных источников.
Спецификация Java-портлетов (JSR168, JSR286) дает возможность для
портлетов из разных веб-порталов взаимодействовать между собой. Эта
спецификация определяет множество API для взаимодействия контейнера
портлета с портлетом и рассматривает такие вопросы, как персонализация, представление и безопасность.
Веб-портал – это веб-сайт, предоставляющий пользователю различные
интерактивные сервисы, работающие в рамках одного веб-сайта (вебстраницы). Веб-порталы зачастую выполняют роль единой точки доступа к
информации в WWW. Порталы представляют информацию из разных источников единообразным способом. Наряду со стандартной функцией поиска, веб-порталы предлагают и другие сервисы такие, как электронная
почта, новости, форумы, голосования и другие.
В качестве примера на рисунке 5.1 приведен скриншот главной страницы веб-портала «MSN в России».
Первичная классификация порталов включает два основных класса:
· Горизонтальные порталы.
· Вертикальные порталы.
Кроме того, можно рассматривать и другие классы порталов:
· Персональные.
· Академические.
33
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
·
·
·
Правительственные.
Корпоративные.
Тематические.
Рис. 10.1. Главная страница веб-портала «MSN в России»
Общедоступные (или горизонтальные) порталы (называемые иногда мегапорталами), такие как Yahoo!, Lycos, Excite, Rambler и др. Эти порталы предназначены для самой широкой аудитории, что отражается на содержании
предоставляемой ими информации и услуг – обычно они носят общий характер (например, новости о политических событиях и культурной жизни, электронная почта, новостные рассылки и т. д.). Сфера деятельности таких порталов пересекается со сферой деятельности средств массовой информации, поэтому в последнее время наблюдаются процессы слияния общедоступных
порталов и средств массовой информации в рамках одной компании.
Вертикальные порталы предназначены для специфических видов рынка
и обслуживают аудиторию, пользующуюся услугами этого рынка или работающую на нем. Примерами таких порталов могут служить приложения
B2C (Business-to-consumer), например, туристические агентства, предоставляющие услуги по бронированию мест в гостиницах, заказу и доставке
билетов, доступу к картам и т. п., либо порталы типа B2B (business-tobusiness), позволяющие своим клиентам реализовывать совместные бизнес-операции (например, выбирать поставщиков и осуществлять закупку
товаров, проводить аукционы и т. п.). Число подобных порталов в последнее время быстро растет, поскольку все новые рынки товаров и услуг перемещаются в Интернет.
Корпоративные порталы предназначены для сотрудников, клиентов и
партнеров одного предприятия (иногда они называются B2E-порталы –
Business-to-employees). Пользователи такого портала получают доступ к пред34
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
назначенным им сервисам и приложениям в зависимости от их роли и персонального профиля, и это наиболее интересная категория порталов в плане реализации корпоративной инфраструктуры и интеграции приложений.
Корпоративный портал предназначен:
· для предоставления внешним и внутренним пользователям возможности персонифицированного доступа ко всем корпоративным данным и
приложениям (включая неструктурированные и разнородные данные);
· объединения изолированных моделей бизнеса, интеграции различных корпоративных приложений (в том числе приложений бизнеспартнеров);
· обеспечения полноценного круглосуточного доступа всех пользователей (включая и мобильных) к ресурсам компании независимо от их местопребывания.
Первое поколение корпоративных порталов имеет следующие характеристики:
· поиск и индексирование широкого набора информационных репозитариев;
· категоризация информационного наполнения;
· управление информационным наполнением и его агрегация;
· персонализация;
· высокоэффективная разработка приложений и возможности интеграции с другими приложениями.
Для второго поколения корпоративных порталов, применяемых в качестве составляющей части электронного бизнеса, характерны:
· надежная среда реализации приложений;
· мощные и гибкие инструменты разработки приложений;
· широкие возможности в области интеграции приложений;
· соответствие требованиям к информационным системам масштаба
предприятия;
· поддержка интеграции с другими приложениями и информационными системами партнеров;
· поддержка мобильного / беспроводного доступа к данным.
В составе типичного корпоративного портала условно можно выделить
три основных функциональных слоя:
· Слой базовой инфраструктуры, отвечающий за базовые сервисы, такие как управление транзакциями, система безопасности, управление порталом и др. Технически он содержит, как правило, сервер приложений,
сервер баз данных и веб-сервер, либо несколько подобных серверов.
· Слой интеграции приложений, отвечающий за взаимодействие портала со всеми существующими в компании приложениями, такими как
СУБД, CRM- и ERP-системы, унаследованные приложения и др.
35
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
· Слой интерфейсов, включающий в себя средства управления информационным наполнением (CMS – Content Management System), интерфейсы для обмена данными с информационными системами бизнес-партнеров,
средства для работы с мобильными и беспроводными устройствами и др. К
этому же слою относятся визуальные и невизуальные компоненты порталов, называемые обычно портлетами, но иногда имеющие и другие названия (Pagelets, Gadgets, iViews и т.д.).
Из числа наиболее распространенных средств создания порталов можно
назвать:
Microsoft SharePoint Server 2007.
WebSphere Portal Server – компании IBM.
Oracle 9iAS Portal – компании Oracle Corporation.
Enterprise Portal – компании SAP Portals.
iPlanet Portal Server – компании Sun Microsystems.
Sybase Enterprise Portal – компании Sybase.
InfoExchange Portal – компании BroadVision.
Контрольные вопросы
1. Что такое портал?
2. Что такое веб-портал?
3. Что такое портлет?
4. Какие типы веб-порталов вы знаете?
5. Для чего предназначены копроративные порталы?
6. Какую структуру имеет типичный корпоративный портал?
36
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 11. РАЗРАБОТКА МОБИЛЬНЫХ ВЕБ-ПРИЛОЖЕНИЙ
Для получения доступа к ресурсам интернет посредством только мобильного телефона, не прибегая к помощи компьютера или модема был
разработан специальный стандарт WAP.
WAP (Wireless Application Protocol) – протокол доступа к ресурсам Интернет непосредственно с мобильного телефона, минуя компьютер и / или модем.
Для разметки документов при загрузке их в сотовых телефонах и других
мобильных устройствах по стандарту WAP также был разработан и специальный язык – WML (Wireless Markup Language).
Изначально WAP создавался для широкого круга технологий и стандартов беспроводной мобильной связи: сотовой, транковой, пейджинговой и
микросотовой, а также для поддержки сетей 3G. Данный стандарт инвариантен к операционному ядру, с которым взаимодействует WAP-браузер и
разрабатывался как открытый стандарт для беспроводной передачи данных, не зависящий от поставщиков устройств и услуг, оптимизированный
для мобильных телефонов, имеющих дисплей с маленьким разрешением,
ограниченной памятью и невысокой производительностью.
WAP 2.0 – усовершенствованная версия WAP, которая использует урезанный вариант XHTML и CSS. Это позволяет работать с WAP 2.0 сайтами
с помощью обычного браузера на компьютере без установки каких-либо
дополнительных плагинов.
XHTML MP (XHTML Mobile Profile) – язык разметки в WAP 2.0, разработанный для мобильных устройств.
Архитектура WAP аналогична WWW. В WAP используется тот же самый способ адресации ресурсов и те же обозначения типов данных. В качестве клиента выступает мобильное устройство со встроенным
WAP-браузером, запросы от которого через WAP-шлюз передаются
веб-серверу, и ответ от последнего через него же отправляется клиенту.
В качестве сервера может выступать обычный веб-сервер. В этом случае
между WAP-шлюзом и сервером используется протокол HTTP. С целью
уменьшения объема передаваемых данных, текстовые ресурсы, пришедшие от сервера, передаются клиенту в двоичном виде.
Язык WML напоминает HTML, но ориентирован на устройства с экраном низкого разрешения и с небольшим размером памяти. Вся информация в WML содержится в так называемых «деках».
Дек – это минимальный блок данных, который может быть передан сервером. В деках находятся «карты» (каждая карта ограничена тегами
<card>). На экране устройства в каждый момент времени отображается
только одна карта, а пользователь может переключаться между ними переходя по ссылкам. Размер WML-страницы должен находиться в пределах
от 1–4 килобайт.
37
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Например, WML-страница:
<?xml version='1.0'?>
<!DOCTYPE
wml
PUBLIC
'-//WAPFORUM//DTD
'http://www.wapforum.org/DTD/wml_1.1.xml'>
WML
1.1//EN'
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" />
</head>
<card>
<p>Hello world!</p>
</card>
</wml>
отобразится на дисплее мобильного телефона таким образом (был использован программный эмулятор телефона):
Многие мобильные устройства могут отображать документы только в
WBXML-формате.
WBXML (WAP Binary XML) – формат компактного бинарного представления XML. WBXML используется для передачи через беспроводные соединения с низкой скоростью.
Некоторые браузеры со специальным плагинами, позволяют просматривать WML-страницы на обычном компьютере.
В настоящее время наблюдается тенденция перехода от WML к XHTML.
Контрольные вопросы
1. Какой протокол используется для досупа к ресурсам Интернет с мобильных устройств?
2. Какой язык разметки используется для документов, загружаемых из
Веб мобильными устройствами?
3. Какую структуру имеет WML-страница?
38
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Глава 12. ВВЕДЕНИЕ В ВЕБ 2.0
Термин Веб 2.0 используется для обозначения новых тенденций в использовании технологий WWW, направленных на расширение творческих
возможностей пользователей, более безопасный обмен информацией и
взаимодействие между ними.
При этом больший акцент делается на формирование веб-сообществ и
социально ориентированных сайтов таких, как, например, блоги и видеоблоги, фолксономии, википедии и др.
Термин получил распространение после конференции по Веб 2.0 Медиа
в 2004 году с подачи Тима О'Рейли для выражения нового способа взаимодействия разработчиков ПО и конечных пользователей через Веб. Ключевой принцип идеологии Веб 2.0 был сформулирован так: «Интернет – как
платформа».
Правомерность термина оспаривают многие эксперты, поскольку многие компоненты технологий Веб 2.0 существовали еще с первых лет существования сети Веб.
Веб 2.0 можно рассматривать и как подход к построению систем, при
котором они становятся тем лучше, чем больше людей ими пользуются в
процессе сетевых взаимодействий. Фактически Веб 2.0 означает переход
веб-сайтов от изолированных накопителей информации к взаимосвязанным программным платформам, воспринимаемым пользователями так, как
будто они исполняются локально на его компьютере.
Сайты Веб 2.0 предоставляют для пользователей пользователи возможность:
· не просто получать информацию, но и выполнять программы исключительно через браузер;
· размещать и управлять своими данными.
Еще одна важная концепция Веб 2.0 – «Архитектура участия», которая
поощряет пользователей повышать ценность ПО, путем его использования.
В качестве ключевых для Веб 2.0 рассматриваются следующие технологии:
· Веб-сервисы – это программы, доступ к которым осуществляется через протокол HTTP, а обмен данными происходит в формате XML (или
производном от него). Веб-сервис реализуется на серверах компании, ее
создавшей. В любой момент пользователю доступны самые свежие данные; Веб-сервисы являются платформо-независимыми, поскольку инструменты для работы с HTTP и XML есть в любом современном языке программирования.
· AJAX. Использование AJAX стало наиболее популярно после того,
как Google начала активно использовать его при создании своих сайтов –
Gmail и GoogleMaps.
39
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
· Веб-синдикация (на основе технологий RSS или Atom) – одновременное распространение информации в том числе аудио- и видео- на различные страницы или веб-сайты.
· Веб mash-up – сервис, который полностью или частично использует в
качестве источников информации другие сервисы, предоставляя пользователю новую функциональность для работы. Веб mash-up сервис может становиться также новым источником информации для других веб mash-up
сервисов. Таким образом, образуется сеть зависимых друг от друга сервисов, интегрированных друг с другом.
· Теги – ключевые слова, описывающие рассматриваемый объект, либо относящие его к какой-либо категории. Теги можно рассматривать как
метки, которые присваиваются объекту, для определения его места среди
других объектов.
· Фолксономия – популярная классификация, практика совместной категоризации информации (ссылок, фото, видео клипов и др.) посредством
произвольно выбираемых меток (тегов). Примеры использования фолксономии: Flickr, del.icio.us.
· Социальное ПО – широкий диапазон ПО, предназначенного для обмена и совместного доступа к информации пользователей сети Веб.
К недостаткам Веб 2.0 можно отнести следующие:
· зависимость от наличия постоянного соединения;
· зависимость работоспособности сайтов от решений сторонних компаний;
· зависимость качества работы сервиса от качества работы многих
других компаний;
· недостаточные возможности существующей веб-инфраструктуры
для выполнения сложных вычислительных задач в браузере;
· уязвимость конфиденциальных данных, хранимых на сторонних серверах, при несанкционированном доступе.
12.1. Введение в AJAX
AJAX (Asynchronous JavaScript and XML) – это концепция использования
нескольких смежных технологий, ориентированная на разработку высокоинтерактивных приложений, быстро реагирующих на действия пользователя, выполняющих большую часть работы на стороне клиента и взаимодействующих с сервером посредством внеполосных обращений.
Внеполосным обращением называется запрос к серверу, который приводит к оперативному обновлению страницы вместо ее замены. Внеполосный вызов HTTP – это HTTP запрос, который выдается за пределами
встроенного модуля, обеспечивающего отправку форм HTTP. Вызов инициируется событием, связанным со страницей HTML и обслуживается
компонентом-посредником, обычно объектом XmlHttpRequest.
40
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Популярность AJAX связана с появлением сервиса Google Suggest в
2005 году. Данный сервис на основе объекта XMLHttpRequest предоставляет в распоряжение пользователя достаточно динамический веб-интерфейс.
В процессе ввода символов пользователем в поле поискового запроса
JavaScript отправляет их на сервер и получает от него список подсказок:
AJAX применяется для разработки веб-приложений, к которым предъявляются следующие требования:
· Приложение должно передавать пользователям свежие данные, полученные с сервера.
· Новые данные должны интегрироваться в существующую страницу
без ее полного обновления.
Для работы с такими приложениями в браузере, необходимо, чтобы он
соответствовал требованиям:
· Поддержка посредников (для внеполосных вызовов HTTP). Обычно
реализуется в форме объекта XmlHttpRequest.
· Поддержка обновляемой модели DOM.
Объект XmlHttpRequest представляет собой компактную объектную модель для отправки сценарием обращений HTTP в обход браузера. Клиентский код сценария не может влиять на процесс размещения запроса и результат отправки запроса. XmlHttpRequest позволяет сценарию отправлять
HTTP запросы и обрабатывать полученные ответы.
Рассмотрим в качестве примера систему, имитирующую работу сервиса
Google Suggest на основе AJAX.
41
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
В клиентской части пользователь может вводить в текстовое поле формы название автомобильной марки, получая при этом динамически список
вариантов названий, соответствующих уже введенным символам, без перезагрузки страницы. Соответствующий код веб-страницы приведен ниже.
<html>
<head>
<script src="chint.js"></script>
</head>
<body>
<form>
First Name:
<input type="text" id="txt1" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
При наступлении события onkeyup (отжатие клавиши) вызывается обработчик showHint(). Код обработчика загружается из файла chint.js:
var xmlHttp;
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url = "ghint.php";
url = url + "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
42
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
Каждый раз, когда вводится символ, вызывается функция-обработчик.
Если при этом содержимое текстового поля формы непустое
(str.length > 0), функция выполняет следующие действия:
· формирует url для отправки веб-серверу;
· добавляет значение параметра q, равное содержимому текстового поля, к url;
· добавляет к url случайное число для предотвращения кеширования;
· создает объект XMLHTTP, при этом указывается функция
(stateChanged) подлежащая исполнению при наступлении события ввода
символа;
· открывает объект XMLHTTP с указанным значением url;
· отправляет HTTP запрос веб-серверу;
· если поле ввода пустое, происходит очистка содержимого раздела
txtHint на веб-странице.
Ключевым моментом в данной системе является использование объекта
XMLHttpRequest. Данный объект по-разному создается в различных браузерах. Так, Internet Explorer для этого использует ActiveXObject, в то время
как остальные браузеры используют встроенный в JavaScript объект
XMLHttpRequest.
Для поддержки работы системы в разных браузерах использован оператор «try-catch».
43
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Сначала делается попытка создать объект XMLHttpRequest для браузеров
Firefox, Opera или Safari:
xmlHttp = new XMLHttpRequest().
В случае неудачи, делается следующая попытка создания объекта для
Internet Explorer 6.0+ :
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP").
Если это также не удается, то делается попытка создания объекта уже
для Internet Explorer 5.5+ :
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP").
В случае, если ни одна из этих попыток не принесла успеха, выдается
сообщение об отсутствии поддержки AJAX браузером.
Серверная часть системы представляет собой PHP сценарий ghint.php:
<?php
header("Cache-Control: no-cache, must-revalidate");
// Прошедшая дата
header("Expires: Mon, 1 Sep 2008 07:30:00 GMT");
// Инициализация массива названий
$a[]="Audi";
$a[]="BMW";
$a[]="Buick";
$a[]="Chevrolet";
$a[]="Citroen";
$a[]="Dodge";
$a[]="Ferrari";
$a[]="Fiat";
$a[]="Ford";
$a[]="Honda";
$a[]="Hyundai";
$a[]="Cherokee";
$a[]="Cherry";
$a[]="Lada";
$a[]="Lamborghini";
$a[]="Lincoln";
$a[]="Mazda";
$a[]="Mercedes";
$a[]="Mitsubishi";
$a[]="Nissan";
$a[]="Opel";
$a[]="Peugeot";
$a[]="Plymoth";
$a[]="Pontiac";
$a[]="Renault";
$a[]="Rover";
$a[]="Saab";
$a[]="Subaru";
$a[]="Suzuki";
$a[]="Toyota";
44
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
$a[]="Volkswagen";
$a[]="Volvo";
//получение параметра q из URL
$q = $_GET["q"];
//поиск соответствий из массива если длина q > 0
if (strlen($q) > 0)
{
$hint = "";
for($i = 0; $i<count($a); $i++)
{
if (strtolower($q) == strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint == "")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
// Возврат строки "нет вариантов" если соответствий не найдено
// либо найденное соответствие
if ($hint == "")
{
$response = "no suggestion";
}
else
{
$response = $hint;
}
//вывод результата
echo $response;
?>
В качестве формата передачи данных при внеполосных обращениях
обычно используются JSON или XML.
JSON (JavaScript Object Notation) – текстовый формат обмена данными,
основанный на JavaScript и обычно используемый именно с этим языком.
Несмотря на происхождение от JavaScript, формат считается языковонезависимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания
и обработки данных в формате JSON.
JSON строится на двух структурах данных:
· Набор пар имя / значение. В различных языках это реализовано как
объект, запись, структура, словарь, хэш-таблица, список с ключом или ассоциативный массив.
45
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
· Пронумерованный набор значений. Во многих языках это реализовано как массив, вектор, список или последовательность.
Следующий пример показывает JSON-представление объекта, описывающего преподавателя.
{
"firstName": "Сергей",
"lastName": "Иванов",
"profile": {
"position": "доцент, к.ф.-м.н.",
"department": "кафедра информационных систем",
"age": 40
},
"subjects": [
"интернет-технологии",
"информационные технологии"
]
}
Microsoft .NET предоставляет в распоряжение разработчиков свою реализацию AJAX технологии – ASP.NET 2.0 AJAX.
12.2. Разработка гибридных веб-приложений (мэшапов)
Мэшап (Mashup) – гибридное веб-приложение, объединяющее данные
из нескольких источников в рамках единого интегрированного инструмента. Контент мэшапа обычно получает извне с помощью открытых интерфейсов, веб-сервисов, веб-источников (например RSS или Atom) или анализа документов, генерируемых другими программами.
Наиболее часто мэшапы используют программные интерфейсы, представляемые Аmazon, eBay, Flickr, Google, Microsoft, Yahoo и YouTube.
Архитектура мэшапа включает в себя 3 части:
· провайдер контента – источник данных.
· собственно мэшап – веб-приложение, предлагающее новую функциональность с использованием различных источников, не принадлежащих ему.
· клиент – обычно веб-браузер, отображающий веб-страницу мэшапа.
Различные типы мэшапов могут генерировать RSS, веб-сервисы, мгновенные и почтовые сообщения.
Следует отличать мэшапы от простого внедрения данных с других сайтов с образованием сложных документов. Мэшап самостоятельно получает
внешние данные через программные интерфейсы и, обрабатывая их определенным образом, придает им дополнительную ценность.
В качестве примера можно привести использование картографических
данных GoogleMaps для добавления к ним данных о недвижимости в Cragislist (в результате создается новый уникальный веб-сервис, изначально
не предлагаемый ни одним из источников).
46
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Среди мэшапов можно выделить группы:
· Потребительские мэшапы – комбинируя данные различных типов
из нескольких источников, предоставляют доступ к ним с помощью единого графического интерфейса. Наиболее известный пример - многочисленные приложения Google Maps.
· Мэшапы данных – комбинируя данные одного типа из нескольких
источников, предоставляют доступ к ним с помощью единого графического интерфейса. Например, Yahoo!Pipes позволяет пользователям получать
потоки информации из разных источников и создавать правила по управлению полученным контентом (например, используя фильтры).
· Бизнес-мэшапы –делают акцент на различных способах агрегирования и представления данных, предоставляя новые возможности для совместной работы представителей бизнеса и разработчиков.
Хотя мэшапы также, как и порталы, являются технологиями агрегирования контента, имеется принципиальное отличие между ними. Порталы –
более ранняя технология, являющаяся, посути, расширением традиционных динамических веб-приложений, в которых процесс преобразования
данных в гипертекстовые документы разбивается на два этапа: генерация
отдельных частей разметки и объединение их на одной странице. За генерацию каждой из частей отвечают соответствующие портальные приложения, исполняемые на портальном сервере или другом сервере. Портальная
технология является серверной технологией, отвечающей за агрегирование
данных только на уровне представления.
12.3. Приложения для социальных сетей
Понятие «Социальный Веб» (Social Web) используется для описания того, как происходит социализация пользователей и их взаимодействие друг
с другом с помощью сети WWW. Основой для объединения пользователей
служат самые разнообразные общие интересы.
Термин «Социальный Веб» может быть использован для выражения двух
понятий.
· Первое понятие связано с описанием технологий Веб 2.0, которые фокусируются в первую очередь на социальных взаимодействиях и сообществах.
· Второе понятие используется для описания сети будущего, аналогичной WWW.
Можно рассматривать как сообщество множество людей, связанных и
взаимодействующих между собой посредством контента в режиме диалога
и совместных действий через Интернет.
Будучи нацеленными на стимулирование взаимодействия между людьми,
социальное ПО для Веб оперирует со следующими социальными атрибутами:
· идентичность,
· репутация,
47
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
· присутствие,
· связи,
· групповая принадлежность,
· общение,
· разделяемый контент.
Социальное программное обеспечение – это широкий диапазон программных систем, позволяющих пользователям взаимодействовать и обмениваться данными. Этот способ компьютерно опосредованного взаимодействия стал популярным с появлением таких социальных сайтов, как
MySpace, FaceBook, Одноклассники, медиа сайтов Flickr и YouTube, коммерческих сайтов eBay.
Многие из этих приложений имеют такие общие характеристики, как:
открытые API, сервис-ориентированный дизайн, возможность удаленного
размещения данных и медиа-файлов. Такие приложения принято относить
к системам Веб 2.0.
Внутри социального ПО можно выделить две группы программных инструментов: коммуникационные и интерактивные.
· Коммуникационные инструменты применяются для записи, хранения
и представления коммуникационных данных, чаще всего в текстовом виде,
но все больше в аудио- и видеоформатах.
· Интерактивные инструменты применяются для поддержки опосредованного данными (различных медиаформатов) взаимодействия между
отдельными пользователями и их группами. В отличие от коммуникационных инструментов акцент делается на поддержке связности пользователей
и механизмов общения между ними.
В противоположность коммуникационным инструментам, которые являются обычно асинхронными, интерактивные инструменты преимущественно синхронны, позволяя взаимодействовать пользователям в режиме реального времени (как в случае интернет-телефонии, видеочатов и т. п.) либо
почти синхронно (службы мгновенных сообщений, текстовые чаты и т. п.).
Можно назвать следующие примеры программных систем, которые относятся к социальному ПО:
· Системы обмена мгновенными сообщениями (IM – Instant messaging)
позволяют общаться с другим пользователем через сеть в режиме реального времени (в относительно защищенном режиме). К наиболее популярным из них можно отнести Skype, ICQ, Yahoo! Messenger, MSN Messenger,
AOL Instant Messenger, Miranda IM. К системам, ориентированным на бизнес, можно отнести IBM Lotus Sametime, Microsoft Messenger и Jabber.
· Интернет-чаты (IRC – Internet Relay Chat) позволяют одновременно
нескольким пользователям общаться в режиме реального времени.
· Интернет-форумы пришли на смены электронным конференциям
(возникшим до появления WWW). Пользователь форума может создавать
48
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
новую «тему», доступную для других. Другие пользователи могут просматривать тему и оставлять свои комментарии в режиме последовательной записи.
· Веб-блоги (web logs), или кратко блоги, можно рассматривать как
личные онлайн журналы отдельных пользователей. Владелец блога может
размещать сообщения в своем журнале, в то время как другие пользователи (читатели) могут оставлять к ним свои комментарии.
· Вики-справочники (wiki), или просто вики, – по сути веб-сайты, содержимое которых может редактироваться посетителями сайта. Наиболее
известный пример – Википедия.
· Сервисные социальные сети позволяют пользователям объединяться
в онлайн режиме вокруг общих для них интересов, увлечений или по различным поводам. Например, некоторые сайты предоставляют сервисы, с
помощью которых пользователи могут размещать для общего доступа персональную информацию, необходимую для поиска партнеров. Примеры:
LinkedIn, В контакте.
· Социальные сети принятия решений – веб-сети для обсуждения с целью принятия решений. Используются для установления постоянной связи
отдельных людей с правительством.
· Коммерческие социальные сети ориентированы на поддержку бизнес-транзакций и формирование доверия людей к брендам на основе учета
их мнений о продукте, о том, как сделать его лучше и т. п., тем самым позволяя потребителям участвовать в продвижении продукта и расширяя их
осведомленность.
· Социальные закладки (social bookmarking). Некоторые веб-сайты позволяют пользователям предоставлять в распоряжение других список закладок или популярных веб-сайтов. Такие сайты также могут использоваться для поиска пользователей с общими интересами. Пример: del.icio.us.
· Социальные каталоги (social cataloging) напоминают социальные закладки, но ориентированы на использование в академической сфере, позволяя пользователям работать с базами данных цитат из научных статей.
Примеры: Academic Search Premier, LexisNexis Academic University,
CiteULike, Connotea.
· Социальные библиотеки представляют собой приложения, позволяющие посетителям оставлять ссылки на их коллекции, книги, аудиозаписи и т. п., доступные другим. Предусмотрена поддержка системы рекомендаций, рейтингов и т. п. Примеры: discogs.com, imdb.com.
· Многопользовательские сетевые игры (Massively Multiplayer Online
Games) имитируют виртуальные миры с различными системами подсчета
очков, уровней, состязательности, победителей и проигравших.
49
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
12.4. Фолксономия
Фолксономия (folksonomy) – практика и методика совместной категоризации контента (ссылок, фото, видео клипов и т. п.) посредством произвольно выбираемых меток (тегов). Она основана на спонтанном сотрудничестве группы людей с целью организации контента и полностью отличается от традиционных формальных методов классификации на основе индексных терминов. Как правило, этот феномен возникает только в неиерархических сообществах, например, на общедоступных веб-сайтах. Так
как участники фолксономии контента обычно являются и основными же ее
потребителями, использование методики фолксономии приводит к результатам, более точно отражающим совместную концептуальную модель
контента всей группы.
Основными проблемами фолксономии, приводящими к ненадежности и
несогласованности результатов, являются:
· Наличие форм множественного числа.
· Полисемия.
· Синонимия.
· Глубина (специфичность) использования меток.
Фолксономию можно рассматривать в качестве одного из ключевых
элементов в развитии Семантической веб-сети, в рамках которой все вебстраницы содержат машинно-ориентированные метаданные, описывающие
содержимое страниц. Эти метаданные должны значительно улучшать точность работы поисковых систем. Однако во избежание трудностей, вызванных ненадежностью и несогласованностью в работе больших сообществ авторов страниц, им рекомендуется использовать стандарты метаданных, например Дублинское ядро (Dublin Core).
12.5. Семантическая веб-сеть
Семантическая веб-сеть (Semantic Web) – часть глобальной концепции
развития сети Интернет, целью которой является реализация возможности
машинной обработки информации, доступной в сети WWW. Основной акцент в этой концепции делается на работе с метаданными, однозначно характеризующими свойства и содержание ресурсов WWW, вместо используемого в настоящее время текстового анализа документов.
Термин был введен Тимом Бернерсом-Ли в мае 2001 года.
В семантической веб-сети предполагается повсеместное использование
· универсальных идентификаторов ресурсов (URI),
· онтологий и языков описания метаданных.
Концепция семантической веб-сети была принята и продвигается W3С.
Для её внедрения предполагается создание сети документов, содержащих
метаданные о ресурсах WWW, и существующей параллельно с ними. Тогда как сами ресурсы предназначены для восприятия человеком, метадан50
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
ные используются машинами (поисковыми роботами и другими интеллектуальными агентами) для получения однозначной информации о свойствах
этих ресурсов с помощью механизмов логического вывода.
Техническую часть семантической паутины составляет семейство стандартов на языки описания, включающее XML, XML Schema, RDF, RDF
Schema, OWL и др. Необходимость описания метаданных так или иначе
приводит к дублированию информации. Каждый документ должен быть
создан в двух экземплярах: размеченным для чтения людьми, а также в
машинноориентированном формате.
12.6. Онтология
Онтология – это попытка всеобъемлющей и детальной формализации
некоторой области знаний с помощью концептуальной схемы. Обычно такая схема состоит из иерархической структуры данных, содержащей все
релевантные классы объектов, их связи и правила (теоремы, ограничения),
принятые в этой области.
Современные онтологии обычно состоят из экземпляров, понятий, атрибутов и отношений.
Для описания онтологий Веб был разработан специальный язык – OWL
(Web Ontology Language), построенный на основе XML. Язык OWL может
быть использован для описания классов и отношений между ними. В основе языка – представление действительности в модели данных «объект –
свойство». Язык применим не только для описания веб-страниц, но и любых объектов действительности и рассматривается в качестве одной из
фундаментальных технологий, необходимых для построения Семантической веб-сети.
12.7. Семантические веб-сервисы
В то время как совокупность ресурсов и их метаданных можно считать
статической частью семантической паутины, её динамическую часть
представляют семантические веб-сервисы – законченные элементы программной логики с однозначно описанной семантикой, доступные через
Веб и пригодные для поиска, композиции и выполнения.
Технически, семантический веб-сервис отличается от обычного вебсервиса наличием не только описания интерфейса (обычно на языке
WSDL) в терминах типов данных, передаваемых сервису, возвращаемых
значений и генерируемых ошибок, но и наличием семантического описания всех его характеристик.
Потенциальная выгода от использования семантических веб-сервисов заключается в возможности автоматического поиска (а также композиции) программными агентами подходящих сервисов для решения поставленных задач.
Тем не менее, сложность этой задачи в её общей формулировке пока позволяет добиваться некоторых положительных результатов только в узко51
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
специализированных отраслях, явным образом выигрывающих от внедрения сервисно-ориентированной архитектуры, например в интеграции корпоративных приложений.
Контрольные вопросы
1. Что обозначает термин Веб 2.0?
2. Какую возможность предоставляют пользователю Веб 2.0 сайты?
3. Какие технологи рассматриваются в качестве ключевых для Веб 2.0?
4. Назовите известные недостатки Веб 2.0 ?
5. Что такое AJAX?
6. В чем состоит суть внеполосного запроса к веб-серверу?
7. Какая компонента используется для выполнения внеполосных обращений к веб-серверу?
8. Какие форматы данных используются для передачи данных при внеполосных обращениях?
9. Что такое мэшап?
10. Какие компоненты включает в себя мэшап?
11. Чем мэшап отличается от простого внедрения данных?
12. Какие типы мэшапов вы знаете?
13. Что такое социальное ПО?
14. Какие группы инструментов можно выделить внутри социального ПО?
15. Что такое фолксономия, какие возможности она предоставляет?
16. Что такое семантическая веб-сеть?
17. Что такое онтология?
18. Какой язык используется для описания онтологий?
19. Что такое семантические веб-сервисы, и чем они отличаются от
обычных веб-сервисов?
52
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Полезные ссылки
http://isoc.org/ – Internet Society
http://www.w3.org/ – World Wide Web Consortium
http://www.iab.org/ – Internet Architecture Board
http://ietf.org/ – The Internet Engineering Task Force
http://www.nic.ru/ – Центр регистрации доменов Ru-center
http://www.ripn.net/ – Российский научно-исследовательский институт
развития общественных сетей
http://www.rfc-editor.org/rfc.html – База данных RFC
http://ru.wikipedia.org/wiki/ – Проект Википедия
Список литературы
1. Храмцов П.Б. Основы WEB-технологий / П.Б. Храмцов, С.А. Брик,
А.М. Русак, А.И. Сурин. – М. : ИТУИТ.РУ, 2003. – 512 с.
2. Роджерс Д. Программирование на Microsoft JScript.NET /
Д. Роджерс. – М. : Вильямс, 2002. – 352 с.
3. Дунаев В.В. JavaScript / В.В. Дунаев. – СПб. : Питер, 2003. – 394 с.
4. Форта Б. Освой самостоятельно регулярные выражения. 10 минут на
урок / Б. Форта. – М. : Вильямс, 2005. – 184 с.
5. Мельтцер К. Разработка CGI-приложений на Perl / К. Мельтцер. –
М. : Вильямс, 2001 . – 395 с.
6. Шапошников И. PHP 5.1 : учебный курс / И. Шапошников [и др.]. –
СПб : Питер, 2007. – 192 с.
7. Шеперд Д. Освой самостоятельно XML за 21 день / Д. Шеперд. – М. :
Вильямс, 2002. – 432 с.
8. Старыгин А. XML: разработка Web-приложений / А. Старыгин. –
СПб. : БХВ-Петербург, 2003. – 585 с.
9. Троелсен Э. C# и платфома .NET. Библиотека программиста /
Э. Троелсен. – СПб. : Питер, 2007. – 796 с.
10. Беллиньясо М. Разработка Web-приложений в среде ASP.NET 2.0: с
примерами на C# / М. Беллиньясо. – Диалектика, 2007. – 640 с.
11. Шорт С. Разработка XML Web-сервисов средствами Microsoft.NET /
С. Шорт. – СПб. : БХВ-Петербург, 2003 . – 480 с.
12. Ньюкомер Э. Веб-сервисы : XML, WSDL, SOAP и UDDL /
Э. Ньюкомер. – СПб. : Питер, 2003.
13. Салмре И. Программирование мобильных устройств на платформе.NET
Compact Framework / И. Салмре. – Вильямс, 2006. – 736 с.
14. Крейн Д. AJAX в действии: технология – Asynchronous JavaScript and
XML = AJAX in Action / Д. Крейн, Паскарелло Э., Джеймс Д. – М. : Вильямс, 2006. – С. 640.
53
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
15. Wikipedia, the free encyclopedia. [Электрон. ресурс] – Режим доступа:
http://en.wikipedia.org/wiki/Main_Page.
16. Википедия. [Электрон. ресурс] – Режим доступа: http://ru.wikipedia.
org/wiki/
17. W3CSchools Online Web Tutorials. [Электрон. ресурс] – Режим доступа: http://www.w3schools.com/.
18. Интернет Университет информационных технологий. [Электрон. ресурс]. – Режим доступа: http://www.intuit.ru/catalog/.
54
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Оглавление
Глава 6. Введение в XML .............................................................................3
6.1. Структура XML .......................................................................................4
6.2. Языки описания cхем XML ....................................................................8
6.3. DTD-схема ...............................................................................................8
6.4. DOM XML. Преобразование XML документов. ................................12
6.5. XSLT и XPath.........................................................................................17
6.6. XSL-FO...................................................................................................17
6.7. XQuery ....................................................................................................18
Глава 7. Интеграция и взаимодействие в сети Веб ..................................19
7.1. Интеграция на основе XML..................................................................20
7.2. Веб-сервисы ...........................................................................................22
7.3. Спецификация WSDL ...........................................................................23
7.4. Протокол SOAP .....................................................................................23
7.5. Стандарт DISCO ....................................................................................24
7.6. Спецификация UDDI.............................................................................24
Глава 8. Синдикация и агрегирование веб-контента ...............................26
Глава 9. Организация процесса разработки веб-контента (CMS/CMF). 31
Глава 10. Веб-порталы. ...............................................................................33
Глава 11. Разработка мобильных веб-приложений ..................................37
Глава 12. Введение в Веб 2.0......................................................................39
12.1. Введение в AJAX.................................................................................40
12.2. Разработка гибридных веб-приложений (мэшапов).........................46
12.3. Приложения для социальных сетей ...................................................47
12.4. Фолксономия .......................................................................................50
12.5. Семантическая веб-сеть ......................................................................50
12.6. Онтология ............................................................................................51
12.7. Семантические веб-сервисы...............................................................51
Полезные ссылки .......................................................................................53
Список литературы....................................................................................53
55
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Учебное издание
Сычев Александр Васильевич
WЕВ-ТЕХНОЛОГИИ
Часть 2
Учебное пособие
Редактор Л.М. Носилова
Подписано в печать 15.04.09. Формат 60×84/16. Усл. печ. л. 3,4
Тираж 100 экз. Заказ 681.
Издательско-полиграфический центр
Воронежского государственного университета.
394000, г. Воронеж, пл. им. Ленина, 10. Тел. 208-298, 598-026 (факс)
http://www.ppc.vsu.ru; e-mail: pp_center@ppc.vsu.ru
Отпечатано в типографии Издательско-полиграфического центра
Воронежского государственного университета.
394000, г. Воронеж, ул. Пушкинская, 3. Тел. 204-133
Документ
Категория
Информатика
Просмотров
174
Размер файла
3 756 Кб
Теги
web, 2739, технология
1/--страниц
Пожаловаться на содержимое документа