標籤:http java 使用 os 資料 width
1 引言
橫看成嶺側成峰,遠近高低各不同。 不識廬山真面目, 只緣身在此山中。
________蘇軾,《 題西林壁》
“社會化大開發”是人們夢寐以求的事情,資訊化的軟體將象您自家的水管一樣,當您需要時您只要擰開水龍頭,自來水就會源源不斷地送到您家。將來的軟體也會這樣,只要您能上網,您隨時都可通過訪問軟體服務公司供應商的某個地址,您所需要的業務就可以在網上完成,這裡您完全不需要把軟體和資料庫下載到本地安裝,也不讓您自己手工升級和維護。您所要做的一個前提條件是您先必須通過註冊的方式去購買這種服務。不僅僅是業務軟體,就連作業系統等這樣的龐然大物將來也會在您開機時通過網連網臨時送到您電腦而不是您事先安裝好。
2 什麼是SaaS
2.1 SaaS的定義
SaaS是Software-as-a-service(軟體即服務)的簡稱,是隨著互連網技術的發展和應用軟體的成熟,而在21世紀開始興起的一種完全創新的軟體應用模式。它與“on-demand software”(按需軟體),ASP,hosted software(託管軟體)所具有相似的含義。它是一種通過Internet提供軟體的模式,廠商將應用軟體統一部署在自己的伺服器上,客戶可以根據自己實際需求,通過互連網向廠商定購所需的應用軟體服務,按定購的服務多少和時間長短向廠商支付費用,並通過互連網獲得廠商提供的服務。使用者不用再購買軟體,而改用向供應商租用基於Web的軟體,來管理企業經營活動,且無需對軟體進行維護,服務提供者會全權管理和維護軟體,軟體廠商在向客戶提供互連網應用的同時,也提供軟體的離線操作和本機資料儲存,讓使用者隨時隨地都可以使用其定購的軟體和服務。對於許多小型企業來說,SaaS是採用先進技術的最好途徑,它消除了企業購買、構建和維護基礎設施和應用程式的需要。近年來,SaaS的興起已經給傳統套裝軟體廠商和平台軟體廠商帶來真實的壓力,同時,社會化軟體大開發就是以SaaS為基礎,它是時代發展的必然產物和先進思想。
在這種模式下,企業不再象傳統模式那樣花費大量投資用於硬體、軟體、人員,而只
需要支出一定的租賃服務費用,通過互連網便可以享受到相應的硬體、軟體和維護服務,享有軟體使用權和不斷升級,這是網路應用最具效益的營運模式。企業採用SaaS服務模式在效果上與企業自建資訊系統基本沒有區別,但節省了大量用於購買IT產品、技術和維護啟動並執行資金,且像開啟自來水龍頭就能用水一樣,方便地利用資訊化系統,從而大幅度降低了中小公司資訊化的門檻與風險。
同時,服務提供者通過大規模的客戶收取一定服務費用,一方面來達到軟體的最大利
用率,另一方面也降低頻繁的客戶現場實施和維護費用,更多的精力投入到技術及服務品質上,更好地通過有效技術措施保證每家企業資料的安全性和保密性。
2.2 SaaS的三層含義
SaaS有三層含義:
1. 表現層
SaaS是一種業務模式,這意味著使用者可以通過租用的方式遠程使用軟體,解決了投資和維護問題。而從使用者角度來講,SaaS是一種軟體租用的業務模式。
2. 介面層
SaaS是統一的介面方式,可以方便使用者和其他應用在遠程通過標準介面調用軟體模組,實現業務組合。
3. 應用實現層
SaaS是一種軟體能力,軟體設計必須強調配置能力和資源共用,使得一套軟體能夠方便地服務於多個使用者。
SaaS模式下的軟體電訊廠商,從不同層面提出了從系統設計、介面需求到軟體實現的不同要求見圖2-1:
圖2-1 SaaS模式下各層的含義及實現
對SaaS軟體的第一個要求就是將SaaS軟體中的管理流與業務流進行分離。運營的本質就是控制,“通訊能力運營”就是對使用者能否使用通訊能力的切換,而通訊能力本身在設計之初,就支援這種切換;“IT應用運營”,也同樣需要支援這種切換能力,而應用軟體本身,往往更關注業務能力的實現,應用軟體要轉變成為SaaS軟體,必須從根本上實現對使用許可權的外部控制,也就是要實現管理流與業務流的分離,管理流用於實現對IT應用的切換控制,業務流用於保證IT應用功能的實現。
SaaS軟體在介面方面,必須滿足使用者統一的遠程調用要求。隨著互連網技術和分散式運算技術的發展,越來越多的使用者希望遠端連線到資料來源和應用,以期實現應用程式跨多個伺服器的分布和運行,這也是Web2.0中混合搭建(Mash Up)的目標。SaaS軟體需要支援採用分布式的SOA架構,使軟體系統具備更強的靈活性、適應性和可維護性。分布式SOA架構通過智能端點讓具備某種服務功能的應用自動找尋其他服務,並與其實現相互連信,從而滿足基於SOA架構的SaaS軟體對各項技術和成本的要求。
SaaS模式面向長尾市場,要求SaaS軟體必須具備低成本運行能力和個人化配置能力。一方面,利基市場雖然總和誘人,但如果不能解決多使用者間的資源共用,隨著使用者數量的增加,SaaS軟體的運營成本就會線性上升,而無法產生規模效應;另一方面,客戶在接受SaaS軟體主要商務程序的前提下,還會有一定的個性要求,比如企業標識、頁面版式、頁面色系等,這也是SaaS軟體需要滿足的客戶需求。此外,計算能力共用、儲存能力共用、代碼共用、個人化配置能力、大容量支援能力等等,都是編製SaaS軟體中需要解決的問題。
2.3 SaaS常用詞語解釋
l 跨界混搭(mash-up)
“跨界混搭”這個術語起源於流行音樂,編曲者把兩張唱片混編以後重新製作出一首
新歌。這個概念應用在SaaS上,就是指把多個不同的線上應用軟體服務搭建成為一種新型的整合服務。使用者通常只需要登入一次就可以使用整合好的應用軟體組合。
需要注意的是,當您把多種SaaS服務混合到一個軟體中去後,其中一種會是核心,如果其出現嚴重問題,將會影響到整個軟體的使用。
l 整合器(Connector)
整合器是一種軟體程式,讓您從一個應用程式中讀取資料,然後下載到SaaS解決方案中(同樣可以用於將資料送回到另一個應用程式中)。這種資料傳送通常用於即時或批量傳送的情況,企業完成初始資料的匯入或匯出,然後根據需要定期更新這些資料。比如,像國外的SaaS服務商Salesforce或國內的800CRM提供SAP[/url]整合器,就將SAP中的客戶資料匯入到Salesforce或800CRM系統中。
l 解決方案擴充(Solution extension[/url])
SaaS 解決方案具有的擴充性讓使用者能夠在已存在的軟體結構上,按需再增加額外的工具或功能。像前面提到的Salesforce的App Exchange應用軟體開發平台,以及國內的SaaS託管商800CRM的800App應用軟體開發平台都是解決方案擴充的典型代表。
還有一些擴充性例如可以擴充資料模型,提供個人化的使用者介面以及其他更多自定製的擴充服務。
l 垂直應用(Vertical applications)
“垂直應用”不是SaaS的專用術語,它也應用於其他領域,通常是指為某一個領域(例如銀行,醫藥等)建立一個專門的平台。雖然它已經在傳統行業應用很多年了,但是相對來講應用在SaaS中還是一個比較新的概念。
隨著SaaS的不斷成熟,客戶希望SaaS服務商能提供詳細的垂直應用行業方案。例如,目前Salesforce的APP Exchange平台已經能夠實現全方位跨行業的應用,各個行業的公司都能夠在Salesforce的平台上進行二次開發。
l 參數應用(Parametric applications)
在傳統軟體模式下,如果軟體的服務功能需要改變,那麼相應的代碼也需要重新編寫。但是在SaaS模式下,使用者可以通過輸入新的參數變數,或者制定一些資料關聯規則來開啟一種新的應用。這種新式服務模式也被稱為“參數應用”,“宏或”自定製對象,主要是因為這種應用程式可以讓使用者自己定製新的應用,不需要懂軟體編程。
Salesforce或800CRM升級系統,自定製對象也同時升級,而最本質的應用則是客戶可以自己通過改變參數和參數關聯來為系統增加新的功能。
l 模組化(Modular)
SaaS中模組功能主要用於關閉或開啟服務。在聚集了豐富功能的強大應用平台中,經理可以像選擇菜單那樣任意地選擇功能,關閉某些不需要用到的功能,也可以根據需求增加新的功能。
SaaS服務商基於網路]架構建立了自己的應用平台,模組的靈活性使得他們可以根據客戶的不同需求,將功能複雜繁多的系統配置成適合客戶的系統。
l 線上SaaS
“線上SaaS”從表面意思來看似乎有點累贅,SaaS本身的概念就是提供一種線上服務,因此所有的SaaS應用程式都應該是產生於網路,壯大於網路的。但該術語是相對於SaaS的前身——ASP(應用服務提供者)來說的,這是一種早期的遠程軟體託管形式。跟如今直接在網上使用的系統相比,ASP時代的使用者可能覺得通過專線或專用加密裝置訪問的系統來得更安心。顯然,早期的ASP解決方案設計的一些運行緩慢的程式並沒有很好地體現“線上”這個概念, 很多ASP客戶需要借用、Citrix等實現遠端存取。
所以當人們說 “線上SaaS”時,這個術語其實是在強調使用瀏覽器直接使用軟體,而加密是通過瀏覽器通用的加密協議。
l 基礎架構平台(Platform)
有時候SaaS的擁護者希望出現一種基礎架構的平台來推動SaaS更好地發展。
這是因為首先得有一個平台來支撐SaaS軟體應用程式的運行,如今最著名的是國外Salesforce公司的APP Exchange平台,國內800CRM的800APP Native的平台與Salesforce相容。
l 服務水平協議(SLA)
SLA(Service Level Agreement),指IT服務提供者和客戶之間就服務提供中關鍵的服務目標及雙方的責任等有關細節問題而簽訂的協議,此協議重在陳述服務的品質、優先順序和責權。
對於SLA的必要性,在BS15000-1中的服務提供過程中有明確指出:對服務提供全過程中的服務水平目標和工作量參數,應在組織(服務提供者和僱主公司)間協商同意並形成記錄。對每一項服務應定義、協定和記錄一個或多個服務水平協議(SLAs)。SLAs、運營層級協議和第三方合約(支援合約)及相應的程式應在相關組織間協商並記錄。
SLA不止是一個合約書,更主要的方面是“SLA過程”。所謂“SLA過程”是指通過SLA的管理,來保障在SLA合約書中對客戶承諾的QoS(Quality of Services)服務品質。
3 SaaS與傳統軟體的對比
SaaS的興起將是IT業的一場新革命。SaaS模式將徹底改變傳統軟體的開發方式和使用方式。傳統軟體將在這場革新的浪潮中被衝擊得支離破碎,大多數傳統軟體將會消亡或者轉型。
3.1 SaaS與傳統軟體的區別
傳統軟體是在公司內部架設軟體運行環境,自己購買應用伺服器、資料庫伺服器、網卡等硬體,安裝自己的區域網路並在區域網路內部署軟體。所以不同公司都各自部署一套自己的系統。不同公司的使用者事實是通過不同的途徑訪問不同的系統,2-2所示:
圖2-2 傳統軟體
這種情況明顯可看出一個致命的問題。就是軟體的部署十分重要,軟體的部署不僅要投入大量的硬體裝置,並且軟體部署的好壞直接影響著軟體的正常使用,有些軟體開發得再好,可是沒有較好的部署結果還是失敗。
以ERP軟體為例,需要ERP這樣的公司專屬應用程式軟體,軟體的部署和實施比軟體本身的功能、效能更為重要,萬一部署失敗,那所有的投入幾乎全部白費,這樣的風險是每個企業使用者都希望避免的。通常的ERP、CRM項目的部署周期至少需要一兩年甚至更久的時間,而SaaS模式的軟體項目部署最多也不會超過90天,而且使用者無需在軟體許可證和硬體方面進行投資。傳統軟體在使用方式上受空間和地點的限制,必須在固定的裝置上使用,而SaaS模式的軟體項目可以在任何可接入Internet的地方與時間使用。相對於傳統軟體而言SaaS模式在軟體的升級、服務、資料安全傳輸等各個方面都有很大的優勢。讓我們來看看SaaS模式的軟體部署,2-3所示:
圖2-3 SaaS模式
通過上面的分析我們總結出SaaS模式與傳統軟體許可模式的區別:
表2-1 SaaS模式與傳統軟體許可模式的區別
比較項目SaaS模式傳統軟體許可模式
開發方式產品式開發。軟體開發商針對福士化以產品式開發項目式開發。軟體開發商針對特定使用者福士化以項目式開發為主
裝置部署只需要使用最簡單的PC裝置自己構建複雜的IT系統
服務模式由廠商提供專業維護和服務需要自己培養一個專業的IT維護團隊
使用方式任何可接入Internet的地方與時間使用必需在固定裝置上使用
升級更新通過互連網隨時更新軟體使用的版本版本更新周期較長
付費方式定期為定購的服務支付費用一次性承擔購買軟體的投資風險
升級更新通過互連網隨時更新軟體使用的版本版本更新周期較長
3.2 SaaS對傳統軟體的影響
軟體運營服務(SaaS)的誕生將會對傳統軟體產業產生巨大的衝擊。它主要表現在以下三個方面:
第一,軟體運營服務模式將會成為未來軟體應用和銷售模式的主要模式之一,將越來越多地搶佔傳統軟體模式的市場。計世資訊(CCW Research)預計,從2007年開始,會有大量的運營化(SaaS)軟體出現。到2010年,50%以上的傳統軟體將會同時出現軟體運營服務模式。如果傳統軟體供應商不進行戰略轉型,將會在未來的市場競爭中處於不利地位。
第二,軟體運營服務模式的出現將會促使傳統軟體的商業模式發生變化。由於軟體運營服務模式實行的是按需服務、按需付費的模式,對使用者的吸引力要遠遠高於傳統軟體的許可證模式。計世資訊(CCW Research)認為,隨著軟體運營服務按需服務和按需付費模式的普及與推廣,傳統軟體的商業模式尤其是付費模式也會逐漸向此靠攏。
第三,軟體運營服務的出現將會加劇傳統軟體業的整合與併購。由於軟體電訊廠商採用“一對多”的服務模式,這必然導致軟體電訊廠商的數量會大大減少,這也會給傳統軟體供應商帶來巨大的挑戰。計世資訊(CCW Research)預計,2010年,中國傳統的軟體供應商將有一半會消亡或轉型。
4 SaaS與ASP的異同
SaaS和ASP的重點都是“軟體部署為託管服務,通過網際網路存取”。他們相同的地方
有:
l 運營模式:
軟體所有權屬於供應商,供應商來負責基礎設施和軟體維護升級工作。
l 服務方式:
客戶按一定的付費周期來租賃供應商的服務,費用可能隨著客戶使用規模大小不同。
供應商定期和客戶一起整理需求,以使服務能響應客戶變化。
l 盈利方式:
通過專業化和規模經濟來降低供應商軟體服務成本,以此達到盈利目的。附加的盈利
方式有廣告和無線增值等。
只有達到一定的規模,才能使供應商投入的硬體和專業服務成本和營業收入達到平
衡。在此之後,隨著規模的增大,供應商的銷售成本絲毫不受影響,利潤才開始增長。
SaaS雖然是建立在ASP的基礎上,它們的根源是相同的。ASP曾經倒在福士的一片
“喝彩”聲中,只是過眼煙雲。今天的SaaS又有什麼新的變化呢?這是大加都很關心的,SaaS並不是簡單的由ASP改變一下,也不是一種慨念的炒作。現在我們來討論下SaaS和ASP的主要區別:
l ASP是“一對一”關係而SaaS是“一對多”關係
ASP提供客戶服務是“一對一”關係,即針對不同的客戶定製不同的應用。而SaaS
提供客戶服務是“一對多”關係,即針對所有客戶都是相同的應用服務。
ASP模式下每個客戶運行供應商為自己定製的特有執行個體。從技術角度來說,就是每個
客戶使用一個資料庫、一個Web網站或者虛擬目錄。資料庫中的資料結構和應用的代碼可能都根據客戶需求做過定製化修改。
l SaaS是可自訂的
SaaS對於應用系統來說,更強調應用的可自訂,SaaS的自訂能力使得SaaS應用
能適合更廣泛的企業使用者,增多了很多使用者體驗,比如說自訂表格單,自訂資料結構,自訂報表,自訂使用者介面,自訂商務程序。使用者可以通過這些可自訂的工具來滿足自己的個性要求。
l 服務涵蓋範圍不同
SaaS應用更拓展了ASP的應用範圍,並不僅僅局限於應用系統的託管,而更著眼於
提供更多的互連網服務。如Google Apps、Google Map甚至於郵件服務,都可以認為是SaaS應用的一種表現形式,原來含義上的託管已經從窄義的應用向廣義的互連網應用轉換。總之,SaaS提供了企業更多可供選擇的互連網服務,這些服務通過SaaS進行整合,集約地提供給企業使用者,和敏捷的應用互相輝映。
l 技術複雜程度不同
傳統的ASP只是針對每個客戶定製不同的應用,而沒有將所有的客戶放在一起進行考
慮。在SaaS模式中,在使用者和Web伺服器上的應用之間增加了一個中介層,這個中介層用來處理使用者的定製、擴充性和多使用者的效率問題。技術上來說,要比ASP模式複雜得多。
SaaS模式ASP模式都秉承“軟體即服務”的理念,但是SaaS要比ASP複雜的多。
而SaaS的軟體架構有較大改變,廣泛應用Ajax技術,支援介面局部重新整理,讓使用者有更好的體驗感受。
l 擴充性不同
SaaS模式的代碼和資料結構都是相同的,供應商在設計應用的時候已經考慮了擴充性,所以針對不同需求的客戶,可以採用靈活的配置來響應,但是應用資料仍然是隔離的。從技術角度來說,所有客戶都是使用一套安裝包,資料庫結構和一樣。
下面我們從“軟體即服務的”三個層面來比較SaaS模式與ASP模式的主要區別如表
2-2:
表2-2 SaaS模式與ASP模式在三個層面的區別
比較項目SaaS模式ASP模式
表現層以應用為中心,軟體開發商和應用服務商分離以應用為中心,軟體開發商和應用服務商合一
介面層支援遠程標準介面應用級的調用不支援遠程標準介面應用級的調用
應用實現層強調對資源的合理調配及共同使用一般通過軟體複用實現應用共用
5 SaaS與SOA的異同
SOA是現在最流行的話語之一,它廣泛被業界所關注。大家一談到SaaS,似乎都要聯想到SOA,有的人甚至把SaaS與SOA混為一談,認為SaaS就是SOA。
SOA和SaaS,雖然有許多相似之處,一度被比喻成軟體圈內的雙“S”。它們有時被稱作攣生姐妹,真是情同手足;但有時又被看作冤讎世家,看似貌合神離,又不得不走到一起。這麼多的難以理解的東西纏在一起確實搞得人一團霧水,還是讓我們先來正確地理解SOA是什麼?
什麼是SOA?
SOA(Service-Oriented Architecture,面向服務架構)是一個面向服務的架構模型,它將應用程式的不同功能單元——服務(service),通過服務間定義良好的介面和契約(contract)聯絡起來。介面採用中立的方式定義,獨立於具體實現服務的硬體平台、作業系統和程式設計語言,使得構建在這樣的系統中的服務可以使用統一和標準的方式進行通訊。SOA與大多數通用的用戶端/伺服器模型的不同之處,在於它著重強調軟體組件的鬆散耦合,並使用獨立的標準介面。
從業務角度理解SOA,它是針對企業的一些舊的軟體體系重新利用,進行整合,構建一套鬆散耦合的軟體系統,同時也能方便的結合新的軟體共同服務於企業的一個體系。使系統能夠隨著業務的變化更加靈活適用。
從技術角度理解SOA,SOA實際上是系統分析設計思想的進一步發展,它的思想超出了對象的概念,一切都以服務為核心,而服務由組件構成,組件是若干操作的集合,操作對應具體實現的程式函數。服務是通過對業務過程模型的分析而識別出來的。每個服務能夠實現若干功能,這些功能由組件而不是操作來實現。組件是操作的調用集合,是服務功能實現的最小單位,而不是程式實現的最小單位。
在具體實現上,只要能提供服務的技術都可以實現SOA思想,如Web Service、RMI、Remoting、CORBA、JMS、MQ、甚至JSP、SERVLET等,另外還可以通過分散式交易處理和分布式軟體狀態管理來進一步地改善它。但是如果想讓這些服務能夠更廣泛的被使用,或被大家認可,在互連網上發布,那麼就要遵循一定的規則標準了。這一類的標準有SOAP、Java API for XML-based RPC (JAX-RPC)、WSDL 和 WS-* 規範等等。另外它的實現還需要安全性、策略管理、可靠訊息傳遞以及會計系統的支援。
直觀地理解,可以把SOA看做是模組化地組件,每個模組實現獨立功能,不同的拼合提供不同的服務。利用SOA,把一團亂麻龐大無章的系統規整成一個一個的模組,方便地實現IT的最大利用率,並提高重用度。
雖然SOA和SaaS的本質都是Service(服務),但內涵卻大相徑庭。
通過上面的分析,SOA和SaaS的區別大概可以概括為以下幾點:
l 服務的方式不同
SaaS所說的服務實際上是基於web的應用軟體,而SOA所說的服務是web API,
或者叫web service。這兩個概念是完全不同的。比如一個SaaS的電訊廠商,在SaaS平台上提供了HR,CRM等系統。使用者可以通過在網上租賃的形式來租借這些軟體。而SOA是提供的不是軟體,而是介面函數,比如說查詢IP地址和城市對應的API,查詢天氣的API。當然SOA主要還是使用者開發應用軟體的中介軟體,這些中介軟體可以在互連網上發布,這是將來互連網的趨勢,也可以解決軟體的著作權問題。
l 服務的對象不同
SOA包括了關於軟體是如何被架構起來的東西,而SaaS是關於軟體是如何被應用的。SOA是種技術,這種技術供軟體生產者使用。SaaS是種商業模式,是把開發出的軟體通過租賃的方式供使用者使用。
l 服務的範圍不同
SaaS模式的軟體既可用SOA來架構,也可以不需要SOA。SOA不僅僅在SaaS模式的軟體上被採用,而且大膽的應用在任何WEB軟體架構中,包括一個小型的單使用者軟體。
l 整體與部分的關係
在SaaS當中,應用程式可以像任何服務一樣被傳遞,就像您家中電話的語音一樣,看起來似乎就是為您的需求量體裁衣得到的,SaaS是個整體的軟體系統;而SOA的定義和這個無絲毫的聯絡。SOA支援的服務,都是些離散的可以再使用的交易處理,這些交易處理合起來就組成了一個商務程序,是從基本的系統中提取出來的抽象代碼,SOA只是構成一個完整系統的部分架構。
l SaaS主要提供服務而SOA提供支援人員
SaaS主要是指一個軟體企業向其它企業提供軟體服務。而SOA一般是企業內部搭建系統的基礎。SaaS注重的是提供服務的思維。而SOA注重的是實現服務的思維。
6 小結
本文介紹了什麼是SaaS,並且比較了SaaS與ASP、SOA的不同之處。通過對SaaS的介紹,讓我們對SaaS有了較深入的理解,也能區分ASP與SaaS的不同。為我們進行SaaS的深入研究奠定的基礎。