`
jxb1016
  • 浏览: 22175 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
  随着软件的不断发展,技术不断更新,越来越多先前开发的系统在逐渐的不能适应新的系统,为了更好的使原来的系统接入新的平台,我们毫无疑问的要用到通讯手段。
  我们今天探讨的通讯手段,主要包括两个方面:
  一是同一个应用内部的通讯,二是不同应用的通讯。
  在同一个应用程序中,我们采用的通讯手段,最常见的就是方法调用,在调用方法的时候将有用的数据作为参数传入要执行的方法,而处理后的有用的数据通过方法的返回值来出给所需者;其次是事件触发的方式,一个事件的发生,也是一种数据的产生,然后触发器就会因为此事件而被触发做某事,虽然这种方式没有明显的数据对象的流动,但是也是一种数据的传递,这种数据就是事件(event);再次就是内部的异步处理,通常用个BlockingQueue去作为两个线程间的中介者,数据讲从一个线程放入queue中,然后另一个线程从queue中取出;然后还有就是每一步都将处理后的数据持久化,并更新处理状态,这样从整体上看也算是一种数据的流动,还有很多,大家可以帮我补充……这些从抽象上讲都是叫通讯。
  在不同的应用程序中,我们采用的通讯手段,常见的有以下的几种:
  socket通讯,webservice通讯,中间件通讯,rmi等。为什么socket排第一呢?因为socket的有太多的通讯产品底层都是基于socket通讯的,它比较灵活,传输协议常用的两种,一个是TCP,另一个是UDP,这两种都是传输层协议,任何游离在网络上的通讯,都需要建立在传输层协议之上,然后它可以根据用户间不同的约定实现各种自定义应用层协议,比如:你我约定,我给你发送的消息是字符串,前八位是代表后面报文的长度,然后你就按这种规则将接到的报文解析出来,如果你不知道,那么就不知道报文从何开始,从何结束,这样比较安全。socket通讯写好了,很快。webservice呢?也是夸语言的通讯机制,底层是soap协议,多种语言都支持,它是同步通讯机制,大报文频率高的不宜用它;关于中间件通讯,是目前最流行的,安全,稳定,可靠性强,负载均衡能力好。rmi也是类似socket的一种通讯,但是基于socket的底层。
   不管哪种通讯方式,我们主要关注的是如下几个问题:
   1,数据的流向,当发生异常的时候,我们的数据怎么处理。
   2,我们的通讯程序运行时的监控。
   3,我们通讯的机制,同步还是异步,长连接还是短连接
   4,我们的通讯性能问题,考虑资源释放
   5,我们的通讯是否带有自动修复的能力。
以上就是我简单的和大家探讨下java的通讯,不全,希望大家多多补充。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics