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

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

RedStar81 9/9/200313/9/2003
                                               81_RedStar81@163.com
                                               TomHornson.student@www.sina.com.cn<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

 

   

                       三、几种分布对象计算技术简介

  总的来说,传统的分布对象技术DCOM/RMI/CORBA/Remoting等无一例外的,基于代理/存根架构。由客户端和服务器端基础服务控制器来通过RPC或是类RPC(这里每种的具体情况又很多,如早期的DCOM还涉及LPC,更重要的是由于历史和这些技术运行平台的演化,技术本身从实现上来说,有本质的区别.)来列集/散集(序列化技术/反序列化).

  DCOMMS COM+的分布式计算的基础.

  RMISUN JINI底层通信采用的分布式对象计算技术.

  RemotingMS dotNET平台分布对象计算新技术.

这里我想谈谈DCOMRMI从上面提及的所谓平台演化角度看实现本质的问题,我们不谈Remoting的比较,因为基本上,RMIRemoting在寄于的平台这个角度来说,没什么区别.
  COM(Component Object Model)
初衷是特定的历史时期寻求二进制级别上的软件复用,克服语言/编译系统带来的诧异而产生的技术,从历史走来,如今基于COM的技术和应用已经比较成熟当然也异常的复杂,体系结构异常庞大,原因在哪?个人感觉,在于这只是一种技术,永远逃避不了底层系统的束缚和影响,从基础的二进制重用就堆砌了大量的实现技术细节,一层层叠加,最后不可避免的,体系机构异常复杂.然而Java来了,dotNET来了,他们都基于Virtual 平台,一个Class,天然的就是一个Assembly,是可重用的,不需任何的额外技术来支持。天大的诧异就从这里开始.如今的Java Applet/.NET下多种Control 的开发复杂度和功能都比基于COMControl有着不可比拟的优越性.这样基于COMDCOM自然也继承了这等劣势.另外一点:RMI/Remoting可以说呈现给客户的都是对象视图,DCOM是接口视图.这一点也算是本质上的区别.

 

 

                                四、几种分布式语言简介

  什么样的语言才能叫分布式语言?

  Java?C#?SmallTalk?Dejay?

  你注意到目前的分布式开发是怎样的一种形式?正如开始讲的,我们目前的分布式计算技术走: 在网络上部署分布式计算环境(中间件的形式部署,这里可能MSDCOM与系统的集成度较高),并且提供开发的工具和公共服务,支持分布式应用,实现资源的共享和协同工作这条路,现在的分布式开发核心基本还定位在在什么样的基础架构上作开发,你用过原生支持分布式计算的语言?我们下面提及的两种典型的语言:EmeraldDejay。其中,只有Emerald算是较为纯粹的分布式编程语言,Dejay则是基于我们上面提及的ObjectSpace公司的VoyagerJava开发的,当然从语法上,还算比RMI等东西更靠近分布式编程语言范围这一层.

  Emerald20世纪80年代,由华盛顿大学开发的一门兼面向对象和分布特性的语言,为分布式应用编程提供了方便.它的研发重点之一就是分布式方面的处理。这门语言首先算是一门较为纯粹的面向对象语言,当然了,当你亲生接触它的时候,请不要以现代的OO语言来看待它,也不要说它很怪异,因为毕竟不谈分布式特性,OO80年代,也算很新的技术,它的所有语言机构都是基于单一的对象模型,所有的结构和数据类型都是由对象代表.详细请参考: http://www.cs.ubc.ca/nest/dsg/emerald.html或是http://www.eci.ie/first.asp

  Dejay是汉堡大学的一个研究项目。它基于VovagerJava语言开发的。Dejay遵循的目标就是开发一门基于Java的分布式编程语言,用来促进分布式应用的发展.这门语言由于基于voyager,从语法层次上,很容易的支持远程对象,对象迁移,名字服务,持久化,异常处理等特性。后面我们会好好的利用这门语言来体验分布式编程的乐趣的。请访问www.dejay.org .

 

 

 

 

Part2.实践
                    
五、分布式编程实践

下面,我们就来亲身领略分布式编程带来的兴奋和乐趣.当然了,这里基本上,用较为基础的例子,然后加上解说。想系统和深入地掌握这些技术,你需要自己去涉猎相关专业书籍.。本文重在引导和激发大家的学习兴趣。

 

1.ObjectSpace Voyager

  Voyager基本来说,是一个库和一个运行期环境。充当存在于系统(OSJVM)之上的底板。支持分布应用的各种行为特性。你可以从www.objectsapce.comwww.dejay.org得到这个产品。解压后,你将得到如下文件:

            /bin             Voyager utilities

        /doc            Documentation files

          /examples       Example files

/lib             voyager2.0.0.jar file (Voyager .class files)

/voyagerDb       Support Distributed Data Persistence

像设置JDK一样,你需要设置一下PATHCLASSPATH环境变量.(:我从Dejay下载的,发现/bin下的文件并不是可执行的,原因尚不清楚.这里面有两个小工具cgen/igen和一个Voyager运行时启动程序。既然这里的文件是不可执行的,那么下面将要讲解的从控制台启动Voyager就不可以了,只能通过编程实现.)

 

1)程实现运行时环境的启动

import com.objectspace.voyager.*;

public class VoyagerStart{

     public static void main(string[] args){

         try{

             Voyager.startup();

         }catch(StartupException exception){

         System.err.println(“Voyager is already running.”);

}

Voyager.shutdown();

}

}

  

请注意,上面的程序演示了一个客户端运行时环境的启动,要启动一个Server端的Voyager,需要指定端口号,这样才能远程寻址到它的服务。如:

Voyager.startup(“9000”);

 

 

 

待续:

 

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

 

 


领略分布式编程乐趣

领略分布式编程乐趣--[1] 领略分布式编程乐趣--[2] 领略分布式编程乐趣--[3] 领略分布式编程乐趣--[4] 领略分布式编程乐趣--[5] ...
  • tiaohh
  • tiaohh
  • 2005年01月25日 11:11
  • 751

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

                      领略分布式编程乐趣RedStar81 于9/9/2003~13/9/2003                                        ...
  • RedStar81
  • RedStar81
  • 2003年09月16日 12:16
  • 1868

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

                                领略分布式编程乐趣RedStar81 于9/9/2003~13/9/2003                              ...
  • RedStar81
  • RedStar81
  • 2003年09月16日 12:07
  • 2752

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

                     领略分布式编程乐趣RedStar81 于9/9/2003~13/9/2003                                         ...
  • RedStar81
  • RedStar81
  • 2003年09月16日 12:16
  • 1966

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

                         领略分布式编程乐趣RedStar81 于9/9/2003~13/9/2003                                     ...
  • RedStar81
  • RedStar81
  • 2003年09月16日 12:09
  • 2502

是否享受编程过程中的乐趣在很大程度上决定了是否真正热爱编程!

我的编程乐趣,可分为两大类:     1、编程过程中的乐趣;     2、项目完成后的乐趣。     第2种乐趣是大家都能理解的,但是第1种乐趣,才是我真正爱上编程的原因。因为不可能初...
  • zhaozhanyong
  • zhaozhanyong
  • 2010年09月16日 17:05
  • 522

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

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

编程,乐趣何在?

1.   什么是软件开发?软件最基本的目标是让计算机硬件(运算/存储/输入输出)按照人们预想的规则来工作。我们又管软件叫程序,软件工程师定制编写一个“顺序、序列”,机器就按照这个序列来执行。软件开发,...
  • lotomer
  • lotomer
  • 2009年09月02日 11:26
  • 879

7个顶级心理预言(三)规划的寓言:把一张纸折叠51次

想象一下,你手里有一张足够大的白纸。现在,你的任务是,把它折叠51次。那么,它有多高? 一个冰箱?一层楼?或者一栋摩天大厦那么高?  不是,差太多了,这个厚度超过了地球和太阳之间的距离。   【心...
  • natian306
  • natian306
  • 2011年01月26日 10:42
  • 484

编程使我快乐

C语言学号 本人学院目录C语言 目录 C语言是什么 C语言的优势 1简洁紧凑灵活方便 2运算符丰富 3数据类型丰富 4表达方式灵活实用 5允许直接访问物理地址对硬件进行操作 6生成目标代码质量高...
  • Babysbreathe
  • Babysbreathe
  • 2016年10月09日 01:19
  • 605
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:领略分布式编程乐趣--[3]
举报原因:
原因补充:

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