最近在研究分布式应用,比如 分布式系统,中间件,分布式数据库,分布式数据处理。使我对进程线程,内存模型,通讯,协议等有了更进一步的认识和体会。更让我想起以前的一句话 “网络就是计算机”,互联网是一种趋势,云计算,SOA 理论架构的成型使我认识到,做为软件人员,你不得不或者必须深入了解分布式原理,分布式计算模型,以后不管出现什么技术,可以很快的上手。其实计算机就那么点东西(老师说的,嘿嘿)。
最近,给研究生讲了下《RMI 原理及应用》。看看对你有用吗? 可以下了看看。
/Files/Jack2007/rmi_jack.pdf
体会:一直以来,每次讲东西,人一多就有点紧张,一紧张就讲的快,下面的学生就没感觉。真的要历练啊。学学以前的老师,讲的很慢,句句是道理。很是佩服,以及她的讲课风格,我很喜欢,我的楷模。可能我不适合做学问,适合做工程,呵呵,我喜欢软件,我更喜欢做软件的人!
本人也在学习管理方面的知识,比如中国人性管理,软件开发管理等等,希望和大家一起讨论,呵呵。
个人体会:
1. 分布式系统其实就是进程集,进程之间本质上是通过消息传递的,只不过在我们这个抽象层次,看到的都是对象,似乎就像单进程引用一样,很多技术比如 CORBA, RMI, DCOM, EJB 都抽象到了对象这一层,屏蔽了底层细节! 既然分布式都是一样的,那么为什么有这么都技术,一. 应用的领域不同。二. 抽象的层次不同,其实人们为什么去抽象一些东东,应该是关注点的转移,比如 SOA 的提出,就是将对象或组件的关注点转移到了业务这个层面!
2.分布式系统就像一个团队一样,每个成员都是个进程,都是系统的一个核,单单要某个核干活,你会把他宕了。这是就需要个调节者,那就是项目经理,有时经常听人说项目经理是搞管理的,其实我不为然,管理的本质就是协调,你说你是管理,只能说你还不成熟,呵呵。每个管理者都想让每个核发挥最大的潜能,这就是分布式系统的目标,也是一个团队的目标,网格和云计算等分布计算模型,暗示了,分布式的管理模式是可行的。
3.我们都知道目前在分布式领域的最高抽象就是 SOA, 有人说 SOA 的目的就是集成和重用,更有人说 SOA 就是一种理念和方法论,统统太抽象了,个人认为 SOA 可以分两个阶段或者方式走,1. 在原有的系统和应用之上构建服务,再编排组装成企业业务。2. 完全走 SOA 的方式开发系统比如用到的 SCA, SDO , ESB 等技术和观念。说白了 SOA 的最终目标就是企业业务,通俗讲就是对企业利润
的支持。
4. 常听朋友说:“对事不对人”,“从不抱怨 (never blame)”等等的话,不知道他们从哪里学的,其实在中国这些东西都是不适合的,在你的公司企业里你认为 “对事不对人” 这句话有用吗?在国外,同事之间可以因为某个问题争辩的面红耳赤,会后照常做事,照常是朋友。中国呢?大家都晓得。“从不抱怨 (never blame)” 只能证明你正在抱怨,中国人很少就事论事的,应为中国人的事实脱离不了人的,而外国人就不一样,不要盲目的学习外国的经验。其实管理上我们用不着学外国,因为中国人本来就有自己的管理办法。
5. About personality, real beauty comes from learning, growing, and loving in the ways of life. That is the Art of Life. You can learn slowly, and sometimes painfully, by just waiting for life to happen to you. Or you can choose to accelerate your growth and intentionally devour life and all it offers. You are the artist that paints your future with the brush of today. Paint a Masterpiece.
God gives every bird its food, but he doesn't throw it into its nest. Wherever you want to go, whatever you want to do, it's truly up to you.
6. 时间是什么时候出现的,为什么会有时间的观念?其实逻辑和推理是与时间一起产生的,他们共同的本原就是”序“,当原始人发现万物有序时,时间就诞生了,人们也就会推理简单的事,有了逻辑思维了。在分布式系统中,时间是个很重要的概念,可能在以往的开发中人们很少注意到,因为在一个进程中, process 是有 step 的,那就是他的序,你可以用物理时间也可以用逻辑时间来表述。为了发现事物的演进逻辑,我们必须给每个事件或状态一个时间戳,来标识他的 “序”,在分布式系统中就是时间同步。同步有很多方式(就是我们常说的算法!),有时间可以研究研究!
7. 对于分布式系统的任何一个 point 可以分为四个层次,他们是进程->服务->容器->对象,我们做一个简单应用的时候很少考虑前面三层,只是关心我们的业务对象及其交互,我们都有进程的概念,在一个进程里可以提供一个或多个服务,每个服务我们都知道是用 IP+Port 来定位的,在每个服务中都有一个或多个容器,容器负责对象的管理。大家都知道 IIS,tomcat 之类的 web 服务器,比如 tomcat 他就是 jsp 和 servlet 的容器,再有就是 JBoss, weblogic 等等 EJB 容器,所以我们对容器的概念并不陌生。
本博客为学习交流用,凡未注明引用的均为本人作品,转载请注明出处,如有版权问题请及时通知。由于博客时间仓促,错误之处敬请谅解,有任何意见可给我留言,愿共同学习进步。