首页 > Web开发 > 详细

Apache Mina介绍

时间:2016-07-16 02:32:30      阅读:319      评论:0      收藏:0      [点我收藏+]

一、Apache Mina介绍

Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。


bubuko.com,布布扣
?

ApacheMINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序。它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步API。

Apache MINA 也称为:

● NIO 框架库

● 客户端服务器框架库

● 一个网络套接字库

MINA虽然简单但是仍然提供了全功能的网络应用程序框架:

● 为不同的传输类型提供了统一的API:

○ 通过Java NIO提供TCP/IP 和 UDP/IP支持

○ 通过RXTX提供串口通讯(RS232)

○ In-VM管道通讯

○ 你能实现你自己的API!

● 过滤器作为一个扩展特性; 类似Servlet过滤器

● 低级和高级的API:

○ 低级: 使用字节缓存(ByteBuffers)

○ 高级: 使用用户定义的消息对象(objects)和编码(codecs)

● 高度定制化线程模型:

○ 单线程

○ 一个线程池

○ 一个以上的线程池(也就是SEDA)

● 使用Java 5 SSL引擎提供沙盒(Out-of-the-box) SSL · TLS · StartTLS支持

● 超载保护和传输流量控制

● 利用模拟对象进行单元测试

● JMX管理能力

● 通过StreamIoHandler提供基于流的I/O支持

● 和知名的容器(例如PicoContainer、Spring)集成

● 从MINA平滑的迁移到Netty, MINA是Netty的前辈。

?

二、Apache Mina客户端的通信过程:

通过SocketConnector同服务器端建立连接。

链接建立之后I/O的读写交给了I/O Processor线程,I/O Processor是多线程的。

通过I/O Processor读取的数据经过IoFilterChain里所有配置的IoFilter,IoFilter进行消息的过滤,格式的转换,在这个层面可以制定一些自定义的协议。

最后IoFilter将数据交给Handler进行业务处理,完成了整个读取的过程。

写入过程也是类似,只是刚好倒过来,通过IoSession.write写出数据,然后Handler进行写入的业务处理,处理完成后交给IoFilterChain,进行消息过滤和协议的转换,最后通过I/O Processor将数据写出到socket通道。

?

?

三、Apache Mina ?Server端和Client端:

由于Server端和Client端都是基于以上三个组件的,因此对于Server端和Client端编程来说就都有类似的代码结构。

对于Server端来说:?

1. 创建I/O service - 这里就是创建IOAcceptor类监听端口。?

2. 创建I/O Filter Chain - 这里就是告诉使用那些IoFilter。?

3. 创建I/O Handler - 自己的业务逻辑。 ?

对于Client端来说:?

1. 创建I/O service - 这里就是创建IOConnector类来建立到Server端的连接。?

2. 创建I/O Filter Chain - 这里就是告诉使用那些IoFilter。?

3. 创建I/O Handler - 自己的业务逻辑。

Apache Mina介绍

原文:http://gaojingsong.iteye.com/blog/2309405

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!