對RPC的想法
針對閱讀xml-RPC的讀後感想
RPC是Remote Position Call的縮寫,他的能力是在呼叫使用遠方的程式
以下是我的一些想法:
RPC是一種程式集中管理的程式處理方式,也就是說假想所有的裝置或電腦都可以上網,利用RPC的管理技術應該可以使軟體達到自動升級的效果。這種程式寫作技巧的一個特點就是主機的那一方需要有很強的資料處理能力,而相對的使用者只需要提供簡單的介面提供資料的使用。這方面的應用較適合使用在手機或是行動裝置上,因為他們為了能夠省電必須簡化設計,過多的運算或許會造成電力的浪費,而且如果利用RPC就等同於你擁有了一部電腦的資源。或許有人認為利用嵌入式的方式就已經足夠使用,為什麼還要使用RPC的方式。這之間的不同點我在一開始也說明了,對,就是自動升級的效果,如果裝置是使用嵌入式的方法,那麼在作產品升級的時候就要直接將機器重新安裝新的軟體,而使用RPC的時候卻不需要,只要服務提供者修正在他們主機中的程式,就等同於幫許許多多的手持裝置做軟體的錯誤修正,不需要將手持裝置一一送到服務站做軟體更新。舉個例子:如果你是使用微軟windows作業系統,微軟公司常常會不定期提供bug修正,因為安全漏洞或其他因素,如果作業系統的核心元件只有網路,其他核心的部分採RPC的方式,只需要提供使用者介面,例如一個按鈕,這個按鈕按下之後到遠端處理並將結果傳回,錯誤修正只要提供服務端做程式的修正即可。或許應用在一個像微軟的作業系統上可能不是那麼恰當,但是把這樣的原理使用在手機或PDA的作業系統上應該就比較合適,因為手機或PDA上的作業系統並不需要如此複雜,所以應該比較容易做到。
手持裝置受限於本身資源的不足,不論是在電力或者是畫面的呈現都受到相當的限制,使用RPC的方式可以增加一些能力,讓他能夠處理複雜一些的問題。另外使用RPC的好處在於程式碼的共享,假設有人已經將一段很好的處理事情的方法的程式撰寫好了,以後的人只要到那邊去呼叫就可以使用。RPC程式的管理也有一套技巧存在,如何將程式註冊?如何將程式發布?都需要有人去維護。

利用python所寫的簡單範例
主機(server)端程式
import calendar, SimpleXMLRPCServer

class Calendar:
def getMonth(self, year, month):
return calendar.month(year, month)

def getYear(self, year):
return calendar.calendar(year)


calendar_object = Calendar()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(('localhost', 8888))
server.register_instance(calendar_object)

print 'Listening on port 8888'
server.serve_forever()

用戶(clint)端程式
import xmlrpclib

server = xmlrpclib.ServerProxy('http://localhost:8888')

month = server.getMonth(2002, 8)
print month

上面這個範例是主機提供日曆的查詢,用戶端連到主機端取回資料

    全站熱搜

    CJY0503 發表在 痞客邦 留言(0) 人氣()