2012-06-15 56 views
0

我正在爲一家醫療行業的小公司工作。我們有一個自制的管理軟件,在重寫後,我們將出售給其他類似的公司。該軟件基於用PHP編寫的HTTP API。由於我們不想放棄我們的代碼,我們正在檢查哪種技術我們應該重寫它。如何實現HTTP API守護進程

我的問題是:你將如何實現一個HTTP API守護進程,它可以在Linux機器上安裝相對簡單,而不會泄露你的代碼?

+0

然後給他們如何訪問你的http api?例如一個網址,憑證,以及你的api預期的參數是否適用? – Jasonw

回答

0

你可以讓你的代碼PHP和保護它的幾個不同的方式:

  • 寫一個小的C程序與你的(可能是模糊或加密)源代碼編譯成它只是調用PHP可執行
  • 通過代碼混淆器運行它。它應該運行相同,但對於想要進行修改的人不會非常有用。
  • 將所有註釋從代碼中除去。大多數可觀大小的程序都會讓人感到困惑,因爲沒有任何意見可以阻止人們修改它們。
  • 不用擔心它,請您的客戶在法律上同意不將軟件交給他人。像您的客戶這樣的知名企業通常會遵守這些協議。
  • 不用擔心;將軟件移開並出售支持(合同或事件)。也是F/OSS商業模式。

那最後兩個對於管理層來說當然很難賣;但這取決於您的業務和技術目標。

如果您重寫代碼,對其他人竊取您的源代碼的最佳保護(法律限制除外)可能是二進制編譯語言,如C或C++。 Java可以很容易地反編譯,儘管可以使用混淆器來使它變得毫無意義。還有各種其他語言的打包機制(例如perl PAR歸檔文件,python py2exe或tcl tclkits),這使得查看源代碼時稍微困難一些,但這些打包機制的目的主要是簡化分發,而不是保護代碼免受惡意攻擊眼睛。

1

框架和語言

有很多很好的語言和框架的在那裏爲構建Web應用程序。如果你正在尋找一種(編排)編譯語言,你可能會考慮在Java中做某些事情,或許用SpringPlay framework(免責聲明:這個播放框架還是比較新的,儘管它的普及可能並不理想每個人,因爲它仍然在野外相對未經測試)。我也聽說C#和Mono項目實現ASP.NET已經走過了很長的一段路,雖然我沒有使用它並且不能擔保。

在編寫Web服務時,我傾向於喜歡Python和Ruby等解釋型語言。雖然這些可能不適合你的用例。例外是Go,它最近成爲我的最愛之一。學習起來非常簡單,高效並且速度非常快(並且編譯)。

幫助我們來幫助你

不幸的是,你的問題是幾乎絕望模糊,因此很難爲我給一個很好的建議。也許你會考慮改寫它,列出你的一些要求,目標和目標,以便我們更長遠地瞭解什麼能最好地爲你服務?

無關的肥皂盒警告!

在一個稍微偏離主題的筆記中,我總是鼓勵我與我簽約的公司(特別是在醫療行業常常在技術上落後的領域)考慮採用更開放的業務模式。許多小公司試圖通過創建一個封閉的生態系統來保護他們的知識產權,從長遠來看,這種生態系統會扼殺增長和創新,並可能導致嚴重的安全漏洞;開源並未成爲蓬勃發展的計算機科學行業的新趨勢,因爲它允許人們竊取對方產品。它變得流行起來,因爲它是傳統閉源實踐的更便宜,更可持續的替代方案。我會主張通過適當的許可和法律手段保護您的源代碼,而不是堅持使用傳統的分發方法。與許多人不同,我認爲專有軟件仍然佔有一席之地;這是爲了讓您決定您的產品是否適合該模型。但是,至少要考慮替代方案的優缺點,即使您認爲它最終不符合您的商業模式。 off-soapbox

+0

_ [爲什麼開源公司文化很重要](http://intridea.com/blog/2011/4/22/why-open-source-company-culture-is-important)_ - 包括一個答案這是一個不可避免的問題,「但是我們是一家軟件公司,我們是不是放棄了我們最寶貴的資產?」 –

+0

聽起來不錯;在下次嘗試說服客戶允許我開源時,我必須先閱讀該文章。幸運的是,這個問題越來越不成問題,因爲人們意識到他們可以在OSS中賺很多錢,或者只是認爲這是「很酷」的事情。再次感謝分享! –