在今天的软件工业中,远程引用技术是被许多公司所采用的一种强大而又复杂的架构技术。但是当网络服务技术遇到这种复杂情况的时候,会发生什么事呢?
在这篇文章中,我们将放眼远程引用技术的原则并将此项技术与Web服务技术相结合的含义。
什么是远程引用? 远程引用是通过透明定位概念提供的分布式对象,这意味着用户用不着去关心这种远程引用的来源。
透明定位原理可以在两个前提下考虑:物理上的和逻辑上的。物理分布式对象的含义是这个远程对象位于其它的物理机上;与此相反,逻辑分布式对象是指包括运行在与用户相同的逻辑及物理机上的整个分布式对象集合体。
就是这项技术的例子有通用对象请求代理架构构(CORBA)、远程调用(RMI)、Enterprise Beans(EJB)、分布式组件对象模型(DCOM)和.NET Remoting。
远程引用的工作原理 分布式对象的信息流有五个关键部分组成:
1.远程对象--这是分布式对象中实际运行的部分。 2.远程程序调用(RPC)框架--这是远程对象所在的同一机器上运行的中间件,它负责解编组(unmarshalling)参数数据,为远程对象设置命令,以及将所有返回数据编组返回给客户。 3.传输机制--这是处于用户段和远程之间用于装载数据的信息交流通道和连接通道。 4.远程程序调用接口--这是运行在用户机器上的中间层代码,它的作用是排列输入的参数,将名利传送给传输机,接收任何相应数据,以及解编组(unmarshal)这个数据给用户。5.客户应用程序--这是各地应用客户初始远程引用调用的要求。
上面五部分非常适合Web服务的框架模式。在一个典型的Web服务过程中,你将拥有Web服务的全部,它包括接受请求的SOAP,作为传输用的SOAP(XML),客户方的代理要求,以及客户和消费者的应用。
应该注意避免的问题 如果一个Web服务器框架的整个前提是围绕着远程引用原则建立的,那我们不禁要问为什么有人要尽量避免使用远程引用呢。解答这个问题的钥匙就在他们之间的联系之中,或者说存在于网络服务的构建之中,这种网络服务是在已有的远程引用应用程序上执行的。 如果你要构建一个调用了远程引用的网络服务器,那就意味着我们有很多要做的;首先是怎样将通过Web服务得到的远程引用中的无规律的响应信号转变为连续的数据。 有可能你的远程引用应用程序也是使用单一的语言编写的,比如Java和。但是当你通过Web服务向这个程序施加命令的时候会发生什么事呢?有可能这个远程引用程序有他自己广大的目标对象库。其中,这些通过网络服务数据的顺序化和通信是我们最应该避免的。 分布式对象技术也有非常先进的碎片帐集合管理对象生命周期功能。远程调用程序意识到所有目标对象的情况,从而对他们进行管理。在应用中通过Web服务来传递这些目标对象,可能会导致不好的结果。
提供几种选择供你考虑 并没有硬性规定说在Web服务中使用远程引用是一个糟糕的技术,以至于我们要避免它。但是,如果你们的公司现在正在对你们的网络服务使用远程引用的话,慎重的考虑其缺点是非常明智的。
最好的办法就是构造一个原型,然后扩展它的性能,并对其进行测试。你会发现这不仅对于为你的常规对象构造一个调度模型更加有效,而且也更加有利于为常规对象构造网络服务对象库,使得网络服务仍然能够完全适合共享的网络服务框架。
【责编:admin】
--------------------next---------------------
阅读(183) | 评论(0) | 转发(0) |