楊正球,竇 偉
(北京郵電大學(xué)智能通信軟件與多媒體技術(shù)研究中心 北京 100876)
基于自動(dòng)機(jī)的多租戶應(yīng)用平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
楊正球,竇 偉
(北京郵電大學(xué)智能通信軟件與多媒體技術(shù)研究中心 北京 100876)
有限狀態(tài)自動(dòng)機(jī)是為研究有限內(nèi)存的計(jì)算過(guò)程和某些語(yǔ)言類而抽象出的一種計(jì)算模型,它是具有離散輸入和輸出系統(tǒng)的一種數(shù)學(xué)模型,只需配置業(yè)務(wù)流程就可以實(shí)現(xiàn)租戶所需的特定的業(yè)務(wù)功能。本文在研究SaaS應(yīng)用平臺(tái)、自動(dòng)機(jī)模型、軟件開(kāi)發(fā)形式化、SOA核心技術(shù)的基礎(chǔ)上,提出了基于自動(dòng)機(jī)的多租戶應(yīng)用平臺(tái),并將其劃分為幾個(gè)基于自動(dòng)機(jī)的獨(dú)立模塊,實(shí)現(xiàn)了業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)的分離,解決了業(yè)務(wù)邏輯和安全操作間的問(wèn)題,運(yùn)用靈活的結(jié)構(gòu)組織租戶和站點(diǎn)?;谧詣?dòng)機(jī)的多租戶應(yīng)用平臺(tái)已經(jīng)初步完備,能夠很好地滿足多租戶應(yīng)用平臺(tái)的管理,并可作為自適應(yīng)的租戶管理模型。
軟件即服務(wù);自動(dòng)機(jī);租戶應(yīng)用平臺(tái)
自動(dòng)機(jī)是基于有限計(jì)算、離散輸入輸出數(shù)學(xué)模型的,將功能模塊或者子模塊拼裝組合就可以生成用戶所需的特定業(yè)務(wù)需求。用戶對(duì)于軟件功能的需求不是千篇一律的,所以某些軟件的定制消費(fèi)了大量資源,去開(kāi)發(fā)功能相近或相似的系統(tǒng)和軟件,基于自動(dòng)機(jī)的多租戶應(yīng)用平臺(tái)很好地解決了這一問(wèn)題。基于自動(dòng)機(jī)的軟件體系開(kāi)發(fā)將為軟件開(kāi)發(fā)流程帶來(lái)重大變革,程序員面向的不再是由用戶提出的需求,而是由專業(yè)人士提供的原子的基于整體性的需求。軟件提供商再面對(duì)業(yè)務(wù)相近的軟件需求時(shí),將不再需要程序員重新編寫(xiě)代碼,只需要將業(yè)務(wù)邏輯進(jìn)行排序組合即可,定制的軟件就可以輕松地滿足用戶需要。
SaaS是一種軟件布局模型,它將企業(yè)信息化所需的軟、硬件交由SaaS提供商去搭建和維護(hù),企業(yè)只需通過(guò)互聯(lián)網(wǎng)即可使用已租賃的信息系統(tǒng)。SaaS模式已成為軟件產(chǎn)業(yè)的重要力量,不過(guò)它的品質(zhì)和可信度仍未得到完美的解決,基于自動(dòng)機(jī)的多租戶應(yīng)用平臺(tái)將進(jìn)一步解決SaaS模式的數(shù)據(jù)安全性問(wèn)題。將業(yè)務(wù)交由租戶業(yè)務(wù)系統(tǒng)管理,將數(shù)據(jù)交由租戶管理,將自動(dòng)機(jī)擴(kuò)展出權(quán)限控制。當(dāng)用戶使用業(yè)務(wù)時(shí),只需將自己保護(hù)的私有數(shù)據(jù)連接到自動(dòng)機(jī),由業(yè)務(wù)管理系統(tǒng)將用戶定制的業(yè)務(wù)注入到自動(dòng)機(jī),用戶就可以輕松使用定制的業(yè)務(wù)。
有限狀態(tài)自動(dòng)機(jī)是有限計(jì)算的基本模型,也是許多形式化規(guī)格、驗(yàn)證方法的基礎(chǔ)模型。例如,一個(gè)鐘表就是一個(gè)有限狀態(tài)系統(tǒng),共有12×60×60種狀態(tài),秒針每走一步,就從一種狀態(tài)轉(zhuǎn)移到另外一種狀態(tài);飲料自動(dòng)售貨機(jī)也是一個(gè)有限狀態(tài)系統(tǒng),售貨機(jī)根據(jù)客戶的按鍵輸入以及投入硬幣的面值和枚數(shù)來(lái)指導(dǎo)客戶操作,并提供不同規(guī)格的飲料。一個(gè)有限狀態(tài)自動(dòng)機(jī)是一個(gè)五元組,如下:
其中,Q={q0,q1,…,qn}是有限狀態(tài)集合,在任何一個(gè)確定的時(shí)刻,有限狀態(tài)機(jī)只能處于一個(gè)確定的狀態(tài)qi;∑={σ1,σ2,…,σm}是有限輸入字符的集合,在任一確定的時(shí)刻,有限狀態(tài)機(jī)只能接受一個(gè)確定的輸入σj;δ:Q×∑→Q是狀態(tài)轉(zhuǎn)移函數(shù),如果在某個(gè)確定的時(shí)刻,有限狀態(tài)機(jī)處于某一狀態(tài)qi∈Q,并接受一個(gè)輸入字符σj∈∑,那么下一個(gè)時(shí)刻將處于一個(gè)確定的狀態(tài) q′=δ(0i,σj)∈Q;q0∈Q是初始狀態(tài),有限狀態(tài)機(jī)由此狀態(tài)開(kāi)始接受輸入;F∝Q是終結(jié)狀態(tài)集合,有限狀態(tài)機(jī)在到達(dá)此狀態(tài)之后不再接受輸入。
通過(guò)將一個(gè)系統(tǒng)抽象為狀態(tài)和動(dòng)作的集合,可以很好地描述系統(tǒng)的行為。在實(shí)際的系統(tǒng)中,可以包含若干個(gè)并發(fā)執(zhí)行的自動(dòng)機(jī),其中每個(gè)自動(dòng)機(jī)用來(lái)描述系統(tǒng)某一方面的行為。將這些自動(dòng)機(jī)復(fù)合起來(lái),可以描述整個(gè)系統(tǒng)的行為。也可以用一個(gè)狀態(tài)機(jī)來(lái)表示一個(gè)系統(tǒng)的行為,用狀態(tài)表示一個(gè)系統(tǒng)當(dāng)前的狀況,用動(dòng)作表示狀態(tài)之間的遷移關(guān)系。
通過(guò)擴(kuò)展自動(dòng)機(jī)來(lái)表示系統(tǒng)的權(quán)限控制。抽象出來(lái)的自動(dòng)機(jī)可以表現(xiàn)為若干狀態(tài),其中在每個(gè)狀態(tài)下可以接受一些特定的動(dòng)作。我們對(duì)每個(gè)自動(dòng)機(jī)所涉及的角色進(jìn)行抽象,并規(guī)定出在某個(gè)狀態(tài)下,哪些角色可以執(zhí)行何種操作??梢酝ㄟ^(guò)將自動(dòng)機(jī)的操作角色分成實(shí)例角色和類角色來(lái)達(dá)到完美控制權(quán)限。
通過(guò)對(duì)系統(tǒng)進(jìn)行擴(kuò)展的自動(dòng)機(jī)建模,不僅可以描述系統(tǒng)的行為特征,而且可以描述系統(tǒng)的權(quán)限控制特征。對(duì)于一個(gè)比較復(fù)雜的系統(tǒng),可以同時(shí)采用多個(gè)自動(dòng)機(jī)來(lái)描述。在實(shí)際系統(tǒng)運(yùn)行的時(shí)候,會(huì)將系統(tǒng)的角色賦給某個(gè)具體的操作人員。當(dāng)某個(gè)操作人員對(duì)系統(tǒng)進(jìn)行某種操作的時(shí)候,系統(tǒng)將根據(jù)自身的狀態(tài)及其所承擔(dān)角色的操作許可情況進(jìn)行綜合分析,從而得出該操作員是否可以對(duì)系統(tǒng)實(shí)施某種具體的操作。這樣的控制方式既靈活又精確,非常適合需要多種角色參與的數(shù)據(jù)加工和處理流程。
基于自動(dòng)機(jī)的多租戶應(yīng)用系統(tǒng)模型主要由6個(gè)部分構(gòu)成:租戶系統(tǒng)、租戶站點(diǎn)系統(tǒng)、租戶業(yè)務(wù)系統(tǒng)、站點(diǎn)管理系統(tǒng)、租戶管理系統(tǒng)以及門戶系統(tǒng)。
租戶系統(tǒng)包括控制域系統(tǒng)、租戶信息、操作員信息、實(shí)例信息以及自動(dòng)機(jī)信息。其中,控制域系統(tǒng)是自動(dòng)機(jī)和租戶相結(jié)合的產(chǎn)物,表示一個(gè)自動(dòng)機(jī)邏輯注入到租戶內(nèi)的控制邏輯。實(shí)例信息表示租戶內(nèi)的系統(tǒng)信息部分,實(shí)例信息和操作員信息屬于一個(gè)企業(yè)的內(nèi)部數(shù)據(jù)。這樣的設(shè)計(jì)將系統(tǒng)的業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)分開(kāi),就可以將整個(gè)業(yè)務(wù)邏輯放在網(wǎng)絡(luò)的通用節(jié)點(diǎn)上供租戶注入域系統(tǒng),而將各個(gè)租戶自己私有的信息放在租戶所信任的地方。
一個(gè)租戶系統(tǒng)是一個(gè)邏輯上獨(dú)立的系統(tǒng),隨著租戶數(shù)量的增多,假如每個(gè)租戶都獨(dú)占一個(gè)系統(tǒng)資源,對(duì)于系統(tǒng)的資源開(kāi)銷是很大的。事實(shí)上并不是所有的租戶對(duì)數(shù)據(jù)安全性和保密性的要求都一樣高,所以我們可以提供一種方式,將對(duì)數(shù)據(jù)安全性和保密性要求不太高的租戶放置在一個(gè)系統(tǒng)上,讓他們共享一個(gè)機(jī)器和數(shù)據(jù)庫(kù)系統(tǒng)。根據(jù)租戶對(duì)數(shù)據(jù)安全性、業(yè)務(wù)的數(shù)據(jù)流量等要求,將租戶分成幾個(gè)等級(jí),按照對(duì)應(yīng)等級(jí)分配系統(tǒng)資源、制定數(shù)據(jù)安全方案的租戶信息控制系統(tǒng),我們稱之為站點(diǎn)系統(tǒng)。
站點(diǎn)是租戶的載體,也是一個(gè)承載業(yè)務(wù)的載體,隨著租戶體驗(yàn)的不斷深入,該用戶可以在原有的基礎(chǔ)上增加新的業(yè)務(wù),增加的過(guò)程實(shí)際上是業(yè)務(wù)邏輯不斷注入到租戶系統(tǒng)中的過(guò)程。所以在這種站點(diǎn)上運(yùn)行的租戶系統(tǒng)的業(yè)務(wù)存在一個(gè)不斷成長(zhǎng)的可能性。當(dāng)業(yè)務(wù)成長(zhǎng)到一定的程度時(shí),租戶所占用的資源將會(huì)隨之增加,由于采用站點(diǎn)這種方式給租戶分配資源非常靈活,可以通過(guò)配置系統(tǒng)將一個(gè)站點(diǎn)中的租戶遷移到別的站點(diǎn),或?yàn)橐粋€(gè)成長(zhǎng)性較好的租戶分配獨(dú)立的資源。在這種業(yè)務(wù)成長(zhǎng)的過(guò)程中,系統(tǒng)的性能不會(huì)波及其他站點(diǎn)的租戶,從而保證了系統(tǒng)整體擴(kuò)容的情況,能非常方便地控制整個(gè)SaaS系統(tǒng)的成本。
站點(diǎn)系統(tǒng)是本系統(tǒng)的核心部分。一個(gè)站點(diǎn)是一個(gè)獨(dú)立的運(yùn)行單位,它有自己的存儲(chǔ)系統(tǒng)和自動(dòng)機(jī)控制系統(tǒng)。一個(gè)站點(diǎn)內(nèi)可能會(huì)包含一個(gè)或多個(gè)租戶的信息,其中每個(gè)租戶內(nèi)部也是相對(duì)獨(dú)立的一個(gè)邏輯單位。在一個(gè)站點(diǎn)內(nèi)部采用規(guī)則引擎的方法來(lái)完成操作員、角色、自動(dòng)機(jī)邏輯、自動(dòng)機(jī)實(shí)例等之間相容關(guān)系的維護(hù)和計(jì)算。站點(diǎn)內(nèi)存放的對(duì)象包括租戶、自動(dòng)機(jī)邏輯、自動(dòng)機(jī)實(shí)例、租戶、操作員及控制域系統(tǒng),這些對(duì)象在站點(diǎn)內(nèi)以知識(shí)庫(kù)的形式存放。當(dāng)站點(diǎn)接收到某個(gè)操作員對(duì)某個(gè)實(shí)例的操作請(qǐng)求時(shí),相當(dāng)于向知識(shí)庫(kù)中添加了新的事實(shí),這將會(huì)觸發(fā)知識(shí)庫(kù)系統(tǒng)的推理規(guī)則,該規(guī)則按照知識(shí)庫(kù)中自動(dòng)機(jī)的邏輯自動(dòng)地判斷該操作是否可以進(jìn)行以及如何進(jìn)行。
站點(diǎn)系統(tǒng)使得每個(gè)租戶的私有數(shù)據(jù)得到了有效的存放和管理,但是租戶并不能直接訪問(wèn)站點(diǎn)系統(tǒng)完成其所必需的業(yè)務(wù)邏輯過(guò)程。原因是每個(gè)站點(diǎn)不擁有業(yè)務(wù)邏輯的解釋執(zhí)行系統(tǒng),我們將這個(gè)解釋執(zhí)行業(yè)務(wù)邏輯系統(tǒng)稱為租戶業(yè)務(wù)系統(tǒng)。當(dāng)一個(gè)租戶的操作員進(jìn)行了某業(yè)務(wù)的某項(xiàng)操作時(shí),業(yè)務(wù)操作的指令通過(guò)某種方式傳遞到租戶業(yè)務(wù)系統(tǒng),該業(yè)務(wù)系統(tǒng)根據(jù)業(yè)務(wù)操作指令中所指明的租戶信息,找到擁有該租戶的站點(diǎn)并調(diào)用該站點(diǎn)的基本業(yè)務(wù)操作服務(wù),完成該業(yè)務(wù)操作的執(zhí)行過(guò)程,如圖1所示。
在圖1中,一個(gè)租戶業(yè)務(wù)系統(tǒng)與兩個(gè)站點(diǎn)系統(tǒng)相聯(lián)系。其中站點(diǎn)1包含租戶T1和T2,站點(diǎn)2包含租戶T3和T4。租戶業(yè)務(wù)系統(tǒng)通過(guò)接口I1與站點(diǎn)進(jìn)行互動(dòng),并向外提供接口I2。接口I1是各站點(diǎn)提供的服務(wù),供租戶業(yè)務(wù)系統(tǒng)調(diào)用。需要說(shuō)明的是,接口I1的內(nèi)容和具體的業(yè)務(wù)邏輯沒(méi)有關(guān)系,它所涉及的是關(guān)于一個(gè)租戶內(nèi)部自動(dòng)機(jī)實(shí)例、租戶、租戶內(nèi)操作員、域系統(tǒng)等創(chuàng)建、刪除、屬性改變等通用操作接口。接口I2的內(nèi)容與具體的業(yè)務(wù)有關(guān)系。接口I2的提供實(shí)際上是租戶業(yè)務(wù)系統(tǒng)利用各站點(diǎn)系統(tǒng)提供的接口I1進(jìn)行組合而成的。租戶業(yè)務(wù)系統(tǒng)的主要功能是利用站點(diǎn)提供與業(yè)務(wù)無(wú)關(guān)的接口I1來(lái)實(shí)現(xiàn)與業(yè)務(wù)相關(guān)業(yè)務(wù)邏輯過(guò)程。
如果在一個(gè)SaaS系統(tǒng)中,租戶的數(shù)量很多,一個(gè)業(yè)務(wù)系統(tǒng)往往成為操作的瓶頸,在這種情況下,可以提供若干個(gè)業(yè)務(wù)系統(tǒng),每個(gè)業(yè)務(wù)系統(tǒng)分別管理一部分租戶,從而可以構(gòu)成一個(gè)負(fù)荷分擔(dān)的業(yè)務(wù)組合方案。也可以采用一個(gè)租戶同時(shí)連接到兩個(gè)業(yè)務(wù)系統(tǒng),其中一個(gè)為主業(yè)務(wù)系統(tǒng),一個(gè)為從業(yè)務(wù)系統(tǒng)。這兩個(gè)業(yè)務(wù)系統(tǒng)同時(shí)向上提供接口I2。一旦其中一個(gè)業(yè)務(wù)系統(tǒng)發(fā)生故障,另外一個(gè)業(yè)務(wù)系統(tǒng)仍然能夠完成業(yè)務(wù)操作??梢愿鶕?jù)用戶對(duì)業(yè)務(wù)需求的不同配置不同的方案,使整個(gè)系統(tǒng)保持足夠的靈活性。
我們可以采用BPEL的業(yè)務(wù)計(jì)算和組合的方法來(lái)實(shí)現(xiàn)。這樣,所有的業(yè)務(wù)邏輯只存在于租戶的業(yè)務(wù)系統(tǒng)中,而站點(diǎn)系統(tǒng)僅僅作為用戶一個(gè)基本服務(wù)的計(jì)算平臺(tái),對(duì)所有的業(yè)務(wù)都適用。這實(shí)際上是將業(yè)務(wù)系統(tǒng)分成兩個(gè)獨(dú)立的層次,一個(gè)是以邏輯為核心的業(yè)務(wù)邏輯平臺(tái),一個(gè)是以業(yè)務(wù)數(shù)據(jù)為核心的租戶業(yè)務(wù)數(shù)據(jù)平臺(tái)。業(yè)務(wù)邏輯平臺(tái)和業(yè)務(wù)數(shù)據(jù)平臺(tái)可以分別配置,結(jié)合在一起構(gòu)成一個(gè)完整的業(yè)務(wù)。
租戶業(yè)務(wù)邏輯的實(shí)現(xiàn)主要依靠BPEL技術(shù)實(shí)現(xiàn),一個(gè)租戶業(yè)務(wù)就是一個(gè)BPEL流程。在該BPEL流程中,所有的站點(diǎn)提供的接口I1作為其伙伴鏈接備用。在一個(gè)租戶業(yè)務(wù)中,其基本的活動(dòng)就是接口I1所提供的基本任務(wù),這部分內(nèi)容對(duì)于每個(gè)租戶業(yè)務(wù)來(lái)說(shuō)是不可再分的執(zhí)行單元。由于租戶業(yè)務(wù)向外提供的業(yè)務(wù) (也以伙伴鏈接的方式提供)是針對(duì)某個(gè)具體的租戶和操作員的,所以在組成業(yè)務(wù)的過(guò)程中一般采用串行方式。
一個(gè)租戶業(yè)務(wù)邏輯通過(guò)BPEL來(lái)描述,經(jīng)BPEL引擎解釋執(zhí)行,如圖2所示,其向調(diào)用各站點(diǎn)提供的接口I1的Web service服務(wù),向上給門戶或其他的租戶業(yè)務(wù)邏輯提供接口I2的Web service服務(wù)。
站點(diǎn)系統(tǒng)和租戶業(yè)務(wù)系統(tǒng)的配合從邏輯上能夠保證系統(tǒng)業(yè)務(wù)的正常開(kāi)展。但如果要讓站點(diǎn)系統(tǒng)和業(yè)務(wù)系統(tǒng)能夠高性能工作,還需要很多部署、配置和管理的工作要做。這些工作包括站點(diǎn)管理類別、業(yè)務(wù)系統(tǒng)管理類別、連接管理等。站點(diǎn)和業(yè)務(wù)系統(tǒng)的管理工作需要由一個(gè)單獨(dú)的實(shí)體來(lái)完成,這個(gè)實(shí)體就是站點(diǎn)管理系統(tǒng)(PM)。站點(diǎn)管理系統(tǒng)監(jiān)控這個(gè)SaaS系統(tǒng)的各個(gè)實(shí)體(包括業(yè)務(wù)系統(tǒng)實(shí)體、站點(diǎn)實(shí)體)的節(jié)點(diǎn)運(yùn)行情況和網(wǎng)絡(luò)的運(yùn)行情況,及時(shí)向SaaS管理員發(fā)出故障報(bào)警信息和性能報(bào)警信息,協(xié)助SaaS管理員采取適當(dāng)?shù)呐渲梅桨竵?lái)緩解乃至解決各租戶可能會(huì)遇到的業(yè)務(wù)瓶頸問(wèn)題。管理實(shí)體和業(yè)務(wù)實(shí)體、站點(diǎn)實(shí)體、租戶的關(guān)系如圖3所示。
在圖3中,S1、S2為兩個(gè)業(yè)務(wù)系統(tǒng),P1、P2為兩個(gè)站點(diǎn)系統(tǒng)。其中,P1中包含租戶T1和T2,P2包含租戶T3和T4。S1、T1、T2 構(gòu)成了業(yè)務(wù)系統(tǒng) 1,S2、T3、T4 構(gòu)成了業(yè)務(wù)系統(tǒng) 2。PM 通過(guò)管理總線對(duì) S1、S2、P1、P2 實(shí)施管理。S1、S2通過(guò)I1接口對(duì)T1、T2、T3、T4實(shí)施業(yè)務(wù)層的控制。
站點(diǎn)管理系統(tǒng)是整個(gè)SaaS系統(tǒng)的配置系統(tǒng),主要完成的任務(wù)包括對(duì)所有的站點(diǎn)進(jìn)行監(jiān)控、提供給站點(diǎn)管理員資源查詢的功能、對(duì)站點(diǎn)進(jìn)行配置。要完成這三個(gè)部分的任務(wù),站點(diǎn)管理系統(tǒng)需要與站點(diǎn)之間進(jìn)行頻繁的信息交互。對(duì)于站點(diǎn)管理系統(tǒng)來(lái)說(shuō),每個(gè)站點(diǎn)可以分為下面幾種狀態(tài):start、running、suspended、disconnected、excluded;站點(diǎn)管理系統(tǒng)需要發(fā)布一些管理命令給各個(gè)站點(diǎn),這些命令主要有status、include、exclude、connect、disconnect、fill、suspend、restore、clear。站點(diǎn)管理的命令只有在合適的狀態(tài)下,才能發(fā)布到站點(diǎn)中去。
租戶內(nèi)部的管理員對(duì)各租戶的內(nèi)部數(shù)據(jù)統(tǒng)一進(jìn)行管理,這樣才能保證租戶內(nèi)部數(shù)據(jù)的安全性和保密性。租戶內(nèi)的實(shí)體包括一個(gè)或多個(gè)域系統(tǒng)、操作員集合,而操作員分為普通操作員和租戶管理員。普通操作員通過(guò)域系統(tǒng)的類角色和實(shí)例角色的指配確定和自動(dòng)機(jī)實(shí)例之間的操作關(guān)系:在自動(dòng)機(jī)實(shí)例的特點(diǎn)狀態(tài)下,每個(gè)具有一定角色的操作員,可以對(duì)該實(shí)例進(jìn)行某種特定的操作。每個(gè)角色對(duì)實(shí)例的操作關(guān)系由自動(dòng)機(jī)的邏輯確定,而操作員到角色的指派關(guān)系主要是由租戶管理員來(lái)決定。
在一個(gè)SaaS系統(tǒng)中存在著很多的業(yè)務(wù),每個(gè)業(yè)務(wù)包含一個(gè)或多個(gè)業(yè)務(wù)系統(tǒng)實(shí)體,這些業(yè)務(wù)系統(tǒng)實(shí)體負(fù)責(zé)解釋某個(gè)業(yè)務(wù)邏輯的執(zhí)行,向外部提供接口I2。這些接口I2所提供的信息最終要以業(yè)務(wù)表格和業(yè)務(wù)圖表的方式呈現(xiàn)給操作員。在理想的情況下,SaaS中的各個(gè)租戶操作員可以登錄一個(gè)公共的網(wǎng)址。操作員在進(jìn)行操作之前需要輸入身份信息,這些身份信息包括下面幾個(gè)方面:操作員的登錄信息、操作員的口令、所屬租戶的名稱、業(yè)務(wù)系統(tǒng)名稱。當(dāng)SaaS系統(tǒng)收集到這些信息之后,將會(huì)自動(dòng)地將該操作員導(dǎo)入到相應(yīng)的業(yè)務(wù)系統(tǒng)平臺(tái)中,操作員就可以接入到某個(gè)具體的業(yè)務(wù)系統(tǒng)平臺(tái)所提供的功能,也可以看到其所在租戶內(nèi)部能被允許接入的信息。利用這些信息,操作員可以進(jìn)一步發(fā)起新的命令,這些命令在自動(dòng)機(jī)邏輯的控制下被業(yè)務(wù)系統(tǒng)和站點(diǎn)系統(tǒng)解釋執(zhí)行,如果操作合法,操作員可以看到其所發(fā)出指令的結(jié)果。這個(gè)能夠?qū)⒉僮鲉T自動(dòng)地導(dǎo)入租戶業(yè)務(wù)系統(tǒng)和站點(diǎn)系統(tǒng)的接入裝置就是門戶系統(tǒng)。
操作員通過(guò)門戶系統(tǒng)接入SaaS服務(wù),門戶系統(tǒng)將提供三種用戶視圖。
第一種是業(yè)務(wù)視圖,普通操作員登錄系統(tǒng)之后,門戶系統(tǒng)會(huì)自動(dòng)將其導(dǎo)入到租戶的業(yè)務(wù)系統(tǒng)。一個(gè)SaaS平臺(tái)可以同時(shí)支撐很多業(yè)務(wù),每個(gè)業(yè)務(wù)可以由一個(gè)或多個(gè)業(yè)務(wù)平臺(tái)系統(tǒng)同時(shí)提供;
第二種是管理視圖,SaaS平臺(tái)的運(yùn)營(yíng)方通過(guò)該視圖可以瀏覽整個(gè)SaaS平臺(tái)范圍內(nèi)的所有業(yè)務(wù)節(jié)點(diǎn)和站點(diǎn)系統(tǒng)的節(jié)點(diǎn),對(duì)其網(wǎng)絡(luò)連接情況、負(fù)荷情況進(jìn)行監(jiān)控,并能通過(guò)一些配置手段來(lái)調(diào)整租戶和站點(diǎn)之間的關(guān)系;
第三種是租戶視圖,每個(gè)租戶的管理員可以通過(guò)門戶系統(tǒng)看到其所在租戶的域系統(tǒng)信息、操作員信息、租戶信息和自動(dòng)機(jī)實(shí)例信息,也可以通過(guò)門戶系統(tǒng)來(lái)調(diào)整它們之間的關(guān)系。
本文描述了一個(gè)基于自動(dòng)機(jī)的SaaS平臺(tái)架構(gòu),該平臺(tái)架構(gòu)具有以下技術(shù)特點(diǎn)。
· 業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)分開(kāi)。在這樣的SaaS平臺(tái)上,可以在原來(lái)的站點(diǎn)里,通過(guò)建立新的租戶業(yè)務(wù)系統(tǒng)和注入反映租戶業(yè)務(wù)邏輯的自動(dòng)機(jī),站點(diǎn)將自動(dòng)地獲得業(yè)務(wù)邏輯,這使得整個(gè)架構(gòu)擁有了一個(gè)較好的擴(kuò)展性和靈活性。
·采用了基于知識(shí)庫(kù)的規(guī)則引擎來(lái)處理業(yè)務(wù)邏輯和安全操作的問(wèn)題。可以在這樣的框架下,每個(gè)租戶可以通過(guò)給操作員指定角色,使得操作員只能夠進(jìn)行符合自己身份特征和實(shí)例狀態(tài)的操作,這使得系統(tǒng)的安全性得到了很大的保障,也使業(yè)務(wù)邏輯變得非常清晰。
·采用BPEL流程來(lái)構(gòu)建業(yè)務(wù)邏輯。BPEL是新的服務(wù)計(jì)算和服務(wù)組合的工具,BPEL中有很多流程制作工具,業(yè)務(wù)開(kāi)發(fā)人員可以采用這些工具直觀、迅速和有效地構(gòu)建新的業(yè)務(wù)。
·采用SaaS的整體架構(gòu),使得系統(tǒng)軟件的提供性得到了很大的提高。讓使用者僅僅需要關(guān)注自己的需求,將一些復(fù)雜的安裝、配置等需要計(jì)算機(jī)專業(yè)人員參與的工作完全交給軟件提供商,這將是一個(gè)成功的商業(yè)模式。
·采用靈活的站點(diǎn)式結(jié)構(gòu)來(lái)組織租戶。租戶可以根據(jù)自己對(duì)安全性和保密性的實(shí)際需求來(lái)選擇恰當(dāng)?shù)姆?wù),保證了系統(tǒng)部署的靈活性。
1 葉偉.互聯(lián)網(wǎng)時(shí)代的軟件革命SaaS架構(gòu)設(shè)計(jì).北京:電子工業(yè)出版社,2009
2 古天龍.軟件開(kāi)發(fā)的形式化方法.北京:高等教育出版社,2005
3 王紫瑤.SOA核心技術(shù)及應(yīng)用.北京:電子工業(yè)出版社,2008
Multi-tenant Application Platform Based on Automata
Yang Zhengqiu,Dou Wei
(Beijing University of Posts and Telecommunication,Beijing 100876,China)
Finite State Machine is an
computational model for the computation of the limited memory and the research of language class,it is a mathematical model with discrete input and output and able to achieve specific business functions after configuring the business process.Based on the research of SaaS,automaton,Formal Software Development and SOA,the multi-tenant application platform is proposed.In our platform,we divide our system into several independent modules based on automata,separate the business logic and business data,solve the problems between safe operation and business logic,and use flexible structure to organize our tenants and websites.The multi-tenant application platform is coming to be complete,could satisfy the management of multi-tenant application platform and can serve as an adaptive management model tenant.
software as a service,automata,application platform
2010-08-06)