16

アプリケーション サーバーとオブジェクト データベースの組み合わせであるプロジェクトに取り組んでおり、現在は 1 台のマシンでのみ実行されています。少し前に、分散リレーショナル データベースについて説明している論文を読み、その論文のアイデアを自分のプロジェクトに適用する方法についていくつかのアイデアを得ました。 -何もない建築

私の問題は、分散システムとそのプロトコルの設計経験がないことです。大学で分散システムに関する高度な CS コースを受講していません。そのため、デッドロック、飢餓、スプリットブレインなどの問題を引き起こさないプロトコルを設計できるか心配しています。

質問:分散システムの設計に関する適切な資料はどこにありますか? 分散プロトコルが正しく機能することを確認する方法には、どのようなものがありますか? 書籍、学術論文などの推薦を歓迎します。

4

7 に答える 7

10

分散コンピューティングの学習は簡単ではありません。コミュニケーション、セキュリティ、信頼性、並行性などの分野をカバーする非常に広大な分野であり、それぞれを習得するには何年もかかります。理解は、最終的には多くの読書と実践的な経験を通してもたらされます。あなたは最初はやりがいのあるプロジェクトを持っているようですので、ここにチャンスがあります:)

分散コンピューティングに関する最も人気のある2冊の本は次のとおりです。

1)分散システム:概念と設計-George Coulourisetal。

2)分散システム:原理とパラダイム-ASタネンバウムとM.ヴァンスティーン

これらの本は両方とも、成功する分散システムを構築するために使用されている現在のアプローチ(通信プロトコルを含む)の非常に良い紹介を提供します。私は個人的に後者を主に使用しましたが、それは優れたテキストであることがわかりました。アマゾンでのレビューがあまり良くないと思うなら、それはほとんどの読者がこの本をASタネンバウム(IMOはコンピュータサイエンスの分野で最高の著者の一人です)によって書かれた他の本と比較しているからです。

PS:新しいプロトコルを設計して検証する必要があるかどうか本当に疑問です。アプリケーションサーバーとデータベースを使用している場合、必要なものはおそらくすでに利用可能です。

于 2009-02-08T06:48:25.587 に答える
3

Andrew S. Tanenbaum と Maarten van Steen によるDistributed Systems: Principles and Paradigmsという本が好きでした。

于 2009-02-07T17:59:18.727 に答える
2

より抽象的で形式的なレベルでは、Communicating and Mobile Systems: The Pi-Calculus by Robin Milnerは、システムを検証するための計算を提供します。プロトコルを検証するための pi 計算には、SPI 計算 (私が最後に見た後にウィキペディアのページが表示されなくなった) やimplementationsなどのバリエーションがあり、そのうちのいくつかは検証ツールでもあります。

于 2009-02-07T18:33:44.913 に答える
2

分散システムの設計に関する適切な資料はどこにありますか?

ナンシー・リンチの有名な本を読み終えることができませんでした。ただし、Sukumar Ghosh Distributed Systems: An Algorithmic Approachの本の方がはるかに読みやすく、必要に応じて元の論文を参照していると思います。

とはいえ、私がGerard TelNicola Santoroの本を読んでいなかったのは事実です。たぶん、それらはまだ読みやすいです...

分散プロトコルが正しく機能することを確認する方法には、どのようなものがありますか?

可能性を調査するために (そして質問を理解するためにも)、本Software Specification Methodsから可能なツールの概要を取得することが役立つと思います。

私の最終的な決断は、TLA+ を学ぶことでした。なんで?言語とツールが優れているように見えても、TLA+ を試してみることにしました。その背後にいる人物が Leslie Lamport だからです。つまり、分散システムの著名人であるだけでなく、Latex の作成者でもあります。TLA+ ブックいくつかの例を無料で入手できます。

于 2013-03-28T20:04:45.177 に答える
1

良い本の 1 つは Birman のReliable Distributed Systemsですが、批判者もいます。

プロトコルを正式に検証したい場合は、Lynch のDistributed Algorithmsでいくつかの手法を参照できます。

実装しようとしているプロトコルは、以前に設計および分析されている可能性があります。コンセンサスアルゴリズムなどをカバーする自分のブログをプラグインします。

于 2009-02-08T14:00:51.250 に答える
1

Leslie Lamport ( http://research.microsoft.com/en-us/um/people/lamport/pubs/pubs.html ) と Edsger Dijkstra ( http://www.cs.utexas )によって書かれた多くの古典的な論文があります。 .edu/users/EWD/ ) データベース側。

NoSQLの動きが主流で、CouchDb(couchdb.apache.org)、MongoDB、Cassandraなど多くのプロジェクトが市場に出回っています。これらはすべて、スケーラビリティと管理性 (レプリケーション、フォールト トレランス、高可用性) の約束があります。

于 2011-05-05T02:25:46.457 に答える