Создание IEPD NIEM: Часть 4. Сборка IEPD

Проектирование системы обмена XML-информацией между государственными учреждениями США

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

Присцилла Уолмсли, управляющий директор, Datypic

Фото Присциллы УолмслиПрисцилла Уолмсли (Priscilla Walmsley) работает управляющим директором и старшим консультантом компании Datypic. Она специализируется на технологии, архитектуре и реализации XML. В последнее время Присцилла работает с Министерством юстиции США (через Trusted Federal Systems) над системой IEPD LEXS нa базе NIEM. Она – автор книг Definitive XML Schema (Prentice Hall, 2001 г.) и XQuery (O'Reilly Media, 2007 г.). Кроме того, она является соавтором учебника Web Service Contract Design and Versioning for SOA (Prentice Hall, 2008 г.). С Присциллой можно связаться по адресу: pwalmsley@datypic.com.



10.02.2012

Information Exchange Package Documentation (IEPD) – это набор документов, описывающих систему информационного обмена в соответствии с Национальной моделью обмена информацией (NIEM). Обычно он включает в себя схемы, образцы, документацию различных видов и инструкции по обработке. В него также входят несколько конкретных артефактов NIEM, необходимых при NIEM-совместимом обмене, таких как документ метаданных и файл каталога.

В этом цикле статей мы рассмотрели простой пример IEPD-заявления об угоне (см. ссылки на первые три статьи в разделе Ресурсы). Теперь, когда наша модель UML, таблица соответствия компонентов (CMT) и схемы готовы, осталось сделать несколько шагов, чтобы закончить IEPD:

Часто используемые сокращения

  • CMT: Component Mapping Template
  • HTML: Hypertext Markup Language
  • IEPD: Information Exchange Package Documentation
  • NIEM: National Information Exchange Model
  • UML: Unified Modeling Language
  • XHTML: Extensible Hypertext Markup Language
  • XML: Extensible Markup Language
  • XSLT: Extensible Stylesheet Transformations
  1. Создать более близкие к документации артефакты для дальнейшего объяснения системы обмена. В частности, нужно добавить:
    • основную документацию с общим описанием системы обмена;
    • образцы документов для демонстрации реалистичной структуры сообщений и проверки схем;
    • инструкции по обработке для обеспечения читабельного представления образцов документов.
  2. Собрать IEPD NIEM-совместимым способом с использованием инструмента NIEM "Work with IEPDs", чтобы загрузить артефакты и сгенерировать файлы дополнительной документации.
  3. Проверить IEPD на предмет полноты и соответствия NIEM с использованием инструмента проверки соответствия NIEM.
  4. Опубликовать IEPD, чтобы его могли найти другие пользователи.

Документация IEPD

Чтобы быть NIEM-совместимым, IEPD должен содержать как минимум ту или иную форму основной документации и журнал изменений с описанием изменений, внесенных в последнюю версию. В IEPD можно включать любую документацию, которая обычно сопровождает программное приложение (в основной комплект документации или в виде отдельных файлов), как то:

  • UML-модели (блок-схемы, варианты использования, диаграммы классов);
  • CMT;
  • бизнес-правила (т.е. ограничения на данные, которые не выражены в схемах или в модели);
  • определения требований;
  • результаты тестирования и/или проверки соответствия;
  • согласования и письма в поддержку.

Пока из артефактов документации, разработанных для IEPD-заявления об угоне, есть только UML-модель и CMT. Нужно добавить основную документацию с описанием в общих чертах назначения и структуры системы обмена. Кроме того, нужно добавить журнал регистрации изменений, по существу, пустой, потому что это первый вариант системы обмена. Полный пакет IEPD со всеми документами содержится в разделе Загрузка.


Создание образцов документов

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

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

Многие XML-редакторы генерируют образцы документов, но такие документы обычно содержат бессмысленные данные, и в них отсутствуют правильно связанные значения ID и IDREF, используемые в ассоциациях. Любые сгенерированные образцы нужно редактировать вручную, чтобы сделать их более типичными и значимыми. Я также рекомендую проверять свои образцы с использованием нескольких процессоров ввиду различий в способах обработки тех или иных случаев расположения схемы разными процессорами.

В IEPD-заявлении об угоне есть только один возможный корневой элемент (tr:TheftReport). В листинге 1 показано начало одного полного образца, который я создала. Он содержит, по крайней мере, по одному элементу каждого типа, допустимого в системе обмена, и примеры значений данных.

Листинг 1. Начало образца документа
<?xml-stylesheet type="text/xsl" href="theftreport.xsl" ?>
<tr:TheftReport xmlns:tr="http://datypic.com/theftreport/exchange/1.0"
 xmlns:nc="http://niem.gov/niem/niem-core/2.0"
 xmlns:trext="http://datypic.com/theftreport/extension/1.0"
 xmlns:j="http://niem.gov/niem/domains/jxdm/4.1"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:s="http://niem.gov/niem/structures/2.0"
 xsi:schemaLocation="http://datypic.com/theftreport/exchange/1.0
                     ../schema/exchange/1.0/theftreport-exchange.xsd">
    <tr:TheftReportDate>2006-05-05</tr:TheftReportDate>
    <trext:Theft s:id="T1">
        <nc:ActivityDate>
            <nc:DateTime>2006-05-04T08:15:00</nc:DateTime>
        </nc:ActivityDate>
    </trext:Theft>
    <trext:Theft s:id="T2">
        <nc:ActivityDate>
            <nc:DateTime>2006-05-04T09:14:00</nc:DateTime>
        </nc:ActivityDate>
    </trext:Theft>
        <nc:ActivityConveyanceAssociation>
            <nc:ActivityReference s:ref="T1"/>
            <nc:ConveyanceReference s:ref="V1"/>
        </nc:ActivityConveyanceAssociation>
        <nc:ActivityConveyanceAssociation>
            <nc:ActivityReference s:ref="T2"/>
            <nc:ConveyanceReference s:ref="B1"/>
        </nc:ActivityConveyanceAssociation>
        <trext:Vehicle s:id="V1">
            <nc:ItemDescriptionText>2001 Subaru Outback</nc:ItemDescriptionText>
            <nc:ItemSerialIdentification>
                 <nc:IdentificationID>123455234234</nc:IdentificationID>
            </nc:ItemSerialIdentification>
            <nc:VehicleColorPrimaryCode>SIL</nc:VehicleColorPrimaryCode>
            <nc:ConveyanceRegistrationPlateIdentification>
                 <nc:IdentificationID>BGE112</nc:IdentificationID>
            </nc:ConveyanceRegistrationPlateIdentification>
            <trext:VehicleTaxClassCode>4</trext:VehicleTaxClassCode>
        </trext:Vehicle>
    ...

Создание инструкций по обработке

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

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

Предоставление XML-документов обычно осуществляется с помощью таблиц стилей XSLT. В общем случае для простого рендеринга HTML я рекомендую придерживаться XSLT версии 1.0, так как эта версия поддерживается популярными браузерами. Включение таблицы стилей XSLT в каталог с образцами позволит увидеть обработанную HTML-версию, дважды щелкнув на образце (или открыть его в XML-редакторе). Инструкции по обработке в первой строке листинга 1 (начиная с <?xml-stylesheet) указывают, какую таблицу стилей XSLT использовать.

Для IEPD-заявления об угоне я создала довольно простую таблицу стилей XSLT 1.0 (она включена в IEPD в разделе Загрузка), которая отображает заявление об угоне в удобной для пользователя форме, как показано на рисунке 1. XSLT соединяет каждый случай угона с соответствующим местом происшествия, транспортным средством, именем потерпевшего, свидетелями и логично отображает эти данные. (См. текстовую версию рисунка 1.)

Рисунок 1. Обработанный образец
Скриншот обработанных образцов заявлений

Сборка IEPD

NIEM содержит инструмент Work with IEPDs для сбора артефактов IEPD и монтажа полного пакета (см. ссылку в разделе Ресурсы). Хотя IEPD можно собрать и вручную, инструмент облегчает этот процесс, позволяя автоматически генерировать два артефакта, необходимых для соответствия NIEM: метаданные документа и файл каталога, который служит оглавлением. К тому же он приводит к IEPD с более последовательной структурой файлов.

Чтобы использовать этот инструмент, выберите Create/Upload IEPD из меню в левой части страницы. Это приведет вас на страницу, показанную на рисунке 2.

Рисунок 2. Страница IEPD Create/upload
Скриншот страницы Create/upload IEPD инструмента Work with IEPDs

После нажатия кнопки Begin вам будет предложено указать существующий zip-файл IEPD для загрузки. Если архив с артефактами IEPD уже существует, достаточно ответить Yes и загрузить zip-файл. Для образца заявления об угоне отвечаем No, чтобы загружать каждый файл отдельно.

После нажатия кнопки No инструмент отображает страницу, изображенную на рисунке 3. Эта страница позволяет указать имя корневого каталога. Для заявления об угоне выбираем в качестве корневого каталога TheftReport. Чтобы добавить отдельные артефакты IEPD, нажмите ссылку Add Artifact на этой же странице.

Рисунок 3. Страница загрузки артефактов
Скриншот страницы Upload Artifacts инструмента Work with IEPDs

На этой странице добавляем схемы расширения и обмена, wantlist, подмножества, образец документа, инструкции по обработке, CMT, модель UML, журнал регистрации изменений и основную документацию. Обратите внимание, что схемы подмножества нужно упаковать в один zip-файл; когда инструмент регенерирует IEPD, он распаковывает его.

Для каждого добавленного артефакта нужно выбрать тип. Это важно, потому что от этого зависит способ создания файла каталога и генерирования каталогов по умолчанию, используемых для компонентов. На этой же странице можно выбрать путь к каталогу. Для единообразия нажимайте кнопку use recommended path для каждого артефакта, и инструмент будет заполнять поле пути. Единственным изменением, которое я внесла в рекомендованный путь, было включение подкаталога 1.0 для схем обмена и расширения, чтобы структура каталогов отражала пространство имен. Еще я добавила описание для каждого артефакта. Результаты показаны на рисунке 4. (См. текстовую версию рисунка 4.)

Рисунок 4. Добавленные артефакты
Скриншот списка добавленных артефактов на странице редактирования артефактов

Добавив артефакты, нажмите кнопку Next, чтобы перейти к странице Enter Metadata, показанной на рисунке 5. Сюда нужно ввести метаданные IEPD, такие как имя, описание, версия, организация и контактные данные. Инструмент использует эту информацию для создания XML-документа metadata.xml, который входит в состав IEPD.

Рисунок 5. Страница ввода метаданных
Скриншот страницы Enter Metadata инструмента Work with IEPDs

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

Рисунок 6. Страница резюме IEPD
Скриншот страницы резюме IEPD Details инструмента Work with IEPDs

Здесь можно нажать кнопку Validate IEPD, чтобы определить, включены ли в IEPD все необходимые метаданные. После проверки нажмите Upload IEPD, чтобы сохранить IEPD на будущее в папке My IEPDs своего профиля. Заметим, что загрузка IEPD не делает его автоматически видимым для других пользователей Web-сайта.

Наконец, чтобы сгенерировать IEPD, нажмите Download на странице IEPD Successfully Uploaded. Вы можете в любое время загрузить, изменить или удалить любые из своих IEPD, нажав кнопку My IEPDs меню в левой части страницы инструмента.

В сгенерированном IEPD присутствуют копии всех загруженных артефактов, а также два вновь созданных файла. Документ metadata.xml, показанный в листинге 2, обеспечивает стандартизированный формат IEPD сведений о системе обмена.

Листинг 2. Документ метаданных
<?xml version="1.0" encoding="UTF-8"?>
<Metadata>
    <URI>http://www.datypic.com/theftreport</URI>
    <Name>Theft Report</Name>
    <Summary>Exchange to report thefts of motor vehicles and bicycles in the state
                on a daily basis</Summary>
    <Description>Contains information about a theft of a motor vehicle or bicycle,
                including the theft date, location, description and identifiers of
                the stolen property, and victim and witness information.</Description>
    <Version>1.0</Version>
    <URL>http://www.datypic.com/theftreport</URL>
    <CreationDate>03/01/2010</CreationDate>
    <LastRevisionDate>03/01/2010</LastRevisionDate>
    <NextRevisionDate>06/01/2010</NextRevisionDate>
    <NIEMVersion>2.0</NIEMVersion>
    <Security>Public</Security>
    <Maturity>2</Maturity>
    <Status>Final</Status>
    <Schedule/>
    <Lineage/>
    <Relationships/>
    <Keywords/>
    <Domain>Justice, </Domain>
    <ExchangePartners/>
    <Process/>
    <TriggeringEvent/>
    <Conditions/>
    <Endorsements/>
    <Sponsors>Datypic</Sponsors>
    <Purpose>Report thefts of motor vehicles and bicycles to interested parties</Purpose>
    <MessageExchangePatterns>publish/subscribe</MessageExchangePatterns>
    <CommunicationsEnvironment/>
    <ExchangePartnerCategories>Law Enforcement, DMV,
                                  Department of Revenue</ExchangePartnerCategories>
    <AuthoritativeSource>
        <Category>none</Category>
        <Organization>
            <Name>Datypic</Name>
            <Address1/>
            <Address2/>
            <City/>
            <State/>
            <Zip/>
            <Country/>
            <URL>http://www.datypic.com</URL>
        </Organization>
        <PointOfContact>
            <Name>Priscilla Walmsley</Name>
            <Address1/>
            <Address2/>
            <City/>
            <State/>
            <Zip/>
            <Country/>
            <Phone>231-555-1212</Phone>
            <Fax/>
            <Email>pwalmsley@datypic.com</Email>
        </PointOfContact>
    </AuthoritativeSource>
</Metadata>

Файл catalog.html представляет собой XHTML-документ, который служит оглавлением артефактов, содержащихся в IEPD. Он показан в обработанной, читабельной форме на рисунке 7. Каталог подходит и для машинного прочтения благодаря встроенному в XHTML rddl:purpose. (См. текстовую версию рисунка 7.)

Рисунок 7. Обработанный каталог файлов IEPD
Скриншот обработанного каталога файлов IEPD

Проверка IEPD

Создав IEPD, можно проверить его на соответствие с помощью инструмента NIEM Conformance Validation (см. ссылку в разделе Ресурсы). Этот процесс гарантирует, что в IEPD присутствуют все необходимые артефакты. Он проверяет также схемы по некоторым правилам для NIEM-совместимых схем, определенных в документе Naming and Design Rules (NDR) NIEM.

На главной странице инструмента Conformance Validation нажмите Begin, чтобы попасть на страницу, показанную на рисунке 8. Вам будет предложено загрузить файл ZIP-архива, содержащий весь ваш IEPD. Инструмент использует файл каталога для определения местоположения и типа всех артефактов. После прохождения страницы, на которой требуется подтвердить назначение артефактов, на этой странице появится новый раздел, называемый My Validations, с отчетом о соответствии IEPD.

Рисунок 8. Инструмент проверки соответствия
Скриншот инструмента проверки соответствия

На рисунке 9 показана страница резюме для отчета о соответствии в формате Microsoft® Office Excel®. Он состоит из несколько листов:

  • Summary – основная статистическая информация, приведенная на рисунке 9.
  • NDR – All Rules – список всех правил, содержащихся в NDR, а также – для тех правил, которые можно проверить автоматически, – информация о том, прошли ли схемы IEPD проверку на данное правило. Для каждого правила, которое нельзя проверить автоматически, раскрывающийся список позволяет указать, что вы выполнили проверку вручную.
  • NDR – Schemas представляет собой резюме всех документов схемы с указанием, являются ли они NIEM-совместимыми.
  • NDR – Rules Auto Failed – список всех нарушений правил NDR.
  • IEPD – Metadata – список всех полей метаданных с сообщениями об ошибке, если требуемые поля отсутствуют.
  • IEPD – Catalog – список всех полей типов артефактов с сообщениями об ошибке, если требуемые документы отсутствуют.

(См. текстовую версию рисунка 9.)

Рисунок 9. Краткий отчет о соответствии
Скриншот краткого отчета о соответствии

Полный текст отчета о соответствии для заявления об угоне содержится в разделе Загрузка.


Отправка IEPD в общедоступное хранилище

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

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

Во-первых, IEPD можно зарегистрировать на самом сайте NIEM, чтобы сделать его доступным для функции поиска инструмента Work with IEPDs. Для этого в инструменте Work with IEPDs откройте страницу резюме IEPD. Нажмите на ссылку Edit справа вверху и выберите Edit Visibility/Sharing, чтобы вызвать страницу Edit Artifact Visibility, показанную на рисунке 10.

Рисунок 10. Редактирование видимости IEPD
Скриншот страницы редактирования видимости IEPD инструмента Work with IEPDs

Здесь выберите Shared, чтобы сделать IEPD видимым. Можно также скрыть отдельные артефакты (сняв флажок рядом с ними), хотя сам IEPD останется видимым. Это позволяет узнавать о существовании IEPD, даже если отдельные артефакты засекречены. Когда все готово, нажмите Update Visibility.

Второе место, куда можно отправить IEPD, – координационный центр IEPD Управления программ правосудия (Office of Justice Programs – OJP). Для этого зайдите на Web-сайт координационного центра (см. ссылку в разделе Ресурсы) и нажмите Submit IEPD Information, чтобы получить форму, по которой можно загрузить свой IEPD.


LEXS: альтернатива созданию полного IEPD

Теперь, когда вы знакомы с процессом разработки IEPD NIEM, еще раз посмотрим, стоит ли этим заниматься. В части 1 этого цикла предполагалось, что прежде чем создавать свой собственный IEPD с нуля, вы рассмотрели возможность использования уже существующих. Это не только улучшит взаимодействие с другими приложениями, но и сэкономит вам много сил.

Однако иногда трудно найти IEPD, который отвечает всем вашим требованиям. В таких случаях хорошим решением может оказаться спецификация обмена логическими объектами (Logical Entity Exchange Specification – LEXS). LEXS представляет собой структуру IEPD NIEM, которая уравновешивает конкурирующие требования совместимости и гибкости путем разделения документов на дайджест и структурированную полезную нагрузку. Дайджест, который содержит наиболее часто используемые компоненты NIEM, имеет фиксированную структуру и может взаимодействовать со всеми IEPD, основанными на LEXS. Структурированная полезная нагрузка позволяет отдельным IEPD на основе LEXS расширять и настраивать базовую модель LEXS. LEXS предлагает также решения для организации обмена сообщениями, поиска, подписки, вложений и рендеринга. (См. ссылку на Web-сайт LEXS в разделе Ресурсы).


Заключение

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


Загрузка

ОписаниеИмяРазмер
Полный IEPDniem4iepd.zip157 КБ
Отчет о соответствии IEPDniem4confreport.zip26 КБ

Ресурсы

Научиться

  • Оригинал статьи (EN).
  • Создание IEPD NIEM, часть 1: Моделирование системы обмена информацией NIEM: Проектирование системы обмена XML-информацией между государственными учреждениями США (Присцилла Уолмсли, developerWorks, январь 2010 г.): в первой статье этого цикла из четырех статей ознакомьтесь с процессом создания решения с применением Национальной модели обмена информацией (NIEM), – спонсируемой правительством США инициативы, направленной на облегчение обмена информацией между государственными и частными организациями.
  • Создание IEPD NIEM, часть 2: Сопоставление модели с NIEM и создание подмножества NIEM: Проектирование системы обмена XML-информацией между государственными учреждениями США (Присцилла Уолмсли, developerWorks, февраль 2010 г.): во второй части этого цикла из четырех статей делается следующий шаг – сопоставление модели с NIEM для определения того, какие готовые части системы обмена NIEM можно использовать. Кроме того, вы научитесь создавать подмодель NIEM для включения в IEPD.
  • Создание IEPD NIEM, часть 3: Расширение NIEM: Проектирование системы обмена XML-информацией между государственными учреждениями США (Присцилла Уолмсли, developerWorks, март 2010 г.): в третьей части этого цикла из четырех статей говорится о том, что делать с теми частями модели, которые не отображаются непосредственно на NIEM, включая создание схем расширения и обмена для определения специальных типов и свойств.
  • Обращайтесь на Web-сайт NIEM за дополнительной информацией о целях и подходах NIEM.
  • Координационный центр IEPD Управления программ правосудия: передайте свой IEPD в координационный центр.

Получить продукты и технологии

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=XML
ArticleID=792760
ArticleTitle=Создание IEPD NIEM: Часть 4. Сборка IEPD
publish-date=02102012