iT邦幫忙

DAY 26
1

Java Web的設計與應用系列 第 26

Day26 Vaadin 探討Serialize and DeSerialize原理

  • 分享至 

  • xImage
  •  

準備技術:

  1. Java Serialize
  2. GWT serialize

Serialize是Java物件從JVM傳送到別的地方很重要的關鍵,保留資料的Type和Value,還要能夠還原 DeSerialize。

  1. 什麼是Serialize?對Java物件來說,所有的類別與物件設計都在JVM以Bytecode形式存在,當資料離開了JVM,就要想辦法保留資料而轉換,這就是要Serialize。
  2. 為什麼要Deserialize?因為資料到了另一端,要還原資料,需要點技術。
  3. Vaadin為什麼要考慮Serialize?因為基本設計就是將Java物件從Server-Side 到Client,轉換成Javascript。
  4. Vaadin7是以JSON來當作傳送的格式。

前面的探討,我們可以利用Monitor看JVM內的資料,但看不到Serialize轉換過程的。

  1. 考量如果有個Map資料,必須先轉換成Row Type ,如Map<Foo,Bar>,這時候Java泛型的能力就顯示了。為什麼要這樣做?因為你使用Map,有操作Map方法,那些方法經過Serialize之後,不保證到另一端之後能夠操作維持,甚至於不能使用,如Vaddin 從Java物件到Client的Javascript物件,沒方法對應。
  2. Serialize考慮的是Type的檢查,這是很重要的關鍵。
  3. 再次看Vaadin的架構圖,就知道從Server到Client為什麼要出現中間的Service(remote Service),以及RPC的角色。Server是靠CommunicatiuonManager,Client是靠ApplicationConnection來做Serialize與Deserialize。

參考資料:

  1. ServerCommunication in GWT

Day 26 結束


上一篇
Day25 JAXB-載入xml去修改Class內容
下一篇
Day27 Vaadin 探討前後端設計實例
系列文
Java Web的設計與應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言