2010年11月21日 星期日

framework

在完成Android系統上函式庫層的D2MCE原生碼實作之後,我們將於框架層將設計出方便應用程式開發所用的Java元件。該元件對上提供方便使用的類別與介面及方法,對下則透過JNI與函式庫層的原生碼整合。以下是預計提供的介面類別的宣告與使用方式。


Android D2MCE Java 套件:

import com.eps.d2mce;

說明:Android應用程式引入此套件方可使用D2MCE服務與元件

Android D2MCE執行時期服務取得:

D2MCEManager mD2Mgr = D2MCE.getService("group_name");

說明:若應用程式需使用D2MCE的服務,則透過D2MCE的靜態方法getService()將可加入一名為"group_name"的運算群組。該方法將傳回一D2MCE管理者物件。

Android D2MCE 共享物件宣告與配置

D2MCESharedData mSharedData =

new D2MCESharedData(mD2Mgr, "data_name");

說明:D2MCE將提供一泛形(generic)共享物件類別,在配置共享物件時指定所共享的資料形態(SomeType),建構子中指定D2MCE管理者(代表D2MCE運算群組)與共享資料名稱即可完成配置。(資料大小由SomeType型別決定。)

Android D2MCE 共享物件內容存取

SomeType value = mySharedData.getValue();

mySharedData.setValue(value);

說明:D2MCESharedData類別將提供getValue與setValue方法,用來存取實際型態為SomeType的共享資料內容值。

Android D2MCE 共享物件存取同步方法

mySharedData.lock();

mySharedData.unlock();

說明:D2MCESharedData類別將提供lock與unlock方法,用來實現分散式共享資料存取所需的同步與臨界區間(critical section)運作。(這部分無法使用Java的Synchronized方法與程式區塊的方式實現,而須另行提供,因為我們所面對的環境是分散式的環境,而非單一機器的多執行緒環境。)

以上為Android D2MCE實作應該提供的基本的元件類別。除此之外,我們也應該允許程式開發者透過繼承D2MCESharedData類別的方式來定義自己的共享物件類別;而在資料存取的同步問題,亦可在子類別中定義專用的存取方法,將lock與unlock的同步機制包含於實作中,方便使用。

沒有留言:

張貼留言