




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 III摘要隨著網(wǎng)絡(luò)技術(shù)的崛起、計(jì)算機(jī)應(yīng)用程度的不斷提高擴(kuò)大,原先系統(tǒng)的時(shí)效性、數(shù)據(jù)是否正確、操作是否方便性,這些都存在著不同程度的缺陷,這已影響到系統(tǒng)日常的使用。經(jīng)過(guò)深入研究比較,決定利用最新的研發(fā)技術(shù)對(duì)基于UDDI的Web服務(wù)注冊(cè)中心的設(shè)計(jì)進(jìn)行重新設(shè)計(jì)開(kāi)發(fā)。使系統(tǒng)能不斷地適應(yīng)新的需求,帶給人們更多的便利。本文對(duì)基于UDDI的Web服務(wù)注冊(cè)中心的設(shè)計(jì)進(jìn)行整個(gè)的討論,確定了系統(tǒng)的可執(zhí)行性和可應(yīng)用性;我對(duì)該項(xiàng)目進(jìn)行分析,最后按照模塊化原理,布局設(shè)計(jì)了系統(tǒng)的各個(gè)功能模塊;對(duì)于數(shù)據(jù)庫(kù)詳細(xì)解釋了系統(tǒng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)完整性,并對(duì)他的安全性進(jìn)行設(shè)計(jì);程序設(shè)計(jì)則采用面向?qū)ο骿ava語(yǔ)言的程序設(shè)計(jì)方法,從而提出系
2、統(tǒng)的程序設(shè)計(jì)的整體思路,對(duì)程序功能前端與后端進(jìn)行了具體論述;測(cè)試,主要是對(duì)設(shè)計(jì)分析過(guò)程中出現(xiàn)的一些問(wèn)題進(jìn)行分析,并提出可以解決的方案,完成該系統(tǒng)的功能。最后,我們對(duì)該設(shè)計(jì)進(jìn)行客觀、全面的評(píng)價(jià),并對(duì)進(jìn)一步改進(jìn)提出了建議,致謝。關(guān)鍵詞:計(jì)算機(jī);系統(tǒng);UDDI 331引言Web服務(wù)技術(shù),它是一種面向服務(wù)的技術(shù)。面向服務(wù)的計(jì)算,相對(duì)來(lái)說(shuō)是一個(gè)比較新的計(jì)算規(guī)范,它將服務(wù)作為構(gòu)件,成本低,可用于支持分布式應(yīng)用快速開(kāi)發(fā)。服務(wù)是一種自包括的模塊,他們安置在規(guī)定的核心平臺(tái)上,可以在網(wǎng)絡(luò)上利用一些XML的技術(shù)來(lái)實(shí)現(xiàn)描述、定位、編配和編程。安排在系統(tǒng)上的任何代碼段或應(yīng)用程序組件都能轉(zhuǎn)換為網(wǎng)絡(luò)上的服務(wù)。在學(xué)習(xí)和掌握面
3、向服務(wù)的計(jì)算的相關(guān)的概念,以及UDDI協(xié)議的分析。同時(shí)通過(guò)UDDI服務(wù)實(shí)現(xiàn)API服務(wù)和Web服務(wù)的描述功能,部署一個(gè)Web服務(wù)注冊(cè)中心;完成一個(gè)簡(jiǎn)單Web服務(wù)的發(fā)布與調(diào)用 ,UDDI客戶(hù)端通過(guò)調(diào)用UDDI服務(wù)API協(xié)議提供簡(jiǎn)單易用的操作界面,通過(guò)此界面實(shí)現(xiàn)Web服務(wù)的統(tǒng)一描述,開(kāi)發(fā)1,以及Web服務(wù)注冊(cè)中心的界面設(shè)計(jì)和完成。 該項(xiàng)目設(shè)計(jì)從需求分析出發(fā)提出了該系統(tǒng)的整體設(shè)計(jì)思想與框架,簡(jiǎn)明扼要的引見(jiàn)了系統(tǒng)各功能模塊及數(shù)據(jù)庫(kù)的設(shè)計(jì),并詳細(xì)介紹了數(shù)據(jù)流圖,在詳細(xì)設(shè)計(jì)里給出了部分實(shí)現(xiàn)功能的講解、代碼,注釋。此系統(tǒng)的開(kāi)發(fā)初衷就是為了解決之前舊版本在操作管理方面的不足及缺陷,運(yùn)用新的設(shè)計(jì)理念及模式進(jìn)行重新
4、發(fā)開(kāi)設(shè)計(jì),使其在利用方面得到更大的作用。2 Web服務(wù)的原理分析2.1 開(kāi)發(fā)意義Web服務(wù)是一項(xiàng)正在發(fā)展的技術(shù),可以使運(yùn)行在各種機(jī)器上的各種應(yīng)用無(wú)需尋找額外的、專(zhuān)業(yè)的第三方軟件或硬件,就可以彼此交流數(shù)據(jù)、集成。按照Web服務(wù)的標(biāo)準(zhǔn)實(shí)施的運(yùn)用之間,無(wú)論它們所利用的言語(yǔ)、平臺(tái)或內(nèi)部準(zhǔn)則是什么,都可以彼此交流數(shù)據(jù)。Web服務(wù)是自描述、自包含的可用網(wǎng)絡(luò)模塊,能夠執(zhí)行的業(yè)務(wù)性能。Web服務(wù)也很容易布置,由于它們基于一些慣例的產(chǎn)業(yè)規(guī)定以及已有的一些技術(shù),諸如XML和HTTP。Web服務(wù)把應(yīng)用接口的費(fèi)用變少了。Web服務(wù)是一個(gè)通用機(jī)制,為各種企業(yè)的組織之間的業(yè)務(wù)流程的集成所提供。Web服務(wù)技術(shù)的遠(yuǎn)期目的是完
5、成分布式應(yīng)用,根據(jù)不停地變化的業(yè)務(wù)需要?jiǎng)討B(tài)組裝和配置應(yīng)用程序,也可以依據(jù)設(shè)備(如PC、便攜式計(jì)算機(jī)、WAP手機(jī)、PDA)、網(wǎng)絡(luò)(如有線電視線纜、移動(dòng)通信系統(tǒng)、各種數(shù)字用戶(hù)線路、藍(lán)牙等)和用戶(hù)訪問(wèn)的情況制定詳細(xì)的的分布式應(yīng)用,保障所需之處都可任意運(yùn)用任何業(yè)務(wù)邏輯的具體片段。一旦布置了一個(gè)詳細(xì)的Web服務(wù),其它的應(yīng)用和Web服務(wù)都能能發(fā)現(xiàn)和調(diào)用這個(gè)Web服務(wù)。2.2 國(guó)內(nèi)外發(fā)展現(xiàn)狀時(shí)代在發(fā)展,計(jì)算機(jī)技術(shù)的使用也越來(lái)越深入到各行各業(yè),這使得人們的生活更加簡(jiǎn)便化。目前各行各業(yè)都在利用公用計(jì)算機(jī)系統(tǒng),它的范圍橫跨教育、科研、文化、金融、商業(yè)、新聞出版、文娛、體育等各個(gè)領(lǐng)域,其用戶(hù)群十分巨大,因此,設(shè)計(jì)開(kāi)
6、發(fā)好一個(gè)計(jì)算機(jī)系統(tǒng)對(duì)一個(gè)機(jī)構(gòu)(或部門(mén))的業(yè)務(wù)開(kāi)展非常重要。這幾年以來(lái),隨著用戶(hù)要求的不斷提高及計(jì)算機(jī)行業(yè)的深入應(yīng)用,尤其是數(shù)據(jù)庫(kù)技術(shù)的廣泛運(yùn)用,使得用戶(hù)提供的辦事能力也將越來(lái)越多樣化,越來(lái)越人性化。 基于UDDI的Web服務(wù)注冊(cè)中心的設(shè)計(jì)在目前來(lái)說(shuō)是非常有用的。國(guó)外在Web 服務(wù)方面的研究相對(duì)來(lái)說(shuō)已經(jīng)很成熟了,我國(guó)的技術(shù)目前還處于發(fā)展初期,很多設(shè)施以及能力都沒(méi)有發(fā)展到先進(jìn)水平,所以咱們?cè)谶@方面更需要時(shí)間去加大投入力度,并進(jìn)行深入化的研究設(shè)計(jì)。2.3 主要概念2.3.1 Web服務(wù) Web服務(wù)是一個(gè)平臺(tái)獨(dú)立的、松耦合的、自包含的、基于可編程的Web的應(yīng)用程序2。它是由URI標(biāo)識(shí)的軟件系統(tǒng),Web
7、服務(wù)作為一種特殊的服務(wù)繼承了服務(wù)的自治性、開(kāi)放性、自描述性和實(shí)現(xiàn)無(wú)關(guān)性。另外,Web服務(wù)使用(基于XML的)標(biāo)準(zhǔn)化的因特網(wǎng)語(yǔ)言,標(biāo)準(zhǔn)化的協(xié)議在因特網(wǎng)的內(nèi)部網(wǎng)上展示他們的可編程功能部件,并通過(guò)自描述接口實(shí)現(xiàn)Web服務(wù)。這些自描述接口基于開(kāi)放的因特網(wǎng)標(biāo)準(zhǔn)。Web服務(wù)是面向服務(wù)的體系結(jié)構(gòu)。如圖21所示:圖21面向服務(wù)的體系結(jié)構(gòu)2.3.2 UDDIUDDI這一名詞最初出現(xiàn)在2000年,由Ariba,IBM,Microsoft和其他33家公司創(chuàng)建.UDDI registries 提供了一個(gè)機(jī)制,以一種有用的方式來(lái)閱讀,發(fā)現(xiàn)Web服務(wù)以及它們之間的相互作用.UDDI是一個(gè)包括輕量級(jí)數(shù)據(jù)的注冊(cè)庫(kù),作為注冊(cè)庫(kù)
8、,它的主要目的是提供他所描述的資源的網(wǎng)絡(luò)地址。UDDI草案的核心概念是UDDI業(yè)務(wù)注冊(cè)庫(kù)(UBR),這是一個(gè)用來(lái)描述業(yè)務(wù)實(shí)體和他的Web服務(wù)的XML文檔。從概念上說(shuō),UDDI業(yè)務(wù)注冊(cè)所提供的信息包括三個(gè)相干的組成部分:“白頁(yè)”、“黃頁(yè)”、“綠頁(yè)”3。白頁(yè)包括地址、聯(lián)系人的聯(lián)系方式,以及其余的一些相關(guān)信息。黃頁(yè)基于行業(yè)分類(lèi)法對(duì)信息加以分類(lèi)。綠頁(yè)的內(nèi)容則主要關(guān)于服務(wù)的業(yè)務(wù)能力和相關(guān)信息,包括對(duì)Web服務(wù)規(guī)范的引用和指向各種基于文件和基于URL的發(fā)現(xiàn)機(jī)制的指針。使用UDDI注冊(cè)庫(kù),企業(yè)能夠發(fā)現(xiàn)潛在的合作的同伴以及有關(guān)這些合作伙伴的基本信息(通過(guò)白頁(yè));能夠發(fā)現(xiàn)依據(jù)具體行業(yè)進(jìn)行分類(lèi)的公司(通過(guò)黃頁(yè));
9、以及如何與提供服務(wù)的企業(yè)進(jìn)行聯(lián)系(通過(guò)綠頁(yè))4?;诖鎯?chǔ)在UDDI注冊(cè)庫(kù)中的信息,應(yīng)用和開(kāi)發(fā)者可以確定:業(yè)務(wù)實(shí)體代表誰(shuí);他們做什么;所提供的服務(wù)位于哪里;以及如何訪問(wèn)這些服務(wù)。 UDDI是按標(biāo)準(zhǔn)化的模式進(jìn)行設(shè)計(jì)的,它不受任何技術(shù)的限制。換句話說(shuō),UDDI注冊(cè)庫(kù)中的條目可以包含任何類(lèi)型的資源,無(wú)論這些資源是否基于XML。例如,在UDDI注冊(cè)庫(kù)中,可以包含企業(yè)電子文檔(EDI)系統(tǒng)的有關(guān)信息、DCOM或CORBA接口的有關(guān)信息。他們的相關(guān)信息也可以包含在UDDI注冊(cè)中。這意味著,雖然UDDI使用XML表示他所存儲(chǔ)的數(shù)據(jù),但是也可以注冊(cè)其他類(lèi)型的技術(shù)。因?yàn)閁DDI使用SOAP作為他的傳輸層,所以無(wú)論
10、在設(shè)計(jì)的時(shí)候還是運(yùn)行時(shí),企業(yè)都可以使用基于SOAP的XML API調(diào)用與UDDI進(jìn)行交互,從而發(fā)現(xiàn)企業(yè)服務(wù)的相關(guān)數(shù)據(jù)。因此,企業(yè)能與服務(wù)提供者連接,并調(diào)用和使用服務(wù)提供者所提供的服務(wù)。UDDI注冊(cè)庫(kù)與目錄的主要不同點(diǎn)在于:UDDI提供了按照分類(lèi)法對(duì)業(yè)務(wù)和服務(wù)進(jìn)行分類(lèi)的一種機(jī)制。例如,服務(wù)提供者可以使用分類(lèi)法來(lái)表明:服務(wù)實(shí)現(xiàn)了一個(gè)具體的領(lǐng)域標(biāo)準(zhǔn),或者對(duì)于一個(gè)具體的地點(diǎn)提供了服務(wù),由于UDDI采用了標(biāo)準(zhǔn)的分類(lèi)系統(tǒng),因此可以基于分類(lèi)法來(lái)發(fā)現(xiàn)相關(guān)信息?;诜诸?lèi),客戶(hù)可以更容易地發(fā)現(xiàn)與他們的具體需求相匹配的服務(wù)。一旦完成Web服務(wù)的開(kāi)發(fā)并將其部署后,在諸如UDDI這樣的注冊(cè)庫(kù)中發(fā)布該服務(wù)就變成了一項(xiàng)重要
11、的任務(wù),以便一些潛在的客戶(hù)和服務(wù)開(kāi)發(fā)者能夠發(fā)現(xiàn)該服務(wù)。開(kāi)發(fā)人員經(jīng)過(guò)UDDI機(jī)制查找散布在互聯(lián)網(wǎng)上的Web服務(wù),在取得其WSDL文件后,就可以在本人的編程中以SOAP調(diào)用的格式申請(qǐng)相應(yīng)的服務(wù)了。各種規(guī)模的各個(gè)行業(yè)或企業(yè)都將得益于 UDDI。UDDI 標(biāo)準(zhǔn)能夠幫我們處理一些問(wèn)題:1使得在數(shù)百萬(wàn)的在線的企業(yè)中發(fā)現(xiàn)正確的企業(yè)成為可能;2定義一旦首選的企業(yè)被發(fā)現(xiàn)后如何啟動(dòng)商業(yè);3擴(kuò)展新客戶(hù)并增加對(duì)客戶(hù)的訪問(wèn);4擴(kuò)展銷(xiāo)售并延伸市場(chǎng)范圍;5滿(mǎn)足用戶(hù)驅(qū)動(dòng)的需要,為在全環(huán)球 Internet 經(jīng)濟(jì)中迅速協(xié)作的進(jìn)入,并肅清阻礙。3 需求分析本章從系統(tǒng)開(kāi)發(fā)的可行性分析,需求分析方面對(duì)系統(tǒng)開(kāi)發(fā)的初期工作進(jìn)行介紹3.1
12、可行性分析UDDI是按標(biāo)準(zhǔn)化方式進(jìn)行設(shè)計(jì)的。并不受限于任何技術(shù)。換句話說(shuō),UDDI 注冊(cè)庫(kù)中的條目可以包含任何類(lèi)型的資源,無(wú)論這些資源是否基于XML。而基于UDDI的Web服務(wù)注冊(cè)中心的設(shè)計(jì)主要是在Myecilipses 開(kāi)發(fā)環(huán)境中完成Web服務(wù)的注冊(cè)中心的模型。為了確定該設(shè)計(jì)具備的可行性,對(duì)本次設(shè)計(jì)進(jìn)行了以下四個(gè)方面的分析討論。(1) 經(jīng)濟(jì)可行性。經(jīng)濟(jì)可行性主要是對(duì)本設(shè)計(jì)的經(jīng)濟(jì)方面做出評(píng)價(jià)。本系統(tǒng)對(duì)系統(tǒng)開(kāi)發(fā)者來(lái)說(shuō)并不需要太高的成本支出,支出在可控范圍之內(nèi),并且開(kāi)發(fā)周期又不是非常長(zhǎng),故而省了人力、物力、財(cái)力資源,所以本設(shè)計(jì)在經(jīng)濟(jì)上是可行的。(2) 技術(shù)上的可行性。技術(shù)上的可行性研究主要是剖析技
13、術(shù)條件能不能順利完成開(kāi)發(fā)任務(wù),硬、軟件能不能滿(mǎn)足開(kāi)發(fā)者的需要等。在軟件方面,本系統(tǒng)采用的是JAVA語(yǔ)言,利用MyEclipse開(kāi)發(fā)平臺(tái)。經(jīng)過(guò)剖析,在軟件和硬件方面以及現(xiàn)有的設(shè)備和環(huán)境能夠完成系統(tǒng)的設(shè)計(jì),因而具備技術(shù)上的可行性。(3) 時(shí)機(jī)可行性。時(shí)機(jī)可行性是剖析系統(tǒng)開(kāi)發(fā)的時(shí)機(jī),現(xiàn)在到底是成熟還是不成熟。目前越來(lái)越多的應(yīng)用程序都在逐漸的轉(zhuǎn)向面向Web的開(kāi)發(fā),而且Internet也在普遍的運(yùn)用,因而系統(tǒng)的設(shè)計(jì)具備機(jī)遇上的可行性。(4) 管理上的可行性:主要是管理人員到底支不支持現(xiàn)在的管理制度和辦法科學(xué)不科學(xué),規(guī)章制度齊全與否,原始數(shù)據(jù)正確與否等。系統(tǒng)的開(kāi)發(fā)最重要的就是為了便于服務(wù)的管理,增補(bǔ)如今當(dāng)
14、前服務(wù)管理方式的缺點(diǎn),因而,具有了管理上的可行性。經(jīng)過(guò)對(duì)于經(jīng)濟(jì)、技術(shù)和操作等方面的進(jìn)行的分析,我們得出這樣一個(gè)結(jié)論:基于UDDI的Web服務(wù)注冊(cè)中心的設(shè)計(jì)建設(shè)系統(tǒng)是目前各個(gè)行業(yè)所需要的,具有很大的發(fā)展空間,因此可以確定本系統(tǒng)的開(kāi)發(fā)是完全有必要的,而且是可行的,是可以立項(xiàng)開(kāi)發(fā)。3.2功能分析該系統(tǒng)在功能上應(yīng)做到操作簡(jiǎn)便、界面清晰、完全控件式的頁(yè)面規(guī)劃,使得Web服務(wù)的設(shè)計(jì)更加簡(jiǎn)單化。 系統(tǒng)運(yùn)行會(huì)更迅速、更鞏固、更高效和可靠。在結(jié)構(gòu)上應(yīng)具備很好的可擴(kuò)充性,以便于未來(lái)的功能擴(kuò)充和保護(hù)。圖31系統(tǒng)框架圖3.3 模塊結(jié)構(gòu)圖圖32 注冊(cè)中心系統(tǒng)模塊圖4 總體設(shè)計(jì)經(jīng)過(guò)需求分析之后,進(jìn)入系統(tǒng)設(shè)計(jì)階段,系統(tǒng)設(shè)計(jì)
15、一般又稱(chēng)總體設(shè)計(jì)或初步設(shè)計(jì)。根據(jù)需求分析階段的任務(wù),我們對(duì)于該系統(tǒng)的了解,以及“做什么”應(yīng)該明白,現(xiàn)在是決定“怎么去開(kāi)始做”的階段,同時(shí)確定系統(tǒng)中的每個(gè)程序應(yīng)該由哪些模塊組成以及他們之間的相互關(guān)系。4.1 系統(tǒng)結(jié)構(gòu)我們經(jīng)常使用的數(shù)據(jù)庫(kù)分為兩種結(jié)構(gòu):C/S和B/S。C/S又稱(chēng)Client/Server或客戶(hù)/服務(wù)器模式。B/S是Brower/Server的縮寫(xiě),客戶(hù)機(jī)上只要裝置一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫(kù)。瀏覽器通過(guò)Web Serve
16、r 鏈接數(shù)據(jù)庫(kù)來(lái)使數(shù)據(jù)交互。 本系統(tǒng)采用無(wú)終端B/S的結(jié)構(gòu)設(shè)計(jì)而成,基于Web即可實(shí)現(xiàn)管理,優(yōu)點(diǎn)如下。 = 1 * GB2 方便性:無(wú)論你在哪兒?什么時(shí)候?只要能與因特網(wǎng)連接,您就可以進(jìn)行工作。 = 2 * GB2 易用性:不需要任何復(fù)雜和繁雜的操作學(xué)習(xí),沒(méi)有任何模糊和難懂的操作指令,用戶(hù)舒服的界面使初次使用者通過(guò)幫助文檔就能夠掌握使用此系統(tǒng)的方法。4.2 開(kāi)發(fā)及運(yùn)行環(huán)境本系統(tǒng)采納無(wú)終端B/S結(jié)構(gòu)設(shè)計(jì)而成,基于Web即可完成管理。在此基礎(chǔ)上配有MyEclipse ,JDK,apache-tomcat等相關(guān)軟件構(gòu)成。4.2.1 JSPJSP即Java Server Pages,是由Sun Mic
17、ro system公司于1996年6月推出的新技術(shù),是基于Java Servlet以及整個(gè)Java體系的Web開(kāi)發(fā)技術(shù)5。其好處就是能夠?qū)?nèi)容的生成和顯示進(jìn)行區(qū)分、生成可反復(fù)使用的組件、采納標(biāo)識(shí)簡(jiǎn),方便化頁(yè)面進(jìn)行開(kāi)發(fā)。JSP能提供所有Servlet的功能6。JSP的基本語(yǔ)法JSP的腳本元素主要包括:注釋、表達(dá)式、聲明、Scriptlet(小腳本)。JSP的注釋包括HTML注釋和隱藏注釋兩種。聲明就是在JSP程序中聲明合法的變量和方法,并且將這個(gè)聲明用在表達(dá)式或Scriptlet(小腳本)中。聲明的基本語(yǔ)法格式如下:Script(小腳本)用于在JSP源文件中嵌入一個(gè)有效的Java程序段,當(dāng)頁(yè)面被
18、請(qǐng)求時(shí)這個(gè)Java程序段被執(zhí)行。而且,Scriptlet還能夠和頁(yè)面中的靜態(tài)元件組合起來(lái)建立動(dòng)態(tài)生成的頁(yè)面。4.2.2 Servlet概述Java Servlet(或稱(chēng)服務(wù)器小應(yīng)用程序)是一種用來(lái)提供動(dòng)態(tài)內(nèi)容服務(wù)的技術(shù),是用Java語(yǔ)言編寫(xiě)的、協(xié)議和平臺(tái)都獨(dú)立的服務(wù)器端組件。Servlet可以像CGI腳本一樣擴(kuò)充Web服務(wù)器功能,但是Servlet占用的密集資源很少,不像那些用CGI腳本編制的站點(diǎn)那樣,由于訪問(wèn)量急劇上升,性能急速下降。同時(shí),因?yàn)镾ervlet在服務(wù)器內(nèi)部運(yùn)行,圖形用戶(hù)接口根本用不上。Servlet API為Servlet提供了相同的編程接口。Servlet程序是用Java S
19、ervlet API開(kāi)發(fā)的一個(gè)準(zhǔn)則的Java擴(kuò)展,但不是Java中心框架的一部分。編寫(xiě)Servlet已經(jīng)沒(méi)有必要像CGI腳本一樣,不需要關(guān)注Servlet是如何裝載的;Servlet運(yùn)行在什么樣的服務(wù)器環(huán)境中;或者用什么協(xié)議來(lái)傳輸數(shù)據(jù)的等。此時(shí)因?yàn)镾ervlet是用Java編程寫(xiě)的,具備良好的跨平臺(tái)性能,Servlet能夠嵌入到各種各樣的Web服務(wù)器中。Servlet可以相當(dāng)有效率地替代CGI腳本:它可以方便地產(chǎn)生容易編寫(xiě)而且運(yùn)行較快的動(dòng)態(tài)文本,可以很方便地調(diào)試尋找出程序出錯(cuò)的問(wèn)題所在6。Servlet的工作流程圖如圖4.1所示。圖41 Servlet工作流程圖Servlet工作流程:a)客戶(hù)
20、端發(fā)送申請(qǐng)信息至服務(wù)器。b)服務(wù)器將申請(qǐng)信息發(fā)送至Servlet。c)Servlet生成反映的內(nèi)容并將其傳給Servlet。內(nèi)容動(dòng)態(tài)生成,經(jīng)常決定于客戶(hù)端的請(qǐng)求。d)服務(wù)器將反映的信息前往至客戶(hù)端7。4.2.3 JavaBean概述在Java模型中,經(jīng)過(guò)JavaBean可以無(wú)限制的擴(kuò)展Java程序的性能,經(jīng)過(guò)JavaBean的組合可以迅速生成新的應(yīng)用程序。JavaBean具備以下特點(diǎn)6:能夠完成代碼的多次使用。無(wú)論在Java的哪個(gè)平臺(tái)上都可以開(kāi)始任務(wù),不需要從新編譯??删S護(hù)性、可應(yīng)用性、可編輯性。能夠以其它部件的方式進(jìn)行運(yùn)行。能夠在內(nèi)部網(wǎng)或者網(wǎng)絡(luò)之間運(yùn)行傳輸。JavaBean在JSP程序中被來(lái)
21、封裝事務(wù)的邏輯和數(shù)據(jù)庫(kù)操作等,能夠很好的實(shí)現(xiàn)業(yè)務(wù)邏輯和前端程序的分隔,使得系統(tǒng)具備更好的健壯性和靈活性8。4.3 體系結(jié)構(gòu)4.3.1 Web的服務(wù)技術(shù)架構(gòu)Web服務(wù)技術(shù)是在應(yīng)用程序間基于標(biāo)準(zhǔn)的因特網(wǎng)協(xié)議進(jìn)行協(xié)作,不需要人的直接干預(yù)。借此,許多業(yè)務(wù)操作將變得自動(dòng)化,業(yè)務(wù)開(kāi)展方式是創(chuàng)建新的功能效率及新的更有效的。Web服務(wù)范式對(duì)基礎(chǔ)架構(gòu)的要求并不高,他的目標(biāo)就是保證無(wú)論在什么平臺(tái)上什么技術(shù)和編程語(yǔ)言都可以完成Web服務(wù)的訪問(wèn)。事實(shí)上,Web服務(wù)的訪問(wèn)方式并不是唯一的,它是代表了好多類(lèi)相關(guān)的技術(shù)。Web服務(wù)的一個(gè)被廣泛接受的定義基于如圖42所示,一套具體的補(bǔ)充標(biāo)準(zhǔn)。同時(shí),如圖42所示,這些工作也導(dǎo)致
22、了大量的新準(zhǔn)則,新術(shù)語(yǔ)的誕生。為了使問(wèn)題簡(jiǎn)便化,我們對(duì)Web服務(wù)技術(shù)架構(gòu)的一些重要準(zhǔn)則進(jìn)行了分類(lèi),并作簡(jiǎn)要介紹。圖42 Web服務(wù)技術(shù)架構(gòu)4.3 .2 JSP網(wǎng)站開(kāi)發(fā)模式 目前,JSP技術(shù)已經(jīng)成為了一種受各種企業(yè)喜歡的動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。越來(lái)越多的技術(shù)人員也漸漸成為JSP技術(shù)的支持者。JSP技術(shù)正是利用了Java的“一次性開(kāi)發(fā),多次使用”的性能,也變成了網(wǎng)站開(kāi)發(fā)技術(shù)人員的最認(rèn)可的技術(shù)。當(dāng)然,JSP技術(shù)的最大好處在于可以將頁(yè)面的表現(xiàn)形式和頁(yè)面的商業(yè)邏輯間隔開(kāi)。JSP網(wǎng)站開(kāi)發(fā)技術(shù)標(biāo)準(zhǔn)提供了兩種開(kāi)發(fā)形式:一種是JSP +JavaBean開(kāi)發(fā)模式;一種是JSP +Servlet +JavaBean開(kāi)發(fā)模
23、式。JSP +JavaBean模型圖如圖4.3所示。圖4.3 JSP +JavaBean模型圖在這種模型中,當(dāng)我們解決大型業(yè)務(wù)時(shí),頁(yè)面程序?qū)⒆兊檬值貜?fù)雜,這也給設(shè)計(jì)和保護(hù)帶來(lái)艱難的任務(wù)。JSP + Servlet+ JavaBean模型圖如圖4.4所示。圖4.4 JSP +Servlet +JavaBean模型圖Servlet技術(shù)是一種采納Java技術(shù)來(lái)完成CGI功用的一種技術(shù)。Servlet是運(yùn)行在Web服務(wù)器上,用來(lái)生成Web頁(yè)面。Servlet技術(shù)十分適于服務(wù)器端的解決和編程。在此種開(kāi)發(fā)方式中,JSP技術(shù)用來(lái)顯示頁(yè)面,該頁(yè)面中沒(méi)有任何的商業(yè)解決邏輯,經(jīng)過(guò)Servlet技術(shù)來(lái)實(shí)現(xiàn)大批的事
24、物解決工作。4.4 Eclipse,Tomcat簡(jiǎn)介Eclipse最早是由OTI以及 IBM兩家公司的IDE產(chǎn)品開(kāi)發(fā)組創(chuàng)立的,IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。Eclipse是一個(gè)公開(kāi)性的源代碼的軟件開(kāi)發(fā)項(xiàng)目,它專(zhuān)門(mén)為高度集成的工具開(kāi)發(fā)提供一個(gè)全功能的、具備商業(yè)品質(zhì)的平臺(tái)。由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目形成10?,F(xiàn)在,基于Web服務(wù)的運(yùn)用逐漸增多,而傳統(tǒng)的Html滿(mǎn)足不了現(xiàn)在的需要。因此須要一個(gè)交互式的Web,于是便誕生了各種的Web語(yǔ)言。如Asp,Jsp,Php等。當(dāng)然,這些語(yǔ)言與傳統(tǒng)的語(yǔ)言有著緊密的
25、不可分割的聯(lián)絡(luò),如Php基于C和C+語(yǔ)言,Jsp基于Java語(yǔ)言。Tomcat則是一個(gè)基于Jsp和Servlet的應(yīng)用平臺(tái)57。Tomcat是一個(gè)公開(kāi)的免費(fèi)性質(zhì)的Serlvet容器,是由他們的Jakarta項(xiàng)目中的一個(gè)中心項(xiàng)目,由Apache,Sun和其它的一些公司以及個(gè)人合作開(kāi)發(fā)而成的。5 詳細(xì)設(shè)計(jì)5.1 UDDI協(xié)議的數(shù)據(jù)結(jié)構(gòu) UDDI數(shù)據(jù)結(jié)構(gòu)共定義了六種數(shù)據(jù)結(jié)構(gòu)描述Web服務(wù)的相關(guān)信息,在這主要介紹四種:businessEnitity,tModel,businessService,bindingTemplate。無(wú)論是在公共域中還是在防火墻后面使用,UDDI注冊(cè)庫(kù)都提供了對(duì)Web服務(wù)進(jìn)行
26、分類(lèi),編目,管理的機(jī)制,從而可以發(fā)現(xiàn)和使用那些Web服務(wù)。無(wú)論是出于電子商務(wù)還是其他目的,無(wú)論是在設(shè)計(jì)的時(shí)候還是運(yùn)行時(shí),業(yè)務(wù)和提供者都能夠以標(biāo)準(zhǔn)的方式(諸如將查詢(xún)發(fā)送到注冊(cè)庫(kù))使用UDDI來(lái)表示W(wǎng)eb 服務(wù)的相關(guān)信息。在下列場(chǎng)合中,都可查詢(xún)到注冊(cè)庫(kù):發(fā)現(xiàn)Web服務(wù)實(shí)現(xiàn),這些實(shí)現(xiàn)都是基于公共的抽象接口的定義。發(fā)現(xiàn)Web服務(wù)提供者,這些Web服務(wù)提供者都是按照分類(lèi)模式或標(biāo)識(shí)系統(tǒng)進(jìn)行分類(lèi)的基于常規(guī)的關(guān)鍵字搜索服務(wù)。確定一個(gè)特定的Web服務(wù)所支持的安全性和傳輸協(xié)議將Web服務(wù)的技術(shù)信息存入到注冊(cè)庫(kù),并在運(yùn)行時(shí)進(jìn)行信息的更新。5.2 服務(wù)結(jié)構(gòu)信息的描述1.businessEnitity 包含元素,是的具
27、有唯一行的業(yè)務(wù)標(biāo)識(shí)符。的屬性值是UUID。當(dāng)?shù)谝淮蝿?chuàng)建,UDDI注冊(cè)庫(kù)自動(dòng)生成該UUID,并將其賦給.諸如、和這樣的實(shí)體也包含UUID鍵。基于一個(gè)或多個(gè)屬性,潛在的合作伙伴可以搜索UDDI,并確定匹配企業(yè)的位置。圖51 businessEntity元素2 businessService實(shí)體的服務(wù)鍵唯一地標(biāo)識(shí)了實(shí)體。屬于唯一地標(biāo)識(shí)了。是的提供者。當(dāng)注冊(cè)服務(wù)時(shí),運(yùn)營(yíng)者節(jié)點(diǎn)指派了服務(wù)鍵。每一個(gè)元素都包含在一個(gè)中。圖 52 BusinessService元素3. bindingTemplate 當(dāng)定義結(jié)構(gòu)時(shí),設(shè)計(jì)者聲明元素或元素,但不能同時(shí)聲明這兩個(gè)元素。元素是一個(gè)指向服務(wù)進(jìn)入點(diǎn)的屬性指針。換句話說(shuō),
28、元素提供了Web服務(wù)的精確地電子地址。有效的接入點(diǎn)值能夠包括URL、電子郵件、甚至一個(gè)電話號(hào)碼。有一個(gè)屬性,可幫助搜索與特定服務(wù)類(lèi)型相關(guān)的進(jìn)入點(diǎn)。圖53 BindingTemplate元素4.tModel 對(duì)于使用Web服務(wù)的應(yīng)用程序,可以將Web服務(wù)注冊(cè)為,從而提供了一種靈活的設(shè)計(jì)模式。例如,對(duì)于提供的訂購(gòu)單的Web服務(wù),可能有一個(gè)標(biāo)準(zhǔn)的接口。假設(shè)許多提供者可以創(chuàng)建實(shí)現(xiàn)了標(biāo)準(zhǔn)接口的服務(wù),則客戶(hù)端可以從UDDI注冊(cè)庫(kù)中搜索到提供這些服務(wù)的公司列表,并可以基于一定的標(biāo)準(zhǔn)(諸如成本、響應(yīng)時(shí)間等)選擇最合適的Web服務(wù)提供者。此外,假如一個(gè)客戶(hù)端使用了一個(gè)可選的服務(wù)提供者的訂購(gòu)單服務(wù),并發(fā)現(xiàn)由于某些
29、原因該服務(wù)不可用,則客戶(hù)端應(yīng)用可以動(dòng)態(tài)地在UDDI注冊(cè)庫(kù)中查詢(xún)實(shí)現(xiàn)了相同接口(例如,具有相同的)的另一家公司,并使用新的服務(wù)提供者的服務(wù)取代原先的服務(wù)。圖54 tModel元素5.2 部分功能模塊介紹1.對(duì)UDDI進(jìn)行部署import java.io.Serializable;import java.util.Vector;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public abstract class UDDIElement implements Serializable
30、public static String GENERIC = 2.0; public static String XMLNS = urn:uddi-org:api_v2; public static String XMLNS_PREFIX = uddiv2:; public static String SOAPNS = /soap/envelope/; public UDDIElement() public UDDIElement(Element el) throws UDDIException / Check that if an exception should be thrown if
31、(UDDIException.isValidElement(el) / Looks like a fault, process and throw Throw new UDDIexception (el, true); abstract public void save To XML(Element base); protected String getText(Node el) NodeList nl = el.getChildNodes(); String result = ; for (int i = 0; i nl.getLength(); i+) if (nl.item(i).get
32、NodeType()=Node.TEXT_NODE) result += nl.item(i).getNodeValue(); / Trim result, to remove whitespace. return result.trim(); public NodeList getChildElementsByTagName(Element el, String tag) / Do NOT traverse the tree. Only search within the immediate / child nodes. NodeList children = el.getChildNode
33、s(); Vector result = new Vector(); for (int i = 0; i 0) tmp = (Element)nl.item(0); faultCode = getText(tmp); nl = el.getElementsByTagName(faultstring); if (nl.getLength()=0) / Handle possible DOM level 2 response nl = el.getelements By TagNameNS (UDDIElement.SOAPNS, faultstring); if (nl!=null & nl.g
34、etLength()0) tmp = (Element)nl.item(0); faultString = getText(tmp); nl = el.getElementsByTagName(faultactor); if (nl.getLength()=0) / Handle possible DOM level 2 response nl = el.getElements By TagNameNS (UDDIElement.SOAPNS, faultactor); if (nl!=null & nl.getLength()0) tmp = (Element)nl.item(0); fau
35、ltActor = getText(tmp); nl = el.getElements By TagName(detail); if (nl.getLength()=0) / Handle possible DOM level 2 response nl = el.getElementsByTagNameNS(UDDIElement.SOAPNS, detail); / Try to create a disposition report if (nl!=null & nl.getLength()0) tmp = (Element)nl.item(0); detailElement = tmp
36、; if (createDispositionReport) try nl = el.getElementsByTagName(DispositionReport.UDDI_TAG); if (nl!=null & nl.getLength()0) tmp = (Element)nl.item(0); dispositionReport = new DispositionReport(tmp); catch (UDDIException e) / Ignore exception, were handling it already public static boolean isValidEl
37、ement(Element el) /Is this a SOAP Fault? return el.getNamespaceURI().equals(UDDIElement.SOAPNS) & el.getLocalName().equals(UDDI_TAG); / Getters public String getFaultCode() return faultCode; public String getFaultString() return faultString; public String getFaultActor() return faultActor; public St
38、ring getDetail() return detail; public Element getDetailElement() return detailElement; public DispositionReport getDispositionReport() return dispositionReport; protected String getText(Node el) NodeList nl = el.getChildNodes(); String result = ; for (int i = 0; i 0) org.uddi4j.response.Result resu
39、lt = (org.uddi4j.response.Result)dispositionReport.getResultVector().elementAt(0); if(result!=null) return result.getErrInfo().getText(); return getFaultString(); 6 UDDI發(fā)現(xiàn)UDDI API是一個(gè)接口,可以接受封裝在SOAP信封中的消息。所有的UDDI交互都使用請(qǐng)求/響應(yīng)模式。在請(qǐng)求/響應(yīng)模式中,每一個(gè)消息請(qǐng)求UDDI注冊(cè)庫(kù)的服務(wù),并生成一些類(lèi)型的響應(yīng)。UDDI規(guī)范支持兩類(lèi)消息交換:查詢(xún)和發(fā)布。能夠利用查詢(xún)API來(lái)尋找和讀出UD
40、DI注冊(cè)庫(kù)中的數(shù)據(jù),也可以利用發(fā)布API來(lái)添加、更新和刪除UDDI注冊(cè)庫(kù)中的數(shù)據(jù)。6.1 查詢(xún)API使用查詢(xún)接口,請(qǐng)求者可以從UDDI注冊(cè)庫(kù)中獲取信息。通過(guò)查詢(xún),企業(yè)可以發(fā)現(xiàn)滿(mǎn)足一定要求的業(yè)務(wù)、服務(wù)或綁定(技術(shù)特性)。對(duì)于特定的查詢(xún),將會(huì)返回與搜索要求相匹配的或信息。UDDI查詢(xún)API有兩類(lèi)使用模式:瀏覽和下鉆。譬如,開(kāi)發(fā)者能夠利用瀏覽模式(發(fā)現(xiàn)API調(diào)用)來(lái)取得滿(mǎn)足相對(duì)寬泛的查詢(xún)規(guī)則的進(jìn)入點(diǎn)、辦法或者技術(shù)特性,然后使用下鉆模式(獲取API調(diào)用)來(lái)取得更具體的功能部件。例如,在一個(gè)具體的類(lèi)別領(lǐng)域,可通過(guò)find_bussiness調(diào)用來(lái)定位各種行業(yè),然后通過(guò)get_bussinessDetai
41、l調(diào)用來(lái)獲取某一具體業(yè)務(wù)的更多的信息。通過(guò)瀏覽模式,在注冊(cè)庫(kù)中可以搜索滿(mǎn)足一定要求的數(shù)據(jù)結(jié)構(gòu)。在瀏覽模式中,可以使用下列5個(gè)操作:find_bussiness、find_relatedBusiness、find_service、find_binding和find_tModel。對(duì)于那些滿(mǎn)足搜索要求的一個(gè)或多個(gè)實(shí)體,通過(guò)find_business操作可以確定這些實(shí)體的位置。搜索要求可以包括類(lèi)別、標(biāo)識(shí)符、或等??梢酝ㄟ^(guò)業(yè)務(wù)名的一部分、業(yè)務(wù)標(biāo)識(shí)符、類(lèi)別標(biāo)識(shí)符、服務(wù)的技術(shù)指紋等進(jìn)行搜索。find_bussiness操作將會(huì)返回相關(guān)業(yè)務(wù)的一個(gè)簡(jiǎn)要列表,包括她們的鍵、名字、描述,以及的名字和相關(guān)的鍵。對(duì)于
42、與業(yè)務(wù)實(shí)體相關(guān)的注冊(cè),find_relatedBusiness操作可以用來(lái)確定與業(yè)務(wù)實(shí)體相關(guān)的的注冊(cè)信息的位置。對(duì)于所指定的企業(yè),find_relatedBussiness操作將返回與該企業(yè)具有可見(jiàn)的關(guān)系的所有業(yè)務(wù)的列表。按照元素,該操作可以在相關(guān)的所有業(yè)務(wù)集中進(jìn)一步搜索一個(gè)子集。find_service操作將可根據(jù)類(lèi)別、或者兩者進(jìn)行搜索,并返回與搜索條件相匹配的所有業(yè)務(wù)服務(wù)入口的列表。在注冊(cè)業(yè)務(wù)中,可使用find_binding操作來(lái)確定具體綁定的位置,該操作將返回滿(mǎn)足搜索條件的所有。綁定模板含有調(diào)用服務(wù)所需的信息。find_tModel操作將返回一個(gè)列表,這些將于請(qǐng)求消息中所列出的名字、標(biāo)
43、識(shí)符或類(lèi)別相匹配。find_tModel 操作將返回鍵的一個(gè)簡(jiǎn)要列表。 在下鉆的UDDI用法模式中,可以根據(jù)唯一標(biāo)識(shí)符來(lái)請(qǐng)求具體的數(shù)據(jù)結(jié)構(gòu)。根據(jù)請(qǐng)求消息中的唯一標(biāo)示符的數(shù)量不同,下鉆操作或get操作將返回一個(gè)或多個(gè)類(lèi)型的數(shù)據(jù)結(jié)構(gòu)。下鉆模式使用下列5種方法:get_BusinessDetail、get_BusinessDetailExt、get_serviceDetail、get_bindingDetail和get_tModelDetail。get_BusinessDetail方法根據(jù)唯一性的業(yè)務(wù)鍵來(lái)請(qǐng)求一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。對(duì)于一個(gè)或多個(gè)業(yè)務(wù)實(shí)體,該操作將返回整個(gè)對(duì)象。get_BusinessD
44、etailExt操作等同于get_BusinessDetailExt操作,但是假如原注冊(cè)庫(kù)不是一個(gè)運(yùn)營(yíng)者節(jié)點(diǎn),get_BusinessDetailExt操作將會(huì)返回一些額外的屬性。通過(guò)具有唯一性的服務(wù)鍵,get_serviceDetail操作可請(qǐng)求一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。對(duì)于一個(gè)特定的業(yè)務(wù)服務(wù),get_serviceDetail操作將返回完整的對(duì)象。通過(guò)具有唯一性的綁定鍵,get_bindingDetail操作可請(qǐng)求一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。get_bindingDetail操作返回運(yùn)行時(shí)調(diào)用業(yè)務(wù)服務(wù)的方法所需的綁定信息(結(jié)構(gòu))。最后,通過(guò)具有唯一性的鍵, get_tModelDetail操作可以請(qǐng)求一
45、個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu),并將返回有關(guān)的詳細(xì)信息。圖61 findBusiness類(lèi)圖62 find_Service類(lèi)圖63 find_RelatedBusinesses圖64 find_TModel類(lèi)6.2發(fā)布API經(jīng)過(guò)發(fā)布接口,企業(yè)可以把包含在UDDI注冊(cè)庫(kù)中的信息進(jìn)行存儲(chǔ)和更新。UDDI站點(diǎn)使用發(fā)布功能來(lái)管理提供給請(qǐng)求者的信息。通過(guò)發(fā)布API,應(yīng)用程序可以保存和刪除這幾種數(shù)據(jù)結(jié)構(gòu)、和。服務(wù)提供者和企業(yè)可以使用這些調(diào)用在UDDI注冊(cè)庫(kù)中發(fā)布(或取消發(fā)布)服務(wù)的有關(guān)消息。與查詢(xún)API不同,使用這些發(fā)布API訪問(wèn)注冊(cè)庫(kù)需要得到授權(quán)。 發(fā)布API支持四類(lèi)操作:授權(quán)、保存和獲取操作。通過(guò)授權(quán)操作,客戶(hù)端可
46、以獲得相應(yīng)的訪問(wèn)權(quán)限、獲取授權(quán)令牌、終止會(huì)話和他的授權(quán)令牌。通過(guò)保存操作,客戶(hù)端可以添加或更新基本的UDDI數(shù)據(jù)結(jié)構(gòu)。通過(guò)刪除操作,客戶(hù)端可以刪除基本的UDDI數(shù)據(jù)結(jié)構(gòu)。通過(guò)獲取操作,客戶(hù)端可以查看。有兩類(lèi)授權(quán)操作:get_authtoken和discard_authtoken。get_authtoken操作把客戶(hù)端錄入到注冊(cè)庫(kù)中。discard_authtoken阻止會(huì)話,并把注冊(cè)庫(kù)該客戶(hù)端刪除。為了開(kāi)始一個(gè)UDDI發(fā)布會(huì)話,客戶(hù)端必須首先和一個(gè)UDDI運(yùn)營(yíng)者建立一個(gè)HTTPS連接,然后發(fā)送一個(gè)get_authtoken消息,這個(gè)消息包含登錄憑證.當(dāng)客戶(hù)端完成為UDDI發(fā)布端點(diǎn)的訪問(wèn)后,客戶(hù)
47、端將會(huì)發(fā)送一個(gè)discard_authtoken 操作來(lái)終止他的會(huì)話。discard_authtoken 操作將命令注冊(cè)庫(kù)作廢授權(quán)令牌,從而將無(wú)法繼續(xù)使用該令牌進(jìn)行訪問(wèn)。假如沒(méi)有發(fā)送discard_authtoken,則會(huì)話將會(huì)超時(shí),授權(quán)令牌也將會(huì)作廢。通過(guò)保存操作,客戶(hù)端可以在UDDI中添加或更新信息。每一個(gè)主要的UDDI數(shù)據(jù)結(jié)構(gòu)都有一個(gè)相應(yīng)的保存操作,不過(guò)是例外。有一個(gè)專(zhuān)門(mén)的添加和設(shè)置操作,可以添加或更新一個(gè)或多個(gè)。通過(guò)刪除操作,客戶(hù)端可以在UDDI中刪除信息。每一個(gè)主要的UDDI數(shù)據(jù)結(jié)構(gòu)都有一個(gè)相應(yīng)的刪除操作,不過(guò)是例外。通過(guò)獲取操作,可以獲取客戶(hù)端所發(fā)布的數(shù)據(jù)結(jié)構(gòu)的概要數(shù)據(jù)。圖65 通
48、過(guò)get_AuthorToken授權(quán)操作發(fā)布服務(wù)圖66 通過(guò)Discard_AuthToken授權(quán)操作發(fā)布服務(wù)圖67發(fā)布服務(wù)6.3 總結(jié)經(jīng)過(guò)反復(fù)實(shí)驗(yàn)證明,所設(shè)計(jì)的基于UDDI的Web服務(wù)注冊(cè)中心的設(shè)計(jì)開(kāi)發(fā)研究可以滿(mǎn)足相關(guān)操作人員的需要。這個(gè)系統(tǒng)按照開(kāi)題報(bào)告及任務(wù)書(shū)的思想出發(fā),經(jīng)過(guò)問(wèn)題定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)等過(guò)程,對(duì)本系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程做了詳細(xì)的論述述,同時(shí),遵照結(jié)構(gòu)化設(shè)計(jì),對(duì)設(shè)計(jì)開(kāi)發(fā)步驟做了詳細(xì)的布局。本系統(tǒng)進(jìn)行了分析研究與實(shí)現(xiàn),闡述了該系統(tǒng)的設(shè)計(jì)需求和體系結(jié)構(gòu),針對(duì)該系統(tǒng)的研發(fā)說(shuō)明了相關(guān)技術(shù)開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具的選擇。該項(xiàng)目設(shè)計(jì)從需求分析實(shí)際要求出發(fā)并進(jìn)行開(kāi)發(fā)和應(yīng)用,由
49、于本人是第一次進(jìn)行項(xiàng)目設(shè)計(jì)的開(kāi)發(fā),經(jīng)驗(yàn)還不足,且能力有限,所以開(kāi)發(fā)出的設(shè)計(jì)還不夠完善,功能實(shí)現(xiàn)的還不齊全全,保密性還不夠高,這些都是以后在設(shè)計(jì)中需要注意和解決的問(wèn)題。7 結(jié)束語(yǔ)Web服務(wù)其實(shí)就是各種不同的自動(dòng)化服務(wù),這些自動(dòng)化的服務(wù)利用因特網(wǎng)(作為通信媒介)和基于互聯(lián)網(wǎng)的公開(kāi)準(zhǔn)則。一個(gè)Web服務(wù)即是一個(gè)可以通過(guò)網(wǎng)絡(luò)(例如因特網(wǎng))獲得的服務(wù),這個(gè)服務(wù)能可以實(shí)現(xiàn)任務(wù)、處理問(wèn)題,還可以代表用戶(hù)和應(yīng)用程序辦理事務(wù)。能夠經(jīng)發(fā)現(xiàn)和調(diào)用網(wǎng)絡(luò)上的服務(wù),要不將這些服務(wù)構(gòu)成新的應(yīng)用,來(lái)完成一些具體的任務(wù),而不需要完全重開(kāi)始構(gòu)建另一個(gè)的應(yīng)用。面向服務(wù)的計(jì)算方式進(jìn)一步擴(kuò)充了“軟件即為服務(wù)”的理念,符合業(yè)務(wù)流程即視為服
50、務(wù),從而能夠?qū)崟r(shí)構(gòu)建應(yīng)用,而且所有的開(kāi)發(fā)者無(wú)論在哪都能夠重復(fù)使用這些服務(wù)。服務(wù)是自己描述的自描述、平臺(tái)中立的計(jì)算元素,能夠?qū)崿F(xiàn)松耦合的分布式應(yīng)用并且迅速、成本低、很容易組合。在UDDI中,分類(lèi)法和標(biāo)識(shí)符具有重要的作用。UDDI使得新的業(yè)務(wù)標(biāo)識(shí)符和分類(lèi)法的注冊(cè)更容易。第2版UDDI規(guī)范可以可以提供經(jīng)過(guò)驗(yàn)證的分類(lèi)和認(rèn)證分類(lèi),因此UDDI運(yùn)營(yíng)者將可使用和管理具有驗(yàn)證的分類(lèi)。在第2版UDDI中,注冊(cè)者可以使用兩種分類(lèi)法對(duì)業(yè)務(wù)、服務(wù)和服務(wù)描述進(jìn)行分類(lèi),有已核查的分類(lèi)和沒(méi)有核查的分類(lèi),以及認(rèn)證分類(lèi)。分類(lèi)系統(tǒng)或標(biāo)識(shí)符系統(tǒng)的提供者能夠在UDDI中發(fā)布分類(lèi)或業(yè)務(wù)標(biāo)識(shí)符,并允許對(duì)它進(jìn)行不加限制的引用,也可進(jìn)行驗(yàn)證
51、引用。允許不加限制引用的分類(lèi)系統(tǒng)和標(biāo)識(shí)符系統(tǒng)稱(chēng)為沒(méi)有核查的分類(lèi)。并且既可以作為標(biāo)識(shí)符進(jìn)行分類(lèi),也可以作為分類(lèi)法進(jìn)行分類(lèi)。反之,引用需要驗(yàn)證的分類(lèi)系統(tǒng)或標(biāo)識(shí)符系統(tǒng)稱(chēng)為可核查的系統(tǒng)。NAICS、UNSPC和ISO3166都是可核查的分類(lèi),這意味著UDDI注冊(cè)庫(kù)必須驗(yàn)證客戶(hù)端所提交的值。第2版UDDI支持第三方創(chuàng)建新的可核查的分類(lèi)系統(tǒng)或標(biāo)識(shí)符系統(tǒng)。注冊(cè)一個(gè)可驗(yàn)證的系統(tǒng)將涉及兩個(gè)當(dāng)事方:1)提供分類(lèi)系統(tǒng)或標(biāo)識(shí)符系統(tǒng)的企業(yè);2)發(fā)布分類(lèi)法的的UDDI注冊(cè)運(yùn)營(yíng)者。附錄資料:WebGIS超詳細(xì)版復(fù)習(xí)資料WebGIS復(fù)習(xí)資料第一章 緒論WebGIS的基本概念(熟悉GIS+WWW=Web GISWeb GIS是
52、指基于Internet平臺(tái)進(jìn)行信息發(fā)布、數(shù)據(jù)共享、交流協(xié)作Web GIS由多主機(jī)、多數(shù)據(jù)庫(kù)、多終端,通過(guò)Internet/Intranet連接組成,具有C/S結(jié)構(gòu),服務(wù)器端向客戶(hù)端提供信息和服務(wù),客戶(hù)端具有獲得各種空間信息和應(yīng)用的功能Web GIS的特點(diǎn)Web GIS的邏輯結(jié)構(gòu)Web瀏覽器:獲取網(wǎng)上各種地理信息Web GIS的信息代理:提供數(shù)據(jù)訪問(wèn)接口Web GIS服務(wù)器:提供地理信息服務(wù)傳統(tǒng)GIS的問(wèn)題文件服務(wù)器結(jié)構(gòu)的處理能力完全依賴(lài)于客戶(hù)端客戶(hù)端的任何操作復(fù)雜,多版本,數(shù)據(jù)完整性難以控制成本高桌面系統(tǒng)操作復(fù)雜Web GIS的優(yōu)點(diǎn)Web GIS是集成的全球化的客戶(hù)/服務(wù)器網(wǎng)絡(luò)系統(tǒng)Web GI
53、S是交互系統(tǒng),用戶(hù)可在Internet上操作GIS地圖和數(shù)據(jù),使用Web瀏覽器進(jìn)行Zoom、Pan、Query、Label等,甚至空間查詢(xún)Web GIS是分布式系統(tǒng),GIS數(shù)據(jù)和分析工具是獨(dú)立的組件和模塊,可部署在不同的計(jì)算機(jī)Web GIS是動(dòng)態(tài)系統(tǒng),可隨時(shí)更新Web GIS是跨平臺(tái)系統(tǒng),對(duì)任何計(jì)算機(jī)和操作系統(tǒng)都沒(méi)有限制Web GIS能夠訪問(wèn)異構(gòu)地理數(shù)據(jù)Web GIS是圖形化的超媒體信息系統(tǒng),通過(guò)超媒體熱鏈接(或地圖上的熱點(diǎn))可以連接到不同的地圖頁(yè)面應(yīng)用層面空間數(shù)據(jù)發(fā)布:能夠以圖形方式顯示空間數(shù)據(jù),較之單純的FTP方式,WebGIS使用戶(hù)更容易找到需要的數(shù)據(jù);空間查詢(xún)檢索:利用瀏覽器提供的交互
54、能力,進(jìn)行圖形及屬性數(shù)據(jù)庫(kù)的查詢(xún)檢索;空間模型服務(wù):在服務(wù)器端提供各種空間模型的實(shí)現(xiàn)方法,接受用戶(hù)通過(guò)瀏覽器輸入的模型參數(shù)后,將計(jì)算結(jié)果返回。Web資源的組織:在Web上存在著大量的信息,這些信息多數(shù)具有空間分布特征,如分銷(xiāo)商數(shù)據(jù)往往有其所在位置屬性,利用地圖對(duì)這些信息進(jìn)行組織和管理,并為用戶(hù)提供基于空間的檢索服務(wù),無(wú)疑也可以通過(guò)WebGIS實(shí)現(xiàn)。幾種商業(yè)化Web GIS平臺(tái)(了解)MapInfo公司的MapXtremeESRI公司的ArcIMSAdobe公司的 MapGuide超圖公司的SuperMap IS中地公司的 MAPGIS IMS計(jì)算機(jī)網(wǎng)絡(luò)基本原理計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展(了解)第一階段:
55、以主機(jī)為中心的聯(lián)機(jī)終端系統(tǒng)。第二階段:以通信子網(wǎng)為中心的主機(jī)互聯(lián) 通信子網(wǎng)和資源子網(wǎng)的分離第三階段:開(kāi)放化標(biāo)準(zhǔn)化網(wǎng)絡(luò) 開(kāi)放系統(tǒng)互聯(lián)參考模型協(xié)議、TCP/IP協(xié)議第四階段:寬帶綜合業(yè)務(wù)數(shù)字網(wǎng) 綜合、高速、智能計(jì)算機(jī)網(wǎng)絡(luò)的分類(lèi)(熟悉)按地域大小局域網(wǎng) 廣域網(wǎng) 城域網(wǎng)按通信媒體有線網(wǎng) 無(wú)線網(wǎng) 有線無(wú)線混合網(wǎng)按數(shù)據(jù)交換方式分線路交換方式 報(bào)文交換方式 分組交換網(wǎng)絡(luò)按使用范圍分公用網(wǎng) 專(zhuān)用網(wǎng)OSI開(kāi)放系統(tǒng)參考模型(了解)幾種基本網(wǎng)絡(luò)設(shè)備中繼器(轉(zhuǎn)發(fā)器)(物理層)網(wǎng)橋(網(wǎng)能夠絡(luò)分段、局域網(wǎng)互聯(lián))(數(shù)據(jù)鏈路層)路由器(網(wǎng)絡(luò)連接、路徑選擇)(網(wǎng)絡(luò)層)網(wǎng)關(guān)(不相同的網(wǎng)絡(luò)互聯(lián)時(shí)的設(shè)備)(高層)(協(xié)議網(wǎng)關(guān)、應(yīng)用網(wǎng)關(guān)
56、、安全網(wǎng)關(guān))TCP/IP協(xié)議作為當(dāng)前公認(rèn)的工業(yè)標(biāo)準(zhǔn),TCP/IP協(xié)議的特點(diǎn)開(kāi)放性,獨(dú)立于硬件,免費(fèi)統(tǒng)一分配網(wǎng)絡(luò)地址高層協(xié)議標(biāo)準(zhǔn)化IP地址原理IPV4IP地址=網(wǎng)絡(luò)ID+主機(jī)IDIP地址分類(lèi)A類(lèi) 0開(kāi)頭 后24位為主機(jī)IDB類(lèi) 10開(kāi)頭 后16位為主機(jī)IDC類(lèi) 110開(kāi)頭 后8位為主機(jī)IDD類(lèi)地址 1110開(kāi)頭 多重廣播E類(lèi)地址 11110開(kāi)頭 實(shí)驗(yàn)性地址 域名系統(tǒng)(Domain Name System,DNS) 是Internet上解決網(wǎng)上機(jī)器命名的一種系統(tǒng)。就像拜訪朋友要先知道別人家怎么走一樣,Internet上當(dāng)一臺(tái)主機(jī)要訪問(wèn)另外一臺(tái)主機(jī)時(shí),必須首先獲知其地址,TCP/IP中的IP地址是由
57、四段以“.”分開(kāi)的數(shù)字組成,記起來(lái)總是不如名字那么方便,所以,就采用了域名系統(tǒng)來(lái)管理名字和IP的對(duì)應(yīng)關(guān)系。組織模式下的頂級(jí)域名表頂級(jí)域名網(wǎng)絡(luò)屬性頂級(jí)域名網(wǎng)絡(luò)屬性頂級(jí)域名網(wǎng)絡(luò)屬性com盈利商業(yè)實(shí)體mil軍事機(jī)構(gòu)或組織store商場(chǎng)edu教育機(jī)構(gòu)或設(shè)施net網(wǎng)絡(luò)資源或組織wb有關(guān)實(shí)體gov非軍事政府或組織org非盈利組織機(jī)構(gòu)arts文化娛樂(lè)int國(guó)際性機(jī)構(gòu)firm商業(yè)或公司arc消遣性?shī)蕵?lè)主機(jī)的IP地址和域名的關(guān)系兩者是等價(jià)的相當(dāng)于身份證號(hào)碼和人名但域名具有排他性域名與IP地址被存儲(chǔ)在DNS(域名服務(wù)器)中。地址和域名的解析域名解析器 客戶(hù)端程序,負(fù)責(zé)查詢(xún)域名服務(wù)器 主域名服務(wù)器 轉(zhuǎn)發(fā)域名服務(wù)器關(guān)
58、于Web的一些基本概念WWWWorld Wide WebWeb由一系列鏈接連接起來(lái)Tim Berners Lee WWW的主要特點(diǎn)(熟悉)用戶(hù)在全世界范圍內(nèi)查詢(xún)、瀏覽最新信息支持超文本和超媒體信息服務(wù)使用瀏覽器作為統(tǒng)一的用戶(hù)接口由資源地址域名和Web站點(diǎn)構(gòu)成可以將Web站點(diǎn)互相連接,以提高信息查找和漫游訪問(wèn)服務(wù)能使用戶(hù)與信息發(fā)布者或其他用戶(hù)交流信息WWW的工作模式(熟悉)Web瀏覽器/Web服務(wù)器在瀏覽器中輸入Web地址,向某個(gè)服務(wù)發(fā)出HTTP請(qǐng)求Web服務(wù)器收到請(qǐng)求后,在HTML文檔中找到特定的頁(yè)面,將請(qǐng)求返回給用戶(hù)瀏覽器執(zhí)行收到的HTML文檔并顯示內(nèi)容HTTP協(xié)議(熟悉)HTTP協(xié)議:基于
59、Cilent/Server的無(wú)狀態(tài)和無(wú)連接協(xié)議簡(jiǎn)單靈活:get/post/head元信息:可以傳輸任何類(lèi)型的資料無(wú)連接:建立在TCP協(xié)議之上,每次連接只處理一個(gè)請(qǐng)求無(wú)狀態(tài):雙刃劍統(tǒng)一資源定位符 (掌握)URL“協(xié)議:”+“/”+“主機(jī)域名/IP地址”+“目錄路徑”協(xié)議:HTTP/FTP/GOPHER/NEW/TELNET/Wails/File/TUNDER/Web應(yīng)用開(kāi)發(fā)技術(shù)介紹VBSCRIPTJAVASCRIPT動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)CGIASPJSPDHTMLPHP第三章 Web GIS基本原理1.WebGIS概述1.1 Web GIS的發(fā)展 1993Xerox Map Server,第一個(gè)分布式地
60、理信息系統(tǒng)應(yīng)用原型系統(tǒng) 1993.11 挪威Tromso大學(xué),第一個(gè)地圖Web服務(wù)器 1994.1 虛擬旅行者 1994 大發(fā)展 NSDI;UCSB; 1995 地圖引擎的出現(xiàn)1996年 主要地理信息廠商介入1997年 DGI和Web GIS正式出現(xiàn)1998年 基于JAVA的WebGIS出現(xiàn)1999年 組件式WebGIS開(kāi)始研究.2005年 瓦片式地圖服務(wù)出現(xiàn)(GoogleMap)2006Bing/Baidu/MapABC/WPS/WMS1.2 Web GIS的信息內(nèi)容構(gòu)建信息內(nèi)容涉及到信息組織、信息交互、信息表達(dá)、綜合分析、數(shù)據(jù)安全和開(kāi)放性信息組織:如何向客戶(hù)端瀏覽器用戶(hù)以最佳方式提供需要的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢測(cè)合同范本模板
- 二零二五年度智慧社區(qū)房屋租賃及智能化服務(wù)合同
- 二零二五年度股權(quán)無(wú)償轉(zhuǎn)讓與公司數(shù)字化轉(zhuǎn)型合作協(xié)議
- 2025年林業(yè)山場(chǎng)租賃承包經(jīng)營(yíng)協(xié)議
- 二零二五年度涂料行業(yè)產(chǎn)業(yè)鏈供應(yīng)鏈服務(wù)合同
- 二零二五年度解除合同書(shū)模板:智能交通系統(tǒng)合作終止協(xié)議
- 2025年度玻璃隔斷安裝與室內(nèi)空間利用效率合同
- 二零二五年度公司章程修訂律師代理解除合同
- 2025年度現(xiàn)代農(nóng)業(yè)科技園企業(yè)經(jīng)營(yíng)合同
- 安明騎行賽事裁判員及志愿者選拔協(xié)議書(shū)
- GB/T 6478-2001冷鐓和冷擠壓用鋼
- 2023年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- DG-TJ 08-2198-2019 裝配式建筑評(píng)價(jià)標(biāo)準(zhǔn) 附條文說(shuō)明
- GB/T 39242-2020無(wú)損檢測(cè)超聲檢測(cè)靈敏度和范圍設(shè)定
- GB/T 32271-2015電梯能量回饋裝置
- GB/T 18775-2009電梯、自動(dòng)扶梯和自動(dòng)人行道維修規(guī)范
- 皮膚性病學(xué)-皮膚性病的治療
- 電氣接地施工規(guī)范
- 《社會(huì)歷史的決定性基礎(chǔ)》課件2 【知識(shí)建構(gòu)+備課精研】統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 新疆主要造林樹(shù)種苗木質(zhì)量分級(jí)
- 基站巡檢內(nèi)容
評(píng)論
0/150
提交評(píng)論