網格計算一般分為兩種:數據網格和計算網格,簡單的說數據網格就是把數據分布式存儲,計算網格就是將任務分解為子認為并行計算。
一個計算網格平臺的作用就是將任務分解開來,交給不同的結點機器運行,然后把運行結果匯聚起來。這就是Split and Aggregate。如下圖所示,一個job請求分解為三個sub-job,分別被不同的機器執行,然后把結果匯聚,返回給調用的客戶。
GridGain是一個開源的java網格平臺。它集成了很多現成的框架,例如
JBoss
Spring
Spring AOP
JBoss AOP
AspectJ
JGroups
GridGain有兩個方法將應用程序grid化:
第一種是使用AOP
假設有一個應用
01 class BizLogic {
02 public static Result process(String param) {
03 …
04 }
05 }
06
07 class Caller {
08 public static void Main(String[] args) {
09 BizLogic.process(args[0]);
10 }
11 }
如果要把process grid化,只要簡單的使用一個@Gridify的annotation即可,在Caller客戶端要啟動GridFactory
01 class BizLogic {
02 @Gridify(…)
Here
03 public static Result process(String param) {
04 …
05 }
06 }
07
08 class Caller {
09 public static void Main(String[] args) {
10 GridFactory.start();
Here
11
12 try {
13 BizLogic.process(args[0]);
14 }
15 finally {
16 GridFactory.stop();
Here
17 }
18 }
19 }