現在越來越覺得兩者有相似之處了。SOA目前在我看來就是提供粗粒度無狀態的接口,這種接口基本上和基于過程的RPC是一樣的。可能我對SOA的理解是錯誤的,但是我總可以說我理解的SOA是錯誤的,錯誤成了基于過程的RPC吧。下面來對比一下用戶界面和SOA:
參數
用戶界面:某些控件中用戶填的內容
SOA:傳過去的對象
調用
用戶界面:用戶觸發一個事件
SOA:調用一個接口
返回值
用戶界面:返回到前面的控件中或者在別的控件中顯示
SOA:用by ref傳遞的對象的值的修改,或者返回一個返回值
即便是對于MDI這樣的用戶界面,操作也是共享的。而且更能說明其無狀態的模型。因為提供操作功能的界面是公共的,所以子窗口更像是SOA中客戶端保存的狀態,在每次調用的時候傳遞給服務器。
——————————
一覺起來,接著說
把控件上用戶填寫的內容想象成客戶端的對象,不需要我們處理的功能(比如控件自己帶的ctrl+c)想象成客戶端的代碼。把用戶觸發事件想象成對Service的調用,把我們代碼中表示控件內容的對象想象成服務器端相應的參數對象,我們事件處理的函數就是Service了。
聯想到Web Service中服務器總是先寫,客戶端的存根總是根據WSDL文件生成。而寫界面也是類似的,總是先有功能,然后再有界面。但是往往我們寫界面的時候是需要用gui設計器,先畫界面。那么是不是可以反過來,先寫代碼,然后gui設計器根據我們指定的一些對象作映射和設計,這是不是會更符合一個程序的產生過程呢?這樣是不是減輕gui工作量的途徑呢?
參數
用戶界面:某些控件中用戶填的內容
SOA:傳過去的對象
調用
用戶界面:用戶觸發一個事件
SOA:調用一個接口
返回值
用戶界面:返回到前面的控件中或者在別的控件中顯示
SOA:用by ref傳遞的對象的值的修改,或者返回一個返回值
即便是對于MDI這樣的用戶界面,操作也是共享的。而且更能說明其無狀態的模型。因為提供操作功能的界面是公共的,所以子窗口更像是SOA中客戶端保存的狀態,在每次調用的時候傳遞給服務器。
——————————
一覺起來,接著說
把控件上用戶填寫的內容想象成客戶端的對象,不需要我們處理的功能(比如控件自己帶的ctrl+c)想象成客戶端的代碼。把用戶觸發事件想象成對Service的調用,把我們代碼中表示控件內容的對象想象成服務器端相應的參數對象,我們事件處理的函數就是Service了。
聯想到Web Service中服務器總是先寫,客戶端的存根總是根據WSDL文件生成。而寫界面也是類似的,總是先有功能,然后再有界面。但是往往我們寫界面的時候是需要用gui設計器,先畫界面。那么是不是可以反過來,先寫代碼,然后gui設計器根據我們指定的一些對象作映射和設計,這是不是會更符合一個程序的產生過程呢?這樣是不是減輕gui工作量的途徑呢?
浙公網安備 33010602011771號