<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    樂樂隨筆

    綠葉

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      14 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks
    當前,WebService是一個熱門話題。但是,WebService究竟是什么?什么情況下應該用WebService?什么情況下不應該用WebService?是需要我們正確認識的。
      Web Services是由企業(yè)發(fā)布的完成其特定商務需求的在線應用服務,其他公司或應用軟件能夠通過Internet來訪問并使用這項在線服務,它是一種構建應用程序的普遍模型,可以在任何支持網(wǎng)絡通信的操作系統(tǒng)中實施運行;它是一種新的web應用程序分支,是自包含、自描述、模塊化的應用,可以發(fā)布、定位、通過web調(diào)用。Web Service是一個應用組件,它邏輯性的為其他應用程序提供數(shù)據(jù)與服務.各應用程序通過網(wǎng)絡協(xié)議和規(guī)定的一些標準數(shù)據(jù)格式(Http,XML,Soap)來訪問Web Service,通過Web Service內(nèi)部執(zhí)行得到所需結果.Web Service可以執(zhí)行從簡單的請求到復雜商務處理的任何功能。一旦部署以后,其他Web Service應用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務。
      在構建和使用Web Service時,主要用到以下幾個關鍵的技術和規(guī)則:
      1.XML:描述數(shù)據(jù)的標準方法.
      2.SOAP:表示信息交換的協(xié)議.
      3.WSDL:Web服務描述語言.
      4.UDDI:找到服務驅(qū)動器的的方法;
      實際上,WebService的主要目標是跨平臺的可互操作性。為了達到這一目標,WebService完全基于XML(可擴展標記語言)、XSD(XMLSchema)等獨立于平臺、獨立于軟件供應商的標準,是創(chuàng)建可互操作的、分布式應用程序的新平臺。由此可以看出,在以下三種情況下,使用WebService會帶來極大的好處。
      長項一:跨防火墻的通信
      如果應用程序有成千上萬的用戶,而且分布在世界各地,那么客戶端和服務器之間的通信將是一個棘手的問題。因為客戶端和服務器之間通常會有防火墻或者代理服務器。在這種情況下,使用DCOM就不是那么簡單,通常也不便于把客戶端程序發(fā)布到數(shù)量如此龐大的每一個用戶手中。傳統(tǒng)的做法是,選擇用瀏覽器作為客戶端,寫下一大堆ASP頁面,把應用程序的中間層暴露給最終用戶。這樣做的結果是開發(fā)難度大,程序很難維護。
      圖1通過WebService集成應用程序
      舉個例子,在應用程序里加入一個新頁面,必須先建立好用戶界面(Web頁面),并在這個頁面后面,包含相應商業(yè)邏輯的中間層組件,還要再建立至少一個ASP頁面,用來接受用戶輸入的信息,調(diào)用中間層組件,把結果格式化為HTML形式,最后還要把 “結果頁”送回瀏覽器。要是客戶端代碼不再如此依賴于HTML表單,客戶端的編程就簡單多了。
      如果中間層組件換成WebService的話,就可以從用戶界面直接調(diào)用中間層組件,從而省掉建立ASP頁面的那一步。要調(diào)用WebService,可以直接使用MicrosoftSOAPToolkit或.NET這樣的SOAP客戶端,也可以使用自己開發(fā)的SOAP客戶端,然后把它和應用程序連接起來。不僅縮短了開發(fā)周期,還減少了代碼復雜度,并能夠增強應用程序的可維護性。同時,應用程序也不再需要在每次調(diào)用中間層組件時,都跳轉到相應的“結果頁”。
      從經(jīng)驗來看,在一個用戶界面和中間層有較多交互的應用程序中,使用WebService這種結構,可以節(jié)省花在用戶界面編程上20%的開發(fā)時間。另外,這樣一個由WebService組成的中間層,完全可以在應用程序集成或其它場合下重用。最后,通過WebService把應用程序的邏輯和數(shù)據(jù)“暴露”出來,還可以讓其它平臺上的客戶重用這些應用程序。
      長項二:應用程序集成
      企業(yè)級的應用程序開發(fā)者都知道,企業(yè)里經(jīng)常都要把用不同語言寫成的、在不同平臺上運行的各種程序集成起來,而這種集成將花費很大的開發(fā)力量。應用程序經(jīng)常需要從運行在IBM主機上的程序中獲取數(shù)據(jù);或者把數(shù)據(jù)發(fā)送到主機或UNIX應用程序中去。即使在同一個平臺上,不同軟件廠商生產(chǎn)的各種軟件也常常需要集成起來。通過WebService,應用程序可以用標準的方法把功能和數(shù)據(jù)“暴露”出來,供其它應用程序使用。
      例如,有一個訂單登錄程序,用于登錄從客戶來的新訂單,包括客戶信息、發(fā)貨地址、數(shù)量、價格和付款方式等內(nèi)容;還有一個訂單執(zhí)行程序,用于實際貨物發(fā)送的管理。這兩個程序來自不同軟件廠商。一份新訂單進來之后,訂單登錄程序需要通知訂單執(zhí)行程序發(fā)送貨物。通過在訂單執(zhí)行程序上面增加一層WebService,訂單執(zhí)行程序可以把“AddOrder”函數(shù)“暴露”出來。這樣,每當有新訂單到來時,訂單登錄程序就可以調(diào)用這個函數(shù)來發(fā)送貨物了。
      長項三:B2B的集成
      用WebService集成應用程序,可以使公司內(nèi)部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎么樣呢?跨公司的商務交易集成通常叫做B2B集成。
      WebService是B2B集成成功的關鍵。通過WebService,公司可以把關鍵的商務應用“暴露”給指定的供應商和客戶。例如,把電子下單系統(tǒng)和電子發(fā)票系統(tǒng)“暴露”出來,客戶就可以以電子的方式發(fā)送訂單,供應商則可以以電子的方式發(fā)送原料采購發(fā)票。當然,這并不是一個新的概念,EDI(電子文檔交換)早就是這樣了。但是,WebService的實現(xiàn)要比EDI簡單得多,而且 WebService運行在Internet上,在世界任何地方都可輕易實現(xiàn),其運行成本就相對較低。不過,WebService并不像EDI那樣,是文檔交換或B2B集成的完整解決方案。WebService只是B2B集成的一個關鍵部分,還需要許多其它的部分才能實現(xiàn)集成。
      用WebService來實現(xiàn)B2B集成的最大好處在于可以輕易實現(xiàn)互操作性。只要把商務邏輯 “暴露”出來,成為WebService,就可以讓任何指定的合作伙伴調(diào)用這些商務邏輯,而不管他們的系統(tǒng)在什么平臺上運行,使用什么開發(fā)語言。這樣就大大減少了花在B2B集成上的時間和成本,讓許多原本無法承受EDI的中小企業(yè)也能實現(xiàn)B2B集成。
      長項四:軟件和數(shù)據(jù)重用
      軟件重用是一個很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是源代碼模塊或者類一級的重用,另一種形式是二進制形式的組件重用。
      圖2用WebService集成各種應用中的功能,為用戶提供一個統(tǒng)一的界面
      當前,像表格控件或用戶界面控件這樣的可重用軟件組件,在市場上都占有很大的份額。但這類軟件的重用有一個很大的限制,就是重用僅限于代碼,數(shù)據(jù)不能重用。原因在于,發(fā)布組件甚至源代碼都比較容易,但要發(fā)布數(shù)據(jù)就沒那么容易,除非是不會經(jīng)常變化的靜態(tài)數(shù)據(jù)。
      WebService在允許重用代碼的同時,可以重用代碼背后的數(shù)據(jù)。使用 WebService,再也不必像以前那樣,要先從第三方購買、安裝軟件組件,再從應用程序中調(diào)用這些組件;只需要直接調(diào)用遠端的WebService就可以了。舉個例子,要在應用程序中確認用戶輸入的地址,只需把這個地址直接發(fā)送給相應的WebService,這個WebService就會幫你查閱街道地址、城市、省區(qū)和郵政編碼等信息,確認這個地址是否在相應的郵政編碼區(qū)域。WebService的提供商可以按時間或使用次數(shù)來對這項服務進行收費。這樣的服務要通過組件重用來實現(xiàn)是不可能的,那樣的話你必須下載并安裝好包含街道地址、城市、省區(qū)和郵政編碼等信息的數(shù)據(jù)庫,而且這個數(shù)據(jù)庫還是不能實時更新的。
      另一種軟件重用的情況是,把好幾個應用程序的功能集成起來。例如,要建立一個局域網(wǎng)上的門戶站點應用,讓用戶既可以查詢聯(lián)邦快遞包裹,查看股市行情,又可以管理自己的日程安排,還可以在線購買電影票。現(xiàn)在Web上有很多應用程序供應商,都在其應用中實現(xiàn)了這些功能。一旦他們把這些功能都通過WebService“暴露”出來,就可以非常容易地把所有這些功能都集成到你的門戶站點中,為用戶提供一個統(tǒng)一的、友好的界面。
      將來,許多應用程序都會利用WebService,把當前基于組件的應用程序結構擴展為組件 /WebService的混合結構,可以在應用程序中使用第三方的WebService提供的功能,也可以把自己的應用程序功能通過WebService 提供給別人。兩種情況下,都可以重用代碼和代碼背后的數(shù)據(jù)。
      從以上論述可以看出,WebService在通過Web進行互操作或遠程調(diào)用的時候是最有用的。不過,也有一些情況,WebService根本不能帶來任何好處。
      短處一:單機應用程序
      目前,企業(yè)和個人還使用著很多桌面應用程序。其中一些只需要與本機上的其它程序通信。在這種情況下,最好就不要用WebService,只要用本地的API就可以了。COM非常適合于在這種情況下工作,因為它既小又快。運行在同一臺服務器上的服務器軟件也是這樣。最好直接用COM或其它本地的API來進行應用程序間的調(diào)用。當然WebService也能用在這些場合,但那樣不僅消耗太大,而且不會帶來任何好處。
      短處二:局域網(wǎng)的同構應用程序
      在許多應用中,所有的程序都是用VB或VC開發(fā)的,都在Windows平臺下使用COM,都運行在同一個局域網(wǎng)上。例如,有兩個服務器應用程序需要相互通信,或者有一個Win32或WinForm的客戶程序要連接局域網(wǎng)上另一個服務器的程序。在這些程序里,使用DCOM會比SOAP/HTTP有效得多。與此相類似,如果一個.NET序要連接到局域網(wǎng)上的另一個.NET程序,應該使用.NETremoting。有趣的是,在.NETremoting中,也可以指定使用SOAP/HTTP來進行WebService調(diào)用。不過最好還是直接通過TCP進行RPC調(diào)用,那樣會有效得多。
      總之,只要從應用程序結構的角度看,有別的方法比WebService更有效、更可行,那就不要用WebService
    posted on 2010-07-23 11:38 綠葉 閱讀(246) 評論(0)  編輯  收藏 所屬分類: 實戰(zhàn)之WebServices

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲男人天堂2022| 亚洲欧洲日本在线观看| 久青草视频在线观看免费 | 97视频免费在线| 亚洲色图.com| 成年黄网站色大免费全看| 亚洲日本国产精华液| 最近中文字幕完整免费视频ww| 亚洲2022国产成人精品无码区| 免费观看久久精彩视频| 亚洲av无码成h人动漫无遮挡| 久久大香香蕉国产免费网站| 亚洲成人一级电影| 国产在线a免费观看| 在线观看亚洲AV日韩A∨| 免费在线观看亚洲| 国产成人精品免费视频大全| 亚洲精品乱码久久久久久中文字幕| 日韩av无码免费播放| 久久国产亚洲高清观看| 女人被男人躁的女爽免费视频| 激情无码亚洲一区二区三区| 国产亚洲精品线观看动态图| 久久久99精品免费观看| 亚洲AV无码成人专区| 免费一级黄色毛片| 免费久久人人爽人人爽av| 亚洲人成免费电影| mm1313亚洲国产精品美女| 91免费福利精品国产| 亚洲二区在线视频| 免费真实播放国产乱子伦| 成全动漫视频在线观看免费高清版下载| 老司机亚洲精品影院无码| 日本v片免费一区二区三区 | 国产永久免费高清在线| 亚洲av成人一区二区三区| 亚洲 综合 国产 欧洲 丝袜| 三年片在线观看免费观看大全动漫| 亚洲成a人片在线观看精品| 亚洲人成网站18禁止一区|