冰果

技术群:26678700     
交流QQ: 704839634
合作: 1) 可兼职远程办公开发; 2) 有一套Go+Python开发的行业短信云平台可合作;3)目前正在开发物联网、大数据平台。

代理模式与webservice实现

        这几天分析一个我接手的系统,是一个典型的分布式系统。其中有特色的技术就是采用了webservice,
webservice从字面上分解就是web service----一个提供web服务的系统,可以通过web方式访问这些服务。
而从现实中,webservice可以说是一套标准:分布式,跨平台,跨语言等; 标准实现采用SOAP协议,SOAP
协议是基于流行的XML表达的,具有一个套封envlope, envlope里包含一个必须的body和一个可选的head;
就是在这个body里,我们声明了访问的方法、方法的参数或返回值。
        webservice实现, C++系统上采用开源的gSoap,而java采用apache的Axis。这两个框架都提供工具来
生成C++代码或Java代码,不管是gSoap或者Axis,他们生成的最终代码,客户端只需要调用简单的对象就
可以访问服务器,而服务器生成一样的接口,开发者实现这些接口就行,中间的通讯过程全部由框架解决了。
         其实这种技术架构并不新颖,早期的CORBA和DCOM, 后来java的RMI, 这些基本上都是RPC技术,大同
小异而已。而它们的背后设计模式,可以说就是23种模式之一的代理模式Proxy。简言之就是,一个客户不想
或者不能直接引用一个对象(接口),而代理对象(接口)可以在客户端和目标对象之间起到中介作用。
        按目的划分代理模式有8种:
        1、远程代理:为位于不同的地址空间的对象提供一个局域代表对象
        2、虚拟代理:根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真正创建
        3、Copy-on-Write代理:把复制拖延到只有在客户需要时才真正采取行动
        4、保护代理:控制对象的访问,提供使用权限检查
        5、Cache代理:为某个目标操作的结果提供临时的存储空间,以便多客户共享
        6、防火墙代理:保护目标,防止恶意用户
        7、同步化代理:能同时访问对象而没有冲突
        8、智能引用代理:提供一些额外操作,如访问次数统计
        显然RPC方式属于第1种远程代理模式。
        可以看出,在面对一种技术时,我们从它的定义、实现、引入目的、类似相关技术、背后理论基础来
细细分析,就比较容易掌握了。

posted on 2010-12-19 00:28 冰果 阅读(736) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理