Синхронный MODX

Содержание

Слайд 2

С чего все началось?

Как автоматизировать?

С чего все началось? Как автоматизировать?

Слайд 3

Базовые требования к системе

Централизация всех обрабатываемых данных
Возможность автономной работы заведения при локальном

Базовые требования к системе Централизация всех обрабатываемых данных Возможность автономной работы заведения
отсутствии интернета
Обмен данными в реальном времени

Слайд 4

Почему ?

Основная причина
мое хорошее знание этого фреймворка и очень сжатые

Почему ? Основная причина мое хорошее знание этого фреймворка и очень сжатые
сроки до запуска первой версии
проекта

Слайд 5

Дополнительные аргументы в пользу MODX

Модульность
Механизм обновления компонентов через транспортные пакеты, возможность создать

Дополнительные аргументы в пользу MODX Модульность Механизм обновления компонентов через транспортные пакеты,
собственный репозиторий
Наличие админки

Слайд 6

«Железная» структура

Физический
локальный сервер (ЛС)

Центральный
сервер (ЦС)

«Железная» структура Физический локальный сервер (ЛС) Центральный сервер (ЦС)

Слайд 7

Синхронизатор: важное требование

Динамическая поддержка
любых объектов

Синхронизатор: важное требование Динамическая поддержка любых объектов

Слайд 8

Синхронизатор: первый шаг. Товары и категории

err

err

err

msProduct

msCategory

Всего два типа объектов
Минимальная обработка ошибок
Недостаточная стабильность

Синхронизатор: первый шаг. Товары и категории err err err msProduct msCategory Всего

Слайд 9

Синхронизатор: развитие.
Улучшенная обработка ошибок + заказы

msProduct

msCategory

TV

Template

TV

Template

modUser

Groups

msOrder

msOrderProduct

msOrderAddress

Корректная обработка всех известных ошибок
Обработка сопутствующих

Синхронизатор: развитие. Улучшенная обработка ошибок + заказы msProduct msCategory TV Template TV
объектов
Значительно расширенный список обрабатываемых объектов

Слайд 10

Показатели на данный момент

400 товаров
3500 пользователей
500 000 заказов
1 000 000 товаров в

Показатели на данный момент 400 товаров 3500 пользователей 500 000 заказов 1
заказах

1 центральный
14 локальных

База данных

Серверы

+ 20 типов обрабатываемых объектов, без учета сопутствующих

Слайд 11

Принцип работы синхронизатора

Действие

Действие

Действие
Плагин

Журнал
синхронизации

+1
запись

Отслеживание изменений

Принцип работы синхронизатора Действие Действие Действие Плагин Журнал синхронизации +1 запись Отслеживание изменений

Слайд 12

Обмен данными между серверами

1’

ЛС
упаковать
изменения

Отправка

ЦС
распаковка
+
упаковка

Отправка

ЛС
распаковка

Обмен данными между серверами 1’ ЛС упаковать изменения Отправка ЦС распаковка + упаковка Отправка ЛС распаковка

Слайд 13

Правила синхронизации

Специальные классы,
название которых
состоит
из специального префикса
и названия оригинального
класса объекта

class

Правила синхронизации Специальные классы, название которых состоит из специального префикса и названия
chsrmodUser extends chsrRule {
// class code here
}
class chsrGuest extends chsrmodUser {
// class code here
}

class chsrmodResource extends chsrRule {
// class code here
}
class chsrmsProduct extends chsrmodResource {
// class code here
}

Слайд 14

Главные методы
Упаковать
sync::pack()

получает из БД запись журнала об измененном объекте
запускает pack()

Главные методы Упаковать sync::pack() получает из БД запись журнала об измененном объекте
из соответствующего Правила

Распаковать
sync::unpack()

получает весь массив данных для распаковки
для каждого элемента запускает unpack() соответствующего Правила

Слайд 15

class chsrmodUser extends chsrRule {
public function pack($journalEntry) {
// function code

class chsrmodUser extends chsrRule { public function pack($journalEntry) { // function code
here
}
public function unpack($package = array()) {
// function code here
}
}

class chSync {
public function pack($stock_id = 0, $piece = '') {
// function code here
}
public function unpack($package = array()) {
// function code here
}
}

Слайд 16

Уникальные ключи

ID

ID

uID

uID

Уникальные ключи ID ID uID uID

Слайд 17

Уникализация msOrder

msOrder

stock_id

id

local_id

msOrder

local_id
stock_id

gOrder

Уникализация msOrder msOrder stock_id id local_id msOrder local_id stock_id gOrder

Слайд 18

Обработка ошибок

Прогнозируемые

Непредвиденные

Заранее определяется критичность ошибки. Важно?
Нет: запись пропускается, в журнале сохраняется статус

Обработка ошибок Прогнозируемые Непредвиденные Заранее определяется критичность ошибки. Важно? Нет: запись пропускается,
ошибки.
Да: Если обработать и исправить ошибку важно в ручном режиме, должно отправляться уведомление разработчику.

Здесь все зависит от конкретной ситуации и времени обнаружения ошибки. В большинстве случаев все ограничиваетя остановкой синхронизации на некоторое время.

Слайд 19

Обслуживание серверов

Выполнение сервисных команд

Обслуживание серверов Выполнение сервисных команд

Слайд 20

Обновление компонентов системы

Используется штатный
механизм
обновления пакетов,
обновления происходят
в автоматическом режиме
после получения команды
с

Обновление компонентов системы Используется штатный механизм обновления пакетов, обновления происходят в автоматическом
ЦС

Слайд 21

Перспективы развития

Устранение старого кода в правилах, переход на максимальное использование принципов ООП

Перспективы развития Устранение старого кода в правилах, переход на максимальное использование принципов
и процессоров MODX

Администрирование серверов:
Выполнение сервисных команд/задач
Выполнение небольших кусков кода
Мониторинг состояния

Имя файла: Синхронный-MODX.pptx
Количество просмотров: 23
Количество скачиваний: 0