我正在嘗試決定如何爲我編寫的某些軟件實現非常基本的許可解決方案。該軟件將運行在我的(假想的)客戶機器上,想法是如果客戶機在大於n臺機器上運行它,軟件將立即退出(用友好的消息)(n是它們的許可證數量)已購買)。此外,客戶對「基本」足夠好的點非技術嫺熟。基本軟件許可實施的想法
這是我目前的設計,但考慮到我沒有什麼這個話題沒有經驗,我想問問這之前,我開始它的任何發展:
- 遠程服務器承載一個MySQL數據庫一個包含兩列的表格:客戶端密鑰和許可證數量
- 客戶端應用程序在啓動時連接到MySQL數據庫,提供它的客戶端密鑰,我已將其放入打包到分發包中的屬性文件中(我將創建每個新客戶的新分配)
- 機會是,我需要第二個表來存儲VA使用一些簡短的邏輯,軟件可以決定它是否可以在給定的機器上運行(可能是每24小時使用該軟件的n臺機器的滑動窗口)
- 如果軟件無法建立與MySQL數據庫,或決定它每天允許n臺機器,它關閉
- 託管MySQL數據庫的遠程服務器的連接信息應該硬編碼到應用程序中? (這聽起來像是一個壞主意,但除此之外,他們可以指向其他一些始終驗證成功的服務器)
我認爲這大概涵蓋了我的初始設計。目的是雖然它當然不是完全的證明,但我認爲我至少有點難以創建一個易於共享的解決方案。另外,我可以輕鬆調整給定客戶端/密鑰對的許可證金額。
我得知這個問題已經完成了一百萬次,所以告訴我一個更好的解決方案,它的實現同樣簡單,並且提供相同(低)的安全性。在使用外部庫的情況下,我更喜歡Java,因爲這是該軟件編寫的內容。
我認爲你已經說服我迫使我們的項目進入無許可或支付第三方供應商解決方案之間的決定。感謝您的建議! – Ross 2010-03-23 14:02:29