PowerAnt - Могучий Муравей: Научи Свой компьютер Управлять Реальным Миром
PowerAnt это программное управление через RS-232 порт 14 и больше внешними устройствами с помощью компьютера. Открытый, текстовый, хорошо задокументированный протокол управления. Управление электроприборами с потребяемой мощностью до 200Вт. Хотите управлять Реальным Миром даже из MS Excel?.
 Применение
Компьютерный клуб
Компьютерная сеть
Домовая сеть
Умный дом
Прочее
 PowerAnt
Описание
Применение
Тех. характеристики
Документация
Фотографии
 Базовая станция
Описание
Применение
Тех. характеристики
Документация
 Типы PowerAnt
SwSe
SwSw
SeSe
 Скорость работы
MS-DOS
Linux
MS Windows 98
MS Windows 98, Perl
 Программирование
Примеры на Perl
C/C++ - c чего начать
C/C++ - примеры
MS Access 2000
MS Excel 2000
 Заказ
Комплектность
Цены
 ЧаВо
 Новости сайта RSS
 Статьи
 Контакты
 Рейтинги
Яндекс цитирования Каталог ресурсов ListTop.Ru Rambler's Top100

Метод проектирования Internet-ориентированных
информационно-управляющих систем на основе стандарта XML

В.В.Казимир, В.М.Мирошниченко, А.В.Пастухов
Стенд к докладу (JPEG, 585КБ)
Черниговский государственный технологический университет
14027, Чернигов-27, ул. Шевченко, 95
т.(0462)101577, факс. (0462)958751
e-mail: vlad@cg.ukrtel.net A.Pastukhov@itek.com.ua

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


In this article, the method of designing of the Internet-focused information control systems, based on sharing XML and XSL is considered within the framework of uniform information model. The description of design stages is resulted on an example of the simplified document structure, and also results of practical application of the given method are analyzed by development of the complex  project management system.


Введение

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

Наиболее ярко идея корпоративного управления на базе Web выражена в инициативе Microsoft, Cisco Systems, Compaq Computer, BMC Software и Intel, которые выдвинули план использования стандартизованных технологий взаимодействия и защиты Web для управления системами и сетями в рамках Web-based Enterprise Management (WBEM) [1]. Среди основных компонентов WBEM, к которым относятся общая информационная модель (Common Information Model, CIM), HTTP - универсальный транспортный протокол для передачи информации в сети Internet и расширяемый язык разметки (Extensible Markup Language, XML), последний занимает особое место.

XML представляет собой простое и в то же время мощное средство создания той полезной нагрузки, которую HTTP может передать из одного приложения в другое, из браузера в приложение и наоборот. Причем наиболее важная особенность XML и сопутствующей ему технологии расширяемого языка таблицы стилей (Extensible Stylesheet Language, XSL) состоит в отделении форматирования от информационного наполнения [2].

В развитие идеи WBEM в данной статье предлагается метод разработки Internet-ориентированных РИУС, основанный на совместном использовании XML и XSL в рамках единой информационной модели. Такой подход позволяет, прежде всего, сосредоточить внимание на проектировании системы, внутренняя информационная структура которой представляется в виде структурированных определенным образом XML-документов.

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


Определение XML-структуры РИУС

Наиболее эффективным путем проектирования системы является быстрое создание работающего прототипа с последующим его совершенствованием. Для ускорения создания рабочего прототипа в рамках рассматриваемого метода система вручную может быть заполнена примерными вариантами требуемых XML-документов, для которых определяются их визуальные представления с помощью XSLT (Extensible Stylesheet Language Transform) [3]. Применение XML стандарта позволяет на начальном этапе определять только основные теги, содержащие ключевые данные. Дополнительные теги, содержащие вспомогательные данные, могут быть доопределены позже в ходе процесса выделения поддокументов и оптимизации их структуры.

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

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

<website>
      <articles>
            <article>
                  <title>Article 1</title>
                  <authors>
                        <author><name>Alexey</name></author>
                  </authors>
                  <body/>
            </article>
            <article>:</article>
      </articles>

      <authors>
            <author>
                  <name>Alexey</name>
                  <articles>
                        <article>Article 1</article>
                  </articles>
            </author>
      </authors>
</website>

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

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

Оптимизация

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

Чтобы оптимизировать составленный базовый документ, определим атрибут id для некоторых из тегов, а в местах повторения данных добавим ссылку на соответствующий уникальный идентификатор тега. Заметим, что ссылка на уникальный идентификатор тега может быть задана в любом виде. В нашем примере тег, содержащий ссылку, маркируется атрибутом type и в своем теле содержит идентификатор тега, на который ссылается. В результате получим:


<website id='website-1'>
      <articles id='articles-2'>
            <article id='article-3'>
                  <title>Article 1</title>
                  <authors>
                        <author type='link'>author-4</author>
                  </authors>
                  <body/>
            </article>
            <article id='article-5'>:</article>
      </articles>

      <authors id='authors-6'>
            <author id='author-4'>
                  <name>Alexey</name>
                  <articles>
                        <article type='link'>article-3</article>
                  </articles>
            </author>
      </authors>
</website>

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

Дополнительная разметка XML

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


1. Корневая страница, на которой предлагается перейти к перечню авторов или перечню статей.

2. Страница с перечнем авторов.

3. Страница с перечнем статей.

4. Отображение сведений об авторе с перечнем его статей и всех авторов этих статей.

5. Отображение статьи с перечнем авторов.


Кроме того, на данном этапе могут быть выделены теги документа, доступ к которым должен быть регламентирован. В нашем примере для представления клиенту подлежат все данные, поэтому использование дополнительных тегов не предусмотрено. Хотя, как правило, доступ к определенным данным  может быть ограничен, и тогда соответствующие теги должны быть дополнены атрибутами, обеспечивающими вычисление прав доступа клиента.

Выделение поддокументов

На следующем этапе базовый XML документ следует разделить на поддокументы. При этом главное внимание следует уделить корневым тегам. Эти теги должны иметь уникальные имена, чтобы в дальнейшем определить названия типов поддокументов. Кроме того, в процессе выделения поддокументов должны учитываться и виды отображений, в которых будут участвовать эти поддокументы, и теги, доступ к которым должен быть регламентирован, если, конечно, такие были заданы.

В большинстве случаев удобно в качестве явного признака корня поддокумента рассматривать теги, доступ к которым должен быть регламентирован. В случае если внутри поддокумента есть ссылка на другой тег, следует ее оставить в составе поддокумента, так как права доступа могут быть проверены в момент подстановки соответствующего поддокумента. Если же в требованиях к информационной структуре отсутствует регламентация доступа к данным, выделение поддокументов следует производить исходя из наличия ссылок на тег. Именно поэтому в предложенном примере некоторые теги не имеют уникального идентификатора, так как на них нет ссылок. В то же время существуют теги, для которых уникальный идентификатор определен, хотя нигде в документе на них также ссылок нет. Например, это относится к articles-2 и authors-6 и объясняется требованиями по отображению данных.

С учетом описанных рекомендаций в нашем случае будут получены следующие поддокументы: website (website-1), articles (articles-2), article (article-3, article-5), authors (authors-6), author (author-4).

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

1. Корневая страница, на которой предлагается перейти к перечню авторов или перечню статей-отображение поддокумента website-1 (articles-2 и authors-6 отображаются в виде ссылок).

2. Страница с перечнем авторов-отображение поддокумента authors-6 (выполняется подстановка поддокументов с типом author).

3. Страница с перечнем статей-отображение поддокумента articles-2 (выполняется подстановка поддокументов с типом article).

4. Отображение сведений об авторе, с перечнем его статей и всех авторов этих статей-отображение поддокумента author-4.

5. Отображение статьи с перечнем ее авторов - отображение поддокумента article-3.

Отображение поддокументов

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

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

1. vwebsite.website.1
2. vauthors.authors.1
3. varticles.articles.1
4. varticle.article.1
5. vauthor.author.1

Далее каждому пронумерованному отображению ставится в соответствие шаблон отображения поддокумента, который представляет из себя образ поддокумента, в котором все теги и атрибуты, содержащие данные, являются пустыми. При этом теги и атрибуты тегов, которые не должны отображаться просто отсутствуют. В данном случае шаблоном отображения vwebsite.website.1 будет являться следующий образ XML документа:

<website>
      <articles id=''/>
      <authors id=''/>
</website>

Данная запись означает, что при отображении документа website-1 будут отображаться только требуемые ссылки на поддокументы articles-2 и authors-6.

Более интересным представляется отображение поддокумента article-3. В ходе его отображения должна быть выполнена подстановка поддокумента author-4. Поэтому должно быть предусмотрено определение следующих двух шаблонов отображения varticle.article.1 и varticle.author.1:

varticle.article.1:

<article id=''>
     <title/>
     <authors>
           <author/>
     </authors>
     <body/>
</article>

varticle.author.1:

<author id=''>
      <name/>
</author>

Необходимость наличия цифры в конце имени отображения можно показать на примере отображения vauthor.author.1. В данном случае следует отобразить как автора с перечнем всех его статей, так и названия статей с перечнем всех их авторов. Очевидно, что поддокумент author в данном случае должен отображаться дважды и оба раза с разным уровнем детализации: первый раз как корневой документ - полностью, второй - как подставленный по ссылке из поддокумента article-3. Вот почему требуется определение двух шаблонов отображения для поддокумента author:


vauthor.author.1:

<author id=''>
      <name/>
      <articles>
            <article type=''/>
      </articles>
</author>

vauthor.author.2:

<author id=''>
      <name/>
</author>

Приведенный вариант решения проблемы отображения не является идеальным, но он наиболее просто реализуется и в большинстве случаев достаточен для достижения поставленной задачи.

Создание новых поддокументов и их редактирование

Важной частью функционирования Internet-ориентированной РИУС является добавление новых данных в систему и редактирование уже существующей информации. Учитывая приведенные ранее разъяснения, можно считать, что редактирование и добавление данных следует производить также в рамках отдельных поддокументов.

Доступ к информационно управляющим системам, функционирующим в сети Internet, производится при помощи браузеров по протоколу HTTP. Протокол HTTP не поддерживает средств явной передачи на сервер данных в формате XML, за исключением загрузки (upload) файлов. Передача XML в виде файлов, разумеется, может использоваться, но этот способ заполнения системы данными имеет множество ярко выраженных недостатков и в данном контексте не рассматривается.

В то же время протокол HTTP позволяет передавать параметры вызовов в виде пар <ключ - значение>. В случае с передачей на сервер XML можно воспользоваться отображением, в котором каждому ключу соответствует полный путь к тегу, а значению - значение тега. При формировании ключа следует записывать иерархию тегов через символ <_> (подчеркивание), который, согласно стандарту XML, не может содержаться в имени тега. При помощи двойного символа подчеркивания <__> можно выделить атрибуты тегов.

Указанный подход применим в большинстве случаев. Однако существует ситуация, когда на одном уровне иерархии содержатся одноименные теги. В этом случае следует для каждого повторяющегося тега определить атрибут id, числовую часть которого записать после имени тега (согласно стандарту XML имя тега не может начинаться с цифры). Приведем пример такого отображения для поддокумента author:


Исходный XML фрагмент:

<author id='author-4'>
     <name>Alexey</name>
     <articles>
           <article type='link'>article-3</article>
     </articles>
</author>

Отображение в виде ключ - значение:

author_4_name = 'Alexey'
author_4_articles_article = 'article-3'
author_4_articles_article__type = 'link'

В приведенном примере следует обратить внимание на тот факт, что тег article не имеет атрибута id. Это связано с особенностью передачи параметров в протоколе HTTP: в качестве значения может быть передан массив строк. В то же время порядок следования элементов в массиве точно не предсказуем. Следовательно, после отображения XML в пары <ключ - значение> будет утеряна информация о порядке следования тегов article и тегов name относительно articles.

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

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

Для поддокумента author шаблоном сохранения отредактированного документа будет следующий образ XML-документа:

<author id=''>
      <name/>
      <articles>
            <article type='' system='nonew'/>
      </articles>
</author>

Следует заметить, что в приведенном примере в тег article введен дополнительный атрибут system, который принимает значение nonew. В данном случае этот атрибут указывает на то, что в случае, если у автора нет ни одной публикации, новый тег article создавать не следует. Однако это в большей степени относится к программной реализации конкретной системы, в которой вместо DTD и XSchema применяется предлагаемый XML-шаблон.

Если рассмотреть поддокумет website в плане создания нового поддокумента, то становится очевидным тот факт, что в момент создания поддокумента website удобно, но не обязательно, автоматически создать поддокументы authors и articles. Соответствующие инструкции могут быть переданы подсистеме редактирования при помощи атрибута system.

Реализация

Рассмотренный в данной статье метод проектирования  Internet-ориентированных информационных управляющих систем был применен на практике в ходе создания коммерческого web-приложения - системы управления проектами, в которой было применено 25 типов документов. Иерархическая структура дерева документов системы приведена на рисунке 1.


Рис.1. Структура XML-документов системы управления проектами

Программная часть системы была выполнена на языке Java с применением Web-контейнера Tomcat и СУБД MySQL. Ядро системы, реализующее уровень бизнес логики,  представляло собой пакет Java--классов, обеспечивающих работу с документами независимо от их типов. Благодаря использованию шаблонов документов, были применены универсальные методы получения документов для просмотра, создания документов и сохранения их в базе данных. С целью обеспечения разграничения уровней доступа к документам в их структуры были введены дополнительные атрибуты, а  ядро системы расширено соответствующим модулем вычисления прав доступа. Для отображения данных (содержимого XML-документов) использовался язык стилей XSLT, что обеспечило трансформацию XML в HTML на стороне сервера.  

За счет применения шаблонов документов удалось значительно уменьшить объем Java-кода разрабатываемой системы. Для сравнения, объем Java-кода, реализующего функциональность одного ранее написанного модуля, составляющего примерно 10% функциональности всей системы и выполненного по <традиционной> схеме создания динамических сайтов, занимал столько же кода, сколько все ядро системы, поддерживающее использование данного метода. Под <традиционной> схемой, в данном случае, понимается жесткая привязка Java-кода к предметной области и разработанной под поставленную задачу реляционной базе данных.

Кроме того, использование единой информационной модели в виде дерева XML-документов позволило производить изменение информационной структуры системы на последних этапах ее разработки, обеспечивая постепенное развитие прототипа. При этом  производились изменения в структуре некоторых документов, добавлялись новые документы, и все это проводилось без изменения Java-кода ядра системы. Изменялись только шаблоны документов и их отображения при помощи XSL/XSLT. При <традиционной> схеме разработки такого рода систем указанные модификации обычно влекут за собой огромное количество изменений в коде, что негативно сказывается на надежности программного продукта и сроках его разработки.

Заключение

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


Литература

1. Штайнке С. Управление сетями и системами с помощью XML// Журнал сетевых решений/LAN. - 1999. - ©11.

2. Эйнджел D. XML: время пришло// Журнал сетевых решений/LAN. - 1999. - ©11.

3. Tidwell D. XSLT. - O'Reilly & Associates, 2001.

PowerAnt это программное управление через RS-232 порт 14 и больше внешними устройствами с помощью компьютера. Открытый, текстовый, хорошо задокументированный протокол управления. Управление электроприборами с потребяемой мощностью до 200Вт. Хотите управлять Реальным Миром даже из MS Excel?.
  © 2004-2014 by  www.anthillsolutions.com