開發(fā)者手記:跨云編程煩惱重重 |
發(fā)布時間: 2012/7/30 10:31:10 |
大多數(shù)云應用程序都有開發(fā)功能(或至少可以編寫腳本),允許深度定制,加上一定程度的數(shù)據(jù)庫訪問和計算能力,但即使是最好的云計算應用程序,也會受到平臺/開發(fā)環(huán)境的限制,應用程序不是通用的運行時或通用的對象容器。例如,開發(fā)語言必須為多租戶部署提供安全,不能讓用戶的代碼將虛擬機,數(shù)據(jù)庫或整個應用程序搞癱掉,此外,某些類型的語言結(jié)構(gòu)必須限制,以防資源被過度使用和死鎖(的確,試想Salesforce.com上運行了上億行用戶代碼,要讓它們保持快速響應和良好的正常運行時間是一項非常艱巨任務)。
拿Salesforce的APEX為例,不需要太多的技巧,語言本身可以處理大多數(shù)業(yè)務邏輯,但在云開發(fā)環(huán)境中,要受平臺的限制,例如,在J2EE中有一個很好的庫可以完成你想要的任務,但J2EE在你的云平臺上是不可用的,即使你只需要這個庫的一組方法也不行,許多底層功能必須靠你自己實現(xiàn)。 我們舉一個現(xiàn)實世界中的例子:許可密鑰生成。軟件廠商可能會使用許可密鑰強制他們的最終用戶簽訂協(xié)議,CRM系統(tǒng)管理這些許可密鑰(作為客戶資產(chǎn)的一部分),在CRM應用程序內(nèi)也可以生成完整的密鑰,因此軟件組織要求將密鑰系統(tǒng)移植到CRM中,其實密鑰生成也使用的是CRM平臺的加密方法。 但是,即使你可以移植所有邏輯到CRM系統(tǒng),但密鑰生成的計算負載仍然要受CPU,堆棧大小和查詢量的限制。 解決辦法是調(diào)用一個毗鄰云中的服務執(zhí)行數(shù)據(jù)處理,遺憾的是,目前還沒有適合這種情形的設計模式,因為:
因此第一步是為你特定的應用程序確定最佳架構(gòu),找出哪些數(shù)據(jù)元素需要傳輸,并跨云重構(gòu)你的類。 本文出自:億恩科技【www.riomediacenter.com】 |