Появилась необходимость написать клиент-сервер приложение. Никогда подобным не занимался. Вот стою перед выбором: на основании чего или какой связки писать приложение.
Задача: показывать он-лайн заявки на выполнение работ (время, готовность к выезду, переносы, отмены и т.п.). Необходимо создание нескольких типов клиента: монитор(просто просмотр текущих заявок), редактор в диспетчерской (добавление, редактирование). При этом несколько клиентов должны работать одновременно.
Серверная часть (пока на Windows):
* Работа с базой данных по добавлению, редактированию и выборке данных.
* Архивирование старых данных
Думаю надо копать в сторону MySQL, хотя раньше использовал SQLite
Клиент (монитор):
* Отображение текущих данных
Сначала думал делать на LNet, но вроде там нет многотопочности или у меня не получилось.
Клиент (диспетчер):
* Добавление, изменение заявок
Это для начала. В дальнейшем если это получится, то:
* возможность просматривать заявки через интернет (web-client)
Наверное PHP+MySQL или CGI+SQLite
* клиент для сдачи документов (актов, подписанных заявок) в электронный архив.
* Серверная часть для FreeBSD
В конечном результате хочу получить следующее:
Заказчик через интернет (web-клиент) подает заявку на выполнение работ. Она записывается в базу на сервере. Либо диспетчер приняв заявку по телефону заносит ее в базу (клиент "Диспетчер"). Далее диспетчер увидев заявку назначает исполнителя. Аппаратурный участок готовит приборы для этой заявки соответственно типу планируемых работ(клиент "Монитор"). Склад, готовит необходимые материалы, заранее формирует списки недостающих материалов(клиент "Монитор"). Отдел обработки готовит исходные данные для выезда по заявке. И все это время список поступивших, подтвержденных и выполняемых заявок отображается на мониторе в холле предприятия, где могут это увидеть исполнители работ(клиент "Монитор").
После выполнения работ и возвращения на базу, данные полученные во время выполнения работ также записываются в базу(клиент "Сдача материала"). Объем файлов от 10Мб - 150 Мб. Отдел обработки обрабатывает их получив из базы и сохраняет результаты обработки так же в базе. Объем файлов от 1Мб - 10 Мб. Заказчик (их может быть одновременно до 10 чел.) через интернет скачивает необходимые результаты выполненных работ.
Таким образом одновременно будет работать:
Web-клиент (до 10 подключений. Заказчики нетерпеливые будут проверять готовность часто, исполнители находящиеся в разных городах)
клиент "Монитор" (минимум 4 клиента)
клиент "Диспетчер" (1 клиент)
Объем данных: Сданный и обработанный материал за год около 60Гб. Но это файлы. В базе думаю хранить только пути к файлам.
Вот такие Наполеоновские планы. Подскажите в какую сторону копать и на каких компонентах это можно реализовать, чтобы потом не переделывать из-за того, что у компонента не хватает возможностей.