`
gaojingsong
  • 浏览: 1182816 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Apache Mina介绍

阅读更多

一、Apache Mina介绍

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



 

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 - 自己的业务逻辑。

  • 大小: 56.3 KB
0
3
分享到:
评论

相关推荐

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    apache-mina-2.0.4.rar_apache mina_mina

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个"apache-mina-2.0.4.rar"压缩包包含的是Apache Mina 2.0.4版本的源代码,是深入理解和定制Mina的...

    关于apache Mina Server

    深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...

    apache Mina的完整学习资料

    Apache Mina是一个开源框架,主要用于构建高性能、高可用性的网络应用程序。这个压缩包包含了全面的学习资料,适合初学者深入理解Mina的原理和使用方法。其中,中文参考手册的加入使得学习过程更加友好,便于非英语...

    Apache Mina帮助文档

    Apache Mina是一个高度可扩展的网络通信框架,主要用于构建高性能、高效率的服务端应用程序。它提供了事件驱动、异步I/O处理模型,使得开发者能够更专注于业务逻辑,而不是底层网络编程的复杂性。Mina主要应用于Java...

    Apache Mina 入门Demo

    Apache Mina是一个开源项目,主要用于构建高性能、高可用性的网络通信应用。它是Java语言开发的,提供了一套简单而强大的API,使得开发者可以方便地创建网络服务器和客户端应用程序。Mina的目标是简化网络编程,使其...

    apache mina实例免费下载

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是基于TCP和UDP协议的应用。它提供了高度可扩展和高性能的非阻塞I/O模型,使得...

    Apache mina2学习笔记DEMO

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,专为高性能、异步网络应用程序设计。MINA 提供了一套高级的网络通信抽象层,简化了开发过程,特别是对于处理TCP/IP和UDP/IP...

    Apache MINA 2.0 用户指南( 缺第一章节)

    ### Apache MINA 2.0 用户指南:基础知识 #### 基础概念介绍 Apache MINA 2.0 是一款高性能且易于使用的网络应用程序框架,它简化了开发人员在网络编程方面的负担,允许开发者专注于应用程序的核心功能,而不是底层...

    Apache MINA框架相关资料

    1. **中文参考手册**(Apache_Mina_Server_2.0中文参考手册V1.0.pdf):这是一份详尽的MINA框架使用手册,用中文详细介绍了MINA的核心概念、设计模式以及如何创建服务器和客户端。它包含了各种MINA组件的用法,如...

    Apache Mina核心jar包:mina-core-2.0.7

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

    Apache Mina Server 2.0 抢鲜体验

    Apache Mina Server 2.0 是一款高性能、可扩展的网络通信框架,广泛应用于开发网络应用服务器,如TCP/IP和UDP服务。这个框架允许开发者用Java编写高效的网络应用程序,简化了网络编程的复杂性。Mina 2.0 版本在前一...

    Apache MINA 线程模型配置

    ### Apache MINA线程模型配置详解 #### 一、线程模型配置介绍 Apache MINA 是一个用于构建网络应用程序的高性能、高可靠性的框架。它提供了丰富的功能来简化网络编程,包括TCP/IP 和 UDP/IP 协议的支持。线程模型...

    一个Apache MINA使用案例源代码ApacheMina

    Apache MINA是一个高性能、异步事件驱动的网络应用程序框架,主要设计用于简化开发服务器端的高性能网络应用。这个框架提供了一种抽象层,允许开发者使用相同的API处理多种不同的传输协议,如TCP/IP、UDP/IP以及SSL/...

    Apache MINA2实用手册

    Apache MINA2实用手册 Apache MINA2实用手册

    apache mina-spring 服务端程序

    Apache Mina是一个高度可扩展的网络通信框架,主要用于构建高性能、高并发的网络应用程序,如服务器端应用。它提供了一种简单而强大的编程模型,使得开发者可以专注于业务逻辑,而不是底层的网络通信细节。Spring...

    apache_mina_api

    apache mina chm 格式的api帮助文档。

    Apache-Mina-2.rar_apache mina_java mina_mina_mina-core-1.1.3

    描述中提到的"Mina中文参考手册"对于中国开发者来说是一份宝贵的资源,它详细介绍了如何使用Apache Mina进行开发。手册可能涵盖了Mina的基本概念、架构、API使用、以及如何构建实际的应用程序等内容。对于初学者来说...

Global site tag (gtag.js) - Google Analytics