Выбор программной платформы для автоматизации бизнес процессов

Постройка каждого здания начинается с закладки фундамента – залога устойчивого и продолжительного существования всей постройки. Этот принцип полностью применим и для создания автоматизированных систем. В настоящее время существует несколько вариантов реализации таких систем:
1. Обычные программы, выпущенные под определенную платформу (Windows, Linux, MacOS и др). В этом случае код  исполняется непосредственно на компьютере пользователя, информация же хранится в базе данных на сервере.
2. Веб приложения.  В этом случае на сервере хранится не только база данных, но и само приложение, а клиент взаимодействует с интерфейсом пользователя в обычном браузере на своем компьютере.
Рассмотрим достоинства и недостатки этих подходов

Характеристика Обычные программы Веб приложения
Зависимость от платформы Присутствует
Под каждую операционную систему придется разрабатывать свое программное обеспечение
Отсутствует
Будет работать во всех операционных системах, в которых есть  браузер
Аппаратные требования для клиентского ПК Средние
На компьютере пользователя помимо вывода интерфейса будут производится различные вычисления, в зависимости от логики программы
Низкие
Производится только вывод пользовательского интерфейса
Требования к интернету Средние
При грамотной разработке программного обеспечения некоторая функциональность сохраняется даже при отсутствии связи с сервером
Высокие
При отсутствии интернета программа работать не будет
Нагрузка на сервер Средняя
Нужно обеспечить только достаточную работу базы данных
Высокая
Нужно обеспечить работоспособностью как базу данных, так и собственно приложение для всех подключенных пользователей
Администрирование приложений Сложно
Так как, помимо администрирования сервера баз данных придется отслеживать чтоб у всех пользователей было установлено программное обеспечение, при том свежая версия. Так же для установки могут потребоваться права администратора
Средне
Необходимо администрировать только сервер, а в случае размещения веб приложения на хостинге, то администрировать нужно только аккаунт хостинга
Сложность разработки Высокая
При разработке такого программного обеспечения высока вероятность смешивания логики программы и элементов интерфейса пользователя, что существенно затрудняет дальнейшую модернизацию системы. Так же необходимо поддерживать совместимость различных версий
Средняя
Снижение сложности достигается путем разделения логики работы программы(модели) , интерфейса пользователя (представления) и взаимосвязи между ними (контроллера). Так же нет необходимости поддерживать другие версии программы

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

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

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