【正文】
對(duì)象,該對(duì)象反映此 Class 對(duì)象所表示的類(lèi)或接口的指定已聲明字段。 對(duì)象與目標(biāo)數(shù)據(jù)格式之間的轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換模塊的設(shè)計(jì)的目的就是完成對(duì)象和具有目標(biāo)數(shù)據(jù)格式的字符串之間的互換,主要的設(shè)計(jì)思想就是根據(jù)解析功能層X(jué)ML文件,獲取Transformat的值,從而判斷數(shù)據(jù)到底要轉(zhuǎn)換成哪種格式的數(shù)據(jù)。不過(guò)這種格式的傳輸只限于簡(jiǎn)單的數(shù)據(jù)傳輸,只有當(dāng)請(qǐng)求和響應(yīng)元素封裝類(lèi)中的屬性是基礎(chǔ)類(lèi)型或者string類(lèi)型時(shí)候,才能用URL格式表示。4) URL格式當(dāng)服務(wù)提供商提供的服務(wù)為URL格式時(shí),后臺(tái)在獲取請(qǐng)求對(duì)象后,把對(duì)象裝換成“url?對(duì)象屬性名=數(shù)值amp。此功能的命名空間被定義在此地址中: 。2) SOAP格式當(dāng)服務(wù)提供商應(yīng)用的是Web服務(wù)時(shí),它通常是基于SOAP協(xié)議。 數(shù)據(jù)轉(zhuǎn)換模塊的設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換模塊負(fù)責(zé)實(shí)現(xiàn)將從前臺(tái)接收的對(duì)象格式和與服務(wù)器之間約定的通訊格式字符串之間的格式轉(zhuǎn)換。4) 方法parseOperation調(diào)用getParameters方法,從而獲得Parameter值,然后將其賦值給元素封裝對(duì)象,其中g(shù)etParameters的實(shí)現(xiàn)時(shí)調(diào)用parameter的解析類(lèi)提供的接口ParameterParser。2) 根據(jù)方法parseOperation獲得參數(shù)operaelt, 通過(guò)調(diào)用getName方法獲得name屬性,將其賦值給封裝類(lèi)對(duì)象。Private string getURL(Element elt)返回獲得的Operation的URL屬性值。其中XPath則是一門(mén)在 XML 文檔中查找信息的語(yǔ)言,XPath 可用來(lái)在 XML 文檔中對(duì)元素和屬性進(jìn)行遍歷。 Parameters: ArrayList Parameter類(lèi)型,數(shù)組里包含參數(shù)的信息??梢暬庉嬈髟谏蒟ML文件之后,首先會(huì)調(diào)用解析組件去解析三層X(jué)ML文件,其次將解析出的內(nèi)容映射到數(shù)據(jù)封裝類(lèi)的對(duì)象中,然后再調(diào)用代碼生成器組件去結(jié)合數(shù)據(jù)封裝類(lèi)的對(duì)象和設(shè)計(jì)好的模板共同生成Agent服務(wù)代理。OperationURL:服務(wù)器端的制定的操作的地址。 SOAP用于包含SOAP傳輸所需要的信息。 TCPTCP元素,用于包含TCP傳輸所需要的信息。它們依次表示請(qǐng)求資源的表示、返回報(bào)頭而不返回表示、向服務(wù)器提交數(shù)據(jù)、上傳資源的表示、刪除資源、返回收到的請(qǐng)求、返回服務(wù)器支持的HTTP方法的列表和用于可配置為加密隧道以提高安全性的代理。Location:表示SP提供的web服務(wù)ip地址或域名信息。當(dāng)SP提供的是一般服務(wù)時(shí),它采用的傳輸協(xié)議有可能是HTTP、UDP、TCP;當(dāng)SP運(yùn)用的是web服務(wù)時(shí),它采用的是SOAP協(xié)議。Transcontent:調(diào)用方法所傳輸?shù)膬?nèi)容。前臺(tái)將搜集的數(shù)據(jù)封裝入對(duì)應(yīng)的消息封裝類(lèi)中,然后將消息對(duì)象作為參數(shù),再通過(guò)RMI調(diào)用管理容器中的請(qǐng)求方法。備注:功能層X(jué)ML schema的詳細(xì)設(shè)計(jì)可參考附錄B。實(shí)例如下:Message name=GetInsuRequest Part name=INSUT type=so:INSUT /Part Part name=CHECKBS ischildarray=true type=so:CHECKB /Part /Message Message name=GetInsuResponse Part name=InsuID type=xs:String /Part Part name=INSUT type=so:INSUT /Part Part name=CHECKBS ischildarray=true type=so:CHECKB /Part /Message 組件元素 Part組件元素,是用戶(hù)自定義的元素,一般是對(duì)某些消息格式的封裝。 消息 Message消息元素,存儲(chǔ)用戶(hù)自定義的消息格式。 參數(shù) Parameter 參數(shù)元素,用來(lái)存儲(chǔ)接口方法的參數(shù)類(lèi)型和返回類(lèi)型的信息。Operation :用來(lái)存儲(chǔ)接口中的方法的信息?,F(xiàn)舉一個(gè)保險(xiǎn)服務(wù)的接口文件為例:public interface Insu extends Remote {public GetInsuResponse GetInsu(GetInsuRequest obj) throws RemoteException 。三層文件的功能如下:1) 功能層文件規(guī)定用戶(hù)可以進(jìn)行的操作;2) 表示層文件規(guī)定功能層描述的接口調(diào)用如何在網(wǎng)絡(luò)協(xié)議上表示的問(wèn)題;3) 傳輸層文件規(guī)定采用什么傳輸協(xié)議進(jìn)行通訊和規(guī)定協(xié)議所需要的信息。SP Agent Builder 主要有分為六個(gè)模塊:三層X(jué)ML schema的設(shè)計(jì)模塊、三層X(jué)ML schema的解析模塊、數(shù)據(jù)轉(zhuǎn)換模塊、傳輸代理模塊、可視化編輯界面模塊和代碼生成器模塊。運(yùn)用模板Velocity技術(shù),并在解析類(lèi)的協(xié)助下,將上下文封裝類(lèi)的對(duì)象和設(shè)計(jì)好的模板進(jìn)行融合,從而生成對(duì)應(yīng)的Agent服務(wù)代理的Java代碼。此組件還負(fù)責(zé)從服務(wù)商那獲得響應(yīng)信息,并將響應(yīng)信息中的有效信息解析出來(lái)。它一方面被封裝在可視化編輯器的添加節(jié)點(diǎn)按鈕的事件響應(yīng)中,用于限制用戶(hù)的輸入;另一方面,它將被提供給此生成工具的使用者,讓他們自己根據(jù)設(shè)計(jì)好的XML格式,將服務(wù)提供商提供的服務(wù)轉(zhuǎn)換成合法的格式,然后輸入。最后它會(huì)根據(jù)生成的三層X(jué)ML文件,調(diào)用代碼生成模塊生成Agent的Java代碼。圖 3 7 生成三層X(jué)ML文件的組件協(xié)作圖圖 3 8 WSDL生成XML文件的組建協(xié)作圖圖 3 9 生成Agent文件的組建協(xié)作圖下面簡(jiǎn)要介紹上圖中每個(gè)組件的簡(jiǎn)要設(shè)計(jì):1) 可視化編輯器組件:當(dāng)服務(wù)商提供的是非Web服務(wù)時(shí),工作人員根據(jù)SP提供的服務(wù)文檔,把相關(guān)的信息輸入可視化編輯器組件。當(dāng)SP提供的是一般服務(wù)時(shí), SP Agent Builder生成Agent的主要過(guò)程分為兩步:1) 可視化編輯器組件根據(jù)用戶(hù)輸入的SP提供的服務(wù)文件描述,生成三層X(jué)ML文件,當(dāng)用戶(hù)輸入的描述不符合設(shè)計(jì)的三層X(jué)ML的格式時(shí),提示錯(cuò)誤并讓用戶(hù)重新輸入,詳情見(jiàn)圖37。這樣每一個(gè)服務(wù)都有一個(gè)長(zhǎng)度動(dòng)態(tài)變化的Agent的隊(duì)列,當(dāng)一個(gè)請(qǐng)求結(jié)束后根據(jù)某種算法銷(xiāo)毀為之服務(wù)的Agent,這樣可以解決前臺(tái)針對(duì)同一個(gè)服務(wù)同時(shí)發(fā)出多個(gè)請(qǐng)求的并發(fā)性的問(wèn)題。4) 前臺(tái):它通過(guò)RMI機(jī)制遠(yuǎn)程定位到容器中指定的Agent實(shí)例,進(jìn)而與第三方服務(wù)器通信。SP Agent Builder通過(guò)Socket將Agent的class文件打包傳輸?shù)饺萜魉跈C(jī)器的指定目錄??梢酝ㄟ^(guò)UDDI提供的查詢(xún)API對(duì)注冊(cè)信息執(zhí)行查詢(xún)操作,通過(guò)發(fā)布API對(duì)注冊(cè)信息執(zhí)行存儲(chǔ)、更新、刪除操作。UDDI規(guī)范利用了W3C和Internet工程任務(wù)組織(IETF)的很多標(biāo)準(zhǔn)作為其實(shí)現(xiàn)基礎(chǔ),比如XML、HTTP和DNS這些協(xié)議。UDDI計(jì)劃是一個(gè)廣泛的、開(kāi)放的行業(yè)計(jì)劃,它使得商業(yè)實(shí)體能夠彼此發(fā)現(xiàn),并且定義他們?cè)鯓釉趇nternet上互相作用,并在一個(gè)全球的注冊(cè)體系架構(gòu)中共享信息。其主要功能有查詢(xún)服務(wù)狀態(tài)、激活服務(wù)、加載服務(wù)、修改服務(wù)方法、鈍化服務(wù)及日志管理等。 后臺(tái)的總體設(shè)計(jì)服務(wù)生成平臺(tái)后臺(tái)分為RuntimeContainer容器管理模塊、SP Agent Builder代碼生成模塊和UDDI注冊(cè)中心模塊。這個(gè)過(guò)程用戶(hù)也不需要寫(xiě)任何代碼,即可完成頁(yè)面跳轉(zhuǎn)。如果用戶(hù)覺(jué)得使用頁(yè)面片段的控件不適合自己的開(kāi)發(fā)習(xí)慣,也可以自己刪除或創(chuàng)建所需要的頁(yè)面片段。用戶(hù)只需按照其工作流程創(chuàng)建頁(yè)面即可。它使得用戶(hù)可以通過(guò)拖拽組件面板中的頁(yè)面片段的控件放到頁(yè)面上,通過(guò)屬性配置和綁定控件屬性,來(lái)生成服務(wù)頁(yè)面。服務(wù)開(kāi)發(fā)平臺(tái)可以分為前臺(tái)和后臺(tái)兩個(gè)部分:前臺(tái)指的是一個(gè)能迅速定制出客戶(hù)端頁(yè)面的一個(gè)可視化的開(kāi)發(fā)工具;后臺(tái)負(fù)責(zé)生成和管理服務(wù)代理,它是由SP Agent Builder (服務(wù)代理生成工具)、RuntimeContainer(管理容器)和UDDI注冊(cè)中心組成。社區(qū)電子服務(wù)平臺(tái)是一個(gè)龐大的系統(tǒng),社區(qū)瀏覽器終端使用CPK等技術(shù)進(jìn)行身份驗(yàn)證,用戶(hù)登錄社區(qū)電子服務(wù)系統(tǒng),使用綜合電子服務(wù)。本文將使用Java反射技術(shù)設(shè)計(jì)實(shí)現(xiàn)SP Agent Builder的數(shù)據(jù)轉(zhuǎn)換模塊。通俗的說(shuō),反射就是根據(jù)給出的類(lèi)名(字符串)、方法名、屬性等信息來(lái)生成對(duì)象、方法、屬性。同時(shí)通過(guò)使用Swing的Jtree組件,可以較容易的滿(mǎn)足研發(fā)出一個(gè)可視化編輯器的要求。由所有Java圖形用戶(hù)界面(GUI)組件所構(gòu)成,可運(yùn)行在任意支持Java虛擬機(jī)(JVM)的本地平臺(tái)上。Velocity的能力遠(yuǎn)不止web站點(diǎn)開(kāi)發(fā)這個(gè)領(lǐng)域,例如,它可以從模板(template)產(chǎn)生SQL和PostScript、XML,它也可以被當(dāng)作一個(gè)獨(dú)立工具來(lái)產(chǎn)生源代碼和報(bào)告,或者作為其他系統(tǒng)的集成組件使用。 VelocityVelocity是一個(gè)基于Java的模板引擎(template engine)。本質(zhì)上,WSDL描述說(shuō)明的是Web服務(wù)的以下三個(gè)基本屬性:1) 服務(wù)做些什么服務(wù)所提供的操作(方法);2) 如何訪(fǎng)問(wèn)服務(wù)數(shù)據(jù)格式詳情以及訪(fǎng)問(wèn)服務(wù)操作的必要協(xié)議;3) 服務(wù)位于何處由特定協(xié)議決定的網(wǎng)絡(luò)地址,如URL;WSDL文檔將Web服務(wù)定義為服務(wù)訪(fǎng)問(wèn)點(diǎn)或端口的集合。WSDL就是描述XML、Web服務(wù)的標(biāo)準(zhǔn)XML格式。實(shí)際上,WebService的主要目標(biāo)是跨平臺(tái)的可互操作性。 WebServiceWeb服務(wù)(Web Service)是基于XML和HTTPS的一種服務(wù),其通信協(xié)議主要基于SOAP,服務(wù)的描述通過(guò)WSDL,通過(guò)UDDI來(lái)發(fā)現(xiàn)和獲得服務(wù)的元數(shù)據(jù)[12~18]。它為通過(guò)網(wǎng)絡(luò)消息傳輸?shù)腦ML信息提供了標(biāo)準(zhǔn)的信封,并為這類(lèi)消息提供了可選的約定,是Web服務(wù)傳輸XML消息的標(biāo)準(zhǔn)協(xié)議。在分散或分布式的環(huán)境下,它為遠(yuǎn)程過(guò)程調(diào)用和獲得XML形式相應(yīng)定義了規(guī)范。Dom4j是一個(gè)易用的、開(kāi)源的庫(kù),它應(yīng)用于Java平臺(tái),采用了Java集合框架并完全支持DOM,SAX和JAXP。XML現(xiàn)以成為當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具之一。于是,XML誕生了,并迅速發(fā)展成為W3C(World Wide Web Consortium,萬(wàn)維網(wǎng)聯(lián)盟)的標(biāo)準(zhǔn)。本項(xiàng)目使用此平臺(tái)來(lái)開(kāi)發(fā)一個(gè)能夠快速定制用戶(hù)頁(yè)面的IDE。 NetBeansNetBeans是一個(gè)全功能的開(kāi)放源碼的Java IDE,可以幫助開(kāi)發(fā)人員編寫(xiě)、編譯、調(diào)試和部署Java應(yīng)用,并將版本控制和XML編輯融入其眾多功能之中。利用它可以在數(shù)據(jù)庫(kù)和J2EE的開(kāi)發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。用實(shí)例展示了SP Agent Builder生成agent的流程。介紹了服務(wù)生成平臺(tái)的前臺(tái)和后臺(tái):前臺(tái)是一個(gè)能迅速定制出客戶(hù)端頁(yè)面的一個(gè)可視化的IDE;后臺(tái)負(fù)責(zé)生成和管理服務(wù)代理。第二章 :相關(guān)理論及技術(shù)介紹。而現(xiàn)行的校園網(wǎng)新聞發(fā)布系統(tǒng)大多是采用ASP技術(shù)組建的。因此研究校園網(wǎng)新聞發(fā)布系統(tǒng)對(duì)于學(xué)校建設(shè)與發(fā)展具有重要意義,本文所闡述的系統(tǒng)就是在這樣的前提下提出的。這一時(shí)代的到來(lái)使得新聞在網(wǎng)絡(luò)中傳輸成為可能。5) 避免了上游各運(yùn)營(yíng)商網(wǎng)點(diǎn)的重復(fù)建設(shè),實(shí)現(xiàn)了社會(huì)資源的節(jié)約。建設(shè)數(shù)字化城市社區(qū)服務(wù)平臺(tái)的意義:1) 數(shù)字化城市社區(qū)服務(wù),這一創(chuàng)新模式符合黨和政府的便民、利民的社區(qū)服務(wù)發(fā)展方向和精神?!吧鐓^(qū)”這個(gè)名詞最早從20世紀(jì)30年代由國(guó)外引入中國(guó),自20世紀(jì)80年代始,“社區(qū)”一詞逐漸風(fēng)靡全國(guó)。 parser module is responsible for parsing the information of the threelayers XML。同時(shí)它具有很好的拓展性、靈活性。服務(wù)生成工具,能根據(jù)服務(wù)信息自動(dòng)生成服務(wù)代理。因此,能否將服務(wù)提供商所提供的服務(wù)高效快速地接入服務(wù)平臺(tái),將會(huì)極大地影響到社區(qū)電子服務(wù)平臺(tái)的工作效率,而將服務(wù)接入平臺(tái)的關(guān)鍵在于為服務(wù)生成對(duì)應(yīng)的服務(wù)代理,負(fù)責(zé)服務(wù)頁(yè)面和服務(wù)器之間的通訊。服務(wù)生成工具能夠?yàn)椴捎貌煌瑐鬏攨f(xié)議和不同通訊格式的服務(wù),生成服務(wù)代理,解決了將服務(wù)快速接入平臺(tái)的主要問(wèn)題。 the threelayers XML (the functional layer, said layer and transport layer) design module is responsible for standardizing service information’s storage format。 code generation module is responsible for generate the code for the agent.SP Agent Builder can build the agent for the service using different transportation protocol and different format, 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 good results.KEY WORDS:digital city, service provider, SP agent builder, agent第一章 緒論 選題的背景社區(qū)是指社會(huì)的一個(gè)區(qū)域,1887年由德國(guó)社會(huì)學(xué)家滕尼斯最早提出,英文名稱(chēng)叫munity。數(shù)字化社區(qū)服務(wù)平臺(tái)是為數(shù)字社區(qū)居民提供數(shù)字化應(yīng)用的綜合型的平臺(tái),包括繳費(fèi)管理、飛機(jī)訂票、業(yè)務(wù)辦理等平臺(tái),它主要由硬件設(shè)備、數(shù)字化社區(qū)服務(wù)軟件平臺(tái)和網(wǎng)絡(luò)基礎(chǔ)設(shè)施等幾個(gè)方面組成。