我打算在Networks and Distributed Systems.
从我的大学攻读硕士学位。虽然我不确定我是否会被录取,但我还是希望事先做好准备。我现在对分布式系统唯一了解的就是我在Tanenbaum的Modern Operating Systems
书中所读到的(顺便说一句,我完全喜欢),这本书就是这么简单。当然我打算下一本关于分布式系统的书,但我想我曾在这里问过一次。
我是否可以预先准备任何特定的书籍,编程语言(最重要的)或任何特定的计算机科学概念?我有3个月的时间。
任何建议都会受到欢迎。包括对课程本身的评论:)
答案 0 :(得分:9)
创建一个简单的客户端 - 服务器应用程序。它可以是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,并对使用这些服务的客户端进行编码。然后,你将比同事领先一步:)
答案 1 :(得分:1)
本书"分布式计算 - 原理,算法和系统"通过剑桥大学出版社也是分布式计算大师的好书,因为它涵盖了所有关键的DC概念