Добрый день. Нужна помощь в объяснении концепта как лучше сделать и собственно подсказать литературу на данную тему.
Задача такая нужно написать клиент и сервер. С клиентом в принципе проблем нет. Данные от клиента будут приходить и как команды например в (json) или (jsonp) так и голосовые сообщения.
Задача сервера принимать авторизовывать клиента принимать команды или звуковые файлы обрабатывать их и отправлять ответ. Это если в коротко.
Есть желание сделать сервер модульным так как список выполняемого функционала будет пополнять и хотелось бы что бы расширять было его удобно. Я вижу это так главная часть авторизует пользователей, отвечает за прием/отправку сообщений и разбор протокола, команды она складывает в очередь или список и оповещает модули, а дальше уже из этой очереди нужные команды расхватывают модули выполняют нужные действия и помещают в тот же пул результат выполнения и сервер отсылает это клиенту/клиентам.
Вопрос такой насколько это правильная концепция?
Что можно по читать про подключаемые модули/плагины в ява?
Что почитать про потоки/очереди и клиент сервер в яве?
Что почитать про события и нужную мне очередь/пулл/список?
Какой лучше выбрать формат передачи данных? (json, jsonp or etc)
1) Модульность можно обеспечить с помощью OSGI
2) Java Concurrency in Practice
3) Напрашивается реализация паттерна "команда"
4) json или бинарный формат