基于WSO2Stratos的企業(yè)級(jí)應(yīng)用開發(fā)方法【專利摘要】本發(fā)明提供了基于WSO2?Stratos的企業(yè)級(jí)應(yīng)用開發(fā)方法,針對(duì)目前基于Struts、Spring、Hibernate的企業(yè)級(jí)應(yīng)用開發(fā)中存在的缺點(diǎn),本發(fā)明提出了基于構(gòu)件的企業(yè)級(jí)應(yīng)用開發(fā)方法。為了將該開發(fā)方式融入到WSO2?Stratos中作為一種應(yīng)用解決方案,首先基于Hadoop設(shè)計(jì)了一個(gè)分布式存儲(chǔ)系統(tǒng),用來(lái)進(jìn)行構(gòu)件的存儲(chǔ);接著為了更好的管理基于構(gòu)件開發(fā)的開發(fā)者,提取出WSO2?Stratos中用戶身份認(rèn)證管理服務(wù),將其跟Hadoop分布式存儲(chǔ)系統(tǒng)結(jié)合;最后對(duì)WSO2?Stratos對(duì)外提供的DeveloperStudioIDE進(jìn)行功能擴(kuò)展,向基于構(gòu)件開發(fā)的開發(fā)者提供統(tǒng)一的開發(fā)向?qū)?。該設(shè)計(jì)方法為向WSO2?Stratos中融入更多的應(yīng)用集成解決方案提出了思路?!緦@f(shuō)明】基于WS02Stratos的企業(yè)級(jí)應(yīng)用開發(fā)方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于基于PaaS(平臺(tái)即服務(wù))平臺(tái)的企業(yè)級(jí)應(yīng)用開發(fā)【
技術(shù)領(lǐng)域:
】,特別是提供一種基于WS02(領(lǐng)先的開源S0A解決方案提供者)Stratos(WS0公司提供的云平臺(tái))的企業(yè)級(jí)應(yīng)用開發(fā)設(shè)計(jì)方法?!?br>背景技術(shù):
】[0002]WS02Stratos是一個(gè)開源的PaaS平臺(tái),它主要為企業(yè)級(jí)應(yīng)用開發(fā)提供基于云的解決方案(如圖1)。目前WS02Stratos對(duì)外提供了APIManager、ApplicationServer、BusinessActivityMonitor等十六種服務(wù)組件,每種服務(wù)組件都會(huì)負(fù)責(zé)提供特定的功能,而所有的服務(wù)組件又通過(guò)WebService進(jìn)行相互通信,最終由所有這些服務(wù)組件組成了WS02Stratos平臺(tái),WS02Stratos整體架構(gòu)如圖1。WS02Stratos作為一個(gè)PaaS平臺(tái)對(duì)外提供的解決方案,都是通過(guò)組合不同的服務(wù)組件來(lái)實(shí)現(xiàn)。[0003]在WS02Stratos平臺(tái)架構(gòu)圖中,Carbon(WS02公司產(chǎn)品的底層支撐平臺(tái))作為一個(gè)核心組件,它為上層的服務(wù)組件提供了功能實(shí)現(xiàn)方式。因?yàn)镃arbon是利用的OSGi(面向Java的動(dòng)態(tài)模型系統(tǒng)技術(shù))實(shí)現(xiàn),而OSGi先天的優(yōu)勢(shì)就是具有動(dòng)態(tài)可擴(kuò)展性,所以本發(fā)明可以看到WS02Stratos平臺(tái)中會(huì)有多種多樣的服務(wù)組件,而且隨著更多業(yè)務(wù)需求的提出,可以往WS02Stratos平臺(tái)中加入針對(duì)這些業(yè)務(wù)需求所需的服務(wù)組件,從而不斷的擴(kuò)大該平臺(tái)功能。[0004]目前大部分中小型企業(yè)在進(jìn)行應(yīng)用開發(fā)時(shí),都會(huì)在SSH框架的基礎(chǔ)上進(jìn)行開發(fā),而且創(chuàng)建的項(xiàng)目都是普通的Web項(xiàng)目,項(xiàng)目完成后直接部署到Web服務(wù)器中進(jìn)行運(yùn)行。這種開發(fā)方式的好處是迅速、效率高;但是企業(yè)不可能僅僅只是開發(fā)一個(gè)項(xiàng)目,當(dāng)面臨新的業(yè)務(wù)需求時(shí),如果采取上述同樣的方式,將會(huì)要重新開發(fā)一個(gè)全新的Web項(xiàng)目。這樣就有可能出現(xiàn)重復(fù)造輪子的現(xiàn)象,當(dāng)項(xiàng)目越來(lái)越多時(shí),這種弊病將會(huì)越明顯。[0005]針對(duì)上述開發(fā)方式的缺點(diǎn),提出了基于構(gòu)件的開發(fā)方式。每個(gè)構(gòu)件具有"高內(nèi)聚、低耦合"的特點(diǎn),它們都將獨(dú)立完成一種特定的功能,并且能夠?qū)ν馓峁┰摲N功能的服務(wù)。所以進(jìn)行應(yīng)用開發(fā)時(shí),只需要組合多個(gè)構(gòu)件,就能完成一個(gè)項(xiàng)目的搭建。這種開發(fā)方式最大的一個(gè)優(yōu)點(diǎn)是:可以復(fù)用已有的功能模塊。企業(yè)只需要管理好已經(jīng)開發(fā)出的構(gòu)件,當(dāng)面臨新的項(xiàng)目時(shí),只需要實(shí)現(xiàn)項(xiàng)目具體的業(yè)務(wù)邏輯,而項(xiàng)目依賴的第三方框架或者是已實(shí)現(xiàn)的功能,都可以通過(guò)統(tǒng)一的構(gòu)件庫(kù)進(jìn)行查詢獲取,完成開發(fā)。[0006]正是看到基于構(gòu)件的開發(fā)方式優(yōu)于普通Web項(xiàng)目的開發(fā)方式,所以希望將這種開發(fā)方式跟WS02Stratos結(jié)合,在WS02Stratos中提供一種類似創(chuàng)建WebApplication的方式來(lái)創(chuàng)建構(gòu)件應(yīng)用,而該種應(yīng)用同理能夠?qū)崿F(xiàn)集開發(fā)、測(cè)試、部署、運(yùn)行于一體的集成到WS02Stratos中?!?br/>發(fā)明內(nèi)容】[0007]本發(fā)明的目的在于將基于構(gòu)件的企業(yè)級(jí)開發(fā)方式跟WS02Stratos結(jié)合起來(lái),一來(lái)為擴(kuò)展WS02Stratos平臺(tái)提供技術(shù)思路,另外為企業(yè)級(jí)開發(fā)者提供一種新的基于WS02Stratos平臺(tái)的開發(fā)方法。為實(shí)現(xiàn)此目的,本發(fā)明需要進(jìn)行三個(gè)方面的工作:首先,針對(duì)需要提供給開發(fā)者的構(gòu)件資源,利用Hadoop(分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會(huì)所開發(fā))分布式存儲(chǔ)系統(tǒng)進(jìn)行設(shè)計(jì);接著,針對(duì)使用構(gòu)件資源的開發(fā)者管理,提取出WS02Stratos中身份認(rèn)證管理服務(wù)進(jìn)行實(shí)現(xiàn);最后,為了向開發(fā)者提供友好的開發(fā)環(huán)境,對(duì)WS02Stratos對(duì)外提供的DeveloperStudioIDE進(jìn)行功能擴(kuò)展。[0008]為了實(shí)現(xiàn)上述發(fā)明目的,采用的具體技術(shù)方案如下。[0009]基于WS02Stratos的企業(yè)級(jí)應(yīng)用開發(fā)方法,包括如下步驟:(1)構(gòu)件的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)?;跇?gòu)件開發(fā)最重要的一點(diǎn)就是:構(gòu)件資源的存儲(chǔ)。本發(fā)明針對(duì)基于SSH框架進(jìn)行企業(yè)級(jí)應(yīng)用開發(fā)的場(chǎng)景,利用Hadoop中HDFS(Hadoop分布式文件系統(tǒng)),進(jìn)行對(duì)應(yīng)框架的目錄資源設(shè)計(jì)。[0010](2)構(gòu)件下載。當(dāng)開發(fā)者進(jìn)行基于構(gòu)件應(yīng)用的開發(fā)時(shí),會(huì)出現(xiàn)構(gòu)件資源缺失的情況。為此本發(fā)明需要根據(jù)開發(fā)者缺失的構(gòu)件,從Hadoop中進(jìn)行查找并且將查找結(jié)果向開發(fā)者提供,進(jìn)行構(gòu)件下載。[0011](3)構(gòu)件上傳。當(dāng)開發(fā)者想要對(duì)外提供自己開發(fā)的構(gòu)件時(shí),本發(fā)明將向開發(fā)者提供構(gòu)件上傳的功能,開發(fā)者通過(guò)該功能就能將構(gòu)件上傳到Hadoop中相關(guān)目錄,這樣其他開發(fā)者就能夠獲取到該上傳構(gòu)件的功能。[0012](4)身份認(rèn)證。為了保證開發(fā)者的合法性,在進(jìn)行構(gòu)件開發(fā)時(shí),當(dāng)需要跟Hadoop進(jìn)行通信時(shí),本發(fā)明需要對(duì)其進(jìn)行身份認(rèn)證。此處,本發(fā)明提取出WS02Stratos中的身份認(rèn)證服務(wù)來(lái)進(jìn)行實(shí)現(xiàn)。[0013](5)開發(fā)環(huán)境構(gòu)件應(yīng)用新建。前面都是后臺(tái)技術(shù)實(shí)現(xiàn),此處將定位到WS02Stratos對(duì)外提供的DeveloperStudioIDE開發(fā)環(huán)境,它將直接跟開發(fā)者打交道,所以本發(fā)明針對(duì)構(gòu)件應(yīng)用新建提供了一個(gè)入口。[0014](6)開發(fā)環(huán)境構(gòu)件導(dǎo)入。針對(duì)(2)中的設(shè)計(jì)方案,在DeveloperStudio中進(jìn)行實(shí)現(xiàn)。[0015](7)開發(fā)環(huán)境構(gòu)件導(dǎo)出。針對(duì)(3)中的設(shè)計(jì)方案,在DeveloperStudio中進(jìn)行實(shí)現(xiàn)。[0016]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)和技術(shù)效果:本發(fā)明通過(guò)對(duì)Hadoop、Carbon、DeveloperStudioIDE三個(gè)方面的技術(shù)設(shè)計(jì),最終將達(dá)到如圖6中所示的效果,開發(fā)者們可以很方便的進(jìn)行基于構(gòu)件的企業(yè)級(jí)應(yīng)用開發(fā)。當(dāng)企業(yè)擁有自己的針對(duì)具體行業(yè)的構(gòu)件庫(kù)時(shí),利用上述方式進(jìn)行一個(gè)構(gòu)件庫(kù)的部署,然后開放給其他從事該行業(yè)的開發(fā)者時(shí),將會(huì)大大促進(jìn)該行業(yè)的應(yīng)用開發(fā)發(fā)展。本發(fā)明能夠?qū)崿F(xiàn)集開發(fā)、測(cè)試、部署、運(yùn)行于一體的集成到WS02Stratos中?!緦@綀D】【附圖說(shuō)明】[0017]圖1是Stratos整體框架圖;圖2是Hadoop中構(gòu)件存儲(chǔ)目錄設(shè)計(jì)圖;圖3是HDFS中應(yīng)用構(gòu)件下載流程圖;圖4是HDFS中構(gòu)件上傳流程圖;圖5是WS02Stratos身份認(rèn)證提取示意圖;圖6是平臺(tái)擴(kuò)展結(jié)果圖?!揪唧w實(shí)施方式】[0018]以下結(jié)合附圖和實(shí)例對(duì)本發(fā)明的實(shí)施作進(jìn)一步說(shuō)明,但本發(fā)明的實(shí)施和保護(hù)不限于此,以下若有未特別說(shuō)明的術(shù)語(yǔ)及過(guò)程,均是本領(lǐng)域技術(shù)人員可以參照現(xiàn)有技術(shù)實(shí)現(xiàn)的。[0019]存儲(chǔ)結(jié)構(gòu)HDFS分布式存儲(chǔ)系統(tǒng)是以目錄的形式來(lái)存放文件數(shù)據(jù)的,它的默認(rèn)文件結(jié)構(gòu)分為home(HDFS中主目錄)、mapreduce(HDFS中用于存放計(jì)算作業(yè)的目錄)、user(HDFS中用戶目錄)三個(gè)目錄,圍繞這三個(gè)目錄本發(fā)明需要提出存儲(chǔ)應(yīng)用開發(fā)中公共構(gòu)件庫(kù)存儲(chǔ)方法。[0020]考慮到開發(fā)者進(jìn)行基于構(gòu)件的應(yīng)用開發(fā)時(shí),當(dāng)涉及到具體的依賴構(gòu)件無(wú)法找到時(shí),將需要一種快速的搜索方式來(lái)定位到依賴構(gòu)件,此時(shí)開發(fā)者需要通過(guò)搜索關(guān)鍵字可以快速的定位到HDFS中某個(gè)具體的目錄,這樣就能夠從該目錄中查找到需要的依賴構(gòu)件。所以本發(fā)明對(duì)公共構(gòu)件庫(kù)進(jìn)行分目錄的存儲(chǔ),不同的目錄中存儲(chǔ)面向某一特定功能的構(gòu)件。目前企業(yè)級(jí)應(yīng)用開發(fā)大都是依賴SSH框架作為MVC架構(gòu)方案,所以本發(fā)明將三個(gè)框架分為三個(gè)不同的目錄,用來(lái)存放面向不同框架的資源;同時(shí)因?yàn)楸景l(fā)明的構(gòu)件庫(kù)是面向業(yè)務(wù)相似的企業(yè)進(jìn)行應(yīng)用應(yīng)用開發(fā),本發(fā)明還需要列出一個(gè)目錄用來(lái)存放共同的面向業(yè)務(wù)的構(gòu)件。所以最原始的HDFS中應(yīng)該有四個(gè)目錄進(jìn)行資源存放。[0021]而考慮到開發(fā)者需要有自己獨(dú)立的存儲(chǔ)區(qū)域用來(lái)存放資源,所以本發(fā)明選擇HDFS中home目錄來(lái)存放應(yīng)用開發(fā)的基礎(chǔ)、公共構(gòu)件,而選取HDFS中user目錄用來(lái)為開發(fā)者提供獨(dú)立的構(gòu)件存儲(chǔ)空間。這樣既保證公共的構(gòu)件庫(kù)不會(huì)因?yàn)殚_發(fā)者操作不當(dāng)而受污染,同時(shí)讓不同的開發(fā)者之間有一定的隱私性。[0022]考慮到構(gòu)件庫(kù)的可擴(kuò)展性,Struts(運(yùn)用MVC設(shè)計(jì)模型來(lái)開發(fā)Web應(yīng)用的時(shí)間的開源框架)、Spring(企業(yè)應(yīng)用程序開發(fā)的開源框架)、Hibernate(開放源代碼的對(duì)象關(guān)系映射框架)只是代表了企業(yè)級(jí)應(yīng)用開發(fā)中MVC模式的一個(gè)具體實(shí)現(xiàn),而不同的開發(fā)者可能對(duì)其他MVC感興趣,為了使得構(gòu)件庫(kù)可以包容更多的開發(fā)者,本發(fā)明還需要提供一個(gè)可以擴(kuò)展HDFS中存放構(gòu)件庫(kù)的公共存儲(chǔ)區(qū)域,也就是HDFS可以新建更多的目錄,用來(lái)存放其他MVC框架構(gòu)件。所以本發(fā)明為home目錄創(chuàng)建更多的目錄結(jié)構(gòu),提供了相關(guān)實(shí)現(xiàn)接口。圖2為Hadoop中具體構(gòu)件存儲(chǔ)目錄圖。[0023]從HDFS中下載構(gòu)件開發(fā)者在進(jìn)行應(yīng)用開發(fā)時(shí),遇到依賴缺少錯(cuò)誤將是非常平凡的,此時(shí)需要從HDFS中快速的尋找依賴構(gòu)件。本發(fā)明采用在本地配置一個(gè)緩存目錄,開發(fā)者先從緩存目錄中進(jìn)行查找,如果本地查找失?。蝗缓笤龠B接HDFS從中將依賴構(gòu)件找到,先存入本地緩存目錄,便于下次直接從中獲取,節(jié)約時(shí)間;最后將該構(gòu)件添加成為應(yīng)用開發(fā)的構(gòu)件依賴。如圖3HDFS中構(gòu)件下載流程圖。[0024]a)默認(rèn)開發(fā)者采用的IDE環(huán)境為Eclipse,而Eclipse中有一個(gè)TargetPlatForm專門用來(lái)存儲(chǔ)Eelipse平臺(tái)構(gòu)件,該目錄為Eclipse安裝目錄下面的plugins目錄,所以本發(fā)明將構(gòu)件緩存目錄設(shè)定在此。當(dāng)開發(fā)者需要的構(gòu)件庫(kù)中的構(gòu)件將會(huì)直接通過(guò)Eclipse展示出來(lái),如果存在應(yīng)用開發(fā)需要的依賴構(gòu)件,將直接可以通過(guò)Eclipse進(jìn)行操作,轉(zhuǎn)至i;反之,如果不存在,則需要去連接HDFS,轉(zhuǎn)至b;b)連接HDFS,轉(zhuǎn)至c;c)展示HDFS中公共構(gòu)件庫(kù)目錄;向開發(fā)者提供目錄選擇,當(dāng)開發(fā)者知道依賴構(gòu)件的相關(guān)信息后,更容易判斷依賴構(gòu)件存在位置,轉(zhuǎn)至d;d)公共構(gòu)件庫(kù)具體目錄構(gòu)件展示;此處返回給開發(fā)者的只是該目錄下所有構(gòu)件的名稱信息,節(jié)省HDFS到IDE的流量,轉(zhuǎn)至e;e)開發(fā)者找到需要的構(gòu)件后,通過(guò)勾選將把請(qǐng)求發(fā)送到HDFS中,轉(zhuǎn)至f;f)HDFS將開發(fā)者請(qǐng)求的構(gòu)件發(fā)送到開發(fā)者本地的緩存目錄,如plugins下,轉(zhuǎn)至g;g)因?yàn)殚_發(fā)者可能需要依賴的構(gòu)件不只是存在在一個(gè)目錄,所以查找完一個(gè)目錄的構(gòu)件后,需要去其他的目錄進(jìn)行查找;如果需要,轉(zhuǎn)至c;否則轉(zhuǎn)至h;h)將開發(fā)者與HDFS的連接斷開,避免太多無(wú)用的跟HDFS連接,浪費(fèi)HDFS服務(wù)端資源,轉(zhuǎn)至i;i)最終將下載到的構(gòu)件依賴,添加至應(yīng)用的依賴路徑中,實(shí)現(xiàn)從HDFS中下載構(gòu)件的想法,轉(zhuǎn)至j;j)結(jié)束。[0025]這種方式相對(duì)于基于構(gòu)件開發(fā)的方式有一個(gè)非常明顯的好處是:打破了本地開發(fā)的格局。一個(gè)公共的構(gòu)件庫(kù),可以向眾多的開發(fā)者提供資源,但是前提是開發(fā)者需要以基于構(gòu)件的開發(fā)方式為基礎(chǔ),即利用〇SGi技術(shù)進(jìn)行開發(fā)。因?yàn)殚_發(fā)者直接從HDFS中下載的構(gòu)件,通過(guò)加入到IDE(比較典型的是Eclipse)中,利用OSGi的相關(guān)特性,從MANIFEST.MF文件下進(jìn)行資源依賴申明,即可以馬上在該構(gòu)件基礎(chǔ)之上,進(jìn)行應(yīng)用的開發(fā)。[0026]向HDFS中上傳構(gòu)件考慮到為了管理開發(fā)者自身的應(yīng)用開發(fā)構(gòu)件,以及當(dāng)開發(fā)者覺得有利于擴(kuò)充公共構(gòu)件庫(kù)的功能構(gòu)件時(shí),需要向他們提供一種上傳構(gòu)件的功能。如圖4HDFS上傳應(yīng)用構(gòu)件展示了整個(gè)上傳流程。[0027]a)開發(fā)者首先要連接HDFS,轉(zhuǎn)至b;b)HDFS將向開發(fā)者展示公共構(gòu)件庫(kù)目錄和開發(fā)者自身構(gòu)件目錄,以提供給開發(fā)者選擇,轉(zhuǎn)至c;c)開發(fā)者選擇一個(gè)具體的HDFS目錄,這里假定開發(fā)者都是理性的對(duì)HDFS進(jìn)行操作,轉(zhuǎn)至d;d)在c中選擇完將要上傳的HDFS目錄后,將對(duì)該目錄進(jìn)行檢測(cè),看是否存在與將要上傳的構(gòu)件同名的構(gòu)件,如果存在將要求開發(fā)者重新命名構(gòu)件;反之則轉(zhuǎn)至e;e)利用HDFSAPI將所勾選構(gòu)件上傳至該目錄,轉(zhuǎn)至f;f)與HDFS連接斷開,避免資源浪費(fèi),轉(zhuǎn)至g;g)結(jié)束通過(guò)引入HDFS分布式存儲(chǔ)系統(tǒng),使得整個(gè)公共構(gòu)件庫(kù)得以存儲(chǔ)在一個(gè)公共的區(qū)域,從而使得眾多的開發(fā)者共同參與到面向相似業(yè)務(wù)的企業(yè)級(jí)應(yīng)用開發(fā)中來(lái),同時(shí)HDFS采用的流式傳輸數(shù)據(jù)方式,保證了開發(fā)者在與HDFS進(jìn)行通信時(shí)的快速響應(yīng)。[0028]開發(fā)者身份認(rèn)證WS02Stratos中實(shí)現(xiàn)用戶對(duì)WS02Stratos中服務(wù)產(chǎn)品訪問(wèn)的方式都是基于以下兩條路線:1.JSP頁(yè)面中的請(qǐng)求,一般都會(huì)由Carbon容器中的BridgeServlet截取,而該BridgeServlet然后再分發(fā)到OSGi容器中的某個(gè)Bundle(OSGi技術(shù)中的基本組件)進(jìn)行具體的處理,然后再將結(jié)果返回到客戶頁(yè)面中;2.Jaggery頁(yè)面中的請(qǐng)求,一般都會(huì)由Carbon容器中的Jaggery服務(wù)端Bundle獲取,而通過(guò)Jaggery服務(wù)端Bundle調(diào)用OSGi容器中的具體Bundle進(jìn)行處理,然后將結(jié)果返回到客戶頁(yè)面中。[0029]而現(xiàn)在本發(fā)明需要面臨的是應(yīng)用開發(fā)者,開發(fā)者將借助于IDE開發(fā)環(huán)境來(lái)實(shí)現(xiàn)對(duì)WS02Stratos產(chǎn)品功能的調(diào)用,這樣上面的兩條路線都將不再適用。于是本發(fā)明提出第三種方式來(lái)實(shí)現(xiàn)應(yīng)用開發(fā)者對(duì)HDFS和Carbon身份認(rèn)證功能的結(jié)合。[0030]首先HDFS作為一個(gè)分布式存儲(chǔ)系統(tǒng),其本身已經(jīng)將訪問(wèn)HDFS的接口對(duì)外提供,這樣本發(fā)明可以利用OSGi的特性將HDFSAPI轉(zhuǎn)化成為構(gòu)件,添加至IDE環(huán)境中;同時(shí)本發(fā)明需要自己搭建一個(gè)HDFS的分布式存儲(chǔ)系統(tǒng),這樣本發(fā)明將能夠通過(guò)IP和設(shè)置的HDFS端口號(hào),利用HDFSAPI進(jìn)行各種操作;接著本發(fā)明需要在IDE中利用已經(jīng)構(gòu)件化的HDFSAPI來(lái)實(shí)現(xiàn)對(duì)HDFS具體操作的各種需求。[0031]如圖5中可以看到Carbon中進(jìn)行身份認(rèn)證的功能模塊,借助Axis2(實(shí)現(xiàn)WebService的一種技術(shù)框架)的優(yōu)點(diǎn),將功能實(shí)現(xiàn)分成了服務(wù)端和客戶端構(gòu)件。此時(shí),本發(fā)明將客戶端構(gòu)件〇rg.wso2.carbon,authentication,stub,jar將其從Carbon核心中分離出來(lái),然后添加至IDE環(huán)境中。在需要對(duì)HDFS進(jìn)行操作時(shí),一般都需要跟HDFS建立連接,所以在與HDFS建立連接之前,本發(fā)明調(diào)用身份認(rèn)證客戶端代碼,對(duì)開發(fā)者進(jìn)行一個(gè)認(rèn)證。于是本實(shí)例在客戶端構(gòu)件〇rg.wso2.carbon,authentication,stub,jar的基礎(chǔ)上封裝出了本發(fā)明自己的方法LoginAdminServiceClient,它接收開發(fā)者的用戶名和密碼,然后依托Carbon進(jìn)行開發(fā)者身份認(rèn)證。這樣就把HDFS和WS02Stratos結(jié)合起來(lái)了。[0032]開發(fā)環(huán)境構(gòu)件應(yīng)用新建應(yīng)用項(xiàng)目是基于構(gòu)件的開發(fā)方式,所以本發(fā)明可以借鑒DeveloperStudio中創(chuàng)建Plugin-in項(xiàng)目的方法。但是不同于Plugin-in項(xiàng)目的是本發(fā)明在新創(chuàng)建的應(yīng)用項(xiàng)目Plugin-inDependencies目錄中加入了面向該應(yīng)用項(xiàng)目的核心構(gòu)件,希望開發(fā)者以此核心構(gòu)件為基礎(chǔ)進(jìn)行應(yīng)用的快速開發(fā)。要達(dá)到此目的需要做如下事情:1.在本發(fā)明創(chuàng)建的RCP插件的plugin,xml中創(chuàng)建一個(gè)Extension擴(kuò)展點(diǎn),該擴(kuò)展點(diǎn)繼承至org.eclipse,ui.newWizards。在該擴(kuò)展點(diǎn)下創(chuàng)建一個(gè)AppNewCreationWizard,于是新建應(yīng)用的功能就能出現(xiàn)在New采單項(xiàng)中。為了能夠?qū)崿F(xiàn)在新建應(yīng)用項(xiàng)目時(shí),能夠添加核心構(gòu)件到Plugin-inDependencies中,還需要深入到AppNewCreationWizard類中。[0033]2.AppNewCreationWizard類繼承至NewWizard實(shí)現(xiàn)IExecutableExtension接口,它需要在performFinishO方法中調(diào)用了AppNewCreation類。AppNewCreation類繼承至WorkspaceModifyOperation,同時(shí)封裝了一個(gè)IPluginContentWizard對(duì)象。該類中一個(gè)重要的方法createManifest(IProjectproject)用來(lái)配置項(xiàng)目的MANIFEST.MF文件,該方法中有一個(gè)pluginBase對(duì)象,該對(duì)象專門用來(lái)往創(chuàng)建項(xiàng)目中添加構(gòu)件。所以本發(fā)明將需要添加至創(chuàng)建中的項(xiàng)目轉(zhuǎn)變成為IPluginReference,然后再通過(guò)該對(duì)象初始化一個(gè)IPluginlmport對(duì)象,最后再將該對(duì)象添加至pluginBase對(duì)象中,達(dá)到本發(fā)明的目的。其中需要說(shuō)明的是,本發(fā)明要添加至項(xiàng)目中的RFID(射頻識(shí)別技術(shù))構(gòu)件,已經(jīng)提前跟DeveloperStudio核心構(gòu)件存在在一起,所以其路徑固定,便能輕易的產(chǎn)生IPluginReference對(duì)象。[0034]開發(fā)環(huán)境構(gòu)件導(dǎo)入通過(guò)DeveloperStudio中Import選項(xiàng)從HDFS中下載需要的構(gòu)件時(shí),本發(fā)明借鑒DeveloperStudio中ImportPlugin的方法來(lái)實(shí)現(xiàn),但是考慮到前者的ImportPage太過(guò)復(fù)雜,于是本發(fā)明自己定制了一個(gè)簡(jiǎn)單的,滿足本發(fā)明需求的Page。達(dá)到此目的需要做如下事情:1.在本發(fā)明創(chuàng)建的RCP插件的plugin,xml中創(chuàng)建一個(gè)Extension擴(kuò)展點(diǎn),該擴(kuò)展點(diǎn)繼承至org.eclipse,ui.importWizards。在該擴(kuò)展點(diǎn)下創(chuàng)建一個(gè)Import2HadoopWizard,于是從HDFS導(dǎo)入應(yīng)用依賴構(gòu)件的功能就能出現(xiàn)在Import菜單項(xiàng)中。但是具體到從HDFS中獲取構(gòu)件的實(shí)現(xiàn),還需要深入到Import2HadoopWizard類中。[0035]2.Import2HadoopWizard繼承Wizard,實(shí)現(xiàn)了IExportWizard接口,該類中有兩個(gè)重要的方法。首先addPagesO方法中添加了兩個(gè)Page頁(yè)面,Import2HadoopFirstPage、Import2HadoopSecondPage,其中第一個(gè)Page用來(lái)選擇HDFS中創(chuàng)建的構(gòu)件庫(kù)目錄結(jié)構(gòu),第二個(gè)Page將列出第一個(gè)Page勾選的目錄下所有的構(gòu)件;其次,performFinish()方法將檢查plugins目錄下面有沒(méi)有開發(fā)者勾選的構(gòu)件,最終選擇本地目錄中沒(méi)有,而開發(fā)者勾選的構(gòu)件加入到本地目錄,同時(shí)添加到項(xiàng)目的依賴中。[0036]開發(fā)環(huán)境構(gòu)件導(dǎo)出通過(guò)DeveloperStudio中Export選項(xiàng)往HDFS中上傳構(gòu)件時(shí),本發(fā)明借鑒DeveloperStudio中ExportPlugin的方法來(lái)實(shí)現(xiàn),但是考慮到前者的ExportPage太過(guò)復(fù)雜,于是本發(fā)明自己定制了一個(gè)簡(jiǎn)單的,滿足本發(fā)明需求的Page。達(dá)到此目的需要做如下事情:1.在本發(fā)明創(chuàng)建的RCP插件的plugin,xml中創(chuàng)建一個(gè)Extension擴(kuò)展點(diǎn),該擴(kuò)展點(diǎn)繼承至org.eclipse,ui.exportWizards。在該擴(kuò)展點(diǎn)下創(chuàng)建一個(gè)Export2HadoopWizard,于是將構(gòu)件導(dǎo)出到HDFS的功能就能出現(xiàn)在Export菜單項(xiàng)中。但是具體到從HDFS中獲取構(gòu)件的實(shí)現(xiàn),還需要深入到Export2HadoopWizard類中。[0037]2.Export2HadoopWizard繼承Wizard,實(shí)現(xiàn)了IExportWizard接口,該類中有兩個(gè)重要的方法。首先addPagesO方法中添加了兩個(gè)Page頁(yè)面,Export2HadoopFirstPage、Export2HadoopSecondPage,其中第一個(gè)Page用來(lái)選擇本地DeveloperStudioWorkspace中需要上傳的構(gòu)件,第二個(gè)Page將列出HDFS中目錄結(jié)構(gòu),供開發(fā)者選擇第一個(gè)Page中需要上傳的目錄;其次,performFinishO方法將開發(fā)者勾選的構(gòu)件上傳到其勾選的HDFS中目錄下。[0038]通過(guò)對(duì)Hadoop、Carbon、DeveloperStudioIDE三個(gè)方面的技術(shù)設(shè)計(jì),最終將達(dá)到如圖6中所示的效果,開發(fā)者們可以很方便的進(jìn)行基于構(gòu)件的企業(yè)級(jí)應(yīng)用開發(fā)。當(dāng)企業(yè)擁有自己的針對(duì)具體行業(yè)的構(gòu)件庫(kù)時(shí),利用上述方式進(jìn)行一個(gè)構(gòu)件庫(kù)的部署,然后開放給其他從事該行業(yè)的開發(fā)者時(shí),將會(huì)大大促進(jìn)該行業(yè)的應(yīng)用開發(fā)發(fā)展?!緳?quán)利要求】1.基于WS02Stratos的企業(yè)級(jí)應(yīng)用開發(fā)方法,其特征在于:首先,針對(duì)需要提供給開發(fā)者的構(gòu)件資源,利用Hadoop分布式存儲(chǔ)系統(tǒng)進(jìn)行設(shè)計(jì);接著,針對(duì)使用構(gòu)件資源的開發(fā)者管理,提取出WS02Stratos中身份認(rèn)證管理服務(wù)進(jìn)行實(shí)現(xiàn);最后,對(duì)WS02Stratos對(duì)外提供的DeveloperStudioIDE進(jìn)行功能擴(kuò)展。2.根據(jù)權(quán)利要求1所述的基于WS02Stratos的企業(yè)級(jí)應(yīng)用開發(fā)方法,其特征在于具體包括如下步驟:(1)構(gòu)件的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì):構(gòu)件資源的存儲(chǔ)即針對(duì)基于SSH框架進(jìn)行企業(yè)級(jí)應(yīng)用開發(fā)的場(chǎng)景,利用Hadoop中HDFS分布式存儲(chǔ)系統(tǒng),進(jìn)行對(duì)應(yīng)框架的目錄資源設(shè)計(jì);(2)構(gòu)件下載:根據(jù)開發(fā)者缺失的構(gòu)件,從Hadoop中進(jìn)行查找并且將查找結(jié)果提供給開發(fā)者,進(jìn)行構(gòu)件下載;(3)構(gòu)件上傳:當(dāng)開發(fā)者想要對(duì)外提供自己開發(fā)的構(gòu)件時(shí),將向開發(fā)者提供構(gòu)件上傳的功能,開發(fā)者通過(guò)該功能就能將構(gòu)件上傳到Hadoop中相關(guān)目錄,使其他開發(fā)者就能夠獲取到該上傳構(gòu)件的功能;(4)身份認(rèn)證:為了保證開發(fā)者的合法性,在進(jìn)行構(gòu)件開發(fā)時(shí),當(dāng)需要跟Hadoop進(jìn)行通信時(shí),需要對(duì)其進(jìn)行身份認(rèn)證,通過(guò)提取出WS02Stratos中的身份認(rèn)證服務(wù)來(lái)進(jìn)行實(shí)現(xiàn);(5)開發(fā)環(huán)境構(gòu)件應(yīng)用新建:WS02Stratos對(duì)外提供的DeveloperStudioIDE開發(fā)環(huán)境直接面向開發(fā)者,針對(duì)構(gòu)件應(yīng)用新建提供了一個(gè)入口;(6)開發(fā)環(huán)境構(gòu)件導(dǎo)入和導(dǎo)出:在DeveloperStudio中進(jìn)行實(shí)現(xiàn)開發(fā)環(huán)境構(gòu)件導(dǎo)入和導(dǎo)出?!疚臋n編號(hào)】G06F9/44GK104090756SQ201410279221【公開日】2014年10月8日申請(qǐng)日期:2014年6月20日優(yōu)先權(quán)日:2014年6月20日【發(fā)明者】劉發(fā)貴,段琦,楊英儀,楊進(jìn)申請(qǐng)人:華南理工大學(xué)