• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Tuscany SCA遠(yuǎn)程訪問web service

      2014-08-16 09:20:43
      宿州學(xué)院學(xué)報 2014年11期
      關(guān)鍵詞:調(diào)用過濾器代碼

      唐 青

      福建衛(wèi)生職業(yè)技術(shù)學(xué)院信息技術(shù)教研室,福建福州,350101

      基于Tuscany SCA遠(yuǎn)程訪問web service

      唐 青

      福建衛(wèi)生職業(yè)技術(shù)學(xué)院信息技術(shù)教研室,福建福州,350101

      以基金銷售系統(tǒng)中代銷機構(gòu)交收資金明細(xì)查詢功能為例,討論了利用Tuscany SCA訪問遠(yuǎn)程web service的實現(xiàn)過程。這個過程使用servlet與Tuscany SCA構(gòu)件相結(jié)合技術(shù),通過建立web構(gòu)件、servlet程序及配置servlet過濾器,實現(xiàn)了基于SCA的遠(yuǎn)程調(diào)用web服務(wù)。利用這種方法實現(xiàn)調(diào)用遠(yuǎn)程服務(wù),易于理解且實現(xiàn)相對簡單。

      SCA web服務(wù);遠(yuǎn)程調(diào)用;servlet

      當(dāng)今,在分布式應(yīng)用系統(tǒng)開發(fā)過程中,開發(fā)者常需要遠(yuǎn)程訪問后臺系統(tǒng)或者第三方系統(tǒng)提供的web service??蛻舳嗽L問web service方法有很多,常見的有利用JDK中web服務(wù)API調(diào)用web service,利用Apache CXF、Axis2等一些開源框架實現(xiàn)對web service遠(yuǎn)程調(diào)用。上述方法雖然較為成熟,但實現(xiàn)時需要編寫的程序代碼較多,較為繁瑣。本文嘗試?yán)肁pache Tuscany SCA實現(xiàn)web service的遠(yuǎn)程調(diào)用。Apache Tuscany是一個開源SOA基礎(chǔ)架構(gòu),主要用于服務(wù)構(gòu)件的開發(fā)、組裝、發(fā)布和管理;另外,它也提供了一種輕量級遠(yuǎn)程服務(wù)調(diào)用方法。利用這種方法實現(xiàn)遠(yuǎn)程服務(wù)的調(diào)用,相對簡單且易于理解。

      1 基于Tuscany SCA的遠(yuǎn)程服務(wù)調(diào)用框架

      為了更好地闡述這種調(diào)用遠(yuǎn)程服務(wù)的方法,以基金銷售系統(tǒng)代銷機構(gòu)交收資金明細(xì)查詢功能為例,詳細(xì)介紹利用Tuscany SCA進行遠(yuǎn)程web service訪問的實現(xiàn)過程。如圖1所示,該功能在實現(xiàn)過程中需要通過web service方式訪問后臺清算子系統(tǒng)提供的Clearing Service,查詢獲得代銷機構(gòu)交收資金明細(xì)數(shù)據(jù)。

      圖1 采用web service方式訪問后臺清算子系統(tǒng)提供的Clearing Service

      基于Tuscany SCA實現(xiàn)遠(yuǎn)程服務(wù)調(diào)用的基本原理,使用servlet與Tuscany SCA服務(wù)構(gòu)件結(jié)合技術(shù)。Tuscany SCA 允許將Java EE規(guī)范中web模塊(servlet)擴展為符合SCA規(guī)范要求的服務(wù)組件,這樣,web瀏覽器通過調(diào)用servlet就可以輕松地訪問遠(yuǎn)程的web service。這種方式簡化了web服務(wù)器調(diào)用遠(yuǎn)程服務(wù)的開發(fā),同時使開發(fā)者將現(xiàn)有的servlet和SCA服務(wù)結(jié)合起來,大大提高了代碼的復(fù)用度。如圖2為基于SCA調(diào)用遠(yuǎn)程服務(wù)的過程框架圖。

      2 實現(xiàn)方式的主要步驟

      為了實現(xiàn)基于Tuscany SCA遠(yuǎn)程訪問web service,除開發(fā)一個用于用戶交互的JSP網(wǎng)頁外,還需要完成以下主要任務(wù):(1)基于Tuscany SCA,配置一個Web構(gòu)件,利用該構(gòu)件,引用遠(yuǎn)程服務(wù)ClearingService;(2)建立實現(xiàn)查詢功能的servlet;(3)配置TuscanyServletFilter過濾器。

      2.1 配置web構(gòu)件

      客戶端的jsp頁面在servlet程序順利調(diào)用遠(yuǎn)程web Service之前,必須先配置一個如圖3所示的web構(gòu)件。

      圖2 基于SCA的遠(yuǎn)程調(diào)用框架圖

      Web構(gòu)件包括Web Client和Clearing Reference Component兩個服務(wù)組件。其中,Web Client組件用于將servlet擴展為服務(wù)組件;Clearing Reference Component是標(biāo)準(zhǔn)的通過java類來實現(xiàn)的服務(wù)組件,用于引用遠(yuǎn)程服務(wù)。

      圖3 Web構(gòu)件圖

      Tuscany SCA下web構(gòu)件的建立方法:通過在/META-INF/sca-deployables/目錄下新建web.composite文件。該文件定義了web構(gòu)件的組成。web.composite文件架構(gòu)內(nèi)容如下:

      ……

      ……

      ……

      根據(jù)構(gòu)件圖和web.composite的架構(gòu)內(nèi)容,需要作如下說明[1]:

      (1)在web構(gòu)件中定義Web Client服務(wù)組件用來引用Clearing Reference服務(wù)。

      (2)表明WebClient組件允許將servlet等作為服務(wù)的具體實現(xiàn),web-uri="",表明整個WAR代表一個SCA contribution,即整個站點是一個contribution,是Web Client組件的實現(xiàn)。

      (3)在web構(gòu)件中定義了ClearingReference組件,該組件又定義了一個基于Web Service的引用Clearing Service。通過這個引用,便可以調(diào)用遠(yuǎn)程的共享服務(wù)“ClearingService”,在架構(gòu)代碼中為:

      其中uri值表明了這個遠(yuǎn)程服務(wù)的uri地址。

      2.2 建立servlet程序

      建立一個servlet程序,通過它可以查找和使用基于SCA的web服務(wù)。但是,不同的servlet容器對SCA的支持程度不一致,有些容器完全支持SCA,有些容器部分支持SCA。對于完全支持SCA的容器,servlet代碼就可以使用@Reference注釋;而對于不完全支持SCA的容器,@Reference注釋不起作用,引用需要被設(shè)置在servlet的init()方法中[1]。

      下面是基于上述兩種情況的代碼:

      (1)servlet容器完全支持SCA的代碼寫法,servlet使用@Reference注釋來查詢ClearingReference服務(wù)。

      publicclassQuerySettlementServlet extends HttpServlet {

      privatestaticfinallongserialVersionUID = 1L;

      @Reference

      protectedClearingReferenceclearingReference;

      (2)servlet容器不完全支持SCA的代碼寫法,servlet通過SCA Component Context來查詢Clearing Reference。Component Context是標(biāo)準(zhǔn)的SCA API。常見的Tomcat服務(wù)器是不完全支持SCA的,可以采用下面的寫法。

      public void init(ServletConfigconfig) throws ServletException {

      if (clearingReference==null){

      ComponentContextcontext=(ComponentContext)config.getServletContext().getAttribute("org.osoa.sca.ComponentContext");

      clearingReference=context.getService(ClearingReference.class, "ClearingRef-erence");

      }

      }

      2.3 配置TuscanyServletFilter過濾器

      在基于Web Service的SCA應(yīng)用中,要想在Web環(huán)境中使用Tuscany提供的功能,需要在web.xml中設(shè)置TuscanyServletFilter過濾器。其工作過程如下:當(dāng)應(yīng)用服務(wù)器啟動、客戶端訪問jsp頁面時,服務(wù)器調(diào)用Web.xml中Tuscany Servlet Filter過濾器。在Tuscany Servlet Filter過濾器中,首先得到一個WebAppServletHost實例,Web App Servlet Host是在Web應(yīng)用環(huán)境中使用的Tuscany功能提供者;在Web App Servlet Host中,得到一個SCA Domain實例,并將之放入Servlet Context上下文中,以后可藉由相應(yīng)的key得到此SCA Domain實例,即jsp中成功取得SCADomain實例,根據(jù)SCA Domain實例取得Domain域中相應(yīng)的組件,之后就可以調(diào)用組件中的各種業(yè)務(wù)方法了。

      Tuscany Servlet Filter過濾器具體配置:在WEB-INF/目錄下創(chuàng)建web.xml,在web.xml文件中配置Tuscany Servlet過濾器。主要架構(gòu)內(nèi)容如下:

      tuscany

      ……

      tuscany

      /*

      ……

      QuerySettlementServlet

      QuerySettlementServlet

      ……

      3 基于SCA調(diào)用遠(yuǎn)程服務(wù)示例

      將定義的web構(gòu)件中的組件部署到Tomcat服務(wù)器,啟動Tomcat服務(wù)器,在瀏覽器中輸入調(diào)用遠(yuǎn)程服務(wù)的jsp頁面,并在頁面輸入要查詢的各項條件,提交后,瀏覽器去調(diào)用QuerySettlementServlet.java程序,并使用SCA ComponentContext(SCA API)來查詢ClearingReference服務(wù),Clearing Reference服務(wù)再調(diào)用遠(yuǎn)程服務(wù)ClearingService中的接口query All SalersSettle Statements(String strSale,Strings trFundCode,String cfDate1,String cfDate2),根據(jù)“代銷機構(gòu)”“基金代碼”“起始確認(rèn)日期”“結(jié)束確認(rèn)日期”查詢代銷機構(gòu)交收資金明細(xì)。代碼片斷如下:

      protected void doPost(HttpServletRequest request,Http Servlet Response response) throws Servlet Exception,IOException {

      ……

      ssr=clearing Reference.query All Salers Settle Statements(strSaler ID,strFundcode,cfmDate1,cfmDate2);

      ……}

      運行結(jié)果如圖4所示。

      圖4 代銷機構(gòu)交收資金明細(xì)查詢結(jié)果

      4 結(jié)束語

      本文基于 SCA架構(gòu)與servlet相結(jié)合,通過建立web構(gòu)件、servlet程序及配置servlet過濾器,實現(xiàn)了基于SCA的遠(yuǎn)程調(diào)用web服務(wù)。這種框架利用Tuscany SCA簡化了遠(yuǎn)程服務(wù)的訪問方式。

      [1]Simon Laws,Mark Combellack,Raymond Feng.Tuscany SCA in Action[EB/OL].[2014-06-05].http://www.open-open.com/doc/view/4cd938feb9b34d49a82f664958 a9a248

      [2]吳清濤.基于Proxy模式的遠(yuǎn)程處理框架研究[J].長江大學(xué)學(xué)報:自然科學(xué)版,2013,10(19):23-26

      [3]孫佳慶,俎云霄,李巍海,等.基于JSP的Matlab遠(yuǎn)程調(diào)用和并行處理[J].計算機科學(xué)與應(yīng)用,2013(3):273-277

      [4]周毅,張曉先,陳麗蓉.AUTOSAR 符合性測試適配器的實現(xiàn)方法[J].計算機工程,2014(1):291-294

      [5]李海聞,寧敏,林福良,等.一種基于CORBA的分布式應(yīng)用模型[J].計算機系統(tǒng)應(yīng)用,2010,19(S1):33-34

      [6]紐康莫,勞莫,徐涵,等.Understanding SOA with Web Service:中文版[M].北京:電子工業(yè)出版,2006:20-32

      [7]劉佑平.SCA在鐵路信息共享平臺中的應(yīng)用研究[D].北京:北京交通大學(xué)研究生院,2008:2-35

      [8]焦烈焱,馮興智,楊洪波.SOA中國路線圖[M].北京:清華大學(xué)出版社,2009:2-223

      (責(zé)任編輯:汪材印)

      10.3969/j.issn.1673-2006.2014.11.023

      2014-07-28

      福建省教育廳B類課題科技基金項目“基于Tuslang SCA的應(yīng)用開發(fā)研究”(JB13335)。

      唐青(1975-),女,福建福州人,碩士,講師,主要研究方向:計算機信息系統(tǒng)。

      TP311.5

      A

      1673-2006(2014)11-0079-04

      猜你喜歡
      調(diào)用過濾器代碼
      核電項目物項調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      支持過濾器的REST模型研究與實現(xiàn)
      電子測試(2018年9期)2018-06-26 06:45:56
      聲音過濾器
      趣味(語文)(2018年2期)2018-05-26 09:17:55
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      基于LOGO!的空氣過濾器自潔控制系統(tǒng)
      自動化博覽(2014年6期)2014-02-28 22:32:20
      海伦市| 景东| 平乡县| 赤峰市| 德庆县| 肃北| 辛集市| 霍邱县| 中山市| 图片| 伊通| 博客| 饶阳县| 乌拉特前旗| 伊川县| 香格里拉县| 伊宁市| 馆陶县| 共和县| 镇原县| 铁岭市| 穆棱市| 霍州市| 阿坝| 波密县| 京山县| 百色市| 海南省| 仁寿县| 大田县| 平陆县| 祁连县| 赤壁市| 仙游县| 凤山市| 蓝田县| 万安县| 乐都县| 彩票| 滨州市| 长海县|