亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Tuscany SCA遠程訪問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遠程訪問web service

        唐 青

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

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

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

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

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

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

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

        基于Tuscany SCA實現(xià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就可以輕松地訪問遠程的web service。這種方式簡化了web服務(wù)器調(diào)用遠程服務(wù)的開發(fā),同時使開發(fā)者將現(xiàn)有的servlet和SCA服務(wù)結(jié)合起來,大大提高了代碼的復(fù)用度。如圖2為基于SCA調(diào)用遠程服務(wù)的過程框架圖。

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

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

        2.1 配置web構(gòu)件

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

        圖2 基于SCA的遠程調(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ù)組件,用于引用遠程服務(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)用遠程的共享服務(wù)“ClearingService”,在架構(gòu)代碼中為:

        其中uri值表明了這個遠程服務(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)用遠程服務(wù)示例

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

        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)交收資金明細查詢結(jié)果

        4 結(jié)束語

        本文基于 SCA架構(gòu)與servlet相結(jié)合,通過建立web構(gòu)件、servlet程序及配置servlet過濾器,實現(xiàn)了基于SCA的遠程調(diào)用web服務(wù)。這種框架利用Tuscany SCA簡化了遠程服務(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模式的遠程處理框架研究[J].長江大學(xué)學(xué)報:自然科學(xué)版,2013,10(19):23-26

        [3]孫佳慶,俎云霄,李巍海,等.基于JSP的Matlab遠程調(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
        看一区二区日本视频免费| 亚洲av色无码乱码在线观看| 国产一级毛片卡| 久久国产精品一区二区| 亚洲国产精品婷婷久久| av无码av天天av天天爽| 久久免费看少妇高潮v片特黄| 国模少妇无码一区二区三区 | 日韩黑人欧美在线视频观看| 日日噜噜夜夜狠狠久久av| 国产精品一区二区久久久av| 18禁成人黄网站免费观看| 欧美极品美女| 免费人成视频网站在线观看不卡 | av天堂网手机在线观看| 精品国产免费一区二区三区香蕉| 国产无套护士在线观看| 99久久精品国产片| 日韩av天堂一区二区三区在线| 亚洲日韩精品一区二区三区| 婷婷五月综合激情| 国产一区二区三区观看视频| 中文字幕在线看精品乱码| 色拍自拍亚洲综合图区| 亚洲伊人久久大香线蕉影院| 精品av一区二区在线| 好吊妞视频这里有精品| 国产午夜精品久久久久免费视| 粉嫩高中生无码视频在线观看| av天堂亚洲另类色图在线播放 | 亚洲av无码一区二区三区四区| 亚洲天天综合色制服丝袜在线| 国产女主播福利在线观看| 成在线人av免费无码高潮喷水| 亚洲人成无码网www| 99精品国产av一区二区| 亚洲一区二区在线观看网址| 中文字幕精品一二三四五六七八 | 欧美xxxxx精品| 日韩人妻精品中文字幕专区| 成人久久久久久久久久久|