Существующая информационная система для управления деятельностью ФНС и автоматизации процессов налогового администрирования была создана более десяти лет назад. За время эксплуатации система морально и технологически устарела и потребовала замены. Предстояло разработать новое централизованное решение, которое поддерживало бы одновременную работу свыше 120 тыс. пользователей из всех налоговых инспекций России и обеспечивало обработку десятков терабайт данных, а кроме того, могло бы размещаться в частном облаке.
Генеральным подрядчиком на конкурсной основе был выбран ФГУП ГНИВЦ ФНС России, а для ускорения разработки было решено поручить исполнение отдельных частей проекта нескольким специализированным компаниям. Чтобы обеспечить целостность архитектуры будущей системы и повысить эффективность совместной работы, требовалось создать пакет базовых инструментов, единых для всей распределенной команды. Использование общих стандартизованных средств разработки помогло бы облегчить интеграцию, ускорить процесс создания системы и добиться лучшего соответствия прикладных подсистем заданным эксплуатационным характеристикам. Создание такого пакета базовых инструментов — специализированного архитектурного каркаса, учитывающего требования и задачи ФНС — было поручено компании TI Systems, уже имевшей опыт создания подобного пакета в проекте АИС «Налог 2 Москва», и филиалу ГНИВЦ в ПФО.
При выборе платформы разработки в числе возможных вариантов рассматривались предложения Oracle, IBM и других вендоров. Однако, поскольку ИТ-инфраструктура ФНС во многом построена на продуктах Microsoft, предпочтение было отдано Microsoft .NET Framework 4.0. Дополнительным аргументом стал тот факт, что и предшествующая информационная система основывалась на технологиях Microsoft, а значит, ИТ-специалисты, обладающие знанием предметной области ФНС, уже накопили опыт работы с этой платформой. Данные преимущества помогли бы снизить риски и уменьшить затраты на разработку и последующее администрирование системы. Кроме того, в реализации проекта активное участие принимали инженеры Microsoft Consulting Services.
Объединенная команда разработчиков создала специализированный пакет базовых инструментов под названием «Компоненты прикладной инфраструктуры» (КПИ). В качестве основы используются наборы функций Windows Communication Foundation (WCF) и другие библиотеки, входящие в состав Microsoft .NET Framework 4.0, а также инструментарий от компании Infragistics для создания визуальных интерфейсов.
К настоящему моменту в состав КПИ входят около 20 компонентов, которые образуют ядро архитектуры создаваемой информационной системы и содержат базовые функции взаимодействия прикладной и операционной систем, средства коммуникации между физически распределенными компонентами (унифицированный механизм клиент-серверного взаимодействия), интерфейс пользователя и управление доступом.
Дополнительно в КПИ была реализована мощная функциональность для создания решений класса BPM (Business Process Management), как полностью автоматических, так и с участием пользователей. Инструменты охватывают весь цикл автоматизации бизнес-процессов — от проектирования до исполнения их в системе, включая мониторинг и управление инфраструктурой исполнения бизнес-процессов, а также оповещение пользователей о событиях, требующих их внимания или выполнения определенных действий.
Сейчас инструментарий КПИ используют пять компаний-разработчиков информационной системы ФНС. Созданные ими три прикладные подсистемы с 2011 года находятся в промышленной эксплуатации. Параллельно, также на основе КПИ, разрабатывается еще около десяти прикладных подсистем, которые планируется ввести в опытную эксплуатацию к концу 2012 года.
Создание среды разработки отделено от создания прикладных систем, поэтому базовые инструменты разрабатываются системными программистами, обладающими достаточной квалификацией для решения низкоуровневых задач, а написание прикладных подсистем поручается тем, кто знаком с предметной областью ФНС. Такое разделение труда повышает продуктивность работы каждого члена проектной команды. Благодаря использованию типовых протестированных компонентов качество программного продукта оказывается на должной высоте, а сроки разработки сокращаются. Кроме того, системы, строящиеся на основе КПИ, готовы к развертыванию в виртуализированной среде или в облаке.