java io

MINA开发-1

2017-06-01  本文已影响138人  lengyan_zhao

MINA简介

Apache MINA是一个网络应用程序框架,可帮助用户轻松开发高性能和高可扩展性的网络应用程序。 它通过Java NIO在各种传输(如TCP / IP和UDP / IP)上提供抽象·事件驱动的异步API。
Apache MINA经常被称为:
1.NIO框架或者类库
2.客户端和服务器端的框架或者类库
3.一个网络和Scocket通信类库

MINA的特征

MINA是一个简单但功能齐全的网络应用程序框架,提供:
1.对于各种不同的传输类型提供了同一的实现API:

2.Filter接口作为一个可扩展的点,类似于Servlet的过滤器
3.低级和高级的API:

4.高度自定义的线程模式

5.SSL·TLS·StartTLS支持使用java5的SSL引擎(SSLEngine)
6.过载屏蔽和流量节流
7.使用模拟对象进行单元测试
8.JMX可管理性
9.通过StreamIoHandler支持基于流的I/O操作
10.与众所周知的容器式框架集成,比如PicoContainer和Spring
11.来自Netty的平滑迁移,这是Apache MINA的前身

MINA的使用场景

MINA应用架构

mina结构图.png

在这里,我们可以看到,MINA是您的应用程序(无论是客户端还是服务器)和底层网络层之间的粘合,可以基于TCP,UDP,VM内通信或甚至RS-232C串行协议,提供对应的API操作。
您只需在MINA之上设计您的应用程序,而无需处理所有复杂的网络层。
让我们更深入了解细节。 以下图片显示了MINA内部的更多内容,以及每个MINA组件的作用:


mina_app_arch.png

从广义来说,基于MINA的应用程序分为3层:

所以,为了创建基于MINA的应用程序,你不得不做到以下:
 1.创建一个I/O service - 选择已经可用的Services(*Acceptor)或者创建你自己的
 2.创建一个Filter Chain(过滤器链)- 选择已经存在的Filters或者创建一个自定义的Filter(过滤器)用于转换request(请求数据)/respone(回复数据)
 3.创建一个I/O Handler - 此处编写业务逻辑,处理不同的消息信息

至此就完成了整个流程!

你也可以看看具体的客户端和服务端开发过程:
  - 服务端开发
  - Android客户端开发

当然,MINA提供的不仅如此,而且你可以关注其他方面,比如消息编码/解码,如何扩大网络配置等等...

上一篇 下一篇

猜你喜欢

热点阅读