Тестируем DataXtend Semantic Integrator. Часть 1
Про продукт DataXtend SI компания Progress Software уверждает, что он реализует модель данных TMForum Shared Information Data Model (SID), и может быть использован для для интеграции данных между системами Телеком-Провайдера.
Таким образом, SID предлагается использовать не как теоретическую
схему, но действительно применять как основу и общий формат для
интеграции и трансформации данных.
Будем смотреть не на пустом примере, а на каталист-проекте TMForum, который назывался "Business Agility using the SID".
DataXtend SI используется для интеграции CRM-системы и двух систем
провиженинга. От CRM приходят запросы, которые необходимо проверять на
корректность и передавать в систему провиженинга в приемлемом для неё
формате, а точнее:
- Проверить содержимое запроса по семантическим правилам. Например,
запрос на подключение услуги по новому адресу должен сопровождаться
старым и новым адресом; - Преобразовать данные из формата, принятого в CRM-системе, в формат модели SID;
- Начать процесс исполнения заказа, выбрал соответствующую систему
провиженинга. Одна из систем отрабатывает запросы на линии DSL, а
другая – на выделенные линии. - Перед передачей данных в систему провиженинга, преобразовать данные из SID-формата в формат системы провиженинга.
Перед тем как разбирать пример, буквально пару слов про
развертывание системы: DataXtend SI работает на базе Eclipse IDE,
которая входит в пакет. Сама установка проходит в виде простейшего
набора шагов. Но это только среда разработки и библиотеки, а выполнение
сгенерированонго кода для интеграции может проводиться как на серверах
приложений (JBoss, WebLogic или WebSphere), в виде WAR, EJB, EAR, так и
интегрироваться в сервисную шину предприятия Sonic ESB (раз уж это продукт общего холдинга Progress Software).
При создании проекта в DataXtend SI необходимо загрузить начальные
схемы для моделей и компонентов, подлежащих интеграции. Система
понимает UML, XSD, DTD, и WSDL, может использовать схему реляционной БД
и Java API. Импортируемую схему можно использовать как общую модель для
системы, модель конкретного сервиса или как модель поступающих данных.
После импорта схем, необходимо создать отображение каждой модели
сервиса или данных на общую модель. Все настроенные модели и
отображения сохраняются как модель обмена (exchange model).
Соответственно, в нашем примере получаются следующие шаги:
- Импорт UML-схем для SID и использование подмножества его классов и атрибутов как базис для общей модели,
- Импорт схемы сервиса данных для CRM, как системы от которой приходят заказы,
- Импорт моделей данных для систем провиженинга, так как они являются получателями,
- Создание отображения из каждой модели в общую ,
- Определение аттрибутов, используемых для навигации,
- Создание правил проверки корректности данных,
- Написание выражений, определяющих по контенту запроса ту конечную систему, куда он будет отправлен.
Шаг 0.
Создаем новый проект в DataXtend Semantic Integrator.
Шаг 1.
Копируем файл SID_Phase_VII_XMI_1dot1.xml в каталог проекта и импортируем его
Шаг 2.
Импортируем WSDL-описание для сервис данных для CRM
Шаг 3.Импортируем схему XSD для одной из систем провиженинга
Получаем:
Шаг 4.
Настраиваем отображение (выбранная стрелочка)
Например, для SiteDataType устанавливаем отображение в AmericanPropertyAddress из модели SID:
Для данных двух сущностей настраиваем отображение атрибутов:
Далее, повторяем операцию для всех сущностей и атрибутов, которые задействованы в нашей задаче.
Шаг 5.
Создаем вычисляемые атрибуты:
- bandwidthCharacteristic в классе ProductSpecification, имеющий тип ProductSpecCharacteristicValue
- bandwidth в классе ProductSpecification, имеющий тип Integer и получающий значение из bandwidthCharacteristic
- productClassification, имеющий тип ProductClassEnum и содержащий значения "High Bandwidth" или "Low Bandwidth"
Задаем условие:
Задаем отображение, наполняющее значением productClassification. Выбираем объекты:
Задаем источник и условие для вычисляемых атрибутов:
Шаг 6.
Оставим на изучение в документации.
Шаг 7.
Для класса отображения ProductOrderToPrivateLineServiceContract
задаем в разделе Preconditions условие для значния
"CustomerOrderComprisedOf/
BusinessInteractionItemInvolvesProductSpecification/
productClassification" ("High Bandwidth" или "Low Bandwidth" для разных
сервисов данных)
Данное тестирование не является полной инструкцией, а приведено как
демонстрация возможностей продукта, проделанная собственными руками.
В следующей части я постараюсь опробовать продукт в реальной работе.
- Войдите на сайт для отправки комментариев