使用開源Grid平臺-GridGain實現網格計算

gudesheng發表於2008-01-03

網格計算一般分為兩種:資料網格和計算網格,簡單的說資料網格就是把資料分散式儲存,計算網格就是將任務分解為子認為平行計算。

一個計算網格平臺的作用就是將任務分解開來,交給不同的結點機器執行,然後把執行結果匯聚起來。這就是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 }

這是最簡單,不破壞原有業務邏輯的方法,還有一種方法如果要實現複雜些的任務分解,擴充套件GridifyJobAdaptor基類,實現split 和aggregate 介面,具體請參考http://216.93.179.140:8080/wiki/display/GG10UG/15-Minutes+Jump+Start

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1623536


相關文章