ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Разработка системы интеграции для торговой компании

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

Mule SoftЗаказчик является владельцем международной розничной системы по продаже товаров и комплектующих к ним. Главной проблемой заказчика являлось отсутствие глубокой интеграции между различными компонентами системы, так как у заказчика они в большинстве случаев работали обособленно: в разных странах у разных дистрибьюторов функционировали различные ERP системы, которые требовали к себе разного подхода от E-Commerce системы. Также на стороне заказчика присутствовали PIM (Product Information Management) и CRM (Customer Relationship Management) системы.

Перед командой ДжазТим была поставлена глобальная задача — создать для E-Commerce системы отдельный компонент, который бы связывал ее с другими частями системы вне зависимости от того, какая ERP система применяется дистрибьютором.

Этот компонент получает запросы от клиентов из E-Commerce системы и передает их в системы нижнего уровня (ERP, CRM и PIM), возвращает данные от них, а также обеспечивает их сценарное взаимодействие друг с другом.

Система обмена данными разработана нами на платформе Mule ESB и включает в себя два слоя:

  • System layer — слой бизнес-логики, где прописаны все сценарии обработки запросов для каждой конкретной системы (ERP, CRM и PIM).
  • Process layer — слой обмена данными между клиентом и маршрутизация запросов в соответствующее приложение системного уровня на основе кода страны и бренда.

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

  1. E-Commerce — систему, отвечающую за хранение и обработку данных клиентов.
  2. CRM (Customer Relationship Management) — систему, отвечающую за хранение данных о клиентах.
  3. ERP (Enterprise Resource Planning) — системы, отвечающие за обработку заказов в определенных странах, а также за хранение данных о покупках, наличии товара на складах.
  4. PIM (Product Information Management) — систему, отвечающую за хранение больших объемов информации о товарах.

Для конечного пользователя система выглядит как сайт, где пользователь должен иметь возможность:

  1. Ознакомиться со всеми товарами с учетом их иерархии и классификации, просмотреть изображения товаров, получить детальную характеристику определенного товара.
  2. Получить информацию о наличии товаров на складах, а также у дилеров.
    Посмотреть, когда будут доставлены товары, которых нет в наличии.
  3. Получить сведения об официальных дилерах: контактную информацию, местоположение на карте, время работы, оказываемые услуги.
  4. Купить товар и его комплектующие или аксессуары:
    • выбрать способ доставки;
    • оплатить заказ онлайн или оформить рассрочку платежа;
    • получить скидку;
    • получить информацию о комиссии за услуги дилеру.
  5. Заказать определенные услуги онлайн:
    • сборку;
    • кастомизацию;
    • ремонт.
  6. Посмотреть свои заказы, отслеживать статусы заказов онлайн, зарегистрировать гарантию, увидеть свои достижения.

Технологии

Stack: Mule ESB, Apache Maven, REST API, RAML, SFTP, VirtualM, Java 8
Infrastructure: Git, Anypoint Studio, Jira, Confluence, CloudHub, Slack, Microsoft Azure DevOps
Test Automation libraries: MUnit + Mockito
DB: DB2, MSSQL, CassandraDB

Скриншоты

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

  • Была произведена интеграция различных систем (ERP, CRM и PIM) в единую информационную систему.
  • Для системы E-Commerce был сделан унифицированный протокол доступа, позволяющий не учитывать особенности систем дистрибьюторов.
  • Работа осуществлялась в рамках взаимодействия с несколькими распределенными командами заказчика, а также с дистрибьюторами, работающими в разных странах Европы и US.
  • В процессе работы над интеграционным решением мы взаимодействовали с разработчиками одной конкретной известной PIM системы.
  • Тестирование проводилось со стороны заказчика, поэтому мы часто взаимодействовали с командой тестировщиков при проведении End2End тестирования.
  • Отдельным требованием заказчика было наличие у всех разработчиков сертификатов, подтверждающих профессиональное владение Mule технологией.

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

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

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

  • Мы подтвердили свое владение технологией Mule, получив соответствующие сертификаты.
  • Команда активно участвовала на этапе проработки требований к интеграции.
  • Команда прошла полный путь жизненного цикла разработки, от формирования требований и проектирования системы и заканчивая поддержкой и передачей проекта заказчику.
  • Решение полностью задокументировано силами команды.
  • Команда познакомилась с заказчиком во время визита в его офис, где совместно с заказчиком работала на протяжении недели (workshop-ы, тренинги).
  • Мы всегда выходили на заказчика со здоровыми инициативами по улучшениям на проекте: выполняли ревью состояния CI/CD на проекте; проводили исследование на тему Canary release strategy vs. Blue/Green; внесли предложения по улучшению настроек доступа и реализовали их; оказывали консультации по организации работ по Scrum в джире.
  • Команда организовывала еженедельный выход в препродакшн.
  • Мы работали одновременно с несколькими смежными командами из разных стран Европы и US.
  • Мы принимали участие в CI/CD процессах.
  • На первом этапе проекта команда организовала и полностью проводила тестирование решения своими силами.
  • Команда выполняла настройку инфраструктуры для заказчика.
  • Мы работали с постоянно изменяющимися требованиями.
  • Команда сделала полный КТ (knowledge transfer) с детальным описанием всех процессов и процедур при передаче продукта на дальнейшее развитие и поддержку заказчику. КТ длился более 1 месяца и проходил в формате видеоконференций и создания регламентов и инструкций и обучения по ним новых команд.

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения