ИНФРАСТРУКТУРА ЭЛЕКТРОННОГО ПРАВИТЕЛЬСТВА Выполнение работ в 2012 году по развитию инфраструктуры электронного правительства в рамках реализации мероприятий государственной программы Российской Федерации «Информационное общество (2011-2020 годы)» Создание единой системы справочников и классификаторов, используемых в государственных и муниципальных информационных системах МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИСПОЛЬЗОВАНИЮ ЕДИНОЙ СИСТЕМЫ СПРАВОЧНИКОВ И КЛАССИФИКАТОРОВ, ИСПОЛЬЗУЕМЫХ В ГОСУДАРСТВЕННЫХ И МУНИЦИПАЛЬНЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ Листов Москва 2012 СОДЕРЖАНИЕ ТЕРМИНЫ И СОКРАЩЕНИЯ..............................................................................................................3 ВВЕДЕНИЕ .....................................................................................................................................5 ОБЩИЕ СВЕДЕНИЯ ПО ЕСНСИ ................................................................................................6 ТРЕБОВАНИЯ К ДАННЫМ КОМПОНЕНТОВ НСИ ................................................................8 3.1 Общие требования к данным компонентов НСИ в ЕСНСИ .....................................................8 3.2 Требования к передаче реплики или обновлений данных компонентов НСИ .......................8 3.3 Требования к файлу данных компонента НСИ для разовой (единовременной) загрузке данных в ЕСНСИ ..............................................................................................................8 3.3.1 Общие требования ..................................................................................................... 9 3.3.2 Требования к файлу в формате XML ....................................................................... 9 4 ТРЕБОВАНИЯ К СТРУКТУРЕ ЭЛЕКТРОННЫХ СООБЩЕНИЙ .........................................10 1 2 3 4.1 Общие требования ......................................................................................................................10 4.2 Унифицированный служебный блок-обертка данных атрибутов сообщения СМЭВ (smev:MessageData) ........................................................................................................................11 5 МЕТОДЫ ВЗАИМОДЕЙСТВИЯ С ЕСНСИ ДЛЯ ОПЕРАТОРА КОМПОНЕНТА НСИ ........................................................................................................................................................12 5.1 Общие сведения ..........................................................................................................................12 5.2 Уведомление об изменении данных компонента НСИ (componentChanged) .......................12 5.3 Предоставление обновлений и реплики (getLastUpdates) на стороне Оператора компонента НСИ ............................................................................................................................13 6 МЕТОДЫ ВЗАИМОДЕЙСТВИЯ С ЕСНСИ ДЛЯ ПОТРЕБИТЕЛЕЙ ....................................17 6.1 Общие сведения ..........................................................................................................................17 6.2 Поиск компонента (findComponent) ..........................................................................................17 6.3 Поиск и получение ревизии компонента (findComponentRevision) .......................................19 6.4 Получение ревизии элемента компонента (findElementRevision) ..........................................20 6.5 Получение обновлений и реплики (getLastUpdates) ................................................................22 6.6 Уведомление об обновлении описания либо данных компонента НСИ (componentChanged) .......................................................................................................................25 6.7 Получение неверсионной реплики (getSnapshot).....................................................................26 6.8 Получение обновлений неверсионной реплики (getNewEvents) ............................................27 6.9 Получение перечня аннулированных элементов неверсионных данных (getExpiredElements) ......................................................................................................................29 2 ТЕРМИНЫ И СОКРАЩЕНИЯ Термин Определение Атрибут НСИ Соответствует терминологии СУБД: поле записи, строки ЕСНСИ Единая система справочников и классификаторов, используемых в государственных и муниципальных информационных системах Идентификатор Атрибут или набор атрибутов компонента НСИ, определённый нормативными документами или Оператором компонента НСИ, позволяющий однозначно идентифицировать элемент данных компонента НСИ ИС Информационная система - совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий и технических средств Реестр НСИ Специальный структурированный компонент НСИ, содержащий информацию обо всех классификаторах и справочниках, имеющихся в ЕНСИ. Компонент НСИ Отдельный классификатор или справочник (реестр, регистр, кадастр) в составе информационной системы Ревизия компонента Конкретные параметры справочника (компонента), такие как название, текстовое развёрнутое описание справочника и хранимых данных, период действия компонента в данной ревизии, структуру (формат) хранимых элементов. Ревизия компонента владеет множеством элементов с указанной структурой НСИ Нормативно-справочная информация ОГВ Органы государственной власти Оператор Юридическое лицо, осуществляющие деятельность по эксплуатации информационной информационной системы, в том числе по обработке информации, системы содержащейся в ее базах данных (в ред. Федерального закона от 27 июля 2006г. № 149-ФЗ) Оператор Ведомство, или иной государственный орган обладатель компонента НСИ информации, являющейся компонентом НСИ, и назначенный (Оператор) соответствующим нормативным актом лицом - ответственным за ведение и актуализацию компонента НСИ. СМЭВ Система межведомственного электронного взаимодействия Структура Номенклатура, формат и смысловое содержание полей элементов компонента НСИ НСИ Ревизия элемента конкретная версия элемента справочника, информационное наполнение элемента, также содержит период действия этой версии 3 Термин Определение элемента Элемент НСИ Непосредственно адресуемая запись (строка) справочника или классификатора (в терминах СУБД – кортеж) Эталонный банк Совокупность баз данных разрабатываемой системы, размещаемых на федеральном (федеральный банк) и региональном (региональные банки) уровне и предназначенных для хранения эталонных компонентов НСИ и предоставления пользователям информации из этих компонентов. XML Текстовый формат, предназначенный для хранения структурированных данных и обмена информацией между программами WSDL Язык описания веб-сервисов и доступа к ним 4 1 ВВЕДЕНИЕ Аннотация Настоящий документ описывает требования к данным в Единой системе НСИ, правила разработки программных интерфейсов и электронных сервисов, предназначенных для взаимодействия с единой системой НСИ, в части применения служебных блоков данных, передаваемых в электронных сообщениях, а также форматов элементов НСИ. Требования, указанные в документе, следует рассматривать в дополнение к: требованиям, содержащимся в приказе Министерства связи и массовых коммуникаций Российской Федерации от 27 декабря 2010 г. № 190 «Об утверждении технических требований к взаимодействию информационных систем в единой системе межведомственного электронного взаимодействия»; методическим рекомендациям по разработке электронных сервисов и применению технологии электронной подписи при межведомственном электронном взаимодействии версии 2.4.4. 5 2 ОБЩИЕ СВЕДЕНИЯ ПО ЕСНСИ Полное наименование системы: Единая система справочников и классификаторов, используемых в государственных и муниципальных информационных системах. Краткое наименование системы: Единая система НСИ, ЕСНСИ, Система. ЕСНСИ должна обеспечивать осуществление следующих основных функций: − ведение единого реестра НСИ; − доступ конечных пользователей к данным единого реестра НСИ; − предоставление конечным пользователям данных компонентов НСИ. Пользователями Системы являются: поставщики справочных данных – органы государственной власти и местного самоуправления, подведомственные им организации, органы государственных внебюджетных фондов РФ, иные органы и организации, размещающие в Системе справочные данные (описание справочников, классификаторов и базовых информационных ресурсов, а также данные справочников и классификаторов): операторы компонентов НСИ - органы государственной власти или местного самоуправления, уполномоченные на ведение справочников и классификаторов; операторы БГИР органы федеральные органы исполнительной власти и государственных уполномоченные на внебюджетных ведение базовых фондов РФ, государственных информационных ресурсов; потребители справочных данных – информационные системы государственных и муниципальных органов власти, а также сотрудники этих органов, обеспечивающие эксплуатацию указанных информационных систем; оператор (ы) единого реестра НСИ, реестра БГИР и реестра объектов учета – орган государственной власти, уполномоченный на формирование и ведение указанных реестров. 6 Информационное взаимодействие Системы и информационных систем органов исполнительных власти, государственных внебюджетных фондов и местного самоуправления осуществляется посредством единой системы межведомственного электронного взаимодействия (СМЭВ). Система поддерживает следующие варианты предоставления конечным пользователям данных компонентов НСИ: − данные конечным пользователям предоставляет оператор компонента НСИ; − данные конечным пользователям предоставляются посредством Системы. Система поддерживает следующие механизмы получения актуальных данных компонентов НСИ от их операторов для предоставления конечным пользователям: − Оператор компонента передает в Систему актуальные данные компонента НСИ в соответствии с установленной регламентом периодичностью; − Оператор компонента использует Систему для ведения данных компонента НСИ. 7 3 ТРЕБОВАНИЯ К ДАННЫМ КОМПОНЕНТОВ НСИ 3.1 Общие требования к данным компонентов НСИ в ЕСНСИ Для данных компонентов НСИ в ЕС НСИ предъявляются следующие требования: каждый компонент НСИ должен иметь идентификатор (уникальный признак объекта, позволяющий различать объекты и/или объект); компонент НСИ не должен содержать дубликатов идентификаторов, за исключением случаев поддержки компонентом версионности данных, а также дубликатов записей с различными значениями идентификаторов; компонент НСИ должен быть нормализован, не допускается наличие двух и более полей, содержащих одну и ту же информацию; при наличии в структуре данных компонента НСИ внутренних ссылок, он должен удовлетворять требованиям ссылочной целостности; дата начала действия версии (ревизии) элемента должна быть меньше даты конца действия версии (ревизии) элемента; периоды действия различных версий (ревизий) элемента компонента НСИ не должны пересекаться; Передаваемые XML документы данных компонентов НСИ должны соответствовать XML схеме соответствующей ревизии компонента опубликованной или публикуемой в ЭБ ЕС НСИ. 3.2 Требования к компонентов НСИ передаче реплики или обновлений данных При передаче реплики или обновлений данных предъявляются следующие требования: при передаче данных в виде реплики либо обновления данных должны соблюдаться все приведенные выше общие требования к данным; версии (ревизии) элементов компонента НСИ передаваемые на публикацию в ЭБ ЕС НСИ должны передаваться (публиковаться, размещаться в исходном для загрузки файле) в хронологическом порядке. Данное требование предполагает, что версии (ревизии) элементов будут упорядочены по дате начала действия версии (ревизии) элемента как первичному признаку, и дате конца действия версии (ревизии) элемента как вторичному признаку в рамках каждого элемента компонента НСИ 3.3 Требования к файлу данных компонента НСИ для разовой 8 (единовременной) загрузке данных в ЕСНСИ 3.3.1 Общие требования Файл данных компонента НСИ для разовой (единовременной) загрузки в ЕСНСИ должен быть представлен в формате XML документа, либо в формате представления табличных данных CSV. Содержимое файла должно быть представлено в кодировке UTF-8. При предоставлении файла данных компонента НСИ необходимо предоставить так же XSD схему документов XML предлагаемых к публикации в ЕСНСИ. Записи элементов данных компонента НСИ предоставляемые в файле данных компонента НСИ для разовой загрузки должны соответствовать XSD схеме по атрибутному составу, представленному для каждой записи. Для каждой записи элементов компонента НСИ необходимо указание даты начала и конца действия. Данные даты будут изъяты из документов и в конечных XML документах, публикуемых в ЕСНСИ содержаться не будут. В случае историчности предоставляемых данных компонента НСИ, версии одного и того же элемента должны располагаться в исходном файле в хронологическом порядке (по возрастанию дат начала действия записей). Предоставляемые данные компонента НСИ для разовой загрузки должны соответствовать общим требованиям к данным, изложенным в данном документе (методические рекомендации). 3.3.2 Требования к файлу в формате XML Содержимое файла данных в формате XML должно быть разделено на записи элементов компонента НСИ как отдельные элементы согласно терминологии XML. Атрибуты элементов компонента НСИ могут представляться как атрибуты либо как элементы, входящие в состав комплексных типов, согласно терминологии XML. 9 4 ТРЕБОВАНИЯ СООБЩЕНИЙ К СТРУКТУРЕ ЭЛЕКТРОННЫХ 4.1 Общие требования Электронные сообщения в системе межведомственного электронного взаимодействия передаются в формате XML. Обмен сообщениями в СМЭВ должен соответствовать методическим рекомендациям по разработке электронных сервисов и применению технологии электронной подписи при межведомственном взаимодействии (версии 2.4.4). Методические рекомендации размещены на технологическом портале СМЭВ. Согласно спецификации WS-I Basic Profile 1.1 все WSDL и XSD файлы должны быть кодированы в кодировке UTF-8 или UTF-16 (с указанием этой кодировки в заголовке XML) (Приказ Минкомсвязи N190 от 25.12.2010 года). Для информационного обмена с единой системой НСИ кодировка сообщений должна быть UTF-8. Для именования пространства имен унифицированных элементов в сообщениях НСИ, в документе применяется нотация xmlns:nsi. Для того, чтобы можно было отличить одну версию формата от другой, применяется следующее правило кодирования: xmlns:nsi="http://nsi.gosuslugi.ru/revYYMMDD" где YYMMDD указывает на дату принятия актуальной версии, соответственно: YY соответствует двум последним цифрам в номере года; MM – номер месяца; DD – номер числа в месяце. Версии «рекомендаций» 1.0 соответствует пространство xmlns:nsi=" http://nsi.gosuslugi.ru/rev111111" Объекты, передаваемые посредством сервисов, соответствуют структуре СМЭВ и содержат два блока: Унифицированный служебный блок атрибутов сообщения СМЭВ (smev:Message). 2.5 Унифицированный служебный блок-обертка данных атрибутов сообщения СМЭВ (smev:MessageData). 10 4.2 Унифицированный служебный блок-обертка данных атрибутов сообщения СМЭВ (smev:MessageData) Блок-обертка smev:MessageData состоит из двух блоков - smev:AppData и smev:AppDocument. Для взаимодействия с единой системой НСИ используется блок smev:AppData. Подробнее о блоках сообщений СМЭВ можно прочитать в методических рекомендациях по разработке электронных сервисов на технологическом портале СМЭВ smev.gosuslugi.ru. 11 5 МЕТОДЫ ВЗАИМОДЕЙСТВИЯ ОПЕРАТОРА КОМПОНЕНТА НСИ С ЕСНСИ ДЛЯ 5.1 Общие сведения Операции взаимодействия ЕСНСИ с Оператором компонента НСИ: Уведомление об обновлении компонента. Передача обновлений или реплики данных компонента НСИ. Для публикации данных в ЭБ ЕСНСИ, Оператору компонента НСИ необходимо уведомить ЕСНСИ посредством обращения к электронному сервису (параметр componentChanged), предварительно обеспечив возможность получения данных по сервису предоставления данных на стороне Оператора компонента НСИ. 5.2 Уведомление об (componentChanged) изменении данных компонента НСИ Общие положения: Сервис, содержащий данный метод находится на стороне ЕСНСИ Метод позволяет уведомлять ЭБ ЕСНСИ об изменении данных компонентов НСИ. При передаче уведомлений данные изменений не передаются. Для получения изменений необходимо обратиться к электронным сервисам ИС Оператора компонента НСИ. После уведомления об обновлении компонента ЭБ обращается к сервису оператора за получением данных. ЕСНСИ не обеспечивает запрос данных моментально сразу после уведомления об обновлении компонента. Параметры: Код компонента НСИ, текст (componentCode). Условия обработки запроса: При получении данного уведомления в ЕСНСИ инициируется процесс получения данных от Оператора компонента. Пример запроса: < ComponentChanged xmlns=”http://ensi.gosuslugi.ru/rev111111”> <componentCode>OKATO</componentCode> </ ComponentChanged > 12 Пример ответа: <response> < status>SUCCESS</ status> <response> 5.3 Предоставление обновлений и реплики (getLastUpdates) на стороне Оператора компонента НСИ Общие положения: Оператор компонента НСИ должен предоставлять возможность запрашивать и получать обновления данных по элементам конкретного компонента НСИ. В ответ на запрос передается перечень ревизий элементов. Количество элементов, отдаваемых за один раз, может быть ограничено настройками ИС Оператора компонента НСИ. Формат передаваемых ревизий элементов, актуальных на определенную дату (период), соответствует структуре компонента из ревизии компонента, актуальной на ту же дату (период). Номер состояния системы (НСС, SSN) – отражает номер состояния системы после изменения. Для каждого последующего изменения НСС имеет значение большее, чем НСС предыдущего изменения. Изменения, передаваемые в ответе на запрос, должны передаваться по порядку по номерам состояния системы. Под изменениями, влекущими смену номера состояния системы, понимаются: − создание новой ревизии элемента (новый элемент, либо изменение уже существовавшего); − аннулирование ревизии элемента (проставление даты конца действия). Для каждого из передаваемых элементов необходимо указывать НСС, соответствующий изменению такового элемента. Параметры: Код компонента НСИ, текст (componentCode). Номер состояния системы, обновления, число (lastSsn). Условия обработки запроса: 13 после которого необходимо получать При наличии изменений, после указанного в запросе НСС, в ответе выдаются все ревизии элементов При указании SSN равного нулю, выдается полная реплика данных - все ревизии элементов указанного компонента Характеристики ответа: Оставшееся количество ревизий элементов после выданного перечня (число) [remainder]. Если в данном элементе значение 0, то не имеется более обновлений с заданными критериями, иначе обновления есть и необходимо обращаться ещё для получения следующего пакета На каждую ревизию элемент указывается следующая информация: − Дата начала действия ревизии элемента. − Дата конца действия ревизии элемента. − Дата создания ревизии элемента. − НСС, соответствующий изменению элемента. − Содержимое ревизии элемента в соответствии указанного варианта предоставления данных. Описание типов объектов: <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="getLastUpdates"> <xs:complexContent> <xs:extension base="tns:request"> <xs:sequence> <xs:element name="componentCode" type="xs:string"/> <xs:element name="lastSsn" type="xs:long"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="lastUpdates"> <xs:sequence> <xs:element minOccurs="0" name="lastSsn" type="xs:long"/> <xs:element minOccurs="0" name="remainder" type="xs:long"/> <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:elementRevision"/> </xs:sequence> </xs:complexType> 14 <xs:complexType name="elementRevision"> <xs:complexContent> <xs:extension base="tns:persistent"> <xs:sequence> <xs:element minOccurs="1" name="code" type="xs:string"/> <xs:element minOccurs="1" name="startDate" type="xs:date"/> <xs:element minOccurs="0" name="endDate" type="xs:date"/> <xs:element minOccurs="0" name="ssn" type="xs:long"/> <xs:any namespace="##other" processContents="lax"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="persistent"> <xs:sequence> <xs:element minOccurs="0" name="created" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </definitions> Пример запроса: < getLastUpdates xmlns=”http://nsi.gosuslugi.ru/rev111111”> < componentCode>TestComponent</ componentCode> < lastSsn>0</ lastSsn> </ getLastUpdates> Пример ответа: < response xmlns=”http://nsi.gosuslugi.ru/rev111111”> < status>SUCCESS</ status> < lastUpdates> < lastSsn>9</ lastSsn> < remainder>0</ remainder> < elementRevision> < created>2012-02-25T20:51:13.959+03:00</ created> < code>111</ code> < startDate>2012-01-01T00:00:00+03:00</ startDate> < endDate>2012-01-01T00:00:00+03:00</ endDate> < ssn>8</ ssn> <q1:okato xmlns:q1="http://ensi.gosuslugi.ru/rev111111/okato"> <startDate:startDate xmlns:startDate="http://ensi.gosuslugi.ru/rev111111">2012-0708T00:00:00.000+04:00</startDate:startDate> 15 <endDate:endDate xmlns:endDate="http://ensi.gosuslugi.ru/rev111111">2999-1231T23:59:59.000+00:00</endDate:endDate> <q1:okatoId> <q1:code>01001000000</q1:code> </q1:okatoId> <q1:name>Название 2</q1:name> <q1:part>1</q1:part> <q1:extData>111</q1:extData> <q1:description>Русские буквы 2</q1:description> <q1:revNo>1</q1:revNo> <q1:status>0</q1:status> </q1:okato> </ elementRevision> < elementRevision> < created>2012-02-25T20:51:14.065+03:00</ created> < code>111</ code> < startDate>2012-01-01T00:00:00+03:00</ startDate> < ssn>9</ ssn> <q1:okato xmlns:q1="http://ensi.gosuslugi.ru/rev111111/okato" > <startDate:startDate xmlns:startDate="http://ensi.gosuslugi.ru/rev111111">2012-0708T00:00:00.000+04:00</startDate:startDate> <endDate:endDate xmlns:endDate="http://ensi.gosuslugi.ru/rev111111">2999-1231T23:59:59.000+00:00</endDate:endDate> <q1:okatoId> <q1:code>01001000000</q1:code> </q1:okatoId> <q1:name>Название 2</q1:name> <q1:part>1</q1:part> <q1:extData>111</q1:extData> <q1:description>Русские буквы 2</q1:description> <q1:revNo>1</q1:revNo> <q1:status>0</q1:status> </q1:okato> </ elementRevision> </ lastUpdates> </ response> 16 6 МЕТОДЫ ВЗАИМОДЕЙСТВИЯ ПОТРЕБИТЕЛЕЙ С ЕСНСИ ДЛЯ 6.1 Общие сведения Операции, обеспечиваемые ЕСНСИ для Потребителей: Операции обеспечиваемые ЕСНСИ: Поиск и получение характеристик компонента. Поиск и получение характеристик ревизии определённого компонента: − Поиск всех ревизий компонента НСИ. − Поиск ревизии компонента НСИ, актуальной на указанную дату. − Поиск последней активной ревизии компонента НСИ. Получение заданной (определённой) ревизии элемента указанного компонента по состоянию на заданную дату: − Поиск всех ревизий элемента компонента НСИ. − Поиск ревизии элемента компонента НСИ, актуальной на указанную дату. − Поиск последней активной ревизии элемента компонента НСИ. Получение обновлений или реплики данных компонента НСИ. 6.2 Поиск компонента (findComponent) Общие положения: ЕСНСИ хранит Код каждого компонента НСИ. Код компонента НСИ не может изменяться на всех этапах жизненного цикла компонента НСИ. Операция позволяет находить компоненты НСИ по коду. Параметры: Код компонента НСИ, текст, необязательный (componentCode). Условия обработки запроса: При указании кода компонента: − В случае наличия совпадений по коду компонента (в том числе частичного) в ЕСНСИ, Система вернёт найденный компонент и все его ревизии; − Если указанный компонент не найден ЭБ вернёт пустой ответ. При отсутствии кода компонента в запросе ЭБ вернёт список всех компонентов зарегистрированных в Системе. Примеры запроса: 17 <!-- поиск конкретного компонента --> <findComponent xmlns=”http://ensi.gosuslugi.ru/rev111111”> <componentCode>OKATO</componentCode> </findComponent> <!-- поиск всех зарегистрированных компонентов --> <findComponent xmlns=”http://ensi.gosuslugi.ru/rev111111”/> Примеры ответа: <!-- указанный компонент не найден или в системе нет ни одного зарегистрированного компонента --> <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>success</status> </response> <!-- указанный компонент найден --> <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>success</status> <component> <code>OKATO</code> <component> </response> <!-- найдено несколько компонентов --> <ns2:response> <ns2:status>SUCCESS</ns2:status> <ns2:component> <ns2:created>2012-02-21T19:52:16.735+04:00</ns2:created> <ns2:code>ОКАТО</ns2:code> <ns2:revisions/> </ns2:component> <ns2:component> <ns2:created>2012-02-22T16:10:57.224+04:00</ns2:created> <ns2:code>КЛАДР</ns2:code> <ns2:revisions/> </ns2:component> </ns2:response> <!-- произошёл сбой при обработке запроса --> <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>failure</status> <errorMessage>Описание ошибки</errorMessage> 18 </response> 6.3 Поиск и получение ревизии компонента (findComponentRevision) Общие положения: Структура компонента НСИ определяется отдельно для каждой его ревизии (версии). Операция позволяет находить и получать ревизии компонента НСИ. Параметры: Код компонента НСИ, текст (componentCode). Дата актуальности ревизии, дата, необязательный (date). Условия обработки запроса: В случае наличия искомого кода компонента в ЕСНСИ, Система вернёт найденную ревизию компонента. В случае если компонент НСИ с указанным кодом не зарегистрирован в Системе, будет передан пустой ответ (не содержащий ни одной ревизии компонента). При указании даты, в ответ будет передана ревизия компонента, актуальная на указанную дату (в случае наличия таковой ревизии). Пример запроса: <!-- поиск всех ревизий компонента --> <findComponentRevision xmlns=”http://ensi.gosuslugi.ru/rev111111”> <componentCode>OKATO</componentCode> </findComponentRevision> <!-- поиск действующей ревизии компонента на указанную дату --> <findComponentRevision xmlns=”http://ensi.gosuslugi.ru/rev111111”> <date>2012-01-01</date> <componentCode>OKATO</componentCode> </findComponentRevision> Пример ответа: <!-- ЭБ не нашёл ревизии на указанную дату, для компонента не опубликовано ни одной ревизии или же не указанного компонента не существует --> <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>success</status> </response> 19 <!-- ЭБ нашёл ревизии компонента --> <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>success</status> <componentRevision> <name>Справочник ОКАТО</name> <description> Расширенное описание компонента</description> <startDate>2012-01-01</startDate> <endDate>2013-01-01</endDate> <xsd><![CDATA[<?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" targetNamespace="http://ensi.gosuslugi.ru/okato" xmlns:okato="http://ensi.gosuslugi.ru/okato" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Okato" type="okato:OkatoType"/> <xs:complexType name="OkatoType"> <xs:sequence> <xs:element type="xs:string" name="code"/> <xs:element type="xs:string" name="name"/> </xs:sequence> </xs:complexType> </xs:schema>]]> </xsd> </componentRevision> </response> 6.4 Получение ревизии элемента компонента (findElementRevision) Общие положения: ЭБ предоставляет содержимое найденной ревизии элемента в том виде, в котором оно было опубликовано, иными содержимого не производится ни в каком случае. Параметры: Код компонента НСИ, текст (componentCode). Код элемента, строка (code). Дата актуальности, дата, необязательный (date). Условия обработки запроса: При указании даты: 20 словами модификация − Если имеется ревизия элемента компонента НСИ активная на указанную дату, будет выдана соответствующая ревизия элемента. − Если указанная дата меньше даты начала действия ревизии компонента будет выдано сообщение «Could not find actual component revision corresponding to component [Название компонента] at [Дата]!» Если дата не указана, будет выдан пустой ответ. Характеристики ответа: На каждую ревизию элемент указывается следующая информация: − Дата начала действия ревизии элемента. − Дата конца действия ревизии элемента. − Дата создания ревизии элемента. − НСС, соответствующий изменению элемента. − Содержимое ревизии элемента. Пример запроса: <findElementRevision xmlns=”http://ensi.gosuslugi.ru/rev111111”> <!-- бизнес-идентификатор элемента --> <code>15401000000</code> <view>default</view> <date>2012-02-01</date> <componentCode>OKATO</componentCode> </findElementRevision> Пример ответа: <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>success</status> <elementRevision> <code>15401000000</code> <startDate>2012-02-01</startDate> </elementRevision> <!-- содержимое элемента справочника --> <Okato xmlns="http://ensi.gosuslugi.ru/okato"> <code>15401000000</code> <name>Москва</name> </Okato> </response> <!-- элемент не существует или был аннулирован --> 21 <response xmlns=”http://ensi.gosuslugi.ru/rev111111”> <status>success</status> </response> 6.5 Получение обновлений и реплики (getLastUpdates) Общие положения: ЭБ предоставляет возможность запрашивать и получать обновления данных по элементам конкретного компонента НСИ. В ответ на запрос передается перечень ревизий элементов. Количество элементов, отдаваемых за один раз, ограничено настройками Системы. Ограничение может быть индивидуально для каждого конкретного компонента НСИ (ревизии компонента НСИ). Параметры: Код компонента НСИ, текст (componentCode). Номер состояния системы, после которого необходимо получать обновления, число (lastSsn). Характеристики ответа: Оставшееся количество ревизий элементов после выданного перечня (число) [remainder]. Если в данном элементе значение 0, то не имеется более обновлений с заданными критериями, иначе обновления есть и необходимо обращаться ещё для получения следующего пакета. На каждую ревизию элемент указывается следующая информация: − Дата начала действия ревизии элемента. − Дата конца действия ревизии элемента. − Дата создания ревизии элемента. − НСС, соответствующий изменению элемента. − Код элемента. − Содержимое ревизии элемента в соответствии указанного варианта предоставления данных. Описание типов объектов: <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="getLastUpdates"> 22 <xs:complexContent> <xs:extension base="tns:request"> <xs:sequence> <xs:element name="componentCode" type="xs:string"/> <xs:element name="lastSsn" type="xs:long"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="lastUpdates"> <xs:sequence> <xs:element minOccurs="0" name="lastSsn" type="xs:long"/> <xs:element minOccurs="0" name="remainder" type="xs:long"/> <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:elementRevision"/> </xs:sequence> </xs:complexType> <xs:complexType name="elementRevision"> <xs:complexContent> <xs:extension base="tns:persistent"> <xs:sequence> <xs:element minOccurs="1" name="code" type="xs:string"/> <xs:element minOccurs="1" name="startDate" type="xs:date"/> <xs:element minOccurs="0" name="endDate" type="xs:date"/> <xs:element minOccurs="0" name="ssn" type="xs:long"/> <xs:any namespace="##other" processContents="lax"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="persistent"> <xs:sequence> <xs:element minOccurs="0" name="created" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </definitions> Пример запроса: < getLastUpdates xmlns=”http://nsi.gosuslugi.ru/rev111111”> < componentCode>TestComponent</ componentCode> < lastSsn>0</ lastSsn> 23 </ getLastUpdates> Пример ответа: < response xmlns=”http://nsi.gosuslugi.ru/rev111111”> < status>SUCCESS</ status> < lastUpdates> < lastSsn>9</ lastSsn> < remainder>0</ remainder> < elementRevision> < created>2012-02-25T20:51:13.959+03:00</ created> < code>111</ code> < startDate>2012-01-01T00:00:00+03:00</ startDate> < endDate>2012-01-01T00:00:00+03:00</ endDate> < ssn>8</ ssn> <q1:okato xmlns:q1="http://ensi.gosuslugi.ru/rev111111/okato"> <startDate:startDate xmlns:startDate="http://ensi.gosuslugi.ru/rev111111">2012-0708T00:00:00.000+04:00</startDate:startDate> <endDate:endDate xmlns:endDate="http://ensi.gosuslugi.ru/rev111111">2999-1231T23:59:59.000+00:00</endDate:endDate> <q1:okatoId> <q1:code>01001000000</q1:code> </q1:okatoId> <q1:name>Название 2</q1:name> <q1:part>1</q1:part> <q1:extData>111</q1:extData> <q1:description>Русские буквы 2</q1:description> <q1:revNo>1</q1:revNo> <q1:status>0</q1:status> </q1:okato> </ elementRevision> < elementRevision> < created>2012-02-25T20:51:14.065+03:00</ created> < code>111</ code> < startDate>2012-01-01T00:00:00+03:00</ startDate> < ssn>9</ ssn> <q1:okato xmlns:q1="http://ensi.gosuslugi.ru/rev111111/okato" > <startDate:startDate xmlns:startDate="http://ensi.gosuslugi.ru/rev111111">2012-0708T00:00:00.000+04:00</startDate:startDate> 24 <endDate:endDate xmlns:endDate="http://ensi.gosuslugi.ru/rev111111">2999-1231T23:59:59.000+00:00</endDate:endDate> <q1:okatoId> <q1:code>01001000000</q1:code> </q1:okatoId> <q1:name>Название 2</q1:name> <q1:part>1</q1:part> <q1:extData>111</q1:extData> <q1:description>Русские буквы 2</q1:description> <q1:revNo>1</q1:revNo> <q1:status>0</q1:status> </q1:okato> </ elementRevision> </ lastUpdates> </ response> 6.6 Уведомление об обновлении описания либо данных компонента НСИ (componentChanged) Общие положения: Метод позволяет уведомлять ЭБ ЕСНСИ об изменении данных компонентов НСИ. При передаче уведомлений данные изменений не передаются. Для получения изменений необходимо обратиться к электронным сервисам ИС Оператора компонента НСИ. Запросы, содержащие уведомления о событиях передаются согласно методическим рекомендациям СМЭВ версии 2.5.5. Параметры: Код компонента НСИ, текст (componentCode). Тип обновления, текст [metadata или data] (type). Пример запроса: < componentChanged xmlns=”http://ensi.gosuslugi.ru/rev111111”> <type>data</type> <componentCode>OKATO</componentCode> </ componentChanged> 25 6.7 Получение неверсионной реплики (getSnapshot) Общие положения: ЭБ предоставляет возможность запрашивать и получать срез данных конкретного компонента НСИ, действующий на текущий день. В ответ на запрос постранично передается перечень ревизий элементов. Количество элементов, отдаваемых за один раз, ограничено настройками Системы. Параметры: Код компонента НСИ, текст (componentCode). Размер страницы (pageSize). Дата актуальности (actualDate). Характеристики ответа: На каждую ревизию элемент указывается следующая информация: − SSN соответствующий изменению. − Код элемента. − Дата начала действия ревизии элемента. − Дата окончания действия ревизии элемента (не обязательное). − Дата фактического создания записи. − Содержимое ревизии элемента. Пример запроса: <rev1:getSnapshot> <rev1:componentCode>КЛАДЭ.ОСН</rev1:componentCode> <rev1:lastSsn>0</rev1:lastSsn> <rev1:pageSize>100</rev1:pageSize> <rev1:actualDate>2012-08-20</rev1:actualDate> </rev1:getSnapshot> Пример ответа: <nsi:response> <nsi:status>SUCCESS</nsi:status> <nsi:elementRevision> <nsi:created>2012-08-16T12:36:53.627+04:00</nsi:created> <nsi:code>33z55z66</nsi:code> <nsi:startDate>2012-07-30+04:00</nsi:startDate> <nsi:ssn>46630388</nsi:ssn> <ActualStatus ACTSTATID="0123456789" NAME="Ленина" xmlns:inc="http://www.w3.org/2004/08/xop/include" 26 xmlns:rev="http://smev.gosuslugi.ru/rev111111" xmlns:rev1="http://nsi.gosuslugi.ru/rev111111" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> </nsi:elementRevision> <nsi:elementRevision> <nsi:created>2012-08-16T12:37:20.226+04:00</nsi:created> <nsi:code>66z55z66</nsi:code> <nsi:startDate>2012-08-04+04:00</nsi:startDate> <nsi:ssn>46630391</nsi:ssn> <ActualStatus ACTSTATID="9876543210" NAME="Озерцово" xmlns:inc="http://www.w3.org/2004/08/xop/include" xmlns:rev="http://smev.gosuslugi.ru/rev111111" xmlns:rev1="http://nsi.gosuslugi.ru/rev111111" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> </nsi:elementRevision> </nsi:response> 6.8 Получение обновлений неверсионной реплики (getNewEvents) Общие положения: ЭБ предоставляет возможность запрашивать и получать обновления данных по элементам конкретного компонента НСИ. В ответ на запрос передается перечень ревизий элементов добавленных за запрошенный период, что по факту соответствует событиям в системе на рассматриваемый момент. В ответ передаются все события произошедшие с момента последнего обращения (параметр входящего запроса) и до вчерашнего дня включительно. Изменения произошедшие после момента последнего обращения но потерявшие актуальность к прошедшему дню включаются в ответ. Параметры: Код компонента НСИ, текст (componentCode). Последняя дата обращения (fromDate). Последний SSN (lastSsn). Количество элементов на страницу, (pageSize). Характеристики ответа: На каждую ревизию элемент указывается следующая информация: − SSN соответствующий изменению. 27 не − Код элемента. − Дата начала действия ревизии элемента. − Дата окончания действия ревизии элемента (не обязательное). − Дата фактического создания записи. − Содержимое ревизии элемента. Пример запроса: <rev1:getNewEvents> <rev1:componentCode>КЛАДЭ.ОСН</rev1:componentCode> <rev1:lastSsn>0</rev1:lastSsn> <rev1:pageSize>10</rev1:pageSize> <rev1:fromDate>2001-08-20</rev1:fromDate> </rev1:getNewEvents> Пример ответа: <nsi:response> <nsi:status>SUCCESS</nsi:status> <nsi:elementRevision> <nsi:created>2012-08-16T12:36:53.627+04:00</nsi:created> <nsi:code>33z55z66</nsi:code> <nsi:startDate>2012-07-30+04:00</nsi:startDate> <nsi:ssn>46630388</nsi:ssn> <ActualStatus ACTSTATID="0123456789" NAME="Ленина" xmlns:inc="http://www.w3.org/2004/08/xop/include" xmlns:rev="http://smev.gosuslugi.ru/rev111111" xmlns:rev1="http://nsi.gosuslugi.ru/rev111111" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> </nsi:elementRevision> <nsi:elementRevision> <nsi:created>2012-08-16T12:37:20.226+04:00</nsi:created> <nsi:code>66z55z66</nsi:code> <nsi:startDate>2012-08-04+04:00</nsi:startDate> <nsi:ssn>46630391</nsi:ssn> <ActualStatus ACTSTATID="9876543210" xmlns:inc="http://www.w3.org/2004/08/xop/include" xmlns:rev="http://smev.gosuslugi.ru/rev111111" xmlns:rev1="http://nsi.gosuslugi.ru/rev111111" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> </nsi:elementRevision> </nsi:response> 28 NAME="Озерцово" 6.9 Получение перечня аннулированных элементов неверсионных данных (getExpiredElements) Общие положения: ЭБ предоставляет возможность запрашивать и получать перечень аннулированных элементов конкретного компонента НСИ. В ответ на запрос передается перечень ревизий элементов с признаком аннулирования, что по факту соответствует событиям в системе на рассматриваемый момент. В ответ передаются все события аннулирования произошедшие с момента последнего обращения (параметр входящего запроса) и до вчерашнего дня включительно. Параметры: Код компонента НСИ, текст (componentCode). Последняя дата обращения (fromDate). Последний SSN (lastSsn). Количество элементов на страницу, (pageSize). Характеристики ответа: На каждую ревизию элемент указывается следующая информация: − SSN соответствующий изменению. − Код элемента. − Дата начала действия ревизии элемента. − Дата окончания действия ревизии элемента (не обязательное). − Дата фактического создания записи. − Содержимое ревизии элемента. Пример запроса: <rev1:getNewEvents> <rev1:componentCode>КЛАДЭ.ОСН</rev1:componentCode> <rev1:lastSsn>0</rev1:lastSsn> <rev1:pageSize>10</rev1:pageSize> <rev1:fromDate>2001-08-20</rev1:fromDate> </rev1:getNewEvents> Пример ответа: <nsi:response> <nsi:status>SUCCESS</nsi:status> 29 <nsi:elementRevision> <nsi:created>2012-08-16T12:36:53.627+04:00</nsi:created> <nsi:code>33z55z66</nsi:code> <nsi:startDate>2012-07-30+04:00</nsi:startDate> <nsi:ssn>46630388</nsi:ssn> <ActualStatus ACTSTATID="0123456789" xmlns:inc="http://www.w3.org/2004/08/xop/include" xmlns:rev="http://smev.gosuslugi.ru/rev111111" xmlns:rev1="http://nsi.gosuslugi.ru/rev111111" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> </nsi:elementRevision> <nsi:elementRevision> NAME="Ленина" <nsi:created>2012-08-16T12:37:20.226+04:00</nsi:created> <nsi:code>66z55z66</nsi:code> <nsi:startDate>2012-08-04+04:00</nsi:startDate> <nsi:ssn>46630391</nsi:ssn> <ActualStatus ACTSTATID="9876543210" NAME="Озерцово" xmlns:inc="http://www.w3.org/2004/08/xop/include" xmlns:rev="http://smev.gosuslugi.ru/rev111111" xmlns:rev1="http://nsi.gosuslugi.ru/rev111111" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> </nsi:elementRevision> </nsi:response> 30