日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

軟件即服務(wù)的架構(gòu)指導(dǎo)

 ShangShujie 2007-04-10
. Microsoft Corporation 2006 年保留所有版權(quán)。
抓住長(zhǎng)尾市場(chǎng)的架構(gòu)戰(zhàn)略
2006 年 4 月
Frederick Chong 與 Gianpaolo Carraro
微軟公司
Copyright . Microsoft Corporation 2006. All Rights Reserved.
2
致謝
非常感謝 Paul Henry 在撰寫技術(shù)內(nèi)容方面給予的幫助。
說(shuō)明
本文檔所包含的信息代表了在發(fā)布之日,Microsoft Corporation 對(duì)所討論問(wèn)題的當(dāng)前看法。因
為微軟必須順應(yīng)不斷變化的市場(chǎng)情況,因而該文檔不應(yīng)理解為 Microsoft 單方面的承諾,
Microsoft 不保證所給信息在發(fā)布這日以后的準(zhǔn)確性。
本文檔僅供參考。對(duì)于本文檔中的信息,Microsoft 不做任何明示、默示或法定的擔(dān)保。
遵守所有適用的版權(quán)法律是用戶的責(zé)任。在不對(duì)版權(quán)法所規(guī)定的權(quán)利加以限制的情況下,如未
得到 Microsoft Corporation 明確的書面許可,不得為任何目的、以任何形式或手段(電子的、
機(jī)械的、影印、錄制等等)復(fù)制或傳播本文的任何部分,也不得將其存儲(chǔ)或引入到檢索系統(tǒng)
中。
Microsoft 可能擁有本檔主題涉及到的專利、專利申請(qǐng)、商標(biāo)、版權(quán)或其他知識(shí)產(chǎn)權(quán)。除非在
Microsoft 的任何書面許可協(xié)議中明確表述,否則獲得本文檔不代表您將同時(shí)獲得這些專利、商
標(biāo)、版權(quán)或其他知識(shí)產(chǎn)權(quán)的任何許可證。
除非另外注明,否則此處作為例子提到的公司、組織、產(chǎn)品、域名、電子郵件地址、徽標(biāo)、人
員、地點(diǎn)以及事件純屬虛構(gòu),決不意指,也不應(yīng)由此臆測(cè)任何真實(shí)的公司、組織、產(chǎn)品、域
名、電子郵件地址、徽標(biāo)、人員、地點(diǎn)和事件。
. 2005 Microsoft Corporation,保留所有權(quán)利。
Microsoft、Visual Studio 以及 .NET 徽標(biāo)是 Microsoft Corporation 在美國(guó)和/或其他國(guó)家的注
冊(cè)商標(biāo)或商標(biāo)。
所有其他商標(biāo)均是其各自所有者的財(cái)產(chǎn)。
Copyright . Microsoft Corporation 2006. All Rights Reserved. 3
引言
軟件即服務(wù)這一話題已是眾口相傳。軟件業(yè)有關(guān)文獻(xiàn)中關(guān)于“軟件即服務(wù)” (SaaS) 的文章不勝枚
舉,其中很多都用到了“革命性”和“產(chǎn)業(yè)格局”等措辭詞。大家都知道(或以為自己知道)什么是軟
件即服務(wù),都認(rèn)為這一理念意義重大。不過(guò),很少有人能真正定義這一理念,了解如何實(shí)踐這一理念的
人就更是寥寥無(wú)幾了。
因此,既然 SaaS 對(duì)應(yīng)用實(shí)施的未來(lái)發(fā)展如此重要,為什么人們?cè)趯?shí)踐這一理念時(shí)很難獲得有用的指
導(dǎo)呢?
我們認(rèn)為,SaaS 確實(shí)將對(duì)軟件產(chǎn)業(yè)發(fā)揮重大影響,因?yàn)檐浖捶?wù)將改變?nèi)藗儤?gòu)建、銷售、購(gòu)買以及
使用軟件的方式。不過(guò),為了將此變?yōu)楝F(xiàn)實(shí),軟件開發(fā)商需要高效開發(fā) SaaS 應(yīng)用的資源和信息。
本文是微軟 (Microsoft) 介紹 SaaS 理念系列文章中的第一篇,后續(xù)系列文章將為讀者解開 SaaS 的
神秘面紗,并為設(shè)計(jì) SaaS 應(yīng)用提供實(shí)際的、現(xiàn)實(shí)的指導(dǎo)。本文將概括介紹 SaaS 理念、其面臨的挑
戰(zhàn),及其如何為有興趣提供 SaaS 應(yīng)用的公司帶來(lái)好處。本系列隨后的幾篇文章將詳細(xì)討論有關(guān)問(wèn)
題。
本文首先提出什么是軟件即服務(wù),并介紹 SaaS 供應(yīng)商必須經(jīng)歷的概念轉(zhuǎn)型,以了解新理念與傳統(tǒng)的
內(nèi)部部署軟件的不同之處。隨后,我們將討論 SaaS 商務(wù)模型,了解軟件即服務(wù)如何能在現(xiàn)實(shí)商務(wù)中
盈利。
本文將重點(diǎn)討論架構(gòu)問(wèn)題,因此最大篇幅將集中在 SaaS 應(yīng)用的架構(gòu)上。我們給出四級(jí)成熟模型,介
紹 SaaS 的部分主要特性:可配置性、多用戶效率以及可擴(kuò)展性。我們將研究高級(jí) SaaS 架構(gòu)的組
件,并側(cè)重探討 SaaS 架構(gòu)師通常面臨的難題,即,如何為擴(kuò)展多用戶應(yīng)用的數(shù)據(jù)模型提供適當(dāng)機(jī)
制。
最后,我們將簡(jiǎn)要討論 SaaS 應(yīng)用投入部署后與開展支持工作相關(guān)的運(yùn)營(yíng)問(wèn)題。
什么是軟件即服務(wù)?
時(shí)至今日,如何準(zhǔn)確定義“軟件即服務(wù)”(SaaS) 仍然沒有定論,問(wèn)五個(gè)人可能就會(huì)有五種不同的答
案。不過(guò),大多數(shù)專家可能會(huì)在 SaaS 區(qū)別于傳統(tǒng)套裝軟件和簡(jiǎn)單 Web 站點(diǎn)的一些基本特點(diǎn)上達(dá)成
一致。簡(jiǎn)言之,軟件即服務(wù)具備以下特點(diǎn):
“軟件部署為托管服務(wù),通過(guò)因特網(wǎng)存取。”
我們不妨花些時(shí)間來(lái)思考一下這一定義的含意。這種定義既未限定具體的應(yīng)用架構(gòu),也未指定特定的技
術(shù)或協(xié)議;沒有在企業(yè)與個(gè)人消費(fèi)者之間的服務(wù)進(jìn)行區(qū)分,也沒有要求具體的商業(yè)模型。根據(jù)上述定
義,軟件即服務(wù)的主要特點(diǎn)在于應(yīng)用代碼所處的位置以及部署和存取應(yīng)用代碼的方式。1
根據(jù)這一定義,SaaS 將包括許多您意想不到的服務(wù)和應(yīng)用。例如,我們不妨考慮一下基于 Web 的電
子郵件服務(wù),如 Microsoft. Hotmail. 等。盡管您在考慮 SaaS 時(shí)很難率先想到 Hotmail 也屬于
SaaS 的范疇,但 Hotmail 確實(shí)滿足了所有 SaaS 的基本標(biāo)準(zhǔn):供應(yīng)商提供所有程序邏輯和數(shù)據(jù)的主
機(jī)服務(wù),使最終用戶能夠通過(guò)基于 Web 的用戶界面在公共因特網(wǎng)上存取數(shù)據(jù)。
從一般到具體,我們認(rèn)為軟件即服務(wù)有兩大類別:
1 這種定義是不是過(guò)于簡(jiǎn)化了?簡(jiǎn)而言之,確實(shí)有一些簡(jiǎn)單化。隨后我們將集中討論一些能夠定義和區(qū)
別擁有良好設(shè)計(jì)的成熟 SaaS 應(yīng)用的重要屬性。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
4
. 面向企業(yè)的服務(wù) (Line-of-business service),向各種規(guī)模的企業(yè)和組織提供的服務(wù)。面向企
業(yè)的服務(wù)通常是可定制的大型商務(wù)解決方案,旨在協(xié)助開展財(cái)務(wù)、供應(yīng)鏈管理以及客戶關(guān)系等商務(wù)
工作。這種服務(wù)通常采用用戶預(yù)訂的銷售方式。
. 面向個(gè)人消費(fèi)者的服務(wù) (Consumer-oriented service),向公眾提供的一類服務(wù)。面向個(gè)人
消費(fèi)者的服務(wù)有時(shí)以用戶購(gòu)買的方式銷售,不過(guò)通常免費(fèi)提供給用戶,從廣告中賺取收入。
本文將側(cè)重討論與開發(fā)面向企業(yè)的服務(wù)應(yīng)用相關(guān)的架構(gòu)及商業(yè)問(wèn)題,文中給出的概念與范例都與企業(yè)應(yīng)
用相關(guān)。不過(guò),多用戶定制和可擴(kuò)展性、數(shù)據(jù)擴(kuò)展以及隔離等問(wèn)題也會(huì)出現(xiàn)在個(gè)人消費(fèi)者領(lǐng)域(事實(shí)上
更便于解決),因而個(gè)人消費(fèi)型 SaaS 服務(wù)的開發(fā)商閱讀本文也將有所裨益。
將軟件作為服務(wù)來(lái)考慮
為了實(shí)現(xiàn)從提供內(nèi)部部署軟件向軟件即服務(wù)的轉(zhuǎn)變,軟件廠商應(yīng)在三個(gè)相互關(guān)聯(lián)的領(lǐng)域中轉(zhuǎn)變思路:一
是商業(yè)模型;二是應(yīng)用架構(gòu);三是運(yùn)營(yíng)結(jié)構(gòu)。
Software
Services
Business
Model
Operational
Structure
Application
Architecture
在以下三部分中,我們將以 SaaS 的應(yīng)用架構(gòu)為側(cè)重點(diǎn)更深入地討論上述轉(zhuǎn)變。
轉(zhuǎn)變商業(yè)模式
轉(zhuǎn)變商業(yè)模式將涉及以下一種乃至更多種情況:
. 將軟件的“所有權(quán)”從客戶轉(zhuǎn)移至外部供應(yīng)商;
. 將技術(shù)基礎(chǔ)設(shè)施和管理等方面(如硬件與專業(yè)服務(wù))的責(zé)任從客戶重新分配給供應(yīng)商;
. 通過(guò)專業(yè)化和規(guī)模經(jīng)濟(jì)降低提供軟件服務(wù)的成本;
. 降低軟件銷售的最低成本,針對(duì)小型企業(yè)的長(zhǎng)尾市場(chǎng)做工作。
為了實(shí)現(xiàn) SaaS 理念的優(yōu)勢(shì),供應(yīng)商與客戶都應(yīng)進(jìn)行思維轉(zhuǎn)型,并且供應(yīng)商還應(yīng)幫助客戶實(shí)現(xiàn)這種轉(zhuǎn)
變。
Copyright . Microsoft Corporation 2006. All Rights Reserved. 5
誰(shuí)“擁有”軟件?
大多數(shù)軟件的銷售方式幾十年以來(lái)一直一成不變??蛻魹槭褂密浖?gòu)買許可證,并在屬于客戶或歸客
戶控制的硬件上安裝軟件,而供應(yīng)商則根據(jù)許可證協(xié)議或技術(shù)支持協(xié)議提供支持。在誠(chéng)實(shí)公開的軟件交
易中,“許可證”的技術(shù)性含義如下:從法律上說(shuō),客戶購(gòu)買的只是使用軟件拷貝的權(quán)利,但從實(shí)際目
的而言,客戶似乎是“擁有”軟件的,并能根據(jù)需要隨時(shí)使用軟件,使用多長(zhǎng)時(shí)間都可以。
軟件作為產(chǎn)品的商業(yè)模式是軟件市場(chǎng)的整體情況,在此環(huán)境下,軟件即服務(wù)理念會(huì)讓人感到相當(dāng)陌生:
我們告訴客戶,他們不是直接“擁有”重要的軟件,而是要為運(yùn)行在別人服務(wù)器上的軟件支付使用費(fèi),
如果停止用戶付費(fèi),就不能再獲得軟件使用權(quán)。因此,潛在的客戶應(yīng)了解 SaaS 為什么能比傳統(tǒng)的模
式提供更直接、更可量化的經(jīng)濟(jì)收益,這一點(diǎn)特別重要。
轉(zhuǎn)移 IT 工作責(zé)任
在一般的公司中,信息技術(shù) (IT) 預(yù)算用于以下三大領(lǐng)域:
. 軟件 —— 企業(yè)用于計(jì)算與信息處理的實(shí)際程序和數(shù)據(jù);
. 硬件 —— 可為用戶提供軟件存取的臺(tái)式計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)組件以及移動(dòng)設(shè)備 等;
. 專業(yè)服務(wù) —— 確保系統(tǒng)能夠不間斷運(yùn)行和可用的人員和機(jī)構(gòu),包括技術(shù)支持人員、咨詢?nèi)藛T以及
廠商代表等。
在上述三大領(lǐng)域中,軟件是最直接參與信息管理的部分,這也是所有 IT 公司要實(shí)現(xiàn)的最終目標(biāo)。硬件
與專業(yè)服務(wù)盡管是 IT 環(huán)境的重要組成部分,但我們通常將其視為實(shí)現(xiàn)目的的手段,而不是目的本身,
因?yàn)檫@兩者能確保軟件實(shí)現(xiàn)高效信息管理的最終目標(biāo)。(換言之,只要能有效地增加軟件功能,又不必
添置額外的硬件,那么任何公司都愿意這么做。但是,如果沒有增加軟件功能的需要,任何公司都不會(huì)
無(wú)緣無(wú)故地添置硬件。)
在圍繞內(nèi)部部署軟件構(gòu)建起來(lái)的 IT 環(huán)境中,大部分預(yù)算通?;ㄙM(fèi)在硬件和專業(yè)服務(wù)上,使得可用的軟
件預(yù)算只占少數(shù)。
Hardware Professional
Services
Software
在這種模式下,軟件預(yù)算主要用于購(gòu)買商業(yè)軟件套件的許可證以及定制的業(yè)務(wù)軟件。硬件預(yù)算主要用于
最終用戶使用的臺(tái)式機(jī)和便攜式計(jì)算機(jī)、存儲(chǔ)數(shù)據(jù)和應(yīng)用的服務(wù)器,以及可實(shí)現(xiàn)網(wǎng)絡(luò)化連接的組件。專
Copyright . Microsoft Corporation 2006. All Rights Reserved.
6
業(yè)服務(wù)預(yù)算用于支付技術(shù)支持人員的薪水,他們負(fù)責(zé)部署并為軟硬件提供支持,此外還要為咨詢?nèi)藛T和
開發(fā)資源付費(fèi),這是設(shè)計(jì)并構(gòu)建定制系統(tǒng)所需的。2
在主要采用 SaaS 模式的公司中,IT 預(yù)算的分配大為不同。
Hardware Services
Software
在這種模式下,SaaS 廠商在其公司內(nèi)部的中央服務(wù)器上存儲(chǔ)重要的應(yīng)用和相關(guān)數(shù)據(jù),并擁有專業(yè)的支
持人員來(lái)維護(hù)軟硬件。這就使公司客戶不用再為主機(jī)上運(yùn)行的軟件提供支持,也不必再為此而購(gòu)買和維
護(hù)服務(wù)器硬件。此外,通過(guò) Web 或智能客戶端提供的應(yīng)用對(duì)臺(tái)式計(jì)算機(jī)的性能要求要顯著低于本地安
裝應(yīng)用,這就使客戶能大幅延長(zhǎng)臺(tái)式計(jì)算機(jī)的使用壽命。最終,絕大部分 IT 預(yù)算能用于軟件,通常以
向 SaaS 供應(yīng)商交納的使用費(fèi)的形式支付。
充分利用規(guī)模經(jīng)濟(jì)
上述情況是否僅是一種難以實(shí)現(xiàn)的空想呢?說(shuō)到底,為了獲得“軟件”而支付給 SaaS 供應(yīng)商的使用
費(fèi)中的一部分,必定要用于 SaaS 供應(yīng)商的硬件和專業(yè)服務(wù)成本。這時(shí),就要考慮規(guī)模經(jīng)濟(jì)效應(yīng)的問(wèn)
題。假定 SaaS 供應(yīng)商中央主機(jī)上運(yùn)行的單套軟件擁有 x 家客戶,那么該供應(yīng)商就能統(tǒng)一為所有客戶
提供服務(wù)。例如,企業(yè) SaaS 應(yīng)用安裝在五個(gè)服務(wù)器組成的負(fù)載平衡群集上,可支持 50 家中等規(guī)模
的客戶,也就是說(shuō),每家客戶只需負(fù)擔(dān)一臺(tái)服務(wù)器成本的十分之一。如果相同的應(yīng)用由各家客戶進(jìn)行本
地安裝,就要求每家客戶專門為該應(yīng)用提供服務(wù)器,有時(shí)如果負(fù)載平衡和可用性要求高的話,還需要甚
至不止一臺(tái)服務(wù)器。因此,SaaS 模式比傳統(tǒng)模式更節(jié)約成本,對(duì)于可擴(kuò)展性較強(qiáng)的 SaaS 應(yīng)用而
言,隨著客戶的增多,每家客戶的運(yùn)營(yíng)成本會(huì)不斷降低。同時(shí),隨著客戶的增多,供應(yīng)商將加強(qiáng)多用戶
這一重要特性,以更低的成本提供更高質(zhì)量的服務(wù)。因此,即便考慮到 SaaS 供應(yīng)商的硬件和專業(yè)服
務(wù)成本,客戶仍能用相同的 IT 預(yù)算實(shí)現(xiàn)高得多的純軟件功能。
2 各圖中所示的比例分配僅用于說(shuō)明性目的,并不代表資源分配的確切比例,貴公司的實(shí)際資源分配可
能與圖示截然不同。
Copyright . Microsoft Corporation 2006. All Rights Reserved. 7
Hardware Services
Software
SaaS Vendor
Hardware
SaaS Vendor
Services
長(zhǎng)尾部分的銷售問(wèn)題
作者 Chris Anderson 在他于《連線》雜志 2004 年 10 月刊3上撰寫的“長(zhǎng)尾”一文中,介紹了
Amazon.com 等網(wǎng)絡(luò)零售商為什么處于有利地位,為什么能針對(duì)傳統(tǒng)零售商難以以低成本提供服務(wù)的
領(lǐng)域填補(bǔ)需求空白,從而使“長(zhǎng)尾”這一新概念通俗易懂。
The Long Tail
Demand
Popularity Rank
書籍、光盤等各種商品門類的需求往往符合“冪次定律分布”。在這種情況下,每年發(fā)布的書籍、CD
以及 DVD 數(shù)不勝數(shù),但只有少數(shù)能長(zhǎng)期成為暢銷品,其他的往往屬于反響平平的長(zhǎng)尾類出版物:大量
出版物只讓少部分有專門愛好的人感興趣,出版量很小,甚至連幾千份的拷貝都沒有。
傳統(tǒng)的實(shí)體型零售商致力于銷售最流行的出版物,因?yàn)樗麄儾豢赡馨褦?shù)以百萬(wàn)計(jì)的書籍、CD 以及
DVD 等出版物都拿來(lái)當(dāng)存貨。不過(guò),網(wǎng)絡(luò)零售商則不用擔(dān)心存貨問(wèn)題,他們能直接從全球各大倉(cāng)庫(kù)直
接向客戶發(fā)貨,即便銷售的出版物受歡迎程度很低,其廣告和銷售成本也毫不受影響,同樣像暢銷出版
物一樣大作宣傳。因而長(zhǎng)尾類低銷量出版物也能贏得大量收入。
3 http://www./wired/archive/12.10/tail.htm
Copyright . Microsoft Corporation 2006. All Rights Reserved.
8
大型的實(shí)體書店能在其書架上存放 13 萬(wàn)種不同的出版物。而 Anderson 指出,Amazon.com 書籍
銷量的大部分都來(lái)自 13 萬(wàn)種流行出版物之外,換言之,Amazon.com 賣出的書中,大部分都是在傳
統(tǒng)的實(shí)體書店中買不到的。
復(fù)雜的企業(yè)軟件解決方案供應(yīng)商面臨著相似的市場(chǎng)境況。
與簡(jiǎn)單的套裝軟件不同,企業(yè)軟件需要針對(duì)不同客戶的需求進(jìn)行定制,可能包括現(xiàn)場(chǎng)安裝、廠商服務(wù)隊(duì)
伍上門服務(wù)等,通常還需要專門的服務(wù)器硬件和支持人員加以管理。提供上述專門服務(wù)的成本會(huì)一定程
度上增加供應(yīng)商銷售軟件的最低成本。因此,這種軟件通常面向大型企業(yè),只有大型企業(yè)才有實(shí)力來(lái)支
付專門服務(wù)。不過(guò),相對(duì)于購(gòu)買企業(yè)解決方案的大型企業(yè)數(shù)量而言,有著同樣需求的中小型企業(yè)的數(shù)量
要多得多,但他們卻難以承擔(dān)高昂的成本。
Copyright . Microsoft Corporation 2006. All Rights Reserved. 9
SaaS 供應(yīng)商可消除維護(hù)成本,利用規(guī)模經(jīng)濟(jì)效益將客戶的硬件和服務(wù)需求加以整合,這樣就能提供比
傳統(tǒng)廠商價(jià)格低得多的解決方案,這不僅減輕了財(cái)務(wù)成本,而且大幅減少了客戶增加 IT 基礎(chǔ)設(shè)施建設(shè)
的需要。因此,SaaS 供應(yīng)商能面向全新的客戶群開展市場(chǎng)工作,而這部分客戶是傳統(tǒng)解決方案供應(yīng)商
所無(wú)力顧及的,因?yàn)樗麄兏揪蜎]辦法為這部分客戶提供低價(jià)格的服務(wù)。
有效面向小型客戶開展市場(chǎng)工作,這就要求習(xí)慣于通過(guò)人際交往以及傳統(tǒng)廠家和客戶關(guān)系搞營(yíng)銷的供應(yīng)
商們進(jìn)行思維轉(zhuǎn)型;大多數(shù)供應(yīng)商難以用大規(guī)模市場(chǎng)上的較低價(jià)格向更大的客戶群體提供個(gè)性化服務(wù)。
搞 SaaS 營(yíng)銷就像銷售手機(jī)彩鈴或音樂(lè)下載服務(wù)一樣,應(yīng)該讓客戶能訪問(wèn)您的 Web 站點(diǎn),成為您所
提供服務(wù)的付費(fèi)用戶,通過(guò)信用卡付費(fèi)就能開始享受服務(wù),整個(gè)過(guò)程無(wú)須供應(yīng)商方面的人為介入。這不
是說(shuō)您就不用對(duì)需求范圍廣的大規(guī)??蛻羧鹤鋈穗H聯(lián)系工作。不過(guò),在銷售工作的設(shè)計(jì)、營(yíng)銷、供應(yīng)和
定制過(guò)程中從頭到尾都是自動(dòng)化的,因此我們不僅能提供自動(dòng)化服務(wù),同時(shí)又能簡(jiǎn)化您支持部門員工的
工作,因而不用再幫助客戶完成相關(guān)任務(wù)。
應(yīng)用架構(gòu)
我們對(duì)軟件即服務(wù)理念還沒有最終定義,目前暫定的概念如下,即,軟件部署為托管服務(wù),通過(guò)因特網(wǎng)
存取。根據(jù)對(duì)軟件和存取這兩個(gè)詞定義的方式不同,上述定義可能包含很多含義,或許含義會(huì)多得不勝
枚舉。對(duì)應(yīng)用架構(gòu)師師而言,上述定義基本上不會(huì)對(duì)如何設(shè)計(jì)出可行的 SaaS 應(yīng)用發(fā)揮什么實(shí)際作
用,不能區(qū)別如何讓 SaaS 應(yīng)用成功,避免失敗。比方說(shuō),基本代碼有十年歷史的企業(yè)應(yīng)用,根據(jù)目
前需要現(xiàn)加上 HTML 前端,這種軟件也能算作廣義的軟件即服務(wù),不過(guò)這種應(yīng)用大多數(shù)都難以實(shí)現(xiàn)有
效擴(kuò)展,也不夠廉價(jià),因此都會(huì)遇到問(wèn)題。因此,為了定義什么才是成熟的 SaaS 應(yīng)用,我們必須提
出一些額外的標(biāo)準(zhǔn)。
單實(shí)例多用戶架構(gòu)的三大特點(diǎn)
從應(yīng)用架構(gòu)師的角度來(lái)看,設(shè)計(jì)出色的 SaaS 應(yīng)用與設(shè)計(jì)欠佳的應(yīng)用之間主要有三點(diǎn)不同之處。設(shè)計(jì)
出色的 SaaS 應(yīng)用具有可擴(kuò)展性、多用戶高效性,而且可配置。
應(yīng)用的可擴(kuò)展性是指能最大限度地提高并行性,以便更高效地利用應(yīng)用資源,例如,我們要優(yōu)化鎖定時(shí)
間、無(wú)態(tài)性、共享線程和網(wǎng)絡(luò)連接等匯集資源、高速緩沖參考數(shù)據(jù)以及對(duì)大型數(shù)據(jù)庫(kù)進(jìn)行分區(qū)等。
對(duì)習(xí)慣于設(shè)計(jì)獨(dú)立的單用戶應(yīng)用的架構(gòu)師而言,多用戶性要求他們進(jìn)行重要的思維轉(zhuǎn)型。例如,一家公
司的用戶使用 CRM 應(yīng)用服務(wù)存取客戶信息時(shí),該用戶連接的應(yīng)用實(shí)例同時(shí)可能還會(huì)為其他幾十家,甚
或是數(shù)百家公司的用戶提供服務(wù),各用戶之間彼此互不知情。這就要求應(yīng)用架構(gòu)能夠最大化不同用戶間
的資源共享,不過(guò)仍要區(qū)分屬于不同客戶的數(shù)據(jù)。
當(dāng)然,如果我們必須用一臺(tái)服務(wù)器上的單個(gè)應(yīng)用實(shí)例滿足多家不同公司的需求,那么我們就難以針對(duì)某
個(gè)最終用戶的使用體驗(yàn)編寫定制代碼,因?yàn)橹灰槍?duì)某個(gè)客戶進(jìn)行了應(yīng)用定制,就會(huì)改變其他用戶的使
用。因此,我們不是在傳統(tǒng)的意義上進(jìn)行應(yīng)用定制,而是讓每個(gè)客戶用元數(shù)據(jù)配置應(yīng)用的外觀和行為。
SaaS 架構(gòu)師面臨的挑戰(zhàn)在于,如何確??蛻魬?yīng)用配置的簡(jiǎn)易性,同時(shí)還不必為每項(xiàng)配置支付額外的開
發(fā)或運(yùn)營(yíng)成本。
軟件即服務(wù)的成熟模型
我們通過(guò)確定成熟 SaaS 應(yīng)用的三大重要特性進(jìn)一步改進(jìn)了 SaaS 的定義。不過(guò),成熟的 SaaS 模式
不一定同時(shí)具備這三個(gè)特性,有的應(yīng)用只具備其中的一種或兩種,但仍能滿足所有必需的商業(yè)要求。這
時(shí),如果實(shí)現(xiàn)其他的特點(diǎn)難以保持低成本性的話,那么應(yīng)用架構(gòu)師就不必實(shí)現(xiàn)其余的特性了。
從廣義上說(shuō),我們可采用四級(jí)模型來(lái)說(shuō)明 SaaS 應(yīng)用的成熟度,每一級(jí)都比前一級(jí)增加了上述三種成
熟特性中的一種。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
10
第一級(jí):特定的/定制的
成熟度的第一級(jí)類似于 20 世紀(jì) 90 年代傳統(tǒng)的應(yīng)用服務(wù)供應(yīng)商 (ASP) 提供軟件的模式。在這種情況
下,不同的客戶擁有各自主機(jī)應(yīng)用的定制版本,在主機(jī)服務(wù)器上運(yùn)行自己的應(yīng)用實(shí)例。從架構(gòu)上說(shuō),這
種成熟級(jí)別的軟件與傳統(tǒng)銷售的企業(yè)系列軟件很相似,即公司中的不同客戶連接到服務(wù)器上運(yùn)行的相同
實(shí)例,但該實(shí)例完全獨(dú)立于主機(jī)上其他客戶運(yùn)行的其他實(shí)例或進(jìn)程。
一般說(shuō)來(lái),傳統(tǒng)的客戶端—服務(wù)器應(yīng)用無(wú)需太多開發(fā)工作,也不必從頭重新設(shè)計(jì)整個(gè)系統(tǒng),就能轉(zhuǎn)變?yōu)?br>第一級(jí)成熟度的 SaaS 模型。盡管這一級(jí)別的成熟性難以提供全面成熟型 SaaS 解決方案的很多優(yōu)
勢(shì),但仍能幫助供應(yīng)商整合服務(wù)器硬件和管理,從而降低成本。
第二級(jí):可配置性
對(duì)于第二級(jí)成熟度而言,供應(yīng)商為不同的客戶(或用戶)分別提供應(yīng)用實(shí)例主機(jī)服務(wù)。就第一級(jí)成熟度
而言,每個(gè)實(shí)例都是對(duì)用戶分別定制的,而在第二級(jí)成熟度上,所有實(shí)例都使用相同的代碼實(shí)施,供應(yīng)
商提供詳細(xì)的配置選擇,讓客戶能改變應(yīng)用的外觀和行為,從而滿足客戶的需求。盡管不同實(shí)例在代碼
層面上彼此相同,但彼此之間仍完全隔離。
供應(yīng)商所有客戶都使用相同的代碼庫(kù),這大幅降低了 SaaS 應(yīng)用的服務(wù)要求,因?yàn)榇a庫(kù)的任何更改
都能立刻方便地作用于供應(yīng)商的所有客戶,從而無(wú)需逐一更新或優(yōu)化每個(gè)定制實(shí)例了。但是,在應(yīng)用最
初針對(duì)獨(dú)立定制而不是配置元數(shù)據(jù)進(jìn)行設(shè)計(jì)的情況下,將傳統(tǒng)的應(yīng)用轉(zhuǎn)變?yōu)榈诙?jí)成熟度的 SaaS 應(yīng)
用時(shí),比起第一級(jí)成熟度的轉(zhuǎn)型而言,將需要多得多的架構(gòu)重新設(shè)計(jì)工作。
與第一級(jí)成熟度類似,第二級(jí)成熟度也要求供應(yīng)商提供足夠的硬件和存儲(chǔ)資源,以支持大量應(yīng)用實(shí)例同
時(shí)運(yùn)行。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
11
第三級(jí):可配置性與多用戶效率
對(duì)于第三級(jí)成熟度,供應(yīng)商借助單個(gè)實(shí)例來(lái)滿足不同客戶的需求,并采用可配置的元數(shù)據(jù)為不同的用戶
提供獨(dú)特的用戶使用體驗(yàn)和特性集。授權(quán)與安全性策略可確保不同客戶的數(shù)據(jù)彼此區(qū)分開來(lái)。從最終用
戶的角度來(lái)看,不會(huì)察覺到應(yīng)用是與多個(gè)用戶共享的。
這使我們就不再需要為不同客戶的不同實(shí)例提供大量服務(wù)器空間,因此使用計(jì)算資源的效率將大大超過(guò)
第二級(jí)成熟度,從而直接降低了成本。但是,這時(shí)的一大弱點(diǎn)在于,應(yīng)用的可擴(kuò)展性有限。如果不用分
區(qū)來(lái)管理數(shù)據(jù)庫(kù)性能的話,我們只能通過(guò)采用更強(qiáng)大處理器來(lái)擴(kuò)展應(yīng)用(向上擴(kuò)展),但是這樣做只能
使投入回報(bào)逐漸降低,最終導(dǎo)致功能的提高難以適應(yīng)低成本的要求。
第四級(jí):可擴(kuò)展性、可配置性與多用戶效率
第四級(jí)成熟度也是最高級(jí)成熟度,這時(shí)供應(yīng)商在負(fù)載平衡的服務(wù)器群上為不同客戶提供主機(jī)服務(wù),運(yùn)行
相同的實(shí)例,不同客戶的數(shù)據(jù)彼此分開,可配置的元數(shù)據(jù)可以提供獨(dú)特的用戶體驗(yàn)與特性集。SaaS 系
統(tǒng)具備可擴(kuò)展性,可輕松適應(yīng)大規(guī)??蛻舻男枰?,可在無(wú)需對(duì)應(yīng)用進(jìn)行額外架構(gòu)設(shè)計(jì)的情況下根據(jù)需求
靈活地增減后端服務(wù)器的數(shù)量,不管有多少用戶,都能像針對(duì)單個(gè)用戶一樣方便地實(shí)施應(yīng)用修改。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
12
高級(jí)架構(gòu)
從架構(gòu)上看,SaaS 應(yīng)用與采用服務(wù)導(dǎo)向型設(shè)計(jì)原理開發(fā)的其他應(yīng)用很相似。
選擇成熟度級(jí)別
您的應(yīng)用應(yīng)采取哪種成熟度級(jí)別?我們可能認(rèn)為,所有 SaaS 應(yīng)用的最終目標(biāo)都是實(shí)現(xiàn)第四級(jí)的成
熟度,但事實(shí)并非如此。我們可將 SaaS 成熟度視為隔離數(shù)據(jù)和共享數(shù)據(jù)兩個(gè)極端之間的一點(diǎn)。
Per-tenant SLA
Data separation Isolate Share Economy of scale
Simpler management
具體應(yīng)用應(yīng)在兩端之間的哪一點(diǎn)上,這取決于您的業(yè)務(wù)、架構(gòu)及運(yùn)營(yíng)需求,也取決于客戶的考慮。
我們這里只做簡(jiǎn)單的說(shuō)明,不過(guò)您仍能看出,所有這些因素在一定程度上都是相互關(guān)聯(lián)的。
. 業(yè)務(wù)模型。隔離方法是否有利于贏利?如果拋棄了共享方案的經(jīng)濟(jì)性和管理優(yōu)勢(shì),這將意味著
您向消費(fèi)者提供應(yīng)用的成本將會(huì)更高。但在某些情況下,為了滿足其他需要,這種做法會(huì)是值
得的。此外,即便您向用戶解釋不存在機(jī)密數(shù)據(jù)遭竊的風(fēng)險(xiǎn),但有的客戶從法律或文化的角度
出發(fā),也會(huì)強(qiáng)烈抵制不同用戶共用應(yīng)用的架構(gòu)模型。當(dāng)然,說(shuō)到底,您的商業(yè)模型應(yīng)確保您不
管采取何種成熟度的模型,都能實(shí)現(xiàn)盈利。
. 架構(gòu)模型。您的應(yīng)用能否運(yùn)行統(tǒng)一的邏輯實(shí)例?如果您希望將基于臺(tái)式機(jī)或傳統(tǒng)客戶端—服務(wù)
器應(yīng)用轉(zhuǎn)移至基于因特網(wǎng)的交付系統(tǒng),那么原來(lái)的應(yīng)用可能根本不能與統(tǒng)一實(shí)例、以元數(shù)據(jù)為
中心的模式相兼容,您需要明確為了將原系統(tǒng)轉(zhuǎn)型為完全成熟的 SaaS 應(yīng)用進(jìn)行大量投資,到
底從財(cái)務(wù)上合不合算。如果您從頭設(shè)計(jì)和構(gòu)建網(wǎng)絡(luò)原生應(yīng)用,那么您在采用單個(gè)實(shí)例模式時(shí)才
會(huì)擁有更高的自由度。
. 運(yùn)營(yíng)模型。您能否確保始終滿足服務(wù)水平協(xié)議 (SLA) 的要求?您應(yīng)仔細(xì)考慮您與客戶之間現(xiàn)有
SLA 條款下您應(yīng)承擔(dān)的責(zé)任,其中包括停機(jī)時(shí)間、支持選項(xiàng)、災(zāi)難恢復(fù)等,并確定上述責(zé)任在
互不相關(guān)的客戶共用一個(gè)應(yīng)用實(shí)例的應(yīng)用架構(gòu)下能否得到保證。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
13
上圖描繪的大部分組件對(duì)大多數(shù)應(yīng)用架構(gòu)師而言都是相當(dāng)熟悉的。進(jìn)程服務(wù)給出了智能客戶端和/或網(wǎng)
絡(luò)供應(yīng)層可調(diào)用的界面,并能啟動(dòng)同步工作流程或長(zhǎng)時(shí)間運(yùn)行的事務(wù)處理,以調(diào)用其他商業(yè)服務(wù),與各
處的數(shù)據(jù)存儲(chǔ)進(jìn)行互動(dòng)以讀寫商業(yè)數(shù)據(jù)。安全性服務(wù)負(fù)責(zé)控制最終用戶和后臺(tái)軟件服務(wù)的存取。
最重要的區(qū)別在于增加了元數(shù)據(jù)服務(wù),其負(fù)責(zé)管理不同用戶的應(yīng)用配置。服務(wù)和智能客戶端與元數(shù)據(jù)服
務(wù)發(fā)生互動(dòng),以檢索描述各用戶配置和擴(kuò)展的相關(guān)信息。
元數(shù)據(jù)服務(wù)
就成熟的 SaaS 應(yīng)用而言,元數(shù)據(jù)服務(wù)供應(yīng)商為客戶提供了定制和配置應(yīng)用、滿足其特定需求的主要
手段。通常,客戶可在四大領(lǐng)域進(jìn)行配置更改:
. 用戶界面與品牌??蛻敉ǔOM哂杏脩艚缑娴恼{(diào)整功能,以反映各自公司的品牌風(fēng)格,因此
SaaS 應(yīng)用通常都提供相關(guān)特性,以使客戶能夠更改諸如圖形、色彩、字體等相關(guān)內(nèi)容。
. 工作流程與商務(wù)規(guī)則。為了能廣泛地向各種潛在客戶提供服務(wù),任務(wù)關(guān)鍵型 SaaS 應(yīng)用必須能夠
滿足不同工作流程的需要。例如,對(duì)于跟蹤發(fā)票流轉(zhuǎn)的應(yīng)用而言,一家客戶可能要求所有發(fā)票均由
同一名經(jīng)理批準(zhǔn);另一家客戶則要求每張發(fā)票都由兩名經(jīng)理先后批準(zhǔn),第三家客戶則要求每張發(fā)票
得到兩名經(jīng)理批準(zhǔn),而不考慮先后。這時(shí),不同客戶應(yīng)能根據(jù)需要自行配置應(yīng)用的工作流程,以滿
足各自的商業(yè)進(jìn)程要求。
. 數(shù)據(jù)模型的擴(kuò)展。對(duì)于許多數(shù)據(jù)驅(qū)動(dòng)型 SaaS 應(yīng)用而言,單個(gè)模型顯然不能滿足所有需要。即便
對(duì)于相對(duì)簡(jiǎn)單的任務(wù)專用應(yīng)用而言,如果數(shù)據(jù)字段和表格一成不變,也會(huì)給客戶造成麻煩??蓴U(kuò)展
的數(shù)據(jù)模型使客戶能自由地讓應(yīng)用根據(jù)自身需要工作,而不必為了滿足應(yīng)用的要求而改變商業(yè)進(jìn)
程。在本文隨后部分,您將進(jìn)一步了解可擴(kuò)展客戶數(shù)據(jù)模型的架構(gòu)。
. 存取控制。通常,客戶負(fù)責(zé)創(chuàng)建每個(gè)最終用戶各自的賬戶,并確定每個(gè)用戶能夠存取使用的資源和
功能。我們用安全策略跟蹤每個(gè)用戶的使用權(quán)限,客戶應(yīng)能對(duì)安全策略加以配置。
為了幫助客戶靈活地根據(jù)需要進(jìn)行軟件配置,我們將上述選項(xiàng)組織成層級(jí)的配置單元,即“配置域”,
每個(gè)配置域都包括不同的選項(xiàng),以更針對(duì)上述四個(gè)領(lǐng)域做出相應(yīng)更改。每家客戶都擁有頂級(jí)配置域,使
他們能夠在需要時(shí)進(jìn)行配置,并能在頂級(jí)配置域下構(gòu)建任意層級(jí)的一個(gè)或多個(gè)配置域。我們還采用關(guān)系
Copyright . Microsoft Corporation 2006. All Rights Reserved.
14
策略來(lái)決定子節(jié)點(diǎn) (child node) 能否繼承母節(jié)點(diǎn) (parent node) 的配置設(shè)置,或忽略母節(jié)點(diǎn)的設(shè)
置。
舉例而言,如果普通客戶購(gòu)買了整個(gè)企業(yè)的應(yīng)用使用權(quán),其不同的業(yè)務(wù)部門有著不同的需要,那么這些
部門都應(yīng)遵循統(tǒng)一的公司標(biāo)準(zhǔn),同時(shí)還應(yīng)各自配置自身使用的應(yīng)用元素。在各業(yè)務(wù)部門內(nèi)部,同樣也會(huì)
存在下級(jí)單位,它們都有自己特殊的配置需要。對(duì)于上述各組織單元而言,客戶可分別建立配置域,登
錄不同的單元選擇各自的配置選項(xiàng),設(shè)置或更改均可。
與供應(yīng)商定制的傳統(tǒng)業(yè)務(wù)應(yīng)用不同,SaaS 應(yīng)用更多情況下是由客戶自身進(jìn)行配置的。因此,設(shè)計(jì)配置
界面非常重要。理想情況下,客戶應(yīng)能夠通過(guò)向?qū)Щ蚝?jiǎn)易而直觀的屏幕指導(dǎo)進(jìn)行應(yīng)用配置,屏幕上應(yīng)提
供所有可用的選項(xiàng),既避免客戶面臨一大堆信息無(wú)從下手,又能清晰地反映給定配置域下能否針對(duì)相關(guān)
選項(xiàng)進(jìn)行更改。
安全性服務(wù)
在任何軟件環(huán)境下,安全性都是至關(guān)重要的。SaaS 的性質(zhì)決定了安全性既是客戶的最大關(guān)注點(diǎn),又是
應(yīng)用架構(gòu)師需優(yōu)先考慮的重點(diǎn)。以下給出的一些基本指南,有助于確保用戶控制其專用數(shù)據(jù)。
認(rèn)證
SaaS 供應(yīng)商通常將創(chuàng)建和維護(hù)用戶賬戶的責(zé)任下放給客戶,這稱作下放管理權(quán)。管理權(quán)下放造成的
情況是,客戶負(fù)責(zé)創(chuàng)建不同的用戶賬戶,而 SaaS 供應(yīng)商應(yīng)認(rèn)證有關(guān)賬戶。根據(jù)管理權(quán)下放模式的要
求,SaaS 架構(gòu)師采用兩種通用辦法來(lái)解決認(rèn)證問(wèn)題:一是集中認(rèn)證系統(tǒng) (centralized
authentication system),一是非集中認(rèn)證系統(tǒng) (decentralized authentication system)。所選
的認(rèn)證系統(tǒng)不同,將導(dǎo)致架構(gòu)的復(fù)雜性不同,也會(huì)導(dǎo)致最終用戶應(yīng)用體驗(yàn)的不同,因此您在制定決策
時(shí),應(yīng)根據(jù)商業(yè)模型的需要來(lái)確定應(yīng)用、客戶和最終用戶的需要。
對(duì)于集中認(rèn)證系統(tǒng)而言,供應(yīng)商管理中央用戶賬戶數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)為所有應(yīng)用的用戶提供服務(wù)??蛻?br>的管理員被授權(quán)在用戶賬戶目錄下創(chuàng)建、管理和刪除用戶賬戶。登錄應(yīng)用的用戶向應(yīng)用提供認(rèn)證信息,
有關(guān)信息根據(jù)中央目錄下的信息加以確認(rèn),如果數(shù)據(jù)有效,就允許該用戶訪問(wèn)。
這種方法所要求的認(rèn)證基礎(chǔ)設(shè)施相對(duì)簡(jiǎn)單,便于設(shè)計(jì)和實(shí)施,也不需要改變客戶自身的用戶基礎(chǔ)設(shè)施。
不過(guò)這種方法的重要缺點(diǎn)之一在于,集中認(rèn)證系統(tǒng)很難實(shí)現(xiàn)單點(diǎn)登錄 (single sign-on),即用戶一次
登錄,就始終能訪問(wèn)企業(yè)網(wǎng)絡(luò)。沒有單點(diǎn)登錄功能,用戶總會(huì)被提示輸入應(yīng)用登錄信息,每次都要手動(dòng)
再次輸入。
在非集中認(rèn)證系統(tǒng)中,客戶采用可與其自己的用戶目錄服務(wù)相連接的聯(lián)合服務(wù) (federation
service)。當(dāng)最終用戶嘗試訪問(wèn)應(yīng)用時(shí),聯(lián)合服務(wù)將對(duì)用戶進(jìn)行本地認(rèn)證,并發(fā)布安全令牌, SaaS
供應(yīng)商的認(rèn)證系統(tǒng)將接受安全令牌,并允許用戶接入應(yīng)用。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
15
在單點(diǎn)登錄相當(dāng)重要的情況下,這是一種理想的方式,因?yàn)檎J(rèn)證在后臺(tái)進(jìn)行,不要求用戶記住并輸入一
系列相關(guān)信息。不過(guò),非集中認(rèn)證方案比集中認(rèn)證方案要復(fù)雜得多,而且,如果 SaaS 應(yīng)用有著幾千
家客戶的話,就要與眾多客戶的聯(lián)合服務(wù)分別建立聯(lián)邦式的信任關(guān)系。
在許多情況下,SaaS 供應(yīng)商都希望采用混合方式,對(duì)小型客戶采用集中認(rèn)證系統(tǒng)來(lái)認(rèn)證和管理,而對(duì)
要求單點(diǎn)登錄并愿為此付費(fèi)的大型企業(yè)提供聯(lián)合服務(wù)。
授權(quán)
通常,存取 SaaS 應(yīng)用中的資源和商務(wù)功能都用“角色”的概念來(lái)管理。角色與公司中的特定崗位功
能映射。每個(gè)角色都被賦予一項(xiàng)或更多“許可”,分配到某個(gè)角色的用戶就能根據(jù)相應(yīng)的“業(yè)務(wù)規(guī)則”
執(zhí)行行動(dòng)。
Purchaser
Approver if(totalCost < 1500)
if((role == ‘Purchaser‘) ||
(role==‘Approver‘ &&
duringOfficeHours==false))
Users &
Groups Roles Permissions Business Rules Action
SaaS 應(yīng)用內(nèi)部負(fù)責(zé)對(duì)角色進(jìn)行管理,角色可包含單個(gè)用戶的賬戶以及用戶群組。不同用戶賬戶和用
戶群組根據(jù)需要被分配到不同的角色。
根據(jù)用戶所分配到的角色,該用戶可獲得一項(xiàng)或者多項(xiàng)許可,以執(zhí)行特定的操作或活動(dòng)。這些活動(dòng)通常
直接與重要的商務(wù)功能或應(yīng)用管理本身映射。例如,購(gòu)買應(yīng)用可能包括創(chuàng)建、提交、批準(zhǔn)以及拒絕購(gòu)買
訂單的相關(guān)許可;抵押經(jīng)紀(jì)公司的應(yīng)用會(huì)包括檢查借款人信用和批準(zhǔn)貸款的許可,等等??筛鶕?jù)需要向
一個(gè)或多個(gè)角色分配一個(gè)許可;每個(gè)用戶可根據(jù)所屬的角色獲得相關(guān)角色的所有許可。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
16
應(yīng)用可根據(jù)商務(wù)規(guī)則對(duì)活動(dòng)和資源的使用實(shí)現(xiàn)比許可更精確的控制。商務(wù)規(guī)則規(guī)定了在允許使用前必須
滿足的條件。例如,您可使用相關(guān)商務(wù)規(guī)則,只允許用戶在正常辦公時(shí)間內(nèi)在不同賬戶間轉(zhuǎn)賬,或者規(guī)
定轉(zhuǎn)賬金額不得超過(guò)一定數(shù)量。
存取控制由配置域管理。每個(gè)配置域根據(jù)應(yīng)用的關(guān)系策略繼承上級(jí)配置域的角色、許可和商務(wù)規(guī)則,并
可在適當(dāng)?shù)臅r(shí)候?qū)ζ溥M(jìn)行修改、添加和刪除。例如,假設(shè)有家客戶總部設(shè)在美國(guó),并在加拿大多倫多設(shè)
有分支機(jī)構(gòu)。根配置域設(shè)有最基本的“福利管理員”角色,可針對(duì)雇員福利管理提供一系列許可,其中
包括管理公司的 401(k) 退休儲(chǔ)蓄計(jì)劃等。由于 401(k) 計(jì)劃是美國(guó)稅收法律的產(chǎn)物,不適用于加拿
大,因此我們可為加拿大辦事處構(gòu)建子配置域,在繼承“福利管理員”角色和相關(guān)許可的同時(shí),對(duì)角色
的許可給出特殊處理,以修改401(k) 計(jì)劃相關(guān)內(nèi)容。在修改原許可的同時(shí),客戶增加了新的許可,
允許該角色修改注冊(cè)退休儲(chǔ)蓄計(jì)劃 (RRSP) 項(xiàng)目,即加拿大相當(dāng)于美國(guó) 401(k) 的立法。
Root Scope Canada (child scope)
Benefits
Administrator
Benefits
Administrator
從最佳實(shí)踐角度看,應(yīng)用應(yīng)向所有用戶提供一系列默認(rèn)的角色、許可和商務(wù)規(guī)則,并應(yīng)允許不同用戶通
過(guò)直觀易用的界面定制這些規(guī)則和創(chuàng)建更多規(guī)則。
深入探討:多用戶數(shù)據(jù)模型
到此為止,我們已在相當(dāng)高級(jí)的層面上討論了應(yīng)用架構(gòu),下面我們不妨來(lái)詳細(xì)討論一個(gè)具體問(wèn)題,即如
何設(shè)計(jì)一款客戶能在多用戶環(huán)境下實(shí)現(xiàn)擴(kuò)展的數(shù)據(jù)模型。我們并不是要全面討論數(shù)據(jù)模型擴(kuò)展,不過(guò)這
有助于您在一定程度上了解 SaaS 應(yīng)用設(shè)計(jì)相關(guān)的各種架構(gòu)問(wèn)題。
根據(jù)設(shè)計(jì),您的應(yīng)用自然將包括標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)設(shè)置,根據(jù)解決方案的性質(zhì)提供默認(rèn)的表格、字段、查詢
和關(guān)系等。不過(guò),不同公司有著各自獨(dú)特的需求,僵化的、不能擴(kuò)展的數(shù)據(jù)模型難以滿足這種需求。例
如, SaaS 工作跟蹤系統(tǒng)的一位客戶需要存儲(chǔ)外部生成的分類代碼串,每項(xiàng)記錄都應(yīng)將系統(tǒng)與其他進(jìn)
程完全集成。而另一家客戶則不需要分類串字段,而要求支持類 ID 號(hào)(整數(shù))跟蹤。因此,除非在少
數(shù)專業(yè)領(lǐng)域,您開發(fā)和實(shí)施的方法通常應(yīng)讓客戶能擴(kuò)展默認(rèn)的數(shù)據(jù)模型,以滿足其各自的需求,同時(shí)又
不會(huì)影響其他客戶使用的數(shù)據(jù)模型。我們將討論可解決上述問(wèn)題的三種一般性方法:一是專用的用戶數(shù)
據(jù)庫(kù);二是共享數(shù)據(jù)庫(kù)配合固定擴(kuò)展集,;三是共享數(shù)據(jù)庫(kù)配合定制擴(kuò)展。
專用用戶數(shù)據(jù)庫(kù)
第一種方法就是為各客戶提供專用的數(shù)據(jù)庫(kù),客戶可根據(jù)需要擴(kuò)展數(shù)據(jù)庫(kù)。
就這種方法而言,如果有新客戶就創(chuàng)建新的標(biāo)準(zhǔn)默認(rèn)數(shù)據(jù)庫(kù),作為進(jìn)程部署的一部分,同時(shí)元數(shù)據(jù)服務(wù)
跟蹤數(shù)據(jù)庫(kù)分配給客戶的情況。一旦創(chuàng)建了新的數(shù)據(jù)庫(kù),客戶可在應(yīng)用的用戶界面和程序邏輯允許的情
況下隨意修改,包括創(chuàng)建新字段、新查詢,乃至新的表格和關(guān)系等。
如果提供服務(wù)的成本不是問(wèn)題的話,那么我們考慮這種方法就行了,因?yàn)檫@是最簡(jiǎn)單的方法,而且為客
戶擴(kuò)展默認(rèn)數(shù)據(jù)模型提供了最大的自由度。此外,銀行和醫(yī)療記錄管理等領(lǐng)域的客戶需要極高的數(shù)據(jù)隔
離,如果不能為不同的客戶提供獨(dú)立的數(shù)據(jù)庫(kù),甚至根本不會(huì)考慮有關(guān)應(yīng)用。這種方法的劣勢(shì)在于,每
Copyright . Microsoft Corporation 2006. All Rights Reserved.
17
部服務(wù)器只能支持?jǐn)?shù)量有限的數(shù)據(jù)庫(kù),因此基礎(chǔ)設(shè)施成本會(huì)不斷升高,而且比其他方法的成本增速都要
快。
共享數(shù)據(jù)庫(kù),固定擴(kuò)展集
第二種方法是所有客戶共享一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)預(yù)設(shè)一些定制字段,允許用戶根據(jù)需要分配使用。
438
345
784
777
345
TenantID
Pat
Ned
Mary
Kay
Ted
FirstName
1952-11-04
1940-03-08
1962-12-21
1956-09-25
1970-07-02
BirthDate
null
null
null
23
null
Custom1 Custom2 Custom3
San Francisco
Paid
null
null
Paid
Yes
null
null
null
null
上圖中,不同客戶的記錄在同一個(gè)表格中共存;客戶 ID 字段將不同記錄與相應(yīng)的客戶相關(guān)聯(lián)。除了標(biāo)
準(zhǔn)字段集外,還提供了一系列定制字段,各客戶可選擇字段的用途,以及如何收集數(shù)據(jù)。
定制字段可根據(jù)類型區(qū)分,因此客戶可通過(guò)應(yīng)用和數(shù)據(jù)庫(kù)提供的任何內(nèi)置的類型檢查和確認(rèn)功能來(lái)確認(rèn)
數(shù)據(jù)。此外,字段也可不分為類型,以便客戶用其存儲(chǔ)任何類型的數(shù)據(jù)。(客戶也可選擇提供自己的確
認(rèn)邏輯,避免用戶無(wú)意輸入無(wú)效數(shù)據(jù)。)
共享數(shù)據(jù)庫(kù)在提供服務(wù)方面的成本大大低于隔離的數(shù)據(jù)庫(kù),因?yàn)閱蝹€(gè)數(shù)據(jù)庫(kù)引擎在需要分區(qū)前可支持大
量客戶。這種方法的最大弱點(diǎn)在于,數(shù)據(jù)模型的可擴(kuò)展性受限于定制字段的數(shù)量。為了明智地決定定制
字段的數(shù)量,應(yīng)認(rèn)真分析客戶潛在的需要。如果定制字段太少,客戶就不能有效使用應(yīng)用;如果定制字
段太多,就會(huì)造成數(shù)據(jù)庫(kù)浪費(fèi),很多字段都得不到利用。
共享數(shù)據(jù)庫(kù),定制擴(kuò)展
第三種方法是構(gòu)建統(tǒng)一的共享數(shù)據(jù)庫(kù),并允許客戶自行擴(kuò)展數(shù)據(jù)模型,在不同的表格中將定制數(shù)據(jù)存儲(chǔ)
為名稱值對(duì) (name-value pair)。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
18
438
345
784
777
345
TenantID
Pat
Ned
Mary
Kay
Ted
FirstName
1952-11-04
1940-03-08
1962-12-21
1956-09-25
1970-07-02
BirthDate RecordID
Affiliation
Subscriber
Expire
Status
Subscriber
Name
Acme
No
2008-07-29
Gold
Yes
Value

1
301
117
564
564
893
RecordID
301
117
564
null
893
這時(shí),包含定制數(shù)據(jù)的每個(gè)客戶記錄都被分配到了一個(gè)唯一的記錄 ID,在獨(dú)立的擴(kuò)展表格中與一行或
多行相匹配。對(duì)于表格中的各行而言,都存儲(chǔ)了一個(gè)名稱值對(duì)。每個(gè)客戶都能根據(jù)商務(wù)需要?jiǎng)?chuàng)建任意數(shù)
量的名稱值對(duì)。當(dāng)應(yīng)用檢索客戶記錄時(shí),會(huì)在定制數(shù)據(jù)表格中進(jìn)行搜索,選擇所有對(duì)應(yīng)于記錄 ID 的
行,返回后作為普通字段數(shù)據(jù)處理。顯然,定制數(shù)據(jù)表格中的數(shù)據(jù)不能分類,因?yàn)槠渲邪臄?shù)據(jù)對(duì)不
同客戶而言可能采用多種不同格式。為了解決這一問(wèn)題,我們可選擇再增加一列,保存數(shù)據(jù)類型標(biāo)識(shí)
符,這樣在檢索數(shù)據(jù)時(shí)就能將數(shù)據(jù)與相應(yīng)的數(shù)據(jù)類型對(duì)應(yīng)。
這種方法使我們能夠隨意擴(kuò)展數(shù)據(jù)模型,同時(shí)還能保持采用共享數(shù)據(jù)庫(kù)的成本優(yōu)勢(shì)。其主要弱點(diǎn)在于增
加了數(shù)據(jù)庫(kù)功能的復(fù)雜性,如檢索、索引、查詢和更新記錄都變得更為復(fù)雜。如果您估計(jì)客戶在擴(kuò)展默
認(rèn)數(shù)據(jù)模型時(shí)需要高度靈活性而又不需要數(shù)據(jù)隔離,那么這種方法就是最佳選擇。
在開發(fā)可擴(kuò)展性數(shù)據(jù)模型時(shí),應(yīng)記住,客戶實(shí)施的任何擴(kuò)展都會(huì)要求商業(yè)邏輯的相應(yīng)擴(kuò)展,這樣應(yīng)用才
能使用定制數(shù)據(jù),同時(shí)也要求配置邏輯的擴(kuò)展,這樣用戶才能輸入定制數(shù)據(jù)并獲得輸出。因此,您向客
戶提供的配置界面應(yīng)針對(duì)上述三種方法提供相應(yīng)的更新機(jī)制,并最好以整合的方式提供。(在后續(xù)發(fā)布
的文章中,我們將討論如何采取相應(yīng)機(jī)制,幫助客戶擴(kuò)展商務(wù)邏輯和用戶界面。)
可擴(kuò)展性
大型企業(yè)軟件旨在讓數(shù)千人同時(shí)使用。如果您有過(guò)開發(fā)此類企業(yè)應(yīng)用的經(jīng)驗(yàn),您肯定已親自遇到過(guò)創(chuàng)建
可擴(kuò)展架構(gòu)的重大挑戰(zhàn)。對(duì)于 SaaS 應(yīng)用而言,可擴(kuò)展性更為重要:您所支持的用戶數(shù)量,是單個(gè)客
戶的平均用戶群乘以客戶總數(shù)。對(duì)那些習(xí)慣于設(shè)計(jì)內(nèi)部企業(yè)軟件的 ISV 來(lái)說(shuō),支持這樣大規(guī)模的用戶
群就如同從低級(jí)別聯(lián)賽進(jìn)級(jí)參加頂級(jí)聯(lián)賽一樣:規(guī)則是熟悉的,但賽事本身則是完全不同的級(jí)別。這時(shí)
您所構(gòu)建的不是一個(gè)廣泛部署的業(yè)務(wù)關(guān)鍵型企業(yè)應(yīng)用,而是一個(gè)因特網(wǎng)級(jí)的系統(tǒng),需要積極支持?jǐn)?shù)以百
萬(wàn)計(jì)的潛在用戶群。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
19
應(yīng)用擴(kuò)展
當(dāng)然,您的解決方案很難成為像 Hotmail 那樣擁有龐大的用戶群(如果確實(shí)擁有這么多用戶,真該恭
喜您?。2贿^(guò),可擴(kuò)展性方面的挑戰(zhàn)卻是相同的。
應(yīng)用可向上擴(kuò)展(將應(yīng)用轉(zhuǎn)移至更強(qiáng)大的較大型服務(wù)器上),也可橫向擴(kuò)展(在更多的服務(wù)器上運(yùn)行應(yīng)
用)。對(duì)所有曾用全新計(jì)算機(jī)取代過(guò)舊計(jì)算機(jī)的人來(lái)說(shuō),向上擴(kuò)展并不陌生,該解決方案通常更適用于
那些無(wú)需為眾多并發(fā)用戶提供服務(wù)的小型應(yīng)用。不過(guò),就 SaaS 而言,橫向擴(kuò)展通常是擴(kuò)充容量的最
佳辦法,這一點(diǎn)我們?cè)?SaaS 成熟度模型中已經(jīng)探討過(guò)了。設(shè)計(jì)出色的 SaaS 應(yīng)用可橫向擴(kuò)展到眾多
服務(wù)器上,每臺(tái)服務(wù)器都運(yùn)行應(yīng)用的一個(gè)或更多實(shí)例。設(shè)計(jì)“橫向擴(kuò)展型”應(yīng)用的一些設(shè)計(jì)指南如下:
. 設(shè)計(jì)應(yīng)用運(yùn)行在無(wú)狀態(tài)模式下,所有必需的用戶和會(huì)話數(shù)據(jù)都存儲(chǔ)在客戶端或分布式存儲(chǔ)設(shè)備上,
任何應(yīng)用實(shí)例都能訪問(wèn)。無(wú)狀態(tài)是指每個(gè)事務(wù)處理都能由任何實(shí)例來(lái)完成,用戶在一次會(huì)話中可用
眾多不同的實(shí)例進(jìn)行事務(wù)處理,但用戶本身并不知情;
. 設(shè)計(jì)應(yīng)用進(jìn)行異步 I/O 操作,這樣應(yīng)用在等待輸入輸出完成時(shí)也能進(jìn)行有用的工作;
. 將線程、網(wǎng)絡(luò)連接和數(shù)據(jù)庫(kù)連接等資源集中,這有助于使計(jì)算資源最大化,并提高您預(yù)測(cè)資源使用
的能力;
. 采用既可以實(shí)現(xiàn)并發(fā)最大化,同時(shí)還能使排它鎖定最小化的方式寫入數(shù)據(jù)庫(kù)操作。例如,在執(zhí)行只
讀操作時(shí),不要鎖定記錄。
當(dāng)然,這只是對(duì)這一問(wèn)題的最簡(jiǎn)單討論。關(guān)于如何實(shí)施可擴(kuò)展架構(gòu),我們可以大書特書,有關(guān)材料可謂
汗牛充棟。如欲了解更多指南,請(qǐng)參見《微軟模式和實(shí)踐》中有關(guān)性能與可擴(kuò)展性方面的資料,網(wǎng)址如
下:http://msdn.microsoft.com/practices/Topics/perfscale/default.aspx
數(shù)據(jù)擴(kuò)展
隨著數(shù)據(jù)庫(kù)向越來(lái)越多的用戶同時(shí)提供服務(wù)以及數(shù)據(jù)庫(kù)的不斷擴(kuò)大,執(zhí)行查詢和搜索等操作所需的時(shí)間
也將大幅延長(zhǎng)。 SaaS 應(yīng)用通常使用相同的數(shù)據(jù)庫(kù)同時(shí)為數(shù)以千計(jì)的客戶提供服務(wù),因此特別容易受
到該類型性能降低的影響。所以,我們要為未來(lái)的發(fā)展做好充分計(jì)劃,這一點(diǎn)相當(dāng)重要。
擴(kuò)展數(shù)據(jù)庫(kù)的簡(jiǎn)便方法之一就是進(jìn)行分區(qū),將數(shù)據(jù)分入較小的塊,以提高查詢和更新的效率。我們不妨
考慮建立分區(qū)策略,明確數(shù)據(jù)分區(qū)的最佳途徑。例如,如果應(yīng)用的客戶來(lái)自世界各地,那么我們可采用
地理分區(qū)策略,屬于歐洲客戶的數(shù)據(jù)位于一個(gè)分區(qū),屬于亞洲客戶的數(shù)據(jù)位于另一個(gè)分區(qū),以此類推。
就大多數(shù)情況而言,數(shù)據(jù)庫(kù)的大小會(huì)不斷擴(kuò)展。因此,我們還應(yīng)采取一個(gè)適當(dāng)?shù)膭?dòng)態(tài)再分區(qū)策略,將已
經(jīng)分區(qū)的數(shù)據(jù)進(jìn)行再分區(qū),以滿足性能和擴(kuò)展的需要,這一點(diǎn)也相當(dāng)重要。
操作結(jié)構(gòu)
第三個(gè)重大思維轉(zhuǎn)變就是優(yōu)化應(yīng)用的操作結(jié)構(gòu):將應(yīng)用提供給客戶需要做哪些工作?如何保證應(yīng)用的可
用性以及如何經(jīng)濟(jì)有效地確保應(yīng)用良好運(yùn)行?對(duì)于許多 ISV 而言,他們從未幫助客戶運(yùn)行過(guò)數(shù)據(jù)中
心,這可能也是 SaaS 供應(yīng)商最不熟悉的環(huán)節(jié)。 SaaS 供應(yīng)商不僅應(yīng)是軟件設(shè)計(jì)和市場(chǎng)營(yíng)銷專家,還
需是操作和管理方面的專家。
微軟操作框架 (MOF) 等資源能夠針對(duì)維護(hù)系統(tǒng)可靠性、可用性、可支持性和易管理性等提供大量有益
的相關(guān)指導(dǎo)。除 MOF 能解決常見操作問(wèn)題外, SaaS 模式還具有一些自身特有的難題。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
20
共享服務(wù)
如果您曾經(jīng)親自創(chuàng)建過(guò)企業(yè)級(jí)萬(wàn)維網(wǎng),那么您可能會(huì)對(duì)網(wǎng)絡(luò)托管和中間件服務(wù)的基本情況有所了解。公
司既可獨(dú)立托管網(wǎng)站,也可與外部供應(yīng)商達(dá)成協(xié)議,共同進(jìn)行設(shè)備代管或包括硬件、存儲(chǔ)和網(wǎng)絡(luò)帶寬等
項(xiàng)目在內(nèi)的全業(yè)務(wù)托管。托管服務(wù)主要確保站點(diǎn)的可用性,但通常不負(fù)責(zé)站點(diǎn)的運(yùn)營(yíng)和維護(hù)。
在準(zhǔn)備托管時(shí),可考慮增加一個(gè) SaaS 附加層。根據(jù)您的業(yè)務(wù)計(jì)劃,您可能需要一個(gè)測(cè)量與計(jì)費(fèi)系
統(tǒng),以便實(shí)現(xiàn)如下目標(biāo):
. 準(zhǔn)確跟蹤客戶的使用,根據(jù)用戶使用的時(shí)間和資源向他們開出賬單。
. 在某些時(shí)刻或滿足有關(guān)標(biāo)準(zhǔn)的情況下限制或阻止訪問(wèn)。
. 監(jiān)控站點(diǎn)訪問(wèn)和性能,確保符合 SLA 的規(guī)定。
. 執(zhí)行其他功能,確??蛻舻臒o(wú)縫體驗(yàn),滿足或超過(guò)客戶的預(yù)期目標(biāo)。
用于執(zhí)行上述功能的系統(tǒng)整體成為共享服務(wù)。
共享服務(wù)可進(jìn)一步分為兩小類。
. 運(yùn)營(yíng)支持服務(wù) (OSS) 處理賬戶激活、供應(yīng)、服務(wù)擔(dān)保、使用和測(cè)量等運(yùn)營(yíng)問(wèn)題。
. 業(yè)務(wù)支持服務(wù) (BSS) 支持計(jì)費(fèi)服務(wù)(其中包括發(fā)票、定價(jià)、稅收和收款等)和客戶管理(其中包
括訂單錄入、客戶自助服務(wù)、客戶關(guān)懷、故障記錄和客戶關(guān)系管理等)。
與傳統(tǒng)的 Web 主機(jī)托管一樣,您也應(yīng)確定是自建共享服務(wù)層并自己提供應(yīng)用的主機(jī)服務(wù),還是與外部
主機(jī)服務(wù)公司(即 SaaS 供應(yīng)商)達(dá)成合同,由其來(lái)提供相應(yīng)服務(wù)。 SaaS 供應(yīng)商可提供一系列共享
服務(wù),能夠有效解決上述商務(wù)與運(yùn)營(yíng)問(wèn)題。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
21
監(jiān)督
您與客戶達(dá)成的 SLA 將您應(yīng)滿足的運(yùn)營(yíng)標(biāo)準(zhǔn)加以量化。SLA 是具有法律約束力的合同,如果不能滿足
協(xié)議要求,就意味著將損失大量收入,對(duì)您的商譽(yù)造成影響。監(jiān)督應(yīng)用架構(gòu),防范其出問(wèn)題,這是在問(wèn)
題導(dǎo)致嚴(yán)重停機(jī)或降低性能之前查出并修復(fù)故障的重要途徑。
可用性監(jiān)控
確保系統(tǒng)的高度可用性是所有 SaaS 開發(fā)商的重中之重。停機(jī)不僅影響一臺(tái)服務(wù)器或數(shù)據(jù)中心,還會(huì)
導(dǎo)致大部分客戶數(shù)據(jù)丟失,降低工作效率,甚至影響到所有用戶!有些 ISV 從傳統(tǒng)的臺(tái)式機(jī)或客戶端
—服務(wù)器軟件開發(fā)向 SaaS 模式轉(zhuǎn)型,對(duì)他們來(lái)說(shuō),確保以網(wǎng)絡(luò)為中心的應(yīng)用模型的可用性,將是全
新的、從未遇到過(guò)的挑戰(zhàn)。我們建議您在應(yīng)用中建立中心監(jiān)控 (heartbeat monitoring) 與告警機(jī)制
等基本方法的支持,并特別關(guān)注潛在的薄弱連接,如不在您控制之下的到數(shù)據(jù)庫(kù)的遠(yuǎn)程連接。
當(dāng)然,告警等技術(shù)機(jī)制只是確保高度可用性的一部分,如果發(fā)出告警卻沒有任何反應(yīng),那么也根本不能
起作用。要確保您的運(yùn)營(yíng)中心制定具體到位的行動(dòng)措施和標(biāo)準(zhǔn),在系統(tǒng)發(fā)生故障時(shí)能發(fā)揮實(shí)效。
如欲了解與高可用性相關(guān)問(wèn)題的概括介紹,請(qǐng)參見微軟 TechNet 上的文章“服務(wù)管理功能:可用
性”,網(wǎng)址為:
http://www.microsoft.com/technet/itsolutions/cits/mo/smf/smfavamg.mspx。
性能監(jiān)控
客戶希望您提供的應(yīng)用達(dá)到可接受的性能水平。從一定意義上說(shuō),SLA 作為您與客戶達(dá)成合同的一部
分,對(duì)這種性能要求提出了明確規(guī)定。不過(guò),除了 SLA 的明文規(guī)定外,如果客戶感覺您的應(yīng)用速度
慢,反應(yīng)遲鈍,那么他們也很可能終止合同,或拒絕繼續(xù)作為付費(fèi)用戶。牢騷滿腹的用戶會(huì)在網(wǎng)站上大
發(fā)不滿或在行業(yè)出版物上抱怨連連,從而使您的應(yīng)用聲名狼藉。相反,快速高效的應(yīng)用不僅能滿足用戶
需求,還能使他們開心。如果客戶從反應(yīng)較慢的傳統(tǒng)軟件套件轉(zhuǎn)而采用您的軟件的話,您還會(huì)使他們更
容易接受整個(gè) SaaS 模式。
為了確保高級(jí)性能,只要有可能,就應(yīng)直接在應(yīng)用設(shè)計(jì)中構(gòu)建相應(yīng)的性能支持。要對(duì) CPU 占用和應(yīng)用
響應(yīng)時(shí)間等性能指標(biāo)設(shè)定標(biāo)準(zhǔn),如果出現(xiàn)管理問(wèn)題,要馬上通知相關(guān)人員解決。
確定性能底線通常是最重要的工作。性能底線將便于我們?cè)诓徽G闆r發(fā)生時(shí)及時(shí)察覺問(wèn)題的癥結(jié)所
在。
結(jié)論
本文討論的有關(guān)問(wèn)題還有大量的篇幅可談可寫,不過(guò),您讀到現(xiàn)在,應(yīng)該對(duì) SaaS 模式以及如何讓您
和您的客戶受益于這種模式有了一定的了解,并建立了一個(gè)基本的相關(guān)概念框架。作為一種軟件服務(wù)的
新模式,SaaS 是建立在多用戶效率、高度可擴(kuò)展性與元數(shù)據(jù)可配置性基礎(chǔ)上的架構(gòu)模型,能夠以極低
的成本為現(xiàn)有與潛在客戶提供出色的軟件。采用新的理念與原理將助您更有效地把握長(zhǎng)尾部分的商機(jī)。
Copyright . Microsoft Corporation 2006. All Rights Reserved.
22
反饋
本文作者歡迎您就本文內(nèi)容提供反饋意見。請(qǐng)將您的反饋意見發(fā)送至以下電子郵件地址:
fredch@microsoft.comgianpc@microsoft.com。謝謝!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多