Как я могу проверить это приложение для
масштабируемость, как я могу симулировать клиента
подключения к серверу.
Для тестирования масштабируемости я бы рекомендовал Apache JMeter . Это отличный, бесплатный и довольно простой инструмент для создания и измерения нагрузки на ваше приложение. Вы можете получить информацию о времени ответа, транзакциях в секунду, нагрузке на сервер и т. Д.
Я довольно часто использовал его с приложениями HTTP. Для вашего приложения TCP у него есть TCP Sampler, но, вероятно, было бы проще создать реализацию для его Java Sampler с использованием кода связи, который вы уже написали. Я также рекомендовал бы объединить его с плагином rstatd , чтобы вы могли измерять ЦП / память сервера во время теста.
Может потребоваться пара дней, чтобы ознакомиться с инструментом, но он мне очень помог.
Нужна ли на стороне сервера графическая оболочка,
сообщать о состоянии, подключении и
исключения.
Честно говоря, графический интерфейс для серверной части , вероятно, излишний . Конечно, было бы неплохо иметь какую-то консоль с множеством мигающих красных и зеленых индикаторов и прокруткой журналов, но когда дело доходит до этого, это все элементы YAGNI.
Пока ваш сервер пишет журналы и данные аудита для транзакций и событий, за которыми вы хотите следить, этого достаточно. Наличие GUI только увеличит сложность сервера, что, вероятно, приведет к большему количеству ошибок. Кроме того, если вы эффективно используете журналы, вы можете подключиться к другим механизмам мониторинга / оповещения (например, SNMP).
как мне обращаться с базой данных (MySQL)?
В других ответах есть несколько хороших предложений; эта тема, вероятно, лучше освещена сама по себе, и было задано много вопросов об этом. Я бы порекомендовал сделать поиск ORM + Java , чтобы получить хорошее мнение об этом. Вот несколько приличных ссылок:
Вы можете найти различные мнения по всем различным ORM, а также сторонников их вообще не использовать. У меня нет мнения, как такового - просто используйте то, что считаете нужным для работы, после изучения вариантов.
Есть ли рамки, которые могут сделать все
из вышеперечисленного или я должен справиться
каждый аспект.
Сомнительно , и, если таковые имеются, это, вероятно, настолько универсально, что в конечном итоге вы все равно будете писать для этого кучу кода. Для ORM + GUI (если вы пользуетесь GUI) существуют готовые веб-решения для баз данных MVC +, которые работают на JVM, например Grails . Но большинство ваших вопросов касаются разных проблемных областей, каждая из которых нуждается в отдельном решении.