===Настройка SMS-сообщений===
Вынесено в отдельную статью [[Модуль отправки SMS-сообщений]]
== Общая архитектура системы ==
=== Общая структура системы ===
=== Выбор серверного оборудования ===
=== Выбор серверной операционной системы ===
=== Размещение сервера ===
Для классической архитектуры системы, когда офис-склад консолидированы в одном месте, мы рекомендуем размещение сервера в офисе. Т.е. в точке максимального использования системы. Это обеспечивает максимальную скорость и надежность. При этом при необходимости удаленного доступа к системе - достаточно, имея внешний статичный IP-адрес, "пробросить" порт 3306 на сервер.
В последнее время все больше популярность приобретает размещение сервера "в облаке". На самом деле формально - это, конечно, не [https://ru.wikipedia.org/wiki/Облачное_хранилище_данных облако] в широком понимании, а [https://ru.wikipedia.org/wiki/VPS сервер], физический или виртуальный, находящийся в дата-центре. При выборе такого варианта установки программы следует учесть ряд факторов:
*'''Скорость доступа''' Наша система очень чувствительна к скорости доступа. Некоторые операции могут вызывать несколько обращений к серверу, и увеличение времени одного обращения на несколько миллисекунд существенно снижает общую производительность системы на рабочем месте. При размещении сервера в дата-центрах Европы, например, скорость доступа ([https://ru.wikipedia.org/wiki/Ping ping]) из Москвы составляет 50-60 мс. Это - на грани возможности использования программы. При размещении в дата-центре того же города, где находятся пользователи, время доступа - порядка 3-5 мс. Для сравнения - доступ по локальной сети - менее 1 мс.
*'''Надежность интернет-канала''' Нужно понимать, что в случае размещения сервера в интернете система не будет работать у вас в офисе и/или на складе в случае отсутствия доступа в интернет. Желательно обеспечить резервирование канала, причем, желательно, не 3G-"свистком" (см. следующие 2 пункта).
*'''Пропускная способность интернет-канала''' При разработке системы мы стараемся минимизировать объемы информации, передаваемые между рабочим местом и сервером. Однако, если доступ происходит через интернет, на одном канале работает несколько человек, на котором работает и программа и телефоны, а кто-то смотрит видео в ютубе, а кто-нибудь еще придумает пользоваться торрентами - работа остановится.
*'''Стабильность интернет-канала''' При доступе к серверу не должны теряться пакеты. Если на канале происходят потери - программа будет закрываться с сообщением о том, что произошла потеря соединения с сервером.
*'''Надежность дата-центра''' Теоретически - в дата-центре обеспечивается резервирование и элетропитания, и каналов передачи данных. Естественно, в них стоят и промышленные климатические системы, поддерживающие заданную рабочую температуру всего оборудования. Но на практике часто бывает, что сервер оказывается недоступным на время от нескольких минут до нескольких дней! Тех. поддержка (если ее телефон, вообще отвечает, а часто как раз в эти моменты она не работает - либо потому, что телефония работает на том же канале, который у них и "упал", либо потому, что тысячи пользователей серверов, обнаружив неполадки, начали им одновременно звонить) скажет "да, в вашем сегменте технические неполадки, мы устраняем", и больше сделать вы ничего не сможете. В случае, если сервер стоит у вас в офисе - вы сами принимаете моментальные меры. Вплоть до того, что можно вынуть из сгоревшего сервера жесткий диск, подключить к другому компьютеру, и восстановить работу системы.
*'''Стоимость''' При размещении на linux-VDS серверах стоимость на текущий момент - [http://firstvds.ru/products/vds_vps_hosting 600-900 руб/мес], Windows - [http://masterhost.ru/service/hosting/vps/hyper-v/ 4000 руб/мес]. По поводу выбора ОС читайте соответствующий раздел этой же статьи.
Отсюда вывод:
Мы рекомендуем устанавливать сервер "в облаке" только в случае сильно распределенной структуры компании. Когда максимальную скорость и надежность нужно обеспечить множеству удаленных пользователей, а не в одном конкретном месте.