Создание электронного справочника продуктов и его автоматическая синхронизация с ERP системой предприятия
Краткое описание проекта: для одного из ведущих европейских поставщиков резисторов и конденсаторов наша компания разработала электронный справочник продуктов с его дальнейшей автоматической синхронизацией с ERP системой и веб-сайтом заказчика.
Техническое описание проекта: данный проект является модель-ориентированным приложением (Model Driven Development), построенным на основе Open Source фреймворка Eclipse EMF Texo. Первая часть приложения – это приложение CMS на основе кастомизации Alfresco Enterprise CMS. Эта CMS содержит специфичную для клиента модель и во время работы предоставляет ее другой части приложения, которая фактически является J2EE приложением на основе фреймворка JBoss Seam с поддержкой JPA и Hibernate. Специальная технология на основе XForms используется для редактирования сложной рекурсивной модели на страницах приложения. Данная технология веб-форм была встроена в систему Alfresco.
На данном проекте было проведено множество технологических исследований, в том числе, нетривиальных. Одним из них была интеграция в CMS Alfresco реализации стандарта XForm – библиотеки Chiba. Расскажем подробнее о стандарте XForm.
XForms обеспечивает более безопасный и независимый от устройств способ обработки информации, вводимой пользователем через форму на веб-странице, чем обычные веб формы. XForms отделяет логику данных формы от ее представления, используя XML для определения правил описания, проверки, хранения и передачи данных, а HTML или XHTML для их отображения. Поскольку модель данных представлена в виде XML, это делает XForms независимым от устройств и платформы использования. За передачу данных на сервер в формате XML отвечает встроенный в браузер процессор XForms. Для обработки данных процессор XForms имеет встроенную библиотеку функций. XForms использует XPath для определения связи между XML экземпляром данных и пользовательским интерфейсом XForms, а также XSD (XML Schema Definition) для валидации данных процессором XForms. С помощью XSD возможно описать множество различных структур данных, включая рекурсивные, в которых элементы могут существовать внутри себя. Таким образом, разработчик имеет возможность моделировать “дерево форм”, вложенных друг в друга, имеющие одинаковую структуру данных, логику валидации, но в разном представлении. В итоге “рекурсивные XSD формы или виджеты” в сочетании с использованием технологии AJAX для асинхронного обмена данными в формате XML позволили ускорить интерактивность взаимодействия пользователя при работе со сложными формами данных.
Внедрение XForms и Chiba позволило полностью поддержать концепцию модель-ориентированного приложения (Model Driven Development).
Технологии проекта:
Infrastructure: Linux, Windows, SVN, встроенный JBoss на сервере Tomcat
Stack: Model Driven Development, J2EE, JBoss Seam, JSF, Hibernate, FreeMarker, DHTML, JS, CSS, DOM, AJAX, Chiba, W3C XForms, XSD, XML, XPath, Xerces, XPointer, XSLT, Texo, Eclipse Modeling Framework, Apache Lucene, Quartz, Pdfbox, Ant, Maven, TestNG.
DB: MySql, JPA (интеграция с Seam и Hibernate)
Скриншоты:
Особенности проекта:
- Распределенная команда (Беларусь, Нидерланды, Китай);
- В проекте использовались только технологии с открытым исходным кодом;
- Выполнена дополнительная настройка некоторых современных фреймворков для их адаптации под задачи проекта: Alfresco, Chiba (W3C XForms), Seam (JBoss);
- Разработка велась с соблюдением Scrum-процессов.
Результат проекта:
- Создан электронный справочник с поддержкой около 300 000 продуктов, который успешно синхронизирован с ERP системой и веб-сайтом заказчика. Справочник предоставляет развитые механизмы поддержки структуры и описаний продуктов в актуальном состоянии;
- Реализована публикация технических описаний продукта с помощью PDF и HTML;
- Разработаны компоненты инфраструктуры, отвечающие за пакетное обновление с использованием таблиц Excel и импорт/экспорт данных в файлы Excel/ASCII и из них;
- Предложено и внедрено несколько архитектурных решений для улучшения стабильности системы;
- Реализовано на сайте:
- Управление контактами (публикация контактной информации для дистрибьюторов и офисов продаж по всему миру);
- Поиск – по сайту, по атрибутам товара,по коду конкурентов, а также полнотекстовый поиск;
- Новости на сайте и новостная рассылка;
- Кастомизация разделов сайта и навигации, раздел вакансий и заказа литературы;
- Статистика посещений сайта.
Достижения компании на проекте:
- Выполнено быстрое погружение в предметную область, технические детали проекта;
- Проведен бизнес-анализ требований заказчика, предложены варианты для улучшения и оптимальной работы приложений.