2013/11/18

分享基於 SOAP 的 3-Tier 開發範例 及 觀後心得

某個日本公司寫的一個關於 SOAP 的分散式開發專案範例
網址:3層スタイルC/Sアプリ作成術サンプルソース

目前看了下範例後有一些簡單的想法。

  • 充分利用 ClientDataSet 的 XML 特性,與 SOAP 完美搭配。
  • 一樣是 C/S ,更重要的是已經 3-Tier 化了。傳統 2-Tier 下資料庫裸露在外的問題已不復見了。
  • 開發上也不需考慮 DCOM +Socket / HttpSrvr 等搭配技術的實現,架構上顯得是相對乾淨,以及在Delphi 3 - XE n 都能夠被實現的技術。
  • 標準的無狀態 (Stateless) 的 3 層架構。(不過 SOAP 是允許有狀態 (Stateful) 實現的)
  • SOAP 是非常成熟的 Web Service ,也就表示它的問題和 DataSnap 相比下顯得較無缺失些。
  • 多種連線方式成為可能,只要重載函式 (overload) ,就能夠讓後端使用多種 DataSet ,不論是 ADO, DBX 還是未來的 FireDAC 都能夠銜接這個框架。
  • SOAP 的效率實在是很差,連接的成本太高,還沒開始傳封包呢!
  • 按照範例中的 Readme.txt 解釋,在多人連線上似乎會有衝突,還有調整的必要性,畢竟只是 DEMO 。可能還有些關鍵被隱藏起來了吧。
  •  在不考慮 Socket / HttpSrvr 的問題 (?) 下,DataSnap 開發無狀態的應用程式還是相對簡單。
不過好像沒有文獻顯示SOAP Service可以承載多少 Client 同時在線。這部份可能完全取決在 HTTP Service 上?

2 則留言:

  1. 我都是利用 3-Tier 觀念去做,反而沒有利用Delphi 現有提供的架構。
    自己開發 Http Server 之類,反而效率比 Delphi 高(自己認為)。

    多少Client 或是 Thread 可以自行控制或等待排隊。
    那麼彈性會比較大。因為底層通訊格式自行實現,故可以減少 通訊的次數。

    從 Delphi K.TOP 看過來。留點足跡。....

    回覆刪除
  2. 自己開發 Http Server ,這是多大的一個工程啊。還不包含 Debug 時間

    個人單純是從簡單開發的角度所做的選擇, DataSnap 還算是很簡單的

    不過開發後才知道官方的問題也真的不少 哈哈
    而且主控權是在官方手上,很不方便,自己做的話就沒這麼多問題了!
    但那是在有足夠的時間開發為前提下 ^ ^

    謝謝您抽空回覆!

    回覆刪除