序列化是用來通信的,服務端把數據序列化,發送到客戶端,客戶端把接收到的數據反序列化后對數據進行操作,完成后再序列化發送到服務端,服務端再反序列化數據后對數據進行操作。
說白了,數據需要序列化以后才能在服務端和客戶端之間傳輸。這個服務端和客戶端的概念是廣義的,可以在網絡上,也可以在同一臺機器的不同進程中,甚至在同一個進程中進行通信。
在傳統編程中,對象是通過調用棧間接的與客戶端交互,但在面向服務的編程中,客戶端永遠都不會直接調用實例。不知道說的明不明白。 序列化的好處:不序列化也可以傳輸,但是無法跨平臺,安全性也無法保障。
我說的是面向服務編程中的作用,在傳統編程中,你在表示層實例化一個業務對象,然后調用業務對象中的方法,你想過為什么能這樣調用嗎?
這樣做耦合度太高,很不好。如果序列化以后通過特定的協議傳輸數據就不一樣了,表示層通過代理或通道向服務層發送特定的數據格式,
這個數據就是序列化以后的,比如XML,服務端接收到以后要進行反序列化,生成服務端可識別的數據格式,
比如一個類,然后對數據進行操作,再序列化發送到客戶端,客戶端再反序列化。這樣客戶端可以使用和服務端完全不同的開發平臺,
只要它能夠對xml數據進行反序列化,而xml是具有工業標準的數據格式,基本各平臺都支持。這也適用于在進程間通信。
如果在進程內通信,也可以做到更高的安全性,對象不再通過調用棧交互,而是通過代理或通道。
轉載于:https://www.cnblogs.com/wupeiqi/archive/2012/11/15/2770936.html