基于对象的体系结构
在基于对象的分布式系统中,对象的概念在分布式实现中起着极其关键的作用,从原理上讲,所有一切都可以作为对象抽象出来,而客户端讲以调用对象的方式来或得服务和资源,分布式对象之所以成为重要的泛型,是因为它相对比较容易的把分布特性隐藏在对象接口后面,另外,因为对象可以是任何事务,所以它也是构建系统的强大泛型。
分布式对象
把接口和实现这些接口的对象进行分隔,对于分布式系统是至关重要的,严格的隔离允许我们把接口放在一台机器上。而使对象本身驻留在另一台机器上面,这种组织通常称为分布式对象。
类似于这种
当客户绑定到一个分布式对象时,就会把这个对象的接口实现—–称为代理 —–加载到客户的地址空间中去,代理类类似于RPC系统中的客户存根,他所做的事情是把方法调用进编组消息中,以及对应答消息进行解组,把方法调用的结果返回给客户,实际对象则驻留在服务器计算机上。它在这里提供了与它在客户机上提供的相同的接口。 进入的调用请求首先被传递给服务器存根,服务器存根对他们进行解码,并把应答消息转发给客户端代理。
服务器存根通常被称为骨架,因为它提供了明确的方式,允许服务器中间件来访问用户定义的对象,实际上,它通常以特定于语言的类的形式包含不完整的代码,需要开发人员进一步对其进行特殊化处理。
大多数分布式对象的一个特性是他们的状态不是分布式的。状态驻留在单台机器上,在其他机器上,智能的使用被对象实现的接口。这样的对象也被称为远程对象。分布式对象的状态本身可能物理的分布在多台机器上,但是这种分布对于对象接口背后的客户来说是透明的。