
Definition of Distributed System …
多臺計算機,互相連結、溝通,提供特定的服務。
Multiple computers that are interconnected and cooperate to provide some services.
Why we need distributed system …
1.克服地區限制 Conquer geographic limitation
如果客戶端跟主機端距離太遠,則需要傳輸的時間過長,可能會產生問題;或者可能連線有問題。
If the distance between clients and servers, it might need too long to transit messages and cause some problems. Or it might have disconnection.
2.在不穩定的元件上,建構一個穩定的系統 Build reliable systems with unstable components
每個元件(例如:電腦、傳輸線、網路 …) 都沒辦法保證不會發生問題。而我們必須在這種不穩定的元素中,建造出穩定的系統,以供客戶使用。
Every component, for example: computers, cables, internet, can not be guarantee to be worked. We must build a stable system with these unreliable components.
3.聚集許多元件,提供更好的效能 Aggregate several components for higher performance
利用多個機器,可以分散計算,以提供更好的效能及容量。
Using several components, we can separate calculation for higher performance and capacity.

Challenges …
1.部分錯誤 Partial failures
我們目前無法準確的探測出到底是哪部分出錯了。是網路問題,還是機器壞掉了,還是只是執行慢所以逾時了。錯誤探測變成分布式的一種挑戰。
We currently can not detect which part of system failed. It is network’s problem, servers going down, or just low performance and causing timeout. Failure detection become one of challenges in distributed systems.
2.並行 Concurrency
若多個使用者同時執行,該怎麼同時運行。這又衍生另一個常見的問題,該怎麼同步伺服器之間的資料。
If there are several users at the same time, how to ensure the operations. And there is another problem coming, how to make sure consistency of distributed system?
3.測試 Testing
分布式系統可能遇到的情況太多,我們沒有辦法逐一測試。
It is impossible to test every possible scenario since there are too many situations of distributed system.
-MsHe