最近,人們在思考如何使用Java來實現雲計算,我看到了兩種趨勢性的方法。它們存在交叉重疊處而並非互相排斥,但總體而言它們在項目方面有著非常不同的表現:
重面向UI(Heavy UI oriented)
這種類型的應用或框架通常提供基於UI的控制台、管理有用、插件等,這為管理雲中的資源比如開始和停止圖像等提供了唯一的方法。這種方法的關鍵特征是它需要大量用戶的輸入和人的干預,所以這變得相對不動態、不隨需而變。最好的例子是:RightScale, GigaSpaces, ElasticGrid。
重面向框架(Heavy framework oriented)
這種方法非常強調雲中資源管理的動態性。其關鍵特征是它不需要用戶的輸入和人的干預,所以的資源管理可以通過grid/cloud中間件來程序化地完成。Google App Engine (for Python), GridGain就是這方面最好的例子。
現在,我們可以輕易地看到兩種方法的各自好處。傳統的計算環境中,網絡和系統管理員管理雲(傳統的數據中心也是這麼管理的),開發者對它有很少的控制,因而第一種方法對此非常有效。
就像我說的,第二種方法聽起來有些新穎和現代。它的目的是,通過提供相對定位的透明度來掃除本地工作站與雲(內部或外部的)之間的障礙,從而開發者寫代碼、建立並運行可以通過完全一樣的方法,而不必在乎這些工作是在本地工作站還是幾千公裡外的雲上還是這二者一起完成的。