專利名稱:過濾對數(shù)據(jù)對象的訪問的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例一般地涉及軟件開發(fā),更具體而言涉及過濾對被開發(fā) 的源代碼的一些部分的訪問。
背景技術(shù):
在軟件開發(fā)周期中,源代碼通常是由許多不同的團隊開發(fā)的。不同的 團隊可能負責源代碼的不同部分。隨著軟件程序變得更加復(fù)雜,生成的源 代碼變得非常復(fù)雜和龐大。
源代碼可在開發(fā)過程期間被構(gòu)建(build)。這可能將源代碼文件轉(zhuǎn)換 為可執(zhí)行代碼。構(gòu)建可以周期性地發(fā)生,例如每日發(fā)生,或在任何其他時 間發(fā)生。構(gòu)建通常編譯和鏈接源代碼中的各種獨立的文件。為了編譯文件 并將文件鏈接在一起,源代碼通常被存儲在同一服務(wù)器上。編輯和編譯也 在同一服務(wù)器上執(zhí)行,以使文件能被構(gòu)建在一起。從而,編輯源代碼的用 戶可以同時看到所有源代碼。這可能允許不同團隊訪問源代碼的一些部 分,而這些團隊可能并沒有在開發(fā)這些部分。當知識產(chǎn)權(quán)受到保護時,這 就可能是不合需要的了。例如,某個組織可能不希望一些團隊能夠查看源 代碼的其他部分。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一技術(shù)方案,提供了一種方法,包括在第一設(shè)備處 接收來自第二設(shè)備的對存儲在所述第一設(shè)備上的源代碼的一部分的請求, 其中用戶通過所述第二設(shè)備提交所述請求;確定與所述請求相關(guān)聯(lián)的用戶 是否被授權(quán)訪問來自所述第一設(shè)備的所述源代碼的所述部分;取得所述源 代碼的所述部分;將所述源代碼的所述部分發(fā)送到所述第二設(shè)備,其中所 述第二設(shè)備允許對所述源代碼的所述部分進行編輯,并且所述源代碼的所述部分在所述第一設(shè)備上是不可編輯的;在所述第一設(shè)備處,接收來自所 述第二設(shè)備的所述源代碼的經(jīng)編輯的部分;以及存儲所述源代碼的所述經(jīng)
編輯的部分。
根據(jù)本發(fā)明的第二技術(shù)方案,提供了一種方法,包括在第一設(shè)備處 接收對存儲在第二設(shè)備上的源代碼的一部分的用戶請求;生成對存儲在所 述第二設(shè)備上的所述源代碼的所述部分的代碼請求;如果所述第二設(shè)備確 定與所述用戶請求相關(guān)聯(lián)的用戶被授權(quán)訪問所述源代碼的所述部分,則接 收來自所述第二設(shè)備的所述源代碼的所述部分;允許通過所述第一設(shè)備編 輯所述源代碼的所述部分,其中所述源代碼在所述第二設(shè)備上是不可編輯 的;以及在編輯之后將所述源代碼的經(jīng)編輯的部分發(fā)送到所述第二設(shè)備。
根據(jù)本發(fā)明的第三技術(shù)方案,提供了一種裝置,包括 一個或多個處 理器;以及編碼在一個或多個有形介質(zhì)中、供所述一個或多個處理器執(zhí)行 的邏輯,所述邏輯在被執(zhí)行時可操作以用于在第一設(shè)備處接收來自第二 設(shè)備的對存儲在所述第一設(shè)備上的源代碼的一部分的請求,其中用戶通過 所述第二設(shè)備提交所述請求;確定與所述請求相關(guān)聯(lián)的用戶是否被授權(quán)訪 問來自所述第一設(shè)備的所述源代碼的所述部分;取得所述源代碼的所述部 分;將所述源代碼的所述部分發(fā)送到所述第二設(shè)備,其中所述第二設(shè)備允 許對所述源代碼的所述部分進行編輯,并且所述源代碼的所述部分在所述 第一設(shè)備上是不可編輯的;在所述第一設(shè)備處,接收來自所述第二設(shè)備的 所述源代碼的經(jīng)編輯的部分;以及將所述源代碼的所述經(jīng)編輯的部分存儲 在所述源代碼中。
根據(jù)本發(fā)明的第四技術(shù)方案,提供了一種裝置,包括 一個或多個處 理器;以及編碼在一個或多個有形介質(zhì)中、供所述一個或多個處理器執(zhí)行 的邏輯,所述邏輯在被執(zhí)行時可操作以用于在第一設(shè)備處接收對存儲在 第二設(shè)備上的源代碼的一部分的用戶請求;生成對存儲在所述第二設(shè)備上 的所述源代碼的所述部分的代碼請求;如果所述第二設(shè)備確定與所述用戶 請求相關(guān)聯(lián)的用戶被授權(quán)訪問所述源代碼的所述部分,則接收來自所述第 二設(shè)備的所述源代碼的所述部分;允許通過所述第一設(shè)備編輯所述源代碼 的所述部分,其中所述源代碼在所述第二設(shè)備上是不可編輯的;以及在編
輯之后將所述源代碼的經(jīng)編輯的部分發(fā)送到所述第二設(shè)備。
根據(jù)本發(fā)明的第五技術(shù)方案,提供了一種裝置,包括用于在第一設(shè) 備處接收來自第二設(shè)備的對存儲在所述第一設(shè)備上的源代碼的一部分的請 求的裝置,其中用戶通過所述第二設(shè)備提交所述請求;用于確定與所述請 求相關(guān)聯(lián)的用戶是否被授權(quán)訪問來自所述第一設(shè)備的所述源代碼的所述部 分的裝置;用于取得所述源代碼的所述部分的裝置;用于將所述源代碼的 所述部分發(fā)送到所述第二設(shè)備的裝置,其中所述第二設(shè)備允許對所述源代 碼的所述部分進行編輯,并且所述源代碼的所述部分在所述第一設(shè)備上是 不可編輯的;用于在所述第一設(shè)備處,接收來自所述第二設(shè)備的所述源代 碼的經(jīng)編輯的部分的裝置;以及用于存儲所述源代碼的所述經(jīng)編輯的部分 的裝置。
根據(jù)本發(fā)明的第六技術(shù)方案,提供了一種裝置,包括用于在第一設(shè) 備處接收對存儲在第二設(shè)備上的源代碼的一部分的用戶請求的裝置;用于 生成對存儲在所述第二設(shè)備上的所述源代碼的所述部分的代碼請求的裝 置;用于在所述第二設(shè)備確定與所述用戶請求相關(guān)聯(lián)的用戶被授權(quán)訪問所 述源代碼的所述部分的情況下接收來自所述第二設(shè)備的所述源代碼的所述 部分的裝置;用于允許通過所述第一設(shè)備編輯所述源代碼的所述部分的裝 置,其中所述源代碼在所述第二設(shè)備上是不可編輯的;以及用于在編輯之 后將所述源代碼的經(jīng)編輯的部分發(fā)送到所述第二設(shè)備的裝置。
圖l示出用于管理源代碼的示例性系統(tǒng)。 圖2示出圖l所示系統(tǒng)的更詳細示例。 圖3示出用于控制對源代碼的訪問的方法的示例。 圖4示出用于確定用戶是否被授權(quán)訪問來自代碼服務(wù)器的源代碼的一 部分的示例性方法。
具體實施方式
概述
在一個實施例中,提供了代碼服務(wù)器和編輯服務(wù)器。代碼服務(wù)器存儲 源代碼。用戶不直接訪問代碼服務(wù)器。相反,使用了編輯服務(wù)器,其中用 戶可登錄到編輯服務(wù)器并發(fā)送要編輯源代碼的一些部分的請求。編輯服務(wù) 器隨后將針對被請求的那部分源代碼向代碼服務(wù)器發(fā)送請求。
不同用戶對代碼的一些部分可能具有不同的訪問權(quán)限。例如,第一用 戶可能能夠訪問代碼的第一部分,而第二用戶可能能夠訪問代碼的第二部 分,但反過來就不行。當從編輯服務(wù)器接收到請求時,如果代碼服務(wù)器確 定請求該部分源代碼的用戶對其沒有訪問權(quán)限,則代碼服務(wù)器不允許該部 分代碼被訪問。但是,如果用戶擁有訪問權(quán)限,則該部分源代碼被取得并 被發(fā)送到編輯服務(wù)器。用戶隨后可以在編輯服務(wù)器上編輯源代碼。
當用戶完成編輯源代碼時,編輯服務(wù)器將經(jīng)編輯的源代碼發(fā)送回代碼 服務(wù)器。代碼服務(wù)器隨后將該部分源代碼存儲回源代碼中。上述過程被執(zhí) 行,以使源代碼仍能被構(gòu)建/編譯。即使一些部分被發(fā)送到編輯服務(wù)器以便 編輯,源代碼目錄也被維護。經(jīng)編輯的源代碼隨后被存儲回目錄中,以使 源代碼能夠與經(jīng)編輯的代碼構(gòu)建在一起。
示例性實施例
圖1示出用于管理源代碼的示例性系統(tǒng)100。如圖所示,提供了代碼
服務(wù)器102、編輯服務(wù)器104、存儲裝置106和用戶設(shè)備108。
代碼服務(wù)器102可以是任何計算設(shè)備。例如,代碼服務(wù)器102可以是
服務(wù)器。在其他特定實施例中,代碼服務(wù)器102可包括存儲系統(tǒng)、大型機
或任何其他計算設(shè)備。
代碼服務(wù)器102包括源代碼。在一個實施例中,源代碼可被存儲在存
儲裝置106中的目錄或文件系統(tǒng)中。源代碼可以是任何軟件代碼。例如,
源代碼可包括需要被構(gòu)建的代碼。例如,構(gòu)建源代碼包括將源代碼中的文
件編譯和鏈接成可執(zhí)行形式。本領(lǐng)域的技術(shù)人員將會意識到各種構(gòu)建源代
碼的方法和源代碼的不同形式。
編輯服務(wù)器104可以是任何計算設(shè)備,例如服務(wù)器。此外,在其他實
施例中,編輯服務(wù)器104可以是大型機、工作站、個人計算機或任何其他
計算設(shè)備。
編輯服務(wù)器104和代碼服務(wù)器102可以是相分離的設(shè)備。在這種情況 下,用戶需要使用編輯服務(wù)器104來與代碼服務(wù)器102交互。但是,將會 理解,編輯服務(wù)器104和代碼服務(wù)器102可以是同一設(shè)備的不同部分,但 是被分開來,以使用戶無法直接訪問代碼服務(wù)器102。
用戶設(shè)備108是用戶用來訪問編輯服務(wù)器104的設(shè)備。在一個實施例 中,用戶設(shè)備108包括個人計算機、筆記本計算機、工作站等等。
用戶設(shè)備108可以與各種用戶相關(guān)聯(lián),其中用戶可被分成工作組。工 作組可以是具有相同的訪問權(quán)限或許可的用戶組。例如,某一組可具有第 一訪問權(quán)限,而另一組可具有第二訪問權(quán)限。這些訪問權(quán)限可允許訪問源 代碼的不同部分。
雖然針對用戶組描述了工作組,但是將會理解,工作組中的不同用戶 可具有不同的權(quán)限。例如,所有用戶的權(quán)限可被單獨定制?;蛘?,可通過 將用戶細分為各種工作組來簡化該過程。
本發(fā)明的實施例限制對源代碼的訪問。此外,用戶不直接從代碼服務(wù) 器102訪問源代碼。相反,請求被發(fā)送到編輯服務(wù)器104。編輯服務(wù)器 104隨后發(fā)送請求到代碼服務(wù)器102,代碼服務(wù)器102隨后可確定用戶的 訪問權(quán)限。如果用戶被允許訪問被請求的代碼部分,則代碼被取得并被發(fā) 送到編輯服務(wù)器104。用戶隨后可利用編輯服務(wù)器104編輯該部分代碼。
當用戶完成編輯源代碼時,編輯服務(wù)器104可將經(jīng)編輯的源代碼發(fā)送 回代碼服務(wù)器102,代碼服務(wù)器102隨后可重新存儲源代碼中經(jīng)編輯的那 部分源代碼。
圖2示出系統(tǒng)的更詳細示例。如圖所示,代碼服務(wù)器102包括代理 202、配設(shè)器(provisioner) 204和存儲裝置106。編輯服務(wù)器104包括請 求生成器206、代碼接收器208和代碼發(fā)送器210。
,請求生成器206接收來自用戶的請求。例如,用戶可使用用戶設(shè)備 108來發(fā)送對代碼的一部分的請求。在一個實施例中,用戶可利用編輯服 務(wù)器104瀏覽源代碼的目錄。例如,存儲在代碼服務(wù)器102上的源代碼的 目錄可被復(fù)制在編輯服務(wù)器104上。當用戶需要源代碼的一部分(例如一
個文件)時,用戶可瀏覽以尋找該文件,然后發(fā)送請求到請求生成器
206。請求生成器206隨后生成針對代碼服務(wù)器102的對該部分代碼的請 求。該請求可標識代碼的一部分,例如一個文件(或多個文件),并且還 包括關(guān)于正在請求源代碼的用戶的信息。
關(guān)于用戶的信息可包括用戶標識符、用戶關(guān)聯(lián)的工作組、用戶正操作 的產(chǎn)品、用戶正操作的項目等等。該信息被用于確定該用戶被授權(quán)訪問存 儲在代碼服務(wù)器102上的源代碼的哪些部分。
也可以使用任何安全性協(xié)議來確保該請求的安全。例如,可利用安全 殼(ssh)來從請求生成器206向代理202發(fā)送請求。此外,也可使用其他 確保請求安全的方法,例如使用證書、口令等等。
代理202接收請求,然后認證請求。認證可包括設(shè)備認證和用戶認 證。例如,代理202可認證己被用于對請求加密的密鑰。認證可確保請求 是由能夠請求訪問源代碼的一些部分的經(jīng)授權(quán)的設(shè)備所發(fā)送的。用戶認證 可通過登錄名和口令、公鑰、私鑰、證書來認證。
配設(shè)器204是通過管理員配設(shè)的,并且被用于確定對用戶的授權(quán)。在 認證之后,配設(shè)器204可使用經(jīng)認證的信息(例如用戶名)來確定訪問權(quán) 限。例如,可為每個用戶或工作組配設(shè)訪問過濾器。不同的工作組可被給 予不同的授權(quán),這些授權(quán)允許對源代碼的不同部分的訪問。另外,代理 202可檢測對于包括在請求中的產(chǎn)品用戶是否被列在授權(quán)用戶列表中,確 定請求是否在項目范圍中,等等。
配設(shè)器204確定用戶的訪問過濾器并將其應(yīng)用到請求。如果被請求的 那部分代碼在訪問過濾器中作為用戶可訪問的一部分代碼被找到,則請求 可被批準。如果訪問過濾器表明用戶未被授權(quán)訪問被請求的那部分代碼, 則配設(shè)器204可拒絕該請求。在拒絕請求的情況下,代理202將指示請求 被拒絕的消息發(fā)送回請求生成器206。隨后可向用戶發(fā)送表明用戶的請求 被拒絕的消息。
如果用戶被授權(quán)訪問該部分源代碼,則代理202從存儲裝置106取得 該部分源代碼。隨后與編輯服務(wù)器104之間建立經(jīng)加密的會話。在經(jīng)加密 的會話中,代理202將該部分源代碼傳送到代碼接收器208。例如,在經(jīng)
加密的會話中可傳送任何數(shù)目源代碼文件。
在傳送之后,用戶可從編輯服務(wù)器104查看、修改和編輯源代碼。例
如,可從編輯服務(wù)器104訪問文件。在一個實施例中,設(shè)備108使用虛擬 終端(例如VNC)來直接在設(shè)備104上査看/編輯源代碼。在另一實施例 中,用戶可使用用戶設(shè)備108-1來下載該部分源代碼。用戶隨后可在用戶 設(shè)備108-1上編輯、查看和修改該源代碼。編輯服務(wù)器104從而允許在源 代碼被存儲在其上時編輯源代碼,或者通過下載源代碼來編輯源代碼。代 碼服務(wù)器102不允許編輯源代碼,并且只可將其發(fā)送到代碼服務(wù)器102, 以便代碼服務(wù)器102能夠允許編輯。
當用戶完成對該部分源代碼的操作時,代碼發(fā)送器210可與代碼服務(wù) 器102之間建立另一個經(jīng)加密的會話。在該會話中,代碼發(fā)送器210將經(jīng) 編輯的源代碼發(fā)送回代理202。
例如,經(jīng)修改的源代碼文件被從編輯服務(wù)器104傳送到代碼服務(wù)器 102。代理202隨后將經(jīng)編輯的那部分源代碼存儲回存儲在存儲裝置106 中的源代碼中。例如,經(jīng)編輯的文件可取代在源代碼中找到的相同文件。
因此,提供了源代碼的編輯和存儲的分離。在第一設(shè)備上存儲源代 碼,而在第二設(shè)備上允許編輯。在第一設(shè)備上不允許編輯。這確保了源代 碼的一些部分可被分開,并且訪問可被限于某些部分。從而通過訪問的分 離和限制保護了知識產(chǎn)權(quán)(IP)。.
與文本文檔不同,源代碼不是最終產(chǎn)品的最終形式。為了使源代碼 "可用",需要向源代碼應(yīng)用構(gòu)建過程,該過程將源代碼變換為隨后將在 另一設(shè)備上執(zhí)行的機器語言。例如,從源代碼到機器語言的這一變換被稱 為"編譯過程或構(gòu)建過程"。該過程可能需要來自項目代碼庫的所有或部 分源代碼。例如,構(gòu)建可能需要.h頭文件。構(gòu)建出的二進制文件可被從代 碼服務(wù)器102傳送到編輯服務(wù)器104,以便調(diào)試、封裝等等。存儲裝置 106中的源代碼可在任何時間被構(gòu)建。即使源代碼的一部分已被檢驗,原 始源代碼(即未被編輯的那部分)也可被構(gòu)建。但是, 一旦經(jīng)編輯的那部 分源代碼被存儲在存儲裝置106中,則構(gòu)建源代碼的命令就可能被發(fā)送。 在一個實施例中,可遠程地從編輯服務(wù)器104向代碼服務(wù)器102發(fā)送請
求。
在構(gòu)建中,源代碼中的各種文件可能是獨立的,并且為了構(gòu)建文件, 其他獨立文件可能需要被訪問。但是,某些用戶可能沒有對從屬文件的訪 問權(quán)限。因此,傳統(tǒng)上,用戶將不得不訪問所有這些文件。但是,在此情 況下,特定實施例允許用戶訪問一個文件,但由于所有文件都被存儲在代
碼服務(wù)器102上,因此該文件可被構(gòu)建,而其中用戶不能訪問的其他文件 也能被用在構(gòu)建中。
構(gòu)建可以進行,但用戶可能沒有編輯獨立文件。這保持了對IP信息的 保護,但也允許了構(gòu)建的執(zhí)行。
圖3示出用于控制對源代碼的訪問的方法的示例。在步驟302中,編 輯服務(wù)器104接收對源代碼的一部分的請求。該請求可能是從用戶接收到 的。
在步驟304中,編輯服務(wù)器104確定關(guān)于用戶的信息。例如,該信息
可以是用戶身份、與用戶相關(guān)聯(lián)的工作組等等。
在步驟306中,編輯服務(wù)器104生成對該部分源代碼的請求。
在步驟308中,編輯服務(wù)器104與代碼服務(wù)器102建立經(jīng)加密的會
話。經(jīng)加密的會話可利用任何加密方法來建立。
在步驟310中,編輯服務(wù)器104在經(jīng)加密的會話中發(fā)送請求。
在步驟312中,編輯服務(wù)器104接收來自代碼服務(wù)器102的響應(yīng)。如
果用戶未被授權(quán)訪問該部分源代碼,則該響應(yīng)可能是對請求的拒絕。此
夕卜,如果用戶被授權(quán)訪問該部分源代碼,則該響應(yīng)可能是用戶所請求的那
部分源代碼。
圖4示出用于確定用戶是否被授權(quán)訪問來自代碼服務(wù)器102的源代碼 的一部分的示例性方法。在步驟402中,代碼服務(wù)器102在經(jīng)加密的會話 中接收對代碼的一部分的請求。該請求包括關(guān)于提交請求的用戶的信息。
在步驟404中,代碼服務(wù)器102認證用戶。在此情況下,代碼服務(wù)器 102確定請求是有否有效。
在步驟406中,代碼服務(wù)器102確定對用戶的授權(quán)。例如,對于用戶 所處的工作組,該工作組可能可以訪問代碼的不同部分。代碼服務(wù)器102
確定被請求的那部分代碼是否是用戶被授權(quán)訪問的源代碼的一部分。這是 基于過濾器或任何其他方法來完成的。
如果用戶未被授權(quán),則代碼服務(wù)器102返回指示用戶未被授權(quán)訪問該 部分代碼的消息。
如果用戶被授權(quán),則在步驟410中,該部分源代碼被從存儲裝置106取得。
在步驟412中,與編輯服務(wù)器104之間的經(jīng)加密的會話被建立,并且 該部分源代碼被發(fā)送到編輯服務(wù)器104。
特定實施例劃分源代碼,以便可訪問來自代碼服務(wù)器102的源代碼的 不同部分。隨后可在編輯服務(wù)器104上查看、修改和編輯代碼。從而,用 戶不能直接訪問代碼服務(wù)器102。這允許了控制代碼服務(wù)器102上的源代 碼,但也允許了用戶修改其被允許訪問的源代碼的一些部分。此外,沒有 改變下層操作系統(tǒng),從而可對存儲在代碼服務(wù)器102上的源代碼執(zhí)行構(gòu) 建。
雖然已經(jīng)參考其特定實施例描述了本發(fā)明,但是這些實施例只是說明 性,而不是要限制本發(fā)明。例如,代碼和編輯服務(wù)器是虛擬服務(wù)器。它們 不需要由硬件分界。例如,編輯和代碼服務(wù)器可經(jīng)由虛擬化程序(例如 vmware)在同一物理服務(wù)器上運行。此外,代碼服務(wù)器可以是邏輯上被聯(lián) 合在一起以向用戶呈現(xiàn)為一個服務(wù)器的外觀的一個或多個服務(wù)器。
可使用任何合適的編程語言來實現(xiàn)本發(fā)明的實施例的例程,包括c、 C++、 Java、匯編語言,等等??刹捎貌煌木幊碳夹g(shù),例如過程性的或 面向?qū)ο蟮摹@炭稍趩蝹€處理設(shè)備或多個處理器上執(zhí)行。雖然步驟、操 作或計算可能是以特定順序給出的,但是在不同實施例中該順序可被改 變。在一些實施例中,在說明書中示為順序性的多個步驟可以同時被執(zhí) 行。這里描述的操作序列可被諸如操作系統(tǒng)、內(nèi)核之類的另一進程中斷、 暫?;蛞云渌绞娇刂啤@炭晒ぷ髟诓僮飨到y(tǒng)環(huán)境中,或充當占用系統(tǒng) 處理的全部或大部分的獨立例程。功能可在硬件、軟件或兩者的結(jié)合中被 執(zhí)行。除非另有聲明,否則功能可全部或部分被手工執(zhí)行。
在這里的描述中,提供了許多具體細節(jié),例如組件和/或方法的示例,
以便充分理解本發(fā)明的實施例。但是,相關(guān)領(lǐng)域的技術(shù)人員將會認識到, 沒有一個或多個具體細節(jié)或者利用其他裝置、系統(tǒng)、組合件、方法、組 件、材料、部件和/或類似物也能實現(xiàn)本發(fā)明的實施例。在其他情況下,沒 有具體示出或詳細描述公知的結(jié)構(gòu)、材料或操作,以避免模糊本發(fā)明的實 施例的各個方面。
用于本發(fā)明實施例的"計算機可讀介質(zhì)"可以是能夠包含、存儲、傳 輸、傳播或傳送供指令執(zhí)行系統(tǒng)、裝置、系統(tǒng)或設(shè)備使用或聯(lián)系指令執(zhí)行 系統(tǒng)、裝置、系統(tǒng)或設(shè)備使用的程序的任何介質(zhì)。計算機可讀介質(zhì)例如可 以是(但不限于)電子、磁、光、電磁、紅外或半導體系統(tǒng)、裝置、系 統(tǒng)、設(shè)備、傳播介質(zhì)或計算機存儲器。
本發(fā)明的實施例可以軟件或硬件或兩者的結(jié)合中的控制邏輯的形式來 實現(xiàn)。控制邏輯可被存儲在諸如計算機可讀介質(zhì)這樣的信息存儲介質(zhì)中, 作為適合于指導信息處理設(shè)備執(zhí)行本發(fā)明實施例中公開的一組步驟的多個 指令?;谶@里提供的公開和教導,本領(lǐng)域的普通技術(shù)人員將會意識到實 現(xiàn)本發(fā)明的其他方式和/或方法。
"處理器"或"進程"包括處理數(shù)據(jù)、信號或其他信息的任何人類、 硬件和/或軟件系統(tǒng)、機構(gòu)或組件。處理器可包括具有通用中央處理單元的 系統(tǒng)、多個處理單元、用于實現(xiàn)功能的專用電路或其他系統(tǒng)。處理不需要 局限于地理位置,或具有時間限制。例如,處理器可"實時地"、"離線 地"、以"成批模式"等執(zhí)行其功能。處理的一些部分可在不同時間和不 同位置由不同(或相同)處理系統(tǒng)執(zhí)行。
在本說明書中提到"一個實施例"、"實施例"或"特定實施例"是 指聯(lián)系該實施例描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個 實施例中,但不一定被包括在所有實施例中。從而,在本說明書中各處相 應(yīng)出現(xiàn)的短語"在一個實施例中"、"在實施例中"或"在特定實施例 中"不一定是指同一實施例中。此外,本發(fā)明的任何特定實施例的特定特 征、結(jié)構(gòu)或特性可以以任何合適的方式與一個或多個其他實施例相結(jié)合。 要注意,考慮到這里的教導可對這里描述和說明的本發(fā)明的實施例進行其 他變化和修改,并且這些變化和修改被認為是本發(fā)明的精神和范圍的一部
可通過利用編程的通用數(shù)字計算機、利用專用集成電路、可編程邏輯 器件、現(xiàn)場可編程門陣列、光、化學、生物、量子或納米工程系統(tǒng)、組件 和機構(gòu)來實現(xiàn)本發(fā)明的實施例。 一般來說,本發(fā)明實施例的功能可由本領(lǐng) 域已知的任何手段來實現(xiàn)。可以使用分布式或聯(lián)網(wǎng)系統(tǒng)、組件和電路。數(shù) 據(jù)的通信或傳送可以是有線的、無線的或通過任何其他手段。
還將意識到,附圖中示出的元件中的一個或多個也可以以更分離或集 成的方式來實現(xiàn),或者甚至在某些情況下被去除或被變?yōu)椴豢晒ぷ?,如?根據(jù)特定應(yīng)用這樣做有用的話。實現(xiàn)可被存儲在機器可讀介質(zhì)中的程序或 代碼以允許計算機執(zhí)行上述方法中的任何一種,也是處于本發(fā)明的精神和 范圍之內(nèi)的。
此外,除非另外具體指出,否則附圖中的任何信號箭頭應(yīng)當被示為只 是示例性的,而不是限制性的。此外,除非另外指明,否則這里使用的術(shù) 語"或" 一般是想要表示"和/或"。組件或步驟的組合也將被認為是已被 指出,其中由于給予分離或組合的能力不清楚,因此術(shù)語被預(yù)見。
除非上下文另有清楚規(guī)定,否則這里的描述和所附權(quán)利要求中所使用
的"a" 、 "an"和"the"包括復(fù)數(shù)指代。此外,除非上下文另有清楚規(guī) 定,否則這里的描述和所附權(quán)利要求中使用的"在...中(m)"包括"在... 中(in)"和"在...上(on)"。
以上對本發(fā)明的圖示實施例的描述,包括摘要中描述的內(nèi)容,并不想 要是毫無遺漏的或者將本發(fā)明限制到這里公開的確切形式。雖然這里僅出 于說明目的描述了本發(fā)明的特定實施例和示例,但是正如相關(guān)領(lǐng)域的技術(shù) 人員將會認識和意識到的,在本發(fā)明的精神和范圍內(nèi),各種等同的修改都 是可能的。如上所述,可在考慮到以上對圖示實施例的描述的情況下對本 發(fā)明作出這些修改,并且這些修改將被包括在本發(fā)明的精神和范圍內(nèi)。
從而,雖然已經(jīng)參考本發(fā)明的特定實施例描述了本發(fā)明,但是前述公 開中預(yù)期了多種修改、各種變化和替換,并且將會意識到,在一些情況 下,將使用本發(fā)明實施例的一些特征而不相應(yīng)地使用其他特征,而不會脫 離所闡述的本發(fā)明的范圍和精神。因此,可以作出許多修改,以使特定情形或材料適應(yīng)于本發(fā)明的實質(zhì)范圍和精神。希望本發(fā)明不被局限于所附權(quán) 利要求中使用的特定術(shù)語,和/或作為被認為是用于實現(xiàn)本發(fā)明的最佳模式 而公開的特定實施例,相反,本發(fā)明將會包括落在所附權(quán)利要求的范圍內(nèi) 的任何和所有實施例和等同物。
權(quán)利要求
1.一種方法,包括在第一設(shè)備處接收來自第二設(shè)備的對存儲在所述第一設(shè)備上的源代碼的一部分的請求,其中用戶通過所述第二設(shè)備提交所述請求;確定與所述請求相關(guān)聯(lián)的用戶是否被授權(quán)訪問來自所述第一設(shè)備的所述源代碼的所述部分;取得所述源代碼的所述部分;將所述源代碼的所述部分發(fā)送到所述第二設(shè)備,其中所述第二設(shè)備允許對所述源代碼的所述部分進行編輯,并且所述源代碼的所述部分在所述第一設(shè)備上是不可編輯的;在所述第一設(shè)備處,接收來自所述第二設(shè)備的所述源代碼的經(jīng)編輯的部分;以及存儲所述源代碼的所述經(jīng)編輯的部分。
2. 如權(quán)利要求1所述的方法,還包括認證來自所述第二設(shè)備的所述請求。
3. 如權(quán)利要求1所述的方法,其中確定與所述請求相關(guān)聯(lián)的用戶是否 被授權(quán)訪問所述源代碼的所述部分的步驟包括確定與所述用戶相關(guān)聯(lián)的用戶信息;以及利用所述信息來確定所述用戶是否被授權(quán)訪問所述源代碼的所述部分。
4. 如權(quán)利要求1所述的方法,還包括提供對所述源代碼的所述部分的 構(gòu)建,其中所述源代碼中所述用戶未被授權(quán)訪問的第二部分在所述構(gòu)建中 被使用。
5. 如權(quán)利要求1所述的方法,其中所述源代碼在所述第一設(shè)備上被構(gòu) 建但不被編輯,并且所述第二設(shè)備允許對所述源代碼的所述部分進行編 輯。
6. —種方法,包括在第一設(shè)備處接收對存儲在第二設(shè)備上的源代碼的一部分的用戶請 求;生成對存儲在所述第二設(shè)備上的所述源代碼的所述部分的代碼請求;如果所述第二設(shè)備確定與所述用戶請求相關(guān)聯(lián)的用戶被授權(quán)訪問所述 源代碼的所述部分,則接收來自所述第二設(shè)備的所述源代碼的所述部分;允許通過所述第一設(shè)備編輯所述源代碼的所述部分,其中所述源代碼 在所述第二設(shè)備上是不可編輯的;以及在編輯之后將所述源代碼的經(jīng)編輯的部分發(fā)送到所述第二設(shè)備。
7. 如權(quán)利要求6所述的方法,還包括確定包括在所述代碼請求中的與 所述用戶相關(guān)聯(lián)的用戶信息,以確定所述用戶是否被授權(quán)訪問所述源代碼 的所述部分。
8. 如權(quán)利要求7所述的方法,其中所述用戶信息包括與所述用戶相關(guān)聯(lián)的工作組,并且所述工作組與所述工作組中的用戶可訪問的源代碼的一 些部分相關(guān)聯(lián)。
9. 如權(quán)利要求6所述的方法,,其中所述源代碼在所述第二設(shè)備上被構(gòu)建但不被編輯,并且所述第一設(shè)備允許對所述源代碼的所述部分進行編 輯。
10. 如權(quán)利要求6所述的方法,還包括與所述第二設(shè)備之間建立經(jīng)加密的會話;以及 在所述經(jīng)加密的會話中發(fā)送所述代碼請求。
11. 一種裝置,包括 一個或多個處理器;以及編碼在一個或多個有形介質(zhì)中的供所述一個或多個處理器執(zhí)行的邏輯,所述邏輯在被執(zhí)行時可操作以用于在第一設(shè)備處接收來自第二設(shè)備的對存儲在所述第一設(shè)備上的源代碼的一部分的請求,其中用戶通過所述第二設(shè)備提交所述請求;確定與所述請求相關(guān)聯(lián)的用戶是否被授權(quán)訪問來自所述第一設(shè)備的所述源代碼的所述部分;取得所述源代碼的所述部分;將所述源代碼的所述部分發(fā)送到所述第二設(shè)備,其中所述第二設(shè)備允 許對所述源代碼的所述部分進行編輯,并且所述源代碼的所述部分在所述 第一設(shè)備上是不可編輯的;在所述第一設(shè)備處,接收來自所述第二設(shè)備的所述源代碼的經(jīng)編輯的 部分;以及將所述源代碼的所述經(jīng)編輯的部分存儲在所述源代碼中。
12. 如權(quán)利要求11所述的裝置,其中所述邏輯在被執(zhí)行時還可操作以 用于認證來自所述第二設(shè)備的所述請求。
13. 如權(quán)利要求11所述的裝置,其中所述邏輯在被執(zhí)行時還可操作以 用于確定與所述用戶相關(guān)聯(lián)的用戶信息;以及利用所述信息來確定所述用戶是否被授權(quán)訪問所述源代碼的所述部分。
14. 如權(quán)利要求11所述的裝置,其中所述邏輯在被執(zhí)行時還可操作以 用于提供對所述源代碼的所述部分的構(gòu)建,其中所述源代碼中所述用戶未 被授權(quán)訪問的第二部分在所述構(gòu)建中被使用。
15. 如權(quán)利要求11所述的裝置,其中所述源代碼在所述第一設(shè)備上被 構(gòu)建但不被編輯,并且所述第二設(shè)備允許對所述源代碼的所述部分進行編 輯。
16. —種裝置,包括一個或多個處理器;以及編碼在一個或多個有形介質(zhì)中的供所述一個或多個處理器執(zhí)行的邏輯,所述邏輯在被執(zhí)行時可操作以用于在第一設(shè)備處接收對存儲在第二設(shè)備上的源代碼的一部分的用戶請求;生成對存儲在所述第二設(shè)備上的所述源代碼的所述部分的代碼請求; 如果所述第二設(shè)備確定與所述用戶請求相關(guān)聯(lián)的用戶被授權(quán)訪問所述源代碼的所述部分,則接收來自所述第二設(shè)備的所述源代碼的所述部分; 允許通過所述第一設(shè)備編輯所述源代碼的所述部分,其中所述源代碼在所述第二設(shè)備上是不可編輯的;以及在編輯之后將所述源代碼的經(jīng)編輯的部分發(fā)送到所述第二設(shè)備。
17. 如權(quán)利要求16所述的裝置,其中所述邏輯在被執(zhí)行時還可操作以用于確定包括在所述代碼請求中的與所述用戶相關(guān)聯(lián)的用戶信息,以確定 所述用戶是否被授權(quán)訪問所述源代碼的所述部分。
18. 如權(quán)利要求17所述的裝置,其中所述用戶信息包括與所述用戶相 關(guān)聯(lián)的工作組,并且所述工作組與所述工作組中的用戶可訪問的源代碼的 一些部分相關(guān)聯(lián)。
19. 如權(quán)利要求16所述的裝置,其中所述源代碼在所述第二設(shè)備上被 構(gòu)建但不被編輯,并且所述第一設(shè)備允許對所述源代碼的所述部分的編 輯。
20. 如權(quán)利要求16所述的裝置,其中所述邏輯在被執(zhí)行時還可操作以 用于與所述第二設(shè)備之間建立經(jīng)加密的會話;以及 在所述經(jīng)加密的會話中發(fā)送所述代碼請求。
21. —種裝置,包括用于在第一設(shè)備處接收來自第二設(shè)備的對存儲在所述第一設(shè)備上的源代碼的一部分的請求的裝置,其中用戶通過所述第二設(shè)備提交所述請求;用于確定與所述請求相關(guān)聯(lián)的用戶是否被授權(quán)訪問來自所述第一設(shè)備的所述源代碼的所述部分的裝置;用于取得所述源代碼的所述部分的裝置;用于將所述源代碼的所述部分發(fā)送到所述第二設(shè)備的裝置,其中所述 第二設(shè)備允許對所述源代碼的所述部分進行編輯,并且所述源代碼的所述 部分在所述第一設(shè)備上是不可編輯的;用于在所述第一設(shè)備處,接收來自所述第二設(shè)備的所述源代碼的經(jīng)編 輯的部分的裝置;以及用于存儲所述源代碼的所述經(jīng)編輯的部分的裝置。
22.—種裝置,包括用于在第一設(shè)備處接收對存儲在第二設(shè)備上的源代碼的一部分的用戶 請求的裝置;用于生成對存儲在所述第二設(shè)備上的所述源代碼的所述部分的代碼請求的裝置;用于在所述第二設(shè)備確定與所述用戶請求相關(guān)聯(lián)的用戶被授權(quán)訪問所 述源代碼的所述部分的情況下,接收來自所述第二設(shè)備的所述源代碼的所述部分的裝置;用于允許通過所述第一設(shè)備編輯所述源代碼的所述部分的裝置,其中 所述源代碼在所述第二設(shè)備上是不可編輯的;以及用于在編輯之后將所述源代碼的經(jīng)編輯的部分發(fā)送到所述第二設(shè)備的 裝置。
全文摘要
本發(fā)明涉及過濾對數(shù)據(jù)對象的訪問。在一個實施例中,提供了代碼服務(wù)器和編輯服務(wù)器。代碼服務(wù)器存儲源代碼。用戶不直接訪問代碼服務(wù)器。相反,使用了編輯服務(wù)器,其中用戶可登錄到編輯服務(wù)器并發(fā)送對編輯源代碼的一些部分的請求。編輯服務(wù)器隨后將針對源代碼的被請求部分向代碼服務(wù)器發(fā)送請求。不同用戶對代碼的一些部分可能具有不同的訪問權(quán)限。當從編輯服務(wù)器接收到請求時,如果代碼服務(wù)器確定請求該部分源代碼的用戶對其沒有訪問權(quán)限,則代碼服務(wù)器不允許該部分代碼被訪問。但是,如果用戶擁有訪問權(quán)限,則該部分源代碼被取得并被發(fā)送到編輯服務(wù)器。用戶隨后可以在編輯服務(wù)器上編輯源代碼。
文檔編號G06F21/62GK101187965SQ200610138200
公開日2008年5月28日 申請日期2006年11月16日 優(yōu)先權(quán)日2006年11月16日
發(fā)明者盧小青, 楊 宋, 健 楊, 簡·格羅斯基, 陳建宇 申請人:思科技術(shù)公司