Проект миграции телеком ориентированной информации о платежах клиентов из одной системы в другую с комплексной трансформацией структуры данных
Описание проекта

Данное приложение представляет собой компонент для переноса и преобразования биллинговых данных о клиентах из устаревшего приложения в стабильно работающую систему в области индустрии телекоммуникаций.
Перед командой стояла задача разработать новый компонент и адаптировать существующую систему под новые форматы файлов, содержащие бизнес-данные о клиентах.
Основной функцией компонента является обработка данных следующих бизнес-областей:
- Финансовая информация в области телекоммуникации,
- Детализированная информация о структуре компании.
Также выполнена интеграция данного компонента с существующей инфраструктурой заказчика.
Техническое описание проекта
Приложение включает несколько конвертеров для разных форматов файлов:- XML-файлы, содержащие финансовую информацию о телекоммуникационных расходах компании,
- XLS-файлы, содержащие информацию о структуре компании.
Для обработки XML-файлов в многопоточной среде был выбран подход “конвейерной обработки данных” и реализовано несколько Pipeline Processor-ов. Для поиска необходимой информации в XML-файле используется специальный язык запросов XPath.
Выборка данных из XLS-файлов осуществляется с помощью Apache POI — популярной библиотеки от Apache Software Foundation.
Для хранения справочных данных используются JSON-файлы, которые конвертируются в Java-модель с помощью библиотеки Gson.
Каждый из конвертеров извлекает из исходного файла данные, преобразует их в специальную Java-модель и передает ее на последующую обработку.
Для интеграции компонента с инфраструктурой заказчика созданы дополнительные события и их обработчики в существующей системе.
C самого начала разработки весь код компонента покрывался Unit и Data Driven тестами, что позволило нам сделать процесс разработки нового функционала стабильным и быть уверенными, что наши изменения не повлияют на существующую систему. Написаны Load тесты для того, чтобы исключить возможные проблемы с памятью, отладить компонент на большом количестве загружаемых файлов, т.к. заказчик одновременно загружает более 25 000 файлов в многопоточной среде.
Технологии
Java, Maven, JPA(Hibernate), JDBC Connection, Spring, Quarz, JAXB, Xpath, Apache commons, Apache POI, Gson, JUnit, Data Driven Tests, SVN, XmlSpy, IntelliJ IDEA.Скриншоты
Что делали на проекте, наши обязанности
В ходе работы над приложением мы проделали большую работу по исследованию, реализации и непосредственно по интеграции компонента:- провели исследование нового формата файлов, проанализировали предоставленную информацию,
- сделали рефакторинг существующей системы,
- реализовали новый функционал, покрыли новый функционал модульными, Data Driven, нагрузочными и интеграционными тестами, провели тестирование на всех этапах разработки,
- создали документацию к проекту.
Процесс разработки был разбит на еженедельные спринты, в конце каждого спринта происходило демо с участием заказчика.
Особенности проекта
- Работа с распределенными англо- и русскоязычной командами.
- Существующая система не была адаптирована под использование новых форматов файлов.
- Высокое покрытие нового функционала тестами.
- Использовался итеративный подход к разработке: работа по методологии Scrum/Agile, ежедневные внутренние митинги, еженедельные демо заказчику, использование Jira для управления проектом, предоставления отчетности и ведения общения с заказчиком.
Результат проекта
- Реализован новый функционал и исправлены баги существующей системы.
- Создана документация для последующей поддержки приложения.
- Все фазы проекта были завершены успешно, за счёт использования DDT компонент был быстро внедрен в существующую систему и успешно работает.
Достижения компании на проекте
- Проведен рефакторинг существующей системы.
- Обнаружены и исправлены уязвимые места в существующей системе.
- Структурирована модель бизнес-объектов, что позволит добавлять поддержку новых форматов файлов за небольшой промежуток времени.
- На протяжении всего периода разработки нового функционала мы занимались багфиксингом существующих систем заказчика, и сделали этот процесс стабильным.
Свяжитесь с нами, чтобы обсудить Ваш IT-проект