S J*_*S J 2 distributed-computing
我打算从我的大学攻读硕士学位,Networks and Distributed Systems.虽然我不确定我是否会被录取,但我还是想为此做好准备.我现在对分布式系统唯一了解的就是我在Tanenbaum的Modern Operating Systems书中所读到的(我非常喜欢这种方式),这本书非常简单.当然我打算下一本关于分布式系统的书,但我想我曾在这里问过一次.
是否有任何特定的书籍,编程语言(最重要的)或任何我可以预先准备的计算机科学的特定概念?我有3个月的时间.
任何建议都会受到欢迎.包括对课程本身的评论:)
创建一个简单的客户端 - 服务器应用 它可以是Java或您最喜欢的语言.如果您不熟悉Client - Server的内容,请从您最熟悉的语言开始.然后,如果您计划参加的大学使用其他编程语言,请尝试在模仿他们使用的环境中重新创建相同的程序.
我见过的人在编程方面并不是那么糟糕,但从未编写过简单的客户端/服务器应用程序.或者其他不熟悉Linux和Java的人.前几个月对这些人来说非常困难.在课堂上已经有足够的东西可以学习,同时学习新的操作系统和/或语言通常并不酷.
您可以执行的典型客户端/服务器应用程序是"数学提供程序服务".基本上,您的服务器侦听端口,客户端发送请求.为了简单起见,您可以发送纯文本请求(例如:"add; 12; 34"),服务器可以回复类似"answer:46"的内容.
这不是太复杂,但如果你从来没有做过这样的事情,那么在开始你的主人之前我真的会这样做.
了解"如何"做事.这是非常重要的.你可以期待主人有点理论,他们可能不会教你如何打开一个套接字,将它绑定到一个端口,你可以期待什么样的异常(是的,我用Java编程)等等.您很可能会期望实现锁定算法,负载平衡等等.但是为了做到这些,你需要了解如何做基本的东西!
如果你是初学者,我推荐分布式系统:George Colouris的概念和设计(这个名字可能有点错误,这是我的头脑).它涵盖了几乎所有内容,基础知识,Lamport,TCP/UCP/IP.例如,该书中客户端/服务器的java示例,imo,比你在网上找到的任何东西要好得多.没有完全不同(服务器是服务器......)但我认为它们更容易理解.
一旦熟悉了这一点,您可能想尝试更强大的功能.根据我的经验,你会花很多时间配置东西(为什么它不起作用?Ho!这是claspath!Ho!那个文件不是世界可执行的!Ho!这些类应该在WEB-INF /中类,而不是WEB-APPS).所以你可以尝试在家里设置一个小的Tomcat/Glassfish服务器.尝试在其上运行SOAP或JMS,并对使用这些服务的客户端进行编码.那么,你将比你的同事领先几英里:)