关于webservice的经典理解
時不時地還會去csdn的社區看看,已經不止一次了,發現那里的很多問題是因為對web services的基本概念還不清楚。看到到別人用,自己也來用,走著走著就把自己領入了死胡同。
下面是一些個人的看法,歡迎討論。
典型的幾個:
1.web services怎么主動把信息反饋回客戶端?(已經不止一次有人問了)
問這個問題可能多數對services的概念不清楚,web services是service的provider,既然是provider,那概念上就應該客戶向web services請求服務,倒過來是不行的。有人會說“推”技術,其實推也是客戶向services請求的,只不過變成了自動的輪詢。想想,server連client開不開機都不知道,怎么推?客戶開機了,向服務供應商詢問“昨天12點以來有什么新東西?”provider才會向客戶端“推”。
從數據流動的方面想,數據流動總有一個發起者和接收者,如果發起者是web services,那么接收者是誰呢?有人以為是那個使用web service的應用程序,可如果那個程序被用戶關掉了呢?或者因為什么原因ip地址改變了呢(撥號上網,DSL,DHCP環境都有可能)?在這樣的情況下,services的反饋信息就沒有接收者了。連基本的連接都建立不了,更不要說傳遞信息了。
還有一個更基本的概念,就是web連接的無態性(stateless),就是每次web連接都是獨立的。http的連接每一次請求都和前后文無關,這是優點,當然在某些情況下也是缺點。理解了這個,也就知道了web services是不會向客戶端主動發送了反饋了。因為它根本不知道剛才的客戶端是誰,即便他什么都沒有改變。
2.怎么給web services加個界面?
既然是service,就沒有界面的,這應該是老外當初起名時候的用意,它提供的是service,不是帶界面的應用程序。試想老外們當初想出這個主意來,就是想把functionality和interface分開,所以才有了service這一說,而且通過xml和http,使這種services更具廣泛性。現在又想把它和在一起?這種看法是完全違背了web services初衷的。
說來說去,還是一句話,概念不清。現在很多技術的門檻是很低,但這是在我們概念清楚的前提下的。不然把自己走進死胡同的可能性是很大的。
?
社區里又有人在問關于webservices的基本問題:請問什么是webservicse 作什么用的?
以下是我的回復:
這是個好問題,所有初學webservices的人都應該問這樣的問題。類似的問題還有,為什么要用webservicess,而不是類似的服務,象remoting,或者java里的東西?
之所以這么說,是的確發現很多人連這種基本的問題都沒有弄明白,就開始堆CODE,瞎打瞎撞,就進了死胡同。
廢話一堆,說說我自己的看法,算是拋磚引玉:
什么東西webservices能做而別的(以前的)技術不能或者很困難的?
最重要的有兩點:
1、連通性好,
99%的webservices都使用http協議來實現傳輸,而標準的http協議所使用的80端口幾乎在所有的防火墻都是打開的。換句話說,如果你的機器能夠訪問網站,就能夠使用webservices。之前還沒有一種技術可以這么說,因為他們大都使用專有的協議(端口)。在內部網絡,這些協議是沒有區別的,但防火墻使他們內外有別了。
CORBA, DCOM, RMI,這些東東都有些年頭了,可沒有一個可以說是十分普及的,問題之一不是技術有多難,而是應用領域非常有限。供應商說他們的系統支持COBRA,這樣我們可以得到即時的最新報價和現貨庫存,可是我們的即使裝了那個他們提供的客戶端軟件也用不了,除非他們可以在防火墻上網開一面。
2、雞同鴨講
香港電影經常看到這個短語,如果我們讓Java的JMS和.NET的Remoting說話,基本就是這種情況。看起來好像那么回事,其實是牛頭對馬嘴。這應該算是另外一種連通性好表現。其實,讓RMI和Remoting對話,可能比雞同鴨講還難。
但webservices卻真的可以讓雞同鴨講,不但如此,幾乎可以讓任何語言溝通,因為他要求你用一種世界語(SOAP)。任何可以用這種語言溝通的技術(們)之間,現在都可以加入到webservices的大家族里來了。這里包括了常用的網頁描述語言(peel,php,jsp,asp,等),常見的通用語言(c/c++,pascal,basic,java,c#,等),只要你可以發出符合SOAP格式的XML包,就可以和其他的webservices供應商通訊。所以,你不用任何語言工具,手敲一個SOAP包,也一樣可以得到回應。而XML屬于不磨損的自描述語言,即使過了幾百年,你也可以不借助復雜工具看懂其中的內容。
可以參考我以前的另一篇東西:web services的基本概念
在中國,不像ASP.NET已經風風火火,webservices還處于起步階段,真希望社區webservices的管理員能給大家系統的講講這些基本的東西。
?
摘自:http://blog.csdn.net/dawave/archive/2004/07/31/57669.aspx
總結
以上是生活随笔為你收集整理的关于webservice的经典理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ontology的研究和应用
- 下一篇: 本体开发方法——the Method o