專利名稱:基于云的主數(shù)據(jù)管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)的管理,尤其涉及對基于云的主數(shù)據(jù)的管理。
背景技術(shù):
許多主數(shù)據(jù)管理(MDM)服務(wù)幫助企業(yè)對人依賴來作出關(guān)鍵商業(yè)決策的數(shù)據(jù)進行標(biāo)準(zhǔn)化。通過使用MDM服務(wù),組織在嘗試使更多人能夠安全地直接管理主數(shù)據(jù)時嘗試管理公司范圍以及跨不同系統(tǒng)的關(guān)鍵數(shù)據(jù)資產(chǎn),并嘗試確保信息隨時間的完整性。每一個企業(yè)維護它們自己的MDM服務(wù),這可能是復(fù)雜的工作。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下具體實施例中進一步描述的一些 概念。本發(fā)明內(nèi)容不旨在標(biāo)識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍?;谠频姆?wù)向客戶機提供主數(shù)據(jù)管理(MDM)服務(wù)??蛻魴C可創(chuàng)建/修改由基于云的服務(wù)所主存的MDM工作流,以幫助滿足它們的需要。在由基于云的服務(wù)所主存的工作流內(nèi)的各個點處提供接口。基于云的服務(wù)利用執(zhí)行預(yù)定義的可配置塊的靈活流水線。用戶可基于預(yù)定義的塊(例如,執(zhí)行塊、條件塊、循環(huán)塊)的集合來創(chuàng)建或定制現(xiàn)有的工作流。這些塊被配置為根據(jù)預(yù)定義模式來接收、處理和發(fā)送與主數(shù)據(jù)有關(guān)的信息??蛻魴C可發(fā)布主數(shù)據(jù)改變和/或訂閱由其他客戶機作出的主數(shù)據(jù)改變。
圖I示出了示例性計算環(huán)境;圖2示出了供客戶機與基于云的MDM網(wǎng)絡(luò)服務(wù)交互的系統(tǒng);圖3示出了主存在基于云的MDM服務(wù)中的工作流;圖4示出了用于基于云的MDM服務(wù)的服務(wù)器架構(gòu);圖5示出了用于訪問基于云的MDM服務(wù)的客戶機架構(gòu);以及圖6示出了用于基于云的主數(shù)據(jù)管理的說明性過程。
具體實施例方式現(xiàn)將參考附圖來描述各實施例,在附圖中類似的標(biāo)號代表類似的元素。具體地,圖I和相應(yīng)的討論旨在提供對在其中可實現(xiàn)各實施例的合適計算環(huán)境的簡要、概括描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu)。也可使用其它計算機系統(tǒng)配置,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費電子產(chǎn)品、小型計算機、大型計算機等等。還可使用在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的分布式計算環(huán)境。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設(shè)備兩者中。
現(xiàn)在參考圖1,將描述在各個實施例中所利用的計算機100的說明性計算機環(huán)境。圖I所示的計算機環(huán)境包括計算設(shè)備,這些計算設(shè)備各自可以被配置為服務(wù)器、臺式或移動計算機、或者某一其他類型的計算設(shè)備,并且包括中央處理單元5 ( “CPU” )、包括隨機存取存儲器9 ( “RAM”)和只讀存儲器(“ROM”) 10的系統(tǒng)存儲器7、以及將存儲器耦合至中央處理單元(“CPU”)5的系統(tǒng)總線12。基本輸入/輸出系統(tǒng)存儲在ROM 10中,所述基本輸入/輸出系統(tǒng)包含幫助在諸如啟動期間在計算機內(nèi)元件之間傳遞信息的基本例程。計算機100還包括用于儲存操作系統(tǒng)16、數(shù)據(jù)11、MDS應(yīng)用24、Web瀏覽器26以及其他程序模塊25的大容量存儲設(shè)備14。大容量存儲設(shè)備14通過連接至總線12的大容量存儲控制器(未示出)連接到CPU 5。大容量存儲設(shè)備14及其相關(guān)聯(lián)的計算機可讀介質(zhì)為計算機100提供非易失性存儲。雖然此處包含的對計算機可讀介質(zhì)的描述針對諸如硬盤或CD-ROM驅(qū)動器等大容量存儲設(shè) 備,但是計算機可讀介質(zhì)可以是能夠由計算機100訪問的任何可用介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以存儲如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)還包括,但不限于,RAM、ROM、可擦除可編程只讀存儲器(“EPR0M”)、電可擦除可編程只讀存儲器(“EEPR0M”)、閃存或其它固態(tài)存儲器技術(shù)、⑶-ROM、數(shù)字多功能盤(“DVD”)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需信息且可以由計算機100訪問的任何其它介質(zhì)。計算機100使用通過諸如因特網(wǎng)之類的網(wǎng)絡(luò)18與遠程計算機的邏輯連接而在網(wǎng)絡(luò)化環(huán)境中操作。計算機100可以通過連接至總線12的網(wǎng)絡(luò)接口單元20來連接到網(wǎng)絡(luò)18。網(wǎng)絡(luò)連接可以是無線的和/或有線的。網(wǎng)絡(luò)接口單元20也可用于連接到其它類型的網(wǎng)絡(luò)和遠程計算機系統(tǒng)。計算機100還可包括用于接收和處理來自多個其他設(shè)備的輸入的輸入/輸出控制器22,這些設(shè)備包括鍵盤、鼠標(biāo)或者電子指示筆(未在圖I中示出)。類似地,輸入/輸出控制器22可以提供到IP電話、顯示屏23、打印機或其它類型的輸入/輸出設(shè)備。如前簡述的那樣,多個程序模塊和數(shù)據(jù)文件可以存儲在計算機100的大容量存儲設(shè)備14和RAM 9內(nèi),包括適于控制計算機的操作的操作系統(tǒng)16,如華盛頓州雷蒙德市的微軟公司的WINDOWS 7 或WINDOWS SERVER 操作系統(tǒng)。大容量存儲設(shè)備14和RAM 9還可以存儲一個或多個程序模塊。具體而言,大容量存儲設(shè)備14和RAM 9可以存儲包括MDS應(yīng)用24、Web瀏覽器26和程序模塊25的一個或多個應(yīng)用程序。根據(jù)一實施例,MDS應(yīng)用24是微軟公司的應(yīng)用。也可使用與主數(shù)據(jù)交互的其他ERP/MDS應(yīng)用。主數(shù)據(jù)可以是許多類型的數(shù)據(jù)。一般而言,主數(shù)據(jù)是商業(yè)的關(guān)鍵名詞,并且一般落入以下四個編組中人、事物、地點和概念。這些編組內(nèi)的進一步分類被稱為主體區(qū)域、域區(qū)域、或?qū)嶓w類型。例如,在人內(nèi),有顧客、雇員和銷售人員。在事物內(nèi),存在產(chǎn)品、部件、儲備和資產(chǎn)。在概念內(nèi),存在如合同、被擔(dān)保人和許可之類的事物。最后,在地點內(nèi),存在辦公室位置和地理劃分。這些域區(qū)域中的一些可被進一步劃分??苫趧訖C和歷史來進一步分割顧客。公司可具有一般顧客、以及首要和高級顧客。產(chǎn)品還可按部門和行業(yè)來進一步分割。 快速消費品(Consumer Packaged Goods CPG)部門中的產(chǎn)品的需求、生命周期、和CRUD(創(chuàng)建、讀取、更新、刪除和搜索)周期很可能與服裝行業(yè)的那些極為不同。域的粒度本質(zhì)上由這些域內(nèi)的實體的屬性之間的差異的大小來決定。主數(shù)據(jù)可通過其與其他數(shù)據(jù)交互的方式來被描述。例如,在事務(wù)系統(tǒng)中,主數(shù)據(jù)通常涉及事務(wù)性數(shù)據(jù)。顧客購買一產(chǎn)品。廠商銷售部件,而合作方將一箱材料遞送到某一地點。雇員與其管理者分層地相關(guān),管理者通過管理者(另一雇員)向上報告。產(chǎn)品可以多個層次的一部分,該多個層次描述其在商店內(nèi)的放置。主數(shù)據(jù)與事務(wù)性數(shù)據(jù)之間的這種關(guān)系可從基本上被視為名詞/動詞關(guān)系。事務(wù)性數(shù)據(jù)捕捉諸如銷售、遞送、購買、電子郵件發(fā)送、和撤銷之類的動詞;主數(shù)據(jù)是名詞。這是數(shù)據(jù)倉庫事實和維度共享的相同關(guān)系。隨著基數(shù)(集合中元素的數(shù)目)減少,元素被作為主數(shù)據(jù)元素一甚至諸如顧客之類的被普遍接受的主體區(qū)域——來對待的可能性減小了。例如,如果公司僅具有三個顧客,則最可能的情況是他們只因為通過主數(shù)據(jù)基礎(chǔ)結(jié)構(gòu)來管理那些消費者毫無益處而不會將那些顧客認(rèn)為是主數(shù)據(jù)——至少在用主數(shù)據(jù)管理方案來支持他們的上下文中不會這么認(rèn)為。但是,具有成千上萬的顧客的公司將因管理這樣的大的實體集所伴隨的問題以及益處而認(rèn)為顧客是重要的主體區(qū)域。顧客對這些公司中的每一個的價值都是相同的。兩者都依賴于其顧客來作買賣。一個需要顧客主數(shù)據(jù)方案;另一個則不需要?;鶖?shù)不改變給定實體類型的分類;然而,具有用于管理實體類型的方案的重要性隨著實體類型的基數(shù)的增長而增加。主數(shù)據(jù)往往比起事務(wù)性數(shù)據(jù)更不易失。隨著主數(shù)據(jù)變得更加易失,其通常被認(rèn)為更加事務(wù)性。例如,一些人可能將“合同”認(rèn)為是主數(shù)據(jù)元素。其他人可能將其認(rèn)為是事務(wù)。取決于合同的有效期限,其可能變成任一情形。推銷職業(yè)運動員的代理可能將他們的合同認(rèn)為是主數(shù)據(jù)。合同彼此各不相同,并且通常具有超過一年的有效期限。可能傾向于僅具有稱為“運動員”的一個主數(shù)據(jù)項。然而,運動員在任何給定時間往往具有一個以上的合同一個是與與他們的隊伍間的合同,而其他是與簽署產(chǎn)品的公司間的合同。隨著合同的元素被重新協(xié)商或者運動員被交易,代理可能需要隨著時間管理所有這些合同。其他合同(例如,詳解汽車或粉刷房子的合同)更像是事務(wù)。它們是用于提供服務(wù)以獲得支付的一次性短暫契約,并且通常在數(shù)小時內(nèi)被履行和銷毀。簡單的實體(甚至是有價值的實體)很少會是進行管理的難題,并且很少被認(rèn)為是主數(shù)據(jù)元素。元素越不復(fù)雜,則越不可能需要管理該元素的改變。典型地,此類資產(chǎn)被簡單地收集并被計數(shù)。例如,F(xiàn)ort Knox很可能不會跟蹤關(guān)于存儲在那里的每根單獨的金條的信息,而是僅僅保持它們的計數(shù)。每根金條的價值是實質(zhì)性的,基數(shù)高且壽命長;但是,復(fù)雜度很低。數(shù)據(jù)元素對公司越有價值,則其將越可能被認(rèn)為是主數(shù)據(jù)元素。價值和復(fù)雜度共同起作用。雖然主數(shù)據(jù)通常比起事務(wù)性數(shù)據(jù)更不易失,但是具有完全不會改變的屬性的實體 通常不被分類為主數(shù)據(jù)。例如,稀有硬幣可能看起來滿足作為主數(shù)據(jù)來對待的準(zhǔn)則中的許多。稀有硬幣收藏家很可能具有許多稀有硬幣。所以,基數(shù)是高的。它們是有價值的。它們也是復(fù)雜的。例如,稀有硬幣具有歷史和描述。存在諸如正面、背面、硬幣上的文字、銘刻、鑲邊、以及底色的情況之類的屬性。存在諸如設(shè)計者姓名首字母、邊緣設(shè)計、層、以及肖像之類的其他屬性。
但是,稀有硬幣無需被作為主數(shù)據(jù)項來管理,因為它們不會隨時間而改變一或者至少它們不會改變很多。隨著某一硬幣的歷史被揭示,或者如果某些屬性必須被校正,則可能需要添加更多信息。但是,一般而言,稀有硬幣不會通過主數(shù)據(jù)管理系統(tǒng)來被管理,因為它們不夠易失因此不足以保證一解決方案。驅(qū)動主數(shù)據(jù)管理的原因之一是重用。例如,在簡單世界中,CRM系統(tǒng)可管理關(guān)于顧客的所有事情,并且無需與其他系統(tǒng)共享關(guān)于顧客的任何信息。然而,在當(dāng)今的復(fù)雜環(huán)境中,需要跨多個應(yīng)用共享顧客信息。麻煩就從此開始。因為(出于數(shù)個原因)對主數(shù)據(jù)的訪問并非總是可用的,所以人們開始將主數(shù)據(jù)存儲在各個位置,諸如電子表格和應(yīng)用專用存儲。仍然存在管理未跨企業(yè)重用的主數(shù)據(jù)的原因,諸如數(shù)據(jù)質(zhì)量降級和衰退。然而,如果主數(shù)據(jù)實體在多個系統(tǒng)中被重用,則肯定的是該主數(shù)據(jù)實體應(yīng)通過主數(shù)據(jù)管理系統(tǒng)來被管理。雖然枚舉各種主數(shù)據(jù)實體類型是簡單的,但是決定公司中的哪些數(shù)據(jù)項應(yīng)當(dāng)作為主數(shù)據(jù)來對待有時更具挑戰(zhàn)性。通常,一般不遵循主數(shù)據(jù)的定義的數(shù)據(jù)可能需要如此來管理,而遵循定義的數(shù)據(jù)可能不需要如此來管理。最終,在決定什么實體類型應(yīng)當(dāng)作為主數(shù)據(jù)來對待時,比起依賴于簡單的實體類型列表,根據(jù)其在商業(yè)需求的上下文內(nèi)的行為和屬性來對它們進行分類更好。諸如MDS應(yīng)用24或web瀏覽器26之類的客戶機應(yīng)用被配置為與諸如由用于與主數(shù)據(jù)(諸如主數(shù)據(jù)11和/或存儲在網(wǎng)絡(luò)數(shù)據(jù)存儲中的主數(shù)據(jù)27)進行交互的MDM服務(wù)17所主存的工作流19之類的工作流進行交互?;谠频腗DS服務(wù)17可主存用于客戶機的所有或部分MDM服務(wù)。例如,客戶機可將本地MDM服務(wù)與MDM服務(wù)17所提供的功能集成起來,或使用MDM服務(wù)17管理他們的所有主數(shù)據(jù)需求。在客戶機計算設(shè)備和基于云的MDM服務(wù)17之間創(chuàng)建了安全連接。例如,主數(shù)據(jù)服務(wù)(MDS)客戶機應(yīng)用24和/或web瀏覽器26可用來與主數(shù)據(jù)以及由MDM服務(wù)17所主存的工作流19進行交互。諸如客戶機100之類的客戶機可修改由基于云的MDM服務(wù)17所主存的MDM工作流19,以幫助滿足它們的需要。工作流被安排在執(zhí)行預(yù)定義的可配置塊的靈活流水線中??蛻魴C可連接至基于云的MDM服務(wù)17并可基于預(yù)定義的塊(例如,執(zhí)行塊、條件塊、循環(huán)塊)的集合來創(chuàng)建/定制現(xiàn)有的工作流。這些塊被配置為根據(jù)預(yù)定義的模式來接收、處理和發(fā)送與主數(shù)據(jù)有關(guān)的信息。客戶機還可發(fā)布可被其他客戶機消費的主數(shù)據(jù)??蛻魴C也可訂閱對主數(shù)據(jù)的改變,使得客戶機在主數(shù)據(jù)改變時被通知。以下提供了更多的描述。圖2示出了供客戶機與基于云的MDM網(wǎng)絡(luò)服務(wù)進行交互的系統(tǒng)。如所示的,系統(tǒng)200包括ERP系統(tǒng)205、基于云的MDM網(wǎng)絡(luò)服務(wù)225和計算設(shè)備220。ERP系統(tǒng)包括計算設(shè)備210和ERP服務(wù)器215。MDM服務(wù)225包括網(wǎng)絡(luò)共享230和服務(wù)器240。更多或更少的計算機可被配置成在圖2中例示的系統(tǒng)內(nèi)操作。計算設(shè)備可以以不同的方式來配置。例如,這些計算設(shè)備中的一些可以是移動計算設(shè)備(例如,蜂窩電話、平板計算機、智能電話、膝上型計算機等等);臺式計算設(shè)備和服務(wù)器。MDM服務(wù)225被配置成提供在線的基于云的服務(wù)(例如,用于與主數(shù)據(jù)進行交互的ERP/MDS服務(wù)),該在線的基于云的服務(wù)允許客戶機同與MDM有關(guān)的工作流232進行交互并 允許客戶機發(fā)布/訂閱主數(shù)據(jù)。一些計算設(shè)備可被安排成數(shù)據(jù)共享,一些可被安排在局域網(wǎng)中,一些可被安排在可通過因特網(wǎng)來訪問的網(wǎng)絡(luò)中,等等。計算設(shè)備通過網(wǎng)絡(luò)18被耦合。網(wǎng)絡(luò)18可以是許多不同類型的網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)18可以是IP網(wǎng)絡(luò)、用于蜂窩通信的載波網(wǎng)絡(luò)等等。一般而言,網(wǎng)絡(luò)18用于在諸如計算設(shè)備210、計算設(shè)備220、網(wǎng)絡(luò)共享230、網(wǎng)絡(luò)服務(wù)240之類的計算設(shè)備之間傳送數(shù)據(jù)。計算設(shè)備210包括MDS應(yīng)用212以及用戶接口 216。如圖所示,計算設(shè)備210被用戶用來與諸如存儲在ERP服務(wù)器215內(nèi)的主數(shù)據(jù)217和在網(wǎng)絡(luò)共享230中用MDM服務(wù)225存儲的主數(shù)據(jù)233之類的主數(shù)據(jù)進行交互。主數(shù)據(jù)可被存儲在許多不同的位置中。例如,一個或多個數(shù)據(jù)存儲可用于存儲與ERP系統(tǒng)205有關(guān)的主數(shù)據(jù)。用戶接口(UI) 216用于與諸如MDS應(yīng)用212和MDS web應(yīng)用242之類的應(yīng)用進行交互。例如,UI 216可用于創(chuàng)建/修改由基于云的MDM服務(wù)225所主存的工作流。計算設(shè)備220包括一個或多個應(yīng)用,諸如可被配置成查看/輸入被發(fā)布到網(wǎng)絡(luò)服務(wù)225的主數(shù)據(jù)/與該數(shù)據(jù)交互的web瀏覽器222。例如,web瀏覽器222可用于訪問提 供主數(shù)據(jù)服務(wù)的基于云的MDM網(wǎng)絡(luò)服務(wù)225內(nèi)的諸如服務(wù)器240之類的服務(wù)器。計算設(shè)備220可用于創(chuàng)建/修改由基于云的MDM服務(wù)225所主存的工作流232?;谠频腗DM服務(wù)225包括服務(wù)器240和網(wǎng)絡(luò)共享230。服務(wù)器240包括MDM web應(yīng)用242,MDM web應(yīng)用包括web呈現(xiàn)器244。web應(yīng)用242被配置成接收與主數(shù)據(jù)服務(wù)相關(guān)的請求并對該請求進行響應(yīng)。例如,服務(wù)器240可以訪問存儲在網(wǎng)絡(luò)共享230上的主數(shù)據(jù)233或其他數(shù)據(jù)。web應(yīng)用242用于向諸如移動計算設(shè)備或某一其他計算設(shè)備(例如,計算設(shè)備210、計算設(shè)備220)之類的計算設(shè)備的用戶提供接口以便經(jīng)由網(wǎng)絡(luò)18與主數(shù)據(jù)/工作流進行交互。MDM服務(wù)225接收來自計算設(shè)備(如計算設(shè)備210)的執(zhí)行與主數(shù)據(jù)有關(guān)的操作的請求。例如,客戶機可對主數(shù)據(jù)項作出改變、創(chuàng)建/修改工作流、和/或請求與主數(shù)據(jù)有關(guān)的信息。諸如MDS應(yīng)用212之類的客戶機應(yīng)用與主數(shù)據(jù)及由MDM服務(wù)225主存的工作流進行交互。如所討論的,基于云的MDM服務(wù)225被配置成為客戶機提供主數(shù)據(jù)管理服務(wù)??蛻魴C可以與不同的組織和公司相關(guān)聯(lián)。例如,MDM服務(wù)225可被配置成為成千上萬的不同公司提供MDM服務(wù)?;谠频腗DM服務(wù)225還可用于管理組織的多站點部署。MDM服務(wù)225旨在為各主數(shù)據(jù)管理解決方案提供可配置的解決方案。根據(jù)一實施例,基于云的MDM服務(wù)225被配置為與諸如MDS應(yīng)用212之類的不同客戶機MDS應(yīng)用集成在一起。工作流232由基于云的MDM服務(wù)225主存,以幫助客戶機滿足他們的MDM需要。工作流被安排在執(zhí)行預(yù)定義的可配置塊的靈活流水線中??蛻魴C可從各種計算設(shè)備/位置連接至基于云的MDM服務(wù)225,并可基于預(yù)定義的塊(例如,執(zhí)行塊、條件塊、循環(huán)塊)的集合來創(chuàng)建/定制現(xiàn)有的MDM工作流。這些塊被配置為根據(jù)預(yù)定義的模式來接收、處理和發(fā)送與主數(shù)據(jù)有關(guān)的信息。例如,客戶機計算設(shè)備210可使用基于云的MDM服務(wù)225來發(fā)布被其他計算設(shè)備/系統(tǒng)訂閱的主數(shù)據(jù)。應(yīng)用程序編程接口(API 246)被客戶機用來與一個或多個工作流232進行交互。API被用來與構(gòu)成工作流的各個塊進行交互??啥ㄖ频墓ぷ髁髟试S用戶提供具有輸入和輸出的集中式工作流,并可將數(shù)據(jù)變換成各種格式(包括用戶定義的格式)或從這些格式變換出數(shù)據(jù)。例如,一個ERP服務(wù)可使用第一格式的數(shù)據(jù),而MDM系統(tǒng)內(nèi)的另一客戶機消費第二格式的數(shù)據(jù)。客戶機還可使用不同的應(yīng)用/版本/系統(tǒng)來訂閱和發(fā)布主數(shù)據(jù)?;谠频腗DM服務(wù)225可連接至各種不同的系統(tǒng),以及連接至不同版本的主數(shù)據(jù)系統(tǒng)。例如,ERP系統(tǒng)205可發(fā)布/訂閱可被系統(tǒng)的一個或多個其他部分消費的主數(shù)據(jù)。根據(jù)一實施例,API 246包括以下公共接口
[ServiceContract]([服務(wù)合同]) public interface IMdsService { ([操作合同])IEnumerable<string> GetAllEndpointsNames();
[OperationContract]
void ConnectToEndpoint(string endpointFullName, string clientName);[OperationContract]
void CreateEndpoint(string endpointFullN ame EndpointType type,IEnumerable<SchemaMemberDefinition> schemaMembers);
[OperationContract]
voidCreateEntity(stringentityFullName,
IEnumerable<SchemaMemberDefinition> schemaMembers);
[OperationContract]
void Associate(string endpointFullName, string entityFullName);
}
[ServiceContract]
public interface IMessageEndpoint {
[OperationContract]
void PushMessage(DataMessage message);
[OperationContract]
DataMessage GetMessage(string endpointFullName,string clientName);[OperationContract]
void DeleteMessage(string endpointFullName, string clientName, Guidmessageld,string receipt);
}
[ServiceContract]
public interface IWorkflowDesignService { [OperationContract]
voidInserBlockBefore(BlockMetadataDefinitionancestor,
BlockMetadataDefinition block);
[OperationContract]
voidInserBlockAfter(BlockMetadataDefinitionpredecestor,
BlockMetadataDefinition block);
[Op erationC ontr act]
void RemoveBlock(BlockMetadataDefinition block);
} [DataContract]([數(shù)據(jù)合同])
[Serializable]([可串行化])public class DataField
{
[DataMember]([數(shù)據(jù)成員]) public object NewValue { get; set; }
[DataMember]
public object OldValue { get; set; }
}
[DataContract] public class DataMessage
{
[DataMember]
public Guid Id { get; set; }
[DataMember]
public string EndpointName { get; set; }
[DataMember]
public Dictionary<string, DataField> Properties { get; set; }
[DataMember]
public string Receipt { get; set; }
}
public class SchemaMemberDefinition{
[DataMember]
public string Name { get; set; }
[DataMember]
public SchemaMemberType Type { get; set; } [DataMember]
public uint TypeSize { get; set; } [DataMember]
public bool IsKey { get; set; }
[DataMember]
public bool IsMandatory { get; set; }
}
public class BlockMetadataDefinition{
[DataMember]
public string Name { get; set; }
[DataMember]
public Uri Uri { get; set; }
[DataMember]public BlockKind Kind { get; set; } [DataMember]
public string BlockDefinition { get; set; }
}
[DataContract]
public class ConstraintDefinition {
[DataMember]
public string Name { get; set; }
[DataMember]
public ConstraintType Type { get; set; }
[DataMember]
public List<ConstraintDefinition> Children { get; set; }
}圖3示出了宿主在基于云的MDM服務(wù)中的工作流。如所示出的,系統(tǒng)300包括基于云的MDM網(wǎng)絡(luò)服務(wù)310、網(wǎng)絡(luò)18、及計算設(shè)備301和計算設(shè)備303。MDM服務(wù)310包括工作流320、沖突存儲330、和數(shù)據(jù)存儲334。計算設(shè)備301和計算設(shè)備303包括用于與主數(shù)據(jù)進行交互以及管理主數(shù)據(jù)的MDS應(yīng)用(302、304)。當(dāng)主數(shù)據(jù)被客戶機(諸如計算設(shè)備301)修改時,工作流320執(zhí)行以下操作在塊322處變換消息;在塊323處運行商業(yè)規(guī)則;在塊324處驗證確認(rèn)改變;在塊325處變換數(shù)據(jù);以及,將數(shù)據(jù)改變傳播給訂閱者(諸如計算設(shè)備303),以幫助確保不同系統(tǒng)之間的數(shù)據(jù)
一致性。工作流被安排在執(zhí)行預(yù)定義的可配置塊的靈活流水線中??蛻魴C可從各種計算設(shè)備/位置連接至基于云的MDM服務(wù)310,并可基于預(yù)定義的塊(例如,執(zhí)行塊、條件塊、循環(huán)塊)的集合來創(chuàng)建/定制現(xiàn)有的MDM工作流。這些塊被配置為根據(jù)預(yù)定義的模式來接收、處理和發(fā)送與主數(shù)據(jù)有關(guān)的信息。根據(jù)一實施例,工作流包括不同類型的塊,包括零個或更多個執(zhí)行塊、條件塊和循環(huán)塊。執(zhí)行塊包括任何類型的動作(即,商業(yè)規(guī)則或消息模式變換)。條件塊包括對被應(yīng)用于工作流的條件語句(即,if/else語句)的使用。循環(huán)塊用于對工作流內(nèi)的循環(huán)進行建模。客戶機可使用API來創(chuàng)建/修改不同的塊。工作流可涉及執(zhí)行服務(wù)和/或預(yù)測服務(wù)。執(zhí)行服務(wù)是可處理消息并將其傳遞至工作流中的下一個塊的服務(wù)。預(yù)測服務(wù)可取決于所接收到的消息而返回真或假,并一般用于定制條件和循環(huán)塊。根據(jù)一實施例,預(yù)定義的模型、商業(yè)規(guī)則和工作流的默認(rèn)集合可被一個或多個客戶機使用。圖4示出了用于基于云的MDM服務(wù)的服務(wù)器架構(gòu)。如所示出的,服務(wù)器架構(gòu)400包括耦合至用戶440和客戶機450的服務(wù)器410。服務(wù)器400包括管理入口 412、公共API414、工作流416、商業(yè)規(guī)則418、通知420、端點422、服務(wù)424、商業(yè)實體426、元數(shù)據(jù)428、數(shù)據(jù)訪問430、存儲432、服務(wù)位置434、日志和跟蹤436、以及安全438。管理入口 412允許用戶使用如建模能力、CRUD操作、沖突解決之類的主數(shù)據(jù)來管理他們的主數(shù)據(jù)。例如, 用戶可創(chuàng)建/修改工作流。存儲432用于存儲主數(shù)據(jù)、工作流以及與主數(shù)據(jù)的管理有關(guān)的其他信息。例如,存儲432可用于存儲表格、隊列等??蛻魴C450使用公共API 414來發(fā)布主數(shù)據(jù)、調(diào)用一個或多個工作流、和/或訂閱對主數(shù)據(jù)的改變。圖5示出了用于訪問基于云的MDM服務(wù)的客戶機架構(gòu)。如所示出的,客戶機架構(gòu)500包括客戶機510,客戶機510包括寫入器512、監(jiān)聽器514、MDM客戶機同步服務(wù)516、改變跟蹤518、MDS應(yīng)用520、SQL服務(wù)器522、安全524、沖突解決526、以及元數(shù)據(jù)528。寫入器512用于向基于云的MDM服務(wù)225發(fā)送與主數(shù)據(jù)有關(guān)的消息。例如,客戶機510可對主數(shù)據(jù)作出改變,該改變服從對由MDM服務(wù)225所主存的工作流的處理。監(jiān)聽器514監(jiān)聽來自基于云的MDM服務(wù)225的、與主數(shù)據(jù)的改變有關(guān)的通知。例如,當(dāng)主數(shù)據(jù)項改變成客戶機510已訂閱的那個主數(shù)據(jù)項時,MDM服務(wù)225向客戶機510發(fā)送消息來指示/或供應(yīng)對主數(shù)據(jù)的這個改變。MDM客戶機同步服務(wù)516檢測何時對主數(shù)據(jù)作出了改變,并在需要時將改變提交給MDM服務(wù)225和/或合并由另一客戶機對主數(shù)據(jù)510所作出的改變。改變跟蹤518被配置成檢測何時對主數(shù)據(jù)作出了改變。改變跟蹤幫助將對主數(shù)據(jù)的本地改變傳播至基于云的MDM服務(wù)225。MDS應(yīng)用520可用于與在客戶機本地和/或非本地的(例如基于云的MDM服務(wù)225)主數(shù)據(jù)進行交互。根據(jù)一實施例,改變跟蹤是基于SQL服務(wù)器522所提供的功能來構(gòu)建的。在客戶機側(cè),提供通用服務(wù)的集合來跨不同的商業(yè)應(yīng)用連接或同步主數(shù)據(jù)。安全524用于設(shè)置與主數(shù)據(jù)有關(guān)的安全設(shè)定。沖突解決526被配置成執(zhí)行涉及與主數(shù)據(jù)有關(guān)的沖突的操作。元數(shù)據(jù)528可以是與對主數(shù)據(jù)的管理有關(guān)的各種類型的數(shù)據(jù)?,F(xiàn)在參考圖6,將描述用于基于云的主數(shù)據(jù)管理的說明性過程。當(dāng)閱讀對在此提供的例程的討論時,應(yīng)當(dāng)理解,各實施例的邏輯操作被實現(xiàn)為(I)運行于計算系統(tǒng)上的一系列計算機實現(xiàn)的動作或程序模塊,和/或(2)計算系統(tǒng)內(nèi)互連的機器邏輯電路或電路模塊。該實現(xiàn)是取決于實現(xiàn)本發(fā)明的計算系統(tǒng)的性能要求來選擇的。因此,所例示的并且構(gòu)成此處所描述的實施例的邏輯操作被不同地表示為操作、結(jié)構(gòu)設(shè)備、動作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動作和模塊可用軟件、固件、專用數(shù)字邏輯,及其任何組合來實現(xiàn)。在開始框之后,過程600移動至操作610,在操作610接收來自客戶機的與主數(shù)據(jù)管理有關(guān)的消息。該消息包括要使用基于云的MDM服務(wù)來執(zhí)行的期望操作。該操作可以是對主數(shù)據(jù)的改變和/或?qū)ぷ髁鞯母淖兒?或訂閱請求。例如,用戶可向基于云的MDM服務(wù)發(fā)送所建議的對主數(shù)據(jù)的改變。用戶還可使用API來創(chuàng)建/修改工作流。用戶還可請求訂閱一個或多個主數(shù)據(jù)項。移至操作620,訪問與消息中的操作有關(guān)的工作流。例如,每一客戶機可具有其自己的工作流??蛻魴C還可以與多于一個工作流相關(guān)聯(lián)。消息可包括用于訪問工作流的標(biāo)識符。MDM服務(wù)還可響應(yīng)于從客戶機接收到消息而存儲與要訪問哪個(哪些)工作流有關(guān)的信息。移到操作630,作出關(guān)于操作何時有效的確定。例如,在所建議的對主數(shù)據(jù)的改變被確定為有效之前,該改變可以服從不同的約束。類似地,對工作流的改變可能有約束要滿足。轉(zhuǎn)至操作640,在確定有效時執(zhí)行與該消息有關(guān)的操作。例如,對主數(shù)據(jù)項的改變可被存儲,對工作流的改變可被存儲,訂閱請求可被存儲等等。移至操作650,向客戶機通知所執(zhí)行的操作。例如,可通知被訂閱來接收主數(shù)據(jù)項何時被改變的通知的一個或多個客戶機。確認(rèn)通知可響應(yīng)于對工作流的成功改變和/或訂閱請求而被發(fā)送給用戶。隨后該過程行進到結(jié)束框,并返回以處理其它動作。以上說明、示例和數(shù)據(jù)提供 了對本發(fā)明的組成部分的制造和使用的全面描述。因為可以在不背離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實施例,所以本發(fā)明落在所附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種用于管理主數(shù)據(jù)的方法,包括 在作為基于云的主數(shù)據(jù)管理MDM服務(wù)的一部分的服務(wù)器處接收來自客戶機的消息,其中所述消息包括與對主數(shù)據(jù)的管理有關(guān)的操作,所述主數(shù)據(jù)由所述基于云的MDM服務(wù)來管理; 所述MDM服務(wù)訪問與所述消息有關(guān)的工作流,其中所述工作流是執(zhí)行用于管理主數(shù)據(jù)的動作的塊的序列; 確定所述操作何時有效; 執(zhí)行所述操作;以及 在所述述操作被執(zhí)行時提供通知。
2.如權(quán)利要求I所述的方法,其特征在于,所述操作是以下各項中的至少一個對主數(shù)據(jù)項的改變和對所述工作流的修改。
3.如權(quán)利要求I所述的方法,其特征在于,還包括提供被所述客戶機用來與所述MDM服務(wù)進行交互的應(yīng)用程序編程接口 API,其中所述API提供公共接口并允許所述客戶機設(shè)置與包含在網(wǎng)絡(luò)服務(wù)內(nèi)的工作流相關(guān)聯(lián)的約束,所述公共接口用于訂閱與所述主數(shù)據(jù)項有關(guān)的改變、及發(fā)送所述與所述主數(shù)據(jù)項有關(guān)的改變、及修改所述工作流的塊。
4.如權(quán)利要求I所述的方法,其特征在于,所述塊由執(zhí)行塊、條件塊和循環(huán)塊組成。
5.如權(quán)利要求I所述的方法,其特征在于,在提供所述通知前,所述MDM服務(wù)內(nèi)的工作流將所述主數(shù)據(jù)項變換成不同的格式。
6.如權(quán)利要求I所述的方法,其特征在于,所述MDM服務(wù)提供默認(rèn)的工作流集合。
7.一種存儲用于管理主數(shù)據(jù)的計算機可執(zhí)行指令的計算機可讀存儲介質(zhì),包括 在基于云的主數(shù)據(jù)管理MDM服務(wù)處接收消息,其中所述消息包括與對主數(shù)據(jù)的管理有關(guān)的操作,所述主數(shù)據(jù)由所述基于云的MDM服務(wù)來管理,并且所述操作是以下至少之一對主數(shù)據(jù)項的改變;以及對所述工作流的修改; 訪問與所述消息有關(guān)的工作流,其中所述工作流是執(zhí)行用于管理主數(shù)據(jù)的動作的塊的序列; 確定所述操作何時有效; 執(zhí)行所述操作; 在所述操作被執(zhí)行時提供通知;以及 提供用于與所述MDM服務(wù)進行交互的應(yīng)用程序編程接口(API)。
8.一種用于管理主數(shù)據(jù)的系統(tǒng),包括 被配置為連接至網(wǎng)絡(luò)的網(wǎng)絡(luò)連接; 處理器、存儲器和計算機可讀存儲介質(zhì); 存儲在所述計算機可讀存儲介質(zhì)上并在所述處理器上執(zhí)行的操作環(huán)境; 用于與主數(shù)據(jù)進行交互的客戶機應(yīng)用;以及 基于云的主數(shù)據(jù)管理MDM服務(wù),它被配置成執(zhí)行以下動作,包括 接收消息,所述消息包括與對主數(shù)據(jù)的管理有關(guān)的操作,所述主數(shù)據(jù)由所述基于云的MDM服務(wù)來管理; 訪問與所述消息有關(guān)的工作流,其中所述工作流是執(zhí)行用于管理主數(shù)據(jù)的動作的塊的序列;確定所述操作何時有效; 執(zhí)行所述操作;以及 在所述操作被執(zhí)行時提供通知。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,還包括提供用于與所述MDM服務(wù)進行交互的應(yīng)用程序編程接口 API。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述API提供一公共接口,所述公共接口用于訂閱與主數(shù)據(jù)有關(guān)的改變;發(fā)送與主數(shù)據(jù)有關(guān)的改變;以及修改所述工作流的塊。
全文摘要
本發(fā)明涉及基于云的主數(shù)據(jù)管理?;谠频姆?wù)向客戶機提供主數(shù)據(jù)管理(MDM)服務(wù)。客戶機可創(chuàng)建/修改由基于云的服務(wù)所主存的MDM工作流,以幫助滿足它們的需要。在由基于云的服務(wù)所主存的工作流內(nèi)的各點處提供一接口?;谠频姆?wù)利用執(zhí)行預(yù)定義的可配置塊的靈活流水線。用戶可基于預(yù)定義的塊(例如,執(zhí)行塊、條件塊、循環(huán)塊)的集合來創(chuàng)建或定制現(xiàn)有的工作流。這些塊被配置來根據(jù)預(yù)定義的模式來接收、處理和發(fā)送與主數(shù)據(jù)有關(guān)的信息??蛻魴C可發(fā)布主數(shù)據(jù)改變和/或訂閱由其他客戶機所作出的主數(shù)據(jù)改變。
文檔編號H04L29/08GK102663531SQ20121001919
公開日2012年9月12日 申請日期2012年1月20日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者A·馬拉費, D·庫庫魯佐, I·科羅溫 申請人:微軟公司