Apache MINA

Apache MINA (Multipurpose Infrastructure for Network Applications) is an open source Java network application framework. MINA can be used to create scalable, high performance network applications. MINA provides unified APIs for various transports like TCP, UDP, serial communication. It also makes it easy to make an implementation of custom transport type. MINA provides both high-level and low-level network APIs.

A user application interacts with MINA APIs, shielding the user application from low level I/O details. MINA internally uses I/O APIs to perform the actual I/O functions. This makes it easy for the users to concentrate on the application logic and leave the I/O handling to Apache MINA.

Advantages

 * Unified APIs for various transports (TCP/UDP etc.)
 * Provides high/low level APIs
 * Customizable Thread Model
 * Easy Unit Testing using Mock Objects
 * Integration with DI frameworks like Spring, Google Guice, picocontainer
 * JMX Manageability

Tooling
Graphical tools such as Eclipse IDE, IntelliJ IDEA can be used.

Alternatives

 * Grizzly
 * Netty 4
 * QuickServer
 * xSocket