Научная статья на тему 'Применение открытых протоколов обмена данными на основе xml в автоматизированной системе жилищной организации'

Применение открытых протоколов обмена данными на основе xml в автоматизированной системе жилищной организации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
332
68
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение открытых протоколов обмена данными на основе xml в автоматизированной системе жилищной организации»

----------------------------------- © М.В. Абрамов, В.М. Шек,

2004

УДК 658.512

М.В. Абрамов, В.М. Шек

ПРИМЕНЕНИЕ ОТКРЫТЫХ ПРОТОКОЛОВ ОБМЕНА ДАННЫМИ НА ОСНОВЕ XML В АВТОМАТИЗИРОВАННОЙ СИСТЕМЕ ЖИЛИЩНОЙ ОРГАНИЗАЦИИ

Семинар №10

Жилищно-коммунальное хозяйство (ЖКХ) представляет собой сложную систему. «Без современных информационных технологий невозможно проводить реформу ЖКХ в таком крупном городе как Москва. Эти технологии должны обеспечивать мониторинг состояния жилого фонда, инженерных сетей и коммуникаций (включая диспетчеризацию жилых зданий, паспортизацию домов, дворовых территорий и т. д.), организацию расчетов с населением и оказание адресной социальной помощи, контроль за потреблением тепло- и энерго- ресурсов и его оптимизацию, автоматизацию сбора, передачи, обработки и анализа информации, а также информационную поддержку процесса принятия управленческих решений [2].» На сегодняшний день все вышеперечисленные задачи решаются различными организациями, иногда имеющими собственные информационные системы. Интеграция уже существующих и вновь создаваемых систем в единую информационную структуру города представляет собой сложную задачу, успешное решение которой возможно только при использовании открытых протоколов обмена данными. В настоящее время решениями на базе открытых протоколов являются Веб-технологии и обмен данными на основе расширяемого языка разметки (The Extensible Markup Language, XML).

XML

XML (The Extensible Markup Language) - подмножество Стандартного Обобщенного языка разметки (Standard Generalized Markup Language, SGML) был утвержден междуна-родной организацией W3C в 1998 году. Язык разрабатывался для передачи, получения и обработки в Интернете общих документов SGML, и спроектирован так, чтобы упростить реализацию и обеспечить взаимодействие SGML и Hypertext Markup Language (HTML) [6].

XML позволяет описывать и передавать такие структурированные данные, как:

• отдельные документы;

• метаданные, описывающие содержимое какого-либо узла Интернета;

• объекты, содержащие данные и методы работы с ними (например, элементы управления ActiveX или объекты Java);

• отдельные записи (например, результаты выполнения запросов к базам данных);

• всевозможные веб-ссылки на информационные и людские ресурсы Интернета (ад-

реса электронной почты, гипертекстовые ссылки и пр.).

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

Ниже приведен пример описания количества домов в каждом районе Центрального округа Москвы на языке XML.

<number_of_houses>

<city name="Москва">

<district name="Центральный Административный Округ">

<region name = "Арбат">239</region>

<region name = "Басманный">679</region>

<region name = "Замоскворечье">327</region>

<region name = "Красносельский">226</region>

<region name = "Пресненский">736</region>

<region name = "Tаганский">467</region>

<region name = "Tверской">532</region>

<region name = "Хамовники">485</region>

<region name = "Якиманка">141</region> </district>

</city>

</number_of_houses>

Любой элемент XML-документа может иметь атрибуты, уточняющие его характеристики. Атрибут - это пара имя="значение", которая задается при определении элемента в начальном тэге. В приведенном выше примере у элементов <city>, <district>, <region> имеется атрибут name - наименование.

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

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

Существуют правила формирования XML-документов:

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

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

• в XML учитывается регистр символов;

• вся информация, располагающаяся между начальным и конечным тэгами, рассматривается в XML как данные, и поэтому учитываются все символы форматирования (пробелы, переводы строк, табуляции и т.п.);

• в XML существует набор зарезервированных символов, задающихся в XML-документе специальным образом(< &lt, & &ampб, > &gt, " &quot, ' &apos );

• каждый XML-документ должен иметь уникальный корневой элемент. В нашем примере таким элементом является элемент <number_of_houses>;

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

• и т.д.

Если XML-документ не нарушает приведенные выше правила, то он называется корректным (well-formed).

Кроме того, для XML-документа может быть задано правило, по которому он был сформирован. Это позволяет осуществлять контроль правильности наполнения документа. На сегодняшний день существует два механизма контроля правильности XML-документа: DTD-определения (Document Type Definition) и схемы данных (Semantic Schema). Схема - это способ создания правил построения XML-документов, то есть задания допустимых имен, типов, атрибутов и отношений элементов в XML-документе. По сравнению с DTD-описаниями, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться. В основе схем также лежит описание на основе XML, т.е. язык XML можно назвать самоописывающимся. Если XML-документ удовлетворяет определенной схеме или DTD-описанию, то он является действительным (valid) [1]. Получение данных из XML-документа, а также проверка корректности и действительности XML-документов обеспечивается анализаторами (parsers) XML-документов. Собственные XML-анализаторы разработаны такими компаниями как Microsoft, Oracle, Sun и т.д. Если XML-документ является корректным, то все анализаторы, предназначенные для разбора XML-документов, смогут с ним работать. XML-анализаторы позволяют извлекать заданные в документе элементы и передавать их прикладной программе, выполняющей необходимые действия. То есть после разбора XML-документа в большинстве случаев, прикладной программе предоставляется объектная модель, отображающая содержимое полученного XML-документа, и средства для работы с ней (прохода по дереву элементов) [5].

На базе XML разработан ряд протоколов обмена данными между удаленными приложениями. Среди них можно назвать XML Remote Procedure Calling (XML-RPC) и Simple Object Access Protocol (SOAP).

XML-RPC

XML-RPC (Remote Procedure Calling) - протокол удаленного вызова процедур, работающий через Интернет.

Сообщение XML-RPC является HTTP-POST запросом, в теле которого содержится XML. Процедура выполняется на сервере, и результаты ее работы также передаются в формате XML. Параметры процедуры могут быть целыми числами, числами с плавающей точкой, строками, датами и т.д. Также в качестве параметров могут выступать сложные записи и списковые структуры [4].

Ниже представлен пример XML-RPC запроса названия района по коду:

POST /RPC2 HTTP/1.0 User-Agent: Frontier/5.1.2 (WinNT)

Host: mgi.mos.ru Content-Type: text/xml Content-length: 181

<?xml version="1.0"?>

<methodCall>

<methodName>city.getRgionName</methodName>

<params>

<param>

<value><i4>41</i4></value>

</param>

</params>

</methodCall>Похожим на XML-RPC, но более мощным протоколом обмена данными, позволяющим не только удаленно вызывать процедуры, но и работать с удаленными объектами, является SOAP.

SOAP

SOAP (Simple Object Access Protocol) - Простой Протокол Доступа к Объектам предназначен для обмена структурированной информацией в децентрализованных, распределенных средах. В его основе также лежит XML.

Ниже представлены примеры SOAP запроса названия района по коду:

POST /region.asmx HTTP/1.1 Host: mgi.mos.ru

Content-Type: text/xml; charset=utf-8 Content-Length: 250

SOAPAction: "http://tempuri.org/getName"

<?xml version="1.0" encoding="utf-8"?>

<soap: Envelope xmlns:xsi="http: //www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<getName xmlns="http://tempuri.org/">

<ID>41</ID>

</getName>

</soap:Body>

</soap:Envelope>

и ответа на него:

HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: 203

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<getNameResponse xmlns="http://tempuri.org/"> <getNameResult>Басманный</getNameResult>

</getNameResponse>

</soap:Body>

</soap:Envelope>

SOAP лег в основу такой мощной компонентной архитектуры как Веб-службы XML.

Веб-службы XML

Веб-службы XML являются программируемой логикой приложений доступной с помощью стандартных протоколов Интернета. Веб-службы объединяют лучшие качества компонентной архитектуры и Веб-приложений. Как компоненты, Веб-службы представляют функциональность «черного ящика», которая может быть использована без знания того, как компонент был реализован. В отличие от других компонентных моделей, доступ к Веб-службам осуществляется не по специализированным протоколам обмена данными, таким как distributed Component Object Model (DCOM), Remote Method Invocation (RMI), или Internet Inter-ORB Protocol (IIOP). Вместо этого доступ к ним осуществляется с помощью универсальных протоколов, таких как Hypertext Transfer Protocol (HTTP) и SOAP. Интерфейс Веб-службы определен в терминах сообщений, которые Веб-служба принимает и генерирует. Клиенты Веб-службы могут быть реализованы на любой платформе с помощью любого доступного языка программирования, позволяющего генерировать и интерпретировать сообщения, определенные в интерфейсе Веб-службы [3].

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

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

• локальная обработка данных. Полученные данные в формате XML можно разбирать, обрабатывать, сохранять и отображать непосредственно на клиенте без дополнительных обращений к серверу;

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

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

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

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

--------------------------------------------------------------- СПИСОК ЛИТЕРАТУРЫ

1. Маленкова А. Основы XML/MSDN, http:// 4. http://www.xmlrpc.com/;

www.microsoft.com/rus/msdn/activ/article/xml/; 5. W3C SOAP Version 1.2 Part 1: Messaging

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. Зотов В. Современные информационные Framework / http://www.w3.org/TR/ soap12-part1/;

технологии в реформировании жилищно-коммуналь- 6. W3C Extensible Markup Language (XML) 1.0

ного хозяйства / Проблемы теории и практики (Second Edition) / http://www.w3.org/ TR управления №4 2002; /2000/REC-xml-20001006.

3. Kirtland Mary A Platform for Web Services /

MSDN, 2001;

— Коротко об авторах----------------------------------------------------------------------

Абрамов Максим Валерьевич - аспирант

Шек Валерий Михайлович - профессор, доктор технических наук,

кафедра «Автоматизированные системы управления», Московский государственный горный университет.

i Надоели баннеры? Вы всегда можете отключить рекламу.