Дудкін Ю. М. Платформа hybris для створення систем електронної комерції // Міжнародний науковий журнал "Інтернаука". — 2017. — №10.
Технічні науки
УДК 004.418
Дудкін Юрій Миколайович
Студент
Національного технічного університету України
«Київський політехнічний інститут імені Ігоря Сікорського»
Дудкин Юрий Николаевич
Студент
Национального технического университета Украины
«Киевский политехнический институт имени Игоря Сикорского»
Dudkin Y.
Student of the
National Technical University of Ukraine
«Igor Sikorsky Kyiv Polytechnic Institute»
ПЛАТФОРМА HYBRIS ДЛЯ СТВОРЕННЯ СИСТЕМ ЕЛЕКТРОННОЇ КОМЕРЦІЇ
ПЛАТФОРМА HYBRIS ДЛЯ СОЗДАНИЯ СИСТЕМ ЭЛЕКТРОННОЙ КОММЕРЦИИ
HYBRIS PLATFORM FOR ECOMMERCE SYSTEM CREATION
Анотація: У даній роботі дослідженні можливості платформи hybris для побудови систем електронної комерції..
Ключові слова: хайбріс,електронна комерція, платформа, спрінг, розширення.
Аннотация: В данной работе исследованы возможности платформы hybris для создания систем электронной коммерции.
Ключевые слова: хайбрис, электронная коммерция, платформа, спринг, расширение.
Summary: This work deals with investigations of the possibilities of the hybris platform for creating e-commerce systems.
Key words: hybris, e-commerce, platform, spring, extetension.
Одну з самих великих частин на ринку програмного забезпечення займають системи електронної комерції, або e-commerce системи. Це зумовлено тим, що майже усі види комерції переходять, або перейшли у мережу Інтернет. Розробники засобів розробки програмного забезпечення не можуть ігнорувати даний сегмент ринку і постійно розроблюють та вдосконалюють технології для створення ecommerce продуктів.
Велика кількість повторюваної інформації для e-commerce продуктів призводить до виникнення платформ, що будуть містити не тільки інструментарій для побудови деяких компонентів, а готове рішення, що вимагає лише певних налаштувань. При цьому компоненти даного рішення можуть бути як модифіковані так і замінені. Прикладом такої платформи є hybris.
Hybris це платформа, що містить широкий спектр можливостей для b2b та b2c комерційних продуктів. Платформа містить готові рішення для організації веб-сайтів, мобільних додатків. Такі рішення називаються акселератори (accelerators). Також існують готові веб рішення для cms системи, сайтів технічної підтримки, різних видів адміністрування програми-сервера та hybris компонентів [1].
Платформа представляє собою набір розширень (extensions), що можуть бути підключені до платформи, які мають ациклічні залежності. Розширення – це модуль, що виконує набір задач, на одному рівні. Тобто сервіси, що містять логіку керування певними сутностями знаходяться в одному модулі; фасади, що надають готове до використання клієнтом api містяться у іншому розширенні. Структура розширення представляє собою набір каталогів, які містять або java класи, або файли ресурсів та конфігурації.
Технологія hybris використовує ряд вбудованих технологій, що як правило часто використовуються за межами платформи. Більшість з цих технологій не можуть бути замінені іншими у рамках платформи. З одного боку це недолік, оскільки відсутня можливість використати альтернативну технологію у випадку такої необхідності. З іншого боку, існує певний один стандарт побудови таких продуктів, що зменшує необхідність вивчення нових технологій під час розробки і спрощує підтримку продукту [2].
У платформі hybris існує вбудований orm фреймворк. Усі сутності (entity), що мають бути збережені у базі даних, можуть бути описані у xml файлі, або у декількох файлах, що знаходяться у рамках одного розширення. Назва такого файлу має формат <назва-розширення>-items.xml Такий механізм побудови entity дозволяє системі у подальшому автоматично генерувати java класи для даної сутності і дозволяє використовувати готові сервіси для CRUD операцій з об’єктами цих класів. Згенеровані класи мають назву моделі (models). Використання такого механізму дозволяє значно зберігати час при додаванні нових сутностей, оскільки немає потреби у написанні власних класів для роботи з СУБД [3].
У випадках складних запитів до СУБД, що не підтримують стандартні сервіси існує спеціальній сервіс FlexibleSearchService, який дозволяє виконувати запити за допомогою власної мови FlexibleSearch. Це дозволяє змінювати СУБД без будь-яких змін у коді і дозволяє абстрагуватись від SQL діалектів для певних СУБД.
Для створення об’єктів, що не зберігаються в бд, можливо використати механізм схожий до створення entity класів. У кожному розширенні існує файл з назвою <назва-розширення>-beans.xml, у якому аналогічним до створення items чином можливо створити dto класи, які будуть передаватися з фасадів у контролери.
Для більшості конфігурацій використовуються модулі фреймворку Spring. Реалізація принципу впровадження залежності (dependency injection) використовується Spring IoC контейнер, що конфігурується за допомогою spring контексту у форматі xml. Для створення веб-контролерів та забезпечення маршрутизації (routing) використовується Spring MVC модуль. Spring Rest модуль дозволяє створювати Rest Api, що буде використовуватись для мобільних клієнтів та деяких веб можливостей. Використання саме фреймворку Spring дає значну перевагу технології hybris, оскільки дана технологія використовується досить часто у розробці java web систем і багато розробників мають досвід зі Spring [4].
У платформі hybris широко використовуються бібліотеки компанії Apache. Для повнотекстового пошуку використовується бібліотека Apache Solr, що дозволяє значно оптимізувати усі процеси пов’язані с пошуком тексту. Бібліотека ddl-utils дозволяє будувати sql запити, беручи на вхід інформацію моделі та системні налаштування. Apache Camel відповідає за запити у JMS форматі, які необхідні для роботи с ресурсами за межами платформи, та між деякими компонентами, у рамках одного продукту, що знаходяться на різних серверах.
Висновки
На даному етапі розвитку електронної комерції виникає потреба у певних платформах, що містять готовий функціонал, або його частину. Hybris – це одна з таких платформ, що має ряд серйозних переваг. Серед таких переваг це наявність вбудованого orm-фреймворку, використання Spring модулів та наявність великої кількості готових рішень для різних, у тому числі специфічних, задач.
Література