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

原创 2003年09月16日 12:09:00
                         领略分布式编程乐趣

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。可任意的转载、不过请注明出处;不可用于商业用途。

 

 

编程的乐趣——《人月神话》摘录

最近在读《人月神话》,收获颇多,摘录与大家共享。   编程为什么有趣?作为回报,它的从业者期望得到什么样的快乐?  首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创建事...
  • huwell88
  • huwell88
  • 2013年06月18日 22:28
  • 913

漫谈程序员系列:软件开发的十八般乐趣

到底程序员有多少种快乐……
  • foruok
  • foruok
  • 2014年11月24日 07:21
  • 21129

读书笔记9 《发现的乐趣》 理查德-费曼

他不属于某一个时代,而属于所有世纪 天籁本身以他的心裁而得意,穿起他的诗句来好不欢喜...
  • m0_37890694
  • m0_37890694
  • 2017年03月19日 10:25
  • 625

用 Hadoop 进行分布式并行编程(三)部署到分布式环境

转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/
  • guzicheng
  • guzicheng
  • 2014年11月07日 12:03
  • 1086

机器学习概述----机器学习并没有那么深奥,它很有趣(3)

编者按:在科技圈,如果你不懂“机器学习”,那你就 out 了。当别人在谈论机器学习娓娓道来时,你却一头雾水,怎么办?在跟同事的聊天中,你只能频频点头却插不上话,怎么办?让我们来做些改变!Adam Ge...
  • yuxin6866
  • yuxin6866
  • 2017年01月12日 10:13
  • 522

Effective Java中文版(第2版)

编码平添乐趣,程序更加完美,高效成为习惯,工作如此轻松。 正如封面上Java之父James Gosling所说的:“我很希望十年前就拥有这本书。可能有人认为我不需要任何Java方面...
  • ysjian_pingcx
  • ysjian_pingcx
  • 2014年02月20日 12:49
  • 2024

C++并发编程概述——关于并行编程分布式编程

对于并发编程的诸多方法本人一直感觉到混乱,刚好最近看了一些资料,觉得是时候系统的梳理一下了。以下资料大部分来自《C++并行与分布式编程》,英文版叫《Parallel and Distributed P...
  • njustzj001
  • njustzj001
  • 2015年06月26日 10:06
  • 2852

编程的乐趣与苦恼

职业的乐趣 编程为什么有趣?作为回报,它的从业者期望得到什么样的快乐?   首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创建事物,特别是自己进行设计。我想这种快乐是上帝创...
  • conansix
  • conansix
  • 2014年06月21日 08:55
  • 5860

领略千变万化的Android Drawable (二)

转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52160092 出自【zejian的博客】 关联文章: 领...
  • javazejian
  • javazejian
  • 2016年08月19日 08:47
  • 2880

编程职业的乐趣

编程职业的乐趣 美酒的酿造需要年头,美食的烹饪需要时间;片刻等待,更多美味,更多享受。 编程为什么有趣? 作为回报,它的从业者期望得到什么样的快乐? 首先是一种创建事物的纯粹快乐。...
  • kiss_xiaojie
  • kiss_xiaojie
  • 2017年06月23日 22:37
  • 66
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:领略分布式编程乐趣--[2]
举报原因:
原因补充:

(最多只允许输入30个字)