MINA是简单的、功能完全的网络应用程序框架,提供:
l 为不同的传输类型提供统一的API 。
u 用Java NIO 实现 TCP/IP 和 UDP/IP 。
u 用RXTX 实现串行通信。
u VM内部的管道通信。
u 实现自己的传输类型。
l Filter接口作为扩展点,类似 Servlet 的 filters 。
l 底层和高层的API 。
u 底层:使用ByteBuffers 。
u 高层:使用用户定义的消息对象和编码。
l 高度可定制的线程模型:
u 单线程
u 单个线程池
u 多个线程池
l 开箱可用的SSL TLS 。 StartTLS 支持使用 Java5 SSLEngine 。
l 负载保护和传输控制
l 使用模拟对象的单元可测性
l 支持JMX 管理
l 通过StreamIoHandler 支持基于 Stream 的 IO 操作
l 可与著名的容器如PicoContainer 和 Spring 集成
l 可从Netty 平滑升级
基于MINA 的应用程序架构的鸟瞰图:
深入看看细节:
大体上,基于MINA 的应用程序被分为 3 层:
I/O 服务 :执行实际的 IO 操作。
I/O 过滤器 :过滤或转换字节到需要的数据结构体,和反向操作。
I/O 处理器 :处理具体的业务逻辑。
创建基于MINA 的应用程序也有三个步骤:
1、创建 IO 服务:选择已经存在的服务( *Acceptor / *Connector )或自己创建。
2、创建过滤器链:选择已存在的或创建定制的过滤器来转换请求和响应。
3、创建 IO 处理器:编写业务逻辑,处理不同的消息。