?

面向產業鏈協同SaaS平臺的企業群應用配置技術研究

2014-11-30 07:49王淑營劉述雅李月霞
計算機工程與設計 2014年1期
關鍵詞:表單租戶字段

鐘 軍,王淑營,劉述雅,李月霞

(1.西南交通大學CAD工程中心,四川 成都610031;2.成都市國龍信息工程有限責任公司中心,四川 成都610031;3.北京鐵路局石家莊職工培訓基地,河北 石家莊050061)

0 引 言

隨著網絡技術和信息技術的不斷發展,企業之間的競爭由單個企業之間的個體競爭已發展成為以龍頭企業為核心的供應鏈的整體競爭,隨之信息化技術也由原來的企業內部已ERP/PDM為核心的集成,發展成為跨企業邊界的企業間的集成與協同服務[1,2]。在企業間的集成與協同解決方案中,軟件服務及應用 (software as a service,SaaS)以其特有的集成資源、軟硬件價格和專業化服務優勢發揮越來越重要的作用。產業鏈協同SaaS平臺正是在這種背景下應運而生的,它以專業化的第三方服務的方式的集成軟硬件資源,為以龍頭企業為核心的企業群提供個性化應用解決方案。

按需配置是SaaS軟件的本質特征,目前國內外關于面向SaaS平臺的配置技術研究很多,也取得了許多研究成果,如基于元數據定制技術、基于業務規則定制技術[3]等。許多國外的公司很早就開始對SaaS配置技術進行研究,Salesforce專注開發在線客戶關系管理 (CRM)軟件,Google開發大量在線辦公套件。在國內許多公司,如八百客針對中國用戶開發CRM和在線Office,阿里軟件開發的AEP(Alisoft ecommerce platform)平臺,這些軟件都在研究業務流程配置、業務規則配置、界面配置等可配置技術。

在技術上,文獻 [4]采用原圖的觀點來描述基于多租戶的個性化定制,使用鄰接矩陣和閉合矩陣來存儲原圖中各個定制點之間的關系。從數學上保證定制的正確性和定制點之間的依賴性,但是這種方案會產生巨大的矩陣,使得在實際應用中很難管理。文獻 [5]將系統業務描述成一系列路徑,然后為路徑上的點設置開關來實現個性化業務需求,這種方案需要設置大量預定義點只適應一類業務的定制,并不能完全個性化定制。文獻 [6]根據樹形節點的屬性以及繼承性和邊屬性來分類定制節點,但是這使得服務提供商的管理復雜度增加。文獻 [7-9]基于BPEL語言在過程中定制業務可變點,每個業務可變點包含一系列選擇,雖然這種方式實現過程的擴展性,但是在功能實例化后不可以再改變。文獻 [10]提出一個面向SaaS服務個性化定制的解決方案,服務提供商根據租戶的要求進行驗證,如果通過驗證就更新提供的服務。這個方式,服務器需要時刻處理租戶的請求,導致服務器負擔過大,影響效率。文獻 [11]引入業務驅動模型來完成SOA復雜環境各個方面的配置,通過規則來引導層次之間的通信,但是這種方式缺乏自定義業務規則的靈活性。在研究SaaS定制問題上,多租戶的數據存儲管理是一個關鍵領域。文獻 [12]設計一個查詢重寫引擎,將邏輯查詢映射到物理查詢,但是這篇文章是基于寬表來設計的,并不適于名稱對形式存儲數據的查詢重寫。文獻 [13]提出一個基于繼承的SaaS模型,方便定制管理、減少定制冗余。文獻 [14,15]分別對名值對數據存儲形式進行改進,改進查詢效率。在產業鏈協同SaaS平臺上,強調以龍頭企業為核心,實現基于平臺上下游企業群協同工作。因此,針對其定制技術主要體現在以龍頭企業為核心的基于協作系統的多主體應用界面的定制上,這方面的研究目前尚無成熟的解決方案。

本文在上述成果的基礎上,針對產業鏈協同SaaS平臺以龍頭企業為核心的應用模式,提出了產業鏈協同SaaS平臺企業群應用配置模型,并對其實現技術進行了研究。

1 產業鏈協同SaaS平臺的企業群應用配置需求

產業鏈協同SaaS平臺支持以龍頭企業為核心的企業群對零部件協同采購、產品協同銷售、產品協同維修以及售后配件的協同調撥等[16]。在企業群應用過程中,不同的龍頭企業對業務協同功能、單據格式、數據存儲等需求均不同,對同一龍頭企業的同一業務,不同的協作企業類型在參與過程中對應用的需求也不同,面向企業群的應用配置是解決個性化需求的有效手段。

在產業鏈協同SaaS平臺的支持下,租戶只需購買相應的服務和功能就能夠使用軟件,同時具有表單視圖編輯功能,以實現租戶個性化業務需求。用戶可以修改已購買的服務也可以退租所有服務,保證租戶實際利益。產業鏈協同SaaS平臺對企業群應用配置的需求主要體現在:①組織結構種類繁多、數量龐大,對于組織結構中角色修改、成員的增減時有發生,對組織結構的配置非常必要;②由于企業群用戶的不同,用戶界面的元素具有差異性,包括元素的名字、頁面的樣式以及一些額外信息;③對于具有不同角色的用戶使用報表的查詢條件以及查詢后的樣式也需要進行配置,以滿足他們實際需求。

上面的配置工作需要實現數據配置的支持,數據配置主要是添加新數據、改變存在數據、刪除數據。表1列出了定制的各種需求及其相應操作。

表1 產業鏈協同SaaS平臺配置的需求及其操作

2 面向SaaS平臺企業群應用配置模型

為了滿足租戶個性化需求,將產業鏈協同SaaS平臺中所有功能進行劃分和定義為原子功能。功能劃分的粒度為相互獨立、不相交、總組合為原來系統[17]。租戶購買的服務也就是這些功能的集合。按照功能的屬性加載不同的模板,根據模板和字段屬性選擇界面生成表單視圖。在產業鏈協同SaaS平臺中將用戶數據垂直切分成用戶公共字段和用戶個性化配置字段,將公共字段存入公用基本表,個性化配置字段存入用戶擴展表[18],保證租戶數據的隔離性。字段屬性選擇界面是由后臺多張表組合得到。根據上面描述,結合實際軟件開發本文提出個性化定制拓撲結構圖,如圖1所示。

2.1 應用配置模型的數學描述

為了方便對SaaS平臺的表單定制功能描述,我們對上述涉及到的對象進行抽象和定義。

定義1 產業鏈協同SaaS平臺的龍頭企業為核心,通過業務類別和其它企業群建立協同工作實現產業鏈的協同管理,平臺上協作企業的關系可以用一個三元組Ui={Eu,來表示,其中:E= {E,來表示,其中:Eu={EID1,EID2,...,EIDn}表示SaaS平臺的企業用戶;

圖1 SaaS平臺企業群應用配置模型

TYPu= {TYPUd,TYPUp,TYPUs,...}表示SaaS平臺的不同業務類別,TYPUd、TYPUp、TYPUs分別代表服務商、供應商、經銷商協作類別;

Sitems= {S1,S2,...,Sn}表示多個服務的集合,S 的定義參考定義2;

uu別建立協作的服務集合。

定義2 SaaS的一個核心價值就是從設計傳統的軟件產品模式轉為提供軟件服務模式,那么對于服務的設計尤為重要,產業鏈協同SaaS平臺對于特定企業群Ui提供的服務Si可以用一個六元組Si=R(Si),Fpackage,S →R (Fpackage) }來表示,其中:

SID表示服務標識;

SDES表示服務描述;

A表示權限;

Fpackage= {F1,F2,...,Fn}表示由原子功能構成的功能集合,F的定義參考定義3;

S→R (Fpackage) 表示一個服務對應一個功能集合。

定義3 在SaaS平臺企業群配置模型中,對原有的功能進行細粒度劃分,然后重組以實現對定制的服務S的支持,一個實際可執行的功能Fi可用六元組Fi={FID,FDES,A,P,Template→R(FP),F→R{Fi}}來表示,其中:

FID表示功能標識;

FDES表示功能的描述;

P∈ {Add,Update,Select,Delete}表示操作屬性;

Template = {Template1,Template2,...,Templaten}表示平臺提供的各種屬性模板;

Template→R(FP)表示功能根據功能的屬性擁有相應的模板;

F→R{Fi}表示一項功能依賴于其它功能而存在。

定義4 配置個性化的企業使用界面是SaaS的一個基本性能,根據SaaS平臺企業群配置模型的設計思路,Vi是由配置的字段集合和選擇的模板共同生產的,Vi可以用一個二元組Vi= {Fields,V →R(Template,Fields)}來表示,其中:

Fields表示管理員配置的字段集合;

V→R(Template,Fields)表示一個表單視圖是基于有效字段和模板規則生成的。

數據存儲是產業鏈協同SaaS平臺的一個重要特性,本文采用名值對形式即保證數據的擴展性又保證數據的隔離性。在共享數據庫共享模式的數據庫存儲方式中名值對是最理想的,可以實現租戶數據的無限擴展,但是名值對方式存儲需要對插入SQL語句的拆分和查詢SQL語句的重組,數據庫服務器完成這部分工作開銷較大,需要最基本的名值對方式進行改進,下面給出一種改進的方案。

定義5 改進的擴展方案可以用一個三元組

Extension_id表示擴展字段的唯一標識;

Extension_lbl表示擴展字段名稱;

Data_type表示擴展字段類型;TExtension_table= {Row_id,Tenant_id,Record_id,XML_text,Table_id}表示以XML類型存儲某一記錄行所有的擴展字段及其值,其中:Record_id表示對于業務實體表中某行記錄;

XML_text使用XML數據類型存儲Record_id記錄行所對應的值。數據行號,也就是ROWID。

2.2 產業鏈協同SaaS平臺配置的依賴與約束

規約1:產業鏈協同SaaS平臺中特定服務是一系列功能的集合,用Scomp→d(Fi)表示,但是在實際應用中如果Fi,這個服務沒有實際意義,也為空,他們之間的UML關系圖如圖2所示。

圖2 服務和功能關系

規約2:應用中某些功能是在其它功能的基礎上形成的,用Fcomp→d(Fmeta)表示,其中:Fcomp表示具有依賴屬性的功能,Fmeta表示被依賴的基礎功能集合;例如修改用戶訂單信息功能是依賴于查詢用戶訂單功能的結果。

規約3:由于功能之間存在依賴關系,在配置過程中必須檢測功能之間的約束關系,用Fmeta→c(Fcomp)表示,如果Fmeta不存在,則Fcomp就沒有意義,所以在配置過程中要取消Fmeta,必須先取消Fcomp,他們之間的UML關系圖如圖3所示。

圖3 功能與功能關系

3 面向產業鏈協同SaaS平臺的應用配置實現技術研究

3.1 企業群Ui配置數據及其應用數據的存儲

3.1.1 配置Si和Fi信息的存儲方法

對于服務和功能的配置信息存儲,采用關系型數據庫就能很好的實現。首先,建立服務表ServiceT、功能表FunctionT、服務和關聯功能表Service_Related_FuctionT和功能依賴表Function_Related_FunctionT。定義一項服務,選擇包含的功能集合,檢查選擇的功能集合中的復合功能的被依賴功能項是否被選擇。如果滿足規約1、規約3,分別將EID、SID插入ServiceT,然后將EID、FID插入FunctionT中。

3.1.2 表單視圖數據的存儲方法

將表單數據劃分成表單的用戶數據和樣式數據,保證表單的表現與表單邏輯的隔離。如圖4所示。

圖4 表單視圖的數據保存形式

由于XMl成為不同應用之間數據交換標準,XML解析性能提升,對于表單樣式采用XML定義+XML存儲方式實現。將完成后生產XML文件存入SaaS平臺的XML庫,每個租戶建立單獨的文件夾,保證用戶安全,租戶下載相應的XML樣式并存放報本地數據隔離區。

由于用戶數據量大、操作頻繁,需要采用數據庫來存儲,具體使用定義5中的改進方案來實現。定義5中的三張表的關系如圖4所示,這種改進方案有如下的優點:①沒有空值被存儲,節約存儲空間;②租戶定制字段的數據類型沒有限制,都是由 Metadata_table的Data_type管理;③數據庫的擴展部分只需要這三張表,數量固定,租戶定制字段的數量和擴展的表數量是獨立;④對于實體業務的一條數據在中只需要一行就可以完成存儲,不需要為每個擴展字段存儲一行記錄;⑤對擴展數據的查詢借助臨時表使用Extention_table就可以完成,查詢效率高。

3.2 視圖配置

本文將界面視圖進行分離,得到頁面的業務屬性元素模塊和頁面的樣式及其操作模塊。業務屬性元素模塊采用固定模式的XML文件存儲,頁面樣式及其操作模塊采用XSLT文件模板處理,其中XSLT模板由負責樣式的CSS文件庫和負責操作的JS文件庫構成。視圖的配置模型和詳細過程如圖5所示。

圖5 視圖的配置模型

算法名稱:表單視圖配置算法

輸入:租戶的密碼、認證口令

輸出:XML配置文件

BEGIN

步驟1 系統管理員登陸系統,輸入用戶名和密碼以及httphander中的cookie發送到SaaS共服務平臺;

步驟2 在平臺中的認證中心完成租戶的認證,如果管理員認證成功,轉到步驟3;否則返回提示信息;

步驟3 選擇某一功能表單,然后設置表單的使用者;

步驟4 根據功能表單加載數據庫中和表單相關的所有字段的字段名稱、字段類型、字段長度、是否必填、字段來源等,包括實體業務表的字段和該表對于的擴展字段;同時初始化一個XML文件;

步驟5 如果有新增字段則進入新增字段處理器,添加完字段后返回步驟4,然后刷新字段展示中心;如果沒有新增字段,則進入步驟6;

步驟6 對需要的字段進入字段屬性配置處理器,包括字段的顯示名稱、顯示控件、是否必填、是否加密等信息;根據配置的屬性修改初始化的XML文件;

步驟7 使用XSLT處理器對最終配置XML文件進行樣式處理,通過效果預覽不斷調整XSLT模板,直至滿意結果;

步驟8 將個性化XML配置文件和XSLT模板存入SaaS平臺的XML數據庫,然后返回管理員提示信息;

END

對于普通的租戶登錄平臺后,只需要加載XML文件和XSLT模板就可以動態的生成租戶界面。表單界面的動態加載模型以及詳細算法如圖6所示。

圖6 表單界面動態加載模型

算法名稱:表單界面動態加載算法

輸入:租戶的密碼、認證口令

輸出:HTML文件

BEGIN

步驟1 租戶在瀏覽器客戶端登陸系統,輸入用戶名和密碼以及httphander中的cookie發送到SaaS共服務平臺;

步驟2 在平臺中的認證中心完成客戶的認證,否則返回錯誤提示信息;

步驟3 如果通過認證,就去XML數據中讀取該租戶相應的XML配置文件,同時讀取XSLT中心的XSLT文件;

步驟4 其中XSLT文件中包含控制頁面功能的JS文件和控制HMTL中控件顯示樣式的CSS樣式文件;

步驟5 在界面生成中心,用XSLT文件去解析XML文件輸出位HTML文件;

步驟6 將生成的HTML文件返回給瀏覽器客戶端,瀏覽器加載HTML文件顯示給租戶;

END

算法的優點:①充分解耦分離出XML文件和XSLT文件,使得對界面的配置可以并行開發;②SaaS平臺提供足夠的安全性;③SaaS平臺界面的動態生成工作,客戶端加載速度快。

4 企業群應用配置的驗證

4.1 針對銷售企業訂單服務視圖的配置實例

在產業鏈協同SaaS平臺中,銷售企業的訂單服務涉通常的功能,同時訂單服務涉及較多數據字段,對訂單配置具有產業鏈協同SaaS平臺應用配置代表性。下面是企業用戶管理員為普通企業用戶配置訂單服務及其界面的實例,如圖7所示。

圖7 訂單服務配置實例

配置訂單服務實例過程如下:EA配置SA(Order)的FA(OrderEdit)和FA(OrderAdd),然后配置 FieldsA(Order),根據TemplateAdd、TemplateEdit模板和FieldsA(Order),生產VA(OrderAdd),VA(OrderEdit);EB配 置 SB(Order) 的FB(OrderAdd),然后配置FieldsB(Order),根據TemplateAdd模板和FieldsB(Order),生產VB(OrderAdd)。

4.2 實現結果

對于不同銷售公司由于實際業務需求差異,需要定制不同的銷售訂單表,對于服務功能的配置如圖8所示,字段配置界面如圖9所示,最后定制的界面如圖10所示。

5 結束語

圖8 企業A與企業B服務功能配置

本文研究了SaaS配置技術和產業鏈協同技術,提出一個面向產業鏈協同SaaS平臺的配置模型,滿足企業用戶的個性化配置。在文中提出了一個面向產業鏈協同SaaS平臺配置模型的拓撲結構模型,定義了模型中的元素及其規約。研究了配置模型的存儲方式,包括服務功能配置數據的存儲,表單配置數據的存儲,表單業務數據的存儲。在此模型上提出了表單定制算法,包括表單視圖配置算法和表單界面動態加載算法,并在產業鏈協同SaaS平臺上進行了應用驗證。但本文沒有考慮后臺數據模型的優化,這是需要進一步研究的內容。

[1]WANG Shuying.Research on architecture of collaborative work platform for industrial-chain in enterprises cluster [J].Journal of Computer Applications,2010,30 (5):1363-1366(in Chinese).[王淑營.產業鏈企業群協同工作平臺體系結構研究 [J].計算機應用,2010,30 (5):1363-1366.]

[2]WANG Shuying.Integrated framework of collaborative commercial platform for manufacturing industrial chain [J].Journal of Southwest Jiaotong University,2008,43 (5):643-647(in Chinese).[王淑營.面向制造業產業鏈的協同商務平臺集成框架 [J].西南交通大學學報,2008,43 (5):643-647.]

[3]WANG Shuying.Evolution technology for alliance customization oriented collaborative platform of industrial chain [J].Computer Engineering,2011,37 (9):101-103 (in Chinese).[王淑營.面向聯盟定制的產業鏈協同平臺演化技術 [J].計算機工程,2011,37 (9):101-103.]

[4]CUI Lizhen,QANG Haiyang.Customization modeling based on metagraph for multi-tenant applications [C]//5th International Conference on Pervasive Computing and Applications,2010:255-260.

[5]vanderAalst W M P,Dreiling A,Gottschalk F,et al.Jansen-Vullers[G].Lecture Notes in Computer Science 3812:Business Process Management Workshops,2006:512-518.

[6]ZHANG Kou,ZHANG Xin,SUN Wei,et al.A policy-driven approach for software-as-services customization [C]//E-Commerce Technology and the 4th IEEE International Conference on Enterprise Computing,E-Commerce,and E-Services,2007:123-130.

[7]Ralph M.Using variability descriptors to descrtibe customizable SaaS application templates[R].Institute of Architecture of Application Systems,2008:1-27.

[8]Michiel K.VxBPEL:Supporting variability for web services in BPEL [J].Information and Software Technology,2009,51(2):258-269.

[9]Liu Guoqi,Zhang Wei,Li Dancheng.BPEL based service process configuration in SaaS application [J].Advances in Computer,Communication,Control and Automation Lecture Notes I Electrical Engineering,2012,121:157-164.

[10]Kou Z.A policy-driven approach for software-as-services customization [C]//IEEE Computer Society,CEC-EEE,2007:1-8.

[11]Pietro M,Biplav S.Business driven SOA ustomization [G].LNCS 5364:6th International Conference on Service Oriented Computing.Berlin: Springer Berlin Heidelberg,2008:286-301.

[12]LIAO Chunfeng,CHEN Kung,CHEN Jiujye.Toward a tenant-aware query rewriting engine for universal table schemamapping [C]//IEEE 4th International Conference on Cloud Computing Technology and Science,2012:833-838.

[13]Kong Lanju,LI Qingzhong.A novel model supporting customization sharing in SaaS applications [C]//International Conference on Multimedia Information Networking and Security,2010:255-259.

[14]CHEN We,SHEN Beijun.Template-based business logic customiation for SaaS appplications [C]//IEEE International Conference on Progress in Informatics and Computing,2010:584-588.

[15]WANG Hua,ZHENG Zhijun.Software architecture driven configurability of multi-tenant SaaS application [G].Lecture Notes in Computer Science 6318:Web Information Systems and Mining,2010:418-424.

[16]Chong F,Carraro G,Wolter R.Multi-tenant data architecture.MSDN library,Microsoft cororation [M/OL].http://msdn.microsoft.com/en-us/library/aa479086.aspx,2006.

[17]WU Shengqi,ZHANG Shidong.A dyncamic data storage architecture for SaaS [C]//International Conference on Multimedia Information Networking and Security,2010:292-296.

[18]ZHENG Xuxu,LI Qingzhong.A data storage architecture supporting multi-level customizaqtion for SaaS [C]//Web Information Systems and Applications Conference,2010:106-109.

猜你喜歡
表單租戶字段
圖書館中文圖書編目外包數據質量控制分析
電子表單系統應用分析
多租戶數據隔離及加密研究
基于多租戶隔離的云安全建設
基于圖表示和匹配的表單定位與提取
淺談網頁制作中表單的教學
基于MVC模式的多租戶portlet應用研究*
CNMARC304字段和314字段責任附注方式解析
無正題名文獻著錄方法評述
企業多租戶云存儲平臺的設計與實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合