• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第五章

結論與未來研究方向

5.1 結論

本研究探討了諸多建置多租戶 SaaS 上的設計議題,首先針對多租戶 SaaS 的共用 架構進行探討,得知以共用硬體及資料庫與單一應用程式及資料綱要的共用架構 是最符合經濟效率的方式,因為租戶們全都共用相同的實體。但共用架構的設計 將會影響到多租戶 SaaS 的隔離程度、安全性、客製化能力、可維護性、復原能 力。

對於多租戶 SaaS 的隔離程度、客製化能力以及可維護性,本研究提出以 Force.com Universal Table 資料架構為多租戶 SaaS 的架構基礎,來解決這三項設 計議題。因為 Force.com Universal Table 資料架構採取 Metadata Driven 原則,利 用此資料架構可以實現虛擬資料庫的概念。但使用此資料架構不同於傳統的 Private Table 資料綱要設計,SaaS 開發人員必須非常熟悉此模型的運作原理,才 能撰寫出正確的 SQL 指令。此外在提供租戶客製化能力上,則仰賴於 SaaS 開發 團隊的設計能力,假設客製化功能的設計不良容易造成日後維護與改版的困難 度。

因此本研究提出一基於 Force.com Universal Table 資料架構的中介軟體框 架。藉由中介軟體框架的三項特色,Tenant Aware、Data Access 以及 Tenant Customizability;多租戶 SaaS 可以輕易實現了租戶應用程式邏輯與資料的虛擬隔 離性,而且其開發人員也可採用標準的 JDO 規格進行物件關聯對映,並使用 ORM 模組所提供的查詢語言進行資料存取,不須擔心如何撰寫符合 Universal Table 資 料架構的 SQL 指令。此外使用中介軟體框架所提供的 Customization API 與

Bytecode Transformation 可以輕易讓租戶新增私有的領域物件,以及修改 SaaS 既 有的領域物件進而轉化為租戶私有的領域物件,並可建立私有領域物件之間的關 聯性。

由於本中介軟體框架採用了不同於傳統的資料綱要設計,所有租戶共用同一 套資料綱要,並將租戶們的資料都儲存於單一資料表中,在效能上的表現上一定 會有影響。的確如此,在購物商城 SaaS 的實作與效能測試中,傳統的 Private Table 資料綱要的效能表現較佳,其在 Select、Insert、Delete、Update 的 SQL 指令測試 中所獲得反應時間分別為 0.446945、1.382374、0.526487 以及 0.523854 ms;反 之在使用中介軟體框架 ORM 模組的資料存取效能測試中,Select、Insert、Delete、

Update 的 SQL 指令反應時間分別為 14.006657、14.424608、16.09107 以及 15.365716 ms。兩者差距雖然相差約 14~15 ms,因為中介軟體框架使用 Universal Table 資料架構必須搭配其 Metadata 與 Specialized Pivot 資料表;以查詢為例,

使用 Universal Table 資料架構比單純使用 Private Table 要多了 3~6 次的存取資料 庫。此外中介軟體框架 ORM 模組還須將 JDOQL 轉成符合 Universal Table 資料

(Aspect-oriented programming)、領域專屬語言(Domain Specific Language,DSL)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

以及程式碼產生器(Code Generator)…等。

未來中介軟體框架可以藉由提供 DSL,讓租戶可以自行撰寫其商業邏輯,

並加入至 SaaS 既有領域物件中或是其新增的私有領域物件,當多租戶 SaaS 執行 到這些領域物件的方法時,便會依照租戶所撰寫的邏輯來處理。至於開發人員可 利用未來中介軟體框架所提供的 CustomMethod 介面來保存租戶所撰寫的 DSL,

搭配未來 CustomObject 新增的事件概念,例如:beforeSave、afterSave…等,將 此 CustomMethod 註冊至 CustomObject 事件中。一旦當 CustomObject 的事件被 觸發時便會去執行 CustomMethod 中的租戶所撰寫的 DSL。

圖 5.1:CustomObject、CustomMethod 結構設計。

以購物商城 SaaS 為例,假設某租戶希望做兩件商品七五折的促銷活動,該 租戶將使用中介軟體框架的 DSL 來撰寫此促銷活動的商業邏輯,透過購物商城 SaaS 的操作介面,將此 DSL 註冊至購物商城 SaaS 中的 Order 物件的 beforeSave 事件中。一旦當新訂單儲存時,購物商城 SaaS 的 Order 物件將會觸發 beforeSave 事件來執行促銷的 DSL,重新計算訂單金額後,購物商城 SaaS 再將促銷訂單金 額與訂單的其他資料儲存。

【1】 P. Mell and T. Grance, “The NIST Definition of Cloud Computing,” NIST Special Publication 800-145, 2011.

【2】 “Gartner Says Worldwide Software-as-a-Service Revenue to Reach $14.5 Billion in 2012,” available at http://www.gartner.com/newsroom/id/1963815

【3】 C. Ospiov, G. Goldszmidt, M. Ta ylor and I.Podar,”Develop and Deploy Multi-Tenant Web-delivered Solutions using IBM middleware :Part 2 : Approaches for enabling multi-tenancy,” available at

http://www.ibm.com/developerworks/webservices/library/ws-multitenantpart2 /index.html

【4】 F. Chong, G. Carraro, and R. Wolter, “Multi-Tenant Data Architecure,”

available at http://msdn.microsoft.com/en-us/library/aa479086.aspx

【5】 S. Aulbach, T. Grust, D. Jacobs, A. Kemper and J. Rittinger, “Multi-Tenant Databases for Software as a Service: Schema-Mapping Techniques,” in Proc.

ACM International Conference on Management of Data, 2008.

【6】 C. F. Liao, K. Chen and J. J. Chen, “Toward a Tenant-aware Query Rewriting Engine for Universal Table Schema-Mapping,” in Proc. IEEE International Conference on Cloud Computing Technology and Science, 2012.

【7】 G. P. Copeland, S. N. Khoshafian, “A decomposition storage model,” in Proc.

ACM SIGMOD International Conference on Management of Data, 1985.

【8】 F. S. Foping, I. M. Dokas, J. Feehan, S. Imaran, “A New Hybrid Schema-Sharing Technique for Multitenant Applications,” in Proc. 4th International Conference on Digital Information of Management, 2009.

【9】 J. Du, H. Y. Wen, Z. J. Yang, “Research on Data Layer Structure of

Multi-tenant E-commerce System,” in Proc. 17th International Conference on Industrial Engineering and Engineering Management, 2010.

【10】D. Maier and J. D. Ullman, “Maximal objects and the semantics of universal relation databases,” in ACM Transactions on Database Systems, Vol. 8, No. 1,

相關文件