Edit Document - Федеральный информационный фонд по

advertisement
Справка
Типовой протокол автоматической передачи сведений о результатах
поверки средств измерений в Федеральный информационный фонд
1. Общие сведения
Типовой протокол автоматической передачи сведений о результатах
поверки средств измерений реализован в рамках информационной системы
автоматического обмена данными о поверках средств измерений «ИС
Поверки-Автомат» (далее - Система).
Функциональное назначение системы – автоматический обмен
данными с информационными системами организаций-поверителей средств
измерений с автоматической обработкой данных.
Эксплуатационное назначение системы – программа представляет
собой серверную часть информационной системы Федерального
информационного фонда по обеспечению единства измерений.
Клиентская часть системы разрабатывается организацией-поверителем.
Передача данных реализована на основе протокола обмена
структурированными сообщениями SOAP с использованием протокола
прикладного уровня HTTPS с шифрованием на основе протоколов SSL (TLS).
2. Структурная схема
Рисунок 1. Структурная схема системы
По запросу клиентской части модуль первичной обработки
осуществляет прием данных о поверках. При этом производится первичная
обработка с целью выявления информации с некорректными типами данных.
В базе данных сохраняется следующая информация:
 Обобщенные результаты первичной обработки данных.
 Корректные данные о поверках.
 Данные о поверках, содержащие информацию с некорректными
типами данных
Модуль вторичной обработки данных обеспечивает проверку
загруженной информации на соответствие критериям корректности. Записи,
не соответствующие критериям корректности, переносятся в отдельное
хранилище и после передаче клиентской части удаляются. После приведения
информации к корректному виду, информация повторно передается
клиентом в систему в составе нового пакета.
По запросу клиентской части модуль передачи служебной информации
передает обобщенную информацию о результатах загрузки и данные о
некорректных записях.
Реализована возможность передачи клиенту информации о ТСИ в виде
файла с целью обновления информации в ИС организации-поверителя.
Передача информации о ТСИ осуществляется по запросу клиентской части.
С периодичностью, установленной заказчиком, модуль копирования
осуществляет публикацию информации в базе данных Федерального
информационного фонда по обеспечению единства измерений.
3. Выполняемые функции
1. Идентификация информационных систем организаций-поверителей.
Осуществляется путем использования данных аутентификации
(логин-пароль).
2. Обмен данными по запросам клиента на основе протокола обмена
структурированными
сообщениями
в
распределённой
вычислительной среде SOAP с использованием протокола
прикладного уровня HTTPS. При передаче данных осуществляется
шифрование данных на основе протокола SSLv3 (TLSv1) шифр
AES256-SHA. Реализованы следующие потоки данных:
 Получение данных о результатах поверок от информационных
систем организаций-поверителей. Данные от клиентской части
системе передаются по запросу клиента.
 Формирование ответа информационной системе организацииповерителя о результатах приема и обработки данных, а также о
некорректных данных. Данные от системы к клиентской части
передаются по запросу клиента.
 Передача данных о ТСИ для обновления в ИС организацииповерителя. Данные передаются по запросу клиента в виде файла
формата XML (формат файла в Приложении №2).
 Формирования ответа информационной системе организацииповерителя обо всех ранее полученных результатах поверок со
статистической информацией, в т.ч. о дате публикации на
Федеральном Фонде. Данные от системы к клиентской части
передаются по запросу клиента.
 Удаление данных о поверках, не опубликованных на Федеральном
Фонде. Данные удаляются по запросу клиента.
3. Автоматическая обработка и проверка данных на корректность с
сохранением статистических данных. Входные данные после приема
проверяются на корректность по следующим критериям:
 Регистрационный номер должен соответствовать номеру в
Госреестре. Регистрационный номер должен быть обязательно
заполнен
 Должны быть заполнены все поля, обязательные для заполнения.
 Дата поверки не должна превышать периода, установленного
оператором (исключается внесение данных задним числом более
установленного периода).
 Данные не должны дублироваться в текущем цикле передачи
данных.
 Данные не должны дублироваться с данными, переданными в
предыдущих циклах передачи данных.
 Данные не должны дублироваться с информацией, внесенной в
ручном и пакетном режимах.
Некорректные данные возвращаются клиенту по его запросу вместе с
обобщенными результатами обработки, после чего удаляются из базы
данных. После исправления данных, клиент может передать
информацию повторно в составе нового пакета данных.
3. Автоматическое оповещение оператора и организации–поверителя по
электронной почте об ошибках при обработке.
4. Автоматическая публикация корректных данных на портале
Федерального информационного фонда по обеспечению единства
измерений.
5. Возможность просмотра журнала результатов обработки данных на
стороне сервера оператора ответственными лицами организацииповерителя и оператора с использованием веб-интерфейсов.
4. Организация входных данных
1. Входные
данные
должны
обеспечивать
идентификацию
информационной системы организации-поверителя. В качестве
идентификатора используется GUID, переданный системой клиенту в
процессе аутентификации (функция LOGIN).
2. Входные данные должны передаваться в формате XML.
3. Входные данные должны обеспечивать построчную идентификацию. В
качестве идентификатора используются GUID строк (поверок),
присвоенный клиентом.
4. Входные данные о поверках передаются пакетами. Каждый пакет
содержит от 1 до 10000 поверок. В Системе каждому пакету
присваивается GUID, фиксируется время передачи, количество
переданных поверок, после обработки вычисляется количество
корректных и некорректных входных данных.
Структура входных данных представлена в таблице 1.
Таблица 1. Структура входных данных
Наименование поля
GUIDp
Тип
Требования к
данных заполнению
обязательно
текст
обязательно
modific
текст
не обязательно
num_zav
текст
обязательно
date_v
текст
обязательно
date_pov
дата
обязательно
num_svidet
текст
обязательно
name_s_pov
текст
не обязательно
godn
текст
обязательно
ngosreestr_tsi
Назначение поля
Пример
значения
Примечание
идентификатор
строки
41160-09
Регистрационный
номер типа средств
измерения
Модификация
АВТОТЕСТсредства измерения 01.03ЛТК
Заводской номер
16917
средства измерения
Год выпуска средства 2011
измерения
19.04.2013
Дата поверки
средства измерения или 2012-1010
Номер
545
свидетельства о
поверке
Сведения о
ПГС ТУ 6-212956-92
средствах поверки
РМ-А-0,063
№0857674
МО-11201
№991
1
Пригодность
по
результатам
поверки
Регистрационн
ый номер типа
СИ в Госреестре
Для СИ без
номера = б/н
Оборудование,
методики,
использовавшиеся
для поверки
1 - пригоден,
0 - непригоден
5. Организация выходных данных
1. Выходные данные обеспечивают идентификацию информационной
системы организации-поверителя.
2. Выходные данные передаются в формате XML.
3. Выходные данные обеспечивают построчную идентификацию.
4. Выходные данные имеют следующую иерархию:
 Заголовочная часть
5. В выходных данных передается обобщенная информация о результате
обработки данных:
 Идентификатор процесса.
 Дата и время поступления входных данных.
 Дата и время обработки входных данных.
 Информация о результатах обработки: корректно, некорректно (с
ошибками).
 Общее количество обработанных входных данных.
 Общее количество корректно обработанных входных данных.
 Общее количество некорректных входных данных
6. В случае поступления некорректных входных данных, дополнительно
должна передаваться информация, позволяющая идентифицировать
некорректные строки, а также вид ошибки данных.
Технические детали работы с Системой описаны в Приложении №1
Приложение 1
Технические данные для работы с системой
1. Процедура аутентификации в Системе
Входные данные:
 Имя пользователя
– строка
 Пароль
- строка
Выходные данные:

Истина или ложь
- если истина, то пользователь успешно аутентифицировался
в АСУП, если ложь – нет
Затем читается заголовок типа ISoapHeaders из интерфейса IPoverki методом GET в
переменную класса AuthHeader. В этой переменной клиент получает ключ сессии и время начала
сессии. Сессия является виртуальной, т.к. после запроса к серверу и получения ответа происходит
разрыв TCP-сессии. Тайм-аут TCP-сессии по умолчанию составляет 30 секунд, для увеличения
данного параметра клиент должен установить в запросе следующие опции:



INTERNET_OPTION_CONNECT_TIMEOUT
INTERNET_OPTION_SEND_TIMEOUT
INTERNET_OPTION_RECEIVE_TIMEOUT
Существует ограничение на продолжительность простоя в виртуальной сессии – 600 секунд, т.е.
если клиент не обращается к серверу в течение этого промежутка времени, то происходит
устаревание ключа виртуальной сессии. Для возобновления работы в системе клиент должен
пройти аутентификацию заново и получить новый ключ. При каждом запросе к серверу клиент в
переменной класса AuthHeader получает обновленное время виртуальной сессии, т.е. время таймаута устаревания ключа обнуляется.
2. Процедуры обращения к серверу должны при каждом запросе выполнять следующие
действия:
 Используется глобальная переменная класса AuthHeader или каждый раз создает
локальная переменная этого класса
 В этой переменной должен быть ключ текущей сессии и время последнего
обновления виртуальной сессии
 Вызывается метод SEND типа ISoapHeaders интерфейса IPoverki, в котором
передается инициализированная выше переменная класса AuthHeader
Таким образом, происходит авторизация пользователя с помощью ключа виртуальной
сессии. Одновременно обнуляется время тайм-аута виртуальной сессии.
Типы данных
AuthHeader
class(TSOAPHeader)
KeySession
string
TimeStamp
TDateTime
PoverkiList
GUIDt
string
Status
string
col_z
string
col_norma
string
col_err
string
datetime_z
string
datetime_ff
string
Poverka
GUIDp
string
ngosreestr_tsi
modific
string
string
Результат аутентификации
клиента и используется для
дальнейшей авторизации в
системе
Ключ сессии выдается клиенту
сервером при начале
виртуальной сессии
Дата и время, используется
для вычисления времени
простоя сессии и устаревания
ключа. Формируется сервером
при начале сессии и
обновляется при каждом
запросе клиента.
Список пакетных загрузок
поверок клиента в систему
Глобальный идентификатор
пакета загрузки поверок.
Формируется сервером при
выполнении функции
InsertPoverki.
Может принимать следующие
значения:
Грузится – загрузка пакета
началась и продолжается или
неудачная загрузка
Количество загруженных
поверок в пакете всего
Количество загруженных
поверок в пакете,
удовлетворяющих всем
требованиям системы
Количество загруженных
поверок в пакете, содержащих
ошибки
Дата и время загрузки пакета
поверок в систему
Дата и время публикации
пакета поверок в Федерально
Фонде
Структура одной поверки
Глобальный идентификатор
поверки. Формируется
клиентом. Должен быть
уникальным минимум в
рамках всех поверок клиента.
Номер в госреестре ТСИ
Модификация
num_zav
date_v
date_pov
num_svidet
name_s_pov
godn
string
string
string
string
string
string
aPoverka
Одномерный массив из
Poverka
aPoverkiList
Одномерный массив из
PoverkiList
Заводской номер
Дата выпуска
Дата поверки
Номер свидетельства
Наименование
Годен=1/ не годен = 0
 Функции системы
Наименование
Входные параметры
Выходные параметры
Результат
Алгоритм
Наименование
Входные параметры
Выходные параметры
Результат
Алгоритм
Наименование
Входные параметры
Выходные параметры
Результат
Алгоритм
Наименование
Входные параметры
Выходные параметры
Результат
Алгоритм
GetTSI
нет
TSoapAttachment
Файл в формате xml со справочными
данными ТСИ
На сервере каждую ночь формируется файл
в формате xml со справочными данными
ТСИ. При запросе в поток прикрепляется
этот файл и передается клиенту. Клиенту
нужно указать источник данных поток и
сохранить файл на локальный диск.
GetPoverkiList
нет
aPoverkiList – одномерный массив структур
типа PoverkiList
Файл в формате xml со справочными
данными ТСИ
На сервере каждую ночь формируется файл
в формате xml со справочными данными
ТСИ. При запросе в поток прикрепляется
этот файл и передается клиенту. Клиенту
нужно указать источник данных поток и
сохранить файл на локальный диск.
GetPoverkaErr
Глобальный идентификатор поверки GUIDp
Poverka
Одна поверка, имеющая идентификатор
GUIDp.
Запрос к таблице auto_error. Фильтр по
GUIDp и id_s in (select id_s from auto_sost
where GUIDuser=текущий клиент)
GetPoverkiErr
Глобальный идентификатор пакета поверок
GUIDt (доступен в результатах вызова
функции GetPoverkiList)
aPoverka
Массив поверок, загруженных клиентом
ранее. Пакет загрузки имеет идентификатор
GUIDt
Запрос к таблице auto_error. Фильтр по id_s
in (select id_s from auto_sost where
GUIDuser=текущий клиент and
GUIDt=@GUIDt)
Наименование
Входные параметры
Выходные параметры
Результат
Алгоритм
Наименование
Входные параметры
Выходные параметры
Результат
Алгоритм
InsertPoverki
aPoverka - массив
GUIDt
Происходит загрузка пакета поверок в
систему. Пакету присваивается GUIDt,
который передается клиенту.
В начале транзакции в таблицу auto_sost
вставляется новая строка с установленными
полями GUIDt, GUIDs, GUIDuser,
status=’Грузится’, DateTime_z=текущая дата
и время (начало транзакции)
Поочередно происходит вставка в таблицу
auto_load данных из массива, неудачные
добавления переносятся в таблицу
auto_error с указанием в поле rez_an
описания ошибки SQL
В конце транзакции таблица обновляется
таблица auto_sost в поле status=’Загружен’,
time_z=Текущая дата и время (окончание
транзакции), col_z=количество поверок
DeletePoverki
Глобальный идентификатор пакета поверок
GUIDt (доступен в результатах вызова
функции GetPoverkiList)
string
Удаляет пакет поверок клиента с
идентификатором GUIDt
Проверяется поле datetime_ff в таблице
auto_sost, если поле = NULL, то вызывается
процедура на сервере SQL
DelAutoSost(GUIDt, GUIDuser) и происходит
удаление пакета поверок в таблицах
auto_sost, auto_load, auto_error, auto_pub
Приложение №2
Формат файла ТСИ
<?xml version="1.0" encoding="utf-8"?>
<TSILIST>
<TSI>
<id_tsi>23925</id_tsi>
<ngosreestr>17225-98</ngosreestr>
<naimen>ТСИ-1</naimen>
<typesi>Тип-1</typesi>
<izgotov>Изготовлен-1 </izgotov>
<srok>01.05.2003</srok>
</TSI>
<TSI>
<id_tsi>23926</id_tsi>
<ngosreestr>17226-05</ngosreestr>
<naimen>ТСИ-2</naimen>
<typesi>Тип-2</typesi>
<izgotov>Изготовлен-2</izgotov>
<srok>01.07.2010</srok>
</TSI>
</TSILIST>
Download