很多新手一聽到接口就蒙逼,不知道接口是什么!其實(shí)接口就是RPC,通過(guò)遠(yuǎn)程訪問(wèn)別的程序提供的方法,然后獲得該方法執(zhí)行的接口,而不需要在本地執(zhí)行該方法。就是本地方法調(diào)用的升級(jí)版而已,我明天會(huì)上一篇如何通過(guò)socket實(shí)現(xiàn)rpc,以及服務(wù)的注冊(cè)和動(dòng)態(tài)上下線。這里先上一篇RPC的實(shí)現(xiàn)者一webservice,便于后面理解源碼執(zhí)行過(guò)程,框架就是在原理的基礎(chǔ)上提供更加便捷的使用而已,協(xié)議就是基于TCP或UDP之上,服務(wù)者和調(diào)用者之間約定消息按照什么樣的格式發(fā)送以及解析罷了。協(xié)議沒(méi)什么高深莫測(cè)的。

原文和作者一起討論:http://www.cnblogs.com/intsmaze/p/6055684.html

可接網(wǎng)站開發(fā),java開發(fā)。

新浪微博:intsmaze劉洋洋哥

微信:intsmaze

下面是我多年前學(xué)習(xí)webservice時(shí),做的筆記,今天整理一下,分享出來(lái),為我源碼剖析RPC做準(zhǔn)備。

WebService,顧名思義就是基于Web的服務(wù)。它使用Web(HTTP)方式,接收和響應(yīng)外部系統(tǒng)的某種請(qǐng)求,從而實(shí)現(xiàn)遠(yuǎn)程調(diào)用。我們可以調(diào)用互聯(lián)網(wǎng)上查詢天氣信息Web服務(wù),然后將它嵌入到我們的程序(C/S或B/S程序)當(dāng)中來(lái),用戶可以在我們的網(wǎng)點(diǎn)看到天氣信息,他會(huì)認(rèn)為我們?yōu)樗峁┝撕芏嗟男畔⒎?wù),但其實(shí)我們只是簡(jiǎn)單調(diào)用了一下服務(wù)器上的一段代碼來(lái)調(diào)用別人寫好的WebService。WebService可以將你的服務(wù)(一段代碼)發(fā)布到互聯(lián)網(wǎng)上讓別人去調(diào)用,也可以調(diào)用別人機(jī)器上發(fā)布的WebService,就像使用自己的代碼一樣.

webservice是兩個(gè)軟件系統(tǒng)之間的遠(yuǎn)程調(diào)用,這里的調(diào)用是跨語(yǔ)言的調(diào)用。兩個(gè)不同的應(yīng)用程序之間通過(guò)xml進(jìn)行數(shù)據(jù)交互的。這樣任何一種語(yǔ)言都可以解析xml文件中的數(shù)據(jù)。數(shù)據(jù)進(jìn)行交互遵循的協(xié)議是http協(xié)議。http協(xié)議,以及我們用jdbc訪問(wèn)數(shù)據(jù)庫(kù)其實(shí)底層都是依賴socket連接。比我我們經(jīng)常在別的網(wǎng)站登錄第三方賬號(hào)也可以登錄,其實(shí)也是用的webservice,別的網(wǎng)站拿到賬號(hào)到第三方提供的賬號(hào)服務(wù)去驗(yàn)證。

在JDK1.6以后JAX-WS規(guī)范定義了如何發(fā)布一個(gè)webService服務(wù)。
JAX-WS是指Java Api for XML – WebService.
用Jdk1.6.以后的版本發(fā)布一個(gè)WebService服務(wù).
與Web服務(wù)相關(guān)的類,都位于javax.jws.*包中。
主要類有:
@WebService - 它是一個(gè)注解,將 Java 類標(biāo)記為實(shí)現(xiàn) Web Service,或者將 Java 接口標(biāo)記為定義 Web Service 接口。
Endpoint – 此類為端點(diǎn)服務(wù)類,它的方法publish用于將一個(gè)已經(jīng)添加了@WebService注解對(duì)象綁定到一個(gè)地址的端口上,接收兩個(gè)參數(shù),一個(gè)是本地的服務(wù)地址,二是提供服務(wù)的類。
如何發(fā)布一個(gè)web服務(wù):

網(wǎng)友評(píng)論