分布式系统之我见

最近在研究分布式应用,比如 分布式系统,中间件,分布式数据库,分布式数据处理。使我对进程线程,内存模型,通讯,协议等有了更进一步的认识和体会。更让我想起以前的一句话 “网络就是计算机”,互联网是一种趋势,云计算,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 容器,所以我们对容器的概念并不陌生。

本文转自BlogJava 新浪blog的博客,原文链接:分布式系统之我见,如需转载请自行联系原博主。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/337008

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。