云服務(wù)定制執(zhí)行環(huán)境的制作方法
【專利摘要】描述了用于實現(xiàn)云計算機系統(tǒng)以便為了定制可執(zhí)行指令的執(zhí)行而提供對定制執(zhí)行環(huán)境的訪問的技術(shù)。用戶可以能夠配置一個或多個不同類型的模板執(zhí)行環(huán)境,例如,虛擬機環(huán)境,每個模板執(zhí)行環(huán)境可被用來建立一個類型的定制執(zhí)行環(huán)境。用戶可以關(guān)于設(shè)置、狀態(tài)、資源、許可或與執(zhí)行環(huán)境相關(guān)的其它標(biāo)準(zhǔn)配置模板執(zhí)行環(huán)境。依據(jù)請求,定制執(zhí)行環(huán)境(例如,孩子執(zhí)行環(huán)境)可以被建立,用于運行定制可執(zhí)行指令的一個實例。定制執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境。定制執(zhí)行環(huán)境可以為定制可執(zhí)行指令的執(zhí)行提供安全、孤立的環(huán)境。用于定制執(zhí)行環(huán)境的訪問許可可以依賴于期望的執(zhí)行環(huán)境的類型是可配置的。
【專利說明】
云服務(wù)定制執(zhí)行環(huán)境
[0001] 對相關(guān)申請的交叉引用
[0002] 本申請要求于2014年9月17日提交且標(biāo)題為"CLOUD SERVICE CUSTOM EXECUTION ENVIRONMENT"的美國非臨時申請No. 14/489,172的優(yōu)先權(quán)和權(quán)益,該申請又要求以下專利 申請的優(yōu)先權(quán)和權(quán)益:(1)于2014年4月30日提交且標(biāo)題為"MOBILE CLOUD SERVICE CUSTOM CODE⑶NTAINER"的美國臨時申請No. 61/986,363和(2)于2014年2月7日提交且標(biāo)題為 "Μ0ΒΙLE CLOUD SERVICE(MCS)"的美國臨時申請No. 61 /937,316。以上識別出的非臨時和臨 時專利申請的全部內(nèi)容通過引用被結(jié)合于此,用于所有目的。
[0003]版權(quán)
[0004] 本專利文檔的公開內(nèi)容的一部分包含受版權(quán)保護的素材。版權(quán)所有者不反對任何 人對專利文檔或?qū)@_內(nèi)容的傳真再現(xiàn),就像其在專利和商標(biāo)局的專利文件或記錄中所 出現(xiàn)的,但是除此之外保留任何所有版權(quán)權(quán)利。
技術(shù)領(lǐng)域
[0005] 本公開內(nèi)容一般而言涉及計算機基礎(chǔ)設(shè)施領(lǐng)域。具體而言給出了用于為了定制可 執(zhí)行指令的執(zhí)行而提供對定制執(zhí)行環(huán)境的訪問的技術(shù)。
【背景技術(shù)】
[0006] 公司正在努力尋求使他們的用戶,諸如開發(fā)人員和管理員,以安全高效的方式配 置和/或操作計算環(huán)境。這些用戶可以發(fā)現(xiàn),使用戶能夠在個人安全環(huán)境中執(zhí)行代碼的多個 實例是有用的。用于啟用這種系統(tǒng)的挑戰(zhàn)之一是管理資源(例如,計算資源)的加載和使用。 即使對于那些經(jīng)常和定期執(zhí)行的任務(wù),用戶或管理員也背負(fù)著在多個場合下配置環(huán)境和加 載資源的任務(wù)。計算資源可以被效率低下地用于經(jīng)常執(zhí)行配置和加載資源。另外,當(dāng)這種環(huán) 境和/或資源不容易被配置或加載供使用時,執(zhí)行代碼和配置或操作的計算系統(tǒng)可能會遇 到延遲。在一些情況下,定制代碼的執(zhí)行會啟用對其它進程的計算資源的未經(jīng)許可或不必 要的訪問,這會對計算系統(tǒng)中的敏感環(huán)境造成安全威脅。公司可以受益于可以管理希望經(jīng) 常執(zhí)行代碼并且基于被執(zhí)行的操作或代碼的類型配置不同環(huán)境的用戶需求的計算系統(tǒng)。
【發(fā)明內(nèi)容】
[0007] 描述了用于實現(xiàn)云計算機系統(tǒng)的技術(shù),以便為了定制可執(zhí)行指令(例如,定制代 碼)的執(zhí)行而提供對定制執(zhí)行環(huán)境的訪問。用戶可以能夠配置一個或多個不同類型的模板 執(zhí)行環(huán)境,例如,虛擬機環(huán)境,每個模板執(zhí)行環(huán)境可被用來建立一種類型的定制執(zhí)行環(huán)境。 用戶可以關(guān)于設(shè)置、狀態(tài)、變量、資源、許可或與執(zhí)行環(huán)境相關(guān)的其它標(biāo)準(zhǔn)配置模板執(zhí)行環(huán) 境。依據(jù)請求,定制執(zhí)行環(huán)境(例如,孩子執(zhí)行環(huán)境)可被建立,用于運行定制可執(zhí)行指令的 實例。定制執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境(例如,其拷貝)。定制執(zhí)行環(huán)境可以為定制可執(zhí) 行指令的執(zhí)行提供安全、孤立的環(huán)境。對定制執(zhí)行環(huán)境的訪問許可可以依賴于期望的執(zhí)行 環(huán)境的類型是可配置的。模板執(zhí)行環(huán)境可被配置為用于支持定制可執(zhí)行指令的執(zhí)行的特定 類型的語言或環(huán)境。
[0008]根據(jù)至少一個例子,可以提供用于為了定制可執(zhí)行指令的執(zhí)行而訪問定制執(zhí)行環(huán) 境的技術(shù)。這種技術(shù)可以由計算機系統(tǒng)(例如,云計算機系統(tǒng))實現(xiàn)。例如,計算機系統(tǒng)可以 包括服務(wù)器計算機。計算機系統(tǒng)可以實現(xiàn)本文所公開的技術(shù)。該技術(shù)可以包括計算機實現(xiàn) 的方法。該方法可以包括執(zhí)行模板執(zhí)行環(huán)境。模板執(zhí)行環(huán)境可被配置為建立孩子執(zhí)行環(huán)境。 每個孩子執(zhí)行環(huán)境可被配置為執(zhí)行一條或多條定制可執(zhí)行指令。該方法可以包括接收執(zhí)行 定制可執(zhí)行指令的請求。該方法可以包括建立第一孩子執(zhí)行環(huán)境,以執(zhí)行所請求的定制可 執(zhí)行指令。第一孩子執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境來確定。該方法可以包括加載所請求 的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行,然后配置對于第一孩子執(zhí)行環(huán)境的 訪問許可。該方法可以包括在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。所請求 的定制可執(zhí)行指令可以在配置訪問許可之后執(zhí)行。
[0009]在某些實施例中,模板執(zhí)行環(huán)境是Java?虛擬機(JVM)環(huán)境并且第一孩子執(zhí)行環(huán) 境是孩子J VM環(huán)境。
[0010] 在某些實施例中,建立第一孩子執(zhí)行環(huán)境包括執(zhí)行fork命令來從模板執(zhí)行環(huán)境創(chuàng) 建第一孩子執(zhí)行環(huán)境。
[0011] 在某些實施例中,孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán)境的配置。
[0012] 在某些實施例中,配置對于孩子執(zhí)行環(huán)境的訪問許可包括調(diào)整用于訪問所請求的 定制可執(zhí)行指令的許可。許可可以被調(diào)整,以防止所請求的定制可執(zhí)行指令從孩子執(zhí)行環(huán) 境中被訪問。
[0013] 在某些實施例中,訪問許可是通過用于模板執(zhí)行環(huán)境的安全模型配置的。
[0014] 在某些實施例中,模板執(zhí)行環(huán)境是基于用于向計算機系統(tǒng)注冊的租戶的至少一個 標(biāo)準(zhǔn)來配置的。
[0015] 在某些實施例中,由計算機系統(tǒng)實現(xiàn)的方法還可以包括從多個模板執(zhí)行環(huán)境中選 擇模板執(zhí)行環(huán)境。多個模板執(zhí)行環(huán)境中的每個模板執(zhí)行環(huán)境可以建立孩子執(zhí)行環(huán)境。多個 模板執(zhí)行環(huán)境中的每個模板執(zhí)行環(huán)境可被配置為執(zhí)行不同類型的定制可執(zhí)行指令。
[0016] 在某些實施例中,由計算機系統(tǒng)實現(xiàn)的方法還可以包括分類對應(yīng)于所請求的定制 可執(zhí)行指令的定制可執(zhí)行指令的類型。模板執(zhí)行環(huán)境可以基于分類的定制可執(zhí)行指令的類 型來選擇。
[0017] 在某些實施例中,由計算機系統(tǒng)實現(xiàn)的方法還可以包括加載用于模板執(zhí)行環(huán)境的 執(zhí)行的資源。執(zhí)行所請求的定制可執(zhí)行指令的請求可以在加載用于模板執(zhí)行環(huán)境的執(zhí)行的 資源之后被接收。
[0018] 在某些實施例中,由計算機系統(tǒng)實現(xiàn)的方法還可以包括在執(zhí)行模板執(zhí)行環(huán)境之前 配置模板執(zhí)行環(huán)境。配置模板執(zhí)行環(huán)境可以包括初始化用于模板執(zhí)行環(huán)境的設(shè)置和初始化 用于模板執(zhí)行環(huán)境的狀態(tài)。
[0019] 在某些實施例中,由計算機系統(tǒng)實現(xiàn)的方法還可以包括在計算機系統(tǒng)中建立附加 的孩子執(zhí)行環(huán)境,以執(zhí)行附加的客戶可執(zhí)行指令。附加的孩子執(zhí)行環(huán)境可以基于模板執(zhí)行 環(huán)境來建立。該方法還可以包括加載附加的定制可執(zhí)行指令,用于在附加的孩子執(zhí)行環(huán)境 中執(zhí)行。該方法可以包括設(shè)置用于附加的孩子執(zhí)行環(huán)境的訪問許可。該方法可以包括在附 加的孩子執(zhí)行環(huán)境中執(zhí)行附加的定制可執(zhí)行指令。
[0020] 在某些實施例中,由計算機系統(tǒng)實現(xiàn)的方法還可以包括加載所請求的定制可執(zhí)行 指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行。
[0021] 根據(jù)至少一個例子,可以提供用于為了定制可執(zhí)行指令的執(zhí)行而訪問定制執(zhí)行環(huán) 境的技術(shù)。這種技術(shù)可以由計算機系統(tǒng)(例如,云計算機系統(tǒng))實現(xiàn)。計算機系統(tǒng)可以包括一 個或多個處理器和耦合到一個或多個處理器的一個或多個存儲器設(shè)備。例如,計算機系統(tǒng) 可以包括服務(wù)器計算機。一個或多個存儲器設(shè)備可以包含指令,當(dāng)指令被一個或多個處理 器執(zhí)行時,使得一個或多個處理器實現(xiàn)本文公開的技術(shù)。當(dāng)指令在一個或多個處理器上執(zhí) 行時,使得一個或多個處理器接收用于配置多個模板執(zhí)行環(huán)境中的模板執(zhí)行環(huán)境的標(biāo)準(zhǔn)。 多個模板執(zhí)行環(huán)境中的每個模板執(zhí)行環(huán)境可以建立孩子執(zhí)行環(huán)境。多個模板執(zhí)行環(huán)境中的 每個模板執(zhí)行環(huán)境可被配置為執(zhí)行不同類型的定制可執(zhí)行指令。當(dāng)指令在一個或多個處理 器被執(zhí)行時,使得一個或多個處理器從計算設(shè)備利用第一通信協(xié)議接收執(zhí)行定制可執(zhí)行指 令的請求。當(dāng)指令在一個或多個處理器被執(zhí)行時,使得一個或多個處理器分類對應(yīng)于所請 求的定制可執(zhí)行指令的定制可執(zhí)行指令的類型。當(dāng)指令在一個或多個處理器執(zhí)行時,使得 一個或多個處理器從多個模板執(zhí)行環(huán)境中選擇第一模板執(zhí)行環(huán)境。第一模板執(zhí)行環(huán)境可以 基于分類的定制可執(zhí)行指令的類型來選擇。當(dāng)指令在一個或多個處理器被執(zhí)行時,使得一 個或多個處理器執(zhí)行第一模板執(zhí)行環(huán)境。當(dāng)指令在一個或多個處理器被執(zhí)行時,使得一個 或多個處理器建立第一孩子執(zhí)行環(huán)境,以執(zhí)行所請求的定制可執(zhí)行指令。第一孩子執(zhí)行環(huán) 境可以基于第一模板執(zhí)行環(huán)境來建立。當(dāng)指令在一個或多個處理器被執(zhí)行時,使得一個或 多個處理器加載用于在第一孩子執(zhí)行環(huán)境中執(zhí)行的所請求的定制可執(zhí)行指令,然后配置對 于第一孩子執(zhí)行環(huán)境的訪問許可。當(dāng)指令在一個或多個處理器被執(zhí)行時,使得一個或多個 處理器在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。在訪問許可為第一孩子執(zhí)行 環(huán)境配置后,所請求的定制可執(zhí)行指令可以被執(zhí)行。
[0022] 根據(jù)至少一個例子,可以提供用于為了定制可執(zhí)行指令的執(zhí)行而訪問定制執(zhí)行環(huán) 境的技術(shù)。這種技術(shù)可以由計算機系統(tǒng)(例如,云計算機系統(tǒng))實現(xiàn)。該計算機系統(tǒng)可以包括 一個或多個處理器和計算機可讀存儲器。例如,計算機系統(tǒng)可以包括服務(wù)器計算機。該計算 機可讀存儲器可以存儲指令集,當(dāng)指令集被一個或多個處理器執(zhí)行時,使得一個或多個處 理器實現(xiàn)本文描述的技術(shù)。當(dāng)指令集被一個或多個處理器執(zhí)行時,使得一個或多個處理器 執(zhí)行模板執(zhí)行環(huán)境。模板執(zhí)行環(huán)境可被配置為建立孩子執(zhí)行環(huán)境。每個孩子執(zhí)行環(huán)境可被 配置為執(zhí)行一條或多條定制可執(zhí)行指令。當(dāng)指令集被一個或多個處理器執(zhí)行時,使得一個 或多個處理器接收執(zhí)行定制可執(zhí)行指令的請求。當(dāng)指令集被一個或多個處理器執(zhí)行時,使 得一個或多個處理器建立第一孩子執(zhí)行環(huán)境,以執(zhí)行所請求的定制可執(zhí)行指令。第一孩子 執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境來建立。當(dāng)指令集被一個或多個處理器執(zhí)行時,使得一個 或多個處理器加載所請求的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行,然后配置 對于第一孩子執(zhí)行環(huán)境的訪問許可。當(dāng)指令集被一個或多個處理器執(zhí)行時,使得一個或多 個處理器在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。所請求的定制可執(zhí)行指令 可以在配置訪問許可之后被執(zhí)行。
[0023] 根據(jù)至少一個例子,可以提供一種計算機系統(tǒng)。該計算機系統(tǒng)可以包括:第一接收 器,被配置為接收用于配置多個模板執(zhí)行環(huán)境中的模板執(zhí)行環(huán)境的標(biāo)準(zhǔn),其中多個模板執(zhí) 行環(huán)境中的每個模板執(zhí)行環(huán)境建立孩子執(zhí)行環(huán)境,并且其中多個模板執(zhí)行環(huán)境中的每個模 板執(zhí)行環(huán)境被配置為執(zhí)行不同類型的定制可執(zhí)行指令;第二接收器,被配置為從計算設(shè)備 利用第一通信協(xié)議接收執(zhí)行定制可執(zhí)行指令的請求;分類單元,被配置為分類對應(yīng)于所請 求的定制可執(zhí)行指令的定制可執(zhí)行指令的類型;選擇單元,被配置為從多個模板執(zhí)行環(huán)境 中選擇第一模板執(zhí)行環(huán)境,其中第一模板執(zhí)行環(huán)境基于分類的定制可執(zhí)行指令的類型來選 擇;第一執(zhí)行單元,被配置為執(zhí)行第一模板執(zhí)行環(huán)境;建立單元,被配置為建立第一孩子執(zhí) 行環(huán)境,以執(zhí)行所請求的定制可執(zhí)行指令,其中第一孩子執(zhí)行環(huán)境是基于第一模板執(zhí)行環(huán) 境建立的;加載單元,被配置為加載所請求的定制可執(zhí)行指令,用于在第一子執(zhí)行環(huán)境中執(zhí) 行;配置單元,被配置為配置對于第一孩子執(zhí)行環(huán)境的訪問許可;以及第二執(zhí)行單元,被配 置為在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令,其中所請求的定制可執(zhí)行指令 在訪問許可為第一孩子執(zhí)行環(huán)境配置之后被執(zhí)行。
[0024] 在某些實施例中,計算機系統(tǒng)可以是移動云計算機系統(tǒng),并且計算設(shè)備可以是移 動計算設(shè)備。
[0025] 在某些實施例中,第一孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán)境的配置。
[0026] 在某些實施例中,配置單元還包括被配置為調(diào)整用于訪問所請求的定制可執(zhí)行指 令的許可的調(diào)整單元,其中許可被調(diào)整,以防止所請求的定制可執(zhí)行指令從第一孩子執(zhí)行 環(huán)境中被訪問。
[0027] 根據(jù)至少一個例子,可以提供用于執(zhí)行定制可執(zhí)行指令的裝置。該裝置可以包括: 用于執(zhí)行模板執(zhí)行環(huán)境的單元,其中模板執(zhí)行環(huán)境被配置為建立孩子執(zhí)行環(huán)境,每個孩子 執(zhí)行環(huán)境被配置為執(zhí)行一個或多個定制可執(zhí)行指令;用于接收執(zhí)行定制可執(zhí)行指令的請求 的單元;用于建立第一孩子執(zhí)行環(huán)境以便執(zhí)行所請求的定制可執(zhí)行指令的單元,其中第一 孩子執(zhí)行環(huán)境是基于模板執(zhí)行環(huán)境建立的;用于加載所請求的定制可執(zhí)行指令以用于在第 一孩子執(zhí)行環(huán)境中執(zhí)行的單元;用于配置用于第一孩子執(zhí)行環(huán)境的訪問許可的單元;以及 用于在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令的單元,其中所請求的定制可執(zhí) 行指令在配置訪問許可之后被執(zhí)行。
[0028] 在某些實施例中,第一孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán)境的配置。
[0029] 本概述并不意在識別要求保護的主題的關(guān)鍵或必要特征,也不意在孤立地被用來 確定要求保護的主題的范圍。主題應(yīng)當(dāng)參照本專利的整個說明書的適當(dāng)部分、任何或全部 附圖以及每項權(quán)利要求來理解。
[0030] 以下詳細(xì)描述連同附圖一起將提供對本發(fā)明實施例的本質(zhì)和優(yōu)點的更好理解。
【附圖說明】
[0031] 下面參照以下附圖詳細(xì)地描述本發(fā)明的說明性實施例:
[0032] 圖1示出了根據(jù)本發(fā)明的一些實施例、為了定制可執(zhí)行指令的執(zhí)行而提供對定制 執(zhí)行環(huán)境的訪問的計算機系統(tǒng)的框圖。
[0033] 圖2示出了根據(jù)本發(fā)明的一些實施例、為了定制可執(zhí)行指令的執(zhí)行而提供對定制 執(zhí)行環(huán)境的訪問的計算機系統(tǒng)的框圖。
[0034] 圖3示出了根據(jù)本發(fā)明的一些實施例、包括為了執(zhí)行定制可執(zhí)行指令而利用模板 執(zhí)行環(huán)境建立的孩子執(zhí)行環(huán)境的系統(tǒng)的框圖。
[0035] 圖4示出了根據(jù)本發(fā)明的一些實施例、用于為了定制可執(zhí)行指令的執(zhí)行而提供對 定制執(zhí)行環(huán)境的訪問的過程的序列圖。
[0036] 圖5是示出根據(jù)本發(fā)明的一些實施例、用于為了定制可執(zhí)行指令的執(zhí)行而提供對 定制執(zhí)行環(huán)境的訪問的過程的流程圖。
[0037] 圖6繪出了用于實現(xiàn)其中一種實施例的分布式系統(tǒng)的簡化圖。
[0038] 圖7示出了根據(jù)本公開內(nèi)容的實施例的系統(tǒng)環(huán)境的組件的簡化框圖,通過其,由實 施例系統(tǒng)的組件提供的服務(wù)可以作為云服務(wù)被提供。
[0039] 圖8示出了本發(fā)明的各種實施例可以在其中實現(xiàn)的示例性計算機系統(tǒng)。
[0040] 圖9示出了示例性計算機系統(tǒng)的功能框圖,其中可以實現(xiàn)本發(fā)明的各種實施例。
【具體實施方式】
[0041] 在下面的描述中,為了解釋的目的,闡述了許多具體的細(xì)節(jié),以便提供本發(fā)明的各 種實施例的透徹理解。但顯而易見的是,對本領(lǐng)域技術(shù)人員來說,本發(fā)明的實施例可以在沒 有這些具體細(xì)節(jié)的情況下實踐。在其它情況下,眾所周知的結(jié)構(gòu)和設(shè)備以框圖形式示出。
[0042] 具體的細(xì)節(jié)在以下描述中給出,以提供對實施例的透徹理解。但是,本領(lǐng)域普通技 術(shù)人員將理解,實施例可以在沒有這些特定細(xì)節(jié)的情況下實踐。例如,電路、系統(tǒng)、網(wǎng)絡(luò)、過 程和其它組件可以被示為框圖形式的組件,以便不以不必要的細(xì)節(jié)模糊實施例。在其它情 況下,眾所周知的電路、過程、算法、結(jié)構(gòu)和技術(shù)可以示為沒有不必要的細(xì)節(jié),以避免模糊實 施例。
[0043] 而且,應(yīng)當(dāng)指出,各個實施例可被描述為被繪制為流程圖、流圖、數(shù)據(jù)流圖、結(jié)構(gòu)圖 或框圖的過程。雖然流程圖可以將操作描述為順序過程,但是許多操作可以并行或并發(fā)執(zhí) 行。此外,操作的次序可以被重新布置。當(dāng)其操作完成時,過程終止,但是可以具有不包括在 圖中的附加步驟。過程可以對應(yīng)于方法、函數(shù)、過程、子例程,子程序等。當(dāng)過程對應(yīng)于函數(shù) 時,其終止可以對應(yīng)于該函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
[0044] 術(shù)語"機器可讀存儲介質(zhì)"包括,但不限于,便攜式或非便攜式存儲設(shè)備、光存儲設(shè) 備,以及能夠存儲、包含或攜帶(一條或多條)指令和/或數(shù)據(jù)的各種其它介質(zhì)。機器可讀介 質(zhì)可以包括其中可以存儲數(shù)據(jù)的非臨時性介質(zhì)并且不包括載波和/或無線地或通過有線連 接傳播的臨時性電子信號。非臨時性介質(zhì)的例子可以包括,但不限于,磁盤或磁帶、諸如致 密盤(CD)或數(shù)字多功能盤(DVD)的光學(xué)存儲介質(zhì)、閃存存儲器、存儲器或存儲設(shè)備。計算機 程序產(chǎn)品可以包括代碼和/或機器可執(zhí)行指令,其可以表示過程、函數(shù)、子程序、程序、例程、 子例程、模塊、軟件包、類,或者指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任意組合。代碼段可通過傳遞 和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲器內(nèi)容被耦合到另一代碼段或者硬件電路。信 息、自變量、參數(shù)、數(shù)據(jù)等可以經(jīng)由任何合適的手段,包括存儲器共享、消息傳遞、令牌傳遞、 網(wǎng)絡(luò)傳輸?shù)?,被傳遞、轉(zhuǎn)發(fā)或發(fā)送。
[0045] 此外,實施例可以由硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意 組合來實現(xiàn)。當(dāng)在軟件、固件、中間件或微代碼中實現(xiàn)時,執(zhí)行必要任務(wù)的程序代碼或代碼 段(例如,計算機程序產(chǎn)品)可被存儲在機器可讀介質(zhì)中。(一個或多個)處理器可以執(zhí)行必 要的任務(wù)。
[0046] 在一些圖中繪出的系統(tǒng)可以以各種配置提供。在一些實施例中,系統(tǒng)可被配置為 分布式系統(tǒng),其中該系統(tǒng)的一個或多個組件跨云計算機系統(tǒng)中的一個或多個網(wǎng)絡(luò)分布。
[0047] 描述了用于實現(xiàn)云計算機系統(tǒng)以便為了定制可執(zhí)行指令(例如,定制代碼)的執(zhí)行 而提供對定制執(zhí)行環(huán)境的訪問的技術(shù)。用戶可以能夠配置一個或多個不同類型的模板執(zhí)行 環(huán)境,例如,虛擬機環(huán)境,每個模板執(zhí)行環(huán)境可被用來建立一個類型的定制執(zhí)行環(huán)境。用戶 可以關(guān)于與執(zhí)行環(huán)境相關(guān)的設(shè)置、狀態(tài)、變量、資源、許可或其它標(biāo)準(zhǔn)配置模板執(zhí)行環(huán)境。依 據(jù)請求,定制執(zhí)行環(huán)境(例如,孩子執(zhí)行環(huán)境)可以為了運行定制可執(zhí)行指令的實例而被建 立。定制執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境(例如,其拷貝)。定制執(zhí)行環(huán)境可以為定制可執(zhí)行 指令的執(zhí)行提供安全、孤立的環(huán)境。用于定制執(zhí)行環(huán)境的訪問許可可以依賴于期望的執(zhí)行 環(huán)境的類型是可配置的。模板執(zhí)行環(huán)境可被配置為用于支持定制可執(zhí)行指令的執(zhí)行的特定 類型的語言或環(huán)境。
[0048] 圖1示出了根據(jù)本發(fā)明的一些實施例、為了定制可執(zhí)行指令的執(zhí)行而提供對定制 執(zhí)行環(huán)境的訪問的計算機系統(tǒng)100的框圖。為了說明的目的,本文提供了各種例子來描述用 于使計算設(shè)備(例如,計算設(shè)備102)與一個或多個企業(yè)計算機系統(tǒng),諸如云企業(yè)計算機系統(tǒng) 140(例如,"861^;[06。1'0¥丨(161'.00111")和本地企業(yè)計算機系統(tǒng)150,通信的技術(shù)這種通信可以 是交換或傳送企業(yè)數(shù)據(jù)、請求由企業(yè)計算機系統(tǒng)提供的服務(wù)、傳送消息、執(zhí)行一條或多條定 制可執(zhí)行指令,或它們的組合。
[0049] 消息可以包括服務(wù)調(diào)用消息、結(jié)果消息、請求消息、在內(nèi)部傳送的其它消息、在計 算設(shè)備和企業(yè)計算機系統(tǒng)之間傳送的其它消息,或它們的組合。消息可以包括消息類型(例 如,來自一組共享類型常量的類型值)、相關(guān)性id(例如,用來將這個消息與一個或多個其它 消息相關(guān)的id)、支持基于優(yōu)先級的消息隊列的優(yōu)先級信息、超時、支持消息數(shù)據(jù)隔離的靈 敏度指示、消息源(例如,發(fā)送者的統(tǒng)一資源標(biāo)識符)、消息目的地(例如,唯一地識別目的地 的統(tǒng)一資源標(biāo)識符)、請求上下文(例如,來自調(diào)度器的請求信息),和/或消息有效載荷,該 有效載荷可以依賴于正在被發(fā)送的消息的類型,諸如參數(shù)數(shù)據(jù)和結(jié)果數(shù)據(jù),而具有不同的 屬性。
[0050] 定制可執(zhí)行指令可以包括一行或多行程序代碼、二進制代碼、可執(zhí)行操作、機器指 令、機器代碼,或它們的組合。定制可執(zhí)行指令可以包括可由處理器讀取的信息,以便使處 理器執(zhí)行操作、方法、例行程序,等等。定制可執(zhí)行指令可以包括在軟件程序中或由其實現(xiàn)。 定制可執(zhí)行指令可由用戶配置。定制可執(zhí)行指令可能導(dǎo)致一條或多條可執(zhí)行指令被執(zhí)行。 定制可執(zhí)行指令可以利用計算機編程語言來編寫,諸如面向?qū)ο蟮恼Z言(例如,Java?)、 腳本語言(例如,Groovy?或JavaScript? )、機器語言、硬件編程語言、系統(tǒng)語言、操 作系統(tǒng)語言、其它類型的語言,或它們的組合。定制可執(zhí)行指令可能導(dǎo)致一個或多個操作在 云計算機系統(tǒng)110中執(zhí)行。這種操作可以包括變換來自企業(yè)計算機系統(tǒng)的企業(yè)數(shù)據(jù)、聚集來 自企業(yè)計算機系統(tǒng)的企業(yè)數(shù)據(jù)、對企業(yè)數(shù)據(jù)執(zhí)行一些量的業(yè)務(wù)邏輯,或者與處理或傳送企 業(yè)數(shù)據(jù)相關(guān)的其它操作。
[0051] 如本文所述的企業(yè)數(shù)據(jù)可以包括從企業(yè)計算機系統(tǒng)接收的數(shù)據(jù)、發(fā)送到企業(yè)計算 機系統(tǒng)的數(shù)據(jù)、由企業(yè)計算機系統(tǒng)處理的數(shù)據(jù),或它們的組合。企業(yè)數(shù)據(jù)可以是與用于客戶 應(yīng)用和/或服務(wù)的數(shù)據(jù)可區(qū)分的。在一些實施例中,例如,企業(yè)數(shù)據(jù)可以基于企業(yè)數(shù)據(jù)的應(yīng) 用或使用而改變,而用于客戶應(yīng)用的數(shù)據(jù)(例如,客戶數(shù)據(jù))可以在使用中保持靜態(tài)。在某些 實施例中,企業(yè)數(shù)據(jù)可以包括或者可以與指示用于存儲、使用和/或管理企業(yè)數(shù)據(jù)的標(biāo)準(zhǔn)的 規(guī)則相關(guān)聯(lián)。例如,企業(yè)數(shù)據(jù)可以與指示用于存儲、使用和/或管理該企業(yè)數(shù)據(jù)的一個或多 個策略的策略信息相關(guān)聯(lián)。在某些實施例中,策略信息可以包括在企業(yè)數(shù)據(jù)中。在某些實施 例中,企業(yè)數(shù)據(jù)可以包括由在企業(yè)計算機系統(tǒng)中執(zhí)行的應(yīng)用或服務(wù)處理、存儲、使用或傳送 的數(shù)據(jù)。例如,企業(yè)數(shù)據(jù)可以包括諸如來自企業(yè)應(yīng)用的JSON(JavaS Cript對象符號)格式化 數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)(例如,業(yè)務(wù)對象)、結(jié)構(gòu)化數(shù)據(jù)(例如,鍵值對)、非結(jié)構(gòu)化數(shù)據(jù)(例如,由應(yīng) 用處理或使用的內(nèi)部數(shù)據(jù)、JSON格式的數(shù)據(jù)、社交帖子、會話流、活動饋送,等等)、二進制大 對象(BLOB)、文檔、系統(tǒng)文件夾(例如,沙箱環(huán)境中應(yīng)用相關(guān)的文件夾)、使用代表性狀態(tài)傳 送(REST)技術(shù)的數(shù)據(jù)(在本文被稱為"RESTful數(shù)據(jù)")(例如,通過REST端點使其可用的同步 數(shù)據(jù))、系統(tǒng)數(shù)據(jù)、配置數(shù)據(jù)、同步數(shù)據(jù),或它們的組合。在一些實施例中,企業(yè)數(shù)據(jù)可以包括 REST格式化的企業(yè)數(shù)據(jù)。REST格式化的數(shù)據(jù)可以包括RESTful數(shù)據(jù)。REST格式化的企業(yè)數(shù)據(jù) 可以包括根據(jù)由企業(yè)計算機系統(tǒng)實現(xiàn)的REST技術(shù)格式化的數(shù)據(jù)。配置或同步數(shù)據(jù)可以包括 用于企業(yè)數(shù)據(jù)的同步的數(shù)據(jù),諸如版本、歷史、集成數(shù)據(jù),等等。企業(yè)數(shù)據(jù)中的文檔可以包括 擴展標(biāo)記語言(XML)文件、可視資產(chǎn)、配置文件、媒體資產(chǎn),等等。BLOB可以包括在數(shù)據(jù)庫管 理系統(tǒng)中被存儲為單個實體的二進制數(shù)據(jù)的集合,諸如圖像、多媒體對象,或可執(zhí)行代碼, 或者本領(lǐng)域中其它已知的。
[0052]企業(yè)計算機系統(tǒng)可以包括被配置為為實體或企業(yè)操作的各種計算系統(tǒng)。例如,企 業(yè)計算機系統(tǒng)可以包括一個或多個計算機系統(tǒng),諸如企業(yè)服務(wù)器計算機(例如,后端服務(wù)器 計算機),以處理對服務(wù)的請求。企業(yè)計算機系統(tǒng)可以包括可以利用企業(yè)數(shù)據(jù)處理和/或操 作的應(yīng)用和/或服務(wù)。例如,企業(yè)計算機系統(tǒng)150可以提供用于管理或操作企業(yè)的一個或多 個服務(wù)和/或應(yīng)用。服務(wù)可以包括,但不限于,客戶關(guān)系管理(CRM)、人力資本管理(HCM)、人 力資源(HR)管理、供應(yīng)鏈管理、企業(yè)通信、電子郵件通信、商業(yè)服務(wù)、其它企業(yè)管理服務(wù)或應(yīng) 用,或它們的組合。企業(yè)計算機系統(tǒng)150可以包括一個或多個專用于提供一個或多個服務(wù)的 計算機系統(tǒng)。在一些實施例中,提供服務(wù)的每個不同計算機系統(tǒng)可以位于企業(yè)本地(onpremise) ,或者可以位于遠(yuǎn)離企業(yè)。在一些實施例中 ,支持不同服務(wù)的多個不同計算機系統(tǒng) 可以位于單個地理位置,諸如企業(yè)本地。在圖1所示的例子中,本地企業(yè)計算機系統(tǒng)150可以 包括HR系統(tǒng)154和CRM系統(tǒng)156,這兩者可以位于企業(yè)本地。在一些實施例中,企業(yè)計算機系 統(tǒng)140可以包括或?qū)崿F(xiàn)代理系統(tǒng),以促進或處理云計算機系統(tǒng)110和一個或多個企業(yè)系統(tǒng) 154、156之間的通信。企業(yè)的計算機系統(tǒng),諸如云企業(yè)計算機系統(tǒng)140和本地企業(yè)計算機系 統(tǒng)150,在下面進一步詳細(xì)描述。
[0053]計算機系統(tǒng)100可以包括被實現(xiàn)為作為安全的居間計算環(huán)境操作的云服務(wù)112,其 促進計算設(shè)備102和一個或多個企業(yè)計算機系統(tǒng)之間的通信,因為計算設(shè)備102可以不被配 置為與這種企業(yè)計算機系統(tǒng)通信。例如,一些企業(yè)計算機系統(tǒng)可以由遺留或后端計算機系 統(tǒng)支持。這種系統(tǒng)可被配置為利用不同的通信和/或安全協(xié)議來操作。由這種企業(yè)計算機系 統(tǒng)支持的協(xié)議可以與由移動計算設(shè)備支持的那些不同。云服務(wù)112可以支持利用不同類型 的移動計算設(shè)備通信。照此,云服務(wù)112可以實現(xiàn)促進企業(yè)計算機系統(tǒng)和移動計算設(shè)備之間 的通信的技術(shù),以便使它們能夠彼此通信,而不論它們通信的不兼容性,諸如格式或通信協(xié) 議之間的差異。例如,云服務(wù)112可以翻譯移動計算設(shè)備和企業(yè)計算機系統(tǒng)之間的通信協(xié) 議。
[0054]云服務(wù)112可被實現(xiàn)為為了定制可執(zhí)行指令的執(zhí)行而提供對定制執(zhí)行環(huán)境的訪 問。定制執(zhí)行環(huán)境可以使用戶(例如,開發(fā)人員或管理員)能夠執(zhí)行定制指令。定制指令可以 被執(zhí)行,以管理、配置或操作云服務(wù)112。例如,云服務(wù)112可以促進定制可執(zhí)行指令在定制 執(zhí)行環(huán)境(例如,"定制代碼容器"),諸如孩子執(zhí)行環(huán)境134,中的執(zhí)行。定制執(zhí)行環(huán)境可以基 于模板執(zhí)行環(huán)境132來建立。模板執(zhí)行環(huán)境132可被配置為使得孩子執(zhí)行環(huán)境134可以基于 模板執(zhí)行環(huán)境132的配置來創(chuàng)建??梢詾椴煌亩ㄖ瓶蓤?zhí)行指令建立孩子執(zhí)行環(huán)境134。每 個孩子執(zhí)行環(huán)境134可以表示安全環(huán)境,其中定制可執(zhí)行指令可以無需訪問超出孩子執(zhí)行 環(huán)境134可訪問的那些資源之外的資源就被執(zhí)行。孩子執(zhí)行環(huán)境134可以是沙箱狀的計算環(huán) 境,其不能被由云服務(wù)112執(zhí)行的其它過程訪問。孩子執(zhí)行環(huán)境134會阻止在該環(huán)境中執(zhí)行 的可執(zhí)行指令建立一個或多個其它執(zhí)行環(huán)境。孩子執(zhí)行環(huán)境134中的訪問許可可以在建立 環(huán)境之后被修改,使得從孩子執(zhí)行環(huán)境134中的訪問可以如上所述被配置。下面進一步并參 照圖2-5描述定制可執(zhí)行指令的執(zhí)行。
[0055] 云計算機系統(tǒng)110可以支持云服務(wù)112。云計算機系統(tǒng)110可以利用硬件、軟件、固 件或它們的組合來實現(xiàn)。例如,云計算機系統(tǒng)110可以包括一個或多個計算設(shè)備,諸如服務(wù) 器計算機。云計算機系統(tǒng)110可以包括一個或多個存儲器存儲設(shè)備和一個或多個處理器。存 儲器存儲設(shè)備可以讓(一個或多個)處理器訪問并且可以包括存儲在其上的指令,當(dāng)指令被 (一個或多個)處理器執(zhí)行時,使(一個或多個)處理器實現(xiàn)本文公開的一個或多個操作。在 一些實施例中,存儲器存儲設(shè)備可以作為本地儲存器(例如,高速緩存)操作。云計算機系統(tǒng) 110可以包括一個或多個不同類型的操作系統(tǒng)。存儲器存儲設(shè)備可以讓(一個或多個)處理 器訪問并且可以包括存儲在其上的指令,當(dāng)指令被(一個或多個)處理器執(zhí)行時,使(一個或 多個)處理器實現(xiàn)本文公開的一個或多個操作、方法或過程。存儲器存儲可以作為本地儲存 器操作。本地儲存器可以利用任何類型的持久性存儲設(shè)備來實現(xiàn),諸如存儲器存儲設(shè)備或 其它計算機可讀存儲介質(zhì)。在一些實施例中,本地儲存器可以包括或?qū)崿F(xiàn)一個或多個數(shù)據(jù) 庫170(例如,文檔數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫,或其它類型的數(shù)據(jù)庫)、一個或多個數(shù)據(jù)存儲(例如, 元數(shù)據(jù)儲存庫124),一個或多個文件存儲、一個或多個文件系統(tǒng),或它們的組合。本地儲存 器可以存儲企業(yè)數(shù)據(jù)。在某些實施例中,云計算機系統(tǒng)110可以包括一個或多個數(shù)據(jù)存儲, 其可以由云計算機系統(tǒng)110中的任何組件訪問。
[0056] 元數(shù)據(jù)儲存庫124可以存儲與云服務(wù)112關(guān)聯(lián)的所有元數(shù)據(jù)。這個信息可以由運行 時和設(shè)計時數(shù)據(jù)組合,每一個具有其自己關(guān)于可用性和性能的需求。云服務(wù)112的租戶或訂 戶可以有任意數(shù)量的應(yīng)用。每個應(yīng)用可以進行版本控制并且可以具有關(guān)聯(lián)的零個或多個版 本化的資源API以及那些資源應(yīng)用編程接口(API)接觸的零個或多個版本化的服務(wù)實現(xiàn)。這 些實體是運行時用來將虛擬請求(mAPI)映射到具體服務(wù)實現(xiàn)(服務(wù))的東西。當(dāng)她設(shè)計和建 立其應(yīng)用時,這種映射向手機開發(fā)人員提供了不必知道實際的實現(xiàn)服務(wù)的便利(luxury)。 并且不需要她關(guān)于每個服務(wù)錯誤修復(fù)重新發(fā)布新的應(yīng)用。元數(shù)據(jù)儲存庫124可以存儲一個 或多個可以由計算設(shè)備(例如,計算設(shè)備102)調(diào)用的可調(diào)用接口 114??烧{(diào)用接口 114可以由 應(yīng)用的用戶(例如,開發(fā)人員)定制,以促進與云服務(wù)112的通信。元數(shù)據(jù)儲存庫124可以存儲 對應(yīng)于可調(diào)用接口的一種或多種配置的元數(shù)據(jù)。元數(shù)據(jù)儲存庫124可被配置為存儲用于實 現(xiàn)一個或多個可調(diào)用接口 114,例如資產(chǎn)接口,的元數(shù)據(jù)??烧{(diào)用接口 114可被實現(xiàn)為在用于 通信的一種格式、協(xié)議或體系架構(gòu)風(fēng)格與用于通信的另一種格式、協(xié)議或體系架構(gòu)風(fēng)格之 間進行翻譯。元數(shù)據(jù)儲存庫124可以由通過認(rèn)證的用戶經(jīng)由外部網(wǎng)絡(luò)可修改。云計算機系統(tǒng) 110可以包括其它數(shù)據(jù)存儲,諸如可以存儲關(guān)于在云服務(wù)112中發(fā)生的處理的診斷信息的診 斷存儲以及可以存儲在系統(tǒng)中的處理期間捕獲的記錄和分析數(shù)據(jù)的分析存儲。
[0057]在一些實施例中,元數(shù)據(jù)儲存庫124可以存儲關(guān)于一個或多個模板執(zhí)行環(huán)境的信 息。該信息可以由用戶通過接口 114配置。關(guān)于模板執(zhí)行環(huán)境的信息可以包括模板標(biāo)識符、 模板類型、模板版本、所支持的服務(wù)/版本、名稱、描述、與模板執(zhí)行環(huán)境相關(guān)的其它屬性,或 它們的組合。
[0058]代表云服務(wù)112,云計算機系統(tǒng)110可以利用其計算資源來促進定制可執(zhí)行指令的 執(zhí)行。計算資源可以關(guān)于與云服務(wù)112的訂戶或租戶關(guān)聯(lián)的特定用戶被分配供使用。資源可 以關(guān)于用戶、設(shè)備、應(yīng)用或與訂戶相關(guān)的其它標(biāo)準(zhǔn)來分配。依賴于移動計算設(shè)備尋求與企業(yè) 計算機系統(tǒng)通信的需求,云服務(wù)112可以被縮小或放大。云服務(wù)112可被配置為使得它是有 彈性的,以處理高于移動計算設(shè)備和企業(yè)計算機系統(tǒng)之間正常流量的浪涌和臨時周期。在 一些實施例中,云服務(wù)112可以包括支持可擴展性的元件,使得組件可以被添加或代替,以 滿足通信中的需求。
[0059] 計算設(shè)備102和計算設(shè)備104可以與云服務(wù)112通信(例如,發(fā)送請求消息)。計算設(shè) 備102可以向云服務(wù)112發(fā)送對由企業(yè)計算機系統(tǒng)和/或云服務(wù)112提供的服務(wù)的請求。計算 設(shè)備104可被實現(xiàn)為向計算設(shè)備104的用戶提供一個或多個用戶接口 106,諸如圖形用戶界 面(GUI)。用戶接口 106可以是向管理員和/或開發(fā)人員提供對云服務(wù)112的訪問的控制臺。 計算設(shè)備104的用戶可以經(jīng)由用戶接口 106操作云服務(wù)112。云服務(wù)112可以利用用戶接口 104配置。在一些實施例中,模板執(zhí)行環(huán)境和/或定制可執(zhí)行指令可以經(jīng)由用戶接口 104被配 置或定義。用戶接口 104可被配置為經(jīng)由接口 114與云服務(wù)進行通信,以配置云服務(wù)112的操 作。
[0060] 計算設(shè)備102(例如,移動計算設(shè)備)和計算設(shè)備104可以利用硬件、固件、軟件或它 們的組合來實現(xiàn)。計算設(shè)備102可以經(jīng)由云服務(wù)112與企業(yè)計算機系統(tǒng)140、150通信。計算設(shè) 備102和計算設(shè)備104可以各自包括或可被實現(xiàn)為端點設(shè)備、個人數(shù)字助理(PDA)、平板計算 機、膝上型計算機、移動計算設(shè)備、臺式計算機、可穿戴計算機、尋呼機,等等。計算設(shè)備102 和計算設(shè)備104可以各自包括一個或多個存儲器存儲設(shè)備和一個或多個處理器。計算設(shè)備 102和計算設(shè)備104可以各自包括不同類型的操作系統(tǒng)。在一些實施例中,云服務(wù)112可以包 括一個或多個運行時環(huán)境(例如,服務(wù)器進程)。運行時環(huán)境可以由云計算機系統(tǒng)110實現(xiàn)。 例如,云計算機系統(tǒng)110可以實現(xiàn)一個或多個虛擬機環(huán)境,例如,Java?虛擬機環(huán)境(JVM), 其對云服務(wù)112充當(dāng)運行時環(huán)境。存儲器存儲設(shè)備可以讓(一個或多個)處理器可訪問并且 可以包括存儲在其上的指令,當(dāng)指令由(一個或多個)處理器執(zhí)行時,使(一個或多個)處理 器實現(xiàn)本文公開的一個或多個操作、方法或過程。存儲器存儲可以作為本地儲存器操作。本 地儲存器可以利用任何類型的持久性存儲設(shè)備來實現(xiàn),諸如存儲器存儲設(shè)備或其它計算機 可讀存儲介質(zhì)。在一些實施例中,本地儲存器可以包括或?qū)崿F(xiàn)一個或多個數(shù)據(jù)庫(例如,文 檔數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫,或其它類型的數(shù)據(jù)庫)、一個或多個數(shù)據(jù)存儲,一個或多個文件存 儲、一個或多個文件系統(tǒng),或它們的組合。本地儲存器可以存儲企業(yè)數(shù)據(jù)。在一些實施例中, 計算設(shè)備102的本地儲存器可以包括可在由云服務(wù)112提供的孩子執(zhí)行環(huán)境134中執(zhí)行的一 個或多個定制可執(zhí)行指令。
[0061] 在各種實施例中,計算設(shè)備102可被配置為執(zhí)行和操作一個或多個應(yīng)用,諸如web 瀏覽器、客戶端應(yīng)用、專有客戶端應(yīng)用,等等。應(yīng)用可以包括被配置為用于由企業(yè)計算機系 統(tǒng)提供的企業(yè)數(shù)據(jù)和/或服務(wù)的特定應(yīng)用??蛻舳藨?yīng)用可以經(jīng)由一個或多個網(wǎng)絡(luò)被訪問或 操作。應(yīng)用可以包括用于操作應(yīng)用的GUI。
[0062] 計算設(shè)備102可以利用無線通信經(jīng)由一個或多個通信網(wǎng)絡(luò)與云服務(wù)112進行通信。 通信網(wǎng)絡(luò)的例子可以包括移動網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、其它 無線通信網(wǎng)絡(luò),或它們的組合。在某些實施例中,計算設(shè)備102可以利用定制通信協(xié)議(例 如,定制協(xié)議)建立與云服務(wù)112的通信連接114??梢酝ㄟ^云計算機系統(tǒng)110與云服務(wù)112建 立連接114。定制協(xié)議可以是基于超文本傳輸協(xié)議(HTTP)的協(xié)議。通過利用定制通信協(xié)議, 計算設(shè)備102可以在任何計算設(shè)備平臺上操作,以便與云計算機系統(tǒng)110進行通信。
[0063] 計算設(shè)備102可以通過一個或多個可調(diào)用接口,例如應(yīng)用編程接口(API),諸如接 口 114,與云計算機系統(tǒng)110進行通信。可調(diào)用接口可以在計算設(shè)備102上實現(xiàn)??梢詾槭箲?yīng) 用能夠與云服務(wù)112通信的那些定制應(yīng)用實現(xiàn)可調(diào)用接口。在一些實施例中,可調(diào)用接口可 以為云服務(wù)112開發(fā)??烧{(diào)用接口可以使應(yīng)用能夠與云服務(wù)112進行通信,而不必適應(yīng)協(xié)議 (例如,通信或開發(fā)協(xié)議)和/或體系架構(gòu)風(fēng)格或格式的差異。
[0064] 云服務(wù)112可以由一個或多個防火墻保護,以便向過程請求和執(zhí)行定制代碼116提 供安全的環(huán)境。計算設(shè)備102和云服務(wù)112之間消息(例如,HTTP消息或REST消息)的傳送可 以符合可以被可調(diào)用接口支持的通信協(xié)議(例如,HTTP或REST)。云計算機系統(tǒng)110和企業(yè)計 算機系統(tǒng)140、150之間的消息傳送可以符合通信協(xié)議(例如,HTTP或REST)。計算設(shè)備102和 企業(yè)計算機系統(tǒng)140、150之間的通信可以經(jīng)由云服務(wù)112是雙向的。
[0065]云計算機系統(tǒng)110還可以通過與企業(yè)計算機系統(tǒng)的通信作為居間計算環(huán)境操作, 企業(yè)計算機系統(tǒng)其中一些可以具有不同的通信協(xié)議。這種通信協(xié)議可以是定制的或特定于 與云計算機系統(tǒng)110通信的應(yīng)用或服務(wù)。另外,云計算機系統(tǒng)110可以與企業(yè)計算機系統(tǒng)通 信,以便根據(jù)企業(yè)計算機系統(tǒng)支持的格式提供企業(yè)服務(wù)和/或交換企業(yè)數(shù)據(jù)。云計算機系統(tǒng) 110可以維護企業(yè)數(shù)據(jù)的本地儲存器(例如,本地高速緩存)并且可以使用本地儲存器來管 理移動計算設(shè)備和企業(yè)計算機系統(tǒng)140、150之間企業(yè)數(shù)據(jù)的同步。
[0066]計算設(shè)備102可以與云服務(wù)112進行通信(例如,發(fā)送請求消息),以便向企業(yè)計算 機系統(tǒng)傳送消息(例如,請求服務(wù))和/或從定制執(zhí)行服務(wù)130請求服務(wù)(例如,執(zhí)行一個或多 個定制可執(zhí)行指令)。通過防火墻接收的請求可以被處理,以確定用于與請求關(guān)聯(lián)的用戶的 安全性認(rèn)證。本文所述的安全性機制可以保護客戶通信和企業(yè)數(shù)據(jù)的完整性。為了防止或 減少受損的通信和/或數(shù)據(jù)被損害,認(rèn)證可以在一開始進行,從而將訪問限制到僅具有所需 憑證的那些人。服務(wù)和服務(wù)調(diào)用流被結(jié)構(gòu)化為使得,當(dāng)請求到達時,它們只能訪問為它們被 授權(quán)的服務(wù)。通過解耦授權(quán)與系統(tǒng)處理的其余部分,授權(quán)"可以由誰來完成什么"的任務(wù)可 以被委派給可以被擴展成支持特定公司客戶所需的任何附加定制安全措施的專用安全性 子系統(tǒng)(例如,身份管理系統(tǒng))。在一些實施例中,安全性認(rèn)證可以為請求、會話、用戶、設(shè)備、 與用戶相關(guān)的其它標(biāo)準(zhǔn)或它們的組合確定。安全性認(rèn)證可以為接收到的每個請求執(zhí)行。在 一些實施例中,認(rèn)證可以基于請求的先前驗證來確定。安全性認(rèn)證可以為用戶或設(shè)備確定, 使得對不同企業(yè)計算機系統(tǒng)140、150的請求可以基于安全性的單次驗證來認(rèn)證。
[0067]云計算機系統(tǒng)110可以包括一個或多個負(fù)載平衡器系統(tǒng)108、實現(xiàn)一個或多個負(fù)載 平衡器系統(tǒng)108和/或與一個或多個負(fù)載平衡器系統(tǒng)108通信。在確定安全性認(rèn)證時,云計算 機系統(tǒng)110可以請求負(fù)載平衡器系統(tǒng)108中的任何一個檢查它接收到的請求并檢測請求針 對的服務(wù)。云服務(wù)112可被配置為具有負(fù)載平衡器系統(tǒng)108并利用開始時的資源被更新,以 便當(dāng)請求到達時,負(fù)載平衡器系統(tǒng)108可以跨不同的資源平衡所請求的負(fù)載。
[0068]云計算機系統(tǒng)110可以包括調(diào)度器118,其可以處理請求并將它們分派到適當(dāng)?shù)姆?務(wù)。請求可以在調(diào)度時被路由到適當(dāng)?shù)姆?wù)。在一些實施例中,服務(wù)本身可以在云服務(wù)112 中或在企業(yè)計算機系統(tǒng)中將一個內(nèi)部請求路由到另一個內(nèi)部服務(wù)。在一些實施例中,調(diào)度 器118可以解析請求,以便基于在請求的統(tǒng)一資源標(biāo)識符(URI)和/或統(tǒng)一資源定位符(URL) 識別出的目的地的位置(例如,地址)確定其目的地。調(diào)度器118可以解析請求及其報頭,以 提取以下信息中的一個或多個:租戶標(biāo)識符、服務(wù)標(biāo)識符、應(yīng)用名稱、應(yīng)用版本、請求資源、 操作和參數(shù),等等。調(diào)度器118可以使用解析出的信息來執(zhí)行元數(shù)據(jù)儲存庫124中的查找。調(diào) 度器118可以為請求檢索對應(yīng)的數(shù)據(jù)。調(diào)度器118可以基于所請求的資源和數(shù)據(jù)中的映射確 定目標(biāo)服務(wù)。雖然最初是非常基本的映射,但是數(shù)據(jù)可以被增強,以提供更復(fù)雜的、基于規(guī) 則的調(diào)度。調(diào)度器118可以執(zhí)行任何特定于調(diào)度的記錄、度量收集,等等。然后,調(diào)度器118可 以根據(jù)應(yīng)用元數(shù)據(jù)執(zhí)行初始授權(quán)。調(diào)度器118可以格式化呼入的請求和任何其它必要的信 息并把該消息放在路由總線120的隊列上,用于進一步處理。一旦消息被放在路由總線120 的隊列上,調(diào)度器118就可以等待對應(yīng)的響應(yīng)。調(diào)度器118可以處理從路由總線120接收到的 響應(yīng)并將響應(yīng)返回到計算設(shè)備102。
[0069]除了處理對外部請求的調(diào)度,調(diào)度器118還可以在調(diào)度內(nèi)部請求時起作用。這種內(nèi) 部請求可以以復(fù)合服務(wù)或用于服務(wù)的定制可執(zhí)行指令的形式進入。在這兩種情況下,主叫 方都可以使用如在應(yīng)用中定義的邏輯服務(wù)名稱。調(diào)度器118可以使用當(dāng)前執(zhí)行上下文來確 定該應(yīng)用并使用那個邏輯名來確定要調(diào)用的適當(dāng)服務(wù)。
[0070]云計算機系統(tǒng)110可以包括路由總線120,以管理消息到向路由總線120注冊的目 的地的遞送。路由總線120可以作為用于管理云服務(wù)112中的通信的中央系統(tǒng)操作。通過路 由總線120傳送的數(shù)據(jù)可以被處理,以捕獲并存儲數(shù)據(jù)。路由總線120可以提供框架,使得附 加的集中式服務(wù)(附加的授權(quán)、調(diào)試,等等)可以容易地根據(jù)需要被插入。由路由總線120捕 獲的數(shù)據(jù)可被存儲在診斷存儲126和/或分析存儲128中。
[0071 ]路由總線120可以將消息路由到一個或多個目的地。消息可以包括針對由云服務(wù) 112提供的一個或多個服務(wù)126的請求。消息可以為了傳送到一個或多個企業(yè)計算機系統(tǒng) 140、150而被接收。云服務(wù)可以提供服務(wù)126,諸如對象存儲服務(wù)、數(shù)據(jù)庫服務(wù)、通知服務(wù)、 web服務(wù)、社交服務(wù)、資源服務(wù)、定制執(zhí)行服務(wù)130,或它們的組合。路由總線120可以處理請 求,以確定其目的地。針對企業(yè)計算機系統(tǒng)中的消息可被傳遞到基于消息中的信息確定的 目的地企業(yè)計算機系統(tǒng)。路由總線120可以請求136適配器接口 122如果必要的話就執(zhí)行翻 譯,以便將請求傳遞到企業(yè)計算機系統(tǒng),例如,企業(yè)計算機系統(tǒng)140或企業(yè)計算機系統(tǒng)150。 路由總線120可以將包括請求的消息傳遞到基于消息中所包括的信息確定的一個或多個服 務(wù)126、130。
[0072]在某些實施例中,云計算機系統(tǒng)110可以包括或?qū)崿F(xiàn)適配器接口 122,以便將消息 翻譯或轉(zhuǎn)換成由接收企業(yè)計算機系統(tǒng)支持的協(xié)議。適配器接口 122可以與每個企業(yè)計算機 系統(tǒng)140、150建立單獨的通信連接。云計算機系統(tǒng)110可被配置為經(jīng)由一個或多個網(wǎng)絡(luò)(未 示出)與企業(yè)計算機系統(tǒng)140、150進行通信。通信網(wǎng)絡(luò)的例子可以包括互聯(lián)網(wǎng)、移動網(wǎng)絡(luò)、公 共網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、其它通信網(wǎng)絡(luò),或它們的組合。在 某些實施例中,通信連接可以是利用高速通信干線促進的高速通信連接。與企業(yè)計算機系 統(tǒng)140、150的通信可以穿過防火墻,這確保與外部網(wǎng)絡(luò)的通信是安全的,以防止經(jīng)由這種通 信對云服務(wù)112的未授權(quán)訪問。
[0073]由云服務(wù)112提供的一個服務(wù)126可以包括可以為BLOB提供存儲設(shè)施的對象存儲 服務(wù)。存儲的基本單元可以是文本,具有讀和寫操作。還可以提供用于JSON對象的基本查詢 設(shè)施。
[0074]由云服務(wù)112提供的另一個服務(wù)126可以包括數(shù)據(jù)庫服務(wù),以允許到托管的數(shù)據(jù)庫 的連接,用于執(zhí)行查詢或?qū)懭搿K璧膮?shù)化可能需要用于數(shù)據(jù)庫的完整連接串、SQL串或 者所存儲的要執(zhí)行的過程、任何參數(shù)和可能的憑證。必要的信息可以在運行時提供或者在 應(yīng)用元數(shù)據(jù)中被預(yù)先配置。
[0075]由云服務(wù)112提供的另一個服務(wù)126可以包括社交服務(wù),這可以提供與許多流行的 社交網(wǎng)站,諸如Facebook?、Twitter?等,的基本整合。社交服務(wù)可以允許利用來自 那些站點的用戶憑證的第三方認(rèn)證以及對它們的服務(wù)的訪問。例子包括發(fā)送推文或更新您 的狀態(tài)。
[0076]由云服務(wù)112提供的另一個服務(wù)126可以包括公共云服務(wù),以便使用戶能夠簡化和 優(yōu)化通信。例如,服務(wù)開發(fā)人員可以使用云服務(wù)112的通用Web服務(wù)向利用云計算機系統(tǒng)110 的云服務(wù)托管的資源講話。
[0077] 定制執(zhí)行服務(wù)130可以建立一個或多個定制執(zhí)行環(huán)境,例如,孩子執(zhí)行環(huán)境134,以 執(zhí)行定制可執(zhí)行指令。定制可執(zhí)行指令可以在來自計算設(shè)備102的消息中被接收和/或從云 計算機系統(tǒng)110可訪問的數(shù)據(jù)存儲,例如,元數(shù)據(jù)儲存庫124,檢索。孩子執(zhí)行環(huán)境134可以基 于模板執(zhí)行環(huán)境132建立。云服務(wù)112可在元數(shù)據(jù)儲存庫124中管理關(guān)于一個或多個模板執(zhí) 行環(huán)境132的信息。模板執(zhí)行環(huán)境132可以是特定于代碼的虛擬機環(huán)境,例如,JVM環(huán)境。孩子 執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境來建立。孩子執(zhí)行環(huán)境可以包括或?qū)崿F(xiàn)孩子特定于代碼的 虛擬機環(huán)境,例如,孩子JVM環(huán)境。照此,孩子執(zhí)行環(huán)境134可以包括從模板執(zhí)行環(huán)境132拷 貝、繼承和/或得出的信息(例如,設(shè)置、屬性、變量、狀態(tài),等等)?;谀0鍒?zhí)行環(huán)境132建立 的孩子執(zhí)行環(huán)境134的例子參照圖2和3來描述。
[0078] 定制執(zhí)行服務(wù)130可以實現(xiàn)一個或多個操作,以處理執(zhí)行定制可執(zhí)行指令的請求。 一個這種操作可以包括確定定制可執(zhí)行指令。定制可執(zhí)行指令可以由請求識別或者可以被 包括在請求中。
[0079] 由定制執(zhí)行服務(wù)130執(zhí)行的另一個這種操作可以包括確定從其建立孩子執(zhí)行環(huán)境 的模板執(zhí)行環(huán)境132。模板執(zhí)行環(huán)境可以基于一個或多個標(biāo)準(zhǔn)來選擇,諸如定制可執(zhí)行指令 的類型、用于定制可執(zhí)行指令的執(zhí)行的一個或多個資源、與定制可執(zhí)行指令關(guān)聯(lián)的語言的 類型、與定制可執(zhí)行指令的執(zhí)行相關(guān)的其它標(biāo)準(zhǔn),或它們的組合。選定的模板執(zhí)行環(huán)境可以 在接收執(zhí)行定制執(zhí)行指令的請求之前、之后或同時執(zhí)行。如上面所解釋的,模板執(zhí)行環(huán)境 132可以由用戶,諸如通過計算設(shè)備104,配置。
[0080] 為了建立孩子執(zhí)行環(huán)境,定制執(zhí)行服務(wù)130可以執(zhí)行一個或多個操作。建立孩子執(zhí) 行環(huán)境的操作可以包括發(fā)出命令(例如,f〇rk()命令)或指令,這使得孩子執(zhí)行環(huán)境基于選 定的模板執(zhí)行環(huán)境被建立(例如,產(chǎn)生)。一個或多個定制可執(zhí)行指令可以被加載,用于在孩 子執(zhí)行環(huán)境中執(zhí)行。定制可執(zhí)行指令可以在孩子執(zhí)行環(huán)境被建立之前加載,以進一步改進 指令執(zhí)行的處理時間。孩子執(zhí)行環(huán)境可被配置為調(diào)整孩子執(zhí)行環(huán)境的環(huán)境。該環(huán)境可以包 括設(shè)置和/或訪問許可。例如,訪問許可可以被剝離或更改,以配置對在環(huán)境中執(zhí)行的指令 的訪問許可。一旦配置好,定制可執(zhí)行指令就可以在孩子執(zhí)行環(huán)境中執(zhí)行。
[0081] 當(dāng)定制可執(zhí)行指令在孩子執(zhí)行環(huán)境134中執(zhí)行時,結(jié)果可以由孩子執(zhí)行環(huán)境134產(chǎn) 生。結(jié)果可以被提供給定制執(zhí)行服務(wù)130。定制執(zhí)行服務(wù)130可以基于該結(jié)果執(zhí)行一個或多 個操作。結(jié)果可以包括指示執(zhí)行定制可執(zhí)行指令的結(jié)果的代碼或值。如果沒有被成功執(zhí)行, 則定制執(zhí)行服務(wù)130可以重新執(zhí)行定制執(zhí)行指令?;诮Y(jié)果,定制執(zhí)行服務(wù)130可以在路由 總線120的隊列上放置消息(例如,響應(yīng)),以便遞送到計算設(shè)備,例如請求定制可執(zhí)行指令 的執(zhí)行的計算設(shè)備。消息可以包括指示結(jié)果的信息。
[0082] 在一些實施例中,模板執(zhí)行環(huán)境132和/或孩子執(zhí)行環(huán)境134可以訪問可從云計算 機系統(tǒng)110獲得的資源(例如,元數(shù)據(jù)儲存庫124)或服務(wù)126、130。例如,這種資源可以包括 由云計算機系統(tǒng)存儲的信息或數(shù)據(jù)??梢岳靡粋€或多個可調(diào)用接口和/或庫(例如,SDK 136或SDK 138)獲得訪問,這些接口和庫可以包括在環(huán)境中或者可以被環(huán)境用來訪問資源 或服務(wù)。例如,SDK 136或SDK 138可以分別被模板執(zhí)行環(huán)境132或孩子執(zhí)行環(huán)境134調(diào)用,以 調(diào)用由云計算機系統(tǒng)110提供的服務(wù)。
[0083]在一些實施例中,云計算機系統(tǒng)110可以促進向計算設(shè)備102的用戶的通知。云計 算機系統(tǒng)110可以包括支持與用戶的有狀態(tài)交互的警報管理服務(wù),例如,基于用戶偏好通過 一個或多個信道遞送警報、等待響應(yīng),以及基于響應(yīng)采取行動。對于在一個信道上發(fā)送的警 報的響應(yīng)可以通過另一個信道被接收,服務(wù)需要該另一個信道而能夠處理該響應(yīng)。平臺可 以附帶內(nèi)置的狀態(tài)模型,用于流行的交互模式,并且利用新的狀態(tài)模型可擴展。一些警報信 道可以包括眾所周知的通信資源,無論是單向或者是雙向。例子包括sms、Twitter⑧、推 送通知,和谷歌云Messaging? *
[0084] 云計算機系統(tǒng),諸如本文所描述的云計算機系統(tǒng),可以向它的用戶提供許多技術(shù) 優(yōu)點和益處。一個技術(shù)優(yōu)點可以包括使移動計算設(shè)備(例如,移動電話)的用戶能夠在安全 的執(zhí)行環(huán)境(例如,沙箱容器)中,諸如在云計算機系統(tǒng)中,執(zhí)行定制代碼,其可以提供支持 代碼執(zhí)行的必要的計算資源。另一個技術(shù)優(yōu)點可以是,執(zhí)行定制代碼的安全執(zhí)行環(huán)境還可 以使得定制代碼能夠與不同的用戶(例如,訂戶或租戶)單獨且獨立地執(zhí)行。還有另一個技 術(shù)優(yōu)點可以是,安全執(zhí)行環(huán)境可以利用模板可定制,模板可以使執(zhí)行環(huán)境的多個實例被建 立,以便并發(fā)地執(zhí)行定制代碼。模板可被配置為運行不同類型的定制代碼或操作。通過為定 制代碼的執(zhí)行提供安全的環(huán)境定制,用戶、管理員和開發(fā)人員可以在不干擾或影響其它執(zhí) 行環(huán)境的操作的情況下執(zhí)行不同類型的定制代碼。還有另一個技術(shù)優(yōu)點可以包括改進用于 定制代碼的執(zhí)行的處理效率,因為模板環(huán)境可以減少配置和建立定制執(zhí)行環(huán)境的時間并且 可以使不同的定制代碼能夠執(zhí)行,而不依賴于另一個環(huán)境的資源。通過建立定制執(zhí)行環(huán)境, 可以防止定制代碼耗費用于代碼執(zhí)行的太多資源并且可以防止定制代碼產(chǎn)生可以使得能 夠?qū)υ朴嬎銠C系統(tǒng)中的未授權(quán)資源進行訪問的附加的過程或環(huán)境。
[0085] 現(xiàn)在轉(zhuǎn)向圖2,示出了根據(jù)本發(fā)明的一些實施例、可以為了定制可執(zhí)行指令的執(zhí)行 而提供對定制執(zhí)行環(huán)境的訪問的計算機系統(tǒng)200的框圖。計算機系統(tǒng)200可以包括云計算機 系統(tǒng)110。在某些實施例中,云計算機系統(tǒng)110可被實現(xiàn)為被配置為為了促進計算設(shè)備(例 如,移動計算設(shè)備202和移動計算設(shè)備212)與企業(yè)計算機系統(tǒng)(例如,企業(yè)計算機系統(tǒng)282和 企業(yè)計算機系統(tǒng)292)之間的通信而執(zhí)行各種操作的一個或多個功能塊或模塊設(shè)備。云計算 機系統(tǒng)110可以包括通信模塊230、可調(diào)用接口 250、定制執(zhí)行服務(wù)130、調(diào)度器118、路由總線 120,以及協(xié)議翻譯器252。
[0086]云計算機系統(tǒng)110可以包括一個或多個存儲器存儲設(shè)備("本地儲存器")。存儲器 存儲設(shè)備可以作為本地儲存器操作。本地儲存器可以利用任何類型的持久性存儲設(shè)備,諸 如存儲器存儲設(shè)備或其它計算機可讀存儲介質(zhì),來實現(xiàn)。在一些實施例中,本地儲存器可以 包括或?qū)崿F(xiàn)一個或多個數(shù)據(jù)庫(例如,文檔數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫,或其它類型的數(shù)據(jù)庫)、一 個或多個文件存儲、一個或多個文件系統(tǒng),或它們的組合。本地儲存器可以存儲企業(yè)數(shù)據(jù)。 在一些實施例中,云計算機系統(tǒng)110可以包括高速緩存220,其可被用作本地儲存器來存儲 企業(yè)數(shù)據(jù)224和一條或多條定制可執(zhí)行指令222。企業(yè)數(shù)據(jù)224可以從企業(yè)計算機系統(tǒng)282、 292或者從移動計算設(shè)備202、212接收,或者可以包括由云計算機系統(tǒng)110轉(zhuǎn)換的企業(yè)數(shù)據(jù), 或它們的組合。一條或多條定制可執(zhí)行指令222可被存儲在高速緩存220中。在一些實施例 中,云計算機系統(tǒng)110可以訪問充當(dāng)用于云計算機系統(tǒng)110的本地儲存器的一個或多個數(shù)據(jù) 庫294。數(shù)據(jù)庫294可以具有更大的存儲容量并且可以管理其儲存器中的數(shù)據(jù)。數(shù)據(jù)庫294可 以存儲(一條或多條)定制可執(zhí)行指令222,這些指令可以在從數(shù)據(jù)庫294中檢索出時被加載 到高速緩存220中。數(shù)據(jù)庫294和/或高速緩存222可以存儲對應(yīng)于一個或多個模板執(zhí)行環(huán)境 的信息。在一些實施例中,數(shù)據(jù)庫294可以包括或?qū)崿F(xiàn)元數(shù)據(jù)儲存庫124。
[0087]通信模塊230可被配置為管理云計算機系統(tǒng)110和多個企業(yè)的計算機系統(tǒng),例如, 企業(yè)計算機系統(tǒng)282、292,之間的通信。通信模塊230可被配置為管理云計算機系統(tǒng)110和一 個或多個計算設(shè)備,例如,移動計算設(shè)備202和移動計算設(shè)備212,之間的通信。為了促進通 信,通信模塊230可以配備有啟用通信的硬件,諸如接收器232和發(fā)送器234,或它們的組合。 [0088] 企業(yè)計算機系統(tǒng),諸如企業(yè)計算機系統(tǒng)282、292,可以物理地位于與云計算機系統(tǒng) 110不同的地理位置(例如,遠(yuǎn)程地理位置),在一些實施例中,企業(yè)計算機系統(tǒng)282可以與企 業(yè)計算機系統(tǒng)292不同。在一些實施例中,企業(yè)計算機系統(tǒng)282和企業(yè)計算機系統(tǒng)292可以是 單個計算系統(tǒng)的一部分。企業(yè)計算機系統(tǒng)282、292當(dāng)中每一個可以利用不同的通信協(xié)議與 云計算機系統(tǒng)110通信。在一些實施例中,企業(yè)計算機系統(tǒng)282和/或企業(yè)計算機系統(tǒng)292可 被實現(xiàn)為企業(yè)計算機系統(tǒng)150,其可以包括代理系統(tǒng),以處理與多個企業(yè)計算機系統(tǒng)的通 {目。
[0089] 在某些實施例中,企業(yè)計算機系統(tǒng)282、292當(dāng)中一個或多個可以利用基于HTTP的 協(xié)議與云計算機系統(tǒng)110進行通信。在一些實施例中,企業(yè)計算機系統(tǒng)282、292可以利用 REST或SOAP通信協(xié)議與云計算機系統(tǒng)110進行通信。例如,REST協(xié)議可以支持包括URI或URL 的格式。為了利用REST協(xié)議進行通信而格式化的企業(yè)數(shù)據(jù)可以容易地被轉(zhuǎn)換成諸如JS0N、 逗號隔開的值(CSV)和真正簡單的整合(RSS)之類的數(shù)據(jù)格式。企業(yè)計算機系統(tǒng)282、292和 云計算機系統(tǒng)110可以利用其它協(xié)議,諸如遠(yuǎn)程過程調(diào)用(RPC)(例如,XML RPC)進行通信。
[0090] 在一些實施例中,云計算機系統(tǒng)110和企業(yè)計算機系統(tǒng)282、292可以利用支持高速 通信的通信連接進行通信。通信模塊230可以維持高速通信連接,這可以使云計算機系統(tǒng) 110能夠維持與企業(yè)計算機系統(tǒng)282、292的持續(xù)的多個通信,用于管理和/或同步通信,以交 換企業(yè)數(shù)據(jù)或遞送所請求的服務(wù)。高速通信連接可以為云計算機系統(tǒng)110提供處理與企業(yè) 計算機系統(tǒng)的多個通信以完全同步企業(yè)數(shù)據(jù)的能力,而移動計算設(shè)備可以在無線通信連接 的帶寬中受限制來不斷地接收企業(yè)數(shù)據(jù)。云計算機系統(tǒng)Iio和企業(yè)計算機系統(tǒng)之間的通信 連接可以是可靠的,使得云計算機系統(tǒng)Iio可以接收和發(fā)送通信,以便以很少或沒有中斷地 同步企業(yè)數(shù)據(jù)。
[0091]在一些實施例中,通信模塊230可以包括被配置為支持與企業(yè)的計算機系統(tǒng)的通 信的適配器接口 122,其中一些可以支持用于通信的不同協(xié)議或技術(shù)。適配器接口 122可以 包括一個或多個適配器,例如,適配器242或適配器244,其每一個可被配置為根據(jù)通信協(xié) 議、企業(yè)計算機系統(tǒng)的類型、應(yīng)用的類型、服務(wù)類型,或它們的組合進行通信。適配器支持的 通信協(xié)議可以特定于一個或多個企業(yè)計算機系統(tǒng)。例如,通信模塊230可以包括被配置為用 于利用由企業(yè)計算機系統(tǒng)282支持的特定協(xié)議與企業(yè)計算機系統(tǒng)282進行通信的適配器 242。在另一個例子中,通信模塊230可以包括被配置為用于利用由企業(yè)計算機系統(tǒng)292支持 的特定協(xié)議與企業(yè)計算機系統(tǒng)292進行通信的適配器244。適配器接口 122可以與企業(yè)計算 機系統(tǒng)282、292當(dāng)中每一個建立單獨的通信連接。在一些實施例中,適配器接口 122可被配 置為與可以包括在企業(yè)計算機系統(tǒng)中或由企業(yè)計算機系統(tǒng)實現(xiàn)的代理系統(tǒng)進行通信。適配 器接口 122中的適配器可被配置為根據(jù)用于與代理系統(tǒng)通信的定制協(xié)議進行通信。定制協(xié) 議可以特定于代理系統(tǒng)的類型或者其中代理系統(tǒng)支持的企業(yè)計算機系統(tǒng)。適配器接口可以 減少或消除對具體地為了支持與特定企業(yè)計算機系統(tǒng)的通信而被開發(fā)的應(yīng)用,例如應(yīng)用 204或應(yīng)用214,的需求。
[0092]云計算機系統(tǒng)110可以使用通信模塊230與移動計算設(shè)備,例如移動計算設(shè)備202、 212,進行通信。移動計算設(shè)備可以位于與云計算機系統(tǒng)110不同的地理位置。例如,移動計 算設(shè)備202、212可以物理地位于處于與云計算機系統(tǒng)110不同地理位置(例如,遠(yuǎn)程地理位 置)處的云計算機系統(tǒng)110的防火墻(例如,防火墻104)之外。移動計算設(shè)備202、212當(dāng)中每 一個可以利用不同的通信協(xié)議與云計算機系統(tǒng)110通信。在某些實施例中,移動計算設(shè)備 202、212當(dāng)中一個或多個可以利用基于HTTP的通信協(xié)議與云計算機系統(tǒng)110進行通信。在一 些實施例中,通信模塊230可以利用定制的通信協(xié)議與移動計算設(shè)備進行通信。定制通信協(xié) 議可以是基于HTTP的通信協(xié)議。用于移動計算設(shè)備202、212之間的通信的通信協(xié)議可以支 持以不同格式(例如,JSON格式)結(jié)構(gòu)化的企業(yè)數(shù)據(jù)的通信,所述格式可以是移動計算設(shè)備 202、212和云計算機系統(tǒng)110易讀的。
[0093]在某些實施例中,移動計算設(shè)備202、212可以各自實現(xiàn)可以提供特定的用戶接口 以便與云計算機系統(tǒng)110進行通信的應(yīng)用("app")。特定的UI可被配置為利用特定的通信協(xié) 議進行通信。在一些實施例中,特定的UI可以包括可被調(diào)用以便與云計算機系統(tǒng)110進行通 信的可調(diào)用接口、函數(shù)、例程、方法和/或操作。特定的UI可以接受用于為了企業(yè)數(shù)據(jù)和/或 請求服務(wù)而與企業(yè)計算機系統(tǒng)進行通信的參數(shù)作為輸入。對服務(wù)的請求可以包括對執(zhí)行一 條或多條定制可執(zhí)行指令,例如(一條或多條)定制可執(zhí)行指令222,的請求。在一些實施例 中,通過應(yīng)用204、214的通信可被轉(zhuǎn)換為利用定制通信協(xié)議的通信。應(yīng)用204、214可被配置 為處理從云計算機系統(tǒng)110接收的數(shù)據(jù)。數(shù)據(jù)可以包括指示執(zhí)行一條或多條定制可執(zhí)行指 令的結(jié)果的響應(yīng)。在某些實施例中,特定的UI可以包括在云計算機系統(tǒng)110中或由其實現(xiàn)。 在一些實施例中,特定的UI可以對應(yīng)于應(yīng)用中的定制客戶端。
[0094] 云計算機系統(tǒng)110可以包括一個或多個可調(diào)用接口 2 5 0,例如,應(yīng)用編程接口 (API)??烧{(diào)用接口 250可以使移動計算設(shè)備上的應(yīng)用能夠向云服務(wù)112傳送請求??烧{(diào)用接 口250可以支持公共或標(biāo)準(zhǔn)接口,其可以允許包括它們的參數(shù)的請求根據(jù)標(biāo)準(zhǔn)化協(xié)議、體系 架構(gòu)風(fēng)格和/或格式(例如,REST協(xié)議)從應(yīng)用被接收??烧{(diào)用接口 250可以是由計算設(shè)備 202、212當(dāng)中任何一個的用戶可配置的??烧{(diào)用接口 250可以根據(jù)通信協(xié)議接收對服務(wù)的請 求。例如,可調(diào)用接口 250可以是支持根據(jù)REST協(xié)議的請求的REST API。在一些實施例中,可 調(diào)用接口 250可以從移動計算設(shè)備接收消息??烧{(diào)用接口 250可被配置為根據(jù)由可調(diào)用接口 250支持的格式翻譯或轉(zhuǎn)換從移動計算設(shè)備接收到的消息。設(shè)備應(yīng)用開發(fā)人員可以連接到 用于其定制應(yīng)用的云服務(wù)112。在一些實施例中,可調(diào)用接口250可以由開發(fā)應(yīng)用的同一個 人配置,使得該人可以實現(xiàn)與云服務(wù)112進行通信的定制應(yīng)用。
[0095]可調(diào)用接口 250可以使企業(yè)計算機系統(tǒng)能夠根據(jù)標(biāo)準(zhǔn)化的協(xié)議或格式與云服務(wù) 112進行通信。類似于應(yīng)用開發(fā)人員,管理企業(yè)計算機系統(tǒng)的人可以實現(xiàn)被配置為經(jīng)由可調(diào) 用接口 250與云服務(wù)112進行通信的代碼(例如,代理系統(tǒng))??烧{(diào)用接口 250可以基于計算設(shè) 備的類型、企業(yè)計算機系統(tǒng)的類型、應(yīng)用、代理系統(tǒng)、服務(wù)、協(xié)議、定制可執(zhí)行指令的類型、其 它標(biāo)準(zhǔn)或它們的組合來實現(xiàn)。在一些實施例中,可調(diào)用接口 250可以支持對服務(wù)的請求,其 中服務(wù)包括認(rèn)證、壓縮、加密、利用游標(biāo)的分頁、基于客戶端的限制、不可否認(rèn)性、記錄以及 度量收集。在一些實施例中,可調(diào)用接口 250可以為定制業(yè)務(wù)相關(guān)的服務(wù)實現(xiàn),其中服務(wù)諸 如認(rèn)證、策略執(zhí)行、響應(yīng)的高速緩存、對云服務(wù)112的調(diào)用的限制、異步和同步模式之間的轉(zhuǎn) 換、對底層服務(wù)的呼叫的記錄,或它們的組合。在一些實施例中,可調(diào)用接口250可以使用戶 能夠提供用于由云計算機系統(tǒng)110實現(xiàn)的(一條或多條)定制可執(zhí)行指令。定制可執(zhí)行指令 可以為云計算機系統(tǒng)110實現(xiàn)一個或多個可以使用戶能夠訪問定制服務(wù)的可調(diào)用接口 250。 [0096]在一些實施例中,可調(diào)用接口 250可以包括資產(chǎn)接口(例如,資產(chǎn)目錄庫),其可以 使得能夠訪問數(shù)據(jù)庫294。對數(shù)據(jù)庫294的訪問可以包括對元數(shù)據(jù)儲存庫124的訪問。云計算 機系統(tǒng)或外部計算設(shè)備,例如移動計算設(shè)備202或移動計算設(shè)備212,的任何元件可以經(jīng)由 資產(chǎn)接口訪問元數(shù)據(jù)儲存庫124。例如,開發(fā)人員或管理員可以利用應(yīng)用或用戶接口訪問數(shù) 據(jù)庫294中的信息。在一些實施例中,調(diào)度器118可以利用可調(diào)用接口 250訪問數(shù)據(jù)庫294,以 確定對請求被調(diào)用的服務(wù)(例如,定制執(zhí)行服務(wù)130)。
[0097]協(xié)議翻譯器252可以處理消息,以確定用于消息的通信協(xié)議和/或?qū)⑾⑥D(zhuǎn)換成用 于目的地的通信協(xié)議。目的地可以包括一個或多個企業(yè)計算機系統(tǒng)282、292和/或定制執(zhí)行 服務(wù)130。協(xié)議翻譯器252可以轉(zhuǎn)換從移動計算設(shè)備202、212當(dāng)中一個接收到的請求。請求可 以從由移動計算設(shè)備202或移動計算設(shè)備212支持的通信協(xié)議的格式轉(zhuǎn)換成由企業(yè)計算機 系統(tǒng)282或企業(yè)計算機系統(tǒng)292支持的通信協(xié)議的格式。協(xié)議翻譯器252可以轉(zhuǎn)換從企業(yè)計 算機系統(tǒng)282、292接收到的響應(yīng)。響應(yīng)可以從由企業(yè)計算機系統(tǒng)282或企業(yè)計算機系統(tǒng)292 支持的通信協(xié)議的格式轉(zhuǎn)換成由移動計算設(shè)備202或移動計算設(shè)備212支持的通信協(xié)議的 格式。在一些實施例中,由協(xié)議翻譯器252執(zhí)行的操作的全部或一些可以在可調(diào)用接口 250 和/或適配器接口 222中實現(xiàn)。
[0098]定制執(zhí)行服務(wù)130可以啟用一條或多條定制可執(zhí)行指令(例如,(一條或多條)定制 可執(zhí)行指令222)在定制可執(zhí)行環(huán)境(例如,孩子執(zhí)行環(huán)境)中的執(zhí)行。定制執(zhí)行服務(wù)130可以 處理執(zhí)行定制可執(zhí)行指令的請求。請求可以被處理,以確定定制可執(zhí)行環(huán)境的類型,來執(zhí)行 定制可執(zhí)行指令并,基于定制可執(zhí)行環(huán)境的類型,建立一個或多個定制執(zhí)行環(huán)境,以執(zhí)行定 制可執(zhí)行指令。定制執(zhí)行服務(wù)130可被實現(xiàn)為一個或多個被配置為執(zhí)行認(rèn)證請求的安全性 的各種操作的功能塊或模塊。定制執(zhí)行服務(wù)130可以包括執(zhí)行環(huán)境管理器272、配置管理器 274、許可管理器276、指令加載器278、請求處理器280,以及模板環(huán)境選擇器282。
[0099]如前面所解釋的,模板執(zhí)行環(huán)境可以由用戶配置。用戶可以與移動計算設(shè)備202、 212當(dāng)中的一個或多個關(guān)聯(lián)。定義和/或配置模板執(zhí)行環(huán)境的一個或多個標(biāo)準(zhǔn)可以經(jīng)由可調(diào) 用接口 250接收。配置管理器274可以管理模板執(zhí)行環(huán)境的配置。配置管理器274可以接收經(jīng) 由可調(diào)用接口 250配置模板執(zhí)行環(huán)境的一個或多個標(biāo)準(zhǔn)。這一個或多個標(biāo)準(zhǔn)可以存儲在數(shù) 據(jù)庫294中。配置管理器274可以基于一個或多個標(biāo)準(zhǔn)識別模板執(zhí)行環(huán)境。模板執(zhí)行環(huán)境可 以通過利用一個或多個標(biāo)準(zhǔn)搜索數(shù)據(jù)庫294來識別。
[0100]請求處理機(handler)280可以管理接收到的請求,以執(zhí)行定制可執(zhí)行指令。請求 處理機280可以處理請求以確定執(zhí)行定制可執(zhí)行指令要調(diào)用的模板執(zhí)行環(huán)境。請求可以包 括所請求的服務(wù)的類型、執(zhí)行環(huán)境的類型、識別一條或多條定制可執(zhí)行指令的信息、識別定 制可執(zhí)行指令的其它標(biāo)準(zhǔn),或它們的組合。請求可以被處理,以確定識別定制可執(zhí)行指令的 源的信息。在一些實施例中,請求可以被處理,以識別要在定制執(zhí)行環(huán)境中執(zhí)行的一條或多 條定制可執(zhí)行指令。從請求解析出的信息可以被模板環(huán)境選擇器282用來選擇一個或多個 模板執(zhí)行環(huán)境,以執(zhí)行定制可執(zhí)行指令。
[0101]在定制可執(zhí)行指令執(zhí)行時,請求處理機280可以管理從孩子執(zhí)行環(huán)境接收到的響 應(yīng)。響應(yīng)可以被處理,以確定要在孩子執(zhí)行環(huán)境中執(zhí)行的一條或多條定制可執(zhí)行指令。孩子 執(zhí)行環(huán)境可以是已被建立的環(huán)境。結(jié)果可以被處理,以確定指示用于定制可執(zhí)行指令的執(zhí) 行的結(jié)果的結(jié)果或條件代碼。結(jié)果可以包括作為定制可執(zhí)行指令的執(zhí)行的結(jié)果而生成的其 它信息。請求處理機280可以確定基于從結(jié)果確定的信息要執(zhí)行的后續(xù)操作(例如,發(fā)送請 求)。在結(jié)果指示定制可執(zhí)行指令未被處理或遇到錯誤的情況下,請求處理機280可以發(fā)起 相同的定制可執(zhí)行指令的執(zhí)行。在結(jié)果指示定制可執(zhí)行指令被執(zhí)行的情況下,請求處理機 280可以在路由總線120的隊列上放置要發(fā)送到發(fā)出請求的計算設(shè)備的消息(例如,響應(yīng))。 消息可以包括指示從孩子執(zhí)行環(huán)境接收到的響應(yīng)確定的結(jié)果的信息。在結(jié)果指示要執(zhí)行另 一定制可執(zhí)行指令的請求的情況下,請求處理機280可以生成請求執(zhí)行所請求的定制可執(zhí) 行指令的請求(例如,在路由總線120的隊列上放置請求)。
[0102] 模板環(huán)境選擇器282可以確定要用來建立孩子執(zhí)行環(huán)境的模板執(zhí)行環(huán)境。在一些 實施例中,云計算機系統(tǒng)110可以存儲或訪問包括關(guān)于一個或多個模板執(zhí)行環(huán)境的信息的 數(shù)據(jù)存儲。模板執(zhí)行環(huán)境可以缺省地或基于一個或多個標(biāo)準(zhǔn)來選擇。一個或多個標(biāo)準(zhǔn)可以 包括定制可執(zhí)行指令的類型、執(zhí)行定制可執(zhí)行指令所需的一個或多個資源、用于定制可執(zhí) 行指令的執(zhí)行的安全性的類型、要執(zhí)行的服務(wù)的類型、用戶的類型、與定制可執(zhí)行指令的執(zhí) 行相關(guān)的其它標(biāo)準(zhǔn),或它們的組合。模板執(zhí)行環(huán)境的一個或多個屬性可以被處理,以選擇模 板執(zhí)行環(huán)境。
[0103] 基于選定的模板執(zhí)行環(huán)境,執(zhí)行環(huán)境管理器272可以建立孩子執(zhí)行環(huán)境。執(zhí)行環(huán)境 管理器272可以執(zhí)行模板執(zhí)行環(huán)境。模板執(zhí)行環(huán)境可以在請求被接收之前、或者與接收請求 并發(fā)地或者在接收請求之后被執(zhí)行,以執(zhí)行定制可執(zhí)行指令。孩子執(zhí)行環(huán)境可以利用模板 執(zhí)行環(huán)境來建立。建立孩子執(zhí)行環(huán)境在下面參照圖3進行描述。
[0104] 指令加載器278可以加載所請求的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中 執(zhí)行。如以上所解釋的,定制可執(zhí)行指令可以之前準(zhǔn)備好并存儲在云計算機系統(tǒng)110可訪問 的數(shù)據(jù)存儲中。在一些實施例中,為了提高效率,定制可執(zhí)行指令可以在不同的時間加載, 諸如在請求被接收之前或者在孩子執(zhí)行環(huán)境已被建立之前。這樣做可以提供提高事先加載 定制可執(zhí)行指令從而減少在請求這樣做時執(zhí)行指令的時間的處理效率的技術(shù)優(yōu)點。定制可 執(zhí)行指令可以更早加載,因為它可能是被更頻繁調(diào)用的指令。
[0105] 許可管理器276可以管理用于孩子執(zhí)行環(huán)境的許可。許可管理器276可以配置對于 孩子執(zhí)行環(huán)境的訪問許可。訪問許可可以基于與用來建立孩子執(zhí)行環(huán)境的模板執(zhí)行環(huán)境關(guān) 聯(lián)存儲的信息來確定。孩子執(zhí)行環(huán)境的訪問許可可以在定制可執(zhí)行指令的執(zhí)行之前為孩子 執(zhí)行環(huán)境配置。訪問許可可以基于安全模型(例如,Java?安全模型)來配置。安全模型可 以是可配置的并且與模板執(zhí)行環(huán)境關(guān)聯(lián)地存儲。安全模型可以定義與對于孩子執(zhí)行環(huán)境的 訪問許可相關(guān)的屬性和參數(shù)。許可管理器276可以處理安全模型的配置并且可以使用安全 模型來配置對于孩子執(zhí)行環(huán)境的訪問許可。
[0106] 圖3示出了根據(jù)本發(fā)明的一些實施例、包括利用模板執(zhí)行環(huán)境建立以便執(zhí)行定制 可執(zhí)行指令的孩子執(zhí)行環(huán)境的系統(tǒng)400的框圖。具體而言,系統(tǒng)300示出了孩子執(zhí)行環(huán)境134 如何可以基于模板執(zhí)行環(huán)境132來建立。系統(tǒng)300示出了模板執(zhí)行環(huán)境132的配置??梢詮哪?板執(zhí)行環(huán)境建立任意數(shù)量的孩子執(zhí)行環(huán)境。每個孩子執(zhí)行環(huán)境可以是不同的執(zhí)行環(huán)境,具 有專用的資源集合和對定制可執(zhí)行指令的執(zhí)行的訪問。
[0107] 模板執(zhí)行環(huán)境,例如模板執(zhí)行環(huán)境132,可以與配置信息302關(guān)聯(lián)。配置信息302可 以包括配置和/或執(zhí)行模板執(zhí)行環(huán)境132的信息。配置信息302可被存儲在元數(shù)據(jù)儲存庫124 中。配置信息302可以包括與模板執(zhí)行環(huán)境132的執(zhí)行相關(guān)的一個或多個環(huán)境設(shè)置。如以上 所解釋的,模板執(zhí)行環(huán)境可以是特定于代碼的虛擬機環(huán)境,例如,JVM環(huán)境。特定于代碼的虛 擬環(huán)境可以使特定類型的代碼(例如,Java?)的執(zhí)行或?qū)崿F(xiàn)能夠在環(huán)境中被執(zhí)行。環(huán)境設(shè) 置可以對應(yīng)于環(huán)境的操作。配置信息302可以包括模板執(zhí)行環(huán)境132的標(biāo)識符、一個或多個 類型、一個或多個版本、一個或多個名稱、描述,或它們的組合。一個或多個類型可以對應(yīng)于 關(guān)聯(lián)的環(huán)境的類型或者可以在基于模板執(zhí)行環(huán)境132建立的孩子執(zhí)行環(huán)境134中執(zhí)行的指 令。配置信息302可以至少基于與向云計算機系統(tǒng)110注冊的用戶(例如用戶或租戶)相關(guān)的 至少一個標(biāo)準(zhǔn)。
[0108] 模板執(zhí)行環(huán)境132可以包括安全模型304,其包括指示對基于模板執(zhí)行環(huán)境132建 立的孩子執(zhí)行環(huán)境134的一個或多個訪問許可的信息。安全模型304可以對應(yīng)于對應(yīng)于環(huán)境 的安全模型,例如,特定于代碼的虛擬環(huán)境的安全模型。安全模型304可以指示對一個或多 個通信協(xié)議的訪問許可(例如,套接字許可)和/或可能被允許或拒絕的通信相關(guān)的操作。
[0109] 模板執(zhí)行環(huán)境132可以包括識別與建立孩子執(zhí)行環(huán)境相關(guān)的一個或多個狀態(tài)306 的信息。一個或多個狀態(tài)306可以指示與孩子執(zhí)行環(huán)境的執(zhí)行相關(guān)的變量或設(shè)置的狀態(tài)。
[0110] 模板執(zhí)行環(huán)境132可以包括識別要為孩子執(zhí)行環(huán)境134加載的一個或多個資源308 的信息。資源可以包括類、文件、存儲空間、系統(tǒng)文件,等等,其中一些或全部可以在孩子執(zhí) 行環(huán)境134的執(zhí)行期間被使用。在一些實施例中,為了模板執(zhí)行環(huán)境132的執(zhí)行,一個或多個 資源308可以在模板執(zhí)行環(huán)境132被執(zhí)行之前被加載。在一些實施例中,在接收到請求之后, 資源308可以被加載。 定制執(zhí)行服務(wù)130可以基于模板執(zhí)行環(huán)境132建立孩子執(zhí)行環(huán)境134。下面是描述 由模板執(zhí)行環(huán)境132建立孩子執(zhí)行環(huán)境所執(zhí)行的操作類型的偽代碼的例子。
[0112] 示例偽代碼 //在模板執(zhí)行環(huán)境中的操作 while (true) { 等待請求/7 //從請求確定用戶信息 從請求獲得tenant丨nfo. //建立孩子執(zhí)行環(huán)境
[0113] result = priniitiveProcessFork() //驗證孩子執(zhí)行環(huán)境是否已經(jīng)建立 if (result = childProcessResult) { 跳出循環(huán) }
[0114] 在上面的例子中,模板執(zhí)行環(huán)境132可以在從定制執(zhí)行服務(wù)130接收到請求時處理 請求。關(guān)于用戶的信息可以從請求中提取。然后,模板執(zhí)行環(huán)境132可以執(zhí)行建立孩子執(zhí)行 環(huán)境134的操作。這種操作可以包括發(fā)出命令,該命令可以特定于模板執(zhí)行環(huán)境132的類型。 在這個例子中,f〇rk()命令可以被發(fā)出,諸如可以在JVM環(huán)境中可用的。該操作可以導(dǎo)致孩 子執(zhí)行環(huán)境的創(chuàng)建和執(zhí)行,例如,孩子特定于代碼的虛擬環(huán)境,例如,孩子JVM環(huán)境。然后,執(zhí) 行操作的結(jié)果可以被檢查,以確定命令是否被成功地發(fā)出。
[0115] 孩子執(zhí)行環(huán)境134可以作為適于運行一條或多條定制可執(zhí)行指令312的、安全的、 孤立的執(zhí)行環(huán)境被建立。孩子執(zhí)行環(huán)境可以是可擴展的并且適于托管可能在將來被支持或 開發(fā)的其它類型語言的定制可執(zhí)行指令。在建立孩子執(zhí)行環(huán)境時,一個或多個操作可以由 孩子執(zhí)行環(huán)境執(zhí)行,如由以下偽代碼說明的:
[0116] //在孩子執(zhí)行環(huán)境中的操作
[0117] 從用于指定租戶負(fù)載用戶代碼的代碼存儲中檢索用戶代碼到JVM中
[0118] 為特定于租戶的上下文初始化所有SDK狀態(tài)
[0119] 禁用對租戶用戶代碼的許可(例如,設(shè)置新的安全策略)
[0120] USerResult =調(diào)用用戶代碼入口點返回的結(jié)果
[0121 ]返回userResult
[0122]在建立孩子執(zhí)行環(huán)境134時,一條或多條定制可執(zhí)行指令可以被加載到孩子執(zhí)行 環(huán)境134中。在一些實施例中,定制可執(zhí)行指令312可以在建立孩子執(zhí)行環(huán)境134之前被加 載??烧{(diào)用接口(例如,SDK138)的一個或多個狀態(tài)設(shè)置可以被設(shè)置(例如,禁用),使得定制 可執(zhí)行指令312可以被限制為訪問來自云計算機系統(tǒng)110的某些服務(wù)。一個或多個訪問許可 314可以基于模板執(zhí)行環(huán)境132中的安全模型304來配置。訪問許可可以準(zhǔn)予或拒絕一個或 多個類型的操作在孩子執(zhí)行環(huán)境134中執(zhí)行。通過基于模板執(zhí)行環(huán)境132建立孩子執(zhí)行環(huán)境 134,孩子執(zhí)行環(huán)境134可以具有與模板執(zhí)行環(huán)境132關(guān)聯(lián)的信息(例如,配置信息302、一個 或多個狀態(tài)306,和/或資源308)的拷貝或引用(例如,指針)?;谀0鍒?zhí)行環(huán)境建立孩子執(zhí) 行環(huán)境的技術(shù)優(yōu)勢是這種技術(shù)可用于高吞吐量的情況,如果執(zhí)行定制可執(zhí)行指令的多個實 例的許多過程可以使用完全相同的環(huán)境,則這些實例可被配置為相同并并發(fā)地執(zhí)行。通過 限制訪問許可,可以防止孩子執(zhí)行環(huán)境134訪問云計算機系統(tǒng)110的運行時環(huán)境的某些資源 和/或敏感部分。另外,可以防止孩子執(zhí)行環(huán)境134產(chǎn)生或建立附加的過程或其它執(zhí)行環(huán)境, 這些會消耗或阻礙云計算機系統(tǒng)110中可用的資源的使用。
[0123] 現(xiàn)在轉(zhuǎn)向圖4,示出了根據(jù)本發(fā)明的一些實施例、用于為了定制可執(zhí)行指令的執(zhí)行 而提供對定制執(zhí)行環(huán)境的訪問的過程400的序列圖。具體而言,過程400可以使得一條或多 條定制執(zhí)行指令(例如,(一條或多條)定制可執(zhí)行指令222或(一條或多條)定制可執(zhí)行指令 312)能夠在基于一個或多個模板執(zhí)行環(huán)境402、404(例如,(一個或多個)模板執(zhí)行環(huán)境132) 配置的一個或多個孩子執(zhí)行環(huán)境406、408(例如,(一個或多個)孩子執(zhí)行環(huán)境134)中被執(zhí) 行。如上面所解釋的,云服務(wù)的云計算機系統(tǒng)(例如,云計算機系統(tǒng)110)可以包括可以促進 一個或多個孩子執(zhí)行環(huán)境的建立以便執(zhí)行一條或多條定制可執(zhí)行指令的定制執(zhí)行服務(wù)(例 如,定制執(zhí)行服務(wù)130)。過程400可以使計算設(shè)備(例如,計算設(shè)備102)能夠通過執(zhí)行一條或 多條定制可執(zhí)行指令來向云計算機系統(tǒng)110傳送實現(xiàn)一個或多個操作的請求。請求可以從 移動計算設(shè)備接收,其中移動計算設(shè)備可以位于與云計算機系統(tǒng)110和執(zhí)行環(huán)境物理分離 的不同地理位置。因此,計算設(shè)備102可以與云計算機系統(tǒng)110通信,而不管它們各自的位 置。
[0124] 云計算機系統(tǒng)110可以處理確定要執(zhí)行的一條或多條定制可執(zhí)行指令的請求并且 可以為那些定制可執(zhí)行指令的執(zhí)行建立執(zhí)行環(huán)境。在一些實施例中,云計算機系統(tǒng)110可以 處理請求,該請求可能不具有執(zhí)行一條或多條定制可執(zhí)行指令的顯式請求,并且可以確定 是否有任何定制可執(zhí)行指令可被執(zhí)行以滿足該請求。在一些實施例中,云計算機系統(tǒng)Iio可 以識別可被執(zhí)行以提供所請求的服務(wù)的一條或多條定制可執(zhí)行指令。如在下面進一步詳細(xì) 解釋的,云計算機系統(tǒng)110可以基于模板執(zhí)行環(huán)境402、404建立孩子執(zhí)行環(huán)境406、408。模板 執(zhí)行環(huán)境可以基于請求中的信息來選擇,可以基于所請求的服務(wù)的類型來選擇,或它們的 組合。云計算機系統(tǒng)110可以使定制可執(zhí)行指令能夠為不同的服務(wù)或操作類型提供,作為讓 云計算機系統(tǒng)110選擇定制可執(zhí)行指令以便向用戶提供服務(wù)的基礎(chǔ)。孩子執(zhí)行環(huán)境可以提 供支持定制可執(zhí)行指令的執(zhí)行的安全且有保障的(secure)環(huán)境。
[0125] 過程400被示為邏輯序列圖,其操作表示可以在硬件、計算機指令或它們的組合中 實現(xiàn)的操作。在計算機指令的上下文中,操作表示存儲在一個或多個計算機可讀存儲介質(zhì) 上的計算機可執(zhí)行指令,當(dāng)指令由一個或多個處理器執(zhí)行時,執(zhí)行所闡述的操作。一般而 言,計算機可執(zhí)行指令包括執(zhí)行特定功能或?qū)崿F(xiàn)特定數(shù)據(jù)類型的例程、程序、應(yīng)用、對象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。操作被描述的次序并不意在被認(rèn)為是限制,并且任何數(shù)量的所述操作可 以以任何次序和/或并行地組合,以實現(xiàn)過程。
[0126] 為了開始過程400,計算設(shè)備102可以向云計算機系統(tǒng)110發(fā)送數(shù)據(jù)410(例如,企業(yè) 數(shù)據(jù))。數(shù)據(jù)410可以包括對服務(wù)的一個或多個請求,其中服務(wù)例如定制執(zhí)行服務(wù)。數(shù)據(jù)410 中的請求可以指示所請求的服務(wù)的類型、識別一條或多條定制可執(zhí)行指令的信息、識別定 制可執(zhí)行指令的類型的信息、用于執(zhí)行定制可執(zhí)行指令的其它標(biāo)準(zhǔn)(例如,條件、時間段或 環(huán)境狀態(tài)),或它們的組合。數(shù)據(jù)410可以包括來自企業(yè)計算機系統(tǒng)的對服務(wù)的請求。在一些 實施例中,企業(yè)數(shù)據(jù)可以包括多個請求。每個請求可以針對相同或不同的服務(wù)。數(shù)據(jù)410可 以包括認(rèn)證信息,諸如用戶識別信息、憑證、帳戶信息,等等,其中一些或全部可以對確定與 計算設(shè)備關(guān)聯(lián)的用戶的安全認(rèn)證有用。計算設(shè)備102和云計算機系統(tǒng)110之間的通信可以通 過使用定制通信協(xié)議來促進。
[0127] 過程400可以包括在數(shù)據(jù)410接收到的、由調(diào)度器118處理的每個請求。調(diào)度器118 可以實現(xiàn)一個或多個處理請求的操作420。操作420可以包括將請求引導(dǎo)到云計算機系統(tǒng) 110的另一個組件。例如,調(diào)度器118可以實現(xiàn)將請求路由到云計算機系統(tǒng)110的一個或多個 服務(wù)的操作420,其中服務(wù)例如定制執(zhí)行服務(wù)130。調(diào)度器118可以經(jīng)由負(fù)載平衡器從計算設(shè) 備102接收請求。通過調(diào)度器118的另一個操作420可以包括解析請求,以確定請求中的信 息,諸如訂戶(例如,租戶ID)、服務(wù)ID、應(yīng)用名稱、應(yīng)用版本、請求資源、操作和參數(shù),等等。調(diào) 度器118可以基于從請求中解析出的信息確定目標(biāo)服務(wù)。在一些實施例中,請求可以包括識 另IJ要調(diào)用的定制執(zhí)行服務(wù)(例如,定制執(zhí)行服務(wù)130)的信息。在一些實施例中,調(diào)度器118可 以接收由云計算機系統(tǒng)110中的組件,諸如服務(wù),在內(nèi)部發(fā)送的請求。在確定目標(biāo)服務(wù)時,調(diào) 度器118可以在路由總線120的隊列上存儲數(shù)據(jù)422。數(shù)據(jù)422可以包括從數(shù)據(jù)410識別的請 求。數(shù)據(jù)422可以包括指示基于識別出的請求選擇的服務(wù)的消息。在路由總線120的隊列上 放置消息之后,調(diào)度器118可以等待其它請求,或者來自路由總線120的對所請求的服務(wù)的 響應(yīng)。
[0128] 過程400可以包括路由總線120實現(xiàn)一個或多個操作430。操作430可以包括處理隊 列上的消息并把消息遞送到由該消息中的信息識別出的服務(wù)。另一個操作430可以包括處 理從服務(wù)接收到的一個或多個響應(yīng)。響應(yīng)可以針對從計算設(shè)備102請求的服務(wù)被接收。過程 400可以包括路由總線120向定制執(zhí)行服務(wù)130發(fā)送請求440。從隊列被處理掉的請求可以被 引導(dǎo)到由該請求識別出的服務(wù)。
[0129] 過程400可以包括為執(zhí)行定制可執(zhí)行指令的每個請求實現(xiàn)一個或多個操作442的 定制執(zhí)行服務(wù)130。從路由總線120被指引的請求可以包括識別定制可執(zhí)行指令的源的信 息。在一些實施例中,請求可以包括可被定制執(zhí)行服務(wù)130用來識別要在定制執(zhí)行環(huán)境中執(zhí) 行的一條或多條定制可執(zhí)行指令的信息。請求可以包括所請求的服務(wù)的類型、執(zhí)行環(huán)境的 類型、識別一條或多條定制可執(zhí)行指令的信息、識別定制可執(zhí)行指令的其它標(biāo)準(zhǔn),或它們的 組合。
[0130]由定制執(zhí)行服務(wù)130實現(xiàn)的一個操作442可以包括處理識別要被用來為所請求的 定制可執(zhí)行指令配置定制可執(zhí)行環(huán)境(例如,孩子執(zhí)行環(huán)境)的一個或多個模板執(zhí)行環(huán)境 402、404的請求。在一些實施例中,模板執(zhí)行環(huán)境可以是特定于代碼的虛擬機環(huán)境(例如, JVM環(huán)境)。模板執(zhí)行環(huán)境可以基于定制可執(zhí)行指令的類型、所請求的服務(wù)類型、用戶的類型 或它們的組合來選擇。例如,可以為請求定制可執(zhí)行指令的執(zhí)行的用戶選擇模板執(zhí)行環(huán)境。 模板執(zhí)行環(huán)境可針對用戶被配置和/或被配置為執(zhí)行特定類型的指令。在一些實施例中,請 求可以包括多個請求或者定制執(zhí)行服務(wù)130可以識別要被用來建立在其中執(zhí)行所請求的定 制可執(zhí)行指令的一個或多個定制可執(zhí)行環(huán)境(例如,孩子執(zhí)行環(huán)境)的多個模板執(zhí)行環(huán)境。
[0131] 另一個操作442可以包括配置模板執(zhí)行環(huán)境。例如,模板執(zhí)行環(huán)境可以基于被請求 執(zhí)行的定制可執(zhí)行指令的類型來配置。在一些實施例中,模板執(zhí)行環(huán)境402、404可以在接收 到執(zhí)行定制可執(zhí)行指令的請求之前被配置。在一些實施例中,定制執(zhí)行服務(wù)130可以為被識 別為建立定制執(zhí)行環(huán)境的每個模板執(zhí)行環(huán)境實現(xiàn)一個或多個操作446。一個或多個操作446 可以類似于一個或多個操作442。操作446可以包括配置模板執(zhí)行環(huán)境,例如,模板執(zhí)行環(huán)境 404 〇
[0132] 過程400可以包括執(zhí)行模板執(zhí)行環(huán)境的定制執(zhí)行服務(wù)130,其中模板執(zhí)行環(huán)境例如 模板執(zhí)行環(huán)境402或模板執(zhí)行環(huán)境404。模板執(zhí)行環(huán)境可以是被識別為用于為所請求的定制 可執(zhí)行指令建立定制執(zhí)行環(huán)境的環(huán)境。在圖4所示的例子中,過程400可以包括定制執(zhí)行服 務(wù)130實現(xiàn)要執(zhí)行模板執(zhí)行環(huán)境402以便建立孩子執(zhí)行環(huán)境406的一個或多個操作444。執(zhí)行 模板執(zhí)行環(huán)境可以對應(yīng)于執(zhí)行特定于代碼的虛擬環(huán)境(例如JVM環(huán)境)。過程400可以包括 定制執(zhí)行服務(wù)130實現(xiàn)要執(zhí)行模板執(zhí)行環(huán)境404以便建立孩子執(zhí)行環(huán)境408的一個或多個操 作448。一個或多個操作444和一個或多個操作448可以并發(fā)執(zhí)行。因此,模板執(zhí)行環(huán)境402和 模板執(zhí)行環(huán)境404可以并發(fā)地建立。在一些實施例中,用于另一個模板執(zhí)行環(huán)境404的一個 或多個操作448可以在一個或多個操作446(例如,配置模板執(zhí)行環(huán)境404)被實現(xiàn)之后實現(xiàn)。 被實現(xiàn)為執(zhí)行模板執(zhí)行環(huán)境(例如,模板執(zhí)行環(huán)境402或模板執(zhí)行環(huán)境404)的操作(例如,操 作444或操作448)可以包括實現(xiàn)使模板執(zhí)行環(huán)境被執(zhí)行的一條或多條指令。例如,操作可以 包括:初始化模板執(zhí)行環(huán)境(例如,特定于代碼的虛擬機)和執(zhí)行模板執(zhí)行環(huán)境。如前面所解 釋的,模板執(zhí)行環(huán)境可以在模板執(zhí)行環(huán)境被用來建立孩子執(zhí)行環(huán)境之前被執(zhí)行。
[0133] 過程400可以包括實現(xiàn)基于模板執(zhí)行環(huán)境建立孩子執(zhí)行環(huán)境的一個或多個操作。 例如,過程400可以包括實現(xiàn)為了定制可執(zhí)行指令的執(zhí)行而在模板執(zhí)行環(huán)境402中建立孩子 執(zhí)行環(huán)境406的一個或多個操作450。在另一個例子中,過程400可以包括實現(xiàn)為了定制可執(zhí) 行指令的執(zhí)行而在模板執(zhí)行環(huán)境404中建立孩子執(zhí)行環(huán)境408的一個或多個操作460。建立 孩子執(zhí)行環(huán)境的一個操作(例如,操作450或操作460)可以包括實現(xiàn)或執(zhí)行使孩子執(zhí)行環(huán)境 基于模板執(zhí)行環(huán)境被建立的指令或命令。例如,特定于代碼的指令,諸如JVM模板執(zhí)行環(huán)境 中的f〇rk()命令,可以被執(zhí)行,這將造成(例如,產(chǎn)生)孩子執(zhí)行環(huán)境被建立。基于模板執(zhí)行 環(huán)境的孩子執(zhí)行環(huán)境建立可以繼承模板執(zhí)行環(huán)境的配置。所繼承的配置可以包括以下一個 或多個:設(shè)置、變量、參數(shù)、狀態(tài)、規(guī)則、與孩子執(zhí)行環(huán)境的操作或?qū)崿F(xiàn)相關(guān)的其它標(biāo)準(zhǔn),或它 們的組合。建立孩子執(zhí)行環(huán)境的另一個操作(例如,操作450或操作460)可以包括在其實現(xiàn) 或執(zhí)行之前配置指令或命令的一個或多個參數(shù)。在一些實施例中,模板執(zhí)行環(huán)境可以通過 在建立孩子執(zhí)行環(huán)境的命令或指令的執(zhí)行之前改變設(shè)置來配置。
[0134] 過程400可以包括在孩子執(zhí)行環(huán)境中實現(xiàn)一個或多個操作。一個或多個操作可以 包括在孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。例如,一個或多個操作452可以在孩 子執(zhí)行環(huán)境406中實現(xiàn)。在另一個例子中,一個或多個操作462可以在孩子執(zhí)行環(huán)境408中實 現(xiàn)。在孩子執(zhí)行環(huán)境中實現(xiàn)的一個操作(例如,操作452或操作462)可以包括加載由計算設(shè) 備102請求的定制可執(zhí)行指令。定制可執(zhí)行指令可以由定制執(zhí)行服務(wù)130基于從計算設(shè)備 102接收到的請求來識別。定制可執(zhí)行指令可以從與云計算機系統(tǒng)110關(guān)聯(lián)的數(shù)據(jù)庫加載。 加載可執(zhí)行指令可以包括基于一個或多個標(biāo)準(zhǔn)(例如,所請求的服務(wù)的類型或定制可執(zhí)行 指令的類型)從數(shù)據(jù)庫搜索指令并且檢索識別出的定制可執(zhí)行指令。在孩子執(zhí)行環(huán)境中實 現(xiàn)的另一個操作配置以下一個或多個:變量、設(shè)置、狀態(tài)、訪問許可、與孩子執(zhí)行環(huán)境的配置 相關(guān)的其它標(biāo)準(zhǔn),或它們的組合。例如,過程400可以包括配置對于孩子執(zhí)行環(huán)境的訪問許 可。訪問許可可被配置為讓孩子執(zhí)行環(huán)境除去訪問許可或限制定制可執(zhí)行指令獲得在指令 執(zhí)行過程中配置孩子執(zhí)行環(huán)境的訪問。另一個操作可以包括在孩子執(zhí)行環(huán)境的配置之后在 孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。過程400可以包括與在不同的孩子執(zhí)行環(huán) 境408中執(zhí)行不同的孩子可執(zhí)行指令并發(fā)地在孩子執(zhí)行環(huán)境406中執(zhí)行定制可執(zhí)行指令。
[0135] 在一些實施例中,被描述為在孩子執(zhí)行環(huán)境中執(zhí)行的一個或多個操作可以在模板 執(zhí)行環(huán)境中執(zhí)行。例如,定制可執(zhí)行指令可以在孩子執(zhí)行環(huán)境被建立之前在模板執(zhí)行環(huán)境 中加載。類似地,孩子執(zhí)行環(huán)境的配置可以在孩子執(zhí)行環(huán)境的建立之前被執(zhí)行。在孩子執(zhí)行 環(huán)境建立之前,孩子執(zhí)行環(huán)境可被配置和/或定制可執(zhí)行指令可被加載,因為這樣做可以改 善用于執(zhí)行定制可執(zhí)行指令的執(zhí)行時間。這種技術(shù)可以為更頻繁地被執(zhí)行的定制可執(zhí)行指 令實現(xiàn),從而減少執(zhí)行指令的處理時間。
[0136] 在一些實施例中,所請求的定制可執(zhí)行指令可以是網(wǎng)關(guān)指令或者可以是使一個或 多個其它定制可執(zhí)行指令被執(zhí)行的網(wǎng)關(guān)模塊的一部分。例如,定制可執(zhí)行指令的執(zhí)行會導(dǎo) 致另一定制可執(zhí)行指令被加載用于在孩子執(zhí)行環(huán)境中執(zhí)行。
[0137] 過程400可以包括孩子執(zhí)行環(huán)境向定制執(zhí)行服務(wù)130返回結(jié)果。例如,孩子執(zhí)行環(huán) 境406可以向定制執(zhí)行服務(wù)130返回結(jié)果454并且孩子執(zhí)行環(huán)境408可以向定制執(zhí)行服務(wù)130 返回結(jié)果464。結(jié)果可以響應(yīng)于一條或多條定制可執(zhí)行指令的執(zhí)行而被返回或者可以在所 請求的定制可執(zhí)行指令的處理完成后返回。結(jié)果可以包括指示執(zhí)行定制執(zhí)行指令的條件或 結(jié)果的值。在一些實施例中,結(jié)果可以包括指示或識別要執(zhí)行的一條或多條其它定制可執(zhí) 行指令的信息。
[0138] 過程400可以包括定制執(zhí)行服務(wù)130基于從孩子執(zhí)行環(huán)境接收到的結(jié)果執(zhí)行一個 或多個操作。例如,定制執(zhí)行服務(wù)130可以基于從孩子執(zhí)行環(huán)境406接收到的結(jié)果454執(zhí)行一 個或多個操作456。在另一個例子中,定制執(zhí)行服務(wù)可以基于從孩子執(zhí)行環(huán)境408接收到的 結(jié)果464執(zhí)行一個或多個操作466。在一些實施例中,定制執(zhí)行服務(wù)130可以基于從不同的孩 子執(zhí)行環(huán)境接收到的多個結(jié)果執(zhí)行一個或多個操作(例如,操作456和操作466)。一個這種 操作(例如,操作456或操作466)可以包括處理結(jié)果,以確定要在孩子執(zhí)行環(huán)境中執(zhí)行的一 條或多條定制可執(zhí)行指令。孩子執(zhí)行環(huán)境可以是已被建立的環(huán)境。另一個操作可以包括處 理結(jié)果,以確定指示用于定制可執(zhí)行指令的執(zhí)行的結(jié)果的結(jié)果或狀態(tài)代碼。結(jié)果可以包括 作為定制可執(zhí)行指令的執(zhí)行的結(jié)果而生成的其它信息。還有另一操作可以包括生成用于遞 送到計算設(shè)備(例如,計算設(shè)備102)的消息。計算設(shè)備可以是請求定制可執(zhí)行指令的執(zhí)行的 設(shè)備。消息可以包括指示執(zhí)行定制可執(zhí)行代碼的結(jié)果的信息。定制執(zhí)行服務(wù)130可以為每個 結(jié)果生成一個或多個消息。在一些實施例中,可以為多個結(jié)果生成單個消息。
[0139] 過程400可以包括定制執(zhí)行服務(wù)130將消息放在路由總線120的隊列上。定制執(zhí)行 服務(wù)130可以把它生成的每個消息放在路由總線的隊列上。例如,定制執(zhí)行服務(wù)130可以把 消息458放在路由總線120的隊列上。消息458可以包括指示定制可執(zhí)行指令在孩子執(zhí)行環(huán) 境406中的執(zhí)行結(jié)果的信息。例如,定制執(zhí)行服務(wù)130可以把消息468放在路由總線120的隊 列上。消息468可以包括指示定制可執(zhí)行指令在孩子執(zhí)行環(huán)境408中的執(zhí)行結(jié)果的信息。
[0140] 過程400可以包括路由總線120處理離開隊列的消息,例如消息458或消息468。當(dāng) 消息被處理時,它可以被指引到調(diào)度器118,用于遞送到計算設(shè)備102。調(diào)度器118可以執(zhí)行 把消息458、468拉離路由總線120的操作470。隨后,調(diào)度器118可以向計算設(shè)備102發(fā)送指示 包括在從隊列中提取的消息中的信息的一個或多個響應(yīng)(例如,響應(yīng)472或響應(yīng)482)。該響 應(yīng)可以指示執(zhí)行定制可執(zhí)行指令的結(jié)果。
[0141] 應(yīng)當(dāng)認(rèn)識到,過程400是說明性的,并且變化和修改是可能的。被描述為順序的步 驟可以并行地執(zhí)行,并且步驟的次序可以變化,并且步驟可以被修改、組合、添加或省略。
[0142] 通過在孩子執(zhí)行環(huán)境中執(zhí)行定制可執(zhí)行指令,定制可執(zhí)行指令可以在沙箱環(huán)境 (例如,孩子執(zhí)行環(huán)境)中執(zhí)行,以便不干擾在為其用戶(例如,租戶)執(zhí)行的云計算機系統(tǒng)中 的其它操作(例如,租戶操作)。通過修改(例如,限制)孩子執(zhí)行環(huán)境中的訪問許可,可以防 止定制可執(zhí)行指令生成不被為了在孩子執(zhí)行環(huán)境中執(zhí)行而支持的附加操作或線程。通過防 止不被支持的線程或操作被執(zhí)行,計算資源可以為云計算機系統(tǒng)減少或保留。
[0143] 在圖5中,示出了示出根據(jù)本發(fā)明的一些實施例、用于為了定制可執(zhí)行指令的執(zhí)行 而提供對定制執(zhí)行環(huán)境的訪問的過程500的流程圖。具體而言,過程500使用戶能夠在云服 務(wù)的定制執(zhí)行環(huán)境中執(zhí)行定制可執(zhí)行指令。過程500建立被配置為執(zhí)行定制可執(zhí)行指令的 孩子執(zhí)行環(huán)境。孩子執(zhí)行環(huán)境是基于被配置為用于一個或多個標(biāo)準(zhǔn)的模板執(zhí)行環(huán)境設(shè)置 的。在某些實施例中,云計算機系統(tǒng)(例如,云計算機系統(tǒng)110)可以實現(xiàn)過程500。
[0144] 過程500被示為邏輯流程圖,其操作表示可以在硬件、計算機指令或它們的組合中 實現(xiàn)的操作。在計算機指令的上下文中,操作表示存儲在一個或多個計算機可讀存儲介質(zhì) 上的計算機可執(zhí)行指令,當(dāng)指令由一個或多個處理器執(zhí)行時,執(zhí)行所闡述的操作。一般而 言,計算機可執(zhí)行指令包括執(zhí)行特定功能或?qū)崿F(xiàn)特定數(shù)據(jù)類型的例程、程序、應(yīng)用、對象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。操作被描述的次序并不意在被認(rèn)為是限制,并且任何數(shù)量的所述操作可 以以任何次序和/或并行地組合,以實現(xiàn)過程。
[0145] 在方框505開始,過程500可以包括在云計算機系統(tǒng)中執(zhí)行模板執(zhí)行環(huán)境。模板執(zhí) 行環(huán)境可被配置為建立孩子執(zhí)行環(huán)境,每個孩子執(zhí)行環(huán)境可被配置為執(zhí)行一條或多條定制 可執(zhí)行指令。模板執(zhí)行環(huán)境可以在執(zhí)行模板執(zhí)行環(huán)境之前被配置。如前面參照圖3所解釋 的,配置模板執(zhí)行環(huán)境可以包括初始化模板執(zhí)行環(huán)境的設(shè)置和/或初始化模板執(zhí)行環(huán)境的 狀態(tài)。
[0146] 在方框510,過程500可以包括接收執(zhí)行定制可執(zhí)行指令的請求。例如,云計算機系 統(tǒng)110可以從計算設(shè)備102接收執(zhí)行定制可執(zhí)行指令的請求。在一些實施例中,請求可以包 括多條定制可執(zhí)行指令,其中全部或一些可以對應(yīng)于一種或多種類型的定制可執(zhí)行指令。 在方框515,過程500可以包括建立執(zhí)行所請求的定制可執(zhí)行指令的孩子執(zhí)行環(huán)境。孩子執(zhí) 行環(huán)境可以在云計算機系統(tǒng)中建立。孩子執(zhí)行環(huán)境可以基于模板執(zhí)行環(huán)境來建立。孩子執(zhí) 行環(huán)境可以被建立,以便如果被請求的話就運行多條定制可執(zhí)行指令。在一些實施例中,模 板執(zhí)行環(huán)境可以基于定制可執(zhí)行指令的類型來選擇。照此,不同的模板執(zhí)行環(huán)境可以被選 擇,以便為特定類型的定制可執(zhí)行指令建立孩子執(zhí)行環(huán)境。
[0147] 在方框520,一旦孩子執(zhí)行環(huán)境被建立,所請求的定制可執(zhí)行指令就可以被加載, 用于在孩子執(zhí)行環(huán)境中執(zhí)行。在方框525,過程500可以包括配置用于所建立的孩子執(zhí)行環(huán) 境的一個或多個設(shè)置。設(shè)置可以包括一個或多個訪問許可,諸如調(diào)整用于孩子執(zhí)行環(huán)境的 一個或多個環(huán)境或執(zhí)行變量的狀態(tài)的許可。訪問許可可被配置為防止定制可執(zhí)行指令超出 對環(huán)境允許的資源的訪問之外的對環(huán)境的不想要的操縱。例如,對系統(tǒng)文件的訪問可以在 定制可執(zhí)行指令的執(zhí)行過程中受到限制。通過這樣做,對資源(例如,存儲器或處理資源)的 訪問或者產(chǎn)生附加線程的能力可以被控制(例如,限制或允許)以創(chuàng)建期望的環(huán)境。訪問許 可可以被調(diào)整,從而確保孩子執(zhí)行環(huán)境被適當(dāng)?shù)厣诚浠虮Wo和/或防止定制可執(zhí)行指令 干擾在其它執(zhí)行環(huán)境中執(zhí)行的指令。最后,在方框530,過程500可以包括在為指令建立的孩 子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。過程500可以在方框535結(jié)束。
[0148] 應(yīng)當(dāng)認(rèn)識到,過程500是說明性的,并且變化和修改是可能的。被描述為順序的步 驟可以并行地執(zhí)行,并且步驟的次序可以變化,并且步驟可以被修改、組合、添加或省略。在 某些實施例中,當(dāng)企業(yè)數(shù)據(jù)經(jīng)由到網(wǎng)絡(luò)的無線通信連接被接收時,過程500可以被實現(xiàn)。例 如,過程500可以對執(zhí)行一條或多條定制可執(zhí)行指令的每個請求執(zhí)行。應(yīng)當(dāng)指出的是,過程 500可以對在來自計算設(shè)備的多個通信中接收到的請求并發(fā)地執(zhí)行。在某些實施例中,方框 505可以對每個模板執(zhí)行環(huán)境執(zhí)行。方框510可以在方框505被執(zhí)行之后立即執(zhí)行,或者可以 稍后被執(zhí)行。模板執(zhí)行環(huán)境可在方框510實現(xiàn)之后并且在方框515之前當(dāng)孩子執(zhí)行環(huán)境基于 模板執(zhí)行環(huán)境被建立時被配置。在一些實施例中,方框520可以在孩子執(zhí)行環(huán)境在方框515 被建立之前實現(xiàn)。
[0149] 圖6繪出了用于實現(xiàn)其中一種實施例的分布式系統(tǒng)600的簡化圖。分布式系統(tǒng)600 可以實現(xiàn)計算機系統(tǒng)100、計算機系統(tǒng)200的全部或一些元件,或它們的組合。分布式系統(tǒng) 600可以實現(xiàn)操作、方法和/或過程(例如,圖4的過程400和圖5的過程500)。在所示出的實施 例中,分布式系統(tǒng)600包括一個或多個客戶端計算設(shè)備602、604、606和608,這些客戶端計算 設(shè)備被配置為經(jīng)一個或多個網(wǎng)絡(luò)610執(zhí)行并操作諸如web瀏覽器、專屬客戶端(例如,Oracle Forms)等的客戶端應(yīng)用。在某些實施例中,一個或多個客戶端計算設(shè)備602-608可以包括或 實現(xiàn)圖1的云計算機系統(tǒng)110或計算設(shè)備102。服務(wù)器612可以經(jīng)由網(wǎng)絡(luò)610與遠(yuǎn)程客戶端計 算設(shè)備602、604、606和608通信耦合。服務(wù)器612可以包括計算設(shè)備102或云計算機系統(tǒng)110。
[0150] 在各種實施例中,服務(wù)器612可以適于運行由系統(tǒng)的一個或多個組件提供的一個 或多個服務(wù)或軟件應(yīng)用。服務(wù)或軟件應(yīng)用可以包括非虛擬和虛擬環(huán)境。虛擬環(huán)境可以包括 用于虛擬事件、展示(tradeshow)、模擬器、教室、購物交流和企業(yè)的那些環(huán)境,無論是二維 還是三維(3D)表示、基于頁面的邏輯環(huán)境,或以其它方式。在一些實施例中,這些服務(wù)可以 作為基于web的或云服務(wù)依據(jù)軟件即服務(wù)(SaaS)模型向客戶計算設(shè)備602、604、606和/或 608的用戶提供。操作客戶端計算設(shè)備602、604、606和/或608的用戶又可以利用一個或多個 客戶端應(yīng)用與服務(wù)器612交互,以利用由這些組件提供的服務(wù)。
[0151] 在該圖中所繪出的配置中,系統(tǒng)600的軟件組件618、620和622被示為在服務(wù)器612 上實現(xiàn)。在其它實施例中,系統(tǒng)600的一個或多個組件和/或由這些組件提供的服務(wù)也可以 由一個或多個客戶端計算設(shè)備602、604、606和/或608實現(xiàn)。然后,操作客戶端計算設(shè)備的用 戶可以利用一個或多個客戶端應(yīng)用來使用由這些組件提供的服務(wù)。這些組件可以在硬件、 固件、軟件或其組合中實現(xiàn)。應(yīng)當(dāng)認(rèn)識到的是,各種不同的系統(tǒng)配置是可能的,這些配置可 以與分布式系統(tǒng)600不同。因此,該圖中所示的實施例是用于實現(xiàn)實施例系統(tǒng)的分布式系統(tǒng) 的一個例子并且不是要限制。
[0152] 客戶端計算設(shè)備60 2、604、60 6和/或60 8可以是便攜式手持設(shè)備(例如, iPhone?、蜂窩電話、iP.ad?_、計算平板、個人數(shù)字助理(pda))或可穿戴設(shè)備(例如, GoogluG丨ass?頭戴式顯示器),運行諸如Microsoft Windows.Mobile?:的軟件,和/或諸 如iOS、Windows Phone、Android,BlackBerry 10、Palm OS等各種移動操作系統(tǒng),并且啟用 互聯(lián)網(wǎng)、電子郵件、短消息服務(wù)(SMS)、BlackBerry?或其它的通信協(xié)議。客戶端計算設(shè) 備可以是通用個人計算機,作為例子,包括運行各種版本的Microsof t ^?η?ΙΟΜβ?、 Apple Macintostl?·/或Linux操作系統(tǒng)的個人計算機和/或便攜式計算機。客戶端計 算設(shè)備可以是運行任何各種市售UNIX?或類UNIX操作系統(tǒng)當(dāng)中任意一種,包括但不限 于各種GNU/Linux操作系統(tǒng),諸如像Google Chrome OS,的工作站計算機。作為替代,或附加 地,客戶端計算設(shè)備602、604、606和608可以是任何其它電子設(shè)備,諸如能夠經(jīng)(一個或多 個)網(wǎng)絡(luò)610通信的瘦客戶端計算機、啟用互聯(lián)網(wǎng)的游戲系統(tǒng)(例如,具有或不具有 Kin.ect?手勢輸入設(shè)備的Microsoft Xbox游戲控制臺),和/或個人消息傳送設(shè)備。
[0153] 雖然示例性分布式系統(tǒng)600被示為具有四個客戶端計算設(shè)備,但任何數(shù)量的客戶 端計算設(shè)備可以被支持。其它設(shè)備,諸如具有傳感器的設(shè)備等,可以與服務(wù)器612交互。
[0154] 分布式系統(tǒng)600中的(一個或多個)網(wǎng)絡(luò)610可以是本領(lǐng)域技術(shù)人員熟悉的、可以利 用各種市售協(xié)議當(dāng)中任意一種支持?jǐn)?shù)據(jù)通信的任何類型的網(wǎng)絡(luò),其中協(xié)議包括但不限于 TCP/IP(傳輸控制協(xié)議/網(wǎng)際協(xié)議)、SNA(系統(tǒng)網(wǎng)絡(luò)體系結(jié)構(gòu))、IPX(互聯(lián)網(wǎng)數(shù)據(jù)包交換)、 AppleTalk,等等。僅僅作為例子,(一個或多個)網(wǎng)絡(luò)610可以是局域網(wǎng)(LAN),諸如基于以太 網(wǎng)、令牌環(huán)等的LAN。(一個或多個)網(wǎng)絡(luò)610可以是廣域網(wǎng)和互聯(lián)網(wǎng)。它可以包括虛擬網(wǎng)絡(luò), 包括但不限于虛擬專用網(wǎng)(VPN)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、公共交換電話網(wǎng)(PSTN)、紅外網(wǎng)絡(luò)、無線 網(wǎng)絡(luò)(例如,依據(jù)電氣和電子學(xué)研究所(ieee)8〇2. Ii協(xié)議套件、Bluetooth⑧和/或任何其 它無線協(xié)議當(dāng)中任意一種操作的網(wǎng)絡(luò));和/或這些和/或其它網(wǎng)絡(luò)的任意組合。
[0155] 服務(wù)器612可以由一個或多個通用計算機、專用服務(wù)器計算機(作為例子,包括PC (個人計算機)服務(wù)器、UNIX?服務(wù)器、中檔服務(wù)器、大型計算機、機架式服務(wù)器,等等)、 服務(wù)器群、服務(wù)器集群,或者任何其它適當(dāng)?shù)牟贾煤?或組合組成。服務(wù)器612可以包括運行 虛擬操作系統(tǒng)的一個或多個虛擬機,或涉及虛擬化的其它計算體系架構(gòu)。邏輯存儲設(shè)備的 一個或多個柔性池可以被虛擬化,以維護用于服務(wù)器的虛擬存儲設(shè)備。虛擬網(wǎng)絡(luò)可以由服 務(wù)器612利用軟件定義的聯(lián)網(wǎng)來控制。在各種實施例中,服務(wù)器612可以適于運行在前面公 開內(nèi)容中所描述的一個或多個服務(wù)或軟件應(yīng)用。例如,服務(wù)器612可以對應(yīng)于用于執(zhí)行上面 根據(jù)本公開內(nèi)容的實施例所描述的處理的服務(wù)器。
[0156] 服務(wù)器612可以運行包括上面討論的操作系統(tǒng)當(dāng)中任意一種在內(nèi)的操作系統(tǒng),以 及任何市售的服務(wù)器操作系統(tǒng)。服務(wù)器612還可以運行各種附加的服務(wù)器應(yīng)用和/或中間層 應(yīng)用當(dāng)中任意一種,包括http服務(wù)器、ftp服務(wù)器、CGi(公共網(wǎng)關(guān)接口)服務(wù)器、Java?服務(wù) 器、數(shù)據(jù)庫服務(wù)器,等等。示例性數(shù)據(jù)庫服務(wù)器包括但不限于從0ra Cle、Micr〇S〇ft、SybaSe、 IBM(國際商業(yè)機器)等等可商購的那些。
[0157] 在一些實現(xiàn)中,服務(wù)器612可以包括一個或多個應(yīng)用,以分析和合并從客戶端計算 設(shè)備602、604、606和608的用戶接收的數(shù)據(jù)饋送和/或事件更新。作為例子,數(shù)據(jù)饋送和/或 事件更新可以包括,但不限于,Twitter?饋送、Faeebook?更新或者從一個或多個第三 方信息源和連續(xù)數(shù)據(jù)流接收到的實時更新,其可以包括與傳感器數(shù)據(jù)應(yīng)用、金融報價機、網(wǎng) 絡(luò)性能測量工具(例如,網(wǎng)絡(luò)監(jiān)視和流量管理應(yīng)用)、點擊流分析工具、汽車交通監(jiān)視等相關(guān) 的實時事件。服務(wù)器612還可以包括一個或多個應(yīng)用,以經(jīng)由客戶端計算設(shè)備602、604、606 和608的一個或多個顯示設(shè)備顯示數(shù)據(jù)饋送和/或?qū)崟r事件。
[0158] 分布式系統(tǒng)600還可以包括一個或多個數(shù)據(jù)庫614和616。數(shù)據(jù)庫614和616可以駐 留在各個位置。作為例子,數(shù)據(jù)庫614和616中的一個或多個可以駐留在服務(wù)器612本地的非 臨時性存儲介質(zhì)上(和/或駐留在服務(wù)器612中)。作為替代,數(shù)據(jù)庫614和616可以遠(yuǎn)離服務(wù) 器612,并且經(jīng)基于網(wǎng)絡(luò)的或?qū)S玫倪B接與服務(wù)器612通信。在一組實施例中,數(shù)據(jù)庫614和 616可以駐留在存儲區(qū)域網(wǎng)絡(luò)(SAN)中。類似地,用于執(zhí)行服務(wù)器612所具有的功能的任何必 要的文件都可以適當(dāng)?shù)乇镜卮鎯υ诜?wù)器612上和/或遠(yuǎn)程存儲。在一組實施例中,數(shù)據(jù)庫 614和616可以包括適于響應(yīng)于SQL格式的命令而存儲、更新和檢索數(shù)據(jù)的關(guān)系數(shù)據(jù)庫,諸如 由Oracle提供的數(shù)據(jù)庫。一個或多個數(shù)據(jù)庫614和616可以包括或?qū)崿F(xiàn)為數(shù)據(jù)庫114。
[0159]圖7是根據(jù)本公開內(nèi)容的實施例的系統(tǒng)環(huán)境700的一個或多個組件的簡化框圖,通 過其,由實施例系統(tǒng)的一個或多個組件提供的服務(wù)可以作為云服務(wù)被提供。系統(tǒng)環(huán)境700可 以包括或?qū)崿F(xiàn)計算機系統(tǒng)100的全部或一些元件、計算機系統(tǒng)200的全部或一些元件,或它 們的組合。系統(tǒng)環(huán)境700可以實現(xiàn)操作、方法和/或過程(例如,圖4的過程400和圖5的過程 500)。在所示出的實施例中,系統(tǒng)環(huán)境700包括一個或多個可以被用戶用來與提供云服務(wù)的 云基礎(chǔ)設(shè)施系統(tǒng)702交互的客戶端計算設(shè)備704、706和708??蛻舳擞嬎阍O(shè)備可被配置為操 作客戶端應(yīng)用,諸如web瀏覽器、專用客戶端應(yīng)用(例如,Oracle Forms),或某種其它應(yīng)用, 其可以被客戶端計算設(shè)備的用戶用來與基礎(chǔ)設(shè)施系統(tǒng)702交互,以使用由云基礎(chǔ)設(shè)施系統(tǒng) 70 2提供的服務(wù)。
[0160] 應(yīng)當(dāng)認(rèn)識到,該圖中所繪出的云基礎(chǔ)設(shè)施系統(tǒng)702可以具有除繪出的那些之外的 其它組件。另外,圖中所繪出的實施例中只是可以結(jié)合本發(fā)明的實施例的云基礎(chǔ)設(shè)施系統(tǒng) 的一個例子。例如,云基礎(chǔ)設(shè)施系統(tǒng)702可以包括或?qū)崿F(xiàn)計算機系統(tǒng)110的全部或部分。在一 些其它的實施例中,云基礎(chǔ)設(shè)施系統(tǒng)702可以具有比圖中所示更多或更少的組件、可以組合 兩個或更多個組件,或者可以具有組件的不同配置或布置。
[0161] 客戶端計算設(shè)備704、706和708可以是類似于上面對602、604、606和608所描述的 設(shè)備。
[0162] 雖然示例性系統(tǒng)環(huán)境700被示為具有三個客戶端計算設(shè)備,但是任何數(shù)量的客戶 端計算設(shè)備都可以被支持。諸如具有傳感器的設(shè)備等的其它設(shè)備可以與云基礎(chǔ)設(shè)施系統(tǒng) 702交互。
[0163] (一個或多個)網(wǎng)絡(luò)710可以促進客戶端704、706和708與云基礎(chǔ)設(shè)施系統(tǒng)702之間 的通信和數(shù)據(jù)交換。每個網(wǎng)絡(luò)可以是本領(lǐng)域技術(shù)人員熟悉的、可以支持利用任何各種商業(yè) 協(xié)議的任何類型的網(wǎng)絡(luò),包括上面對(一個或多個)網(wǎng)絡(luò)710所描述的網(wǎng)絡(luò)。
[0164] 云基礎(chǔ)設(shè)施系統(tǒng)702可以包括一個或多個計算機和/或服務(wù)器,這可以包括以上對 服務(wù)器712所描述的服務(wù)器。
[0165] 在某些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)可以包括可以讓云基礎(chǔ)設(shè)施系統(tǒng) 的用戶按需使用的服務(wù)的托管,諸如在線數(shù)據(jù)存儲和備份解決方案、基于web的電子郵件服 務(wù)、托管的辦公套件和文檔協(xié)作服務(wù)、數(shù)據(jù)庫處理、管理的技術(shù)支持服務(wù)等。由云基礎(chǔ)設(shè)施 系統(tǒng)提供的服務(wù)可以動態(tài)地擴展,以滿足其用戶的需求。由云基礎(chǔ)設(shè)施系統(tǒng)提供的服務(wù)的 具體實例在本文中稱作為"服務(wù)實例"。一般而言,來自云服務(wù)提供商系統(tǒng)的、經(jīng)由諸如互聯(lián) 網(wǎng)的通信網(wǎng)絡(luò)對用戶可用的任何服務(wù)被稱為"云服務(wù)"。通常,在公共云環(huán)境中,構(gòu)成云服務(wù) 提供商的系統(tǒng)的服務(wù)器和系統(tǒng)與客戶自己的辦公場所服務(wù)器和系統(tǒng)不同。例如,云服務(wù)提 供商的系統(tǒng)可以托管應(yīng)用,并且用戶可以經(jīng)由諸如互聯(lián)網(wǎng)的通信網(wǎng)絡(luò)按需訂閱和使用應(yīng) 用。
[0166] 在一些例子中,在計算機網(wǎng)絡(luò)云基礎(chǔ)設(shè)施中的服務(wù)可以包括對由云供應(yīng)商提供給 用戶的存儲、托管數(shù)據(jù)庫、托管web服務(wù)器、軟件應(yīng)用或其它服務(wù)的受保護的計算機網(wǎng)絡(luò)訪 問,或者如以其它方式在本領(lǐng)域中已知的。例如,服務(wù)可以包括通過互聯(lián)網(wǎng)對云上遠(yuǎn)程存儲 的密碼保護的訪問。作為另一個例子,服務(wù)可以包括用于被聯(lián)網(wǎng)開發(fā)人員私人使用的基于 web服務(wù)的托管關(guān)系數(shù)據(jù)庫和腳本語言中間件引擎。作為另一個例子,服務(wù)可以包括對在云 供應(yīng)商的網(wǎng)站上托管的電子郵件軟件應(yīng)用的訪問。
[0167] 在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)702可以包括以自助服務(wù)、基于訂閱、彈性可擴 展、可靠、高可用性并且安全的方式交付給客戶的一套應(yīng)用、中間件和數(shù)據(jù)庫服務(wù)產(chǎn)品。這 種云基礎(chǔ)設(shè)施系統(tǒng)的例子是由本受讓人提供的Oracle Public Cloud。
[0168] 大容量數(shù)據(jù),有時被稱為大數(shù)據(jù),可以在許多層面上和在不同規(guī)模由基礎(chǔ)設(shè)施系 統(tǒng)托管和/或操縱。這種數(shù)據(jù)可以包括如此大而復(fù)雜以至于難以利用典型的數(shù)據(jù)庫管理工 具或傳統(tǒng)的數(shù)據(jù)處理應(yīng)用來處理的數(shù)據(jù)集。例如,百萬兆字節(jié)的數(shù)據(jù)利用個人計算機或他 們的基于機架的對等體可能是難以存儲、檢索和處理的。這種尺寸的數(shù)據(jù)會難以利用最當(dāng) 前的關(guān)系數(shù)據(jù)庫管理系統(tǒng)和桌面統(tǒng)計和可視化包工作。它們會要求運行幾千臺服務(wù)器計算 機的大規(guī)模并行處理軟件,超出常用軟件工具的結(jié)構(gòu),以便在可容忍的經(jīng)過時間內(nèi)捕獲、安 排、管理和處理數(shù)據(jù)。
[0169] 極其大的數(shù)據(jù)集可以由分析師和研究人員存儲并操縱,以可視化大量數(shù)據(jù)、檢測 趨勢,和/或以其它方式與數(shù)據(jù)進行交互。數(shù)十、數(shù)百或數(shù)千并行連接的處理器可以對這些 數(shù)據(jù)采取行動,以便呈現(xiàn)它或模擬對數(shù)據(jù)的外力或它代表什么。這些數(shù)據(jù)集可以涉及結(jié)構(gòu) 化數(shù)據(jù),諸如在數(shù)據(jù)庫中或根據(jù)結(jié)構(gòu)化模型以其它方式組織的結(jié)構(gòu)化數(shù)據(jù),和/或非結(jié)構(gòu)化 數(shù)據(jù)(例如,電子郵件、圖像、數(shù)據(jù)blob(二進制大對象)、網(wǎng)頁、復(fù)雜事件處理)。通過充分利 用實施例相對快速地將更多(或更少)計算資源聚焦到目標(biāo)上的能力,云基礎(chǔ)設(shè)施系統(tǒng)可以 更好地可用于基于來自企業(yè)、政府機構(gòu)、研究機構(gòu)、私營個體、意見相同的個人或組織,或其 它實體的需求對大數(shù)據(jù)集執(zhí)行任務(wù)。
[0170] 在各種實施例中,云基礎(chǔ)設(shè)施系統(tǒng)702可以適于自動供給、管理和跟蹤客戶對由云 基礎(chǔ)設(shè)施系統(tǒng)702提供的服務(wù)的訂閱。云基礎(chǔ)設(shè)施系統(tǒng)702可以經(jīng)由不同的部署模型提供云 服務(wù)。例如,服務(wù)可以根據(jù)公共云模型來提供,其中云基礎(chǔ)設(shè)施系統(tǒng)702由銷售云服務(wù)的組 織擁有(例如,被Oracle擁有)并且使得服務(wù)對一般公眾和不同行業(yè)的企業(yè)可用。作為另一 個例子,服務(wù)可以根據(jù)私有云模型來提供,其中云基礎(chǔ)設(shè)施系統(tǒng)702只為單個組織運營并且 可以為該組織內(nèi)的一個或多個實體提供服務(wù)。云服務(wù)也可以根據(jù)社區(qū)云模型來提供,其中 云基礎(chǔ)設(shè)施系統(tǒng)702和由云基礎(chǔ)設(shè)施系統(tǒng)702提供的服務(wù)被相關(guān)社區(qū)中的若干個組織共享。 云服務(wù)也可以根據(jù)混合云模型來提供,它是兩種或更多種不同模型的組合。
[0171] 在一些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)702提供的服務(wù)可以包括根據(jù)軟件即服務(wù) (SaaS)類別、平臺即服務(wù)(PaaS)類別、基礎(chǔ)設(shè)施即服務(wù)(IaaS)類別、或包括混合服務(wù)的其它 服務(wù)類別提供的一個或多個服務(wù)。客戶經(jīng)由訂閱訂單可以訂閱由云基礎(chǔ)設(shè)施系統(tǒng)702提供 的一個或多個服務(wù)。云基礎(chǔ)設(shè)施體系702然后執(zhí)行處理,以提供在客戶的訂閱訂單中的服 務(wù)。
[0172] 在一些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)702提供的服務(wù)可以包括但不限于,應(yīng)用服 務(wù)、平臺服務(wù)和基礎(chǔ)設(shè)施服務(wù)。在一些實例中,應(yīng)用服務(wù)可以經(jīng)由SaaS平臺由云基礎(chǔ)設(shè)施系 統(tǒng)提供。SaaS平臺可被配置為提供屬于SaaS類別的云服務(wù)。例如,SaaS平臺可以提供在集成 開發(fā)和部署平臺上構(gòu)建和交付一套按需應(yīng)用的能力。SaaS平臺可以管理和控制用于提供 SaaS服務(wù)的底層軟件和基礎(chǔ)設(shè)施。通過利用由SaaS平臺提供的服務(wù),客戶可以利用在云基 礎(chǔ)設(shè)施系統(tǒng)上執(zhí)行的應(yīng)用??蛻艨梢垣@取應(yīng)用服務(wù),而無需客戶購買單獨的許可和支持???以提供各種不同的SaaS服務(wù)。例子包括但不限于,提供用于大型企業(yè)的銷售績效管理、企業(yè) 整合和業(yè)務(wù)靈活性的解決方案的服務(wù)。
[0173] 在一些實施例中,平臺服務(wù)可以經(jīng)由PaaS平臺由云基礎(chǔ)設(shè)施系統(tǒng)提供。PaaS平臺 可被配置為提供屬于PaaS類別的云服務(wù)。平臺服務(wù)的例子可以包括但不限于,使組織(諸如 Oracle)能夠在共享、公共的體系架構(gòu)上整合現(xiàn)有應(yīng)用,以及利用由平臺提供的共享服務(wù)構(gòu) 建新應(yīng)用的能力的服務(wù)。PaaS平臺可以管理和控制用于提供PaaS服務(wù)的底層軟件和基礎(chǔ)設(shè) 施??蛻艨梢垣@得由云基礎(chǔ)設(shè)施系統(tǒng)提供的PaaS服務(wù),而無需客戶購買單獨的許可和支持。 平臺服務(wù)的例子包括但不限于,Oracle Java云服務(wù)(Oracle Java Cloud Service,JCS)、 Oracle數(shù)據(jù)庫云服務(wù)(Oracle Database Cloud Service,DBCS)以及其它服務(wù)。
[0174] 通過利用由PaaS平臺提供的服務(wù),客戶可以采用由云基礎(chǔ)設(shè)施系統(tǒng)支持的編程語 言和工具并且也可以控制所部署的服務(wù)。在一些實施例中,由云基礎(chǔ)設(shè)施系統(tǒng)提供的平臺 服務(wù)可以包括數(shù)據(jù)庫云服務(wù)、中間件云服務(wù)(例如,Oracle Fusion Middleware服務(wù))和 Java云服務(wù)。在一種實施例中,數(shù)據(jù)庫云服務(wù)可以支持使組織能夠集中數(shù)據(jù)庫資源并且以 數(shù)據(jù)庫云的形式為客戶提供數(shù)據(jù)庫即服務(wù)的共享服務(wù)部署模型。中間件云服務(wù)可以為客戶 提供平臺來開發(fā)和部署各種商業(yè)應(yīng)用,并且Java云服務(wù)可以為客戶提供在云基礎(chǔ)設(shè)施系統(tǒng) 中部署Java應(yīng)用的平臺。
[0175] 各種不同的基礎(chǔ)設(shè)施服務(wù)可以由云基礎(chǔ)設(shè)施系統(tǒng)中的IaaS平臺提供?;A(chǔ)設(shè)施服 務(wù)促進對諸如存儲、網(wǎng)絡(luò)和其它基本計算資源的底層計算資源的管理和控制,以便讓客戶 利用由SaaS平臺和PaaS平臺提供的服務(wù)。
[0176] 在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)702也可以包括用于提供用來向云基礎(chǔ)設(shè)施系 統(tǒng)的客戶提供各種服務(wù)的資源的基礎(chǔ)設(shè)施資源730。在一種實施例中,基礎(chǔ)設(shè)施資源730可 以包括諸如服務(wù)器、存儲和網(wǎng)絡(luò)資源的硬件的預(yù)先集成和優(yōu)化組合,以便執(zhí)行由PaaS平臺 和SaaS平臺提供的服務(wù)。
[0177] 在一些實施例中,在云基礎(chǔ)設(shè)施系統(tǒng)702中的資源可以被多個用戶共享并且動態(tài) 地按需重新分配。此外,資源可以被分配給在不同時區(qū)的用戶。例如,云基礎(chǔ)設(shè)施系統(tǒng)730可 以使在第一時區(qū)的第一組用戶能夠利用云基礎(chǔ)設(shè)施系統(tǒng)的資源指定的小時數(shù),并且然后使 相同資源重新分配給位于不同時區(qū)的另一組用戶,從而最大化資源的利用率。
[0178] 在某些實施例中,可以提供由云基礎(chǔ)設(shè)施系統(tǒng)702的不同組件或模塊以及由云基 礎(chǔ)設(shè)施系統(tǒng)702提供的服務(wù)共享的多個內(nèi)部共享服務(wù)732。這些內(nèi)部共享服務(wù)可以包括,但 不限于,安全和身份服務(wù)、集成服務(wù)、企業(yè)信息庫服務(wù)、企業(yè)管理服務(wù)、病毒掃描和白名單服 務(wù)、高可用性、備份和恢復(fù)服務(wù)、用于啟用云支持的服務(wù)、電子郵件服務(wù)、通知服務(wù)、文件傳 輸服務(wù),等等。
[0179] 在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)702可以提供在云基礎(chǔ)設(shè)施系統(tǒng)中云服務(wù)(例 如,SaaS、PaaS和IaaS服務(wù))的綜合管理。在一種實施例中,云管理功能可以包括用于供給、 管理和跟蹤由云基礎(chǔ)設(shè)施系統(tǒng)702接收到的客戶的訂閱等能力。
[0180] 在一種實施例中,如該圖中所繪出的,云管理功能可以由一個或多個模塊提供,諸 如訂單管理模塊720、訂單編制模塊722、訂單供給模塊724、訂單管理和監(jiān)視模塊726、以及 身份管理模塊728。這些模塊可以包括一個或多個計算機和/或服務(wù)器或者利用一個或多個 計算機和/或服務(wù)器來提供,該一個或多個計算機和/或服務(wù)器可以是通用計算機、專用服 務(wù)器計算機、服務(wù)器群、服務(wù)器集群、或任何其它適當(dāng)?shù)牟贾煤?或組合。
[0181] 在示例性操作734中,使用客戶端設(shè)備,諸如客戶端設(shè)備704、706或708,的客戶可 以通過請求由云基礎(chǔ)設(shè)施系統(tǒng)702提供的一個或多個服務(wù)和為由云基礎(chǔ)設(shè)施系統(tǒng)702提供 的一個或多個服務(wù)下訂閱訂單來與云基礎(chǔ)設(shè)施系統(tǒng)702交互。在某些實施例中,客戶可以訪 問云用戶界面(UI)、云UI 712、云UI 714和/或云UI 716并且經(jīng)由這些UI下訂閱訂單。響應(yīng) 于客戶下訂單而被云基礎(chǔ)設(shè)施系統(tǒng)602接收到的訂單信息可以包括識別客戶和客戶想要訂 閱的由云基礎(chǔ)設(shè)施系統(tǒng)702提供的一個或多個服務(wù)的信息。
[0182] 在客戶下訂單之后,訂單信息經(jīng)由云UI 712、714和/或716被接收。
[0183] 在操作736,訂單被存儲在訂單數(shù)據(jù)庫718中。訂單數(shù)據(jù)庫718可以是由云基礎(chǔ)設(shè)施 系統(tǒng)718操作并且結(jié)合其它系統(tǒng)元素一起操作的若干個數(shù)據(jù)庫之一。
[0184]在操作738,訂單信息被轉(zhuǎn)發(fā)到訂單管理模塊720。在一些情況下,訂單管理模塊 720可被配置為執(zhí)行與訂單相關(guān)的計費和記帳功能,諸如驗證訂單,以及在驗證后預(yù)訂訂 單。
[0185] 在操作740,關(guān)于訂單的信息被傳送到訂單編制模塊722。訂單編制模塊722可以利 用訂單信息來編制用于由客戶所下訂單的服務(wù)和資源的供給。在一些情況下,訂單編制模 塊722可以編制資源的供給,以利用訂單供給模塊724的服務(wù)支持訂閱的服務(wù)。
[0186] 在某些實施例中,訂單編制模塊722使得能夠管理與每個訂單相關(guān)聯(lián)的業(yè)務(wù)流程 并且應(yīng)用業(yè)務(wù)邏輯,以確定訂單是否應(yīng)該繼續(xù)供給。在操作742,當(dāng)接收到新訂閱的訂單時, 訂單編制模塊722發(fā)送請求到訂單供給模塊724,以分配資源和配置履行訂閱訂單所需的那 些資源。訂單供給模塊724使得能夠分配用于客戶訂閱的服務(wù)的資源。訂單供給模塊724在 由云基礎(chǔ)設(shè)施系統(tǒng)700提供的云服務(wù)和用于為了提供所請求的服務(wù)供給資源的物理實現(xiàn)層 之間提供一層抽象。訂單編制模塊722可以因此與實現(xiàn)細(xì)節(jié)隔離,諸如服務(wù)和資源是實際上 在運行中被供給還是預(yù)先被供給并且只在請求時被分配/指定。
[0187] 在操作744,一旦服務(wù)和資源被供給,所提供的服務(wù)的通知就可以通過云基礎(chǔ)設(shè)施 系統(tǒng)702的訂單供給模塊724發(fā)送給在客戶端設(shè)備704、706和/或708的客戶。
[0188] 在操作746,客戶的訂閱訂單可以被訂單管理和監(jiān)視模塊726管理和跟蹤。在一些 情況下,訂單管理和監(jiān)視模塊726可被配置為收集訂閱訂單中的服務(wù)的使用統(tǒng)計數(shù)據(jù),諸如 使用的存儲量、傳送的數(shù)據(jù)量、用戶的數(shù)量、以及系統(tǒng)上線時間和系統(tǒng)停機時間的量。
[0189] 在某些實施例中,云基礎(chǔ)設(shè)施系統(tǒng)700可以包括身份管理模塊728。身份管理模塊 728可被配置為提供身份服務(wù),諸如在云基礎(chǔ)設(shè)施系統(tǒng)700中的訪問管理和授權(quán)服務(wù)。在一 些實施例中,身份管理模塊728可以控制關(guān)于希望利用由云基礎(chǔ)設(shè)施系統(tǒng)702提供的服務(wù)的 客戶的信息。這種信息可以包括驗證這種客戶的身份的信息和描述這些客戶被授權(quán)相對于 各種系統(tǒng)資源(例如,文件、目錄、應(yīng)用、通信端口、存儲器段、等等)執(zhí)行哪些行為的信息。身 份管理模塊728也可以包括關(guān)于每個客戶的描述性信息和關(guān)于描述性信息可以如何以及由 誰來訪問和修改的管理。
[0190]圖8示出了其中可以實現(xiàn)本發(fā)明的各種實施例的示例性計算機系統(tǒng)800。計算機系 統(tǒng)800可以被用來實現(xiàn)上述任何計算機系統(tǒng)。例如,計算機系統(tǒng)100的全部或一些元件、計算 機系統(tǒng)200的全部或一些元件或它們的組合可以包括在計算機系統(tǒng)800中或在其中實現(xiàn)。計 算機系統(tǒng)800可以實現(xiàn)操作、方法和/或過程(例如,圖4的過程400或圖5的過程500)。如該圖 中所示出的,計算機系統(tǒng)800包括經(jīng)由總線子系統(tǒng)802與多個外圍子系統(tǒng)通信的處理單元 804。這些外圍子系統(tǒng)可以包括處理加速單元806、I/O子系統(tǒng)808、存儲子系統(tǒng)818和通信子 系統(tǒng)824。存儲子系統(tǒng)818包括有形計算機可讀存儲介質(zhì)822和系統(tǒng)存儲器810。
[0191] 總線子系統(tǒng)802提供了用于讓計算機系統(tǒng)800的各種組件和子系統(tǒng)按意圖彼此通 信的機制。雖然總線子系統(tǒng)802被示意性地示為單條總線,但是總線子系統(tǒng)的備選實施例可 以利用多條總線??偩€子系統(tǒng)802可以是若干種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器 總線或存儲器控制器、外圍總線、以及利用任何各種總線體系結(jié)構(gòu)的局部總線。例如,這種 體系結(jié)構(gòu)可以包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強型ISA (EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局部總線和外圍組件互連(PCI)總線,其可以被實現(xiàn) 為按IEEE P1386.1標(biāo)準(zhǔn)制造的Mezzanine總線。
[0192] 可以被實現(xiàn)為一個或多個集成電路(例如,常規(guī)微處理器或微控制器)的處理單元 804控制計算機系統(tǒng)800的操作。一個或多個處理器可以被包括在處理單元804中。這些處理 器可以包括單核或多核處理器。在某些實施例中,處理單元804可以被實現(xiàn)為一個或多個獨 立的處理單元832和/或834,其中在每個處理單元中包括單核或多核處理器。在其它實施例 中,處理單元804也可以被實現(xiàn)為通過將兩個雙核處理器集成到單個芯片中形成的四核處 理單元。
[0193] 在各種實施例中,處理單元804可以響應(yīng)于程序代碼執(zhí)行各種程序并且可以維護 多個并發(fā)執(zhí)行的程序或進程。在任何給定的時間,要被執(zhí)行的程序代碼中的一些或全部代 碼可以駐留在(一個或多個)處理器804中和/或存儲子系統(tǒng)818中。通過適當(dāng)?shù)木幊?,(一個 或多個)處理器804可以提供上述各種功能。計算機系統(tǒng)800可以附加地包括處理加速單元 806,其可以包括數(shù)字信號處理器(DSP)、專用處理器,等等。
[0194] I/O子系統(tǒng)808可以包括用戶接口輸入設(shè)備和用戶接口輸出設(shè)備。用戶接口輸入設(shè) 備可以包括鍵盤、諸如鼠標(biāo)或軌跡球的定點設(shè)備、結(jié)合到顯示器中的觸摸板或觸摸屏、滾動 輪、點擊輪、撥盤、按鈕、開關(guān)、鍵盤、具有語音命令識別系統(tǒng)的音頻輸入設(shè)備、麥克風(fēng)以及其 它類型的輸入設(shè)備。用戶接口輸入設(shè)備可以包括,例如,運動感測和/或手勢識別設(shè)備,諸如 的Mi cr〇s〇ftK;ineet_?運動傳感器,其使得用戶能夠通過利用手勢和語音命令的自然用戶 接口控制諸如的Microsoft XboxwSeo游戲控制器的輸入設(shè)備并與之交互。用戶接口輸入 設(shè)備也可以包括眼睛姿勢識別設(shè)備,諸如從用戶檢測眼睛活動(例如,當(dāng)拍拍攝照片和/或 做出菜單選擇時的"眨眼")并且將眼睛姿勢轉(zhuǎn)換為到輸入設(shè)備(例如,GoogleGlass?)中 的輸入的GoogleGlass?眨眼檢測器。此外,用戶接口輸入設(shè)備可以包括使用戶能夠通過語 音命令與語音識別系統(tǒng)(例如,iSiri?導(dǎo)航器)交互的語音識別感測設(shè)備
[0195] 用戶接口輸入設(shè)備也可以包括,但不限于,三維(3D)鼠標(biāo)、操縱桿或指向棒、游戲 面板和繪圖板,以及音頻/視頻設(shè)備,諸如揚聲器、數(shù)碼相機、數(shù)碼攝像機、便攜式媒體播放 器、網(wǎng)絡(luò)攝像頭、圖像掃描儀、指紋掃描儀、條形碼閱讀器3D掃描儀、3D打印機、激光測距儀 和視線跟蹤設(shè)備。此外,用戶接口輸入設(shè)備可以包括,例如,醫(yī)學(xué)成像輸入設(shè)備,諸如計算機 斷層掃描、磁共振成像、正電子發(fā)射斷層攝影術(shù)、醫(yī)療超聲設(shè)備。用戶接口輸入設(shè)備也可以 包括,例如,諸如MIDI鍵盤、數(shù)字樂器等的音頻輸入設(shè)備。
[0196] 用戶接口輸出設(shè)備可以包括顯示子系統(tǒng)、指示燈,或者諸如音頻輸出設(shè)備的非視 覺顯示器,等等。顯示子系統(tǒng)可以是陰極射線管(CRT)、諸如利用液晶顯示器(LCD)或等離子 顯示器的平板設(shè)備、投影設(shè)備、觸摸屏,等等。一般而言,術(shù)語"輸出設(shè)備"的使用意在包括用 于從計算機系統(tǒng)800向用戶或其它計算機輸出信息的所有可能類型的設(shè)備和機制。例如,用 戶接口輸出設(shè)備可以包括,但不限于,在視覺上傳達文字、圖形和音頻/視頻信息的各種顯 示設(shè)備,諸如監(jiān)視器、打印機、揚聲器、耳機、汽車導(dǎo)航系統(tǒng)、繪圖儀、語音輸出設(shè)備,以及調(diào) 制解調(diào)器。
[0197] 計算機系統(tǒng)800可以包括包含軟件元素、被示為當(dāng)前位于系統(tǒng)存儲器810中的存儲 子系統(tǒng)818。系統(tǒng)存儲器810可以存儲可加載并且可在處理單元804上執(zhí)行的程序指令,以及 在這些程序執(zhí)行期間所產(chǎn)生的數(shù)據(jù)。
[0198] 依賴于計算機系統(tǒng)800的配置和類型,系統(tǒng)存儲器810可以是易失性的(諸如隨機 存取存儲器(RAM))和/或非易失性的(諸如只讀存儲器(R0M)、閃存存儲器,等等)AAM通常 包含可被處理單元80位即訪問和/或目前正被處理單元804操作和執(zhí)行的數(shù)據(jù)和/或程序 模塊。在一些實現(xiàn)中,系統(tǒng)存儲器810可以包括多種不同類型的存儲器,例如靜態(tài)隨機存取 存儲器(SRAM)或動態(tài)隨機存取存儲器(DRAM)。在一些實現(xiàn)中,諸如在啟動期間,包含有助于 在計算機系統(tǒng)800的元件之間傳送信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS),通常可以 被存儲在ROM中。作為例子,但不是限制,系統(tǒng)存儲器810也示出了可以包括客戶端應(yīng)用、web 瀏覽器、中間層應(yīng)用、關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)等的應(yīng)用程序812,程序數(shù)據(jù)814,以及操 作系統(tǒng)816。作為例子,操作系統(tǒng)816可以包括各種版本的Microsof tWindOWsiApple IVladntosh?和/或Linux操作系統(tǒng)、各種商用UNIX?或類UNIX操作系統(tǒng)(包括但不限于 各種GNU/Linux操作系統(tǒng)、G〇〇gieCh:r〇m.<e fe操作系統(tǒng),等等)和/或諸如i〇s、_Win.d:ow_s? Phone、 Aitdmid?os、B】ackBerry?Io os和Palm?os操作系統(tǒng)的移動操作系統(tǒng)。
[0199] 存儲子系統(tǒng)818也可以提供用于存儲提供一些實施例的功能的基本編程和數(shù)據(jù)結(jié) 構(gòu)的有形計算機可讀存儲介質(zhì)。當(dāng)被處理器執(zhí)行時提供上述功能的軟件(程序、代碼模塊、 指令)可以被存儲在存儲子系統(tǒng)818中。這些軟件模塊或指令可以被處理單元804執(zhí)行。存儲 子系統(tǒng)818也可以提供用于存儲根據(jù)本發(fā)明被使用的數(shù)據(jù)的儲存庫。
[0200] 存儲子系統(tǒng)818也可以包括可被進一步連接到計算機可讀存儲介質(zhì)822的計算機 可讀存儲介質(zhì)讀取器820。與系統(tǒng)存儲器810-起并且,可選地,與其相結(jié)合,計算機可讀存 儲介質(zhì)822可以全面地表示用于臨時和/或更持久地包含、存儲、發(fā)送和檢索計算機可讀信 息的遠(yuǎn)程、本地、固定和/或可移動存儲設(shè)備加存儲介質(zhì)。
[0201] 包含代碼或代碼的部分的計算機可讀存儲介質(zhì)822也可以包括本領(lǐng)域已知或使用 的任何適當(dāng)?shù)慕橘|(zhì),包括存儲介質(zhì)和通信介質(zhì),諸如但不限于,以用于信息的存儲和/或傳 輸?shù)娜魏畏椒ɑ蚣夹g(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。這可以包括有形 的、非臨時性計算機可讀存儲介質(zhì),諸如RAM、R0M、電可擦除可編程ROM(EEPROM)、閃存存儲 器或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光學(xué)儲存器、磁帶盒、磁帶、磁盤 儲存器或其它磁存儲設(shè)備,或者其它有形的計算機可讀介質(zhì)。當(dāng)被指定時,這也可以包括非 有形的、臨時性計算機可讀介質(zhì),諸如數(shù)據(jù)信號、數(shù)據(jù)傳輸,或者可以被用來發(fā)送期望信息 并且可以被計算系統(tǒng)700訪問的任何其它介質(zhì)。
[0202] 作為例子,計算機可讀存儲介質(zhì)822可以包括從不可移動的非易失性磁介質(zhì)讀取 或?qū)懙狡涞挠脖P驅(qū)動器、從可移動的非易失性磁盤讀取或?qū)懙狡涞拇疟P驅(qū)動器、以及從可 移動的非易失性光盤,諸如CD rom、dvd和Bhi-Ray_?盤或其它光學(xué)介質(zhì),讀取或?qū)懙狡涞?光盤驅(qū)動器。計算機可讀存儲介質(zhì)822可以包括,但不限于,Zip?驅(qū)動器、閃存卡、通用串行 總線(USB)閃存驅(qū)動器、安全數(shù)字(SD)卡、DVD盤、數(shù)字音頻帶,等等。計算機可讀存儲介質(zhì) 722也可以包括基于非易失性存儲器的固態(tài)驅(qū)動器(SSD),諸如基于閃存存儲器的SSD、企業(yè) 閃存驅(qū)動器、固態(tài)ROM等,基于易失性存儲器的SSD,諸如固態(tài)RAM、動態(tài)RAM、靜態(tài)RAM,基于 DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和閃存存儲器的SSD的組合的混合SSD。 盤驅(qū)動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)可以為計算機系統(tǒng)800提供計算機可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊及其它數(shù)據(jù)的非易失性存儲。
[0203]通信子系統(tǒng)824提供到其它計算機系統(tǒng)和網(wǎng)絡(luò)的接口。通信子系統(tǒng)824用作用于從 其它系統(tǒng)接收數(shù)據(jù)和從計算機系統(tǒng)800向其它系統(tǒng)發(fā)送數(shù)據(jù)的接口。例如,通信子系統(tǒng)824 可以使計算機系統(tǒng)800能夠經(jīng)由互聯(lián)網(wǎng)連接到一個或多個設(shè)備。在一些實施例中,通信子系 統(tǒng)824可以包括用于訪問無線語音和/或數(shù)據(jù)網(wǎng)絡(luò)的射頻(RF)收發(fā)器組件(例如,利用蜂窩 電話技術(shù),諸如3G、4G或EDGE(用于全球演進的增強型數(shù)據(jù)速率)的先進數(shù)據(jù)網(wǎng)絡(luò)技術(shù),WiFi (IEEE 802.11系列標(biāo)準(zhǔn)),或其它移動通信技術(shù),或其任意組合)、全球定位系統(tǒng)(GPS)接收 器組件和/或其它組件。在一些實施例中,作為無線接口的附加或者替代,通信子系統(tǒng)824可 以提供有線網(wǎng)絡(luò)連接(例如,以太網(wǎng))。
[0204]在一些實施例中,通信子系統(tǒng)824也可以代表可以使用計算機系統(tǒng)800的一個或多 個用戶接收結(jié)構(gòu)化和/或非結(jié)構(gòu)化數(shù)據(jù)饋送826、事件流828、事件更新830等形式的輸入通 {目。
[0205] 作為例子,通信子系統(tǒng)824可被配置為實時地從社交媒體網(wǎng)絡(luò)和/或其它通信服務(wù) 的用戶接收數(shù)據(jù)饋送8 2 6,諸如TwIttefii饋送、Facebook?更新、諸如豐富站點摘要 (RSS)饋送的web饋送和/或來自一個或多個第三方信息源的實時更新。
[0206] 此外,通信子系統(tǒng)824也可被配置為接收連續(xù)數(shù)據(jù)流形式的數(shù)據(jù),這可以包括本質(zhì) 上可以是連續(xù)的或無界的沒有明確終止的實時事件的事件流828和/或事件更新830。產(chǎn)生 連續(xù)數(shù)據(jù)的應(yīng)用的例子可以包括,例如,傳感器數(shù)據(jù)應(yīng)用、金融報價機、網(wǎng)絡(luò)性能測量工具 (例如,網(wǎng)絡(luò)監(jiān)視和流量管理應(yīng)用)、點擊流分析工具、汽車流量監(jiān)視,等等。
[0207] 通信子系統(tǒng)824也可被配置為向一個或多個數(shù)據(jù)庫輸出結(jié)構(gòu)化和/或非結(jié)構(gòu)化數(shù) 據(jù)饋送826、事件流828、事件更新830,等等,這一個或多個數(shù)據(jù)庫可以與耦合到計算機系統(tǒng) 800的一個或多個流式數(shù)據(jù)源計算機通信。
[0208] 計算機系統(tǒng)800可以是各種類型之一,包括手持便攜式設(shè)備(例如,iPhone'?蜂窩 電話、iPad?計算平板、PDA)、可穿戴設(shè)備(例如,GoogleCiass?頭戴式顯示器)、pc、工作 站、大型機、信息站,服務(wù)器機架,或任何其它數(shù)據(jù)處理系統(tǒng)。
[0209] 由于計算機和網(wǎng)絡(luò)的不斷變化的本質(zhì),在圖中繪出的計算機系統(tǒng)800的描述僅僅 要作為具體的例子。具有比圖中繪出的系統(tǒng)更多或更少組件的許多其它配置是可能的。例 如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、軟件(包括applets)或它 們的組合來實現(xiàn)。另外,也可以采用到諸如網(wǎng)絡(luò)輸入/輸出設(shè)備之類的其它計算設(shè)備的連 接?;诒疚奶峁┑墓_內(nèi)容和示教,本領(lǐng)域普通技術(shù)人員將認(rèn)識到實現(xiàn)各種實施例的其 它方式和/或方法。
[0210] 根據(jù)一些實施例,圖9繪出了如上所述根據(jù)本發(fā)明的原理配置的示例性計算機系 統(tǒng)900的功能框圖。計算機系統(tǒng)900的功能塊可以由硬件、軟件或硬件和軟件的組合來實現(xiàn), 以執(zhí)行本發(fā)明的原理。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖9中所描述的功能塊可以被組合或分離 為子塊,以實現(xiàn)如上所述根據(jù)本發(fā)明的原理。因此,本文的描述可以支持本文所描述的功能 塊的任何可能的組合或分離或者進一步定義。
[0211] 參照圖9,計算機系統(tǒng)900可以包括第一接收器902和第二接收器904。第一接收器 902可以接收用于配置多個模板執(zhí)行環(huán)境的模板執(zhí)行環(huán)境的標(biāo)準(zhǔn)。多個模板執(zhí)行環(huán)境中的 每個模板執(zhí)行環(huán)境可以建立孩子執(zhí)行環(huán)境,并且多個模板執(zhí)行環(huán)境中的每個模板執(zhí)行環(huán)境 可被配置為執(zhí)行不同類型的定制可執(zhí)行指令。第二接收器904可以利用第一通信協(xié)議從計 算設(shè)備(未示出)接收執(zhí)行定制可執(zhí)行指令的請求。
[0212] 計算機系統(tǒng)900還可以包括分類單元906。分類單元906可以分類對應(yīng)于所請求的 定制可執(zhí)行指令的定制可執(zhí)行指令的類型。然后,計算機系統(tǒng)900的選擇單元908可以基于 分類的定制可執(zhí)行指令的類型從多個模板執(zhí)行環(huán)境中選擇第一模板執(zhí)行環(huán)境。如圖所示, 第一執(zhí)行單元910可以執(zhí)行第一模板執(zhí)行環(huán)境。
[0213] 計算機系統(tǒng)還可以包括可以建立第一孩子執(zhí)行環(huán)境以便執(zhí)行所請求的定制可執(zhí) 行指令的建立單元912。第一孩子執(zhí)行環(huán)境可以基于第一模板執(zhí)行環(huán)境被建立。加載單元 914可以加載所請求的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行。然后,配置單元 916可以配置對于第一孩子執(zhí)行環(huán)境的訪問許可,并且第二執(zhí)行單元918可以在第一孩子執(zhí) 行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令。所請求的定制可執(zhí)行指令可以在為第一孩子執(zhí)行 環(huán)境配置訪問許可之后執(zhí)行。
[0214] 在某些實施例中,計算機系統(tǒng)900可以是移動云計算機系統(tǒng),并且計算設(shè)備(未示 出)可以是移動計算設(shè)備。
[0215] 在某些實施例中,第一孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán)境的配置。
[0216] 在某些實施例中,配置單元916還包括被配置為調(diào)整用于訪問所請求的定制可執(zhí) 行指令的許可的調(diào)整單元917。許可可以被調(diào)整,以防止所請求的定制可執(zhí)行指令從第一孩 子執(zhí)行環(huán)境中被訪問。
[0217]在前述的說明書中,本發(fā)明的各方面參照其具體實施例進行了描述,但本領(lǐng)域技 術(shù)人員將認(rèn)識到,本發(fā)明不限于此。上述發(fā)明的各個特征和各方面可以被單獨或聯(lián)合使用。 另外,在不背離本說明書的更廣泛精神和范圍的情況下,實施例可以在除本文所述的那些 之外的任何數(shù)目的環(huán)境和應(yīng)用中被使用。相應(yīng)地,本說明書和附圖應(yīng)當(dāng)被認(rèn)為是說明性而 不是限制性的。
【主權(quán)項】
1. 一種方法,包括: 在云計算機系統(tǒng)中,執(zhí)行模板執(zhí)行環(huán)境,其中模板執(zhí)行環(huán)境被配置為建立孩子執(zhí)行環(huán) 境,每個孩子執(zhí)行環(huán)境被配置為執(zhí)行一條或多條定制可執(zhí)行指令; 由云計算機系統(tǒng),接收執(zhí)行定制可執(zhí)行指令的請求; 在云計算機系統(tǒng)中,建立第一孩子執(zhí)行環(huán)境,以執(zhí)行所請求的定制可執(zhí)行指令,其中第 一孩子執(zhí)行環(huán)境是基于模板執(zhí)行環(huán)境建立的; 由云計算機系統(tǒng),加載所請求的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行;然 后 由云計算機系統(tǒng),配置對于第一孩子執(zhí)行環(huán)境的訪問許可;及 由云計算機系統(tǒng),在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令,其中所請求 的定制可執(zhí)行指令在配置訪問許可之后執(zhí)行。2. 如權(quán)利要求1所述的方法,其中模板執(zhí)行環(huán)境是Java虛擬機(JVM)環(huán)境并且其中第一 孩子執(zhí)行環(huán)境是孩子JVM環(huán)境。3. 如權(quán)利要求1或2所述的方法,其中建立第一孩子執(zhí)行環(huán)境包括執(zhí)行fork命令,以從 模板執(zhí)行環(huán)境創(chuàng)建第一孩子執(zhí)行環(huán)境。4. 如權(quán)利要求1至3中任何一項所述的方法,其中第一孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán)境 的配置。5. 如權(quán)利要求1至4中任何一項所述的方法,其中配置訪問許可包括調(diào)整用于訪問不在 第一孩子執(zhí)行環(huán)境中的資源的許可,并且其中許可被調(diào)整,以防止所述資源從第一孩子執(zhí) 行環(huán)境中被訪問。6. 如權(quán)利要求1至5中任何一項所述的方法,其中訪問許可是通過用于模板執(zhí)行環(huán)境的 安全模型配置的。7. 如權(quán)利要求1至6中任何一項所述的方法,其中模板執(zhí)行環(huán)境是基于用于向計算機系 統(tǒng)注冊的租戶的至少一個標(biāo)準(zhǔn)來配置的。8. 如權(quán)利要求1至7中任何一項所述的方法,還包括: 從多個模板執(zhí)行環(huán)境中選擇模板執(zhí)行環(huán)境,其中所述多個模板執(zhí)行環(huán)境中的每個模板 執(zhí)行環(huán)境建立孩子執(zhí)行環(huán)境,并且其中所述多個模板執(zhí)行環(huán)境中的每個模板執(zhí)行環(huán)境被配 置為執(zhí)行不同類型的定制可執(zhí)行指令。9. 如權(quán)利要求8所述的方法,還包括: 分類對應(yīng)于所請求的定制可執(zhí)行指令的定制可執(zhí)行指令的類型,其中模板執(zhí)行環(huán)境基 于分類的定制可執(zhí)行指令的類型來選擇。10. 如權(quán)利要求1至9中任何一項所述的方法,還包括: 加載用于模板執(zhí)行環(huán)境的執(zhí)行的資源; 其中執(zhí)行所請求的定制可執(zhí)行指令的請求在加載用于模板執(zhí)行環(huán)境的執(zhí)行的資源之 后被接收。11. 如權(quán)利要求1至10中任何一項所述的方法,還包括: 在執(zhí)行模板執(zhí)行環(huán)境之前配置模板執(zhí)行環(huán)境。12. 如權(quán)利要求11所述的方法,其中配置模板執(zhí)行環(huán)境包括初始化用于模板執(zhí)行環(huán)境 的設(shè)置和初始化用于模板執(zhí)行環(huán)境的狀態(tài)。13. 如權(quán)利要求1至12中任何一項所述的方法,還包括: 在云計算機系統(tǒng)中,建立附加的孩子執(zhí)行環(huán)境,以執(zhí)行附加的客戶可執(zhí)行指令,其中附 加的孩子執(zhí)行環(huán)境基于模板執(zhí)行環(huán)境來建立; 加載附加的定制可執(zhí)行指令,用于在附加的孩子執(zhí)行環(huán)境中執(zhí)行; 設(shè)置用于附加的孩子執(zhí)行環(huán)境的訪問許可;及 在附加的孩子執(zhí)行環(huán)境中執(zhí)行附加的定制可執(zhí)行指令。14. 如權(quán)利要求1至13中任何一項所述的方法,還包括: 加載所請求的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行。15. -種計算機系統(tǒng),包括: 一個或多個處理器;及 一個或多個存儲器設(shè)備,耦合到一個或多個處理器,所述一個或多個存儲器設(shè)備包含 指令,當(dāng)指令在一個或多個處理器上執(zhí)行時,使得一個或多個處理器: 接收用于配置多個模板執(zhí)行環(huán)境中的模板執(zhí)行環(huán)境的標(biāo)準(zhǔn),其中所述多個模板執(zhí)行環(huán) 境中的每個模板執(zhí)行環(huán)境建立孩子執(zhí)行環(huán)境,并且其中所述多個模板執(zhí)行環(huán)境中的每個模 板執(zhí)行環(huán)境被配置為執(zhí)行不同類型的定制可執(zhí)行指令; 從計算設(shè)備利用第一通信協(xié)議接收執(zhí)行定制可執(zhí)行指令的請求; 分類對應(yīng)于所請求的定制可執(zhí)行指令的定制可執(zhí)行指令的類型; 從所述多個模板執(zhí)行環(huán)境中選擇第一模板執(zhí)行環(huán)境,其中第一模板執(zhí)行環(huán)境基于分類 的定制可執(zhí)行指令的類型來選擇; 執(zhí)行第一模板執(zhí)行環(huán)境; 建立第一孩子執(zhí)行環(huán)境,以執(zhí)行所請求的定制可執(zhí)行指令,其中第一孩子執(zhí)行環(huán)境基 于第一模板執(zhí)行環(huán)境來建立; 加載用于在第一孩子執(zhí)行環(huán)境中執(zhí)行的所請求的定制可執(zhí)行指令;然后 配置對于第一孩子執(zhí)行環(huán)境的訪問許可;及 在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令,其中所請求的定制可執(zhí)行指令 在為第一孩子執(zhí)行環(huán)境配置訪問許可后被執(zhí)行。16. 如權(quán)利要求15所述的計算機系統(tǒng),其中所述一個或多個處理器和所述一個或多個 存儲器設(shè)備包括在移動云計算機系統(tǒng)中,并且其中計算設(shè)備是移動計算設(shè)備。17. 如權(quán)利要求15或16所述的計算機系統(tǒng),其中第一孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán)境 的配置。18. 如權(quán)利要求15至17中任何一項所述的計算機系統(tǒng),其中配置訪問許可包括調(diào)整用 于訪問所請求的定制可執(zhí)行指令的許可,并且其中許可被調(diào)整,以防止所請求的定制可執(zhí) 行指令從第一孩子執(zhí)行環(huán)境中被訪問。19. 一種存儲一組指令的計算機可讀存儲器,當(dāng)指令被一個或多個處理器執(zhí)行時,使一 個或多個處理器: 執(zhí)行模板執(zhí)行環(huán)境,其中模板執(zhí)行環(huán)境被配置為建立孩子執(zhí)行環(huán)境,每個孩子執(zhí)行環(huán) 境被配置為執(zhí)行一條或多條定制可執(zhí)行指令; 接收執(zhí)行定制可執(zhí)行指令的請求; 建立第一孩子執(zhí)行環(huán)境,以執(zhí)行所請求的定制可執(zhí)行指令,其中第一孩子執(zhí)行環(huán)境基 于模板執(zhí)行環(huán)境來建立; 加載所請求的定制可執(zhí)行指令,用于在第一孩子執(zhí)行環(huán)境中執(zhí)行;然后 配置對于第一孩子執(zhí)行環(huán)境的訪問許可;及 在第一孩子執(zhí)行環(huán)境中執(zhí)行所請求的定制可執(zhí)行指令,其中所請求的定制可執(zhí)行指令 在配置訪問許可之后執(zhí)行。20.如權(quán)利要求19所述的計算機可讀存儲器,其中第一孩子執(zhí)行環(huán)境繼承模板執(zhí)行環(huán) 境的配置。
【文檔編號】H04L29/06GK105917627SQ201480073135
【公開日】2016年8月31日
【申請日】2014年9月17日
【發(fā)明人】M·凱斯, W·B·基爾戈雷, K·范德洛
【申請人】甲骨文國際公司