由Web Service應用看信息的一站式服務

    當初玩開心網的時候,每天要種菜、收菜、偷菜,要不停的換車位,耗費大量的時間,在同學那裏看到了開心網的外掛,可以自動進行開心網的操作,真是方便多了。但這種外掛不是合法的,其實是用桌面程序模擬了人和瀏覽器,開發這種程序的難點是獲取來回傳送的數據格式,當然數據格式開心網不會對外提供,這就需要開發人員破解。安裝一個Sniffer或者Wireshark(Ethereal)等網絡抓包工具,在瀏覽器中進行開心網的偷菜等操作,就可以在抓包工具中截獲來回傳送的html文本,進行分析之後,可以獲得數據格式,然後在程序中模擬http客戶端,以破解的數據格式發送和接受數據,就可以開發出類似開心網的外掛了。
    如果是說開心網的外掛式是法的,但也有合法的例子。今天安裝了谷歌金山詞霸2.0正式版,發現在查詞的結果裏面有谷歌的搜索內容(如下圖)。經過測試發現,當查一個詞時,軟件還訪問了谷歌字典(http://www.google.cn/dictionary)和谷歌金山詞霸漢語站(http://g.hanyu.iciba.com)等站點,數據格式有xml和html等,把這些從網絡獲取的信息也顯示在詞霸查詢結果裏。這是金山軟件與Google(谷歌)聯合開發的,訪問了web上的信息,當然這種訪問方式是合法的。
圖1谷歌金山詞霸2.0正式版的搜索結果中含有谷歌搜索的內容
    正是谷歌金山詞霸這樣把各處信息集中到一處的一站式服務方式,極大了方便了軟件的使用者,當然也提高了用戶的滿意度,使得更多的人來使用軟件,從而軟件提供商也獲得豐厚的利潤。
    對於越來越挑剔的用戶,信息融合是必然的趨勢。從以前的數據倉庫技術,到Web Service技術,都在盡力把分散的信息集中起來,爲用戶提供一站式的信息服務。而信息的發佈者則可以從集成的程序裏擴大自己的影響力,例如上面的谷歌金山詞霸,通過這個軟件使谷歌爲更多的人所使用,其影響力也就變得更大了。在這種趨勢下,企圖把自己封閉起來夜郎自大式的做法只會被拋棄,於是越來越多的網站提供編程接口,叫做OpenAPI,方便程序的開發者通過這些API把網站提供的信息集成進去。如果說網站以前只能通過瀏覽器來擴大自己的影響力,而現在可以通過桌面應用程序、手機應用程序等方式來擴大影響力。
    既然我們的目的是信息的融合,從技術上能夠達到目的就可以了,從軟件裏面訪問html和web service對終端用戶來說又有什麼區別呢?所有基於web的東西都可以叫做web service,這是一本書裏面所說的。實際真的是這樣,難道程序只能處理web service提供的信息?用程序解析html不是什麼難題,如上所述,開心網的外掛可以開發出來,其他類似處理html的程序也一樣可以開發出來。
    畢竟處理html文本不如xml、json等格式的信息直觀,出於通用性的考慮,以SOAP Web Service和REST Web Service的方式發佈服務還是最佳選擇。Web Service的應用也越來越多了,例如http://www.webxml.cn提供了天氣預報、獲取ip地址所在城市的web服務(不允許商業使用),通過這兩個服務就可以提供與QQ裏的天氣預報類似的功能。而且很多網站的OpenAPI也是以Web Service的方式提供的。
    雖然Web Service的應用在蓬勃發展,但Web Service的客戶端程序卻要承擔一定的風險,如果遇到Web Service不可用的情況,就不能提供相應的功能了。例如安裝谷歌金山詞霸所在的計算機沒有連網,那就無法使用Google搜索的結果了;如果發佈天氣預報的Web服務暫時不可用,軟件上的天氣預報就無法提供了。但這些功能對用戶來說都是無關大局的,軟件沒有這些功能可以照常使用。
     Web Service不可用的情況,對於業務應用系統來說就不是這麼隨意的了。例如遇到有人攻擊DNS服務器造成大面積網絡癱瘓的時候,Web Service就不可用了,從而造成系統的功能不可用,就要暫停對應的業務,這造成的影響和損失可能是巨大的。這也就是企業對上SOA系統謹慎的原因。
    大量使用Web服務的程序可能是脆弱的,對企業應用來說有一定的風險,但對個人用戶來說不是什麼大不了的事,服務不可用,可以等等再用嘛。隨着大量Web Service的發佈,開發新的軟件時就可以集成已經存在的服務了,而不是重新開發所有的功能。也許在一個軟件裏面能夠把我們所需要的所有功能集成在裏面,可以瀏覽新聞、查看天氣預報、收發電子郵件、和QQ好友聊天、去開心網偷菜、去淘寶買東西等等,而不需要打開多個軟件和多個網站了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章