ApacheMina2-(1)介绍
1 ApacheMina 介绍
第一次接触ApacheMina还是在2012年的时候,当时公司要求开发一款自动分配工单的系统平台,类似于派工单的系统,由一开始最初的TCP Socket编程,变成了后来渐渐的使用了Mina框架,首先
Mina2 框架是一款开源的TCP框架,说白了就是一款通信脚手架,通过这个脚手架我们可以在上面进行二次开发,达到用户的需求。
为了尊重原著我们看一下ApacheMINA的介绍,登录官方网站
Apache MINA是一个网络应用程序框架,可帮助用户轻松开发高性能和高可伸缩性的网络应用程序。它通过Java NIO通过各种传输(例如TCP / IP和UDP / IP)提供了一个抽象的事件驱动的异步API。
Apache MINA通常被称为:
- NIO框架库,
- 客户端服务器框架库,或
- 网络套接字库
Apache MINA附带许多子项目:
- AsyncWeb:基于MINA异步框架构建的HTTP服务器
- FtpServer:FTP服务器
- SSHd:一个支持SSH协议的Java库
- Vysper:XMPP服务器
从以上描述可以看出几个关键要点
1) Mina2是一个NIO的框架库,也就是一种非阻塞技术
2)他具备了我们需要使用的一些客户端接口
3)支持我们熟悉的网络套接字结构,至于网络套接字结构可以参考TCP编程资料
ApacheMINA他是一款基于应用层的通信开发框架。
2 ApacheMINA软件结构

上图可以看出,MINA在一般开发过程中是位于 网络层与应用层之间的组件,MINA不仅对上层提供了可扩展的接口,也对下层提供了可连接的接口。
更为细致的剖析图如下所示:

Application Layer:应用层对接我们MINA中的IoHandler,即IoHandler中会有一些接口方法来对接我们应用中的其他接口
IoFilterChain:过滤器,此过滤器是将数据转换为合适的数据格式进行为下一层进行传输,过滤器是使用的是过滤链的形式
IoService:负责与其他远程设备进行通信
ApahceMina2 分为三层
I/O Service,负责实际处理IO操作,如设备链接,释放等操作
I/O Filter Chain,根据需要,过滤,输入输出数据,或者在过滤器中将数据进行格式化封装均可
I/O Handler,应用的业务逻辑层,面向实际的业务,如收到数据之后如何处理等操作。

浙公网安备 33010602011771号