ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

2
Publication date:
16 June 2024

The article was published in issue no. № 2, 2005
Abstract:
Аннотация:
Author: () -
Ключевое слово:
Page views: 15843
Print version
Full issue in PDF (1.97Mb)

Font size:       Font:

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

XML-документ, XSLT, XSD, WSDL, SVG, XHTML-документы – все они, являясь валидными xml-документами, обладают его преимуществами и свойствами. К ним относятся гибкость, расширяемость, понятность человеку и компьютеру, программе, платформонезависимость. Упомянутые свойства xml-технологий позволяют создавать на их основе всевозможные технологические и архитектурные решения. И роли, которые xml-технологии в них играют, разнообразны. Например, в электронном бизнесе и в технологии web-сервисов xml может использоваться как транспортный контейнер от приложения к приложению, от модуля к модулю. XML также может играть роль выходного формата, формата для отображения данных. Примерами формата отображения могут служить SVG, XHTML или SMIL. xml можно использовать в качестве внутреннего формата и для долгосрочного хранения информации. Также существуют такие технологии, как XSLT и XPATH, позволяющие создавать запросы и производить трансформации с данными. То есть xml-технологии способны реализовывать и логику приложений.

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

В [1] приводится следующее элементарное разделение уровней абстракции: «Уровень представления», «Уровень логики» (или бизнес-логики) и «Уровень хранения данных». В общем случае в любом приложении эти три абстрактных уровня присутствуют.

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

XML – удобный формат, в котором можно работать на уровне логики с данными. Для этого разными платформами, средами и языками поддерживаются DOM-модель и SAX-модель XML-документа, разработаны API для работы с этими моделями. Как показывает практика web-программирования, работа с XML-структурами проста и эффективна, тогда как для структурирования, преобразования и редактирования данных sql баз данных приходится прикладывать дополнительные усилия, писать громоздкие коды. Этим выгоден xml-формат в качестве прослойки между уровнями бизнес-логики и хранения данных.

Немаловажное преимущество дает тот факт, что xml имеет ту же древовидную структуру, что и html. А это упрощает программистам дальнейшую работу по оформлению результирующих данных на уровне представления в виде html. Можно говорить уже о преимуществах xml не только как прослойки между уровнями бизнес-логики и хранения данных, но и между бизнес-логикой и уровнем представления. Поддержка DOM- и SAX-моделей в языках программирования, встроенные процессоры xslt-трансформаций дают мощный инструментарий для работы с данными в формате xml.

Рассмотрим вопрос использования xml-технологий на самих уровнях абстракции.

В [3] рассматривается XML как альтернативный способ хранения информации. Существуют даже хранилища данных, организованные на основе xml-документов, как базисных носителей данных (Tamino XML Server). Можно привести множество примеров, когда хранимые приложением данные не так многочисленны, чтобы ставить задачу конструирования базы данных. В таких случаях вполне удовлетворительным (а иногда и оптимальным) решением становятся xml-файлы. Преимуществами использования xml-файлов как носителей информации является то, что их легко редактировать с помощью интер- фейсов, написанных на разнообразных языках программирования, например, с использованием DOM API. xml-документы могут редактироваться и в текстовом или специализированном редакторе или с использованием приложений, для этого предназначенных. Примером таких приложений может послужить InfoPath, расширение MS Office 2003.

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

Может ли xml замещать собой уровень бизнес-логики? XSLT-преобразование является настолько мощным инструментом работы с xml-данными, что зачастую не требует никакого дополнительного программирования для завершения обработки информации на уровне бизнес-логики. То есть достаточно применить к xml-документу xslt-трансформацию, чтобы данные приняли вид, необходимый для отображения. Не прекращаются работы по внедрению функций того или иного языка внутрь xslt-преобразования. Так, например, можно вставлять в xslt-преобразование функции, написанные на PHP. Внедрение в xslt-преобразование функций, написанных на разнообразных языках, может вполне довершить процесс замещения xml-технологиями уровня бизнес-логики.

Естественно, использование xml-технологий – не самоцель. Именно поэтому с появлением и развитием xml-технологий ни один из инструментов разработчиков программных систем не потерял своей актуальности, будь то языки программирования или базы данных. С появлением xml перед языками программирования, базами данных и другими технологиями стали ставиться новые, актуальные для изменившейся сферы информационных технологий вопросы, задачи.

Предлагается к рассмотрению пример использования xml-технологий. Задача, решаемая в данном примере достаточно тривиальна. Незаурядным данный пример делает как раз использование xml-технологий.

В рассматриваемом примере стояла задача разработки модуля фотогалереи. Фотогалерея должна была содержать фотографии, разделенные по тематическим разделам. Так, в фотогалерее сайта туристической компании предполагались такие разделы, как «Охота», «Рыбалка», «Ягоды-грибы» и прочее. Каждая фотография в разделе также могла иметь подпись, поясняющую ее сюжет. Например, «Рыболов Исаев С. поймал редкого по величине судака».

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

База данных значительно увеличила бы трудоемкость разработки модели данных и уровня бизнес-логики, которая бы реализовывала работу по извлечению и редактированию информации о фотографиях и разделах в галерее. Было решено для хранения информации о фотогалерее использовать один xml-файл «images_and_groups.xml». Сами фотографии галереи хранились под своими номерами в специально отведенном для этого каталоге на сервере сайта. Чтобы отобразить конкретную фотографию, нужно было прочитать информацию о ней в xml-файле, в том числе ее идентификационный номер, прилагающуюся к ней надпись, принадлежность к разделу галереи. По идентификационному номеру проводилась однозначная связь с картинкой, лежащей под этим номером в упомянутом каталоге сервера.

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

1)  автоматическая генерация отображаемых страниц с фотографиями, управляющих кнопок для перехода на другие страницы, ссылок на другие разделы галереи;

2)  административный интерфейс для редактирования фотогалереи.

Для второй задачи был использован язык PHP 5 и встроенные в него функции для работы с DOM2 API, а также несколько несложных html-шаблонов, реализующих необходимые формы для редактирования структуры галереи и ее наполнения. Из-за существования в PHP 5 встроенных функций для DOM2 API реализация интерфейса администрирования галереи заняла немного времени, а программный код получился коротким и простым.

Первая часть уровня бизнес-логики (автоматическая генерация отображаемого контента галереи) была реализована с помощью xslt-пре- образования документа “images_and_groups.xml”. В итоге был получен законченный независимый модуль, инкапсулирующий в себе все функции отображения фотогалереи на сайте. Управляется этот модуль с помощью параметров, задающихся в xslt. Эта трансформация самостоятельно генерирует список разделов галереи в виде набора ссылок на них, а также кнопки перехода на первую страницу, на предыдущую страницу, на следующую, на последнюю страницу, а также на две ближайшие (соседствующие) к текущей страницы фотогалереи.

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

Пример файла “images_and_groups.xml” и xslt-трансформация доступны по адресу: www.mologatur.ru/examples/.

Как уже было сказано, данная задача сама по себе тривиальна. Ее можно было решить другими средствами, например, с помощью базы данных и языка PHP. Однако использование xml обеспечило некоторые неоспоримые преимущества. Во-первых, замена БД на xml-файл значительно сократила время и трудоемкость построения аб- страктного уровня хранения данных. Во-вторых, из-за того, что PHP 5 (как и многие другие популярные языки) предоставляет готовые функции для работы с DOM2 API, сократилась и трудоемкость разработки модуля администрирования фотогалереи. А также была обеспечена возможность альтернативного администрирования фотогалереи (редактирование xml-документа фотогалереи с помощью текстового редактора, InfoPath и других средств). Функции автоматической генерации контента фотогалереи удалось полностью инкапсулировать в одной xslt-трансформации. Если вспомнить, что xslt-документ является валидным xml-документом, то нетрудно понять, какие плюсы это дает. Во-первых, это дает возможность перехода с одной платформы на другую (от Windows, например, к Linux). Более того, xslt-трансформации, DOM API и другие полезные функции имеются во многих популярных языках программирования. А это значит, что данный модуль фотогалерей можно с небольшими доработками легко перенести с PHP 5 на J2EE.

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

Итак, подведем итоги. XML-технологии – универсальный инструмент. Нельзя однозначно определять им место в сфере информационных технологий. Пример, приведенный в данной статье, наглядно демонстрирует, что xml-технологии можно и нужно использовать во многих случаях, на разных уровнях абстракции, в качестве всевозможных функциональных модулей в разных задачах. Использование xml за счет своих преимуществ (гибкость, платформонезависимость, понятность человеку и программе) позволит разработчику сделать приложение более простым и универсальным с меньшими затратами. Однако важно отметить и тот факт, что, живо внедряясь, проникая во все новые и новые области сферы информационных технологий, xml-технологии не замещают ни одну из уже имеющихся технологий, инструментов разработки. XML лишь предоставляет новые возможности. А новые возможности влекут за собой и новые потребности, возникновение новых задач, новых проблем, новых перспектив.

Список литературы

1.  Аргерих Л.И. др. Профессиональное PHP программирование. 2 изд. – СПб.: Символ-Плюс, 2003.

2.  Грофф Дж., Вайнберг П. Энциклопедия SQL. 3 изд. – СПб.: Питер, 2003.

3.  Старыгин А.А. XML: разработка web-приложений. – СПб.: БХВ-Петербург, 2003.


Permanent link:
http://swsys.ru/index.php?page=article&id=540&lang=&lang=&like=1&lang=en
Print version
Full issue in PDF (1.97Mb)
The article was published in issue no. № 2, 2005

Perhaps, you might be interested in the following articles of similar topics: