首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

分布式服求实现细节-客户端发送流程

2012-08-13 
分布式服务实现细节-客户端发送流程1.客户从服务总线请求获取服务对象。???? 2.服务总线根据已注册的数据来

分布式服务实现细节-客户端发送流程

1.客户从服务总线请求获取服务对象。
???? 2.服务总线根据已注册的数据来找到该服务对象信息,如和客户端不在一个服务器类,返回一个远程代理,如在一个服务器类,返回一个包含本地服务对象的本地代理总之都是返回一个代理,对用户来说是透明的
???? 3.客户调代理的方法, 如该代理是本地代理,直接调本地服务对象方法,并返回就结束
???? 4.如是远程代理,远程代理先获取该远程服务器在本地对应的远程处理对象,如没有则创建一个,并缓存它
???? 5.远程处理对象根据这次请求生成一个唯一的sessionid,封装到session对象中,
???? 6.如第一次连接远程机器,则创建连接socket,并缓存到该远程处理对象中,远程处理对象同时起另外一个监视线程来监视socket输入流信息

???? 7.按照请求消息体得格式,将请求报文写入到socket的输出流中,并刷新流
???? 8.获取响应(如响应还没有到,。session对象阻塞)
???? 9.监视线程获取到了响应后,将按照响应消息体格式将响应一次读出来。并根据响应中的sessionid来匹配缓存中的Session对象。并唤醒此对象
???? 10.session对象解析响应报文,并重新序列化成对象
???? 11.远程代理将返回结果返回给调用者

注意:如果采用字节流传输,而字节是8位的,所以像Java的int (32位) 等都需要通过移位与反移位将其转化为字节来传输,否则就是失去数据

热点排行