Система управления электронным бизнесом

А. И. Моисеев,
бакалавр,
tsaralex@nm.ru, г. Тамбов

Введение

Информационные технологии проделали большой путь за последние годы, постоянно наращивая скорость своего развития. Большинство создаваемых ИТ-систем так или иначе связаны с глобальной сетью Интернет.  Ещё вчера наука и бизнес широко использовали Всемирную Паутину и другие сети существующие параллельно Интернету. Сегодня для обработки существующих потоков данных требуются сложнейшие системы управления информацией, предъявляющие высокие требования к аппаратному обеспечению. Рассматриваемое решение является узкоспециализированной системой управления информацией, с целью предоставления услуг через сеть Интернет.

В докладе рассмотрены решения, являющиеся фундаментом программного продукта, дано описание слабых мест подобных проектов и решение связанных с ними проблем.

XML-технологии

С целью достижения определённой степени унификации было принято решение хранить и передавать большую часть данных, используя XML-технологии, в частности это:

1.    XML – eXtensible Markup Language. Требуется для унифицированного хранения данных, используемых в разных частях системы.

2.    XSD – XML Schema Definition, XML-схема Определяет правила для XML-документов

3.    XSL – eXtensible Stylesheet Language. Используется в процессе преобразовании XML-документа в HTML-разметку для отображения на веб-сайте.

XML используется для:

1.    Внутреннего представления объектов

2.    Передачи объектов между приложениями внутри программного комплекса

Для каждого типа объекта существует XML-схема, которая определяет поля объектов и (при необходимости) их возможные значения. Наличие схемы является гарантией того, что никакая ошибка не приведёт к нарушению целостности базы данных.

При помещении объекта в хранилище данных – создаются (или обновляются)  записи соответствующие объекту. Значения полей извлекаются из XML-документа.

Веб-портал работает не с XML-документом, а со значениями полей объекта в таблицах базы данных. Таким образом, доступ к объектам обеспечивается маленькими запросами к системе управления базами данных, что позволяет достичь максимума производительности.

При запросе объекта из Win32-приложения Веб-сервис возвращает XML-документ, то есть на операцию потребуется всего один SQL-запрос, возвращающий одно поле. Причём возвращаемое значение не требует никакой обработки на стороне сервера.

При удалении объекта, он помечается в хранилище как “удалённый”. При этом сотрудники могут с ним работать, но на Веб-портале не отображается и не участвуют в расчётах (например, расчёты бестселлеров и скидок).

XML обеспечивает заменяемость каждой из частей системы, то есть переписывание одной части не обязательно должно повлечь за собой изменения в других. Роль соединительного элемента играет XML-схема.

Объекты

В настоящее время существует множество механизмов для создания объектной структуры на основе реляционной базы данных. Не редко, разработчики отдают предпочтение своим разработкам в этой области, не смотря на то, что они уступают по функциональности и скорости развития другим продуктам. Причина заключается в том, что условия работы и бизнес-логика часто меняются, иногда – коренным образом. Как правило, модификация чужого продукта представляет собой чрезвычайно трудоёмкий и длительный процесс, даже если продукт коммерческий и есть соответствующие договора. Независимо от профессионализма разработчиков объектная база данных всегда усложняет работу с ней, и уменьшает производительность СУБД, что при обсчёте большой базы данных представляет собой проблему.

Описываемая структура представляет собой промежуточный вариант между группой плоских таблиц и объектной базой данных. Повышенная функциональность достигается за счёт избыточности, что при современном развитии ЭВМ можно не принимать во внимание. Часть содержимого таблиц, содержащая XML-представление не используется в работе Веб-портала и необходима только для работы сотрудников через специальное приложение.

В виде объектов представляются все данные, с которыми работает администраторское приложение. Для Интернет-магазина это объекты классов “Товар”, “Пользователь”, “Корзина”, “Заказ”, “Адрес”, “Акция”, “Рекламная единица”, и других, которые определяются требуемой функциональностью. Для библиотеки можно выделить следующие классы: “Издание”, “Издательство”, “Автор” и т.п.

Определение классов объектов и их полей происходит на этапе составление технического задания лично проект-менеджером.

Фоновые процессы

Часто, именно фоновые процессы приводят серверы к “Отказу в обслуживании”, что недопустимо в условиях жёсткой конкуренции существующих на большинстве современных рынков.

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

Каталог – это плоская таблица, описывающая ориентированный граф. Благодаря простой структуре таблиц просчёт количества привязанных объектов для каждой ветки каталога не требует сколько бы ни было значимых ресурсов.

Для визуализации информации на сайте используются “Расширяемые cтили”, то есть XSL-документы которые позволяют преобразовать “сырые” данные, де-факто XML-документ, в HTML-разметку, отображаемую браузером. При обновлении любого визуального объекта происходит добавление события в очередь на XSL-преобразование. Результат преобразования сохраняется в соответствующем поле таблицы объектов, и при необходимости отображения на сайте – извлекается.

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

В большинстве случаев требуется несколько представлений объектов для отображения в разных разделах веб-сайта, что обеспечивается за счёт использования набора XSL-документов. Минимальная нагрузка достигается благодаря особой логике работы с событиями, которые добавляются в очередь в такой последовательности, чтобы не появилось необходимости последовательно выполнить большое количество “тяжёлых действий”.

Веб-сервисы

Веб-сервисы позволяют выполнять функции, находящиеся на удалённом компьютере используя протокол SOAP, который может использоваться поверх любого стандартного протокола прикладного уровня, применяемого во всемирной паутине и не только в ней. То есть возможность использования SOAP между двумя любыми компьютерами зависит только от наличия канала и настроек безопасности.

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

Партнёрские веб-сервисы создаются на основе API  и документации, в соответствии с требованиями бизнес-логики.

Веб-сервисы и современные средства разработки для Microsoft Office 2007 позволяют запрашивать данные их хранилища прямо в Microsoft Excel, что является наиболее удобным способом для специалистов по маркетингу, продажам и закупкам.

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

В ряде частных случаев, для увеличения производительности, обработку XML-документа имеет смысл перенести на сторону системы управления базами данных. Обычно это делается при наличии высокопроизводительного сервера баз данных, в целях повышения степени универсальности функционала на стороне СУБД.

Данная часть системы уязвима для злоумышленников значительно больше остальных, поэтому её разработка и документирование требуют особого внимания.

СУБД

От системы управления базам данных требуется поддержка хранимых процедур и функций, и возможность работы с большими базами данных (от 60Гб).

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

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

Администраторское приложение

Администраторское приложение обеспечивает доступ к хранилищу данных для сотрудников. Каждый объект, к которому производился доступ в течение текущей сессии, помещается в Кеш, что позволяет сократить нагрузку на СУБД, и свести задержки, в течение которых производится загрузка информации, к минимуму.

При переходе в режим редактирования открывается окно, в котором создаются поля для ввода текста и изображений сообразно XML-схеме, определённой для текущего типа объектов.

Сохранение объекта приводит к обновлению его в Кеше программы, и отсылке в хранилище. Объект, редактируемый одним пользователем, для других доступен только для чтения.

Контроль прав доступа происходит на стороне сервера. Все запросы в обязательном порядке шифруются.

Итоги

На данный момент разработки ведутся на основе технологии Microsoft .NET. В качестве СУБД выбрано решение Microsoft SQL Server. Для прототипирования используется язык PHP. Проектирование ведётся при помощи Erwin и Visual Paradigm.