SaaS模式、技術(shù)與案例詳解——第15章 SaaS平臺(tái)的技術(shù)選型(saas模式與技術(shù)架構(gòu))
【本章導(dǎo)讀語(yǔ)】
“笑嘻嘻的小貓咪,”愛麗斯問道,“請(qǐng)您告訴我,我應(yīng)該走哪條路
呢?”“那取決于您想去何方?!毙∝埢卮鹫f。
________路易斯.卡羅爾,《愛麗斯漫游仙境》
“磨刀不誤砍柴功”,一個(gè)好的工具可以快速地開發(fā)出一個(gè)系統(tǒng),這樣在時(shí)間及效率上都取得最好的優(yōu)化,也降低了開發(fā)成本。不過,用什么開發(fā)工具完全取決于您公司自己。
15.1 SaaS平臺(tái)選型技術(shù)基本要求
SaaS平臺(tái)本身業(yè)務(wù)特殊,注冊(cè)用戶多,使用范圍廣等特點(diǎn),對(duì)平臺(tái)的技術(shù)框架選型也有許多要求,主要包括如下:
l 運(yùn)行穩(wěn)定、安全可靠,性能卓越。
l 開發(fā)快捷,并且有強(qiáng)大的拓展能力。
l 支持分布式部署和分布式事務(wù)。
l 支持?jǐn)?shù)據(jù)交換和消息傳遞。
l 有較強(qiáng)的portal管理能力。
l 能開發(fā)比較強(qiáng)大,容易吸引客戶的交互界面。
l 通過比較簡(jiǎn)單的設(shè)計(jì)開發(fā),就能實(shí)現(xiàn)SOA架構(gòu)。
l 具備強(qiáng)大的集成支持,如集成即時(shí)通訊等。
l 具有移動(dòng)商務(wù)解決方案的開發(fā)和整合支持。
15.2 三種技術(shù)平臺(tái)簡(jiǎn)析
目前IT業(yè)界上涉及的開發(fā)框架主要包括三個(gè):domino、j2ee和.net框架,Domino有完善的權(quán)限框架體系,但網(wǎng)站開發(fā)(大型企業(yè)社區(qū)的建設(shè))、軟件系統(tǒng)集成和搜索上非常不方便,因此不太適合。
J2EE功能強(qiáng)大、拓展能力強(qiáng),使用人員多,開源項(xiàng)目免費(fèi)資源也很多,但大多數(shù)項(xiàng)目存在一定的bug和隱患,不是很穩(wěn)定,需要自己投入比較大的修改成本,另外J2EE框架開發(fā)成本也不低。
.net平臺(tái)功能完整,開放快捷,性能卓越,微軟服務(wù)支持到位。但開源項(xiàng)目相對(duì)J2EE較少。
因此從技術(shù)框架選型上主要可以采用.net或者J2EE,下面對(duì).net和J2EE做一些分析
和比較。
15.3 J2EE和.net比較
J2EE和.net是軟件業(yè)界中主要的開發(fā)技術(shù),這二種技術(shù)又各有其優(yōu)勢(shì)與不足,SaaS平臺(tái)及應(yīng)用系統(tǒng)該選擇哪種技術(shù),這是一個(gè)長(zhǎng)遠(yuǎn)的技術(shù)策略問題。不象有的項(xiàng)目,用戶一般對(duì)開發(fā)技術(shù)有要求,對(duì)使用的環(huán)境都有明確的規(guī)定。SaaS系統(tǒng)用戶只有使用權(quán),沒有終身?yè)碛袡?quán),用戶也不會(huì)關(guān)心您是用什么語(yǔ)言開發(fā)的,是用什么類型的數(shù)據(jù)庫(kù)。所以開發(fā)技術(shù)問題是讓您決定的。
15.3.1 技術(shù)比較
我們通過一項(xiàng)項(xiàng)來(lái)比較J2EE與.net的技術(shù)如表15-1:
表15-1 J2EE和.net技術(shù)比較
主要技術(shù) | J2EE | .net |
通信協(xié)議 | Remote Method Invocation over InternetfffffInterOrb Protocol(RMI/IIOP),XML | |
編程語(yǔ)言 | Java | C#,VB.net,COBOL |
運(yùn)行時(shí)環(huán)境 | Java Virtual Machine (JVM) | Common Language Runtime (CLR) |
胖客戶端 | Java Swing | Windows Forms |
目錄服務(wù) | Java Naming and Directory Interface (JNDI) | Active Directory Services Interface (ADSI) |
數(shù)據(jù)訪問 | Java Database Connection (JDBC),Java Connectors | ADO.net |
異步消息處理 | Java Message Service (JMS) | Microsoft Message Queue |
表示層技術(shù) | Servles,Java Server Page(JSP) | ASP.net |
中間層組件模型 | EJB,JavaBean | COM ,COM |
安全訪問 | JAAS | COM Security Call Context |
事物處理 | Java Transaction Server (JTS) | Microsoft Distributed Transaction Coordinator (MS-DTC) |
開發(fā)工具 | WebGain Visual Café Borland JBuilder IBM VisualAge 等(第三方提供,規(guī)范本身沒有定義) | Visual Studio.net |
易用性 | 較好 | 很好 |
擴(kuò)展能力 | 很好 | 較好 |
多平臺(tái)支持 | 很好 | 不好 |
多語(yǔ)言支持 | 就一種語(yǔ)言 | 很好 |
可靠性 | 較好 | 較好 |
可管理性 | 較好 | 較好 |
重用性 | 很好 | 較好 |
負(fù)載平衡 | 較好 | 較好 |
開放標(biāo)準(zhǔn) | 很好 | 一般 |
15.3.2 性能比較
l 以Web Service為基準(zhǔn)作比較
下圖是在以O(shè)racel9i為數(shù)據(jù)庫(kù)以Windows2003為操作系統(tǒng),有8個(gè)CPU的主機(jī)為軟硬件的測(cè)試環(huán)境下對(duì).net與J2EE的測(cè)試結(jié)果:
圖15-1 .net與J2EE的性能測(cè)試結(jié)果
l 以Web Application為基準(zhǔn)作比較
下圖是在分布式環(huán)境下運(yùn)行了24小時(shí)后對(duì).net與J2EE的Web應(yīng)用的測(cè)試結(jié)果:
圖15-2 .net與J2EE的基準(zhǔn)測(cè)試結(jié)果
l 以Web Services為基準(zhǔn)作比較
下圖是在分布式環(huán)境下運(yùn)行了24小時(shí)后對(duì).net與J2EE的Web服務(wù)的測(cè)試結(jié)果:
圖15-3 .net與J2EE的服務(wù)基準(zhǔn)測(cè)試結(jié)果
Tests XML Web Services(SOAP 1.1)performance
Tests application as SOAP server and SOAP client
性能比較
Distributed Transaction 24 Hour Benchmark
15.3.3 開發(fā)成本比較
圖15-4 .net與J2EE的開發(fā)成本比較1
圖15-5 .net與J2EE的開發(fā)成本比較2
15.3.4 風(fēng)險(xiǎn)比較
l 從基礎(chǔ)平臺(tái)搭建上
要構(gòu)建一個(gè)穩(wěn)定的java平臺(tái)至少需要1到2年的時(shí)間。
Java平臺(tái)現(xiàn)有一些開源框架,但都不太穩(wěn)定,需要投入比較大的人力財(cái)力去修改。
l 從團(tuán)隊(duì)學(xué)習(xí)和培養(yǎng)上
JAVA學(xué)習(xí)和培養(yǎng)比.net難。
JAVA代碼如果設(shè)計(jì)沒做好,比.net代碼維護(hù)難。
l 從架構(gòu)設(shè)計(jì)上
設(shè)計(jì)一個(gè)SOA架構(gòu),采用JAVA平臺(tái)比較難。
微軟自己有一套體系,配置和實(shí)現(xiàn)SOA架構(gòu),相對(duì)簡(jiǎn)單。
l 從技術(shù)支持上
采用Java平臺(tái),免費(fèi)的技術(shù)支持來(lái)源開源項(xiàng)目或者員工能力。
采用.net微軟提供專業(yè)的技術(shù)支持和難點(diǎn)問題解決。
15.4 基于.net架構(gòu)設(shè)計(jì)
圖15-6 技術(shù)選型-NET架構(gòu)
技術(shù)選型-.NET架構(gòu)
l 基于.NET架構(gòu)
本平臺(tái)是基于微軟.NET架構(gòu)(包括.NET企業(yè)應(yīng)用服務(wù)器、.NET開發(fā)工具)。采用Windows 2003作為服務(wù)器的體系結(jié)構(gòu);
l 開發(fā)方式
按照數(shù)據(jù)、業(yè)務(wù)邏輯、用戶接口三層結(jié)構(gòu)進(jìn)行設(shè)計(jì)和開發(fā);
l 開發(fā)語(yǔ)言及工具
ASP.net、C#、XML、XSL、DHTML、CSS、JavaScript,Sqlserver,VSS,PowerDesign;
l 服務(wù)器配置:
MS Windows 2003 、
MS SQL Server 2000 EntERPrise、
IIS 5.0。
l 數(shù)據(jù)格式
使用XML進(jìn)行數(shù)據(jù)交換和文檔結(jié)構(gòu)化;
15.4.1 所需微軟產(chǎn)品列表
l 開發(fā)過程
Windows 2003標(biāo)準(zhǔn)版
Sqlserver developer版本
Visual studio 2005
VS team server
Office
l 運(yùn)營(yíng)環(huán)境
Windows 2003服務(wù)器版
Sqlserver企業(yè)版本(初期可以用developer版)
l 其他:如atlas、asp.net2.0、IIS、windows workflow foundation等均免費(fèi)使用
15.4.2 采用.net平臺(tái)可能存在問題與風(fēng)險(xiǎn)
l 開發(fā)技術(shù)方面問題
目前有沒有現(xiàn)成且功能強(qiáng)大,拓展性強(qiáng)的權(quán)限框架、工作流、PORTAL等組件提供SaaS平臺(tái)使用?
目前有沒有穩(wěn)定又好用的.net的data Acess框架?按三層架構(gòu)開發(fā)方式,我們程序員在數(shù)據(jù)層的開發(fā)工作量目前還比較大。
分布式開發(fā)技術(shù)如何實(shí)現(xiàn)?
表單的技術(shù)如何應(yīng)用?
Webpart技術(shù)?
報(bào)表技術(shù)?
服務(wù)器間通訊或者數(shù)據(jù)交換技術(shù)?
移動(dòng)解決方案開發(fā)技術(shù)問題?
數(shù)據(jù)庫(kù)事務(wù)、分布式事務(wù)的支持開發(fā)框架?
l 設(shè)計(jì)性能方面問題
如何設(shè)計(jì)支持SaaS模式的權(quán)限框架?
如何設(shè)計(jì)支持SaaS模式的工作流框架。
如果進(jìn)行分布式設(shè)計(jì)和部署?
PORTAL框架如何實(shí)現(xiàn)?
數(shù)據(jù)庫(kù)如何設(shè)計(jì),如何存儲(chǔ):分表還是分庫(kù)?
SOA框架是否適合SaaS模式?怎么設(shè)計(jì)?
業(yè)務(wù)組件和平臺(tái)的關(guān)系?如何設(shè)計(jì)才能方便擴(kuò)展和管理業(yè)務(wù)組件?
如何設(shè)計(jì)才能支持集群、負(fù)載均衡?
如何制定標(biāo)準(zhǔn)使得平臺(tái)可以和第三方產(chǎn)品快速集成?
l 安全方面問題
系統(tǒng)訪問安全?
數(shù)據(jù)傳輸安全?
數(shù)據(jù)存儲(chǔ)與備份恢復(fù)問題?
服務(wù)器安全?
商業(yè)數(shù)據(jù)安全問題?
服務(wù)器部署保證安全?
l 集成方面問題
目前公司的產(chǎn)品和系統(tǒng)采用的是domino和java平臺(tái),如gocom server、galaxy和indioffice等,我們平臺(tái)的業(yè)務(wù)組件,能不能從現(xiàn)有系統(tǒng)抽取集成,有沒有好的解決辦法?
如果說SaaS模式是公司其他產(chǎn)品體系發(fā)展的一種趨勢(shì),如何把我們開發(fā)的SaaS平臺(tái)和其他產(chǎn)品很好的結(jié)合起來(lái),實(shí)現(xiàn)其他產(chǎn)品的SaaS模式。
l 管理方面問題
團(tuán)隊(duì)建設(shè):如何快速組建高效能的.net開發(fā)團(tuán)隊(duì)
2 組織機(jī)構(gòu)
2 工作方法
2 溝通機(jī)制
2 考核
2 學(xué)習(xí)機(jī)制
配置管理:代碼文檔管理?分支合并、多人修改同一文件合并等問題?
招人問題:怎么能找到SaaS方面的專家很難?
15.5 小結(jié)
本章介紹了SaaS平臺(tái)的技術(shù)選型方法。通過對(duì)SaaS平臺(tái)技術(shù)選型的要求,主要通過J2EE與.net的比較來(lái)說明哪種工具更適合SaaS平臺(tái)的開發(fā)。