Andrew Savala генеральный директор компании RedSwimmer Inc., создатель программного обеспечения KioskSimple поделился пятью советами, которые помогут при разработке масштабируемого программного обеспечения для киосков и терминалов.
Как разработчик приложений для киосков, я видел много молодых компаний, которые настолько сосредоточены выходом на рынок в кратчайшие сроки, что полностью пренебрегают проектированием масштабируемости. После того как клиентская база таких компаний начинает расти, увеличивая количество киосков, возрастает нагрузка на сервер, что приводит к снижению производительности терминалов. Тогда в копании с удивлением узнают, что их ПО для киосков не работает хорошо в более широком масштабе. Масштабируемость требует тщательного планирования, инвестиций и временных затрат. В противном случае с ростом клиентской базы, Вы рискуете начать разработку программного обеспечения для киосков с нуля.
Пять основных принципов масштабируемости приложений для киосков:
1. Снижение вычислительных задач для уменьшения нагрузки на сервер.
Для масштабируемости, я рекомендую попробовать, уменьшить количество запросов к серверу на сколько это возможно. Для этого можно применять кэширование на стороне клиента, проверку вводных данных пользователя, или любые другие задачи, которые могут быть выполнены в непосредственно в киоске, с целью избежать обработки этих задач сервером.
Сегодня, все меньше приложений выполняют работу непосредственно на сервере, вместо этого используют микро сервисы. Т.е. все HTML манипуляции выполняются в киоске, а сервер лишь обрабатывает и возвращает запрошенные данные. Это позволяет освободить дополнительную полосу пропускания и ресурсы сервера, что дает возможность увеличить количество подключаемых киосков и минимизировать затраты на серверах.
2. Правильный выбор движка баз данных на основе их специфики.
Использование правильного типа базы данных для работы приложения имеет решающее значение для масштабирования. Часто, SQL Server является правильным выбором; в других случаях, альтернативой SQL, являются так называемые NoSQL базы данных, например, такие как MongoDB могут лучше подходит для различных типов данных и приведут к более высокой производительности при любом масштабе. При использовании persistence layer, можно разделить бизнес-логику и пользовательский интерфейс от модели данных, что даёт возможность легче мигрировать между движками баз данных.
Вы также можете увеличить производительность за счет использования гибридных систем, с возможностью хранения части данных непосредственно в киоске. Большинство современных СУБД теперь имеют возможность перемещать часто используемые таблицы и объекты базы данных в памяти для быстрого доступа при одновременном сохранении целостности. Hekaton является хорошим примером этой технологии гибридных СУБД в памяти от Microsoft. Использование такой системы может повысить производительность базы данных в 50 раз.
3. Использование надежных сетевых каналов доставки контента с возможностью геолокации.
Если киоски установлены на больших расстояниях, важно использовать качественного сетевого провайдера, способного обеспечить надежную работоспособность и хранения данных с учетом геолокации. Например, облачная платформа Microsoft Azure предоставляет возможность разработки и выполнения приложений и хранения данных на серверах, расположенных в распределенных дата-центрах. Microsoft Azure способен определять местоположение вашего киоска и автоматически подключать ресурсы из ближайшего Azure сервера. Услуги геолокации могут обеспечить оптимальную производительность, распределяя свои данные на нескольких серверах и всегда использовать сервер наиболее близкий к киоску.
4. Модульность компонентов приложения.
В целях обеспечения восстановления работоспособности приложения для киосков в масштабах проекта, важно чтобы программное обеспечение состояло из модульных компонентов, которые работают вместе, но могут быть протестированы отдельно друг от друга.
Необходимо подойти к созданию приложения для киоска, как к совокупности более мелкие частей, которые выполняют конкретные задачи (DLL). Это позволяет каждому компоненту быть взаимозаменяемым, а также легко проверяемым для быстрого поиска причин сбоев и восстановления работы приложения. Независимый характер каждого из этих компонентов также снижает риск изменения кода во всем программном обеспечении, при изменениях в одном разделе приложения. Модульная система будет удобна при разработке ПО в командной среде, где несколько разработчиков могли бы работать над приложением совместно.
5. Регулярный анализ кода для эффективной работы приложения.
Для того, чтобы приложение для киоска правильно масштабировать, важно, чтобы программный код работал эффективно, за счет использования производительности профилирования. Если у вас есть всего несколько установленных киосков, неэффективность в коде может остаться незамеченным. С ростом количества подключенных киосков более заметен станет неэффективный код.
Читайте наш канал в
Telegram
:
узнавайте о главных новостях дня первыми.