En

JazzTeam Software Development Company

Agile Java Development

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

Краткое описание проекта

В рамках работы на проекте нами был разработан и внедрен в уже существующую систему компонент по миграции telecom ориентированной информации о платежах клиентов из одной системы в другую с комплексной трансформацией структуры данных. Сложность работ состояла в анализе и преобразовании формата данных, и их миграции в систему.
Данное приложение представляет собой компонент для переноса и преобразования биллинговых данных о клиентах из устаревшего приложения в стабильно работающую систему в области индустрии телекоммуникаций.
Перед командой стояла задача разработать новый компонент и адаптировать существующую систему под новые форматы файлов, содержащие бизнес-данные о клиентах.

Основными функциями компонента является обработка данных следующих бизнес-областей:

Также выполнена интеграция данного компонента с существующей инфраструктурой заказчика.

Техническое описание проекта

Приложение включает несколько конвертеров для разных форматов файлов:

Для обработки 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.

Скриншоты

Что делали на проекте, наши обязанности

В ходе работы над приложением мы проделали большую работу по исследованию, реализации и непосредственно по интеграции компонента:

Процесс разработки был разбит на еженедельные спринты, в конце каждого спринта происходило демо с участием заказчика.

Особенности проекта

Результат проекта

Достижения компании на проекте