Обработка файлов

advertisement
Спецификация требований для ПО загрузки
файлов с коммутационного оборудования
File Processing Framework,
Выпуск 1.0
Спецификация требований для ПО загрузки файлов
СОДЕРЖАНИЕ
Ведение .................................................................................................. 3
Назначение документа ............................................................................ 3
Функции продукта .................................................................................. 3
Общее описание ..................................................................................... 4
Глоссарий .............................................................................................. 4
Общий взгляд ......................................................................................... 4
Операционная среда ............................................................................... 5
Ограничения дизайна и реализации ......................................................... 5
Документация для пользователей ............................................................ 5
Функции системы ................................................................................... 5
Функциональные требования ................................................................... 5
Нефункциональные требования............................................................ 7
Требования к интерфейсам..................................................................... 10
Интерфейсы пользователей .................................................................... 10
Интерфейсы оборудования ..................................................................... 11
Версия 01.00
Стр. 1 из 12
Ведение
Назначение документа
Данная спецификация описывает функциональные и нефункциональные требования
к ПО (системе) для обработки файлов, получаемых преимущественно с
телекоммуникационного оборудования.
Все указанные требования относятся к выпуску 1.0.
Рабочее название проекта File Processing Framework (Система).
Функции продукта
act File Processing Framew ork
Предобработка
Логирование
Обработка
Постобработка
Конфигурирование
Система должна поддерживать следующие основные наборы функций:
1.
Предварительная обработка (предобработка или приемка файла): набор
процессов, которые исполняются с момента, когда Система узнает о наличии файла
(-ов) для обработки и до момента, когда система определяет формат файла и его
содержимое (см. ФТ-1.).
Примерами таких процессов могут служить следующие процессы:
a. Резервное копирование.
b. Валидация (без проверки внутреннего формата файла, например,
проверка контрольных сумм).
c. Разархивирование/расшифровка.
d. Уведомление заинтересованных сторон о поступлении файлов.
2.
Обработка (разбор принятых файлов и загрузка в BSS): набор процессов,
связанных с декодированием формата файла и операциями с его содержимым (см.
ФТ-2.).
Примерами таких процессов могут служить следующие процессы:
a. Валидация (проверка на соответствие внутреннему формату, на
полноту информации и корректности заполнения).
b. Загрузка записей из CDR-файлов в BSS (биллинговую систему).
c. Выборочная загрузка записей из CDR-файлов в BSS.
d. Статистический анализ файла.
e. Преобразование данных.
f. Перекодирование в другой формат.
3.
Постобработка (передача необходимой информации загруженных файлов из
базы данных BSS на требуемые ресурсы): набор процессов, исполняемых после
обработки (разбора, загрузки) файла до момента завершения работы с файлом (см.
ФТ-3.).
Примерами таких процессов могут служить следующие процессы:
a. Передача исходного (или трансформированного)
сервисам.
b. Уведомление об окончании обработки файлов.
c. резервное копирование.
файла
другим
Так же система должна поддерживать ряд вспомогательных процессов, связанных
с конфигурированием ее работы и логированием результатов:
4.
Конфигурирование (см. ФТ-4.).
a. Возможность удаленного конфигурирования.
b. Возможность загрузки конфигурации из CMDB/сервера конфигураций.
c. Возможность декларативного (с помощью xml и/или скриптовых
языков) изменения последовательности выполнения процессов в
рамках группы процессов.
d. Возможность изменения конфигурации на лету.
e. Возможность рестарта на лету.
f. возможность удаленного запуска/остановки.
5.
5.).
Логирование: запись отчетов всех действий по обработке файлов (см. ФТa. Возможность локальной/удаленной записи логов.
b. Возможность выборочной записи логов (по группе процессов, по
важность, серьезности, по типу файлов).
c. Возможность раздельного ведения error/performance/audit-логов.
d. Поддержка SNMP для отчетности о производительности.
Общее описание
Глоссарий
О-1.
Файл
–
файл,
сгенерированный
коммутационным
оборудованием,
информацию из которого необходимо загружать в базу данных BSS, для возможности
тарификации услуг связи (преимущественно), предоставленных абонентам.
О-2.
Ресурс для приема файлов – специальное место, доступное и известное
Системе (например, диск на сервере), на котором размещаются файлы для обработки
Системой.
О-3.
BSS – биллинговая система. Синоним – АСР (автоматизированная система
расчетов).
Общий взгляд
В настоящее время файлы с коммутационного оборудования обрабатываются
многочисленными программами–загрузчиками (около 50 шт.), реализованными в
виде исполняемых файлов. Каждая программа настроена на работу с файлами только
определенного формата и не может быть настроена на одновременную работу с
файлами нескольких форматов или с файлами одного и того же формата, но
расположенных на разных ресурсах для приема файлов.
Программный код существующих программ-загрузчиков в большинстве
случаев дублируется, но по некоторым причинам, например, из-за того, что
программы написаны в разное время и разными авторами, программный код
несколько варьируется. При появлении изменений в механизме работы с файлами
требуется вносить изменения в программный код каждой программы отдельно, при
этом, по причине того, что базовый код каждой программы может различаться,
требуется индивидуальный подход к отдельным программам-загрузчикам при
внесении изменений.
Разработка Системы планируется для создания единой платформы – File Processing
Framework – на базе которой должны реализовываться все приложения по обработке
файлов.
Готовая Система позволит:
1. Стандартизовать и унифицировать процесс обработки файлов, загружаемых в
систему BSS (а возможно, и в другие системы).
2. Упростить конфигурирование и администрирование процесса обработки
файлов.
3. Снизить затраты на сопровождение существующего программного кода для
обработки файлов.
Операционная среда
ОС-1.
ОС-2.
WinServer 2003, WinServer 2008, WinServer 2008 R2
NET Framework 4.0
Ограничения дизайна и реализации
ОДР-1. Документация системы по конструкции, коду и сопровождению должна
содержать следующие документы:
1. Диаграмму классов (в стандарте UML).
2. Описание интерфейсов.
3. Описание процессов.
4. Описание форматов:
a. Конфигурационных файлов.
b. log-файлов.
ОДР-2. Код системы должен соответствовать стандарту C# .NET 4.0
Документация для пользователей
ДП-1.
Документация для пользователей должна быть оформлена в виде связанных
wiki-страниц.
Функции системы
Функциональные требования
Перечень модулей внутри системы:
ФТ-1. Модуль приемки файлов. Осуществляет все действия по приему файлов,
поступивших на Ресурс для приема файлов.
ФТ-1.1. Модуль должен принимать информацию об изменениях в файловой
системе на Ресурсах для приема файлов каким-либо способом:
a. С помощью собственных механизмов сканирования Ресурсов для
приема файлов с настраиваемым интервалом времени (см. Модуль
настроек и конфигурирования системы).
b. В виде оперативных уведомлений от операционной системы об
изменениях в файловой системе на Ресурсах для приема файлов. После
чего, инициировать собственный механизм сканирования Ресурсов для
приема файлов.
ФТ-1.2. Модуль должен уметь сохранять поступившие на ресурсы файлы в
Системе, а копии этих файлов – на специальном ресурсе для Резервных
копий. Также Модуль должен удалять на этом Ресурсе устаревшие файлы.
Критерий удаления устаревших файлов должен определяться в
настройках Системы.
Настройки путей до всех используемых Системой ресурсов, а также
настройки структуры каталогов, которые Модуль должен автоматически
создавать при записи файла на ресурс, определяются Модулем настроек и
конфигурирования системы.
ФТ-1.3. Модуль должен уметь проводить процедуру первичной валидации для
поступивших на ресурсы файлов (без проверки внутреннего формата файла.
Например, только проверку контрольных сумм).
ФТ-1.4. После подтверждения валидности поступившего файла и по окончанию
всех операций по преобразованию файла (группы файлов) Модуль должен
уведомлять в режиме реального времени другие заинтересованные
(соучастные) Модули о поступлении нового файла (Модуль загрузки файлов,
Модуль логирования).
ФТ-2. Модуль обработки файлов. Осуществляет все действия по разбору и
загрузке файлов в BSS.
ФТ-2.1. Модуль должен получать уведомления от других Модулей о наличии
файлов
для
обработки.
Также
должна
быть
предусмотрена
функциональность, позволяющая Модулю самостоятельно определять
наличие файлов для обработки.
ФТ-2.2. Модуль должен проводить процедуру полной валидации файла,
принятого Модулем приемки файлов: определение и проверка внутреннего
формата файла, проверка полноты и коррекции информации в файле.
Критерии проверки должны быть настройками системы.
ФТ-2.3. Модуль должен извлекать информацию из файлов по схеме разбора,
настраиваемой для каждого формата файлов (см. Модуль настроек и
конфигурирования системы), и загружать эту информацию полностью,
выборочно, в исходном или преобразованном виде в BSS, в зависимости от
текущей конфигурации Системы (см. Модуль настроек и конфигурирования
системы).
ФТ-2.4. Модуль не должен загружать в BSS файлы с ошибочными записями.
Модуль должен сохранять такие файлы на специальном ресурсе для
Инвалидных файлов. Настройки путей до всех используемых Системой
ресурсов, а также настройки структуры каталогов, которые Модуль должен
автоматически создавать при записи файла на ресурс, определяются
Модулем настроек и конфигурирования системы.
ФТ-2.5. Модуль должен сохранять успешно загруженные файлы в Архиве
долгого хранения. Настройки путей до всех используемых Системой
ресурсов определяются Модулем настроек и конфигурирования системы.
ФТ-2.6. При незапланированных перерывах или сбоях в работе Системы,
необработанные (не до конца обработанные) файлы не должны потеряться.
При возобновлении работы Системы такие файлы должны попадать в
очередь на обработку.
ФТ-2.7. Модуль должен исключать повторные загрузки одних и тех же файлов
в BSS.
ФТ-2.8. Модуль должен исключать многократный процессинг одного и того же
файла (зацикливание) Например, в ситуациях, когда по каким-либо
причинам невозможно загрузить файл в BSS.
ФТ-2.9. Модуль должен сохранять в BSS дополнительную информацию о
файле. Перечень дополнительных полей должен быть настройкой в Системе.
ФТ-2.10. Модуль должен уметь уведомлять в оперативном режиме другие
соучастные Модули о результате разбора и загрузки файла в BSS (Модуль
постобработки, Модуль логирования).
ФТ-3. Модуль постобработки файлов. Осуществляет все действия по передаче
файлов, загруженных в BSS, на сторонние ресурсы или сервисы.
ФТ-3.1. Модуль должен получать уведомления от других Модулей о наличии
файлов
для
обработки.
Также
должна
быть
предусмотрена
функциональность, позволяющая Модулю самостоятельно определять
наличие файлов для обработки.
ФТ-3.2. Модуль должен сохранять файлы, загруженные в BSS, в Систему
Длительного Хранения. Настройки путей до всех используемых Системой
ресурсов определяются Модулем настроек и конфигурирования системы (см.
Модуль настроек и конфигурирования системы).
ФТ-3.3. Модуль должен быть наделен функциональностью, которая позволила
бы
передавать
файлы,
загруженные
в
BSS,
в
исходном
или
трансформированном виде, на сторонние ресурсы (например, на ресурс
файлов для ФСБ). Настройки путей и режимов передачи файлов до всех
используемых Системой ресурсов определяются Модулем настроек и
конфигурирования системы.
ФТ-4. Модуль настроек или конфигурирования Системы. Обеспечивает доступ
к конфигурационным параметрам для всех компонентов Системы для чтения и
записи (выборочно).
ФТ-4.1. Модуль должен быть наделен функциональностью чтения настроек
конфигураций Системы из СУБД, файла или другого возможного ресурса и
передачи этих настроек другим Модулям (по запросу).
ФТ-4.2. Модуль должен предоставлять возможность записи новых и изменения
существующих настроек Системы.
ФТ-4.3. Модуль должен уметь оперативно уведомлять другие соучастные
Модули об изменении настроек Системы (Модуль приемки файлов, Модуль
обработки файлов, Модуль Постобработки файлов).
ФТ-4.4. Должен быть определен единый интерфейс для обращения к Модулю
других Модулей Системы.
ФТ-5. Модуль логирования. Осуществляет запись отчетов всех действий по
работе Системы.
ФТ-5.1. Модуль должен получать уведомления от других Модулей о наличии
информации
для
записи.
Также
должна
быть
предусмотрена
функциональность, позволяющая Модулю самостоятельно определять
наличие информации для обработки.
ФТ-5.2. Модуль должен взаимодействовать со всеми Модулями Системы и
получать от них в режиме реального времени отчеты о состояние
выполняемых в Системе процессов.
ФТ-5.3. Модуль должен фильтровать поступающую информацию о работе
Системы, и, в зависимости от параметров информации (настройка Системы),
записывать ее на тот или иной ресурс (например, в СУБД, в файл и т.п.).
ФТ-5.4. Модуль должен быть наделен возможностями записи информации в
разных режимах (вся информация полностью, только ошибки и т.п.), исходя
из текущей конфигурацией Системы.
ФТ-5.5. Модуль должен позволять дополнять его различными механизмами
записи информации о работе системы (например, запись с поддержкой
SNMP-протокола).
ФТ-5.6. В случае невозможности записи отчетов в СУБД, Модуль должен уметь
записывать эту информацию в файл или иной ресурс для записи отчетов о
работе Системы.
ФТ-5.7. Модуль
должен
предоставлять
интерфейс
для
мониторинга
поступающей информации Администратором (см. интерфейс Мониторинга).
ФТ-5.8. Модуль должен быть снабжен механизмом отправки уведомлений о
событиях в Системе Администратору Системы через средства сервера, по
электронной почте или другой канал информирования (см. интерфейс
уведомлений).
Типы событий, о которых необходимо уведомлять, периодичность
отправки уведомлений, а также способы отправки должны быть настройками
Системы.
Нефункциональные требования
Общие
НТ-1. Система должна быть модульной.
НТ-2. В каждом Модуле должен быть независимый набор классов, представляющий в
совокупности интерфейс для обращения к функционалу Модуля.
НТ-3. Расширение функциональности Системы должно осуществляться путем
добавления новых Модулей (классов) без модификации существующих базовых
Модулей (классов). Допускаются использование механизмов динамической
загрузки и компиляции кода
НТ-4. При запуске какого-либо экземпляра программы должна осуществляться
проверка на уникальность запущенного экземпляра. Критерий проверки на
уникальность должен быть настраиваемой в Системе сущностью.
НТ-5. Система должна предоставлять функционал для обработки параметров
командной строки.
НТ-6. Система должна иметь встроенную систему обмена сообщениями между
запущенными экземплярами Системы.
НТ-7. Системе должна уметь реагировать на ситуации нарушения уникального
ключа. Выбор поведения Системы в такой ситуации должен быть настройкой
Системы.
Обработка файлов
НТ-8. Обработка файлов: обработка файлов в Системе должна вестись в несколько
потоков.
НТ-9. Обработка файлов: в Системе должна быть реализована возможность
обработки одним экземпляром программы однотипных файлов с разных
коммутаторов (с разным LOC) или с разных Ресурсов для приема файлов.
НТ-10.
Обработка файлов: размещение файлов с одинаковыми именами,
полученных с разных Ресурсов для приема файлов должно быть организованно в
разные каталоги хранения файлов.
Хранение файлов
НТ-11.
Для каталогов хранения файлов (Архив, Резервные копии, Инвалидные
файлы, Система длительного хранения) должна быть реализована гибкая система
механизмов формирования имен файлов и подкаталогов (например, по префиксам
и суффиксам для файлов, по дате модификации или обработки файлов, по пути
до Ресурса для приема файлов).
Логирование
НТ-12.
Логирование: процесс записи отчетов о работе Системы должен быть
возможен с распределением по уровням или категориям. В случаях записи отчета
по нескольким уровням Модуль логирования должен уметь вести параллельную
запись по нескольким уровням. Разделение на уровни в Системе должно быть
настраиваемой сущностью.
НТ-13.
Логирование: при записи отчетов о работе Системы (логирование) во
всех сообщениях должен четко указываться идентификатор источника (Модуля,
класса, потока) от которого получена записываемая информация.
Также должна быть указана следующая информация (в разумных
количествах1):
a. [логин@]база_данных
b. версия приложения
где
логин – логин пользователя для запуска программы;
база данных – наименование базы данных, с которой в данный момент
работает Система;
версия приложения – текущая версия Системы.
НТ-14.
Логирование: система должна обеспечивать вывод всех параметров
приложения считываемых из конфигурации (при начальном считывании и при
каждом последующем изменении параметров) в сообщения отчетов о работе
Системы. Если какой-то из параметров отсутствует, то это должно быть отражено,
даже если для него есть значение по умолчанию.
Требования к производительности
Требования к безопасности
ТБ-1. Система должна запрашивать параметры доступа для всех своих компонентов
при запуске или уметь считывать эти параметры из конфигурационного файла.
Параметры доступа в конфигурационном файле должны храниться в
зашифрованном виде.
1
Например, если для потока база данных одна и та же, достаточно упомянуть её один
раз.
Атрибуты качества ПО
АК-1. Система должна быть реализована в виде одной (единой) программы
(приложения) или сервиса.
Допускается наличие нескольких экземпляров (копий) программы, в случае
приложения. В случае сервиса – наличие двух исполняемых файлов: файл
сервиса и файл с GUI-приложением для управления сервисом (или набором
сервисов) и для мониторинга его (их) работы.
АК-2. Система должна работать по расписанию. Расписание должно являться
настройкой системы.
АК-3. Система должна принимать файлы со всех Ресурсов приема файлов.
АК-4. Система должна обрабатывать все форматы файлов, загружаемые в BSS.
АК-5. Система должна иметь удобные интерфейсы взаимодействия с Пользователем
(см. Интерфейсы пользователя).
АК-6. Для
настроек
конфигураций
Системы
должна
быть
предусмотрена
возможность хранения их в СУБД, в файле. Настройки должны подразделяться на
две группы: автосохраняемые параметры (интерфейс, логины и т.п.) и
статические настройки приложения (app.conf – read only для приложения,
app.rw.conf – read&write для приложения).
Для каждой группы настроек должно быть отдельное хранилище с отдельными
правами доступа.
Перечень настроек:
АК-6.1. Приемка файлов: данные о Ресурсах приема файлов (входные
каталоги).
АК-6.2. Приемка файлов: данные о частоте сканирования файлов с
ресурсов приема файлов.
АК-6.3. Обработка файлов: данные о местах загрузки и режимах
загрузки информации из файлов в BSS.
АК-6.4. Обработка файлов: данные о ресурсах складирования файлов:
Архив, Резервные копии, Инвалидные файлы, Система длительного
хранения и прочие необходимые для работы системы каталоги. В том
числе структура подкаталогов для записи на перечисленные ресурсы
(например, наименование папки, содержащее дату записи файла в
папку/дата формирования файла/).
АК-6.5. Обработка файлов, Приемка файлов: критерии, правила
хранения файлов на перечисленных выше ресурсах (например,
удаление файла по истечению срока давности создания файла).
АК-6.6. Обработка файлов: данные о частоте reconnect-а к базе данных.
АК-6.7. Обработка файлов: данные о схемах разбора всех форматов
файлов, с которыми будет работать Система, связь формата файла и
DLL для обработки файла.
АК-6.8. Обработка файлов: критическое время обработки файла.
АК-6.9. Обработка файлов: критерии проверки корректности полей
файлов, загружаемых в BSS (например, соответствие размеров
значений на соответствие размерам полей в базе данных BSS).
АК-6.10. Обработка файлов: поля дополнительной информации о файле,
которая должна быть записана в базу данных BSS:
a. LOC (коммутатор)
b. Дата модификации файла
c. Дата обработки файла
d. Статус обработки файла (не загружен/загружен)
e. Контрольная сумма (MD5, SHA)
f. Размер файла
g. Ресурс приема файла
h. Процент обработки | смещение в файле | порядковый номер записи
АК-6.11. Логирование: данные о путях к ресурсам записи информации о
работе Системы, структуре подкаталогов для записи эти ресурсы.
АК-6.12. Логирование: зависимость ресурсов для записи информации о
работе Системы, полученной от Модулей, от параметров информации:
a. КАКИЕ КРИТЕРИИ?
АК-6.13. Логирование: режимы записи информации:
a. Полная запись информации полученных отчетов: включает в себя все
записи.
b. Выборочная запись информации: по группе процессов, по важность
файла, по типу файла.
c. Раздельная запись информации: в разные файлы или таблицы в
зависимости от уровня или категории записываемой информации
(error/performance/audit).
АК-6.14. Логирование:
типы
событий,
для
которых
необходимо
отправлять уведомления.
АК-6.15. Логирование: периодичность отправки уведомлений для разных
типов событий.
АК-6.16. Логирование: механизм отправки уведомлений (через средства
сервера, по электронной почте).
АК-6.17. Логирование: список подписчиков на уведомления с привязкой к
экземплярам программы, а также к конкретным коммутаторам.
АК-6.18. App.Title (свойство, хранящее заголовок приложения или
системное имя сервиса).
АК-6.19. MainForm.Caption (заголовок главного окна или отображаемое
имя сервиса).
АК-6.20. App.Hint (всплывающая подсказка у иконки в области
уведомлений).
АК-6.21. Интерфейсные параметры (например, логины в базу данных).
АК-6.22. Критерий проверки на уникальность запущенного экземпляра
программы (например, проверка уникальности пути до приложения,
проверка уникальности путей до обрабатываемых файлов, проверка
уникальности коммутатора, с которого обрабатываются файлы).
АК-6.23. Расписание работы программы (например, периоды активности
приложения).
АК-7. Система должна автоматически восстанавливать работу при сбое и
продолжать работу с того места, на котором закончила работать до сбоя.
Периодичность reconnect-а к базе данных BSS должна быть настройкой Системы.
АК-8. Система должна обрабатывать ситуации interrupted (прерванные операции):
прервать обработку файла, закончить все открытые транзакции на некотором
месте, а при следующем запуске по возможности возобновить обработку этого же
файла с того места, на котором произошла остановка, или начать обработку
заново.
Требования к интерфейсам
Интерфейсы пользователей
ПИ-1. Для Системы должны быть синхронизированы App.Caption и MainForm.Caption.
ПИ-2. Интерфейс мониторинга работы системы. Система должна быть снабжена
интерфейсом взаимодействия с Администратором системы, в котором в режиме
реального времени будут отображена подробная информация о всех процессах,
выполняемых системой.
В интерфейсе Мониторинга работы системы должны быть отображены следующие
разделы:
ПИ-2.1. Количество файлов, успешно загруженных в BSS за период.
ПИ-2.2. Количество файлов, записанных в хранилище Инвалидных
файлов за период.
ПИ-2.3. Процентный показатель обработки файла (для случаев долгой
обработки файла). Критическое время обработки файла должно быть
настройкой Системы.
ПИ-2.4. Объем использования памяти.
ПИ-2.5. Перечень используемых (задействованных) DLL.
ПИ-2.6. Показания производительности работы Системы.
Перечень разделов и отображаемая в них информация должны быть настройками
системы.
ПИ-3. Интерфейс уведомлений. Система должна быть снабжена механизмом
оперативного уведомления Администратора о событиях в Системе:
Для механизма уведомлений должны быть реализованы следующие
возможности:
ПИ-3.1. Подписка пользователей на уведомления о незагруженных
файлах с привязкой к конкретным коммутаторам (LOC).
ПИ-3.2. Выбор механизма отправки уведомлений подписчику.
ПИ-4. Интерфейс управления настройками системы. Система должна быть
снабжена интерфейсом управления Администратора настройками Системы.
ПИ-5. Интерфейс для работы с логами. Система должна быть снабжена
интерфейсом для работы Администратора с логами, записанными Системой.
Интерфейсы оборудования
Программные интерфейсы
НТ-15.
Все классы, реализующие процессы внутри Модулей должны
основываться на единых интерфейсах.
НТ-16.
Взаимодействие между Модулями Системы должно быть реализовано на
основе единых интерфейсов.
НТ-17.
Система
должна
иметь
интерфейс
для
добавления
новой
функциональности в Систему.
Интерфейсы передачи данных
Download