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