最近,人们在思考如何使用
Java来实现云计算,我看到了两种趋势性的方法。它们存在交叉重叠处而并非互相排斥,但总体而言它们在项目方面有着非常不同的表现:
重面向UI(Heavy UI oriented)
这种类型的应用或框架通常提供基于UI的控制台、管理有用、插件等,这为管理云中的资源比如开始和停止图像等提供了唯一的方法。这种方法的关键特征是它需要大量用户的输入和人的干预,所以这变得相对不动态、不随需而变。最好的例子是:RightScale, GigaSpaces, ElasticGrid.
重面向框架(Heavy framework oriented)
这种方法非常强调云中资源管理的动态性。其关键特征是它不需要用户的输入和人的干预,所以的资源管理可以通过grid/cloud中间件来程序化地完成。Google App Engine (for Python), GridGain就是这方面最好的例子。
现在,我们可以轻易地看到两种方法的各自好处。传统的计算环境中,网络和系统管理员管理云(传统的数据中心也是这么管理的),开发者对它有很少的控制,因而第一种方法对此非常有效。
就像我说的,第二种方法听起来有些新颖和现代。它的目的是,通过提供相对定位的透明度来扫除本地工作站与云(内部或外部的)之间的障碍,从而开发者写代码、建立并运行可以通过完全一样的方法,而不必在乎这些工作是在本地工作站还是几千公里外的云上还是这二者一起完成的。