MES移動(dòng)應(yīng)用快速開(kāi)發(fā)平臺(tái)_第1頁(yè)
MES移動(dòng)應(yīng)用快速開(kāi)發(fā)平臺(tái)_第2頁(yè)
MES移動(dòng)應(yīng)用快速開(kāi)發(fā)平臺(tái)_第3頁(yè)
MES移動(dòng)應(yīng)用快速開(kāi)發(fā)平臺(tái)_第4頁(yè)
MES移動(dòng)應(yīng)用快速開(kāi)發(fā)平臺(tái)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MES移動(dòng)應(yīng)用快速開(kāi)發(fā)平臺(tái)IServer插件開(kāi)發(fā)指南1簡(jiǎn)介22運(yùn)行機(jī)制23插件開(kāi)發(fā)語(yǔ)言24插件類型25插件與事件36插件開(kāi)發(fā)36.1開(kāi)發(fā)環(huán)境36.2插件接口46.3插件注冊(cè)76.4插件部署87插件使用81 簡(jiǎn)介IServer插件,亦即Plug-in,是指一類實(shí)現(xiàn)特定功能的代碼模塊(通常由第三方開(kāi)發(fā)都實(shí)現(xiàn)),用戶可以隨時(shí)的在IServer上激活與禁用插件;且無(wú)論是激活還是禁用都不影響IServer的運(yùn)行,也就是說(shuō)插件是一種非侵入式的模塊化設(shè)計(jì),實(shí)現(xiàn)了MES平臺(tái)的內(nèi)核與插件程序的松散耦合。通過(guò)開(kāi)發(fā)各種各樣的插件來(lái)增強(qiáng)IServer的功能。MES平臺(tái)同樣也內(nèi)置了常見(jiàn)的功能性插件,比如針對(duì)附件查閱的插

2、件、數(shù)據(jù)庫(kù)操作的插件、Http協(xié)議操作插件、下載插件、緩存插件等。IServer插件的開(kāi)發(fā)必須遵循MES的插件開(kāi)發(fā)規(guī)范,主要涉及插件的開(kāi)發(fā)語(yǔ)言、實(shí)現(xiàn)接口、插件的注冊(cè)三大方面。2 運(yùn)行機(jī)制IServer的插件是由IServer的Plug-in Framework負(fù)責(zé)加載及卸載,以及插件生命周期的管理,也可以理解為IServer的插件是被Plug-in Framework托管的模塊實(shí)例。Plugin-in Framework根據(jù)插件的各種注冊(cè)信息即時(shí)或延遲加載插件。3 插件開(kāi)發(fā)語(yǔ)言IServer的插件采用JAVA語(yǔ)言開(kāi)發(fā),開(kāi)發(fā)用戶不單可以利用java靈活的語(yǔ)法,豐富的JDK基礎(chǔ)類庫(kù),而且可以引用各

3、種種的第三方類庫(kù),簡(jiǎn)化各種復(fù)雜功能的開(kāi)發(fā)。4 插件類型當(dāng)前MES 3.0版本的插件支持以下二種類型的插件:l 單態(tài)即整個(gè)IServer服務(wù)器只有此插件的一個(gè)實(shí)例運(yùn)行。l 原型即每次用戶通過(guò)me.getMesPlugin方法獲取插件都會(huì)產(chǎn)生一個(gè)新的插件實(shí)例。5 插件與事件IServer的插件允許監(jiān)時(shí)以下各種類型的服務(wù)器事件:l 頁(yè)面事件插件通過(guò)實(shí)現(xiàn)IPageContextListener接口,可以監(jiān)聽(tīng)頁(yè)面的各種事件,包括頁(yè)面的創(chuàng)建、銷毀,具體請(qǐng)參考IPageContextListener接口。l 會(huì)話事件插件通過(guò)實(shí)現(xiàn)ISessionListener接口,可以監(jiān)聽(tīng)會(huì)話的各種事件,包括會(huì)話的創(chuàng)建、銷

4、毀,具體請(qǐng)參考ISessionListener接口。l 應(yīng)用系統(tǒng)事件插件通過(guò)實(shí)現(xiàn)IAppContextListener接口,可以監(jiān)聽(tīng)?wèi)?yīng)用系統(tǒng)的各種事件,包括應(yīng)用系統(tǒng)的啟動(dòng)、停止,具體請(qǐng)參考IAppContextListener接口。l 服務(wù)器事件插件通過(guò)實(shí)現(xiàn)IServerContextListener接口,可以監(jiān)聽(tīng)服務(wù)器的各種事件,包括服務(wù)器的啟動(dòng)、停止,具體請(qǐng)參考IServerContextListener接口。6 插件開(kāi)發(fā)6.1 開(kāi)發(fā)環(huán)境l 安裝JDK 下載并安裝SUN JDK 1.6l 安裝Eclipse下載并安裝Eclipse 3.4以上版本l 啟動(dòng)MES IServer啟動(dòng)MES I

5、Server服務(wù)器6.2 插件接口l IPluginIServer插件的根接口,具體請(qǐng)參照IPlugin接口文檔插件代碼public class MyPlugin implements IPlugin private IResource resource; private IPageContext pageContext; private IServerContext serverContext; public MyPlugin() /* * 初始化 */public void initialize() System.out.println(“當(dāng)我被創(chuàng)建時(shí),可將需要的初始化代碼放在這里”);

6、/* * 銷毀 */public void destory() System.out.println(“當(dāng)我被銷毀時(shí),可將清理代碼放在此”); public IResource getResource() return resource; public void setResource(IResource resource) this.resource = resource; public void setPageContext(IPageContext context) this.pageContext = context; public IPageContext getPageContex

7、t() return pageContext; public void setServerContext(IServerContext context) this.serverContext = context; public IServerContext getServerContext() return serverContext; /*自定義方法一*/public int add(int a,int b) return a + b;public int sub(int a,int b) return a b;腳本代碼<mml><script> var n = me

8、. getMesPlugin(“插件ID”).add(1,2); var n2 =me. getMesPlugin(“插件ID”).sub(n,1);</script></mml>l CommonMEPluginCommonMEPlugin繼承自IPlugin接口,實(shí)現(xiàn)了IPlugin接口的大多數(shù)方法,除了initialize、destory。因此我們建議用戶在開(kāi)發(fā)插件時(shí),直接繼續(xù)此抽象類,簡(jiǎn)化插件開(kāi)發(fā)。插件代碼,實(shí)現(xiàn)的功能與上面的代碼一樣,但代碼卻簡(jiǎn)潔許多public class MyPlugin extends CommonMEPlugin private IRes

9、ource resource; private IPageContext pageContext; private IServerContext serverContext; public MyPlugin() /* * 初始化 */public void initialize() System.out.println(“當(dāng)我被創(chuàng)建時(shí),可將需要的初始化代碼放在這里”); /* * 銷毀 */public void destory() System.out.println(“當(dāng)我被銷毀時(shí),可將清理代碼放在此”); /*自定義方法一*/public int add(int a,int b) ret

10、urn a + b;public int sub(int a,int b) return a b;6.3 插件注冊(cè)將已開(kāi)發(fā)完成的插件向IServer注冊(cè),注冊(cè)方式是以XML格式文件注入,IServer的插件注冊(cè)文件存放在/IServer/mes/server/WEB-INF/classes/plugin.xml<plugins><plugin id="com.mes.server.plugin.database" class="com.mes.server.plugin.database.DatabasePlugin"/><

11、plugin id="com.mes.server.plugin.download" single="true" class="com.mes.server.plugin.download.DownloadPlugin"/><plugin id="com.mes.server.plugin.httpquery" class="com.mes.server.plugin.httpquery.HttpQueryPlugin"/><plugin id="com.mes

12、.server.plugin.parameterQuery" class="com.mes.server.plugin.httpquery.ParameterQueryPlugin"/><plugin id="com.mes.server.plugin.cache" auto="true" single="true" class="com.mes.server.plugin.cache.CachePlugin"/><plugin id="com.mes

13、.server.plugin.attachement" class="com.mes.server.plugin.attachement.AttachementPlugin"/><plugin id="com.mes.server.plugin.htmlquery" class="com.mes.server.plugin.htmlquery.HtmlQueryPlugin"/></plugins>每個(gè)plugin標(biāo)記表示一個(gè)插件,plugin標(biāo)記有以下四種屬性:l id 插件id,表示插件的唯一標(biāo)識(shí),系統(tǒng)通過(guò)此標(biāo)識(shí)識(shí)別插件,如me. getMesPlugin(“id”),不能為空。l class插件實(shí)現(xiàn)類,即實(shí)現(xiàn)IPlugin或CommonMEPlugin接口的類,不能為空。l single表示此插件是否單態(tài),true表示單態(tài),默認(rèn)值為falsel auto表示此插件是否在IServer啟動(dòng)時(shí)自動(dòng)加載,前提是single=true。true表示

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論