OpenFire源码学习之二:Mina基础知识

Apache Mina是一个高性能的NIO框架,用于开发网络和串口应用。它提供统一的API,支持TCP/IP、UDP/IP和串口通讯。Mina的核心包括IoService接口(用于创建服务)、IoFilter接口(处理数据过滤)和IoHandler接口(处理业务逻辑)。本文深入介绍了Mina的工作流程、关键接口和在OpenFire中的应用。
摘要由CSDN通过智能技术生成

Mina概述

Apache MINA(Multipurpose Infrastructure for NetworkApplications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA所支持的功能也在进一步的扩展中。

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)集成

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

总之:它是一个封装底层IO操作,提供高级操作API的通讯框架!

 

Mina是底层数据传输和用户应用程序交互的接口


Mina处于中间层,它不关心底层网络数据如何传输,只负责接收底层数据,过滤并转换为Java对象提供给我们的应用程序,然后把应用程序响应值过滤并转换为底层识别的字节,提供给底层传输;

 

工作流程


Mina的核心接口:

l IoService: 创建服务对象(客户端或服务端)

l IOFilter:  数据过滤(编码解码等)

l IoHandler: 业务处理

 

IoService接口

IoService是创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值