作者可以創建具有適合于一些讀者而不是其他讀者消費的信息的文檔。例如,醫療記錄可以包含關于患者的敏感信息;在許多司法管轄區,法律可能會阻止作者將敏感信息泄露給未經授權的個人。為了解決這個問題,作者可以選擇來混淆文檔內的敏感項目,以產生經混淆的或“清理過的”文檔。混淆可以構成去除敏感項目,并且可能用不具有敏感內容的虛擬項目替換敏感項目(例如,通過用虛構名“John Doe”替換實際患者姓名)。然后,作者可以將經混淆的文檔分發給適當的接收者。為了完成交易,接收者可以根據不同的應用特定目標讀取或分析經混淆的文檔。在本文中,接收者作為經混淆的文檔的“端點消費者”操作,并且交易可以被表征為“單向”,例如從作者到消費者進行。
雖然上述總體戰略通常對其預期目的有效,但只設計用于涉及文檔傳播的一種交易。該策略可能不太適合于其他更復雜的事務。
技術實現要素:
本文描述了外包環境,外包實體可以通過該外包環境在開發最終文檔的過程中與工作者實體合作,而不以其非混淆的原始形式將可能包含在文檔中的敏感信息泄露給工作者實體。
從外包實體的角度來看,環境可以通過以下操作:(a)提供其中包含一個或多個敏感項目的非混淆原始文檔(NOD);(b)混淆NOD中的敏感項目以產生包含經混淆的項目的經混淆的原始文檔(OOD);(c)向工作者實體提供OOD;(d)從工作者實體接收經混淆的經轉換文檔(OTD),該OTD包含由工作者實體做出的、有助于最終文檔的開發的對OTD的至少一個改變;以及(e)通過將經混淆的項目恢復到其對應的敏感項目來對OTD進行去混淆,以產生內容恢復的經轉換文檔(CTD)。在一種情況下,例如,工作者實體可以通過對OOD進行不影響NOD的信息承載內容的格式化類型改變來產生OTD。
上述方法可以在各種類型的系統、設備、組件、方法、計算機可讀存儲介質、數據結構、圖形用戶界面演示、制品等中體現。
本發明內容被提供以用于以簡化形式介紹概念的選擇,這些概念在以下的具體實施方式中將作出進一步的描述。本發明內容并不旨在識別要求保護的主題的管件特征或者核心特征,其也并不旨在被用來限制要求保護的主題的范圍。
附圖說明
圖1示出了用于外包在文檔上執行的文檔轉換任務同時保護包含在文檔中的敏感信息的環境的概述。
圖2示出了用于在圖1的環境中使用的文檔創建工具的實例和外包工具的實例。
圖3示出了圖1的環境的一個實施方式。
圖4示出了圖1的環境的另一實施方式。
圖5-8示出了可以由圖1的環境提供的各種用戶界面演示。
圖9示出了作為圖2的外包工具的組件的混淆組件的一個實施方式。
圖10示出了去混淆組件的一個實施方式,該去混淆組件是圖2的外包工具的另一組件。
圖11描繪了分別用于控制向外包實體和工作者實體呈現非混淆內容和混淆內容的一個策略。
圖12是示出從外包實體的角度看圖1的環境的一種操作方式的流程圖。
圖13是示出從工作者實體的角度看圖1的環境的一種操作方式的流程圖。
圖14示出了可用于實現前述附圖中所示的特征的任何方面的說明性計算功能。
在整個公開和附圖中使用相同的附圖標記來指代相同的組件和特征。系列100數字是指最初在圖1中找到的特征,系列200數字指的是最初在圖2中找到的特征,系列300數字指的是最初在圖3中找到的特征,等等。
具體實施方式
本公開內容組織如下。部分A描述了用于以安全方式將文檔轉換任務外包給工作者實體的說明性環境,即,沒有以原始形式向工作者實體公開可能包含在文檔中的敏感信息。部分B闡述了解釋部分A的環境的操作的說明性方法。部分C描述可用于實施部分A和B中描述的特征的任何方面的說明性計算功能。
作為初步事項,一些附圖描述了在一個或多個結構組件的上下文中的概念,不同地被稱為功能、模塊、特征、元件等。圖中所示的各種組件可以以任何方式由任何物理和有形機制實施,例如通過在計算機設備上運行的軟件、硬件(例如,芯片實現的邏輯功能)等,和/或其任何組合。在一種情況下,圖中所示的各種組件的分離成不同的單元可以反映在實際實施方式中對應的不同物理和有形組件的使用。附加地或另外,圖中所示的任何單個組件可以由多個實際物理組件實現。附加地或另外,圖中的任何兩個或更多個分離組件的描繪可反映由單個實際物理組件執行的不同功能。將依次描述的圖14提供關于圖中所示的功能的一個說明性物理實施方式的附加細節。
其他附圖以流程形式描述了概念。在該形式中,某些操作被描述為構成以某順序執行的不同框。這樣的實施方式是說明性的而非限制性的。本文描述的某些框可以被分組在一起并且在單個操作中執行,某些框可以被分解成多個組件框,并且某些框可以以與本文所示的順序不同的順序執行(包括執行框的并行方式)。流程圖中所示的框可以通過任何物理和有形機制以任何方式實現,例如通過在計算機設備上運行的軟件、硬件(例如,芯片實現的邏輯功能)等,和/或其任何組合。
關于術語,短語“被配置為”包括可以構造任何種類的物理和有形功能以執行識別的操作的任何方式。該功能可以被配置為使用例如在計算機設備上運行的軟件、硬件(例如,芯片實現的邏輯功能)等和/或其任何組合來執行操作。
術語“邏輯”包括用于執行任務的任何物理和有形功能。例如,流程圖中所示的每個操作對應于用于執行該操作的邏輯組件。可以使用例如在計算機設備上運行的軟件、硬件(例如,芯片實現的邏輯功能)等和/或其任何組合來執行操作。當由計算設備實施時,邏輯組件表示電子組件,其是計算系統的物理部分,然而被實施。
以下解釋可將一個或多個特征識別為“可選”。這種類型的語句不應被解釋為可以被認為是可選的特征的詳盡指示;即,其他特征可以被認為是可選的,雖然在文本中沒有明確地標識。此外,單個實體的任何描述并不旨在排除使用復數個這樣的實體;類似地,多個實體的描述并不旨在排除單個實體的使用。此外,雖然描述可以將某些特征解釋為執行所識別的功能或實施所識別的機制的替代方式,但是特征也可以以任何組合方式組合在一起。最后,術語“示例性”或“說明性”是指潛在的許多實施方式中的一個實施方式。
A.說明性環境
圖1示出了用于以安全方式外包文檔轉換任務的環境102的概述。即,環境102提供允許至少一個外包實體和至少一個工作者實體在產生任何類型的最終文檔中協作的功能(下面提供其示例)。此外,環境102提供確保正在創建的文檔中的任何敏感內容對于外包實體而不是對工作者實體可訪問的功能。這樣,外包實體可以將文檔轉換任務委托給工作者實體,而工作者實體不知道敏感內容。外包實體可能想要防止工作者實體學習敏感內容,因為工作者實體沒有被授權消費該信息,和/或任何其他應用特定的原因。
在一種情況下,外包實體和工作者實體可以對應于文檔創建過程中的兩個人類參與者。通常,工作者實體作為相對于外包實體的共同創建者操作。例如,在一種情況下,工作者實體可以對應于執行外包實體的指令的外包實體的代理。可替代地或另外,工作者實體可以基于具有任何特定等級的外包實體所提供的指導,或者可能基于沒有來自外包實體的指導,在修改文檔時行使他或她的獨立判斷。例如,對于指導譜的許可端,外包實體可以簡單地要求工作者實體以由工作者實體認為合適的任何方式改進文檔。任何類型的協議或認識可以決定外包實體與工作者實體之間的關系的性質。在一些情況下,工作者實體為外包實體執行工作以獲費用。在其他情況下,工作者實體“免費”執行工作,例如,當工作者實體和外包實體對應于相同組織的雇員時。
在其他情況下,工作者實體可以代表自動化代理(諸如計算機程序),其在具有或不具有人工的監督的情況下響應于來自外包實體的指令而執行任務。然而,為了便于和簡化解釋,此后將假設外包實體和工作者實體代表文檔創建過程的人類參與者。
總的來說,圖1表示由外包實體和工作者實體對文檔執行的時間序列的操作,最終產生最終文檔。在初始階段,外包實體可以使用一個或多個文檔創建工具104(以下以單數引用)來創建非混淆原始文檔(NOD)106。例如,文檔創建工具104或NOD 106的一些其他源可以使用文字處理應用、圖形應用、圖像捕獲和/或編輯應用、視頻捕獲和/或編輯應用、幻燈片組生成應用、網頁編輯工具等或其任何組合來產生NOD 106。附加地或替代地,文檔創建工具104可以表示用于獲取已創建的文檔的機制,諸如用于掃描已經存在的文檔或照片等的掃描儀,或用于從本地和/或遠程數據存儲或其他源取得NOD 106的機制。
無論以何種方式產生,NOD 106可以包括任何類型的內容并且可以具有任何組織結構(包括沒有結構)。例如,NOD 106可以包含字母數字內容、圖像內容、視頻內容、圖形內容、原始數據等的任何組合。在NOD 106表示網頁或網頁的一部分的特定情況下,NOD 106還可以包含與呈現相關的標記內容(例如,超文本標記語言內容、級聯樣式表內容等)、可執行內容(例如,代碼、代碼等)等。在其他情況下,文檔可以包括具有相同類型或不同類型的兩個或更多個部分。例如,文檔可以對應于包含多個組件文檔或部分的主文檔;這些組成部分可以具有相同類型或不同類型。
更一般地,在開發過程的該階段,假如狀態還不是最終的,NOD 106表示具有任何完成狀態的“進行中”文檔。在一個示例中,例如,外包實體可以生成文檔的原始文本,并且工作者實體可以對該文檔執行格式化;在這里,外包實體所準備的文檔尚未是最終的,因為格式化尚未完成。
NOD 106還包含一個或多個敏感項目108形式的敏感信息。敏感信息表示對于任何應用程序特定的原因,工作者實體不被允許消費的任何內容。例如,NOD 106中的敏感信息可以對應于NOD 106的所有字母數字內容。在另一種情況下,敏感信息可以對應于NOD 106中的所有(或一些)實體名,和/或NOD 106中的所有(或一些)數值,等等。沒有限制什么內容項目在特定環境中可以被認為是“敏感的”。
在外包過程中的這一點上,NOD 106暴露其包含的敏感信息。換言之,敏感信息尚未被混淆,使得檢索文檔的任何人都可以檢查敏感信息(即,假設NOD 106未被加密或以其他方式被保護)。
在開發過程的下一階段中,環境102使用混淆組件110來混淆NOD 106中的敏感項目108,以產生經混淆的原始文檔(OOD)112。OOD 112包含表示NOD 106中的敏感項目108的經混淆的對等物的經混淆的項目114。作為本文所使用的術語,經混淆的項目表示作為敏感項目的替代而操作并且隱藏敏感項目的實際信息承載內容的任何信息。混淆組件110可以使用一種或多種自動和/或手動技術來識別NOD 106中要被替換的敏感項目,如下面將結合圖6的解釋更詳細地描述的。此外,如下面結合圖9的解釋將更詳細地描述的,混淆組件110可以使用一種或多種技術來產生經混淆的項目114,一旦它們被找到。
如下面將要闡明的,混淆組件110還可以通過提供允許外包實體驗證NOD 106中意圖被混淆的所有敏感項目實際上已被混淆的一個或多個工具來幫助外包實體混淆NOD 106。下面結合圖6的說明來描述代表性的驗證工具。
接下來,工作者實體可以使用至少一個文檔創建工具116(以下以單數形式提及)對OOD 112進行至少一個改變,產生經混淆的經轉換文檔(OTD)118。每個這樣的改變轉換文檔,并且表示對產生最終文檔的總任務的貢獻。更具體地,在第一類型的改變中,工作者實體改變在OOD 112中呈現信息的方式,但不影響底層信息本身。在第二類型的改變中,工作者實體將至少一個內容項目添加到OOD 112,但是同樣地,不修改出現在OOD 112中的原始信息。但是在第三種類型的改變中,環境102可以允許工作者實體至少在一定程度上改變OOD 112中的信息的信息承載內容。其他類型的改變可以表示上述三種類型的改變的混合。
考慮以下說明性示例來闡明可以由工作者實體執行的操作的性質。在一種情況下,工作者實體改變OOD 112的格式。例如,工作者實體可以改變OOD 112中的內容的空間布置,OOD 112內的文本信息的大小和樣式字體等等。在一些情況下,工作者實體可以使用由文檔編輯程序提供的適當格式化工具進行格式化改變。可替代地,在OOD 112表示注定要成為網頁(或其部分)的頁面的那些情況下,工作者實體可以通過修改與OOD 112相關聯的與呈現相關的標記內容來進行格式化類型改變,例如,通過修改與網頁相關聯的HTML。
在另一種情況下,工作者實體通過將背景圖像添加到OOD 112來轉換OOD 112。或者,工作者實體可以在由外包實體所選擇的OOD 112中的特定位置處將庫存圖像添加到OOD 112,以例如示出由OOD 112中的文本信息進行的點。
在另一種情況下,工作者實體產生將伴隨OOD 112并影響OOD 112呈現其信息的方式的程序。例如,工作者實體可以產生根據一些指定的一個或多個因素來過濾與OOD 112相關聯的數據項目的腳本型程序。可替代地或附加地,在OOD 112表示注定要成為網頁的頁面的那些情況下,工作者實體可以添加影響網頁的功能的代碼(例如,代碼等),例如通過添加管理頁面對終端用戶對鼠標點擊和鼠標懸停的響應的方式的代碼等。
在另一種情況下,工作者實體可以進行影響文檔本身的整體特性或分類的改變。例如,外包實體可以使用文字處理應用來創建常規文檔。工作者實體可以例如通過向文檔添加適當的HTML、代碼等將文檔轉換為網頁。在其他情況下,工作者實體可以僅使用OOD 112作為創建單獨的新文檔的指導,而不是逐字地對與OOD 112本身相關聯的信息進行操作。在本文中,與上面提供的示例相比,工作者實體可以被說成以更具有比喻和間接的意義“轉換”OOD 112。
在另一種情況下,工作者實體可以創建可視呈現以描繪與OOD 112相關聯的一組數據項目。例如,工作者實體可以在任何類型的圖表、任何類型的圖形等中組織集合中的數據項目。工作者實體可以例如通過使用由圖表生成應用、圖形編輯應用等提供的工具以手動方式產生這種改變。或者,工作者實體可以產生程序(如前面段落中所描述的),當運行時,其將產生數據項目的期望的可視描述。
上述類型的改變不影響存在于OOD 112中的信息的信息承載內容。例如,上述類型的改變不以將改變OOD 112的語義內容的方式改變OOD 112中的字或符號。實際上,環境102可以通過防止工作者實體修改出現在OOD 112中的原始信息,例如通過防止工作者實體修改OOD 112中的字的字符、句子中的單詞的順序、句子的順序等,來對工作者實體的改變實施該約束。環境102可以通過鎖定OOD 112中的單個項目(或所有項目),防止它們被工作者實體修改來實現上述效果。
但是如上所述,在其他情況下,環境102可以可選地允許工作者實體對信息本身進行改變。例如,在另一種情況下,工作者實體可以通過將原始文檔中的單詞從一種自然語言轉換為另一種自然語言來進行翻譯類型的改變。在另一種情況下,工作者實體可以通過修改原始文檔中的單詞的語法和/或拼寫等來進行校對類型的改變。
環境102可以以不同的方式記錄由工作者實體做出的改變。在一種情況下,環境102將OTD 118保留為由工作者實體做出的改變的唯一記錄。在其他情況下,除了創建OTD 118本身之外,環境102可以保存由工作者實體做出的每個單獨改變的記錄,或者這些改變的至少一個子集。并且可以以任何特異性水平捕獲每個這樣的改變。例如,如果工作者實體改變OOD 112中的特定字的字體,則環境102可以在對應的粒度水平上記錄該改變。總體上,由工作者實體進行的改變的記錄在本文中被稱為改變歷史信息。
注意,上述類型的改變是在說明的精神而不是限制的情況下列舉的;工作者實體可以做出上面沒有提到的其他類型的改變。在所有情況下,這些改變促進了開發過程向著最終文檔產生。
在文檔創建流程的下一階段中,去混淆組件120恢復在OTD 118中被混淆的敏感項目,以產生內容恢復的被轉換文檔(CTD)122,以供外包實體消費(但不是工作者實體)。去混淆組件120可以以下面將描述的不同方式來執行該任務。
圖1描述了在簡化示例的上下文中的上述過程改變。在該示例中,NOD 106對應于幻燈片組。在圖1中以高級形式描繪的幻燈片組的至少一個幻燈片具有多個要點。假設要點中的至少一些信息項目包含敏感項目108。圖1以非混淆形式將這些敏感項目108描繪為實線框。混淆組件110例如通過將敏感項目108轉換為經混淆的項目114來混淆敏感項目108,以產生OOD 112。圖1將經混淆的項目描繪為虛線框。
工作者實體然后將OOD 112中的要點組織成兩列,然后將要點在它們各自的列中置于中心,以產生OTD 118。這種改變可以被表征為格式化類型的改變,其不影響由NOD 106賦予的任何語義內容。去混淆組件120然后在OTD 118上操作以將經混淆的項目114轉換為其原始對等的敏感項目108,以產生CTD 122。CTD 122保留由工作者實體做出的格式化類型的改變。
總的來說,協作過程集成了兩個領域的工作:非混淆的和混淆的。圖1中的虛線124圖形地表示這兩個領域之間的邊界。根據一個益處,環境102提供了一種機制,外包實體通過該機制可以在聯合創建文檔的過程中與工作者實體自由地交互,而不向工作者實體泄露包含在文檔內的敏感信息。
環境102可以提供允許外包實體在整個文檔創建過程中與工作者實體交互的一個或多個通信機制。例如,通信機制可以包括基于文本的機制(例如,即時消息傳遞機制、電子郵件機制等)、語音通信機制、視頻通信機制等。通過這些機制,外包實體可以向工作者實體發送指令,并且工作者實體可以向外包實體提出問題。圖1示出了虛線126,其表示由一個或多個通信機制提供的外包實體與工作者實體之間的一個或多個通信信道。
此外,在外包實體和工作者實體參與基于文本的通信會話的那些情況下,在這些實體之間交換的消息可以被認為是它們自己權利的文檔。因此,混淆組件110和去混淆組件120可以以與上述相同的方式對這些文檔進行操作。例如,假設外包實體寫了一條消息“我想以粗體和更大的字體看到銷售數字‘$140萬’”而沒有立即意識到他已經制作了包含敏感信息的消息。混淆組件110可以移除消息中的敏感項目并且用經混淆的項目替換它,例如通過用“$##金額”替換“$140萬”等。在從工作者實體返回給外包實體的消息線程中,去混淆組件120可以用其原始敏感項目(即“140萬”)替換經混淆的項目。此外,通信信道可以可選地被加密,以防止其他實體(不是外包實體與工作者實體之間的交互的一方)訪問消息交換。
在一些情況下,外包實體可以滿意由工作者實體產生的經轉換文檔(例如,OTD 118)。外包實體收到CTD 122因此將呈現文檔創建過程的結束以及最終文檔的產生。在其他情況下,外包實體可以對CTD 122執行進一步的操作以產生最終文檔。在其他情況下,外包實體可以指示工作者實體對工作者實體已經擁有的現有OTD 118做出附加的改變。或者外包實體可以生成新的OOD,并且要求工作者實體對該新的OOD做出改變。
作為另一變型,上文描述的文檔創建過程開始于生成或接收包含敏感項目108且沒有經混淆的項目的非混淆原始文檔(NOD)106。但是原始文檔可以可選地包含處于其原始狀態的至少一些經混淆的項目,例如由一些其他初步過程產生的(圖1中未示出)。在這個意義上,術語非混淆文檔(NOD)是指示起始文檔包含至少一些尚未被混淆的敏感項目的相對術語。
作為另一可能的變型,上面在使用單個工作者實體的上下文中描述了環境102。在其他情況下,協作文檔創建過程可以表示團隊努力。即,一個或多個外包實體可以準備NOD 106,并且一個或多個工作者實體可以將對等OOD 112轉換成OTD 118。例如,外包實體可以將NOD 106分成多個部分。混淆組件110可以混淆多個部分,以產生多個經混淆的部分。不同的工作者實體可以對經混淆的部分進行操作以產生多個經混淆的經轉換部分。去混淆組件120可以恢復在經混淆的經轉換部分中的敏感項目,以產生多個內容恢復的經轉換部分。外包實體然后可以將多個內容恢復的轉換部分組合成單個內容恢復的經轉換文檔。在一個特定實施方式中,外包實體可以使用眾包平臺來與上述多個工作者實體交互。此外,在一些情況下,可以授權不同的工作者實體來消耗NOD 106的不同部分,而不消耗其他部分。在該情況下,混淆組件110可以以不同的方式混淆NOD 106,以供不同的相應工作者實體使用。
作為另一可能的變型,NOD 106的至少一部分可以包含音頻信息。混淆組件104可以通過用經混淆的音頻項目(例如,嘟聲、空白暫停、啞詞發音等)替換這些敏感音頻項目來混淆NOD 106中的敏感話語(或聲音)。去混淆組件120可以執行相反的轉換。在混淆與去混淆之間,工作者實體可以修改NOD 106的任何方面,諸如其體積、聲音質量等。但是為了簡化解釋的其余部分,此后將假設混淆和去混淆發生在視覺領域。
作為另一變型,外包實體和工作者實體可以表示參與文檔的聯合創建的對等體。更確切地說,這兩個個體可以代表兩個工作者,沒有工作者在另一工作者的指導下。此外,外包實體可能不知道工作者實體未被授權接收的某些敏感信息(如上述示例中);此外,工作者實體可能不知道外包實體未被授權接收的其他敏感信息。在這種情況下,混淆組件110可以可選地混淆從外包實體流向工作者實體的某些敏感信息,并且可選地混淆從工作者實體流向外包實體的其他信息。在對等操作中,去混淆組件120可以可選地對從工作者實體流向外包實體的某些敏感信息去混淆,并且可選地對從外包實體流向工作者實體的其他信息去混淆。
更具體地說,假設兩名律師正在著手銷售合同,例如代表第三方實體購買化合物。假設第一名律師可以消費合同中的銷售數據,但不消費技術數據,而第二名律師可以消費合同中的技術數據,但不消費銷售數據。混淆組件110將防止第二名律師接收銷售數據并且防止第一名律師接收技術數據。另一方面,第三方實體可以被授權消費整個文檔。
環境102可以以不同的方式實現上述行為,諸如通過使用不同的相應加密密鑰加密文檔的不同部分,并將對等的解密密鑰分發給不同的工作者實體。可替代地或另外,環境102可以通過使用訪問控制列表(ACL)功能等來實現上述行為。
現在轉到圖2,該圖示出了至少一個文檔創建工具202(以下以單數指代)的實例以及外包工具204的實例。圖1的環境102使用這些工具的一個或多個實例來執行其功能,如下面關于圖3和圖4的示例所描述的。
在一個實施方式中,文檔創建工具202和外包工具204表示兩個計算機實現的應用。在本文中,文檔創建工具202可以包含用于在其執行過程中激活外包工具204的接口機制206,和/或外包工具204可以包含用于在其執行過程中激活文檔創建工具202的接口機制(未示出)。在另一示例中,文檔創建工具202和外包工具204一起集成到單個應用中。例如,外包工具204可以表示與由文檔創建工具202提供的代碼相關聯的模塊。環境102可以提供用于實現文檔創建工具202和外包工具204的功能的其他方式。
文檔創建工具202可以包括用于加載文檔、創建和編輯文檔、呈現文檔等的任何文檔操縱機制208。文檔操作機制208將根據所考慮的文檔的類型而變化。例如,機制208表示用于創建和呈現文字處理文檔、幻燈片組、載有圖形的文檔、圖像、視頻等中的任一個的功能。在另一種情況下,機制206表示用于創建旨在用于呈現為網頁的文檔的功能等。
外包工具204本身可以包括執行不同相應功能的任何數目的模塊,其可以在單個站點處提供或分布在多個站點上。混淆組件210將未混淆的原始文檔(NOD)轉換為經混淆的原始文檔(OOD)。換言之,混淆組件210表示在圖1中引入的混淆組件110的實例化。去混淆組件212將經混淆的經轉換文檔(OTD)轉換為內容恢復的經轉換文檔(CTD)。換言之,去混淆組件212表示圖1的去混淆組件120的實例化。通信組件214實現允許外包實體與工作者實體通信的一個或多個通信機制。或者通信組件214可以表示到一個或多個單獨實現的通信機制的入口。
外包工具204還可以包括一個或多個其他組件216,諸如用于從一組可用工作者實體之中選擇工作者實體的模塊,用于對所選工作者實體執行的工作進行排名的模塊等。
圖3示出了代表圖1的環境102的一個實施方式的系統302。關于一個外包實體與一個工作者實體之間的交互來描繪系統302,但是如上所述,對于任何給定的文檔轉換任務,環境102可以由多個外包實體和/或多個工作者實體使用。
系統302包括經由網絡308耦合在一起的第一客戶端計算設備304和第二客戶端計算設備306。外包實體與第一客戶端計算設備304交互,而工作者實體與第二客戶端計算設備306交互。客戶端計算設備(304、306)可以表示任何類型的用戶計算設備,例如選自:固定個人計算設備或工作站、膝上型計算設備、平板型計算設備、游戲控制臺設備、機頂盒設備、智能手機等。
網絡308可以對應于廣域網(例如因特網)、局域網、點對點鏈路等或其任何組合。可替代地,外包實體和工作者實體可以經由其他通信策略(例如,經由便攜式存儲設備,如拇指驅動器等)來交換文檔。
第一客戶端計算設備304可以托管一個或多個文檔創建工具310(以下以單數引用)和外包工具312。類似地,第二客戶端計算設備306可以托管一個或多個文檔創建工具314(以下以單數引用)和外包工具316。文檔創建工具(310、314)可以包括上面關于圖2描述的任何文檔創建應用。類似地,外包工具(312、316)可以包括上面關于圖2描述的任何模塊。
第一客戶端計算設備304可以包括用于存儲其創建或接收的文檔的一個或多個數據存儲裝置318。類似地,第二客戶端計算設備306可以包括用于存儲其創建或接收的文檔的一個或多個數據存儲裝置320。數據存儲裝置(318、320)相對于它們各自的客戶端計算設備(304、306)可以是本地的或遠程的。
在一個功能分配中,第一客戶端計算設備304的外包工具312負責混淆NOD 106以產生OOD 112,以及負責去混淆OTD 118以產生CTD 122。在該實施方式中,工作者的客戶端計算設備306的外包工具316可以省略其自己的混淆組件和去混淆組件的本地實例化。或者,工作者的外包工具316可以包括混淆組件和去混淆組件,但是在上述場景中不調用這些組件。
例如,該描述將針對圖11闡述以下實施方式,其中所有客戶端計算設備都配備有去混淆文檔的能力。但是該能力取決于具有解密密鑰的去混淆組件,該解密密鑰允許其訪問文檔中的敏感信息。在圖3的上下文中,工作者的客戶端計算設備306將缺少這樣的密鑰,使得其不能訪問或產生NOD 106或CTD 122。在另一實施方式中,環境102可以使用訪問控制列表(ACL)技術來管理不同種類的文檔和文檔部分的選擇性消費。
第一客戶端計算設備304可以以任何形式(例如作為對電子郵件消息的附件等)經由網絡308向第二客戶端計算設備306發送OOD 112。類似地,第二客戶端計算設備306可以以任何形式經由網絡308向第一客戶端計算設備304發送OTD 118。
圖4示出了代表圖1的環境102的另一實施方式的另一系統402。系統402包括外包實體與其交互的第一客戶端計算設備404和與工作者實體交互的第二客戶端計算設備406。網絡408將第一客戶端計算設備404與第二客戶端計算設備406耦合。關于對等的相同名稱的組件,客戶端計算設備(404、406)和網絡408可以使用上面針對圖3描述的相同的計算設備來實現。
第一客戶端計算設備404可以托管一個或多個文檔創建工具410(以下以單數引用)和外包工具412,并且可以將其文檔存儲在一個或多個本地和/或遠程數據存儲裝置414中。類似地,第二客戶端計算設備406可以托管一個或多個文檔創建工具416(以下以單數引用)和外包工具418,并且可以將其文檔存儲在一個或多個本地和/或遠程數據存儲裝置420中。同樣,這些組件可以包括上面關于圖3所描述的相同的功能。
與圖3不同,圖4的系統402還包括一個或多個遠程計算系統422,下文中以單數簡稱為遠程系統。遠程系統422可以由一個或多個服務器計算設備和/或其他計算設備實現。遠程系統422托管一個或多個文檔創建工具(以下以單數引用)424和外包工具426,并且它將其文檔存儲在一個或多個數據存儲裝置428中。
在一個功能分配中,由遠程系統422托管的遠程外包工具426執行系統402中的所有混淆和去混淆功能。例如,第一客戶端計算設備404可以將NOD 106傳送到遠程混淆組件,然后遠程混淆組件產生OOD 112并將其傳送到第二客戶端計算設備406。類似地,第二客戶端計算設備406將OTD 118傳送到由遠程系統422托管的遠程去混淆組件,于是去混淆組件將其轉換為CTD 122并將其傳送到第一客戶端計算設備404。為了服務于該角色,遠程系統422可以用作由外包實體信任的服務,以維護其接收或產生的任何非混淆內容的機密性。
在上述情景下,第一客戶端計算設備404可以以與上述相同的方式使用其本地文檔創建工具410來執行文檔創建任務。類似地,第二客戶端計算設備406可以使用其自己的本地文檔創建工具416來執行文檔創建任務。
在又一實施方式中,系統402將所有文檔創建任務分配給遠程文檔創建工具424。例如,文檔創建工具424可以表示web實現的文字處理應用。第一客戶端計算設備404和第二客戶端計算設備406可以對由遠程文檔創建工具424提供的服務的分離實例化進行操作。在該情況下,由外包實體和工作者實體產生的文檔可以由遠程系統422操作和維護;因此,客戶端計算設備(404、406)不需要對文檔執行本地操作,并且不需要以上述方式經由消息在它們之間傳送文檔。
在另一種情況下,第一客戶端計算設備404可用的文檔創建功能以任何方式分布在本地客戶端計算設備404與遠程系統422之間。類似地,第二客戶端計算設備406可用的文檔創建功能以任何方式分布在本地客戶端計算設備406與遠程系統422之間。
在另一個實施方式中,遠程文檔創建工具424表示協作文檔創建功能,其允許外包實體和工作者實體例如在共享工作空間內(而不是如上面提供的示例中的單獨的非共享工作空間)同時創建的相同文檔上工作。但是,在任何給定時間,遠程外包組件426向外包實體和工作者實體給予在當前時間正在操作的文檔的兩個不同視圖。即,外包組件426向外包實體提供文檔的非混淆版本,同時向工作者實體提供文檔的混淆版本。
此外,在上述協作情景中,由遠程系統422提供的遠程混淆組件可以自動將由外包實體進行的任何新的增量改變轉換為文檔的適當混淆的視圖,以呈現給工作者實體。類似地,由遠程系統422提供的遠程去混淆組件可以自動地將由工作者實體做出的任何新的增量改變應用到文檔的適當的非混淆視圖,以呈現給外包實體。換言之,在上述實施方式中,在圖1的上下文中引入的基本流程可以對于由外包實體或工作者實體對文檔做出的每個增量改變以分片方式進行。此外,除了進行串行改變之外,外包實體和工作者實體可以彼此并行地進行一些改變。
圖3和圖4的實施方式應當在說明的精神而不是限制的情況下理解;即,圖1的環境102的其他實施方式是可能的。
圖5-8示出了可以由圖1的環境102提供的說明性用戶界面演示。即,環境102的功能可以在開發最終文檔的不同相應階段產生用戶界面演示。為了便于描述,將假設過程流以基本上順序的方式進行,例如,其中外包實體產生NOD 106,隨后是產生OTD 118的工作者實體。但是如上所述,在其他情況下,外包實體和工作者實體可以在大致相同的時間在同一文檔上工作,以增量方式進行改變。
用戶界面呈現的視覺和功能方面在下文中以說明的精神闡述,而不是限制。其他實施方式可以改變用戶界面呈現的任何方面,包括但不限于GUI特征的選擇,那些特征的布置,與這些特征相關聯的功能等。僅舉一個例子,在圖5-8中,文檔創建工具和外包工具有助于具有專用于不同功能的兩個或更多個部分的單個集成用戶界面演示。但是在其他示例中,文檔創建工具和外包工具可以呈現單獨的相應用戶界面演示。
從圖5開始,該圖示出了用戶界面呈現502,外包實體可以在最初調用外包工具時與之進行交互。外包工具可以對應于駐留在外包實體的客戶端計算設備和/或遠程系統上的代碼。
更具體地,假設用戶首先與文檔創建工具交互以產生或以其他方式提供具有單個頁面504的幻燈片組。文檔創建工具在用戶界面演示502的部分506內呈現頁面504。頁面504包括表示關于特定主題的信息的多個要點。在圖1的術語中,頁面504構成未混淆的原始文檔(NOD)106,并且在頁面504上表達的信息可以被概念化為由多個內容項目組成。
假設外包實體考慮頁面504中的至少一些內容項目作為對于任何特定于應用的原因而不應向工作者實體公開的敏感信息。例如,外包實體可以將頁面504中的所有字母數字文本視為機密。可替代地,如在圖5中實際描繪的示例中,外包實體可以僅考慮指定的發布日期(“2015年8月”)、關鍵市場細分(“韓國”)和基礎設施成本數據(“300”、“400”和“700”)作為頁面504中的敏感項目。外包實體對上面闡述的頁面504的解釋僅僅是說明性的。
文檔創建工具可以呈現第一部分506中的任何類型的控件,諸如控制按鈕508。外包實體可以點擊按鈕508來調用外包工具。響應于按鈕508的激活,外包工具在用戶界面演示502的第二部分512中向外包實體呈現選項菜單510。第一選項514允許外包實體混淆文檔。第二選項允許外包實體對文檔去混淆(假設在外包實體從工作者實體接收時,文檔不會被自動去混淆)。第三選項允許外包實體從可用工作者實體池中選擇一個或多個工作者實體。第四選項允許外包實體評估已經由工作者實體執行的工作,等等。還有其他選項可以是可用的,諸如允許外包實體管理帳戶、支付服務等的選項。
前進到圖6,該圖示出了可以在外包實體在圖5的選項510的菜單中選擇混淆菜單選項514時呈現給外包實體的用戶界面呈現602。在該用戶界面呈現602中,文檔創建工具可以可選地繼續在用戶界面呈現602的第一部分506內呈現幻燈片組的頁面504。此外,外包工具現在可以呈現允許用戶混淆頁面504中的敏感項目的各種GUI特征。如上所述,在圖1的術語中,其原始形式的頁面504構成非混淆的原始文檔(NOD)106。
例如,在部分604中,外包工具可以提供允許用戶使用不同的相應機制來查找和替換NOD 106中的敏感項目的各種選項。例如,第一子部分606允許用戶指定應該被混淆的內容項目的類型,諸如所有字母數字內容、所有實體名稱、所有數值等,或其任何組合。外包工具可以使用一個或多個策略來根據用戶選擇的內容項目的類型來找到所選擇的內容項目。例如,假設用戶指定要對所有實體名稱進行混淆。外包工具可以使用任何實體檢測技術來在文檔中找到實體名稱,諸如通過將文檔中的術語與標識已知實體名稱的字典進行比較,或者通過使用機器訓練的實體檢測模型或基于規則的實體檢測模型來分析文檔中的項,等等。
第二子部分608允許外包實體指示外包工具搜索指定的敏感項目。在找到敏感項目時,外包工具可以突出其存在,然后給予外包實體手動或自動混淆敏感項目的能力。第三子部分610邀請外包實體手動搜索NOD 106以識別敏感項目。外包工具然后可以給予外包實體手動或自動地將每個識別的敏感項目轉換為經混淆的對等物的選項。仍然進一步的尋找和替換策略是可能的。
雖然未示出,但是部分604還可以給予外包實體選擇要被進行混淆的NOD 106的部分的選項,假設是某些部分要被混淆,并且一些部分不需要被混淆。同樣,部分604可以提供用于完成該任務的各種工具。在一種情況下,部分604可以允許外包實體手動選擇要被混淆的部分(例如,部分或頁面)。可替代地或另外,部分604可允許外包實體指定部分選擇準則;混淆組件110然后找到與準則匹配的部分并且混淆它們。例如,在具有機密名稱和貨幣數字的合同中,外包實體可以寬泛地指定包含這些數據項目的至少一個出現的文檔的任何部分將被整體混淆。
此外,盡管未示出,但是部分604還可以給予用戶選擇執行混淆的方式的選項,即,在外包工具自動執行混淆的情況下(而不是依靠外包實體手動執行混淆)。例如,在第一選項中,外包工具可以用與被替換的相應敏感項目具有相同長度的隨機字符串替換敏感項目。在第二選項中,外包工具可以通過對其執行混淆的方式放置各種約束來修改其隨機混淆,諸如通過用隨機選擇的字母字符替換字母字符,通過用隨機選擇的數字字符替換數字字符,通過用分別具有相同大小寫狀態的字符替換大寫字符和小寫字符,等等。在第三選項中,外包工具可以用類似的虛擬“真實”字替換敏感項目,例如通過用虛擬名稱“John Doe”替換實際名稱,或者通過用虛擬年份“3000”代替實際年份等。在一種技術中,外包工具可以通過使用將敏感項目的字符映射到經混淆的項目的集合內的條目的散列表或映射算法來執行上述功能;該條目表示實際的詞,但是盡管如此,它仍然不會顯示任何敏感信息。
假設外包實體選擇手動審閱頁面504以識別頁面504中的敏感項目。作為響應,外包工具可以呈現用戶界面演示602的部分612。如圖所示,用戶已經手動識別發布日期(“2015年8月”)、關鍵市場細分(“韓國”)和一個基礎設施成本數據項(“300”)作為敏感項目。響應于這些選擇,外包工具可以使用上述任何混淆策略來自動用經混淆的項目替換敏感項目,例如通過用無意義和隨機選擇的文本“Hjus&s 3333”替換敏感項目“2015年8月”。或者外包工具可以允許外包實體手動混淆這些敏感項目。
外包工具還可以應用各種策略,其允許外包實體驗證他或她意圖混淆的所有敏感項目實際上已經被混淆。例如,部分612可以呈現突出顯示在混淆過程中已經改變的所有內容項目的子部分614。外包實體可以通過檢查子部分614中的突出顯示和/或通過將子部分614與出現在第一部分506中的原始頁面504進行比較來驗證所有適當的內容項目已經被替換。
在一些實施方式中,外包工具還可以使用第二子部分616來提供關于在混淆過程中做出的改變的附加信息。例如,第二子部分616可以列出已經從NOD 106移除以產生OOD 112的所有原始內容項目。例如,第二子部分616揭示了混淆項目618已經替換了原始敏感項目620。第二子部分616還可以提供概括已經進行的替換的更高級別的元數據。例如,摘要消息622指示已經對NOD 106進行了三次改變以產生OOD 112。
可替代地或另外,外包工具可以自動檢測外包實體已經做出的改變的類型,然后自動確定是否存在尚未被替換的相同類型的現有內容項目。例如,假設外包實體手動地移除NOD 106內的除了一個實體名稱之外的所有實體名稱。外包工具可以通過檢測已經被替換的內容項目可能與例如通過使用上述任何實體檢測算法的實體名稱相關來響應這些動作。外包工具然后可以確定是否存在仍在NOD 106中的尚未被替換的任何附加實體名稱。如果仍有待替換的敏感項目,則外包工具可以警告用戶該事實;外包工具還可以給予用戶混淆剩余的敏感項目的機會。
在圖6的特定示例中,外包工具已經檢測到外包實體已經替換了三個基礎設施成本值的集合中的第一數值,而不是第二值和第三值。作為響應,外包工具可以突出顯示剩余的數值,例如,如說明性突出顯示624所示。此外,外包工具可以顯示消息626,其邀請用戶修改第二和第三數值。還可以使用其他策略來識別尚未被混淆的敏感項目。
在某些情況下,外包實體還可能希望向工作者實體傳達具體指令。外包實體可以以任何方式執行該任務,例如通過使用任何通信機制與工作者實體直接通信。在圖6的情況下,外包實體還將元數據嵌入到OOD 112中,其作為對工作者實體的指令進行操作。例如,第一指令628可以要求工作者實體將背景圖像添加到OOD 112。第二指令630可以請求工作者實體產生呈現基礎設施成本值的條形圖。在其他情況下,如上所述,外包實體可以給予工作者實體更大的自由度來進行改變,例如,通過給予工作者實體使用工作者實體認為最有效的圖表類型來說明數值的選項。
圖7示出了環境102可以呈現給工作者實體以供工作者實體將OOD 112轉換為OTD 118使用的用戶界面呈現702。更具體地,工作者實體可用的文檔創建工具可以呈現用戶界面演示702的第一部分704。工作者實體可以經由該部分704做出任何改變,以產生對應于NOD 106的對等頁面504的OTD 118的頁面706。工作者實體與之交互的文檔創建工具可以由本地客戶端計算設備和/或遠程系統托管。
例如,在圖7的僅僅代表性的情況下,工作者實體具有:(a)改變的OOD 112中的字母數字文本的字體;(b)添加到OOD 112中的相應要點的開始處的要點符號;(c)添加到OOD 112的背景圖像;(d)添加到OOD 112的補充圖像708;(e)格式化為條形圖的數據項目,等等。盡管未示出,但是環境102可以可選地繼續例如在用戶界面演示702的另一部分中顯示原始(未修改的)OOD 112。
在進行所有上述改變的過程中,工作者實體不暴露于出現在NOD 106中的敏感信息的真實內容。例如,工作者實體可以格式化第一要點710,而不知道它所指的具體日期。在其他情況下,外包實體可以選擇對NOD 106中的所有字母數字內容進行混淆,在該處,工作者實體將具有關于每個要點的更少的信息。
特別關于頁706中所示的條形圖,回想外包實體已經用虛擬值替換了實際數值。此外,外包實體已經指示工作者實體產生傳達基礎設施成本與時間的條形圖。工作者實體通過基于那些虛擬成本值714而不是真實值構建圖表712來做出響應。在另一種情況下(未示出),外包實體可以保留OOD 112中的實際值,但是混淆這些實際值的含義。例如,外包實體可以識別條形圖將由第一變量(用于在垂直軸上呈現)和第二值(用于在水平軸上呈現)定義,但是沒有說明第一變量和第二變量分別對應于成本和時間。還可以采用其他策略來混淆要在圖表或圖形的構造中使用的原始數據。
工作者實體可以通過點擊命令按鈕716等來調用外包工具的實例化的服務。作為響應,外包工具可以呈現圖5所示的選項菜單類型510。假設工作者實體希望在生產OTD 118的過程中與外包實體通信。工作者實體可以點擊選項510的菜單中的適當的與通信相關的條目。作為響應,外包工具可以呈現用戶界面演示702的部分718。
部分718可以表示到工作者實體的一個或多個接口,工作者實體可以通過該接口與外包實體通信。例如,部分718可以包括允許工作者實體以文本形式呈現問題的子部分720和/或允許工作者實體使用視頻通信機制直接與外包實體交談的子部分722,等等。
圖8示出了呈現給外包實體以顯示CTD 122的用戶界面呈現802。CTD 122是由工作者實體使用圖7的用戶界面演示702生成的OTD 118的內容恢復版本。
更具體地,可用于外包實體的文檔創建工具可以在用戶界面呈現802的第一部分806中呈現OTD 118的頁面804。頁面804可以具有與OTD 118的頁面706相同的內容和外觀,除了去混淆組件現在將經混淆的項目恢復到其對應的原始敏感項目。例如,頁面804可以包含第一要點中的實際啟動日期(“2015年8月”)808,而不是頁面706中的經混淆的項目(“Hjus&s 3333”)。并且條形圖被修改為包括實際數值成本值810,而不是虛擬成本值714。
再次,外包實體可以通過激活命令按鈕812等來調用外包工具的服務。作為響應,外包工具可以再次呈現圖5所示的選項510的菜單。假設外包實體希望向工作者實體發送進一步的指令。外包實體然后可以在選項510的菜單中激活通信相關選項,外包工具在其上呈現用戶界面呈現802的第二部分814。
第二部分814提供允許外包實體使用不同的相應通信機制(例如,基于文本的通信機制、視頻通信機制等)與工作者實體進行通信的各種接口(816、818)。響應于外包實體的進一步指令,工作者實體可以對OTD 118做出進一步的改變;外包實體將接收那些改變作為CTD 122的更新版本。上述協作過程可以以上述方式重復任何次數,直到最終文檔被產生為外包實體滿意為止。
圖9示出了混淆組件210的一個實施方式,其是圖2的外包工具204的組件,并且可以相對于外包實體的客戶端計算設備而本地和/或遠程地實現。混淆組件210包括項目選擇組件902,其提供用于選擇要由混淆的項目替換的敏感項目的一個或多個機制。在一種情況下,項目選擇組件902可以提供(圖6的)部分604,外包實體可以通過該部分604與項目選擇組件902交互。在一種方法中,項目選擇組件902從外包實體接收匹配準則,然后自動找到與這些準則匹配的NOD 106中的內容項目。在第二方法中,項目選擇組件902提供外包實體可以手動審閱NOD 106并選擇感興趣的內容項目等的功能。
修改驗證組件904呈現一個或多個機制,外包實體通過該機制可以驗證旨在被混淆的所有內容項目實際上已經被混淆。在一個示例中,修改驗證組件904可以經由圖6的部分612與外包實體交互。在一個驗證策略中,修改驗證組件904可以突出已經在部分612內對NOD 106做出的改變。在另一策略中,修改驗證組件904可以自動檢測外包實體已經做出的改變的類型,并且向外包實體警告尚未被混淆的相同類型的內容項目,等等。
項目修改組件906執行敏感項目與對等的經混淆的項目的實際替換。項目修改組件906可以使用不同的策略來執行該任務。在一種方法中,項目修改組件906可以用隨機選擇的字符或隨機選擇的實際字等替換每個敏感項目。在另一種方法中,項目修改組件906可以使用映射表(例如,哈希表)或映射算法以將每個敏感項目映射到經混淆的項目,等等。數據存儲裝置908可以存儲映射表或映射算法的操作參數。
在一些情況下,項目修改組件906可以與OOD 112一起生成混淆化信息。混淆化信息識別已經使用一種或多種技術對NOD 106做出以產生OOD 112的改變。在一種技術中,例如,項目修改組件906可以創建將原始敏感項目映射到對應的經混淆的項目的文件。例如,混淆化信息中的一個條目可以指示敏感項目“2015年8月”已被隨機文本“Hjus&s 333”替換。在另一技術中,項目修改組件906可以創建將NOD 106內的敏感項目出現的位置與已從那些位置移除的敏感項目一起映射的文件;這樣的文件可以可選地省略描述經混淆的項目的信息。例如,該文件中的一個條目可以指示敏感項目“2015年8月”出現在頁面504內的規定文本位置。
在另一種情況下,項目修改組件906可以向NOD 106和/或OOD 112添加標記。標記還可以保存在OTD 118中。每個標記標識已經被敏感項目替換的NOD 106中的敏感內容的單元(例如,字符、單詞、句子、段落等)。項目修改組件906可以將該標記添加到文檔中已經移除敏感項目的位置。在一種情況下,默認情況下,標記可能對讀者不可見,但是如果允許,則可以給予讀者通過選擇適當的顯示設置使其可見的能力。
在上述標記相關實施方式中,混淆化信息可以描述標記與敏感項目之間和/或標記與敏感項目與經混淆的項目項之間的關系。例如,混淆化信息可以包含與圖6中的混淆相關聯的標記“Z001”,其中用隨機文本“Hjus&s 333”替換“2015年8月”。NOD 106和/或OOD 112可以在頁面504中敏感項目(“2015年8月”)已被混淆的位置處包括該標記。
在其他實施方式中,項目修改組件906的映射表或算法可足以重構敏感項目而無需單獨考慮已經進行的改變的意義上,混淆化信息是可選的。
在產生混淆化信息的那些情況下,混淆組件210可以在環境102內的各種位置處存儲該信息。在一種情況下,混淆組件210可以將混淆化信息轉發到至少去混淆組件212,這使得去混淆組件212能夠基于該信息恢復敏感項目。在其他情況下,混淆組件210可以將模糊化信息的加密版本附加到NOD 106、OOD 112等中的一個或多個。加密的混淆化信息可以保留在由工作者實體產生的OTD 118中并被轉發到去混淆組件212。
圖10示出了去混淆組件212的一個實施方式,去混淆組件212是圖2的外包工具204的另一個組件。去混淆組件212包括可選許可組件1002,其確定去混淆組件212是否具有將OTD 118轉換為CTD 122的許可。在一種情況下,許可組件1002可以通過確定數據存儲裝置1004是否包含適當的解密密鑰以用于解密經加密的混淆化信息等來做出該決定。一旦允許執行轉換,項目恢復組件1006執行使用解密的版本的混淆化信息將OTD 118中的經混淆的項目轉換為CTD 122中的原始敏感項目的實際任務。
在其他情況下,數據存儲裝置1008可以存儲未加密版本的混淆化信息,其直接從混淆組件210接收。項目恢復組件1006可以使用未加密的混淆化信息將OTD 118轉換為CTD 122。
在其他情況下,項目恢復組件1006訪問由混淆組件210的項目修改組件906使用的相同的映射表或算法。項目恢復組件1006可以使用該映射信息將OTD 118轉換為CTD 122,假設映射信息本身執行轉換是足夠的(這是在其他情況下可能不是真實的假設)。
如上所述,在一些情況下,外包工具2004可以防止工作者實體改變他或她沒有對其進行改變的OOD 112中的任何內容項目。例如,外包工具2004可以防止工作者實體改變OOD 112中的文本“啟動日期:Hjus&s 3333”,這可以通過將該文本指定為鎖定項目來實現。在其他情況下,外包工具2004可以允許工作者實體對內容項目做出有限的改變。然而,存在由工作者實體做出的改變可能損壞經混淆的項目的風險。繼而,這種損壞可能潛在地使去混淆組件212將經混淆的項目映射回其敏感項目對等物的能力復雜化,這取決于環境102如何解釋已經做出的混淆。例如,在一些情況下,經混淆的項目本身可以用作用于找到相應的敏感項目的密鑰;因此,經混淆的項目的損壞可能會干擾項目恢復組件1006找到正確的敏感項目的能力。
項目恢復組件1006可以使用不同的策略來解決上述情況。在第一種情況下,項目恢復組件1006可以使用相似性測試來確定修改的經混淆的項目是否充分地類似于原始的經混淆的項目(如在混淆化信息中所反映的)。如果項目充分相似,則項目恢復組件1006可以用其假定的對應敏感項目對等物來代替損壞的經混淆的項目。
在另一種情況下,如上所述,外包工具可以存儲跟蹤由工作者實體做出的每個改變或這些改變中的至少一些改變的改變歷史信息。項目恢復組件1006可以查閱改變歷史信息以確定損壞的經混淆的項目的原始形式。項目恢復組件然后可以用其假定的對應敏感項目對等物來替換損壞的經混淆的項目。或者,項目恢復組件1006可以向外包實體顯示改變歷史信息,這允許外包實體手動地檢查和批準任何所討論的恢復操作。
圖11示出了在由工作者實體做出的改變之后可以對外包工具204的各個組件可用的信息束1102。該信息束1102可以作為集成數據結構或作為單獨的信息項目存在。信息束1102可以存儲在環境102內的一個或多個位置處。
信息束1102包括NOD 106、混淆化信息1104、OTD 118和改變歷史信息1106。NOD 106對應于非混淆的原始文檔。混淆化信息標識由混淆組件210做出的改變。OTD 118對應于由工作者實體產生的經混淆的轉換文檔。并且改變歷史信息枚舉由工作者實體做出的所有改變。
在一個實施方式中,可以允許外包工具的不同實例化讀取正在處理的文檔的不同版本,這取決于它們是否擁有解密密鑰。例如,期望外包實體的外包工具擁有解密密鑰,使其能夠讀取信息1102的所有部分。特別地,外包實體的外包工具可以訪問NOD 106和OTD 118;它也可以使用混淆信息1104以將OTD 118轉換為CTD 122。相比之下,工作者實體的外包工具預期缺少解密密鑰。由此,即使其可以具有去混淆組件,該組件也不能成功地讀取NOD 106或混淆化信息。在不訪問混淆化信息的情況下,工作者實體的外包工具也不能產生CTD 122。
再次注意,圖11的實施方式僅表示環境102可以防止敏感信息的傳播的一種技術。在另一種情況下,去混淆組件212可以直接從混淆組件210接收混淆化信息,這消除了對加密和解密混淆化信息的需要。即,在后一種情況下,工作者實體的外包工具不以加密或解密形式接收混淆化信息。
B.說明性過程
圖12和圖13示出了以流程圖形式說明部分A的環境102的操作的過程。由于已經在部分A中描述了環境102的操作的基本原理,因此在本部分中將以概括的方式解決某些操作。
從圖12開始,該圖示出了從外包實體的角度描述圖1的環境102的一種操作方式的過程1202。例如,過程1202的至少一些方面可以由外包實體可用的外包工具的實例來執行。該外包工具可以由本地客戶端計算設備和/或至少一個遠程計算系統托管。
在框1204中,環境102提供其中包含可由外包實體訪問的一個或多個敏感項目108的非混淆原始文檔(NOD)106。在框1206中,環境102混淆NOD 106中的敏感項目108,以產生包含經混淆的項目的經混淆的原始文檔(OOD)112。在框1208中,環境102可選地驗證意圖被混淆的所有敏感內容項目已被混淆。在框1210中,環境102向工作者實體提供OOD 112。在框1212中,環境102從工作者實體接收經混淆的經轉換文檔(OTD)118。OTD 118包含由工作者實體對OOD 112做出的至少一個改變。這種改變繼而有助于最后文件的開發。在框1214中,環境102對OTD 118進行去混淆以產生內容恢復的轉換文檔(CTD)122。
框1216指示,在產生最終文檔的過程中的任何階段處,外包實體可以使用一個或多個通信機制與工作者實體通信。環回路徑1218指示工作者實體可以繼續對OTD 118做出改變,并且環境102可以繼續將OTD 118在其當前狀態下轉換成CTD 122的實例以供外包實體審查。
圖13是示出從工作者實體的角度看圖1的環境102的一種操作方式的過程1302。例如,過程1302的至少一些方面可以由文檔創建工具的實例和可由工作者實體使用的外包工具來執行。這些工具可以由本地客戶端計算設備和/或至少一個遠程計算系統托管。
在框1304中,環境102從外包實體接收OOD 112。在框1306中,在工作者實體的指導下的文檔創建工具對OOD 12做出至少一個改變以產生OTD 118。在框1306中,環境102將OTD 118轉發至外包實體,或者使OTD 118對外包實體可用。框1310指示,在產生最終文檔的過程中的任何階段處,工作者實體可以使用一個或多個通信機制與外包實體通信。回送路徑1312指示工作者實體可以在收到來自外包實體的指令時繼續對OTD 118做出改變。
圖12和13,其中框架在信息的串行流的上下文中,其中外包實體和工作者實體正在不同的相應時間處在開發中的文檔的它們各自的版本上工作。但是在其他情況下,環境102可以允許外包實體和工作者實體并行做出改變。此外或可選地,圖12和13的過程(1202、1302)可以擴展到多個工作者實體在由一個或多個外包實體提供的OOD 112的部分上工作的情況。
C.代表性計算功能
圖14示出了可以用于實現在上述附圖中闡述的環境102的任何方面的計算功能1402。例如,圖14中所示的計算功能1402的類型可以用于實現圖3和圖4的任何客戶端計算設備、圖4的遠程系統422等等。在所有情況下,計算功能1402表示一個或多個物理和有形處理機制。
計算功能1402可以包括一個或多個處理設備1404,諸如一個或多個中央處理單元(CPU),和/或一個或多個圖形處理單元(GPU)等等。
計算功能1402還可以包括用于存儲任何種類的信息(例如代碼、設置、數據等)的任何存儲資源1406。例如,存儲資源1406可以包括任何類型的RAM、任何類型的ROM、閃存設備、硬盤、光盤等中的任一個。更一般地,任何存儲資源可以使用任何用于存儲信息的技術。此外,任何存儲資源可以提供信息的易失性或非易失性保留。此外,任何存儲資源可以表示計算功能1402的固定或可移除組件。當處理設備1404執行存儲在任何存儲資源或存儲資源組合中的指令時,計算功能1402可以執行上述功能中的任何功能。
關于術語,任何存儲資源1406或存儲資源1406的任何組合可以被視為計算機可讀介質。在許多情況下,計算機可讀介質表示某種形式的物理和有形實體。術語計算機可讀介質還包括例如經由物理導管和/或空氣或其他無線介質等發送或接收的傳播信號。然而,特定術語“計算機可讀存儲介質”和“計算機可讀介質設備”明確排除傳播信號本身,同時包括所有其他形式的計算機可讀介質。
計算功能1402還包括用于與任何存儲資源交互的一個或多個驅動機構1408,諸如硬盤驅動機構、光盤驅動機構等。
計算功能1402還包括用于接收各種輸入(經由輸入設備1412)和用于提供各種輸出(經由輸出設備1414)的輸入/輸出模塊1410。說明性輸入設備包括鍵盤設備、鼠標輸入設備、觸摸屏輸入設備、數字化墊、一個或多個攝像機、一個或多個深度相機、自由空間手勢識別機構、一個或多個麥克風、語音識別機構、任何運動檢測機制(例如,加速度計、陀螺儀等)等。一個特定輸出機制可以包括呈現設備1416和相關聯的圖形用戶界面(GUI)1418。其他輸出設備包括打印機、模型生成機構、觸覺輸出機構、存檔機構(用于存儲輸出信息)等。計算功能1402還可以包括用于經由一個或多個通信管道1422與其他設備交換數據的一個或多個網絡接口1420。一個或多個通信總線1424將上述組件通信地耦合在一起。
通信管道1422可以以任何方式實現,例如通過局域網、廣域網(例如,因特網)、點對點連接等或其任何組合來實現。通信管道1422可以包括由任何協議或協議組合管理的硬連線鏈路、無線鏈路、路由器、網關功能、名稱服務器等的任何組合。
可替代地或另外,可以至少部分地通過一個或多個硬件邏輯組件來執行前面部分中描述的任何功能。例如但不限于,計算功能1402可以使用以下各項中的一個或多個來實現:現場可編程門陣列(FPGA);專用集成電路(ASIC);應用特定標準產品(ASSP);片上系統(SOC);復雜可編程邏輯器件(CPLD)等。
最后,盡管用結構特征和/或方法動作專用的語言描述了主題,但是應當理解,所附權利要求中定義的主題不一定限于上述具體特征或動作。相反,上述具體特征和動作被公開作為實現權利要求的示例形式。