2011-08-07 79 views
0

這將是一個相當開放的問題;但在這一點上,這是我必須從頭開始。我們目前有一個2層應用程序設計。這意味着我們有一個C++ API連接到我們的SQL Server,並執行典型的數據庫操作,例如插入/更新/查詢。我們正在尋找使這種三層設計與某種應用服務器坐在中間。目標是當我們獲得更多的負擔;我們不需要處理數據庫瓶頸。設計的目的是讓所有來自用戶的通信都與「中間層」一起發生,然後進入數據庫。這將消除我們將複雜的業務規則放在數據庫觸發器中並讓中間層處理它們。
我還不清楚的是中間層的樣子。它是否必須是某種WebService?所有客戶端都使用HTTP連接到中間層,然後將其傳遞給數據庫?正如你所看到的;從C++ API到web服務;這是一個相當大的轉變。任何資源,你必須幫助我讓我的主意繼續這個話題將不勝感激。謝謝!需要幫助以3tier設計開始

+0

當你說這將是一個開放式問題時,你說得很對:-)讓我們從幾個問題開始。你在建什麼樣的應用程序?這是一個Web應用程序嗎?你提供什麼樣的API?什麼不工作? –

回答

0

由於您已經擁有連接到我們的SQL Server並直接對其執行操作的C++ API,因此這似乎已成爲適合您的設計中間層的重構對象。此代碼已根據一些規則操作數據庫,這正是您的中間層應該執行的操作。

剩下要做的工作是將表示邏輯從這個API中分離出來,並允許它駐留在它自己的應用程序中,這些應用程序連接到中間層的C++ API以便讓它們的數據得到處理,存儲在數據庫中,結果返回給用戶顯示。對於表示層和C++ API之間的連接,根據您的要求,您可以使用專有通信協議(例如通過TCP/IP或RPC實現,或通過HTTP實現),也可以使用HTTP有一箇中介「中繼」網絡服務,從服務器調用您的C++ API並將結果返回給調用者。 HTTP選擇儘管初始實現起來更快,但有一些方面需要考慮,例如默認情況下,它是無狀態的(您需要自己實現用戶會話),並且必須與代碼保持同步,當公共方法在開發期間發生變化時