Создание коммерческого Mule коннектора к системе управления мастер-данными
Краткое описание проекта: задача проекта, в котором участвовала команда Jazzteam, состояла в проектировании, разработке и внедрении Mule коннектора, являющегося оберткой над облачной системой управления мастер-данными (MDM), выступающей в роли платформы как сервиса (PaaS). Система позволяет создавать промышленные приложения, которые производят глубокую автоматизированную аналитику (в том числе и предиктивную) на основе данных о клиентах, продуктах, услугах, персонале, технологиях, материалах и т.д. Разработанный нами коннектор значительно упрощает процесс создания Mule-приложений, работающих с системой за счет автоматического обновления токенов доступа к API и динамического DataSense. Делая вызовы API через коннектор, пользователь может загружать данные в систему и удалять их из системы, осуществлять поиск данных на основе фильтров, устанавливать отношения между данными.
В качестве основного средства для построения коннектора использовался Anypoint Connector DevKit. Каждая операция коннектора использует Jersey-client для вызовов API. Ответы со стороны приложения возвращаются в формате JSON. При помощи Jackson-mapper происходит отображение этих ответов в Java-объекты, которые коннектор и выдает на выходе.
В ходе разработки компания JazzTeam выполнила работу по реализации основного функционала коннектора (запросы к API), динамического DataSense, функционального, системного и юнит-тестирования. Коннектор был полностью подготовлен для прохождения сертификации со стороны компании MuleSoft.
Технологии: Java, Mule, Mule ESB, Mule DevKit, Anypoint Connector, Anypoint Studio, SonarQube, Maven, BitBucket, Jersey, Jackson, Mockito, Jayway JsonPath, Apache JMeter, TestLink.
Скриншоты:
Особенности проекта:
- Распределённая команда в разных часовых поясах из разных стран (США, Индия, Беларусь).
- Кастомный модуль аутентификации, который обеспечивает получение и обновление токена доступа к API.
- Поддержка метаданных. Каждый клиент системы имеет для своего аккаунта различные типы данных объектов системы. Коннектор способен выгружать эту информацию и отображать ее для коннектора (динамический DataSense).
- Высокая производительность. Коннектор изначально рассчитан для работы с большим объемом данных. По требованиям заказчика коннектор не должен уступать в производительности чистым вызовам API более чем на 10%. Для выполнения этого условия в Anypoint Studio были построены тестовые flow, на которых производилось нагрузочное тестирование.
Результат проекта:
- В сжатые сроки все задачи были выполнены.
- Была создана необходимая сопроводительная документация приложения, показывающая пользователям все особенности использования коннектора.
- Для подготовки коннектора к процедуре прохождения сертификации было создано большое количество разнообразных тестов – функциональных, системных, юнит-тестов с процентом покрытия не ниже 70%.
- Заказчик остался доволен результатом всех итераций.
- Коннектор соответствует требованиям для прохождения сертификации http://mulesoft.github.io/connector-certification-docs/advanced/index.html.
Достижения команды:
- В ходе реализации проекта нашей компанией был написан мануал “Лучшие практики использования Mule ESB”.
- Составлен мануал по использованию DataSense.
- Написана статья о видах и особенностях тестирования mule-коннекторов и подготовки их к сертификации.
Отзывы клиентов:
Dmitriy Kuznetsov, VP Integration and Cloud Solutions, Infoview Systems Inc, разработка интеграционных проектов, помогающих заказчикам встраивать инновационные сервисы и системы в существующие корпоративные решения на базе мейнфреймов, Ливония, США
JazzTeam participated in Mulesoft connector development project for our customer’s cloud-based master data management and analytics system. The final product has addressed all functional, quality, performance, and security requirements. The JazzTeam performed their tasks efficiently and on time.
I appreciate their professionalism and sense of ownership. The project has been successfully released to production, and am very pleased with the outcome.