請稍等。無狀態阻塞服務器設計
我設計,將具備以下功能的無狀態服務器:
- 客戶端作業提交給服務器。
- 客戶端在服務器嘗試執行作業時被阻止。
- 服務器會產生一個或多個線程來執行作業。
- 作業完成,超時或失敗。
- 創建適當的響應(基於結果),客戶端被解鎖並且響應被交給客戶端。
這是我到目前爲止想到的。
- 客戶端提交作業到服務器。
- 服務器爲作業分配一個ID,將作業放在一個隊列上,然後將客戶端放在另一個隊列上(它將被阻塞)。
- 有一個將執行作業的線程池,獲取結果並適當地創建響應。
- 根據ID,將客戶端從隊列中取出(從而解除阻塞),給出響應並將其發送出去。
步驟1,3,4看起來很直接,但有關如何將客戶端放入隊列然後將其阻止的任何想法。此外,任何可以幫助我設計這隻小狗的指針將不勝感激。
乾杯
感謝ChssPly76。 到目前爲止,我只知道服務器的功能是什麼。客戶端如何連接到服務器仍然在爭論中(在工作上通過我的權力)。如果他們選擇Web服務,我不會感到驚訝。 – CaptainHastings 2009-10-10 02:37:02