《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于SOA的移動(dòng)綜合應(yīng)用平臺(tái)研究與實(shí)現(xiàn)
基于SOA的移動(dòng)綜合應(yīng)用平臺(tái)研究與實(shí)現(xiàn)
來源:微型機(jī)與應(yīng)用2010年第16期
朱亞興1, 劉 隱2, 朱小平1, 曾文英1
(1. 計(jì)算機(jī)工程技術(shù)學(xué)院 廣東科學(xué)技術(shù)職業(yè)學(xué)院, 廣東 珠海519090;2. 珠海高泰信息科技有
摘要: 探討了基于面向服務(wù)架構(gòu)(SOA)的移動(dòng)綜合應(yīng)用平臺(tái)(簡(jiǎn)稱IMAS)的研究與實(shí)現(xiàn),定義了一個(gè)基于標(biāo)準(zhǔn)Web服務(wù)接口的應(yīng)用系統(tǒng)建設(shè)框架,并在此框架上建設(shè)公共的功能組件提供給各下屬地市公司使用,整合了AD的單點(diǎn)登錄;提供了統(tǒng)一的用戶管理、統(tǒng)一的權(quán)限訪問控制;通用服務(wù)的共享提高了開發(fā)的效率,獲得客戶高度評(píng)價(jià)。
Abstract:
Key words :

摘   要: 探討了基于面向服務(wù)架構(gòu)(SOA)的移動(dòng)綜合應(yīng)用平臺(tái)(簡(jiǎn)稱IMAS)的研究與實(shí)現(xiàn),定義了一個(gè)基于標(biāo)準(zhǔn)Web服務(wù)接口的應(yīng)用系統(tǒng)建設(shè)框架,并在此框架上建設(shè)公共的功能組件提供給各下屬地市公司使用,整合了AD的單點(diǎn)登錄;提供了統(tǒng)一的用戶管理、統(tǒng)一的權(quán)限訪問控制;通用服務(wù)的共享提高了開發(fā)的效率,獲得客戶高度評(píng)價(jià)。
關(guān)鍵詞: 移動(dòng)綜合應(yīng)用平臺(tái); 面向服務(wù)架構(gòu); 單點(diǎn)登錄

    隨著企業(yè)信息化的飛速發(fā)展, 基于多種開發(fā)平臺(tái)和工具的軟件系統(tǒng)得到大量應(yīng)用, 企業(yè)中的軟件系統(tǒng)變得日益龐大和復(fù)雜。如企業(yè)資源計(jì)劃(ERP)、辦公自動(dòng)化(OA)、客戶關(guān)系管理(CRM)等應(yīng)用系統(tǒng)都是在當(dāng)時(shí)的業(yè)務(wù)需求下建設(shè)并分別歸屬為企業(yè)不同部門使用, 這些系統(tǒng)之間存在很多功能重復(fù)開發(fā),且相互獨(dú)立運(yùn)行,無法進(jìn)行信息交流和共享,在企業(yè)內(nèi)部形成了一個(gè)個(gè)“信息孤島”[1,6]。
 中國(guó)移動(dòng)某分公司同樣也存在類似情況,其業(yè)務(wù)以及人員組織架構(gòu)正在經(jīng)歷著快速的增長(zhǎng),在不同的部門中,各種信息系統(tǒng)被開發(fā)以滿足不同的管理需求。但是,由于在各下屬的地市公司中沒有一個(gè)標(biāo)準(zhǔn)的建設(shè)框架,并且許多同類型、同功能的系統(tǒng)被重復(fù)開發(fā),這導(dǎo)致了諸多問題,如系統(tǒng)用戶信息的不一致、資源的浪費(fèi)等?;谝陨蠁栴}分析,本文提出建設(shè)基于面向服務(wù)架構(gòu)(SOA)的綜合應(yīng)用平臺(tái)的解決方案:即需要首先定義一個(gè)基于標(biāo)準(zhǔn)Web服務(wù)接口的應(yīng)用系統(tǒng)建設(shè)框架,然后在此框架上建設(shè)公共的功能組件提供給各下屬地市公司使用。
1 基于Web Service技術(shù)的面向服務(wù)的體系結(jié)構(gòu)
 面向服務(wù)的體系結(jié)構(gòu)(SOA)是一種基于標(biāo)準(zhǔn)的組織和實(shí)現(xiàn)方法,它利用網(wǎng)絡(luò)共享服務(wù)使IT系統(tǒng)緊密地服務(wù)于業(yè)務(wù)流程,通過能隱藏潛在技術(shù)復(fù)雜性的標(biāo)準(zhǔn)界面,支持將業(yè)務(wù)作為連接服務(wù)或可重復(fù)業(yè)務(wù)進(jìn)行集成。也就是說它是一種能夠提高松散耦合的IT應(yīng)用程序體系結(jié)構(gòu),在這種體系結(jié)構(gòu)中,每個(gè)模塊后者功能被定義為一個(gè)服務(wù),服務(wù)之間相互通信進(jìn)行簡(jiǎn)單的數(shù)據(jù)傳遞,也可以順序調(diào)用多個(gè)服務(wù)形成業(yè)務(wù)流程。所有的服務(wù)都是相互獨(dú)立的,外部只能通過服務(wù)描述來獲得服務(wù)所提供的功能,具體實(shí)現(xiàn)卻是不可見的[2]。
 Web Service是一個(gè)應(yīng)用程序,把該應(yīng)用程序看作服務(wù),這種服務(wù)可以在Internet 通過消息傳遞動(dòng)態(tài)地被發(fā)現(xiàn)和組織,它使用SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議),并通過HTTP 的傳輸協(xié)議來傳遞SOAP消息,SOAP消息其實(shí)是以XML文檔的格式在Web服務(wù)和調(diào)用中傳遞,XML最重要的優(yōu)勢(shì)就是文件能夠跨平臺(tái),因此決定了Web服務(wù)的跨平臺(tái)性。一個(gè)服務(wù)是如何被發(fā)布、發(fā)現(xiàn)和調(diào)用的呢?首先,由UDDI.org開發(fā)的一個(gè)注冊(cè)中心標(biāo)準(zhǔn)統(tǒng)一描述發(fā)現(xiàn)和集成UDDI(Universal Description Discovery Integration)、發(fā)布和發(fā)現(xiàn)開發(fā)者提供的Web服務(wù)。其次,Web Service技術(shù)通過同樣基于XML的WSDL(Web 服務(wù)描述語言)來定義Web服務(wù),說明如何調(diào)用它。其實(shí),UDDI對(duì)Web服務(wù)作了絕大多數(shù)的描述,WSDL可以看作是UDDI的一個(gè)子集[3-4]。
 Web Service 的主要目標(biāo)是跨平臺(tái)的可互操作性, 是創(chuàng)建可互操作的分布式應(yīng)用程序的新平臺(tái),對(duì)于跨防火墻的通信、應(yīng)用程序的集成、B2B 的集成、軟件和數(shù)據(jù)重用有其優(yōu)勢(shì)。由于Web Service 的上述特點(diǎn),使得Web Service 技術(shù)成為目前實(shí)現(xiàn)SOA架構(gòu)的最理想的技術(shù)[5,7,8]。
 基于Web Service的SOA有服務(wù)代理、服務(wù)請(qǐng)求者、服務(wù)提供者三個(gè)角色和發(fā)布、查找和綁定三個(gè)基本操作。通過三個(gè)基本操作把三個(gè)角色聯(lián)系起來,基本結(jié)構(gòu)如圖1所示。

2 移動(dòng)綜合應(yīng)用平臺(tái)解決方案
 中國(guó)移動(dòng)某分公司提出了綜合應(yīng)用平臺(tái)的解決方案,如圖2所示,設(shè)計(jì)面向服務(wù)架構(gòu)(SOA)的應(yīng)用基礎(chǔ)框架,包括對(duì)基于XML的Web服務(wù)接口標(biāo)準(zhǔn)的定義。平臺(tái)最終被部署在微軟的.NET框架和應(yīng)用中心服務(wù)器上。

 在平臺(tái)開發(fā)方面,開發(fā)了單點(diǎn)登錄、AD用戶同步這些基礎(chǔ)的管理模塊,其他還包括如用戶管理、權(quán)限控制、消息接口、郵件接口、手機(jī)短消息接口、發(fā)布管理這些基礎(chǔ)的公共模塊,并將持續(xù)地進(jìn)行擴(kuò)展以覆蓋更多高級(jí)的功能模塊。
3 組件功能及詳細(xì)設(shè)計(jì)
3.1單點(diǎn)登錄
3.1.1功能及實(shí)現(xiàn)描述

 綜合應(yīng)用平臺(tái)提供的單點(diǎn)登錄是在省公司統(tǒng)一信息平臺(tái)基礎(chǔ)上提供的本地單點(diǎn)登錄配置方法,對(duì)于有特殊業(yè)務(wù)需求的系統(tǒng),提供Web Service的驗(yàn)證接口,由應(yīng)用系統(tǒng)自身實(shí)現(xiàn)邏輯。該組件提供對(duì)登錄驗(yàn)證的基本管理,并提供獲取當(dāng)前登錄用戶信息的接口。它包括的函數(shù)為:
 FsllIAMS.SSO.GMCCIAMSModule.GetUserID():返回當(dāng)前登錄用戶的員工編號(hào);
 FsllIAMS.SSO.GMCCIAMSModule.GetUserAccount():返回當(dāng)前登錄用戶的登錄賬號(hào)。
3.1.2 示例代碼(ASP.NET)
  <%@ Page Language="C#" %>
  <%
  string userid=FsllIAMS.SSO.GMCCIAMSModule.GetUserID();
  string account= FsllIAMS.SSO.GMCCIAMSModule.GetUserAccount();
  Response.Write("Hello: " + account);
  Response.Write("<br>");
  Response.Write("Your UserID is : " + userid);
  %>
3.2目錄同步
3.2.1功能及實(shí)現(xiàn)描述

    目錄同步主要用來為各個(gè)應(yīng)用系統(tǒng)提供最新的組織架構(gòu)信息、用戶信息和領(lǐng)導(dǎo)分管信息。為了保證各應(yīng)用系統(tǒng)用戶信息的一致性,所有應(yīng)用系統(tǒng)都應(yīng)該通過目錄同步組件的Web Service接口來獲取組織架構(gòu)信息、用戶信息和領(lǐng)導(dǎo)分管信息,在數(shù)據(jù)庫(kù)中保留數(shù)據(jù)副本,數(shù)據(jù)的同步可以通過Windows Service來進(jìn)行自定義策略的同步更新。該組件提供應(yīng)用系統(tǒng)獲取組織架構(gòu)、用戶、領(lǐng)導(dǎo)分管信息的接口等功能。其包括的函數(shù)有:
    GetAllUserInfo:獲取所有用戶的詳細(xì)信息;
    GetUserInfoByUserID :根據(jù)用戶標(biāo)識(shí)號(hào)(員工編號(hào))獲取用戶的信息;
    GetUserInfoByDPID :獲取指定部門/科室的所有用戶信息;
 其他函數(shù)還包括:獲取所有組織單元的信息GetXXX;獲取指定用戶所在的組織單元信息GetXXX;通過組織單元編號(hào)獲取組織單元及下級(jí)單元的信息GetXXX;獲取領(lǐng)導(dǎo)分管的詳細(xì)信息GetXXX等。
3.2.2 詳細(xì)設(shè)計(jì)
 應(yīng)用系統(tǒng)通過可自定義策略的Windows Service或其他定時(shí)服務(wù)來調(diào)用目錄同步組件的Web Service接口同步用戶、組織架構(gòu)和領(lǐng)導(dǎo)分管信息,自定義策略需要支持運(yùn)行間隔指定和運(yùn)行時(shí)間指定,一般情況下同步應(yīng)設(shè)置在晚上運(yùn)行。
 根據(jù)人力資源屬性劃分的慣例,建議應(yīng)用系統(tǒng)采取圖3所示的數(shù)據(jù)庫(kù)邏輯模型來保存組織架構(gòu)信息、用戶信息以及相關(guān)信息。其中組織架構(gòu)應(yīng)該支持任意多層,在職類型與職位級(jí)別可以從用戶信息中獲取到。

   同步邏輯:同步組織單元⇒同步在職類型⇒同步職位級(jí)別⇒同步用戶⇒同步領(lǐng)導(dǎo)分管信息。對(duì)于每種數(shù)據(jù)的處理,步驟為:處理已不存在的數(shù)據(jù)⇒對(duì)接口返回的數(shù)據(jù)進(jìn)行新增或更新操作。若發(fā)現(xiàn)用戶或組織單元在Web Service接口返回的數(shù)據(jù)中已不存在,可根據(jù)應(yīng)用系統(tǒng)的業(yè)務(wù)決定是否可以直接刪除,因?yàn)榇擞脩艋蚪M織單元可能在某些模塊產(chǎn)生了業(yè)務(wù)數(shù)據(jù);另外在職類型和職位級(jí)別也是有可能變化的,需要進(jìn)行同步更新。
 因組織架構(gòu)調(diào)整、崗位調(diào)轉(zhuǎn)或崗位競(jìng)聘等原因,人員調(diào)整會(huì)經(jīng)常發(fā)生,影響最大的是隨組織架構(gòu)進(jìn)行流轉(zhuǎn)的行政審批流程。故要求所有的行政審批都應(yīng)該根據(jù)領(lǐng)導(dǎo)分管信息來決定流程扭轉(zhuǎn),這樣當(dāng)人力資源進(jìn)行調(diào)整后所有系統(tǒng)都將自動(dòng)調(diào)整扭轉(zhuǎn),而不需要管理員手工調(diào)整各流程。
    由于人員可能調(diào)換部門或離職,組織單元可能拆分或合并,并影響到業(yè)務(wù)模塊統(tǒng)計(jì)分析的結(jié)果,建議在設(shè)計(jì)統(tǒng)計(jì)功能邏輯時(shí)應(yīng)考慮業(yè)務(wù)是優(yōu)先采用組織單元匯總還是用戶匯總,考慮已經(jīng)不存在的用戶或組織單元所產(chǎn)生的業(yè)務(wù)數(shù)據(jù)的統(tǒng)計(jì)值如何展現(xiàn)到分析結(jié)果中。
3.3 集中授權(quán)
3.3.1功能及實(shí)現(xiàn)描述

 集中授權(quán)提供應(yīng)用系統(tǒng)的權(quán)限管理功能。包括的函數(shù)有:
   CheckACL:檢查用戶指定是否擁有指定權(quán)限粒度的訪問權(quán)限;
 UpdateACLNodeXmlDom:用XML Document來更新整個(gè)權(quán)限粒度數(shù)據(jù);
 UpdateACLNode:對(duì)權(quán)限粒度的管理;
 其他函數(shù)還包括:返回應(yīng)用系統(tǒng)的所有權(quán)限粒度Get***;返回用戶對(duì)指定應(yīng)用系統(tǒng)可訪問的權(quán)限粒度集合Get***;返回應(yīng)用系統(tǒng)可以操作的所有角色,應(yīng)用系統(tǒng)角色管理,設(shè)置角色可訪問的權(quán)限粒度等。
3.3.2詳細(xì)設(shè)計(jì)
   其中重點(diǎn)描述多粒度訪問權(quán)限如下:多粒度訪問權(quán)限是指應(yīng)用系統(tǒng)內(nèi)部的各種訪問權(quán)限,例如:對(duì)模塊A、對(duì)模塊A的子模塊A.a、對(duì)模塊A.a的子模塊A.a.1、對(duì)頁面sample.aspx、對(duì)頁面a.aspx的POST方式等的訪問權(quán)限。所有訪問權(quán)限節(jié)點(diǎn)將組成一個(gè)多粒度訪問權(quán)限定義樹,XML文件的Schema描述為ACLNodeTree.xsd。格式圖如圖4所示。

 應(yīng)用系統(tǒng)定義的權(quán)限粒度文件應(yīng)更新到綜合應(yīng)用平臺(tái),可以在綜合應(yīng)用平臺(tái)上通過頁面進(jìn)行上傳更新(如圖5為示例系統(tǒng)權(quán)限粒度定義文件上傳后的頁面)或調(diào)用集中授權(quán)組件提供的相關(guān)Web Service接口進(jìn)行更新。

 對(duì)于各權(quán)限粒度的權(quán)限設(shè)置可以在綜合應(yīng)用平臺(tái)中設(shè)置(如圖6為設(shè)置“測(cè)試人員”角色可以訪問的權(quán)限粒度)或調(diào)用集中授權(quán)組件提供的相關(guān)Web Service接口進(jìn)行設(shè)置。

 綜合應(yīng)用平臺(tái)提供的授權(quán)管理分為系統(tǒng)級(jí)訪問權(quán)限控制和系統(tǒng)內(nèi)多粒度訪問權(quán)限控制。其中系統(tǒng)級(jí)訪問權(quán)限已經(jīng)由單點(diǎn)登錄組件自動(dòng)完成檢驗(yàn),應(yīng)用系統(tǒng)無須關(guān)心;若應(yīng)用系統(tǒng)需要通過綜合應(yīng)用平臺(tái)的多粒度訪問權(quán)限控制來實(shí)現(xiàn)權(quán)限管理,應(yīng)保證權(quán)限粒度定義數(shù)據(jù)在綜合應(yīng)用平臺(tái)和應(yīng)用系統(tǒng)之間實(shí)現(xiàn)同步更新;而用戶組、角色、角色訪問權(quán)限等功能可在綜合應(yīng)用平臺(tái)的系統(tǒng)管理員專區(qū)完成設(shè)置,應(yīng)用系統(tǒng)無須額外開發(fā)。
 其他組件如消息通知和待辦待閱信息等主要用來為各個(gè)應(yīng)用系統(tǒng)提供發(fā)送郵件、發(fā)送短消息和接收短消息、把待辦待閱信息推送到綜合應(yīng)用平臺(tái)和省公司統(tǒng)一信息平臺(tái)等功能,在此不一一贅述。
4 產(chǎn)生效益
 該解決方案提供了標(biāo)準(zhǔn)的應(yīng)用系統(tǒng)執(zhí)行框架,標(biāo)準(zhǔn)的應(yīng)用系統(tǒng)接口定義,整合了AD的單點(diǎn)登錄,提供了統(tǒng)一的用戶管理,統(tǒng)一的權(quán)限訪問控制,通用服務(wù)的共享提高了開發(fā)的效率。目前已成為中國(guó)移動(dòng)某分公司及各下屬地市所有管理系統(tǒng)的支柱,并獲得客戶高度評(píng)價(jià)。
參考文獻(xiàn)
[1]  馬俊,丁曉明. 基于SOA的異構(gòu)系統(tǒng)集成研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2008,29(14):3638-3641.
[2]  任贛. SOA助建新一代移動(dòng)O-CRM系統(tǒng)[J]. 中國(guó)電信業(yè),2006(12):68-70.
[3]  李安渝.Web Services 技術(shù)與實(shí)現(xiàn)[M].北京:國(guó)防工業(yè)出版社,2003.
[4]  曾文英,趙躍龍,齊德昱.ESB原理、構(gòu)架、實(shí)現(xiàn)及應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用, 2008,44(25):225-229.
[5]  曹曉葉,王知衍,許曉偉,等. 基于SOA的企業(yè)應(yīng)用集成研究與應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(12):16-19.
[6]  劉敏,嚴(yán)雋薇.基于面向服務(wù)架構(gòu)的企業(yè)間業(yè)務(wù)協(xié)同服務(wù)平臺(tái)及技術(shù)研究[J].計(jì)算機(jī)集成制造系統(tǒng), 2008,14(2):306-313.
[7]  ZELEN A. Open source ESBs for application.integration (SOA optional) [EB/OL].[2007-02 - 16]. redmonk.com/public/OpenSource ESBs.pdf.
[8]  顧天竺,沈潔, 陳曉紅,等. 基于XML的異構(gòu)數(shù)據(jù)集成模式的研究[J].計(jì)算機(jī)應(yīng)用研究,2007,24(4):94-97.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。