日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

利用動態調用方式實現分布式應用(下)

系統 1996 0

利用動態調用方式實現分布式應用(下)

(本文轉載自軟件工程專家網 www.21cmm.com

蘇洋

  上一講介紹了利用動態調用方式實現分布式應用時, 客戶端動態調用接口(DII)和服務對象動態骨架接口(DSI)的創建,下面用一個具體的例子來說明整個過程。

1. 對象功能描述和系統簡要設計

  本例仍然模擬電信資費管理業務流程,在服務對象端注冊一個電話用戶。用戶在遠程客戶端查詢該用戶本月發生的電話費用。根據對象功能的說明,用UML描述出服務對象需要實現的功能:

  getFee() : float

  openAccout( string name ) : Agent

2. 服務對象接口定義

  根據系統分析結果,用IDL編寫出服務對象方法描述程序TeleComm.idl:

  module TeleComm

  {

  interface Agent

  {

  float getFee();

  };

  interface AgentManager

  {

  Account openAccount(in string name);

  };

  };

3. 接口的實現

(1)Agent接口的實現

  public class AgentImpl extends DynamicImplementation

  {

  //構造AgentImpl類

  //get方法在invoke動態調用方法中按名字匹配調用

  public synchronized org.omg.CORBA.Object get(String name){

  //申請賬戶金額,生成賬戶對象

  }

  public void invoke(org.omg.CORBA.ServerRequest request){

  //申請可移植對象適配器

  //填寫調用參數,提出申請賬戶請求

  }

  }

(2)AgentManager接口實現

  public class AgentManagerImpl extends DynamicImplementation{

  //構造AgentManager類

  public void invoke(org.omg.CORBA.ServerRequest request){

  //填寫調用參數表,向Agent對象提出業務請求,獲取Agent對象

  //……

  }

  }

(3)服務器端程序設計

  public class Server {

  public static void main(String[] args) {

  //初始化ORB、申請POA和POA管理器

  //申請默認服務對象,激活POA管理器

  //等待調用請求

  //……

  }

(4)客戶端程序設計

  public class Client {

  public static void main(String[] args) {

  //初始化ORB,定位Agentmanager對象

  //發出調用請求

  org.omg.CORBA.Request request=manager ._request(“getFee”);

  request.invoke();

  //查詢返回結果,取得返回值

  request.get_response();

  //異常處理

  //……

  }

4. 程序設計及運行環境說明

  上述基于動態調用接口和動態骨架接口的程序是基于VisiBroker 4.5.1中間件環境開發的。其他環境下程序的實現方式和運行可能會有所差別。在VisiBroker環境下,按如下方式運行程序:

  (1)首先啟動VisiBroker Smart Agent事務代理;

  (2)啟動服務對象程序:vbj Server;

  (3)啟動客戶對象程序:vbj Client。

  其中vbj是VisiBroker for Java中的Java代碼解釋執行程序。讀者也可以用Java解釋工具java代替,但需要指定VisiBroker中的vbjorb等庫。



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


利用動態調用方式實現分布式應用(下)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 黎城县| 客服| 从化市| 建德市| 两当县| 通许县| 河东区| 鹤壁市| 德保县| 宜昌市| 沙田区| 葵青区| 尉氏县| 汾西县| 壶关县| 威信县| 宁海县| 东兴市| 巴彦淖尔市| 昭通市| 淮滨县| 淄博市| 景谷| 平乐县| 阿图什市| 浦城县| 广南县| 湟中县| 鹤山市| 高清| 阜康市| 寿宁县| 多伦县| 鞍山市| 同德县| 海南省| 北流市| 体育| 马公市| 庆城县| 隆回县|