国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      構(gòu)件初始化過程中的構(gòu)造方法

      文檔序號:6555678閱讀:247來源:國知局
      專利名稱:構(gòu)件初始化過程中的構(gòu)造方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,特別涉及計(jì)算機(jī)構(gòu)件化軟件系統(tǒng)領(lǐng)域,具體是指一種構(gòu)件初始化過程中的構(gòu)造方法。

      背景技術(shù)
      隨著現(xiàn)代構(gòu)件化計(jì)算機(jī)軟件技術(shù)的進(jìn)一步發(fā)展,CAR(Component Assembly Runtime)構(gòu)件技術(shù)是一種使用面向構(gòu)件編程(Component Oriented Programming,簡稱COP)技術(shù),它定義了一套網(wǎng)絡(luò)編程時代的構(gòu)件編程模型和編程規(guī)范,規(guī)定了一組構(gòu)件間相互調(diào)用的標(biāo)準(zhǔn),使得二進(jìn)制構(gòu)件能夠自描述,能夠在運(yùn)行時動態(tài)鏈接。
      目前,CAR構(gòu)件技術(shù)已在某些先進(jìn)的嵌入式操作系統(tǒng)上實(shí)現(xiàn),在該嵌入式操作系統(tǒng)的SDK(Software Development Kit)下,用戶很容易編寫出自己的構(gòu)件。
      CAR構(gòu)件技術(shù)的基礎(chǔ)思想來源于微軟的COM,但它對微軟的COM進(jìn)行了拓展,并且二者不兼容。CAR構(gòu)件技術(shù)由CAR語言(構(gòu)件描述語言,描述構(gòu)件的元數(shù)據(jù)信息)、CAR編譯器、自動代碼生成工具以及CAR構(gòu)件基礎(chǔ)庫支持。CAR構(gòu)件技術(shù)體現(xiàn)了網(wǎng)絡(luò)編程時代的特性,編程界面簡單。
      CAR構(gòu)件構(gòu)造機(jī)制類似普通的C++對象的構(gòu)造過程,C++對象通過類的不同的構(gòu)造函數(shù)在不同的情況下構(gòu)造C++對象,不同的構(gòu)造函數(shù)表現(xiàn)在不同的參數(shù)。同時,對于傳統(tǒng)的C++對象的構(gòu)造機(jī)制來說,主要有兩個功能一個是分配對象所需的空間,另一個初始化成員變量。C++的構(gòu)造函數(shù)是普通的函數(shù),故它不能遠(yuǎn)程化執(zhí)行,而且它沒有返回值,所以構(gòu)造失敗時,想知道失敗的原因會變的異常困難,而對于需要遠(yuǎn)程構(gòu)造的構(gòu)件來說,構(gòu)造失敗會是個常見的現(xiàn)象,客戶端需要了解失敗的原因,以作出相應(yīng)的處理,而傳統(tǒng)的C++的構(gòu)造過程和機(jī)制就無法滿足這樣的需求,因此限制了分布式系統(tǒng)中的構(gòu)件技術(shù)的進(jìn)一步發(fā)展。


      發(fā)明內(nèi)容
      本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種能夠根據(jù)構(gòu)件描述文件自動生成構(gòu)件的構(gòu)造接口類代碼框架、支持客戶端和服務(wù)端的遠(yuǎn)程構(gòu)造方式、將構(gòu)造結(jié)果返回、執(zhí)行效率較高、運(yùn)行性能穩(wěn)定可靠、適用范圍較為廣泛的構(gòu)件初始化過程中的構(gòu)造方法。
      為了實(shí)現(xiàn)上述的目的,本發(fā)明的構(gòu)件初始化過程中的構(gòu)造方法如下 該構(gòu)件初始化過程中的構(gòu)造方法,包括通過計(jì)算機(jī)網(wǎng)絡(luò)相連接的服務(wù)端和客戶端,其主要特點(diǎn)是,所述的方法包括以下步驟 (1)系統(tǒng)進(jìn)行初始化操作; (2)系統(tǒng)根據(jù)用戶操作,在構(gòu)件描述文件中添加構(gòu)件接口描述信息和特定的構(gòu)造函數(shù); (3)系統(tǒng)讀取該構(gòu)件描述文件,產(chǎn)生元數(shù)據(jù),并根據(jù)該特定的構(gòu)造函數(shù)在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架; (4)系統(tǒng)得到元數(shù)據(jù),并根據(jù)該元數(shù)據(jù)在客戶端生成構(gòu)造調(diào)用方法; (5)系統(tǒng)根據(jù)用戶調(diào)用和元數(shù)據(jù)信息,在客戶端產(chǎn)生構(gòu)件類廠對象; (6)系統(tǒng)在服務(wù)端查詢相應(yīng)的構(gòu)造接口類; (7)系統(tǒng)根據(jù)查詢到的構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法,并將操作結(jié)果作為返回值返回,從而完成構(gòu)件的初始化構(gòu)造。
      該構(gòu)件初始化過程中的構(gòu)造方法的特定的構(gòu)造函數(shù)的格式為構(gòu)造函數(shù)標(biāo)識([輸入]輸入?yún)?shù))。
      該構(gòu)件初始化過程中的構(gòu)造方法的構(gòu)造函數(shù)標(biāo)識為constructor。
      該構(gòu)件初始化過程中的構(gòu)造方法的在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架包括以下步驟 (1)在服務(wù)端生成構(gòu)造接口類的代碼; (2)根據(jù)所述的特定的構(gòu)造函數(shù)生成該構(gòu)造接口類的構(gòu)造接口方法,該構(gòu)造接口方法的格式為錯誤代碼接口方法標(biāo)識(輸入?yún)?shù),構(gòu)件指針),其中錯誤代碼為該構(gòu)造接口方法的返回值; (3)在該構(gòu)造接口方法的執(zhí)行過程中產(chǎn)生該構(gòu)件并進(jìn)行初始化的操作,并將構(gòu)件產(chǎn)生和初始化操作的錯誤代碼作為返回值返回。
      該構(gòu)件初始化過程中的構(gòu)造方法的在客戶端生成構(gòu)造調(diào)用方法包括以下步驟 (1)在客戶端根據(jù)構(gòu)件接口元數(shù)據(jù),產(chǎn)生特定的構(gòu)造函數(shù)和構(gòu)件接口構(gòu)造調(diào)用方法,該構(gòu)造調(diào)用方法的格式為錯誤代碼構(gòu)造方法標(biāo)識(輸入?yún)?shù),構(gòu)件指針),其中錯誤代碼為該構(gòu)造調(diào)用方法的返回值; (2)在該構(gòu)造調(diào)用方法的執(zhí)行過程中產(chǎn)生構(gòu)件類廠對象、在服務(wù)端查詢相應(yīng)的構(gòu)造接口類、根據(jù)該構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法以完成產(chǎn)生構(gòu)件和初始化構(gòu)造的操作,并將上述操作的錯誤代碼作為返回值返回。
      該構(gòu)件初始化過程中的構(gòu)造方法的構(gòu)造方法標(biāo)識為New。
      采用了該發(fā)明的構(gòu)件初始化過程中的構(gòu)造方法,由于系統(tǒng)在初始化過程中根據(jù)構(gòu)件描述文件中的構(gòu)件接口元數(shù)據(jù)和特定的構(gòu)造函數(shù)信息在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架,同時在客戶端自動生成對應(yīng)的構(gòu)造調(diào)用方法,并將操作的結(jié)果作為返回值返回給用戶,從而可靠實(shí)現(xiàn)了客戶端和服務(wù)端的構(gòu)件遠(yuǎn)程構(gòu)造方式,并能夠較好的支持分布式系統(tǒng)應(yīng)用;同時將構(gòu)造結(jié)果返回用戶,便于用戶針對性的進(jìn)行處理,從而提高了開發(fā)人員的開發(fā)效率和程序的執(zhí)行效率,降低了開發(fā)難度,增強(qiáng)了程序運(yùn)行性能的穩(wěn)定性,適用范圍較為廣泛,為分布式構(gòu)件化軟件系統(tǒng)的進(jìn)一步發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。



      圖1為本發(fā)明的構(gòu)件初始化過程中的構(gòu)造方法的執(zhí)行過程示意圖。
      圖2為本發(fā)明的構(gòu)件初始化過程中的構(gòu)造方法的執(zhí)行過程中的內(nèi)存結(jié)構(gòu)示意圖。
      圖3為本發(fā)明的構(gòu)件初始化過程中的構(gòu)造方法的接口繼承關(guān)系示意圖。

      具體實(shí)施例方式 為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。
      請參閱圖1所示,該構(gòu)件初始化過程中的構(gòu)造方法,包括通過計(jì)算機(jī)網(wǎng)絡(luò)相連接的服務(wù)端和客戶端,其中,所述的方法包括以下步驟 (1)系統(tǒng)進(jìn)行初始化操作; (2)系統(tǒng)根據(jù)用戶操作,在構(gòu)件描述文件中添加構(gòu)件接口描述信息和特定的構(gòu)造函數(shù),該特定的構(gòu)造函數(shù)的格式為構(gòu)造函數(shù)標(biāo)識([輸入]輸入?yún)?shù)),其中該構(gòu)造函數(shù)標(biāo)識可以為constructor,當(dāng)然也可以根據(jù)編程開發(fā)人員的習(xí)慣采用其它的標(biāo)識字符串; (3)系統(tǒng)讀取該構(gòu)件描述文件,產(chǎn)生元數(shù)據(jù),并根據(jù)該特定的構(gòu)造函數(shù)在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架,包括以下步驟 (a)在服務(wù)端生成構(gòu)造接口類的代碼; (b)根據(jù)所述的特定的構(gòu)造函數(shù)生成該構(gòu)造接口類的構(gòu)造接口方法,該構(gòu)造接口方法的格式為錯誤代碼接口方法標(biāo)識(輸入?yún)?shù),構(gòu)件指針),其中錯誤代碼為該構(gòu)造接口方法的返回值; (c)在該構(gòu)造接口方法的執(zhí)行過程中進(jìn)行產(chǎn)生該構(gòu)件并進(jìn)行初始化的操作,并將構(gòu)件產(chǎn)生和初始化操作的錯誤代碼作為返回值返回; (4)系統(tǒng)得到元數(shù)據(jù),并根據(jù)該元數(shù)據(jù)在客戶端生成構(gòu)造調(diào)用方法,包括以下步驟 (a)在客戶端根據(jù)構(gòu)件接口元數(shù)據(jù),產(chǎn)生特定的構(gòu)造函數(shù)和構(gòu)件接口構(gòu)造調(diào)用方法,該構(gòu)造調(diào)用方法的格式為錯誤代碼構(gòu)造方法標(biāo)識(輸入?yún)?shù),構(gòu)件指針),其中錯誤代碼為該構(gòu)造調(diào)用方法的返回值,其中該構(gòu)造方法標(biāo)識可以為New,當(dāng)然也可以根據(jù)編程開發(fā)人員的習(xí)慣采用其它的標(biāo)識字符串; (b)在該構(gòu)造調(diào)用方法的執(zhí)行過程中產(chǎn)生構(gòu)件類廠對象、在服務(wù)端查詢相應(yīng)的構(gòu)造接口類、根據(jù)該構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法以完成產(chǎn)生構(gòu)件和初始化構(gòu)造的操作,并將上述操作的錯誤代碼作為返回值返回; (5)系統(tǒng)根據(jù)用戶調(diào)用和元數(shù)據(jù)信息,在客戶端產(chǎn)生構(gòu)件類廠對象; (6)系統(tǒng)在服務(wù)端查詢相應(yīng)的構(gòu)造接口類; (7)系統(tǒng)根據(jù)查詢到的構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法,并將操作結(jié)果作為返回值返回,從而完成構(gòu)件的初始化構(gòu)造。
      在實(shí)際應(yīng)用當(dāng)中,采用本發(fā)明的上述方法的CAR構(gòu)件在進(jìn)行構(gòu)造的過程中,具有以下特點(diǎn) (1)遠(yuǎn)程構(gòu)造特性 遠(yuǎn)程化是CAR構(gòu)件接口的能力,而CAR構(gòu)件的構(gòu)造則是個接口方法。這樣就允許從遠(yuǎn)程帶參數(shù)得構(gòu)造某個CAR構(gòu)件。
      構(gòu)件的本地構(gòu)造方法,例如在(100,110)的位置構(gòu)造一個圖形控件按鈕對象 Position pos={100,110}; IButtonSam*pbs=NULL; ECODE ec=CButtonSam.New(&pos,&pbs); if(FAILED(ec)){ printf("Failed to create object with using Positon,\ ec=0x%08x\n",ec); goto ErrorExit; } 構(gòu)件的遠(yuǎn)程(指異進(jìn)程)構(gòu)造方法,比如 ec=CButtonSam.NewInContext(CTX_DIFF_DOMAIN,&pos,&pbs); 告訴系統(tǒng)將服務(wù)創(chuàng)建指異進(jìn)程,類似微軟com對象的創(chuàng)建,其他的過程沒有大的差別。
      (2)CAR構(gòu)件的構(gòu)造的返回值特性 以上面的例子來說明。構(gòu)造時返回ec,它是系統(tǒng)定義的error code,通過分析它的值,就可以知道再構(gòu)造時發(fā)生了什么錯誤,進(jìn)而做出響應(yīng)的處理。
      這時構(gòu)件對象的服務(wù)接口由New函數(shù)的最后一個參數(shù)帶傳出來,而傳統(tǒng)的C++構(gòu)造函數(shù)也是不能通過參數(shù)帶出構(gòu)造結(jié)果的。
      (3)框架代碼的自動生成特性 首先是服務(wù)端代碼自動生成 CAR構(gòu)件給程序員提供了最大程度的方便,只需要在構(gòu)件描述文件(car文件)中添加特殊的構(gòu)造函數(shù)constructor(),系統(tǒng)便會自動生成構(gòu)造接口,如_CButtonSam_IClassObject_,它帶有和構(gòu)造參數(shù)相對應(yīng)的接口方法,比如CreateObjectWithPos(/*[in]*/PPosition pos,/*[out]*/IObject**ppNewObj)。從中可以看出,它的函數(shù)名和程序員在構(gòu)造對象時所帶的構(gòu)造參數(shù)緊密相關(guān),此方法會根據(jù)用戶傳進(jìn)來的參數(shù)構(gòu)造出構(gòu)件對象。由于接口_CButtonSam_IClassObject_對用戶是不可見的,故其接口CreateObjectWithPos()由系統(tǒng)根據(jù)car文件生成代碼,用戶只需要實(shí)現(xiàn)GetPosition()和constuctor()函數(shù)就可以了。
      構(gòu)件描述文件(Car文件)的寫法,請見如下所示   module  {  typedef struct{  int x;  inty;  }Position,*PPosition;  //服務(wù)端所支持的其它接口  interface IButtonSam{  GetPosition(  [out]PPosition pPos);  }  class CButtonSam{  constructor(  [in]PPosition pos);  //服務(wù)端所支持的其它接口  interface IButtonSam;  }  } 接著是客戶端代碼自動生成 根據(jù)構(gòu)件接口元數(shù)據(jù),系統(tǒng)為客戶端生成方法ECODE New(/*[in]*/PPosition pos,/*[out]*/IButtonSam**pIButtonSam),該方法先調(diào)用傳統(tǒng)的EzGetClassObject方法產(chǎn)生構(gòu)件對象類廠,再查詢到構(gòu)造接口如_CButtonSam_IClassObject_,再根據(jù)參數(shù)的不同調(diào)用相應(yīng)的構(gòu)造接口方法,如CreateObjectWithPos等。其執(zhí)行流程請參閱圖1所示,其中中間部分為由系統(tǒng)生成的代碼,最左邊部分為客戶端用戶關(guān)心的代碼,最右邊為服務(wù)端用戶關(guān)心的代碼。
      在CAR構(gòu)件的構(gòu)造機(jī)制的實(shí)現(xiàn)過程中,為了讓CAR構(gòu)件DLL能具備的遠(yuǎn)程的構(gòu)造能力,就需要設(shè)計(jì)接口函數(shù)幫助構(gòu)件完成初始化,構(gòu)造好的CAR構(gòu)件DLL執(zhí)行時的內(nèi)存結(jié)構(gòu)請參閱圖2所示,其中的V1指向IButtonSam的函數(shù)指針表,V2指向接口_CButtonSam_IClassObject_的函數(shù)指針表,V1和V2指針等同com中的vptr,是虛函數(shù)表指針。
      其接口的繼承關(guān)系請參閱圖3所示,其中的CButtonSam是服務(wù)端需要實(shí)現(xiàn)的按鈕類。
      在本發(fā)明的具體實(shí)施方式
      中,CAR構(gòu)件的構(gòu)造機(jī)制的應(yīng)用范例如下 以圖形控件按鈕為例,先產(chǎn)生Car文件如下   module  {  typedef struct{  int x;  int y;  }Position,*PPosition;  interface IButtonSam{  GetPosition(  [out]PPosition pPos);  }  class CButtonSam{  constructor(  [in]PPosition pos);  interface IButtonSam;  }  } 其中的constructor([in]PPosition pos)是CButtonSam類的構(gòu)造函數(shù),CAR文件的編譯器在發(fā)現(xiàn)有構(gòu)造函數(shù)存在car文件的class中,會生成有_CButtonSam_IClassObject_接口代碼框架,它包含接口構(gòu)造方法CARAPI CreateObjectWithPos(PPosition pos,IObject**pNewObj),對應(yīng)于constructor方法   ECODE_CButtonSamClassObject_::CreateObjectWithPos(  /*[in]*/PPosition pos,  /*[out]*/IObject**ppNewObj)  {  ECODE_ecode_;  CButtonSam*_pNewObj_;  _ecode_=_CButtonSamCreateObject(IID_IObject,(IObject**)&amp;_pNewObj_);  if(FAILED(_ecode_))return_ecode_;  _ecode_=_pNewObj_->constructor(pos);  if(FAILED(_ecode_)){  _pNewObj_->Release();  return_ecode_;  }  *ppNewObj=(_IObject*)_pNewObj_;  return NOERROR;  } 其中   CARAPI_CButtonSamCreateObject(RIID riid,IObject**ppObj)  {  ECODE ec;  CButtonSam*pObj=new CButtonSam;  if(!pObj)return E_OUT_OF_MEMORY;  ((_IObject*)pObj)->AddRef();  if(FAILED(ec))goto ErrorExit;  ec=((_IObject*)pObj)->QueryIntefface(riid,ppObj);  ErrorExit:<!-- SIPO <DP n="6"> --><dp n="d6"/>  pObj->Release();  return ec;  } 這樣客戶程序只要以接口方法的形式調(diào)用相應(yīng)的方法就可完成初始化,客戶端包含的對構(gòu)件的使用非常類似C++的類對象構(gòu)造,如下所示   EXTERN_C int main(int argc,char**argv)  {  Position pos={100,110},postmp;  IButtonSam*pbs=NULL;  ECODE ec=CButtonSam.New(&amp;pos,&amp;pbs);  if(FAILED(ec)){  printf("Failed to create object with using Positon,ec=0x%08x\n",ec);  goto ErrorExit;  }  printf("Succeed to create button with position{x=%d,y=%d}\n",pos.x,pos.y);  pbs->GetPosition(&amp;postmp);  printf("Get positon:x=%d,y=%d\n",postmp.x,postmp.y);  pbs->Release();  pbs=NULL;  ErrorExit:  if(pbs)pbs->Release();  return 0;  } 其中,New函數(shù)實(shí)現(xiàn)是由系統(tǒng)根據(jù)Car文件提供的元數(shù)據(jù)生成的如下代碼來完成的   class_CButtonSamClassObject_  {  public:  static ECODE New(  /*[in]*/PPosition pos,  /*[out]*/IButtonSam**pIButtonSam)  {  ECODE_ecode=NOERROR;  IObject*_pNewObject=NULL;  _CButtonSam_IClassObject_*_p_CButtonSam_IClassObject_=NULL;  _ecode=EzGetClassObject(CLSID_CButtonSamClassObject_,  CTX_SAME_DOMAIN,(IObject**)&amp;_p_CButtonSam_IClassObject_);  if(FAILED(_ecode))goto Exit;  _ecode=_p_CButtonSam_IClassObject_->CreateObjectWithPos(pos,&amp;_pNewObject);  if(FAILED(_ecode))goto Exit;  _ecode=_pNewObject->QueryInterface(IID_IButtonSam,(IObject**)pIButtonSam);  if(FAILED(_ecode))goto Exit;  Exit:  if(_pNewObject)_pNewObject->Release();  if(_p_CButtonSam_IClassObject_)_p_CButtonSam_IClassObject_->Release();  return_ecode;  }  }; 采用了上述的構(gòu)件初始化過程中的構(gòu)造方法,由于系統(tǒng)在初始化過程中根據(jù)構(gòu)件描述文件中的構(gòu)件接口元數(shù)據(jù)和特定的構(gòu)造函數(shù)信息在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架,同時在客戶端自動生成對應(yīng)的構(gòu)造調(diào)用方法,并將操作的結(jié)果作為返回值返回給用戶,從而可靠實(shí)現(xiàn)了客戶端和服務(wù)端的構(gòu)件遠(yuǎn)程構(gòu)造方式,并能夠較好的支持分布式系統(tǒng)應(yīng)用;同時將構(gòu)造結(jié)果返回用戶,便于用戶針對性的進(jìn)行處理,從而提高了開發(fā)人員的開發(fā)效率和程序的執(zhí)行效率,降低了開發(fā)難度,增強(qiáng)了程序運(yùn)行性能的穩(wěn)定性,適用范圍較為廣泛,為分布式構(gòu)件化軟件系統(tǒng)的進(jìn)一步發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
      在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
      權(quán)利要求
      1、一種構(gòu)件初始化過程中的構(gòu)造方法,包括通過計(jì)算機(jī)網(wǎng)絡(luò)相連接的服務(wù)端和客戶端,其特征在于,所述的方法包括以下步驟
      (1)系統(tǒng)進(jìn)行初始化操作;
      (2)系統(tǒng)根據(jù)用戶操作,在構(gòu)件描述文件中添加構(gòu)件接口描述信息和特定的構(gòu)造函數(shù);
      (3)系統(tǒng)讀取該構(gòu)件描述文件,產(chǎn)生接口元數(shù)據(jù),并根據(jù)該特定的構(gòu)造函數(shù)在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架;
      (4)系統(tǒng)得到元數(shù)據(jù),并根據(jù)該元數(shù)據(jù)在客戶端生成構(gòu)造調(diào)用方法;
      (5)系統(tǒng)根據(jù)用戶調(diào)用和元數(shù)據(jù)信息,在客戶端產(chǎn)生構(gòu)件類廠對象;
      (6)系統(tǒng)在服務(wù)端查詢相應(yīng)的構(gòu)造接口類;
      (7)系統(tǒng)根據(jù)查詢到的構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法,并將操作結(jié)果作為返回值返回,從而完成構(gòu)件的初始化構(gòu)造。
      2、根據(jù)權(quán)利要求1所述的構(gòu)件初始化過程中的構(gòu)造方法,其特征在于,所述的特定的構(gòu)造函數(shù)的格式為構(gòu)造函數(shù)標(biāo)識([輸入]輸入?yún)?shù))。
      3、根據(jù)權(quán)利要求1所述的構(gòu)件初始化過程中的構(gòu)造方法,其特征在于,所述的構(gòu)造函數(shù)標(biāo)識為constructor。
      4、根據(jù)權(quán)利要求2所述的構(gòu)件初始化過程中的構(gòu)造方法,其特征在于,所述的在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架包括以下步驟
      (1)在服務(wù)端生成構(gòu)造接口類的代碼;
      (2)根據(jù)所述的特定的構(gòu)造函數(shù)生成該構(gòu)造接口類的構(gòu)造接口方法,該構(gòu)造接口方法的格式為錯誤代碼接口方法標(biāo)識(輸入?yún)?shù),構(gòu)件指針),其中錯誤代碼為該構(gòu)造接口方法的返回值;
      (3)在該構(gòu)造接口方法的執(zhí)行過程中進(jìn)行產(chǎn)生該構(gòu)件對象并進(jìn)行初始化的操作,并將構(gòu)件產(chǎn)生和初始化操作的錯誤代碼作為返回值返回。
      5、根據(jù)權(quán)利要求2至4中任一項(xiàng)所述的構(gòu)件初始化過程中的構(gòu)造方法,其特征在于,所述的在客戶端生成構(gòu)造調(diào)用方法包括以下步驟
      (1)在客戶端根據(jù)構(gòu)件接口元數(shù)據(jù),產(chǎn)生特定的構(gòu)造函數(shù)和構(gòu)件接口構(gòu)造調(diào)用方法,該構(gòu)造調(diào)用方法的格式為錯誤代碼構(gòu)造方法標(biāo)識(輸入?yún)?shù),構(gòu)件指針),其中錯誤代碼為該構(gòu)造調(diào)用方法的返回值;
      (2)在該構(gòu)造調(diào)用方法的執(zhí)行過程中進(jìn)行產(chǎn)生構(gòu)件類廠對象、在服務(wù)端查詢相應(yīng)的構(gòu)造接口類、根據(jù)該構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法以完成產(chǎn)生構(gòu)件和初始化構(gòu)造的操作,并將上述操作的錯誤代碼作為返回值返回。
      6、根據(jù)權(quán)利要求5所述的構(gòu)件初始化過程中的構(gòu)造方法,其特征在于,所述的構(gòu)造方法標(biāo)識為New。
      全文摘要
      本發(fā)明涉及一種構(gòu)件初始化過程中的構(gòu)造方法,包括在構(gòu)件描述文件中添加構(gòu)件接口元數(shù)據(jù)和特定的構(gòu)造函數(shù)、根據(jù)特定的構(gòu)造函數(shù)在服務(wù)端生成包括構(gòu)造接口方法的構(gòu)造接口類代碼框架、根據(jù)所述的構(gòu)件接口元數(shù)據(jù)在客戶端生成構(gòu)造調(diào)用方法、在客戶端產(chǎn)生構(gòu)件對象類廠、在服務(wù)端查詢相應(yīng)的構(gòu)造接口類、根據(jù)查詢到的構(gòu)造接口類調(diào)用相應(yīng)的構(gòu)造接口方法并將操作結(jié)果作為返回值返回。采用該種構(gòu)件初始化過程中的構(gòu)造方法,可靠實(shí)現(xiàn)了構(gòu)件遠(yuǎn)程構(gòu)造方式,并能夠較好的支持分布式系統(tǒng)應(yīng)用,提高了開發(fā)人員的開發(fā)效率和程序的執(zhí)行效率,降低了開發(fā)難度,增強(qiáng)了程序運(yùn)行性能的穩(wěn)定性,適用范圍較為廣泛,為分布式構(gòu)件化軟件系統(tǒng)的進(jìn)一步發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
      文檔編號G06F9/44GK1904825SQ20061002975
      公開日2007年1月31日 申請日期2006年8月4日 優(yōu)先權(quán)日2006年8月4日
      發(fā)明者陳榕, 梁宇洲, 黃凱峰, 文立 申請人:上??铺┦兰o(jì)科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1