社區(qū)交流平臺網(wǎng)站畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  ABSTRACTII</p><p><b>  第一章 緒論1</b></p><p>  1.1 選題的背景1</p><p&g

2、t;  1.2 國內(nèi)外狀況2</p><p>  1.3 問題的提出3</p><p>  1.4 主要研究內(nèi)容3</p><p>  1.5 論文的組織結(jié)構(gòu)3</p><p>  第二章 相關(guān)理論及技術(shù)介紹5</p><p>  2.1 開發(fā)平臺5</p><p>  2.1.1

3、 MyEclipse5</p><p>  2.1.2 NetBeans5</p><p>  2.2 相關(guān)技術(shù)5</p><p>  2.2.1 XML5</p><p>  2.2.2 Dom4j6</p><p>  2.2.3 SOAP6</p><p>  2.2.4 We

4、bService7</p><p>  2.2.5 WSDL7</p><p>  2.2.6 Velocity8</p><p>  2.2.7 Swing8</p><p>  2.2.8 Java反射9</p><p>  2.3 本章小結(jié)9</p><p>  第三章 服務(wù)開

5、發(fā)平臺的總體框架10</p><p>  3.1 前臺可視化IDE的設(shè)計11</p><p>  3.2 后臺的總體設(shè)計12</p><p>  3.2.1 后臺RuntimeContainer容器管理模塊設(shè)計概述13</p><p>  3.2.2 后臺UDDI注冊中心模塊設(shè)計概述14</p><p>  

6、3.2.3 后臺SP Agent Builder代碼生成模塊設(shè)計概述16</p><p>  3.3 本章小結(jié)20</p><p>  第四章 服務(wù)生成工具SP Agent Builder的設(shè)計與實現(xiàn)21</p><p>  4.1 三層XML schema設(shè)計與解析模塊的設(shè)計與實現(xiàn)21</p><p>  4.1.1 功能層XML

7、schema的設(shè)計21</p><p>  4.1.2 表示層XML schema 的設(shè)計24</p><p>  4.1.3 傳輸層XML schema 的設(shè)計24</p><p>  4.1.4 三層XML文件解析的設(shè)計與實現(xiàn)26</p><p>  4.2 數(shù)據(jù)轉(zhuǎn)換模塊的設(shè)計與實現(xiàn)28</p><p>

8、  4.2.1 目標(biāo)數(shù)據(jù)格式介紹28</p><p>  4.2.2 對象與目標(biāo)數(shù)據(jù)格式之間的轉(zhuǎn)換31</p><p>  4.3 傳輸代理模塊的設(shè)計與實現(xiàn)35</p><p>  4.3.1 網(wǎng)絡(luò)傳輸協(xié)議36</p><p>  4.3.2 傳輸代理的運作流程38</p><p>  4.4 代碼生成器模塊

9、的設(shè)計與實現(xiàn)39</p><p>  4.4.1 模板的設(shè)計39</p><p>  4.4.2 代碼生成的運作流程40</p><p>  4.5 可視化編輯器模塊的設(shè)計與實現(xiàn)41</p><p>  4.5.1 可視化編輯器的設(shè)計41</p><p>  4.5.2 可視化編輯器的運作流程42</

10、p><p>  4.5 本章小結(jié)42</p><p>  第五章 系統(tǒng)實現(xiàn)44</p><p>  4.1 創(chuàng)建服務(wù)44</p><p>  4.2 編輯服務(wù)48</p><p>  4.3 刪除服務(wù)50</p><p>  4.4 本章小結(jié)51</p><p>

11、<b>  第六章 結(jié)論52</b></p><p><b>  致 謝53</b></p><p><b>  參考文獻54</b></p><p><b>  畢業(yè)設(shè)計小結(jié)56</b></p><p>  附錄A XML數(shù)據(jù)類型和Java數(shù)

12、據(jù)類型之間的映射規(guī)則57</p><p>  附錄B 功能層XML schema的設(shè)計58</p><p>  附錄C 表示層XML schema的設(shè)計60</p><p>  附錄D 傳輸層XML schema的設(shè)計61</p><p>  附錄E TXT文本的格式介紹63</p><p><

13、b>  摘 要</b></p><p>  建立社區(qū)電子服務(wù)平臺,作為建設(shè)數(shù)字城市的重要環(huán)節(jié)之一,得到了眾多服務(wù)提供商的支持。因此,能否將服務(wù)提供商所提供的服務(wù)高效快速地接入服務(wù)平臺,將會極大地影響到社區(qū)電子服務(wù)平臺的工作效率,而將服務(wù)接入平臺的關(guān)鍵在于為服務(wù)生成對應(yīng)的服務(wù)代理,負責(zé)服務(wù)頁面和服務(wù)器之間的通訊。</p><p>  服務(wù)生成工具,能根據(jù)服務(wù)信息自動生成服

14、務(wù)代理。它由可視化編輯器模塊、三層XML的設(shè)計與解析模塊、傳輸代理模塊、數(shù)據(jù)轉(zhuǎn)換模塊和代碼生成器模塊組成??梢暬庉嬈髂K負責(zé)服務(wù)信息的采集;三層XML (功能層、表示層和傳輸層)設(shè)計模塊負責(zé)規(guī)范服務(wù)信息的存儲格式;解析模塊負責(zé)解析出三層XML文件中的服務(wù)信息;傳輸代理模塊負責(zé)傳輸不同協(xié)議的信息;數(shù)據(jù)轉(zhuǎn)換模塊負責(zé)將信息轉(zhuǎn)換成與服務(wù)器約定的不同格式;代碼生成器模塊負責(zé)生成服務(wù)代理的代碼。</p><p>  服務(wù)生

15、成工具能夠為采用不同傳輸協(xié)議和不同通訊格式的服務(wù),生成服務(wù)代理,解決了將服務(wù)快速接入平臺的主要問題。同時它具有很好的拓展性、靈活性。本文所完成的設(shè)計已用于陜西利安信息傳播有限公司新一代利安電超市的建設(shè),取得了很好的應(yīng)用效果。</p><p>  關(guān)鍵詞:數(shù)字城市,服務(wù)提供商,服務(wù)生成工具,服務(wù)代理</p><p><b>  ABSTRACT</b></p>

16、;<p>  As one of the important means of building Digital City, the building of the community e-service platform, has gained many service providers’ support. Therefore, whether the platform can make link with the S

17、P expeditiously, may influence the efficiency of the platform. The key of making link with the SP is generating the corresponding service agents for the service for the communication between the service page and the serv

18、er.</p><p>  The SP Agent Builder can automatically build the agent according to the service information. It is made up of the visual editor module, the three-layers XML design module and parser module, tran

19、sfer agent module, data conversion module and the code generator module. The visual editor module is responsible for collecting service information; the three-layers XML (the functional layer, said layer and transport la

20、yer) design module is responsible for standardizing service information’s storage form</p><p>  SP Agent Builder can build the agent for the service using different transportation protocol and different form

21、at, so it solves the main problem of making link with SP rapidly and it is expansible, flexible. It also has been used to make a new platform of Line Community Charges Supermarket for Shaanxi Line Co., Ltd. and achieved

22、good results.</p><p>  KEY WORDS:digital city, service provider, SP agent builder, agent</p><p><b>  第一章 緒論</b></p><p><b>  1.1 選題的背景</b></p><p&g

23、t;  社區(qū)是指社會的一個區(qū)域,1887年由德國社會學(xué)家滕尼斯最早提出,英文名稱叫community?!吧鐓^(qū)”這個名詞最早從20世紀(jì)30年代由國外引入中國,自20世紀(jì)80年代始,“社區(qū)”一詞逐漸風(fēng)靡全國。在城市信息化建設(shè)的過程中,社區(qū)作為城市的基本組成單元,與居民的生活密切相關(guān),并且發(fā)揮著越來越重要的作用。數(shù)字化社區(qū)服務(wù)[1~4]這一概念正是為了順應(yīng)城市居民居住環(huán)境日趨社區(qū)化的發(fā)展趨勢,使普通老百姓能夠盡享現(xiàn)代高科技帶來的安全、高效和便

24、捷的服務(wù)而提出的。數(shù)字化社區(qū)服務(wù)平臺是為數(shù)字社區(qū)居民提供數(shù)字化應(yīng)用的綜合型的平臺,包括繳費管理、飛機訂票、業(yè)務(wù)辦理等平臺,它主要由硬件設(shè)備、數(shù)字化社區(qū)服務(wù)軟件平臺和網(wǎng)絡(luò)基礎(chǔ)設(shè)施等幾個方面組成。</p><p>  建設(shè)數(shù)字化城市社區(qū)服務(wù)平臺的意義:</p><p>  數(shù)字化城市社區(qū)服務(wù),這一創(chuàng)新模式符合黨和政府的便民、利民的社區(qū)服務(wù)發(fā)展方向和精神。</p><p>

25、;  數(shù)字化城市社區(qū)服務(wù)平臺的一站式服務(wù)模式能有效地解決社區(qū)居民“繳費難”、“ 服務(wù)難”的問題,真正實現(xiàn)了電子商務(wù)零距離為民服務(wù)的理念,居民不用出小區(qū)就能享受到一站式服務(wù)的便利。</p><p>  由于該項目是以高科技信息化技術(shù)為基礎(chǔ)結(jié)合深入社區(qū)服務(wù)網(wǎng)點的實體運營的創(chuàng)新模式,不僅擴大了生產(chǎn)力,還解決了一大批高校畢業(yè)生、下崗職工及殘疾人再就業(yè)問題。</p><p>  對廣大運營商而言,數(shù)

26、字化城市社區(qū)服務(wù)平臺這一創(chuàng)新模式的首要優(yōu)點是資金安全,其次是渠道建設(shè)零投入無風(fēng)險,并且節(jié)省了大量的二級管理成本,因此吸引了眾多的運營商及公用事業(yè)單位的加入,使數(shù)字化城市社區(qū)服務(wù)平臺的造血功能得到了有力的加強。</p><p>  避免了上游各運營商網(wǎng)點的重復(fù)建設(shè),實現(xiàn)了社會資源的節(jié)約。</p><p><b>  1.2 問題的提出</b></p>&l

27、t;p>  信息高速公路是一種高速多媒體傳輸系統(tǒng),它能在全球甚至更大的范圍內(nèi)傳輸聲像圖文并茂的多媒體信息。由美國首先提出的“信息高速公路”是指數(shù)字化大容量光纖通信網(wǎng)絡(luò),用以把政府、企業(yè)、大學(xué)、科研機構(gòu)和家庭的計算機聯(lián)網(wǎng)。一些國家和公司還提出利用衛(wèi)星架設(shè)“空中信息高速公路”的設(shè)想(北京科普之窗,2000)。這一時代的到來使得新聞在網(wǎng)絡(luò)中傳輸成為可能。今天上網(wǎng)看新聞已經(jīng)是人們?nèi)粘I畹囊徊糠?,快速及時的瀏覽新聞,能拓展人們的生活視野。

28、因此越來越多的企事業(yè)單位都很重視新聞網(wǎng)站的建設(shè)。</p><p>  校園新聞發(fā)布系統(tǒng)有利于校園網(wǎng)新聞的及時傳播,及時傳達最新動態(tài),學(xué)術(shù)研究成功,是資源快速共享的一種方式。因此研究校園網(wǎng)新聞發(fā)布系統(tǒng)對于學(xué)校建設(shè)與發(fā)展具有重要意義,本文所闡述的系統(tǒng)就是在這樣的前提下提出的。該系統(tǒng)要求能添加新聞、刪除新聞、更新新聞,對一般用戶能查看、檢索新聞。</p><p>  1.3 校園新聞發(fā)布系統(tǒng)的現(xiàn)

29、狀</p><p>  今天校園網(wǎng)絡(luò)迅速普及,校園網(wǎng)新聞發(fā)布系統(tǒng)也層出不窮,經(jīng)Google搜索,約有1,110,000項符合“校園新聞發(fā)布”的查詢結(jié)果,約有522,000項符合“校園網(wǎng)新聞發(fā)布系統(tǒng)”的查詢結(jié)果。這說明了校園網(wǎng)新聞的發(fā)布,隨著互聯(lián)網(wǎng)的快速發(fā)展也迅速發(fā)展起來。而現(xiàn)行的校園網(wǎng)新聞發(fā)布系統(tǒng)大多是采用ASP技術(shù)組建的。例如:第三軍醫(yī)大學(xué)校園新聞網(wǎng)、華東交通大學(xué)校園新聞發(fā)布系統(tǒng)等等。</p>&

30、lt;p>  1.4 主要研究內(nèi)容</p><p>  1.5 論文的組織結(jié)構(gòu)</p><p>  本文主要分成六章,各章的主要內(nèi)容如下:</p><p> ?。壕w論。介紹了課題的背景以及國內(nèi)外的狀況,提出本文研究的問題,并介紹了本文的研究內(nèi)容。</p><p> ?。合嚓P(guān)理論及技術(shù)介紹。介紹了研究課題所用的主要工具及相關(guān)的技術(shù)知識點。

31、</p><p> ?。荷鐓^(qū)電子服務(wù)平臺的服務(wù)生成平臺的總體架構(gòu)。介紹了服務(wù)生成平臺的總體框架。介紹了服務(wù)生成平臺的前臺和后臺:前臺是一個能迅速定制出客戶端頁面的一個可視化的IDE;后臺負責(zé)生成和管理服務(wù)代理。</p><p> ?。悍?wù)生成工具SP Agent Builder的設(shè)計和實現(xiàn)。介紹了SP Agent的三層XML文件格式的設(shè)計、可視化編輯器組件、代碼生成器組件、傳輸代理組件、三

32、層XML文件的解析組件及數(shù)據(jù)轉(zhuǎn)換等組件。</p><p> ?。合到y(tǒng)實現(xiàn)。用實例展示了SP Agent Builder生成agent的流程。</p><p> ?。嚎偨Y(jié)和展望。總結(jié)了本文的研究內(nèi)容和工作,對系統(tǒng)的進一步完善和優(yōu)化提出了建議和展望。</p><p>  第二章 相關(guān)理論及技術(shù)介紹</p><p><b>  2.1

33、開發(fā)平臺</b></p><p>  2.1.1 MyEclipse </p><p>  MyEclipse是Eclipse的一個插件,也是一款功能強大的J2EE集成開發(fā)環(huán)境。利用它可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試、出錯和發(fā)布功能。最新發(fā)布的MyEclipse 7

34、.0具備可視化Swing設(shè)計器,完整支持HTML、XML、Struts、JSF、CSS、Schema、JavaScript、SQL、AJAX、Hibernate等技術(shù)。</p><p>  本項目使用該平臺開發(fā)后臺的服務(wù)生成工具SP Agent Builder。</p><p>  2.1.2 NetBeans</p><p>  NetBeans是一個全功能的開放

35、源碼的Java IDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署Java應(yīng)用,并將版本控制和XML編輯融入其眾多功能之中。NetBeans 可支持Java 2平臺標(biāo)準(zhǔn)版(J2SE)應(yīng)用的創(chuàng)建、采用JSP和Servlet的2層Web應(yīng)用的創(chuàng)建,以及用于2層Web應(yīng)用的API及軟件的核心組的創(chuàng)建。所有這些都為Java開發(fā)人員創(chuàng)造了一個可擴展的開源的Java IDE,以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作。</p><p

36、>  NetBeans是一個為軟件開發(fā)者而設(shè)計的自由、開放的IDE,你可以在這里獲得許多需要的工具,包括建立桌面應(yīng)用、企業(yè)級應(yīng)用、WEB開發(fā)和Java移動應(yīng)用程序開發(fā)、C/C++等。</p><p>  本項目使用此平臺來開發(fā)一個能夠快速定制用戶頁面的IDE。</p><p><b>  2.2 相關(guān)技術(shù)</b></p><p><

37、b>  2.2.1 XML</b></p><p>  XML[5~11]可拓展標(biāo)記語言(Xtensible Markup Language),是一種具有數(shù)據(jù)描述功能、高度結(jié)構(gòu)性及可驗證性的置標(biāo)語言,和HTML一樣同屬ISO8879標(biāo)準(zhǔn)SGML的簡化子集?;ヂ?lián)網(wǎng)發(fā)展初期,HTML以簡單精練的語法、極易掌握的通用性和易學(xué)性使Web得以普及發(fā)展以至今日輝煌。但是,隨著Web數(shù)據(jù)的海量化和實際應(yīng)用需求

38、的發(fā)展,HTML弊端日益顯露:數(shù)據(jù)和格式分離困難;缺乏空間立體面,處理圖形、圖像、音頻、視頻等多媒體能力較弱;標(biāo)記有限,不能用戶自定義擴展。于是,XML誕生了,并迅速發(fā)展成為W3C(World Wide Web Consortium,萬維網(wǎng)聯(lián)盟)的標(biāo)準(zhǔn)。它保留了很多SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)標(biāo)準(zhǔn)的優(yōu)點,具有可擴展性、結(jié)構(gòu)化、平臺無關(guān)性等優(yōu)勢。在描述數(shù)據(jù)內(nèi)容同時能

39、突出對結(jié)構(gòu)的描述,從而體現(xiàn)出數(shù)據(jù)之間的關(guān)系。這種組織的數(shù)據(jù)對于應(yīng)用程序和用戶都是友好的、可操作的。XML現(xiàn)以成為當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具之一。</p><p>  基于它的平臺無關(guān)性、結(jié)構(gòu)化等優(yōu)勢,本文將應(yīng)用XML文件來實現(xiàn)對服務(wù)的描述。</p><p>  2.2.2 Dom4j</p><p>  Dom4j是一個Java的XML API,用來讀寫XML

40、文件。Dom4j是一個非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強大和易于使用的特點。Dom4j是一個易用的、開源的庫,它應(yīng)用于Java平臺,采用了Java集合框架并完全支持DOM,SAX和JAXP。它提供了大量的接口,造就了它更加具有靈活性,更易操作性的特點。</p><p>  基于它的靈活性和易于操作性,本文將應(yīng)用Dom4j來實現(xiàn)三層XML文件的解析模塊。</p><p>

41、;  2.2.3 SOAP</p><p>  SOAP就是簡單對象訪問協(xié)議(Simple Object Access Protocol ),是一種在獨立傳輸方式下交換信息的輕量級協(xié)議。在分散或分布式的環(huán)境下,它為遠程過程調(diào)用和獲得XML形式相應(yīng)定義了規(guī)范。SOAP 可以和現(xiàn)存的許多因特網(wǎng)協(xié)議和格式結(jié)合使用,包括超文本傳輸協(xié)議(HTTP),簡單郵件傳輸協(xié)議(SMTP),多用途網(wǎng)際郵件擴充協(xié)議(MIME)。它還支持

42、從消息系統(tǒng)到遠程過程調(diào)用(RPC)等大量的應(yīng)用程序。它也允許我們使用XML在通過低層Internet協(xié)議連接的系統(tǒng)之間進行通信。它為通過網(wǎng)絡(luò)消息傳輸?shù)腦ML信息提供了標(biāo)準(zhǔn)的信封,并為這類消息提供了可選的約定,是Web服務(wù)傳輸XML消息的標(biāo)準(zhǔn)協(xié)議。</p><p>  SOAP消息基本上是從發(fā)送端到接收端的單向傳輸,但他們常常結(jié)合起來執(zhí)行類似于請求/應(yīng)答的模式。所有的SOAP消息都使用XML編碼。SOAP消息主要包

43、括四個部分:SOAP封裝(envelop),封裝定義了一個描述消息中的內(nèi)容是什么,是誰發(fā)送的,誰應(yīng)當(dāng)接受并處理它,以及如何處理它們的框架;SOAP編碼規(guī)則(encoding rules),用于表示應(yīng)用程序需要使用的數(shù)據(jù)類型的實例;SOAP RPC表示(RPC representation),表示遠程過程調(diào)用和應(yīng)答的協(xié)定;SOAP綁定(binding),使用底層協(xié)議交換信息。</p><p>  2.2.4 Web

44、Service</p><p>  Web服務(wù)(Web Service)是基于XML和HTTPS的一種服務(wù),其通信協(xié)議主要基于SOAP,服務(wù)的描述通過WSDL,通過UDDI來發(fā)現(xiàn)和獲得服務(wù)的元數(shù)據(jù)[12~18]。</p><p>  WebService是一種新的web應(yīng)用程序分支,他們是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過web調(diào)用。Web Service可以執(zhí)行從簡單的請

45、求到復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。實際上,WebService的主要目標(biāo)是跨平臺的可互操作性。為了達到這一目標(biāo),WebService完全基于XML(可擴展標(biāo)記語言)、XSD(XMLSchema)等獨立于平臺、獨立于軟件供應(yīng)商的標(biāo)準(zhǔn),是創(chuàng)建可互操作的、分布式應(yīng)用程序的新平臺。</p><p>  2.2.5 WSDL</p><

46、;p>  Web服務(wù)定義語言(Web Services Definition Language,WSDL)是一個建議的標(biāo)準(zhǔn),用于描述Web服務(wù)的技術(shù)調(diào)用語法。WSDL定義了一套基于 XML的語法,將Web服務(wù)描述為能夠進行消息交換的服務(wù)訪問點的集合。WSDL就是描述XML、Web服務(wù)的標(biāo)準(zhǔn)XML格式。它用一種和具體語言無關(guān)的抽象方式定義了給定Web服務(wù)收發(fā)的有關(guān)操作和消息。WSDL服務(wù)描述是一個XML文檔,它與WSDL模式(sch

47、ema)的定義一致。WSDL文檔并不是完整的服務(wù)描述,而只包括了服務(wù)描述任務(wù)的較低層次,即:服務(wù)接口的原始技術(shù)描述。本質(zhì)上,WSDL描述說明的是Web服務(wù)的以下三個基本屬性:</p><p>  服務(wù)做些什么--服務(wù)所提供的操作(方法);</p><p>  如何訪問服務(wù)--數(shù)據(jù)格式詳情以及訪問服務(wù)操作的必要協(xié)議;</p><p>  服務(wù)位于何處--由特定協(xié)議決定

48、的網(wǎng)絡(luò)地址,如URL;</p><p>  WSDL文檔將Web服務(wù)定義為服務(wù)訪問點或端口的集合。在WSDL中,由于服務(wù)訪問點和消息的抽象定義已從具體的服務(wù)部署或數(shù)據(jù)格式綁定中分離出來,因此可以對抽象定義進行再次使用:消息,指對交換數(shù)據(jù)的抽象描述;端口類型指操作的抽象集合。用于特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范構(gòu)成了可以再次使用的綁定。將Web訪問地址與可再次使用的綁定相關(guān)聯(lián),可以定義一個端口,而端口的集合則定

49、義為服務(wù)。</p><p>  2.2.6 Velocity</p><p>  Velocity是一個基于Java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由Java代碼定義的對象。當(dāng)Velocity應(yīng)用于web開發(fā)時,界面設(shè)計人員可以和Java程序開發(fā)人員同步開發(fā)一個遵循MVC架構(gòu)的web站點,也就是說,

50、頁面設(shè)計人員可以只關(guān)注頁面的顯示效果,而由Java程序開發(fā)人員關(guān)注業(yè)務(wù)邏輯編碼。Velocity將Java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。Velocity的能力遠不止web站點開發(fā)這個領(lǐng)域,例如,它可以從模板(template)產(chǎn)生SQL和PostScript、XML,它也可以被當(dāng)作一個獨立工具來產(chǎn)生源代碼和報告,或者作為其他系統(tǒng)的集成組件使用。&

51、lt;/p><p>  通過模板生成代碼是比較好的選擇,模板在某種意義上來說就是配置文件的一種,當(dāng)生成文件內(nèi)容修改后,用戶不需要修改源程序,只需要修改模板文件即可,提高了代碼的可維護性。</p><p>  本文將使用Velocity技術(shù)設(shè)計實現(xiàn)SP Agent Builder的代碼生成器模塊。</p><p>  2.2.7 Swing</p><

52、p>  Swing[19]是一個用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包。由所有Java圖形用戶界面(GUI)組件所構(gòu)成,可運行在任意支持Java虛擬機(JVM)的本地平臺上。由于這些組件全都是用Java語言編寫的,因此它們可以提供比本地平臺GUI組件更多的功能。它以抽象窗口工具包(AWT)為基礎(chǔ)使跨平臺應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。Swing開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)建

53、優(yōu)雅的用戶界面。同時通過使用Swing的Jtree組件,可以較容易的滿足研發(fā)出一個可視化編輯器的要求。</p><p>  本文將使用Swing技術(shù)設(shè)計實現(xiàn)SP Agent Builder的可視化編輯器模塊。</p><p>  2.2.8 Java反射</p><p>  Reflection(反射) 是Java被視為動態(tài)語言的一個關(guān)鍵性質(zhì)。這個機制允許程序在運行

54、時透過Reflection APIs取得任何一個已知名稱的class的內(nèi)部信息,允許運行中的 Java 程序?qū)ψ陨磉M行檢查,或者說“自審”,并能直接操作程序的內(nèi)部屬性。通俗的說,反射就是根據(jù)給出的類名(字符串)、方法名、屬性等信息來生成對象、方法、屬性。這種編程方式可以讓對象在生成時才決定要生成哪一種對象。反射是Java獨有的特性,在其它的程序設(shè)計語言中根本就不存在這一特性。例如,Pascal、C 或者 C++ 中就沒有辦法在程序中獲得

55、函數(shù)定義相關(guān)的信息。</p><p>  本文將使用Java反射技術(shù)設(shè)計實現(xiàn)SP Agent Builder的數(shù)據(jù)轉(zhuǎn)換模塊。</p><p><b>  2.3 本章小結(jié)</b></p><p>  本章介紹了課題研究過程中使用的開發(fā)平臺MyEclipse、NetBeans,以及使用到的技術(shù),如XML、Dom4j、SOAP、WebService

56、等,并介紹了它們在項目中的應(yīng)用。</p><p>  第三章 服務(wù)開發(fā)平臺的總體框架</p><p>  社區(qū)電子服務(wù)平臺是利用面向服務(wù)的架構(gòu)(SOA)、Web Service技術(shù)、XML語言等當(dāng)今最前沿技術(shù),結(jié)合互聯(lián)網(wǎng)技術(shù),對分屬于不同行業(yè)領(lǐng)域的社會資源進行整合的服務(wù)集成平臺。所有與服務(wù)提供商交互的數(shù)據(jù)信息都通過平臺中的服務(wù)代理提供一系列的標(biāo)準(zhǔn)接口進行復(fù)雜數(shù)據(jù)的傳輸。社區(qū)電子服務(wù)平臺是一

57、個龐大的系統(tǒng),社區(qū)瀏覽器終端使用CPK等技術(shù)進行身份驗證,用戶登錄社區(qū)電子服務(wù)系統(tǒng),使用綜合電子服務(wù)。服務(wù)提供商的接入是通過社區(qū)電子服務(wù)平臺的服務(wù)適配器來實現(xiàn)的,服務(wù)適配器可以方便快捷的實現(xiàn)服務(wù)的接入、整合等。另外社區(qū)電子服務(wù)系統(tǒng)還有一系列的支撐子系統(tǒng)來實現(xiàn)其運行,如OA系統(tǒng)、支付系統(tǒng)、服務(wù)平發(fā)平臺等,為用戶提供綜合電子信息服務(wù)。</p><p>  圖 3 - 1 社區(qū)電子服務(wù)平臺的總體架構(gòu)</p>

58、<p>  本文研究的主要內(nèi)容是社區(qū)電子服務(wù)平臺的核心部件——服務(wù)開發(fā)平臺中的服務(wù)生成工具SP Agent Builder。服務(wù)開發(fā)平臺可以分為前臺和后臺兩個部分:前臺指的是一個能迅速定制出客戶端頁面的一個可視化的開發(fā)工具;后臺負責(zé)生成和管理服務(wù)代理,它是由SP Agent Builder (服務(wù)代理生成工具)、RuntimeContainer(管理容器)和UDDI注冊中心組成。SP Agent Builder是本文的研究

59、重點,開發(fā)工程師可以利用此服務(wù)代理生成工具,將第三方SP(Service Provider)提供的服務(wù)信息快速的封裝為服務(wù)代理(Agent)供前臺調(diào)用。管理容器RuntimeContainer用來管理生成的服務(wù)代理,而UDDI用來存儲生成的服務(wù)代理。前后臺的關(guān)系如圖3-2</p><p>  圖 3 - 2 服務(wù)生成平臺的前后臺關(guān)系圖</p><p>  3.1 前臺可視化IDE的設(shè)計&l

60、t;/p><p>  前臺可視化IDE是一個提供了無需使用人員書寫代碼,只需拖拉組件和屬性配置,就可以生成服務(wù)頁面的可視化圖形編輯器。它使得用戶可以通過拖拽組件面板中的頁面片段的控件放到頁面上,通過屬性配置和綁定控件屬性,來生成服務(wù)頁面。前臺IDE主要具有以下幾個功能:</p><p>  利用項目模板定制開發(fā)項目</p><p>  在新建項目時,可以在項目類別中輸入

61、服務(wù)商,項目中選擇所需要創(chuàng)建的項目類別,比如航空售票,航空人身意外險和人壽續(xù)保等項目。由于本系統(tǒng)使用的是visual web jsf的框架,所以用戶只需在新建項目的web頁新建頁面。用戶由于使用的是項目模板,所以項目中已經(jīng)預(yù)置了page和頁面導(dǎo)航。用戶只需按照其工作流程創(chuàng)建頁面即可。</p><p>  Visual Web JSF頁面片段</p><p>  在組件面板中以控件形式出現(xiàn),

62、可在組件面板處編輯其id、外觀等屬性。該頁面片段組合了多個控件,如標(biāo)簽、文本字段等等,在頁面片段上不僅可以編輯頁面片段內(nèi)部單個控件的屬性、CSS屬性、位置等等,而且可以在頁面片段上綁定屬性。它使用戶免去了繁瑣的代碼編寫。如果用戶覺得使用頁面片段的控件不適合自己的開發(fā)習(xí)慣,也可以自己刪除或創(chuàng)建所需要的頁面片段。</p><p><b>  頁面導(dǎo)航</b></p><p&g

63、t;  頁面導(dǎo)航的配置可以在faces-config.xml的文件的頁面流中配置已建頁面之間跳轉(zhuǎn)。如果用戶不改變項目模板的流程和頁面,那么這里的頁面導(dǎo)航可以不用配置。當(dāng)用戶需要對項目進行改動的時,用戶可以自己配置頁面導(dǎo)航,從而控制頁面跳轉(zhuǎn)過程。這個過程用戶也不需要寫任何代碼,即可完成頁面跳轉(zhuǎn)。</p><p><b>  遠程調(diào)用后臺程序</b></p><p>  

64、項目模板中已經(jīng)內(nèi)置了調(diào)用后臺程序的代碼,用戶不需要書寫代碼,即可調(diào)用后臺程序。</p><p><b>  項目模板管理</b></p><p>  本系統(tǒng)不僅提供已有的模板用來生成項目,而且,當(dāng)用戶覺得現(xiàn)有模板不能適應(yīng)其項目的開發(fā),可以在原來的模板上進行改動,并生成相應(yīng)的新模板添加到本系統(tǒng)中去。當(dāng)然也可以刪去該模板。</p><p>  3.

65、2 后臺的總體設(shè)計</p><p>  服務(wù)生成平臺后臺分為RuntimeContainer容器管理模塊、SP Agent Builder代碼生成模塊和UDDI注冊中心模塊。SP Agent Builder是本文的研究重點,開發(fā)工程師可以利用此服務(wù)代理生成工具,將第三方SP提供的服務(wù)信息快速的封裝成服務(wù)代理(Agent)供前臺調(diào)用。管理容器用來管理生成的服務(wù)代理,而UDDI用來存儲生成的服務(wù)代理。</p&g

66、t;<p>  3.2.1 后臺RuntimeContainer容器管理模塊設(shè)計概述</p><p>  RuntimeContainer 容器管理模塊主要負責(zé)管理由后臺生成的Agent 服務(wù)。其主要功能有查詢服務(wù)狀態(tài)、激活服務(wù)、加載服務(wù)、修改服務(wù)方法、鈍化服務(wù)及日志管理等。</p><p>  RuntimeContainer 容器管理模塊也提供了GUI界面,供工作人員對容

67、器內(nèi)部的Agent 服務(wù)進行管理。下面分別截取了監(jiān)控服務(wù)界面3-3、服務(wù)狀態(tài)查詢界面3-4 和服務(wù)更改界面3-5。</p><p>  圖 3 - 3 監(jiān)控服務(wù)界面</p><p>  圖 3 - 4 服務(wù)狀態(tài)查詢界面</p><p>  圖 3 - 5 服務(wù)更改界面</p><p>  3.2.2 后臺UDDI注冊中心模塊設(shè)計概述&l

68、t;/p><p>  UDDI(Universal Description Discovery and Integration)即統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議。UDDI計劃是一個廣泛的、開放的行業(yè)計劃,它使得商業(yè)實體能夠彼此發(fā)現(xiàn),并且定義他們怎樣在internet上互相作用,并在一個全球的注冊體系架構(gòu)中共享信息。UDDI是這樣一種基礎(chǔ)的系統(tǒng)構(gòu)筑模塊,他使商業(yè)實體能夠快速、方便地使用他們自身的企業(yè)應(yīng)用軟件來發(fā)現(xiàn)合適的商業(yè)對

69、等實體,并與其實施電子化的商業(yè)貿(mào)易。UDDI同時也是Web服務(wù)集成的一個體系框架。它包含了服務(wù)描述與發(fā)現(xiàn)的標(biāo)準(zhǔn)規(guī)范。UDDI規(guī)范利用了W3C和Internet工程任務(wù)組織(IETF)的很多標(biāo)準(zhǔn)作為其實現(xiàn)基礎(chǔ),比如XML、HTTP和DNS這些協(xié)議。另外,在跨平臺的設(shè)計特性中,UDDI主要采用了已經(jīng)被提議給W3C的SOAP(Simple Object Access Protocol)規(guī)范的早期版本。</p><p>

70、  常規(guī)的UDDI包括4類數(shù)據(jù):商業(yè)實體(businessEntity)、服務(wù)信息(businessService)、綁定模板(bindingTemplate)和技術(shù)模型(tModel)。根據(jù)本項目服務(wù)注冊的實際需求,專用的UDDI中包含的數(shù)據(jù)僅包含商業(yè)實體( businessEntity)數(shù)據(jù),即:商業(yè)實體的詳細信息,包括服務(wù)提供商信息和服務(wù)信息兩部分??梢酝ㄟ^UDDI提供的查詢API對注冊信息執(zhí)行查詢操作,通過發(fā)布API對注冊信息執(zhí)

71、行存儲、更新、刪除操作。</p><p>  后臺UDDI注冊中心的部署圖如圖3-6。圖中的主要要點有SP Agent Builder、前臺、容器、服務(wù)監(jiān)控、反注冊和服務(wù)定位。下面將介紹一下上述要點的作用:</p><p>  圖 3 - 6 UDDI部署圖</p><p>  SP Agent Builder:它產(chǎn)生Agent后,可以通過UDDI發(fā)布的API中的

72、 save_business方法注冊新的服務(wù)提供商信息businessEntity信息到UDDI中。SP Agent Builder通過Socket將Agent的class文件打包傳輸?shù)饺萜魉跈C器的指定目錄。</p><p>  容器:它通過UDDI的查詢API的find_business和get_businessDetail獲得一個服務(wù)提供商的完整信息,根據(jù)其服務(wù)名加載對應(yīng)的指定版本的服務(wù)代理Agent類文件

73、到Java虛擬機,進而在內(nèi)存中生成Agent實例。</p><p>  服務(wù)監(jiān)控:它通過RMI機制對運行在容器中的Agent實例進行生命周期管理,并將變更后的狀態(tài)信息通過發(fā)布API修改到UDDI中去。服務(wù)監(jiān)控還可以通過查詢API訪問UDDI獲得服務(wù)提供商的基本信息和服務(wù)提供商包含的所有服務(wù)的信息。</p><p>  前臺:它通過RMI機制遠程定位到容器中指定的Agent實例,進而與第三方

74、服務(wù)器通信。</p><p>  反注冊:判斷容器中的指定服務(wù)的當(dāng)前狀態(tài)是否是鈍化,如果不是,首先鈍化該服務(wù),之后從內(nèi)存中銷毀該服務(wù)的Agent實例,其次容器通過發(fā)布API delete_businessEntity訪問UDDI注冊中心,最后從外存上刪除指定的服務(wù)的注冊信息即可。</p><p>  服務(wù)定位:用RMI機制實現(xiàn)服務(wù)的代理Agent的定位。每一個服務(wù)可以產(chǎn)生多個Agent實例

75、,每當(dāng)前臺發(fā)起一個請求時,就動態(tài)地產(chǎn)生一個Agent實例為之服務(wù)。這樣每一個服務(wù)都有一個長度動態(tài)變化的Agent的隊列,當(dāng)一個請求結(jié)束后根據(jù)某種算法銷毀為之服務(wù)的Agent,這樣可以解決前臺針對同一個服務(wù)同時發(fā)出多個請求的并發(fā)性的問題。</p><p>  3.2.3 后臺SP Agent Builder代碼生成模塊設(shè)計概述</p><p>  SP Agent Builder代碼生成模塊

76、,是本文的重點研究對象,主要功能是根據(jù)SP提供的服務(wù)(包括文檔類型和Web服務(wù)類型),快速定制出Agent服務(wù)文件。SP Agent Builder 擁有三層XML的設(shè)計與解析組件、可視化編輯器組件、數(shù)據(jù)轉(zhuǎn)換組件、代碼生成器組件和傳輸代理組件。下面簡述一下SP Agent Builder的工作流程。</p><p>  當(dāng)SP提供的是一般服務(wù)時, SP Agent Builder生成Agent的主要過程分為兩步:

77、</p><p>  可視化編輯器組件根據(jù)用戶輸入的SP提供的服務(wù)文件描述,生成三層XML文件,當(dāng)用戶輸入的描述不符合設(shè)計的三層XML的格式時,提示錯誤并讓用戶重新輸入,詳情見圖3-7。</p><p>  生成三層XML文件后,可視化編輯器組件將調(diào)用代碼生成組件來生成服務(wù)代理Agent的Java代碼,而代碼生成組件的運行又是基于三層XML文件的解析模塊、傳輸代理模塊和數(shù)據(jù)轉(zhuǎn)換模塊的基礎(chǔ)之

78、上的,詳情請見圖3-9。</p><p>  當(dāng)SP提供的是Web 服務(wù)時,SP Agent Builder生成Agent的主要過程如下:</p><p>  首先工作人員在上述的SP Agent Builder可視化編輯器中導(dǎo)入SP服務(wù)提供商提供的Web文件;SP Agent Builder完成WSDL的解析,并且用解析出來的元素對象生成內(nèi)部的三個Jtree,最后生成對應(yīng)的三層XML文件

79、,詳情請見圖3-8。</p><p>  代碼生成器根據(jù)生成的三層XML文件,在解析類的協(xié)助下,完成Agent的生成過程,詳情請見圖3-9。</p><p>  圖 3 - 7 生成三層XML文件的組件協(xié)作圖</p><p>  圖 3 - 8 WSDL生成XML文件的組建協(xié)作圖</p><p>  圖 3 - 9 生成Agent文件的

80、組建協(xié)作圖</p><p>  下面簡要介紹上圖中每個組件的簡要設(shè)計:</p><p>  可視化編輯器組件:當(dāng)服務(wù)商提供的是非Web服務(wù)時,工作人員根據(jù)SP提供的服務(wù)文檔,把相關(guān)的信息輸入可視化編輯器組件??梢暬庉嫿M件將獲得的三層信息存儲在相應(yīng)的三層文件的JTree后,生成傳輸層、表示層和傳輸層的XML文件。在生成了三層XML文件后,調(diào)用代碼生成模塊生成Agent的Java代碼;當(dāng)服務(wù)

81、商提供的是Web服務(wù)時,工作人員將SP提供的WSDL文件導(dǎo)入到可視化編輯器,隨后解析模塊就會對WSDL進行解析??梢暬庉嬈鲿{(diào)用解析后得到的元素對象生成三個Jtree,再將JTree轉(zhuǎn)換成對應(yīng)的三層XML文件。最后它會根據(jù)生成的三層XML文件,調(diào)用代碼生成模塊生成Agent的Java代碼。由于此編輯器組件的可視化性,可以形象生動的看到文件中的結(jié)構(gòu)內(nèi)容,這樣有利于的避免錯誤,且易于修改。</p><p>  三層

82、XML Schema組件:由于SP Agent Builder服務(wù)代理生成工具的其他模塊都是以三層XML文件為基礎(chǔ)的,所以三層XML文件必須具有統(tǒng)一的格式,以確保解析組件能解析出XML文件中信息,然后供其他組件調(diào)用。三層XML Schema組件就是用于限制用戶輸入用的,它將被應(yīng)用于兩個方面。它一方面被封裝在可視化編輯器的添加節(jié)點按鈕的事件響應(yīng)中,用于限制用戶的輸入;另一方面,它將被提供給此生成工具的使用者,讓他們自己根據(jù)設(shè)計好的XML格

83、式,將服務(wù)提供商提供的服務(wù)轉(zhuǎn)換成合法的格式,然后輸入。</p><p>  解析組件: 運用Dom4j技術(shù),解析生成的三層XML文件,將XML中的數(shù)據(jù)信息封裝到設(shè)計的元素封裝類的對象屬性中,生成對應(yīng)的封裝類,計算機范文網(wǎng) www.jsjfw.net,對對象,然后供其他組件調(diào)用。</p><p>  傳輸代理組件:主要是作為一個中間傳輸代理,負責(zé)容器和SP服務(wù)商之間的通信。它將根據(jù)服務(wù)商要求

84、的傳輸協(xié)議,建立與服務(wù)商的服務(wù)器之間的連接,并把請求信息以適當(dāng)?shù)母袷桨l(fā)送給SP服務(wù)商。此組件還負責(zé)從服務(wù)商那獲得響應(yīng)信息,并將響應(yīng)信息中的有效信息解析出來。</p><p>  數(shù)據(jù)轉(zhuǎn)換組件:主要是用于實現(xiàn)從前臺獲得對象格式和服務(wù)商規(guī)定的消息格式之間的格式的轉(zhuǎn)換。首先,根據(jù)傳輸層規(guī)定的傳輸格式(URL傳輸,文本傳輸,XML傳輸和SOAP傳輸),從前臺獲取的請求對象中提取有效數(shù)據(jù),并將其拼接成規(guī)定的傳輸格式的字符串

85、;其次,在獲取服務(wù)器的響應(yīng)后,根據(jù)傳輸格式,從響應(yīng)信息中獲取有效信息,并將信息封裝入對應(yīng)的響應(yīng)類的對象中,返回響應(yīng)類的對象。</p><p>  代碼生成器:代碼生成器主要分為模板上下文封裝類和模板。運用模板Velocity技術(shù),并在解析類的協(xié)助下,將上下文封裝類的對象和設(shè)計好的模板進行融合,從而生成對應(yīng)的Agent服務(wù)代理的Java代碼。</p><p><b>  3.3 本

86、章小結(jié) </b></p><p>  本章介紹了服務(wù)開發(fā)平臺的總體設(shè)計。它簡要介紹了前臺可視化IDE提供的主要功能、后臺管理容器的主要功能、后臺UDDI注冊中心模塊的主要設(shè)計和本論文研究的重點SP Agent Builder服務(wù)生成工具的主要模塊設(shè)計。</p><p>  第四章 服務(wù)生成工具SP Agent Builder的設(shè)計與實現(xiàn)</p><p>

87、  SP Agent Builder 服務(wù)生成工具的主要功能是根據(jù)SP提供的服務(wù),生成服務(wù)代理Agent文件來負責(zé)用戶和SP服務(wù)器之間的通訊。</p><p>  SP Agent Builder 主要有分為六個模塊:三層XML schema的設(shè)計模塊、三層XML schema的解析模塊、數(shù)據(jù)轉(zhuǎn)換模塊、傳輸代理模塊、可視化編輯界面模塊和代碼生成器模塊。</p><p>  4.1 三層XM

88、L schema設(shè)計與解析模塊的設(shè)計與實現(xiàn)</p><p>  三層XML schema的設(shè)計是整個SP Agent Builder設(shè)計與實現(xiàn)的基石,XML schema文檔的作用主要是設(shè)定用于存儲服務(wù)信息的三層XML文檔的格式。schema將會被可視化編輯器調(diào)用,用于規(guī)范在可視化編輯器界面上的輸入,從而生成統(tǒng)一格式的XML文件,進而保證解析模塊能夠正常運行和確保XML中不會遺失生成Agent服務(wù)代理需要的信息。

89、根據(jù)各自分工的不同,我們將三個schema文檔分別劃分成功能層schema文檔、表現(xiàn)層schema文檔和傳輸層schema文檔。三層文件的功能如下:</p><p>  功能層文件規(guī)定用戶可以進行的操作;</p><p>  表示層文件規(guī)定功能層描述的接口調(diào)用如何在網(wǎng)絡(luò)協(xié)議上表示的問題;</p><p>  傳輸層文件規(guī)定采用什么傳輸協(xié)議進行通訊和規(guī)定協(xié)議所需要的信

90、息。 </p><p>  在明確了三層XML schema各自的功能后,就可以根據(jù)XML數(shù)據(jù)類型和Java數(shù)據(jù)類型之間的映射規(guī)則(見附錄A)對三層XML的格式進行設(shè)計了。</p><p>  4.1.1 功能層XML schema的設(shè)計</p><p>  功能層文件主要是規(guī)定用戶可以進行的操作,它將用來生成接口文件,暴露給前臺,供前臺調(diào)用。因此,下面我們以一個I

91、nterface代碼為例,從中提取定義XML schema中的元素。</p><p>  現(xiàn)舉一個保險服務(wù)的接口文件為例:</p><p>  public interface Insu extends Remote {</p><p>  public GetInsuResponse GetInsu(GetInsuRequest obj) throws Remot

92、eException ;</p><p><b>  }</b></p><p>  從例子中可以看出,功能層XML需要四個主要元素:接口名、方法返回值、方法名和方法參數(shù)。</p><p>  接口 <Interface></p><p>  接口元素,用來存儲借口信息的元素。</p><

93、p><b>  相關(guān)屬性及子元素:</b></p><p>  Name: 用來存儲接口名稱。</p><p>  Operation :用來存儲接口中的方法的信息。</p><p><b>  實例如下:</b></p><p>  <Interface name="Insu

94、" ></p><p>  <Operation name="GetInsu"</p><p>  url="http://192.168.4.24:5555/webesb/servlet/EsbServlet" ></p><p>  <Parameter message="Get

95、InsuRequest" name="GetInsuRequest"</p><p>  type="Input" /></p><p>  <Parameter message="GetInsuResponse" name="GetInsuResponse" type="Out

96、put"/ ></p><p>  <Fault message = “Fault”, name = “Fault”, type = “Output”/></p><p>  </Operation></p><p>  </Interface></p><p>  操作 <Opera

97、tion></p><p>  操作元素,用來存儲操作信息。</p><p><b>  屬性及子元素:</b></p><p>  Name: 表示操作的名稱</p><p>  URL: 表示處理此操作的Java代碼地址。</p><p>  Parameter:存儲參數(shù)的相關(guān)信息。&l

98、t;/p><p>  參數(shù) < Parameter ></p><p>  參數(shù)元素,用來存儲接口方法的參數(shù)類型和返回類型的信息。</p><p><b>  相關(guān)屬性:</b></p><p>  Name: 表示參數(shù)的名稱。</p><p>  Message:表示參數(shù)的格式,一般是用

99、戶自定義的格式。</p><p>  Type:表示參數(shù)的類型,輸入?yún)?shù)或輸出參數(shù)。</p><p>  消息 <Message></p><p>  消息元素,存儲用戶自定義的消息格式。包括發(fā)送消息的格式、服務(wù)器接收發(fā)送的消息后返回消息的格式和在傳輸過程出錯后返回的錯誤信息的格式。</p><p><b>  屬性及子

100、元素:</b></p><p>  Name:表示消息格式的名稱,是請求、返回或錯誤消息。</p><p>  Part: 表示消息的組成,一個消息可以有一個或者多個Part組成。</p><p><b>  實例如下:</b></p><p>  <Message name="GetInsu

101、Request" ></p><p>  <Part name="INSUT" type="so:INSUT" ></Part></p><p>  <Part name="CHECKBS" ischildarray="true" type="so:CHE

102、CKB" ></Part></p><p>  </Message></p><p>  <Message name="GetInsuResponse" ></p><p>  <Part name="InsuID" type="xs:String"

103、 ></Part></p><p>  <Part name="INSUT" type="so:INSUT" ></Part></p><p>  <Part name="CHECKBS" ischildarray="true" type="so:CHE

104、CKB" ></Part></p><p>  </Message></p><p>  組件元素 <Part></p><p>  組件元素,是用戶自定義的元素,一般是對某些消息格式的封裝。</p><p><b>  屬性:</b></p><p

105、>  Name:表明組件的名稱。</p><p>  Type: 表明組件的類型,可以是基礎(chǔ)類型,也可以是用戶自定義的復(fù)雜類型。</p><p>  傳輸文件格式<Transfomat></p><p>  傳輸文件格式元素,表示在網(wǎng)絡(luò)中傳輸?shù)氖荴ML格式、TXT格式還是URL格式。</p><p>  備注:功能層XML

106、schema的詳細設(shè)計可參考附錄B。</p><p>  4.1.2 表示層XML schema 的設(shè)計</p><p>  表示層是用來規(guī)定功能層描述的接口調(diào)用如何在網(wǎng)絡(luò)協(xié)議上表示的問題。它詳細的描述了功能層暴露的接口的消息格式,如發(fā)送消息的消息格式、返回消息的消息格式和報錯時候的消息格式。它主要有以下兩個作用:</p><p>  生成消息封裝類,供前臺調(diào)用。前

107、臺將搜集的數(shù)據(jù)封裝入對應(yīng)的消息封裝類中,然后將消息對象作為參數(shù),再通過RMI調(diào)用管理容器中的請求方法。</p><p>  輔助完成序列化和反序列化過程,即當(dāng)后臺接收到前臺發(fā)送的對象時,后臺需要將對象轉(zhuǎn)換成具有合適消息格式的String流,再與SP服務(wù)器進行通訊。</p><p>  所以,表示層文件的設(shè)計最重要的是包含消息的具體信息,現(xiàn)提取主要元素如下:</p><p

108、>  消息<Message></p><p>  消息元素,用來規(guī)定操作之間傳遞數(shù)據(jù)的邏輯定義,一個表示層文件可包含多個消息元素。</p><p><b>  屬性:</b></p><p>  Name:表明操作名稱,分為請求方法、響應(yīng)方法和報錯方法。</p><p>  Transcontent:調(diào)

109、用方法所傳輸?shù)膬?nèi)容。</p><p>  傳輸內(nèi)容<Transcontent></p><p>  傳輸內(nèi)容元素,用來規(guī)定調(diào)用SP提供的方法時,需要的數(shù)據(jù)格式。</p><p>  備注:表示層XML schema詳細設(shè)計可參考附錄C。</p><p>  4.1.3 傳輸層XML schema 的設(shè)計</p>&l

110、t;p>  傳輸層規(guī)定采用什么傳輸協(xié)議及傳輸中所需要的信息。當(dāng)SP提供的是一般服務(wù)時,它采用的傳輸協(xié)議有可能是HTTP、UDP、TCP;當(dāng)SP運用的是web服務(wù)時,它采用的是SOAP協(xié)議。傳輸層XML用來存儲數(shù)據(jù)傳輸所需的信息,它將用來協(xié)助傳輸代理完成傳輸任務(wù)。</p><p><b>  <HTTP></b></p><p>  HTTP元素,用于

111、包含HTTP傳輸所需要的信息。</p><p><b>  屬性:</b></p><p>  Version:表示HTTP的版本信息。</p><p>  Location:表示SP提供的web服務(wù)ip地址或域名信息。</p><p>  URL:SP提供的web服務(wù)連接地址。</p><p>

112、  Port:表示SP提供的web服務(wù)端口信息。</p><p>  TransMethod:表示使用HTTP進行傳輸?shù)膫鬏敺椒?,有Get、Head、Post、put、delete、trace、option和connect這八種可選。它們依次表示請求資源的表示、返回報頭而不返回表示、向服務(wù)器提交數(shù)據(jù)、上傳資源的表示、刪除資源、返回收到的請求、返回服務(wù)器支持的HTTP方法的列表和用于可配置為加密隧道以提高安全性的代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論