Проект миграции телеком ориентированной информации о платежах клиентов из одной системы в другую с комплексной трансформацией структуры данных
Краткое описание проекта: в рамках работы на проекте нами был разработан и внедрен в уже существующую систему компонент по миграции телеком ориентированной информации о платежах клиентов из одной системы в другую с комплексной трансформацией структуры данных. Сложность работ состояла в анализе и преобразовании формата данных, и их миграции в систему.
Данное приложение представляет собой компонент для переноса и преобразования биллинговых данных о клиентах из устаревшего приложения в стабильно работающую систему в области индустрии телекоммуникаций.
Перед командой стояла задача разработать новый компонент и адаптировать существующую систему под новые форматы файлов, содержащие бизнес-данные о клиентах.
Основной функцией компонента является обработка данных следующих бизнес-областей:
- Финансовая информация в области телекоммуникации,
- Детализированная информация о структуре компании.
Также выполнена интеграция данного компонента с существующей инфраструктурой заказчика.
Техническое описание проекта:
Приложение включает несколько конвертеров для разных форматов файлов:
- 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-проект