不同系統之間,總是避免不了要互相通信,通信方式無外乎兩種:方法調用、請求和等待。前者是直接調用對方的API,而後者是通過http請求,告訴對方要執行的方法和參數,並返回結果。
通信方式
--RPC :它是一種規範,採用請求和響應的方式,優勢是語言無關性,劣勢是沒有類型校驗這種編譯期的檢查能力,必須做大量的運行時檢查
--XML-RPC :通過xml格式來實現RPC的規範,API是XmlRpcClient
--JSON-RPC :通過JSON格式來實現RPC的規範
--SOAP :可以認爲是XML-PRC的加強版本,基本格式仍然是xml,但封裝的更加完美,支持的數據類型更多,可以支持對象和容器。具備初級的類型校驗。實現方案有AXIS,XFIRE等
--RMI :遠程方法調用,這是代碼上提供的支持,依賴java語言,優勢是具備類型校驗的能力
--jdk
REST :REST風格的請求是另一種請求和響應的方式實現的通信,可以認爲跟RPC類似,但它堅持以資源爲中心(比如issue就是資源),而動詞是固定的(GET/POST等,有利有弊),比較成熟的實現方案是restlet。
關於webservice,通常講的webservice其實是指基於SOAP的,比如AXIS,XFIRE等,而廣義的,其實基於RPC提供的web服務,都可以認爲是webservice。
參考文章:
http://blog.csdn.net/kingquake21/article/details/5260787
http://www.myexception.cn/xml-soap/700586.html
http://www.myexception.cn/xml-soap/429881.html
http://blog.csdn.net/bloghome/article/details/4576942
http://www.cnblogs.com/Tim-Yi/archive/2011/11/03/2234230.html