Web-Service-簡介

webService


百度百科


http://www.webxml.com.cn/  推薦網站





WebService底層原理

Socket

public class Server {

	public static void main(String[] args) throws IOException {
		ServerSocket serverSocket=new ServerSocket(8888);
		Socket socket= serverSocket.accept();
		BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
		String message=reader.readLine();
		System.err.println("Client saied "+ message);
		reader.close();
		socket.close();
		serverSocket.close();
	}

}

public class Client {
	public static void main(String[] args) throws UnknownHostException, IOException {
		Socket socket=new Socket("10.212.169.93", 8888);
		String message="你好啊  服務器";
		BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
		writer.write(message);
		writer.close();
		socket.close();
		
	}
}

簡單的網絡應用:


先理解什麼是服務:

現在的應用程序變得越來越複雜,甚至只靠單一的應用程序無法完成全部的工作。更別說只使用一種語言了。
大家在寫應用程序查詢數據庫時,並沒有考慮過爲什麼可以將查詢結果返回給上層的應用程序,甚至認爲,這就是數據庫應該做的,其實不然,這是數據庫通過TCP/IP協議與另一個應用程序進行交流的結果,而上層是什麼樣的應用程序,是用什麼語言,數據庫本身並不知道,它只知道接收到了一份協議,這就是SQL92查詢標準協議。
目前的雲計算、雲查殺都是一種服務,現在比較流行的說法是SOA(面向服務的框架)。
既然數據庫可以依據某些標準對外部其他應用程序提供服務、而且不關心對方使用什麼語言,那我們爲什麼就不能實現跨平臺、跨語言的服務呢?
只要我們用Java寫的代碼,可以被任意的語言所調用,我們就實現了跨平臺,跨語言的服務!


複雜的網絡應用:


解決幾個問題?

什麼是WebService?
它能做什麼?
爲什麼要學習WebService?
學習WebService要達到什麼目的?

1.WebService,顧名思義就是基於Web的服務。它使用Web(HTTP)方式,接收和響應外部系統的某種請求。從而實現遠程調用.
2.我們可以調用互聯網上查詢天氣信息Web服務,然後將它嵌入到我們的程序(C/S或B/S程序)當中來,當用戶從我們的網點看到天氣信息時,他會認爲我們爲他提供了很多的信息服務,但其實我們什麼也沒有做,只是簡單調用了一下服務器上的一段代碼而已
3.學習WebService可以將你的服務(一段代碼)發佈到互聯網上讓別人去調用,也可以調用別人機器上發佈的WebService,就像使用自己的代碼一樣.。


1:WebService的工作模式上理解的話,它跟普通的Web程序(比如ASPJSP等)並沒有本質的區別,都是基於HTTP傳輸協議的程序。

2:WebService所使用的數據均是基於XML格式的。目前標準的WebService在數據格式上主要採用SOAP協議。SOAP協議實際上就是一種基於XML編碼規範的文本協議。

在開始之前必須要讓先了解幾個名詞:

名詞1:XML. Extensible Markup Language -擴展性標記語言
XML,用於傳輸格式化的數據,是Web服務的基礎。
namespace-命名空間。
xmlns=“http://itcast.cn” 使用默認命名空間。
xmlns:itcast=“http://itcast.cn”使用指定名稱的命名空間。
名詞2:WSDL – WebService Description Language – Web服務描述語言。
通過XML形式說明服務在什麼地方-地址。
通過XML形式說明服務提供什麼樣的方法 – 如何調用。
名詞3:SOAP-Simple Object Access Protocol(簡單對象訪問協議)
SOAP作爲一個基於XML語言的協議用於有網上傳輸數據。
SOAP = 在HTTP的基礎上+XML數據。
SOAP是基於HTTP的。
SOAP的組成如下:
Envelope – 必須的部分。以XML的根元素出現。
Headers – 可選的。
Body – 必須的。在body部分,包含要執行的服務器的方法。和發送到服務器的數據。

以下簡單瞭解一個WSDL,SOAP的格式





POST/WebServices/MobileCodeWS.asmxHTTP/1.1

Host:webservice.webxml.com.cn

Content-Type:text/xml; charset=utf-8

Content-Length:length

SOAPAction:"http://WebXml.com.cn/getMobileCodeInfo"

<?xmlversion="1.0" encoding="utf-8"?>

<soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xmlns:xsd="http://www.w3.org/2001/XMLSchema"

     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Body>

    <getMobileCodeInfoxmlns="http://WebXml.com.cn/">

      <mobileCode>string</mobileCode>

      <userID>string</userID>

    </getMobileCodeInfo>

  </soap:Body>

</soap:Envelope>





HTTP/1.1200 OK

Content-Type:text/xml; charset=utf-8

Content-Length:length

<?xmlversion="1.0" encoding="utf-8"?>

<soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xmlns:xsd="http://www.w3.org/2001/XMLSchema"

     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Body>

    <getMobileCodeInfoResponsexmlns="http://WebXml.com.cn/">

      <getMobileCodeInfoResult>string</getMobileCodeInfoResult>

    </getMobileCodeInfoResponse>

  </soap:Body>

</soap:Envelope>








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章