Как стать автором
Обновить

Возможные архитектуры построения ПО интернет-магазинов

Время на прочтение4 мин
Количество просмотров6.2K
Для конференции УРИФ я писал доклад об архитектурах интернет-магазинов, один отрывок из которого хочу представить общественности на обсуждение. Весь доклад опубликую потом(или вы можете прочитать его на сайте УРИФа).

Возможные архитектуры построения ПО интернет-магазинов.

Одноядерная архитектура.
Популярная и самая распространенная. На ней работают все CMS для сайтов и множество CMS для магазинов, такие как shop-script, phpshop, joomla, netcat, oscommerce и еще сотни решений от профессиональных до студенческих. Это самая распространенная схема. Одна база, и один набор скриптов
Двуядерная архитектура.
Это та архитектура, которая известна широкому кругу потребителей меньше и поэтому описывать мы ее будем сегодня подробнее. Двуядерную архитектуру например использовал Озон. Она используется в таких CMS для магазинов как Melbis Shop и OSG.
Отличие в том, что фактически есть две базы – одна на сервере в интернете – с ней работают покупатели. Вторая – на другом сервере – с ней работает персонал магазина. Асинхронно вторая реплицируется на первую. Варианты такой репликации могут быть различны.
Теоритически, для двухбазной архитектуры это, конечно, не обязательно, но на практике в этих решениях всегда персонал использует оконный интерфейс, а не веб браузер – это позволяет значительно поднять производительность работы. Т.е. кроме двух баз есть еще и две части – серверная для покупателей и приложения для персонала. Почему такая архитектура используется реже чем одноядерная? Очевидно потому, что разработка такой системы намного дороже, кроме того, ее использование, установка также сложнее для пользователя – это ведь целый комплекс. Почему же она все-таки используется? Работа с магазином на порядок удобнее, функциональнее, общая производительность системы выше, защищенность существенно лучше.


Плюсы и минусы каждой системы.

Плюсы одноядерной схемы – относительно недорогая разработка такого комплекса ПО и как следствие, низкая цена, вплоть до вполне рабочих бесплатных вариантов. Нормальный многопользовательский режим, возможность быстро и недорого дописать, переписать что угодно.
Минусы – низкая производительность управления товарной базой менеджерами, плохое удобство такого управления, большая нагрузка на сервер. Даже в довольно удачных схемах, везде где можно использующих Java, Ajax и пр. – все равно интерфейс более скован и работает медленнее. Групповые операции с товарами, часто требующие получения большого объема данных с сервера – тоже проблематичны. Гонять туда-сюда мегабайты (десятки мегабайт) не всегда лучшее решение. При таких ресурсоемких для сервера операциях могут быть проблемы и с доступом к сайту покупателями.
Плюсы двуядерной схемы – храня данные на сервере в вашей сети или прямо на компьютере, можно выполнять любые, самые ресурсоемкие операции над всеми товарами, не боясь проблем производительности, приводящих к потере заказов. Мы имеем неограниченную скорость работы интерфейса с базой и все его оконные преимущества. Мы можем принимать заказы в случае отсутствия связи с интернетом. Мы можем заниматься наполнением магазина в отсутствии связи с интернетом. Вторая база, не связанная с интернетом, фактически недоступна для хакеров.
Минусы
– в некоторых случаях ограничение многопользовательского режима, сложность, дороговизна, иногда меньшая кроссплатформенность. Вот собственно все о теории.

Известные интересные способы решения.

В CMS и самописных решениях для обычных сайтов двухъядерная архитектура не используется. Потому что не нужна. Контент обычного сайта это тексты, групповые вычислительные операции над которыми не используются. А вот магазин ОЗОН – одним из первых перешел на двуядерную архитектуру.
http://www.microsoft.com/Rus/Casestudies/CaseStudy.aspx?id=183
«Работа веб-витрины «Озона» и бекофисного приложения (склад, закупки, работа с товарами, управление контентом и т.д.) осуществлялась на единой базе данных. Пользовательский интерфейс бекофисных приложений был построен на основе веб-интерфейса с помощью технологий Allaire Cold Fusion. Использование единой базы данных как для клиентов „Озона“, так и для работы бекофисных приложений приводило к высокой загрузке сервера СУБД и, как следствие, медленной работе интернет-магазина. При одновременном заходе на сайт „Озона“ ста и более пользователей загрузка сайта приближалась к 100%. Это зачастую приводило к сокращению или даже отмене запланированных рекламных кампаний — система не позволяла обрабатывать запросы привлеченных клиентов», — говорит Алексей Тимонин, технический директор «Озона». Разработка и внедрение новой системы происходила поэтапно. На первом этапе была разработана и внедрена система бекофисных приложений. В качестве СУБД использовался Microsoft SQL Server 2000 Enterprise, пользовательский интерфейс был реализован на Borland Delphi 5. Новый бекофис работал на отдельной от веб-витрины СУБД, обмен данными осуществлялся с помощью специально написанного модуля асинхронного обмена данными между СУБД Microsoft и Sybase.»
К сожалению, в статье не сказано как сейчас функционирует ОЗОН, поэтому мы только можем догадываться из контекста, что они все-таки не просто одно время работали двуядерно, но и остались на такой схеме. Также интересно работает и CMS OSG. Фактически основная база там «1С» и данные из нее передаются на веб-сервер, на котором уже функционирует магазин (Microsoft SQL Server, Microsoft Internet Information Services, .Net Framework 1.1. Еще хорошее двухъядерное решение — это Melbis Shop. Работа с магазином идет через удобный windows-интерфейс.
Теги:
Хабы:
Всего голосов 14: ↑12 и ↓2+10
Комментарии21

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн