2

我打算在我的大学攻读硕士学位Networks and Distributed Systems.虽然我不确定我是否会被录取,但我想提前做好准备。到目前为止,我对分布式系统的唯一了解就是我在 Tanenbaum 的Modern Operating Systems书中读到的所有内容(顺便说一句,我完全喜欢这本书),这非常少。当然,我接下来打算买他关于分布式系统的书,但我想我曾经在这里问过一次。

是否有任何特定的书、编程语言(最重要的)或任何特定的计算机科学概念我可以事先准备好?我有3个月的时间。

任何建议都会受到欢迎。包括对课程本身的评论:)

4

2 回答 2

9

创建一个简单的客户端 - 服务器应用程序。它可以是 Java 或您最喜欢的语言。如果您不熟悉客户端 - 服务器内容,请从您最熟悉的语言开始。然后,如果您计划就读的大学使用另一种编程语言,请尝试在模仿他们使用的环境中重新创建相同的程序。

我见过一些在编程方面还算不错的人,但从未编写过简单的客户端/服务器应用程序。或者其他不熟悉 Linux 或 Java 的人。对这些人来说,最初的几个月非常艰难。在课堂上已经有足够的东西要学习,同时学习新的操作系统和/或语言通常并不酷。

您可以执行的典型客户端/服务器应用程序是“数学提供者服务”。基本上,您的服务器侦听端口,客户端发送请求。为简单起见,您可以发送纯文本请求(例如:“add;12;34”),服务器可以回复类似“answer:46”的内容。

没什么太复杂的,但如果你从来没有做过那样的事情,我真的会在你开始师父之前做到这一点。

了解“如何”做事。这非常重要。您可以期望大师有相当多的理论知识,他们可能不会教您如何打开套接字,将其绑定到端口,您可以期待什么样的异常(是的,我正在用 Java 编程)等等。您很可能需要实现锁定算法、负载平衡等。但为了做到这些,你需要了解如何做基本的事情!

如果您是初学者,我推荐 George Colouris 的《分布式系统:概念与设计》(这个名字可能有点不对,这是我的想法)。它几乎涵盖了所有内容,包括基础知识、Lamport、TCP/UCP/IP。例如,那本书中的客户端/服务器的 java 示例,imo,比你在网上找到的任何东西都要好得多。没有完全不同(服务器就是服务器......),但我认为它们更容易理解。

一旦你熟悉了这一点,你可能想尝试一些更强大的东西。根据我的经验,你会花很多时间配置东西(为什么它不起作用?嗬!这是 claspath!嗬!那个文件不是世界可执行的!嗬!这些类应该在 WEB-INF/类,而不是 WEB-APPS)。所以你可以尝试在家里设置一个小的 Tomcat/Glassfish 服务器。尝试在其上运行 SOAP 或 JMS 并编写使用这些服务的客户端。然后,您将远远领先于您的同事 :)

于 2010-10-15T20:20:04.263 回答
1

剑桥大学出版社的《分布式计算 - 原理、算法和系统》一书也是分布式计算大师的好书,因为它涵盖了所有关键的 DC 概念

于 2015-02-28T14:16:00.307 回答