Платформа Oracle Commerce поддерживает множество возможных конфигураций и разных операционных систем – Oracle Linux, SUSE Linux, Red Hat Linux, Oracle Solaris, AIX, Microsoft Windows. Архитектура создаваемых на данной платформе решений может быть достаточно сложной, содержать множество звеньев и серверов, объединяемых в кластеры. Детали таких конфигураций для каждой конкретной системы определяются требованиями к ней – ожидаемой нагрузкой, показателями надежности, объемом обрабатываемых данных и пр. Платформа Oracle Commerce, являсь продуктом enterprise-класса, используется преимущественно для создания достаточно крупных систем, предназначенных выдерживать большие нагрузки и обрабатывать большие объемы данных. Для таких систем заведомо невозможно объединение всех функций в рамках 1-2 виртуальных или физических машин, а нагрузки в процессе эксплуатации могут колебаться в очень широких пределах. Кроме того, при разработке подобных решений для целей подготовки изменений, отладки и тестирования часто требуется развертывание специальных отдельных дублирующих серверов (песочница/staging), что дополнительно усложняет общую архитектуру системы.

В целом, в архитектуре решений на платформе Oracle Commerce можно выделить:

  • Фронтальную часть, состоящую, как правило, из сетевого шлюза, балансировщиков нагрузки и web-серверов, которые обрабатывают http/https-запросы посетителей (пользователей) интернет-магазина (торговой системы).
  • Звено серверов приложений, отвечающее за бизнес-логику и обработку данных в соответствии с установленными бизнес-процессами. На этом уровне возможно выделение узлов по их роли в бизнес-процессах: обслуживание клиентов (Customer-Facing Cluster), управление (Management Cluster), обслуживание менеджеров (агентов) и администраторов системы (Agent-Facing Cluster), сбор и подготовка данных для бизнес-аналитики (Data Warehouse Load Server).
  • Подсистему работы с данными, предоставляющую разным модулям платформы надежные средства хранения и управления данными (СУБД).
  • Поисковую машину (Oracle Endeca Commerce), которая содержит средства сбора и индексации данных, а также сам поисковый движок (Search Engine), обеспечивающий быстрый поиск по запросам из приложений.

Фронтальная часть

Фронтальная часть предназначена для непосредственной обработки обращений посетителей сайта (сайтов) электронной площадки по протоколам http/https. В качестве фронтальных серверов могут использоваться и сами сервера приложений, на которых развернута бизнес-логика системы (Customer-Facing Cluster). Однако, для более сбалансированного распределения нагрузки и повышения масштабируемости на фронте можно использовать дополнительный кластер из web-серверов, которые отдают статический контент и проксируют запросы к серверам приложений.

Для web-серверов могут использоваться практически любые распространенные продукты разных вендоров с учетом их совместимости с используемыми серверами приложений:

  • для Oracle Weblogic: Oracle HTTP Server, Apache HTTP Server, Oracle iPlanet Web Server (Sun Java System Web Server), Microsoft IIS;
  • для IBM Websphere Application Server: IBM HTTP Server, Microsoft IIS, Oracle iPlanet Web Server (Sun Java System Web Server);
  • для JBoss EAP: jBoss Application Platform Apache Web Server, JBoss Enterprise Web Server, Apache HTTP Server, Oracle iPlanet Web Server (Sun Java System Web Server), Microsoft IIS. 

Звено серверов приложений

Данное звено обычно представляет собой кластер J2EE-серверов, которые отвечают за бизнес-логику и взаимодействуют с другими компонентами и звеньями системы. Для развертывания Oracle Commerce можно использовать следующие продукты: 

  • Oracle Weblogic,
  • IBM WebSphere Application Server,
  • JBoss EAP.

Учитывая, что бизнес-логика системы не однородна и сама по себе делится по функциональному назначению, кластер серверов приложений тоже может разделяться (на физическом или логическом уровне) на подкластеры различного назначения:

  • Customer-Facing Cluster – кластер, который обеспечивает обработку обращений клиентов через фронтальный интерфейс системы;
  • Management Cluster – кластер, предназначенный для обслуживания управляющих интерфейсов (например, таких как Business Control Center) для работы менеджеров и администраторов различного рода;
  • Agent-Facing Cluster – кластер, обеспечивающий работу агентского интерфейса для сотрудников сервис-центра, которые ведут заказы и взаимодействуют с клиентами;
  • Data Warehouse Load Server – сервер, который отвечает за сбор со всех узлов и подготовку данных с последующей их передачей в систему бизнес-аналитики на базе Oracle BI.

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

Система управления данными (СУБД)

В качестве системы управления данными платформа Oracle Commerce пиоддерживает следующие СУБД:

  • Oracle Database (при использовании любых серверов приложений);
  • Microsoft SQL Server (только при использовании JBoss или Oracle WebLogic в качестве сервера приложений);
  • IBM DB2 (только при использовании IBM WebSphere или JBoss в качестве сервера приложений);
  • MySQL (только при использовании JBoss или Oracle WebLogic в качестве сервера приложений, для целей тестирования и разработки).

Oracle Endeca Commerce

Поисковая машина Endeca Commerce является частью платформы Oracle Commerce. При этом она вполне пригодна для использования с любыми другими решениями для электронной коммерции. То есть может развертываться и эксплуатироваться самостоятельно. 

При формировании аппаратной архитектуры для развертывания Endeca Commerce в первую очередь следует определиться с наличием/отсутствием тестовой (staging) системы, на которой проводятся эксперименты и отлаживаются изменения. По сути, такая система должна содержать все те же программные компоненты, что есть на «боевых» (production) серверах, но в аппаратном плане может быть сильно урезанной.

При проектировании очень важно правильно оценить ожидаемую нагрузку и объемы данных, обрабатываемых в системе. Для Endeca это будет оказывать определяющее значения на требования к серверам для развертывания различных компонентов (MDEX, CAS, ITL …). Поскольку именно от скорости ответа MDEX зависит то, как быстро пользователь сможет воспользоваться инструментами поиска и навигации на сайте, производительность этого звена является критической. Endeca позволяет масштабировать сервис MDEX на множество серверов, линейным образом увеличивая общую производительность системы.

Поддерживается возможность масштабирования поискового сервиса на множество MDEX-серверов, что позволяет обеспечивать не только высокую производительность, но и высокую надежность системы, организуя доступ к этим серверам через балансер с соответствующими настройками.

Примеры архитектурных решений

 

Пример конфигурации кластера для Oracle Commerce

Пример развертывания Oracle Commerce в трех связанных конфигурациях 
(Development, UAT/Staging, Production)