领略分布式编程乐趣--[2]

来源:互联网 发布:plc语句表编程手册 编辑:程序博客网 时间:2024/05/16 11:07
                         领略分布式编程乐趣

RedStar81 9/9/200313/9/2003
                                               81_RedStar81@163.com
                                               TomHornson.student@www.sina.com.cn

首次修改时间:13/9/2003
                         
个人文集:http://www.csdn.net/develop/author/netauthor/RedStar81/

 

 

 

             二、几种优秀的分布式计算平台简介

 

  下面我们简要介绍一下几个优秀的分布计算平台,为下面的编程做准备.想详细了解相关技术的请参考专门的书籍.

 

1.CORBA(Common Object Request Broker Architecture)

CORBA是由对象管理组织(OMG)制定的一个工业规范.建立在OMA之上。为面向对象的应用提供一个公共的体系框架,如果符合这一框架,就可以在主要的硬件平台和操作系统上建立一个异构的分布式应用环境。初衷在于:提供一种机制,在此基础上,对象可以透明的发出请求和获得应答。通常,你可以通过下面的四种接口来使用ORB(这里指CORBA实现的核心框架):对象服务,公共设施,领域接口,应用对象。目前的CORBA实现从对象试图上看,基本都是利用存根(Stub)和骨架(Skeleton)技术的,ORB基础架构的实作来处理之,以实现对象应用的通明性。从这一点来说,DCOM的原理是相似的。我们需要关注的另一个问题是:自然CORBA只是一个规范,那么各种实现之间的通信必然会存在问题。CORBA2.0给出了ORB间的互操作协议:GIOP(Global Inter-ORB Protocol)IIOP(Internet Inter-ORB Protocol)、环境特定的ORB通信协议:ESIOP。事实上,面对MS COM/DCOM的广泛应用,OMG也投入的大量的研究来实现DCOM/CORBA的交互通信.

基于CORBA的开发,对于开发工具来说,最为重要的是实现IDL和特定语言的映射.目前比较多的CORBA开发母语为C++JAVA.比较著名的产品有:IONA公司的Orbix(基于C++)Orbix Web(基于Java).Visigenic SoftWare公司的VisiBroker(基于C++)Diagital/BEA公司的Object Broker.IBM公司的DSOM

 

2.JINI

  JINISUN公司发布的一种基于Java的分布式计算平台。JINI体系机构的目标是:提供一切异构网络中的资源以统一的视图并且保证系统的扩展性/动态性。 JINI的基本组件是:基础设施/编程模型和服务. JINI的核心理念就是:服务。一切即服务。对于服务,几个重要概念是:服务发布/服务查找/租赁/事务/事件/。它们实现了服务的一切可行操作。JINI底层通信是基于RMI的。RMI提供机制来发现/激活并收集无用对象,RMI也提供多点广播/复制及基本的安全和保密措施。严格来说,RMIRPCJava实现,不过由于Java本身特有的语言优越性,它可以实现数据和代码的移动。

 

3.WebServices

  WebServices是最新的分布式计算平台,它和JINI一样,倡导服务的思想,发布/查找/租赁服务,WebServices最为引人瞩目的可能是它使用了一套新的协议:SOAP(Simple Object Access Protocol)SOAP就是一种基于HTTPXML的轻量级应用层协议。传统的RPC基于二进制数据流,从系统健壮性来说,这种流往往是不能通过防火墙的.这就给分布系统的部署带来很大的问题.其次,SOAP基于XML,从多层架构来说,大大简化了数据处理流程,因为如果系统架构中的所有子系统都支持XML,那么显然在数据流流程中,数据转换操作就会大量的减少.WebService的编程模型:商家发布服务,合作伙伴发现服务,并集成进自己开发的系统中.

WebServices架构还应该包含一组Server Api用来帮助WebServies服务器扩展开发,和一组client Api用来帮助客户端的开发.

 

4.Voyager

下面我们来介绍一个不怎么为人知的分布式计算平台:Voyager.可以这样说,这个平台是我见过的最为强大的平台.它是美国ObjectSpace公司的旗帜产品.Voyager的第三代产品已经结成了RMI/CORBA/DCOM,而且可以在运行期生成远程对象的代理,这样就不需要rmic或是Voyager先前版本中使用的增强性rmic : vcc.总体来说,Voyager的功能如下:

1)      远程对象.

基于Voyager,Server,你只需要先产生一个本地对象,然后调用Proxy.of(Object obj)即可得到可以远程调用的对象.而在RMI或其它的分布对象技术中,一般需要实现Remote接口,然后通过编译器生成骨架(Skeleton),这里的Server端代理是运行时动态生成的.

2)      远程引用

3)      远程对象生成

这是个可能你认为不可思议的功能,客户端可以在远程服务器上生成对象。

4)      异常处理

Voyager系统中,异常不在远程处理而是在本地处理.这样增加了系统的安全性能。

5)      名字服务

6)      分布式垃圾回收

只有在对象的本地和远程引用全部不存在的时候,对象才可以回收。

7)      对象迁移

你知道Java代码可以迁移,但是对象是不可迁移的,然而Voyager可以使你的梦想变成现实.这是非常令人兴奋的一个功能。

8)      移动代理

对象的移动自主性.支持IBM Agelets编程.

9)      appletapplet的通信

严格来说,applet只能和它的宿主主机进行通信,然后Voyager使得你可以在服务器上设计一个联系中心来实现不同机器上的applets之间的通信.

10)   群组通信

采用多播技术或是事件驱动的发布-订阅应用得以轻松实现.这里有点像JavaSpace中的对象空间技术,不过更加强大和复杂.

11)   激活

那些在远程对象数据库中的对象可以自动重新激活并加载到内存中。

12)   独立于数据库的分布式持久化

Voyager通过VoyagerDB技术来实现数据的持久化.

13)   ORB

Voyager有一个自己的ORB,可以用来和其它的分布式系统作集成.

14)   CORBA

15)   RMI

16)   DCOM

看到没,如果说曾经你为DCOM/RMI/WS等技术兴奋不止,那么我想你一定会非常喜欢这个号称来自得克萨斯州的撒旦(SUN/IBM这些巨人都曾经很震惊于这个产品)的产品。其实,基于这种系统,下面还有更为美妙的关于基于虚拟地板设计原生分布式语言Dejay的设计。你可以从www.objectspace.com获得这个产品。

  

 

 

待续:

  

.   几种分布式对象计算技术简介

.   几种分布式语言简介

 

Part2.实践

.   分布式编程实践

1.       ObjectSpace Voyager

2.    DCOM

3.    CORBA

4.       WebServices

5.         Sun RMI  VS. dotNET Remoting

6.         LindaSun JavaSpace ,IBM Tspace

7.         JINI

8.         Emerald VS. Dejay

9.         Pjama

10.     IBM Mobile Computing Interface : Aglets

.综合应用分析

1.       利用多线程和分布对象计算技术模拟高性能并行计算

2.       利用Vdejay计算几何分形图

 

 

 声明:

1。本人不是专门研究分布式的,完全出于兴趣写下这篇文章.希对分布式计算应用爱好者有所帮助。
2
。水平有限,欢迎指正。
3
。由于本文讲述内容较多,很多讲述不可能太细致。而且考虑到读者群的问题,理论性内容尽量的省略。
  
如果读者有兴趣,可参考列出的参考书籍和网络资源。

4。可任意的转载、不过请注明出处;不可用于商业用途。