`
raymond2006k
  • 浏览: 290784 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

NIO对SOA的启发

    博客分类:
  • SOA
阅读更多
     NIO 和 SOA 都有使用,最近重新看一些文章,结合自己的项目应验,发觉NIO的思想对SOA也很有参考价值。
   NIO 关键是采用了被动的 Observable 模式,或者说 listener 模式实现了 IO 的非阻塞通信,从而极大提高IO性能。 我所体会的,其中的妙处在于 requestor 变主动模式为被动模式,避免一个请求长时间独占资源,从而提高 IO 的效率。

    这让我想到在项目中,业务方法(Business Method)通常纳入一个Transaction事务中,而事务的过程通常比较消耗时间,即对资源占用较长时间;尤其在 SOA 环境下,如果一个 BM 需要调用其他一个或多个EJB,Web Service 或 CICS等服务接口,那么transaction 占用的时间更长。
    NIO 的启示是,改变设计模式就能带来神奇的效果。

    问题还是变主动调用为被动调用。 在 Client + MiddlWare + Service的三层建构下, 中间件对 Client 来说仍保持同步(Sync), 而中间件以 Listner 模式异步监听服务的调用回传结果,避免连接,Pipe等资源过长时间被堵塞,从而提高request的并发数,吞吐量,从而提高SOA下分布式调用的效率。

    [img]/upload/attachment/48657/84ef0b86-97a5-3c4d-be09-64a40f6fa45b.jpg" alt="[/img]
   像 Axis2 等 web service 框架都提供web service 调用级别的非阻塞调用。而在具体项目中, 如果 Service 是由 Axis2 集成封装,并且被集成的子服务都支持非阻塞调用,那么OK, 这样的目的可以达到; 而如果封装的 Facade 服务接口不支持 非阻塞,或者原子服务有其他协议,如 EJB,CICS,CORBA 等,那么可以考虑自己进行 NIO 式的改造,来提高系统的性能。

  • 大小: 24.6 KB
分享到:
评论
3 楼 fjlyxx 2008-12-01  
SOA传送机制,有意思讨论.
我觉得问题的关键不在于用什么技术好.而在于讨论用长连接还是短连接,还是混合使用.在什么情况下使用?有兴趣可以讨论下.这涉及到一个SOA网络传输的机制问题.我发个贴讨论下吧.
2 楼 raymond2006k 2008-11-10  
我理解应该是相似的。

我的体会和EDA是类似的,但它们应该又有很大不同。
EDA,我的理解,它更进一步将其由一种程序设计模式变为一种明确架构思想。

并且 event-driven 比单纯的 async,listener模式有更丰富的内涵。传统模式下 requestor 是主动,即便是异步调用,业务功能的执行也是由 请求者发起的; 而 EDA成了一种完全被动式的架构, 业务功能的执行 完全由其他某个相关的功能调用 或 数据变化引起 。
1 楼 upheart 2008-11-10  
SCA中好像规定了这种异步的回调机制,不知和你说的是否有些相似?
现在好多人除了soa之外有开始宣传EDA(event-driven architecure),我觉得和你说的也有关系,infoq上好像有不少soa和 eda直接争论的文章。

相关推荐

    分享2个文档:SOA服务治理和NIO

    NULL 博文链接:https://yankai913.iteye.com/blog/1669697

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大...NIO API 是对 1.3 版 I/O 特性的补充而非取代,因此,何时使用新的 API,何时老的 1.3 版 I/O API 更适合特定应用,也是您将学习的内容。

    NIO 入门.chm,NIO 入门.chm

    NIO入门.chm NIO入门.chm NIO入门.chm

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    java nio 实现socket

    java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

    Java NIO英文高清原版

    Java NIO英文高清原版

    NIO与零拷贝_javanio_nio和零拷贝_

    java nio和零拷贝 方面知识,适合对nio和零拷贝感兴趣的开发人员

    Java NIO系列教程(一) Java NIO 概述

    Java NIO系列教程(一) Java NIO 概述

    Java IO NIO and NIO 2 无水印pdf

    Java IO NIO and NIO 2 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...

    尚硅谷Java视频_NIO 视频教程

    尚硅谷_NIO_NIO 与 IO 区别 ·02. 尚硅谷_NIO_缓冲区(Buffer)的数据存取 ·03. 尚硅谷_NIO_直接缓冲区与非直接缓冲区 ·04. 尚硅谷_NIO_通道(Channel)的原理与获取 ·05. 尚硅谷_NIO_通道的数据传输与内存映射文件 ...

    NIO和AIO介绍

    NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍NIO和AIO介绍

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...

    java基于NIO实现Reactor模型源码.zip

    java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...

    Java IO, NIO and NIO.2 原版pdf by Friesen

    New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...

    Java IO NIO and NIO 2 epub

    Java IO NIO and NIO 2 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    JAVA NIO 按行读取大文件,支持 GB级别

    然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。 由于对于本程序 116个字节以上的行...

    Java NIO - The NIO Architecture

    自JDK-1.4开始的新I/O(NIO)为Java程序员提供了新的高效率的I/O能力。效率的提高主要来源于一个新的内存共享技术。传统上,Java内存来自JVM的堆,Native code(JNI)不能很好的与Java code共享这些Java内存,因为Native ...

    nio的excel导出

    nio的excel导出

Global site tag (gtag.js) - Google Analytics