TW201826120A - 一種應用資源管理方法、使用方法及裝置 - Google Patents

一種應用資源管理方法、使用方法及裝置 Download PDF

Info

Publication number
TW201826120A
TW201826120A TW106136310A TW106136310A TW201826120A TW 201826120 A TW201826120 A TW 201826120A TW 106136310 A TW106136310 A TW 106136310A TW 106136310 A TW106136310 A TW 106136310A TW 201826120 A TW201826120 A TW 201826120A
Authority
TW
Taiwan
Prior art keywords
application
resource
resource package
package
application resource
Prior art date
Application number
TW106136310A
Other languages
English (en)
Inventor
姚忠孝
賈香宏
楊濤
黃顯東
董平
朱永盛
徐曉晶
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201826120A publication Critical patent/TW201826120A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申請公開了一種應用資源管理方法、使用方法及裝置。在應用資源管理方法中,接收應用開發包,所述應用開發包中包括至少一個應用組件的資源;獲取所述應用開發包中包含的應用組件的資源;對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包;為所述應用資源包建立索引,並儲存所述應用資源包。在應用資源使用方法中,接收應用資源獲取請求;根據所述應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包;運行獲取到的應用資源包中的應用組件。

Description

一種應用資源管理方法、使用方法及裝置
本申請涉及計算機技術領域,尤其涉及一種應用資源管理方法、使用方法及裝置。
隨著行動通訊技術的飛速發展和行動多媒體時代的到來,手機作為人們必備的行動通訊工具,已從簡單的通話工具向智能化發展,演變成一個行動的個人資訊收集和處理平台。借助操作系統和豐富的應用軟體,智能手機成了一台行動終端。 現有技術中,基於智能手機的應用程式需要首先安裝智能手機上才能使用。但一方面,很多應用實際上只在部分場景下需要,用戶並不會長期或經常使用,另一方面,用戶使用應用程式時可能僅使用其中的部分功能,其他功能可能幾乎從未使用,但這些應用程式會消耗大量內存資源。 因此,如何實現應用的輕量化,是目前業界面臨的問題。
一方面,本申請實施例提供了一種應用資源管理方法及裝置。 本申請實施例提供的應用資源管理方法,包括: 接收應用開發包,所述應用開發包中包括至少一個應用組件的資源;獲取所述應用開發包中包含的應用組件的資源;對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包;為所述應用資源包建立索引,並儲存所述應用資源包。 可選地,所述應用組件的資源包括以下之一或組合: 應用組件的程式代碼; 應用組件所使用的資源。 可選地,所述應用組件所使用的資源,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。 可選地,為所述應用資源包建立索引,包括:為所述應用資源包建立第一級索引和第二級索引以及之間的映射關係,一個應用資源包的第一級索引用於描述該應用資源包提供的服務,一個應用資源包的第二級索引包括該應用資源包的唯一標識。 可選地,還包括:發佈所述應用資源包的鏈接資訊,其中,所述鏈接資訊的顯示本文根據所述應用資源包的第一級索引得到,所述鏈接資訊關聯的URI根據所述應用資源包的第二級索引得到。 可選地,還包括:為所述應用資源包分配圖形化識別碼,一個應用資源包的圖形化識別碼與該應用資源包的第二級索引關聯。 可選地,所述第一級索引包括本文,所述第二級索引包括URI。 可選地,所述應用開發包中還包括用於描述應用組件的配置資訊;獲取所述應用開發包中包含的應用組件的資源,包括:根據所述用於描述應用組件的配置資訊,從所述應用開發包中獲得所述配置資訊所描述的應用組件的資源。 可選地,對獲取到的應用組件的資源進行封裝時,在應用資源包中添加簽名資訊。 可選地,還包括:根據所述應用開發包的簽名資訊,對所述應用開發包進行身份合法性驗證;其中,所述應用開發包的簽名資訊中包含所述應用開發包的身份資訊。 可選地,還包括:對所述應用開發包進行資料完整性驗證。 可選地,所述應用組件為雲端操作系統中的應用組件。 本申請實施例提供的伺服器,包括: 封裝模組,用於接收應用開發包,所述應用開發包中包括至少一個應用組件的資源;獲取所述應用開發包中包含的應用組件的資源;以及,對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包; 儲存模組,用於為所述應用資源包建立索引,並儲存所述應用資源包。 可選地,所述應用組件的資源包括以下之一或組合: 應用組件的程式代碼; 應用組件所使用的資源。 可選地,所述應用組件所使用的資源,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。 可選地,所述儲存模組具體用於:為所述應用資源包建立第一級索引和第二級索引以及之間的映射關係,一個應用資源包的第一級索引用於描述該應用資源包提供的服務,一個應用資源包的第二級索引包括該應用資源包的唯一標識。 可選地,還包括:發佈模組,用於發佈所述應用資源包的鏈接資訊,其中,所述鏈接資訊的顯示本文根據所述應用資源包的第一級索引得到,所述鏈接資訊關聯的URI根據所述應用資源包的第二級索引得到。 可選地,還包括:發佈模組,用於為所述應用資源包分配圖形化識別碼,一個應用資源包的圖形化識別碼與該應用資源包的第二級索引關聯。 可選地,所述第一級索引包括本文,所述第二級索引包括URI。 可選地,所述應用開發包中還包括用於描述應用組件的配置資訊;所述封裝模組具體用於:根據所述用於描述應用組件的配置資訊,從所述應用開發包中獲得所述配置資訊所描述的應用組件的資源。 可選地,所述封裝模組具體用於:對獲取到的應用組件的資源進行封裝時,在應用資源包中添加簽名資訊。 可選地,還包括:驗證模組,用於根據所述應用開發包的簽名資訊,對所述應用開發包進行身份合法性驗證;其中,所述應用開發包的簽名資訊中包含所述應用開發包的身份資訊。 可選地,還包括:驗證模組,用於對所述應用開發包進行資料完整性驗證。 可選地,所述應用組件為雲端操作系統中的應用組件。 本申請實施例提供的通訊裝置,包括:儲存器,用於儲存計算機程式指令;處理器,耦合到所述儲存器,用於讀取所述儲存器儲存的計算機程式指令,並作為回應,執行前述實施例提供所述的方法。 本申請實施例提供的一個或多個計算機可讀媒體,所述可讀媒體上儲存有指令,所述指令被一個或多個處理器執行時,使得通訊設備執行前述實施例提供的方法。 另一方面,本申請實施例提供了一種應用資源使用方法及裝置。 本申請實施例提供的應用使用方法,包括:接收應用資源獲取請求;根據所述應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包;運行獲取到的應用資源包中的應用組件。 可選地,根據所述應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包,包括:根據所述應用資源獲取請求,查詢快取的以應用組件為資源組織單位的應用資源包,若快取的應用資源中包括所請求的應用資源包,則從快取的應用資源包中獲取所請求的應用資源包;否則,向伺服器請求獲取所請求的以應用組件為資源組織單位的應用資源包。 可選地,若快取的應用資源中包括所請求的應用資源包,則還包括:針對快取的所述應用資源包,確定該應用資源包是否有更新版本,若有,則從伺服器請求獲取更新版本的應用資源包,並用獲取到的更新版本的應用資源包更新快取的相應應用資源包。 可選地,所述應用資源包中包括應用組件的程式代碼文件以及該應用組件所使用的資源文件;若快取的應用資源包中包括所請求的應用資源包,則還包括:針對快取的所述所請求的應用資源包,確定該應用資源包中包括的文件是否有更新版本,若有,則從伺服器請求獲取該應用資源包中的更新版本的文件,並用獲取到的更新版本的文件更新快取的該應用資源包中相應的文件。 可選地,所述應用組件所使用的資源文件,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。 可選地,還包括:將從伺服器獲取到的應用資源包進行快取。 本申請實施例提供的客戶端設備,包括: 運行時排程模組,用於向應用管理模組發送應用資源獲取請求; 所述應用管理模組,用於根據所述應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包,並將獲取到的應用資源包發送給所述運行時排程模組; 所述運行時排程模組,還用於運行獲取到的應用資源包中的應用組件。 可選地,所述應用管理模組具體用於:根據所述應用資源獲取請求,查詢快取的以應用組件為資源組織單位的應用資源包,若快取的應用資源中包括所請求的應用資源包,則從快取的應用資源包中獲取所請求的應用資源包;否則,向伺服器請求獲取所請求的以應用組件為資源組織單位的應用資源包。 可選地,所述應用管理模組還用於:若快取的應用資源中包括所請求的應用資源包,則針對快取的所述應用資源包,確定該應用資源包是否有更新版本,若有,則從伺服器請求獲取更新版本的應用資源包,並用獲取到的更新版本的應用資源包更新快取的相應應用資源包。 可選地,所述應用資源包中包括應用組件的程式代碼文件以及該應用組件所使用的資源文件;所述應用管理模組還用於:若快取的應用資源包中包括所請求的應用資源包,則針對快取的所述所請求的應用資源包,確定該應用資源包中包括的文件是否有更新版本,若有,則從伺服器請求獲取該應用資源包中的更新版本的文件,並用獲取到的更新版本的文件更新快取的該應用資源包中相應的文件。 可選地,所述應用組件所使用的資源文件,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。 可選地,所述應用管理模組還用於:將從伺服器獲取到的應用資源包進行快取。 本申請實施例提供的通訊裝置,包括:一個或多個處理器;以及,一個或多個計算機可讀媒體,所述可讀媒體上儲存有指令,所述指令被所述一個或多個處理器執行時,使得所述通訊裝置執行前述實施例提供的方法。 本申請實施例提供的一個或多個計算機可讀媒體,所述可讀媒體上儲存有指令,所述指令被一個或多個處理器執行時,使得通訊設備執行前述實施例提供的方法。
雖然本申請的概念易於進行各種修改和替代形式,但是其具體實施例已經透過附圖中的示例示出並且將在本文中詳細描述。然而,應當理解,沒有意圖將本申請的概念限制為所公開的特定形式,而是相反,意圖是覆蓋與本申請以及所附申請專利範圍一致的所有修改、等同物和替代物。 說明書中對“一個實施例”、“實施例”、“說明性實施例”等的引用,指示所描述的實施例可包括特定特徵、結構或特性,但是每個實施例可以或可以不必包括特定特徵、結構或特性。此外,這樣的片語不一定指的是相同的實施例。進一步地,認為在本領域技術人員的知識範圍內,當結合實施例描述特定特徵、結構或特性時,結合無論是否明確描述的其它實施例影響這樣的特徵,結構或特性。另外,應當理解,以“A,B和C中的至少一個”的形式包括在列表中的項目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。類似地,以“A,B或C中的至少一個”的形式列出的項目可以表示(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。 在一些情況下,所公開的實施例可以在硬體、韌體、軟體或其任何組合中實現。所公開的實施例還可以被實現為由一個或多個暫時性或非暫時性機器可讀(例如,計算機可讀)儲存媒體攜帶或儲存的指令,其可以由一個或多個處理器讀取和執行。機器可讀儲存媒體可以體現為用於以機器可讀形式(例如,揮發性或非揮發性儲存器、媒體碟或其他媒體)儲存或傳輸資訊的任何儲存設備,機制或其他實體結構的設備)。 在附圖中,一些結構或方法特徵可以以特定佈置及/或順序示出。然而,應當理解,可能不需要這樣的具體佈置及/或排序。相反,在一些實施例中,這些特徵可以以與說明性附圖中所示不同的方式及/或順序來佈置。另外,在特定圖中包括結構或方法特徵並不意味著暗示這種特徵在所有實施例中都是需要的,並且在一些實施例中可以不包括或可以與其他特徵組合。 本申請實施例中,實現用戶在無需安裝應用程式的情況下,能夠使用應用程式的功能,而無需擔心應用程式的卸載和清理。用戶可根據需要使用應用組件,且無需進行安裝,減少了終端的內存資源開銷。本申請實施例可應用於多種操作系統,比如行動操作系統,尤其是雲端操作系統(YunOS)。 本申請實施例可包括應用資源的管理以及應用資源的使用等幾個方面。應用資源管理主要包括應用資源的發佈管理,主要由伺服器對應用開發者開發並上傳的應用開發包進行處理,以應用組件為資源組織單位進行儲存、索引等管理。應用資源的使用主要包括應用資源的獲取和運行,主要由客戶端設備獲取以應用組件為資源組織單位的應用資源並運行,以實現相應的功能。 其中,應用開發包是指應用開發者開發的並按照設定規則封裝的資料結構體。應用開發包中可包括:一個或多個應用組件的資源,還可以包括一些用於描述和定義應用組件的配置資訊。 其中,應用組件是指對資料和方法的封裝。應用組件能夠實現一定的功能,一個應用程式(Application)通常由多個應用組件組成,各個應用組件協同合作,共同組成一個完整的應用程式的功能。也就是說,應用組件是比應用程式粒度更小的運行單位,相比於應用程式,應用組件的代碼規模較小。 以雲端操作系統為例,在雲端操作系統中,應用組件可被定義為Page。Page是提供本地或遠程服務的基本單元,是對本地服務和遠程服務的抽象,也即服務的基本單元,透過對資料和方法的封裝,可以提供各種服務。運行態Page稱為Page實例,是本地服務或遠程服務的運行載體。一個Page可以在雲端操作系統中被唯一標識,比如可以使用唯一資源標識符(Uniform Resource Identifier,URI)對Page進行標識。 應用組件的資源,可包括但不限於以下內容之一或組合:應用組件的程式代碼文件(應用組件的程式代碼通常被編譯為可執行文件),應用組件所使用的資源等。其中,應用組件所使用的資源可採用文件形式進行組織,具體可包括但不限於以下一種或多種文件:用於描述應用組件之間的依賴關係的文件,應用組件所使用的資料資源文件,比如,圖片文件、視頻文件、音頻文件、本文文件等。 用於描述應用組件的配置資訊也可以組織為文件形式,比如可包括應用組件配置文件、簽名文件等。其中,應用組件配置文件用於對應用開發包中包含的有關應用組件進行聲明以及配置資訊。舉例來說,應用組件配置文件中可包含應用組件在操作系統中的基本資訊,比如,應用組件的名稱、標識、版本等,還可以包含應用組件的其他配置資訊,比如,是否將應用組件的資料儲存在網路側(如雲端),是否允許硬體加速等。通常一個應用開發包中包含一個應用組件配置文件;簽名文件中包含有相關簽名資訊,比如開發者身份資訊、用於資訊加密的數位簽名等。 下面結合附圖對本申請實施例進行詳細描述。 圖1示例性地示出了應用於本申請實施例的系統架構100。系統架構100中包括第一伺服器110、第二伺服器120、第一客戶端設備130、第二客戶端設備140,上述設備之間透過網路150連接,基於網路150進行通訊。 系統架構100中的客戶端設備的數量可以為多個,圖1中僅示例性地示出了第一客戶端設備130和第二客戶端設備140。系統架構100中的客戶端設備的類型可以包括多種,可以是任何適當的計算或行動設備,比如可包括:智能手機、平板電腦、筆記本電腦、個人數位助理(Personal Digital Assistant,PDA)、智能穿戴設備或類似設備。系統架構100中的客戶端設備可使用雲端操作系統或者其他操作系統,本申請實施例對此不作限制。 系統架構100中的伺服器的數量可以為多個,圖1中僅示例性地示出了第一伺服器110和第二伺服器120。在另外的例子中,第一伺服器110和第二伺服器120也可以由一個伺服器代替,該伺服器可實現第一伺服器110和第二伺服器120的功能。 上述系統架構中,作為應用開發者的用戶可透過第一客戶端設備130將應用開發包發送給第一伺服器110。第一客戶端設備130中可包括應用開發模組,開發者用戶可使用該應用開發模組進行應用組件的開發,並按照設定的規則封裝成應用開發包。第一伺服器110接收到第一客戶端設備130發送的應用開發包後,可對該應用開發包進行分包,得到該應用開發包中包含的應用組件的資源,並以應用組件為資源組織單位進行封裝,得到應用資源包,並對這些應用資源包進行索引和儲存。可選地,可將應用資源儲存在資料庫160中。 上述系統架構中,作為應用使用者的用戶可透過第二客戶端設備140請求應用資源包,並在第二客戶端140本地運行獲取到的應用資源包中的應用組件。在應用資源包的獲取過程中,第二客戶端設備140可向第二伺服器120發送應用資源獲取請求,第二伺服器120可根據該應用資源獲取請求,從資料庫160中獲取所請求的應用資源包,並將獲取到的應用資源包發送給第二客戶端設備140。 如前所述,應用開發包可按照設定的規則進行封裝,第一伺服器110在接收到按照該規則封裝的應用開發包後,可按照本申請實施例所描述的方式進行應用資源管理。進一步地,如果第一伺服器110接收到的應用開發包未按照該規則進行封裝,則第一伺服器110可按照其他方式對應用資源進行管理。 在一些實施例中,應用開發包的封裝規則可規定為:應用組件配置文件、應用組件處於同一級目錄。一個應用組件的目錄下可包括該應用組件的程式代碼文件(如被編譯後的可執行文件),還可包括該應用組件所使用的資料資源文件,比如圖片文件等。如果一個應用組件的運行還依賴於其他應用組件,則該應用組件的目錄中還包括用於描述該應用組件的依賴關係的文件。可選地,多個應用組件共享使用的資料文件可與應用組件配置文件、簽名文件、應用組件處於同一級目錄。 圖2示例性地示出了一種應用開發包的目錄結構。這裡僅示例性地示出了核心目錄結果,其中,Manifest為應用組件配置文件的文件名,該文件可採用JSON資料格式,該配置文件中聲明了應用組件A和應用組件B。應用組件A和應用組件B為Manifest文件中定義的組件名,組件名和目錄名保持統一。每個應用組件目錄下保存對應應用組件相關的程式代碼文件和資源文件(比如應用組件所使用的圖片文件等)。其中,應用組件A的目錄下還包括用於描述依賴關係的文件(圖中該文件的文件名為bundle.json),該文件用於定義應用組件A對外部資源的依賴,例如,如果應用組件A依賴common定義的資源,則需要在bundle.json文件中明確定義該依賴關係。Signature目錄下包含有簽名文件(未在圖中示出)。圖2所示的目錄結構僅為一種示例,本申請實施例對此不做限制。 下面結合圖3和圖4對本申請實施例提供的應用資源管理過程進行詳細描述。 圖3示例性地示出了第一伺服器110的結構。第一伺服器110中可包括驗證模組111、封裝模組112、儲存模組113、發佈模組114。上述驗證模組111、發佈模組114中的一個或多個,可作為可選模組。 驗證模組111可對應用開發包進行驗證,具體可進行身份合法性驗證,或者進行資料完整性驗證,或者進行身份合法性驗證和資料完整性驗證。封裝模組112可從應用開發包中獲取其中包含的應用組件的資源,並對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包。儲存模組113可分別為應用資源包建立索引,並儲存這些應用資源包。發佈模組114可對應用資源包進行發佈。 圖4示例性地示出了應用資源管理流程示意圖,該流程可由第一伺服器110執行。 在圖4所示的S401中,第一伺服器110接收第一客戶端設備130發送的應用開發包。該應用開發包中可包括一個或多個應用組件的相關資源。應用開發包中包含的內容可如前所述,在一個例子中,應用開發包的目錄結構可如圖2所示。 在圖4所示的S402中,第一伺服器110可對應用開發包進行驗證。如果驗證透過,則可執行後續操作,如果驗證不透過,則可進入S410,將驗證結果反饋給第一客戶端設備130。S402為可選操作,如果不執行驗證,則可直接轉入後續流程進行處理。 以圖3所示的第一伺服器110為例,在S402中,驗證模組111可從身份合法性及/或資料完整性方面對應用開發包進行驗證。在進行身份合法性驗證時,驗證模組111可讀取應用開發包中包含的簽名文件,根據該簽名文件中包含的開發者用戶身份資訊,對該開發者的身份進行合法性驗證。應用開發包中還可包括用於驗證資料完整性的驗證碼,一個例子中,該驗證碼可透過對應用開發包所包含的內容進行完整性驗證算法運算得到。在進行資料完整性驗證時,驗證模組111可對接收到的應用開發包所包含的內容進行完整性驗證算法運算,生成驗證碼,並用生成的驗證碼與該應用開發包中包含的驗證碼進行比較,如果一致,則資料完整性驗證透過,否則資料完整性驗證失敗。透過驗證模組111進行身份合法性及/或資料完整性驗證,可保證應用開發包的安全性,比如可將惡意的應用資源排除在外。 在圖4所示的S403中,第一伺服器110獲取應用開發包中包含的應用組件的資源。具體地,第一伺服器110可首先根據應用開發包的封裝規則對應用開發包進行解析,得到其中包含的用於描述應用組件的配置資訊,根據用於描述應用組件的配置資訊,從應用開發包中獲得該配置資訊所描述的應用組件的資源。 以圖3所示的第一伺服器110以及前述的應用開發包的目錄結構為例,在S403中,封裝模組112可根據應用開發包的目錄結構對應用開發包進行解析,獲得其中包含的應用組件配置文件,根據該應用組件配置文件中所聲明的應用組件,從該應用開發包的相應目錄下得到應用組件的相關資源(可包括應用組件目錄下的程式代碼文件、資料文件、用於描述依賴關係的文件中的一種或多種)。 在圖4所示的S404中,第一伺服器110對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包。第一伺服器110可針對應用開發包中的每一個應用組件,將該應用組件的資源封裝為一個應用資源包。進一步地,還可在應用資源包中設置簽名資訊,用於描述或聲明該應用資源包的開發者、擁有者以及所使用的數位簽名等。進一步地,還可以為應用資源包設置版本資訊。 仍以圖3所示的第一伺服器110以及前述的應用開發包的目錄結構為例,在S404中,封裝模組112可對S403中獲取到的應用組件A所在目錄下的應用組件A程式代碼文件、bundle.json文件、資料資源文件封裝為應用組件A的應用資源包;對S403中獲取到的應用組件B所在目錄下的應用組件B程式代碼文件、資料資源文件封裝為應用組件B的應用資源包。 在圖4的S405中,第一伺服器110分別為應用資源包建立索引,並儲存所述應用資源包,比如儲存於資料庫160中。進一步地,還可為應用資源包設置統一資源標識符(Uniform Resource Identifier,URI)。該操作可由圖3所示的第一伺服器110中的儲存模組113實現。 在一些實施例中,第一伺服器110可針對每個應用資源包,為相應應用資源包建立兩級索引,具體包括第一級索引和第二級索引,並建立兩級索引之間的映射關係。一個應用資源包的第一級索引用於描述該應用資源包提供的服務,一個應用資源包的第二級索引包括該應用資源包的唯一標識,比如應用資源包的URI。其中,第一級索引主要描述應用資源包的服務內容,可表現為描述應用資源包提供的服務的本文,第一級索引主要用於提供給用戶,使用戶可直觀地瞭解應用資源包所提供的服務或實現的功能。第二級索引主要用於客戶端設備和伺服器之間的互動,用以唯一標識一個應用資源包。 在圖4的S406中,第一伺服器110可將應用資源包進行發佈,以使用戶可選擇使用應用資源包。該操作可由圖3所示的第一伺服器110中的發佈模組114執行。第一伺服器110可採用多種方式進行應用資源包發佈。作為一個例子,第一伺服器110可發佈應用資源包的鏈接資訊,該鏈接資訊的顯示本文根據該應用資源包的第一級索引得到,該鏈接資訊關聯的URI根據該應用資源包的第二級索引得到。透過發佈應用資源包的鏈接資訊,一方面可以使用戶直觀地瞭解應用資源包所提供的服務,另一方面可以使用戶透過點擊等操作獲得該應用資源包,從而獲得該應用資源包所提供的服務或所實現的功能。作為另一個例子,第一伺服器110可為應用資源包分配圖形化識別碼(比如二維碼),該圖形化識別碼與應用資源包的二級索引關聯,該圖形化識別碼可被展示在用戶可能獲得的場所,這樣,用戶可使用客戶端設備掃描圖形化標識碼,從而獲得該應用資源包,從而獲得該應用資源包所提供的服務或所實現的功能。 上述圖4所示的應用資源管理流程中,各部分的操作的執行順序僅為一種示例,本申請實施例對此沒有限制。 透過上述實施例所描述的應用資源管理方案,可以看出,本申請實施例可以以應用組件為單位進行應用資源的封裝和管理,為以應用組件為單位進行應用資源的獲取和使用提供了基礎。 下面結合圖5至圖8對應用資源的使用過程進行描述。 圖5示例性地示出了第二客戶端設備140的結構示意圖。第二客戶端設備140中可包括:運行時排程模組(Runtime Scheduler)141、應用管理模組142,進一步地還可包括網路管理模組143。運行時排程模組141、應用管理模組142和網路管理模組143具體可以是操作系統中的功能模組。運行時排程模組141可向應用管理模組142發送應用資源獲取請求,該應用資源獲取請求用於請求獲取以應用組件為資源組織單位的應用資源包。應用管理模組142可根據該應用資源獲取請求,獲取對應的應用資源包,並將獲取到的應用資源包發送給運行時排程模組141。運行時排程模組141可啟動該應用資源包中的應用組件。 進一步地,應用管理模組142可根據應用資源獲取請求,查詢第二客戶端設備140本地快取的應用資源包,若快取的應用資源中包括所請求的應用資源包,則從快取的應用資源包中獲取所請求的應用資源包;否則,透過網路管理模組143向第二伺服器120請求獲取所請求的應用資源包。 圖6示例性地示出了第二伺服器120的結構示意圖。第二伺服器120中可包括:應用管理模組121和網路管理模組122。應用管理模組121可根據接收到的應用資源獲取請求,查詢所請求的應用資源包,並將查詢到的應用資源包透過網路管理模組122發送給第二客戶端設備140。 圖7示例性地示出了應用資源的使用流程。 在圖7所示的S701中,第二客戶端設備140接收應用資源獲取請求,該應用資源獲取請求用於請求獲取以應用組件為資源組織單位的應用資源包。 以圖5所示的客戶端設備的結構為例,在一個例子中,如圖8所示,在S801中,當用戶點擊應用資源包對應的鏈接或以其他方式(比如掃描二維碼的方式)以啟動對應的應用組件時,操作系統將由該用戶操作行為產生的相關事件通知給運行時排程模組141,運行時排程模組141發送請求給應用管理模組142,以請求獲取與用戶請求的功能對應的應用資源包。其中,在運行時排程模組141接收到的事件中,以及運行時排程模組141發送給應用管理模組142的請求中攜帶有應用資源包的URI。 上述過程可參見圖9中的S901至S902。當用戶點擊應用資源包對應的鏈接或以其他方式以啟動對應的應用組件時,操作系統發送消息給運行時排程模組(圖9中的S901),運行時排程模組向應用管理模組請求對應的應用資源包(圖9中的S902)。 在圖7所示的S702中,第二客戶端設備140根據該應用資源獲取請求,獲取所請求的應用資源包。具體實施時,第二客戶端設備140可在該設備本地獲取所請求的應用資源包,也可以從網路側的第二伺服器120獲取所請求的應用資源包,還可以優先從該設備本地獲取所請求的應用資源包,在未獲取到的情況下,再從網路側的第二伺服器120獲取所請求的應用資源包。 以圖5所示的客戶端設備的結構以及圖6所示的伺服器的結構為例,在一個例子中,如圖8所示,在S802~S804中,第二客戶端設備140中的應用管理模組142在本地快取的應用資源包中查找所請求獲取的應用資源包,如果本地已經快取有所請求獲取的應用資源包,則應用管理模組142將本地快取的該應用資源包返回給運行時排程模組141。如果應用管理模組142無法在本地快取的應用資源包中獲取與用戶請求功能對應的應用資源包,則透過網路管理模組143發起遠程過程調用(Remote Procedure Call Protocol,RPC),向第二伺服器120發送應用資源獲取請求,以請求獲取與用戶請求功能對應的應用資源包。第二服務端120的應用管理模組121接收到該請求後,根據該請求獲取對應的應用資源包,並將獲取到的應用資源包透過網路管理模組122返回給第二客戶端設備中的應用管理模組142。進一步地,第二客戶端設備140還可以將從伺服器獲取到的應用資源包快取在該客戶端設備本地。 上述過程可參見圖9中的S903至S912。如果客戶端設備中的應用管理模組確定本地快取有對應的應用資源包,則直接將該應用資源包返回給運行時排程模組(圖9中的S903~S904),否則,透過網路管理模組向伺服器發送應用資源獲取請求,以請求獲取遠程的應用資源包(圖9中的S905~S907)。伺服器根據該請求獲取指定的應用資源包後透過網路管理模組返回給客戶端設備的應用管理模組(圖9中的S908~S911)。應用管理模組將該應用資源包發送給運行時排程模組(圖9中的S912)。 在圖7所示的S703中,第二客戶端設備140啟動獲取到的應用資源包中的應用組件。以圖5所示的客戶端設備的結構為例,在一個例子中,如圖8中的S805所示,第二客戶端設備140中的運行時排程模組141得到應用資源包後,啟動該應用資源包中的應用組件,從而為用戶啟動請求的功能或提供相應的服務。 透過以上描述可以看出,本申請實施例中,可基於以應用組件為資源組織單位的應用資源包,進行應用資源的獲取和使用,實現用戶請求的功能,實現了根據用戶需求加載應用資源,無需在客戶端設備上進行安裝,節省了客戶端設備的內存記憶體和磁碟空間。 在一些實施例中,在客戶端設備本地快取有所請求的應用資源包的情況下,客戶端設備(更具體地,比如客戶端設備中的應用管理模組)可判斷該應用資源包是否有更新版本,如果有更新版本,則從伺服器請求獲取更新版本的應用資源包,並將更新版本的應用資源包快取在客戶端設備本地。作為一個例子,可採用如下方式判斷本地快取的應用資源是否有更新版本:獲取本地快取的該應用資源的版本資訊,向伺服器發送查詢請求,以請求查詢該應用資源包的版本資訊,透過版本資訊的比較,可以判斷本地快取的應用資源包是否存在更新版本。 透過上述流程,可在以按需加載以應用組件為資源組織單位的應用資源包的基礎上,以應用資源包為粒度來更新客戶端設備本地快取的應用資源,從而提升了應用升級的效率,並可節省網路資源開銷。 為了進一步提升應用升級的效率以及節省網路資源開銷,在另外一些實施例中,可以以比應用資源包更小的粒度來更新本地快取的應用資源。具體地,若客戶端設備本地快取的應用資源包中包括所請求的應用資源包,則可針對快取的該應用資源包,確定該應用資源包中的文件是否有更新版本,若有,則從伺服器請求獲取該應用資源包中的更新版本的文件,並用獲取到的更新版本的文件更新快取的該應用資源包中相應的文件。如前所述,應用資源包中可包括應用組件的程式代碼文件以及應用組件所使用的資源文件(比如用於描述依賴關係的文件,圖片文件等等),因此透過該方法可以以應用資源包中的文件作為資源粒度進行應用資源更新。 圖10a和圖10b示例性地示出了以應用資源包為粒度進行應用資源更新以及以應用資源包中的文件為粒度進行資源更新的比較示意圖。若客戶端設備本地未快取有用戶請求的應用資源包,則客戶端設備從伺服器獲取應用資源包Page 1,並將該應用資源包的所有內容(比如該應用資源包中包括的所有文件)快取在客戶端設備本地,如圖10a所示。圖10a中的每個小方塊代表應用資源包中的一個最小資源粒度(比如文件粒度)的組成部分,比如可包括應用組件的程式代碼文件、用於描述應用組件的依賴關係的文件、應用組件所使用的圖片文件等等。圖中所示的文件R是Page 1中的一個文件。文件R可以是應用資源包中的一個最小資源粒度的組成部分,比如可包括應用組件的程式代碼文件、用於描述應用組件的依賴關係的文件、應用組件所使用的圖片文件等等。 若後續用戶再次請求該應用資源包,客戶端設備本地已經快取有該應用資源包,則客戶端設備可進一步判斷該應用資源包中包括的文件是否有更新版本,如果文件R有更新的版本,則客戶端設備從伺服器獲取該文件R的更新版本文件R’,並用文件R’更新快取的該應用資源包中的文件R,如圖10b所示。 在實際應用中,可針對不同的場景,選取適合的應用資源更新方法。作為一個例子,在網路性能較好或者採用WiFi方式聯網時,可採用以應用資源包為資源更新粒度的應用資源更新方法,否則,可採用以應用資源包中的文件為資源更新粒度的應用資源更新方法。 為了更清楚地理解本申請實施例,下面結合具體應用場景進行說明。 伺服器提供有以下應用資源包: 應用資源包1:用於實現機票查詢功能,版本號是1.0,伺服器為應用資源包1設置有二維碼,該二維碼與應用資源包1的URI關聯。應用資源包1中包括以下文件(以下示例性地示出了文件名): search:用於實現機票查詢功能的應用組件(稱為search組件)的程式代碼文件; page1_picture:search組件所使用的一個圖片文件。 應用資源包2:用於實現機票訂購功能,版本號是1.0。應用資源包2中包括以下文件(以下示例性地示出了文件名): order:用於實現機票訂購功能的應用組件(稱為order組件)的程式代碼文件; page2_picture:order組件所使用的一個圖片文件。 dependency:描述order組件與用於實現在線支付的應用組件(稱為payment組件)之間的依賴關係,order組件的運行過程中會調用payment組件。 應用資源包3:用於實現在線支付功能,版本號是2.0。應用資源包3中包括以下文件(以下示例性地示出了文件名): payment:用於實現payment組件的程式代碼文件。 基於上述應用資源包,用戶可實現機票查詢、訂購的功能,具體過程如下: 用戶使用行動終端掃描與應用資源包1對應的二維碼,獲得應用資源包1的URI。由於該行動終端中未快取有應用資源包1,因此向伺服器發送應用資源獲取請求,該請求中攜帶有應用資源包1的URI。伺服器根據該請求,獲取應用資源包1,並將應用資源包1發送給該行動終端。該行動終端快取應用資源包1到本地,並啟動和運行應用資源包1中的search組件。search組件啟動後,如圖11所示,在行動終端的螢幕上展示search組件的用戶界面(User Interface,UI) 1100,該UI中包括機票查詢條件的一組輸入框1101和查詢功能鍵1102,應用資源包1中的page1_picture也被展示在該UI中。 用戶透過search組件的UI輸入機票查詢條件並點擊查詢功能鍵1102,基於search組件的執行邏輯,行動終端將機票查詢請求發送給伺服器,接收伺服器返回的機票查詢結果,並將機票查詢結果以及機票訂購功能鍵1103顯示在該UI 1100中,如圖12所示。 用戶從該查詢結果中選擇欲訂購的機票,並點擊機票訂購功能鍵1103,該操作行為觸發行動終端根據該機票訂購功能鍵1103所關聯的應用資源包URI獲取用於實現機票訂購功能的應用資源包2。由於行動終端中未快取有應用資源包2,因此向伺服器發送應用資源獲取請求,該請求中攜帶有應用資源包2的URI。伺服器根據該請求,獲取應用資源包2,並將應用資源包1發送給該行動終端。該行動終端快取應用資源包1到本地,並啟動和運行應用資源包1中的order組件。order組件啟動後,如圖13所示,在行動終端的螢幕上展示order組件的UI1200,該UI中包括一組資訊輸入框1201,使用戶可透過該UI輸入機票訂購過程所需提交的資訊,還包括在線支付功能鍵1202,應用資源包2中的page2_picture1也被展示在該UI中。 用戶透過order組件的UI輸入訂購資訊並點擊在線支付功能鍵1202,基於order組件所使用的依賴關係文件,行動終端獲取用於實現在線支付功能的應用資源包3。行動終端3中已快取有版本號為1.0的應用資源包3,該版本號低於伺服器中的應用資源包3的版本號2.0,因此,行動終端從伺服器獲取版本號2.0的應用資源包3,並用版本號2.0的應用資源3更新快取的版本號1.0的應用資源包3,並啟動該應用資源包3中的payment組件。payment組件啟動後,用戶透過payment組件的UI進行在線支付操作,完成機票訂購。 上述流程中,如果用戶只需要進行機票查詢而無需機票訂購,則在獲取到應用資源包1後運行其中的search組件即可,無需獲取和啟動應用資源包2和應用資源包3,從而實現了基於用戶需要加載相應的應用組件。 基於相同的技術構思,本申請實施例還提供了一種通訊裝置,該通訊裝置可實現前述實施例中的第一伺服器110的流程。 參見圖14,為本申請實施例提供的應用加載裝置的結構示意圖。該裝置1400可實現前述實施例描述的流程。圖14示例性地示出了根據各種實施例的示例裝置1400。裝置1400可包括一個或多個處理器1402,系統控制邏輯1401耦合於至少一個處理器1402,非揮發性儲存器(non-volatile memory,NMV)/儲存器1404耦合於系統控制邏輯1401,網路介面1406耦合於系統控制邏輯1401。 處理器1402可包括一個或多個單核處理器或多核處理器。處理器1402可包括任何一般用途處理器或專用處理器(如圖像處理器、應用處理器基帶處理器等)的組合。 一個實施例中的系統控制邏輯1401,可包括任何適當的介面控制器,以提供到處理器1402中的至少一個的任何合適的介面,及/或提供到與系統控制邏輯1401通訊的任何合適的設備或組件的任何合適的介面。 一個實施例中的系統控制邏輯1401,可包括一個或多個內存記憶體控制器,以提供到系統內存記憶體1403的介面。系統內存記憶體1403用來加載以及儲存資料及/或指令。例如,對應裝置1400,在一個實施例中,系統內存記憶體1403可包括任何合適的揮發性儲存器。 NVM/儲存器1404可包括一個或多個有形的非暫時的計算機可讀媒體,用於儲存資料及/或指令。例如,NVM/儲存器1404可包括任何合適的非揮發性儲存裝置,如一個或多個硬碟(hard disk device,HDD),一個或多個光碟(compact disk,CD),及/或一個或多個數位通用碟(digital versatile disk,DVD)。 NVM/儲存器1404可包括儲存資源,該儲存資源實體上是該系統所安裝的或者可以被存取的設備的一部分,但不一定是設備的一部分。例如,NVM/儲存器1404可經由網路介面1406被網路存取。 系統內存記憶體1403以及NVM/儲存器1404可分別包括臨時的或持久的指令1410的副本。指令1410可包括當由處理器1402中的至少一個執行時導致裝置1400實現圖4、圖8和圖9描述的方法之一或組合的指令。各實施例中,指令1410或硬體、韌體,及/或軟體組件可另外地/可替換地被置於系統控制邏輯1401,網路介面1406及/或處理器1402。 網路介面1406可包括一個接收器來為裝置1400提供無線介面來與一個或多個網路及/或任何合適的設備進行通訊。網路介面1406可包括任何合適的硬體及/或韌體。網路介面1406可包括多個天線來提供多輸入多輸出無線介面。在一個實施例中,網路介面1406可包括一個網路適配器、一個無線網路適配器、一個電話調變解調器,及/或無線調變解調器。 在一個實施例中,處理器1402中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯一起封裝。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯一起封裝以形成系統級封裝。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯集成在相同的晶粒上。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯集成在相同的晶粒上以形成系統晶片。 裝置1400可進一步包括輸入/輸出裝置1405,。輸入/輸出裝置1405可包括用戶介面旨在使用戶與裝置1400進行互動,可包括外圍組件介面,其被設計為使得外圍組件能夠與系統互動,及/或,可包括傳感器,旨在確定環境條件及/或有關裝置1400的位置資訊。 基於相同的技術構思,本申請實施例還提供了一種通訊裝置,該通訊裝置可實現前述實施例中的第二客戶端設備130的流程。 參見圖15,為本申請實施例提供的應用加載裝置的結構示意圖。該裝置1500可實現前述實施例描述的流程。圖15示例性地示出了根據各種實施例的示例裝置1500。裝置1500可包括一個或多個處理器1502,系統控制邏輯1501耦合於至少一個處理器1502,非揮發性儲存器(non-volatile memory,NMV)/儲存器1504耦合於系統控制邏輯1501,網路介面1506耦合於系統控制邏輯1501。 處理器1502可包括一個或多個單核處理器或多核處理器。處理器1502可包括任何一般用途處理器或專用處理器(如圖像處理器、應用處理器基帶處理器等)的組合。 一個實施例中的系統控制邏輯1501,可包括任何適當的介面控制器,以提供到處理器1502中的至少一個的任何合適的介面,及/或提供到與系統控制邏輯1501通訊的任何合適的設備或組件的任何合適的介面。 一個實施例中的系統控制邏輯1501,可包括一個或多個內存記憶體控制器,以提供到系統內存記憶體1503的介面。系統內存記憶體1503用來加載以及儲存資料及/或指令。例如,對應裝置1500,在一個實施例中,系統內存記憶體1503可包括任何合適的揮發性儲存器。 NVM/儲存器1504可包括一個或多個有形的非暫時的計算機可讀媒體,用於儲存資料及/或指令。例如,NVM/儲存器1504可包括任何合適的非揮發性儲存裝置,如一個或多個硬碟(hard disk device,HDD),一個或多個光碟(compact disk,CD),及/或一個或多個數位通用碟(digital versatile disk,DVD)。 NVM/儲存器1504可包括儲存資源,該儲存資源實體上是該系統所安裝的或者可以被存取的設備的一部分,但不一定是設備的一部分。例如,NVM/儲存器1504可經由網路介面1506被網路存取。 系統內存記憶體1503以及NVM/儲存器1504可分別包括臨時的或持久的指令1510的副本。指令1510可包括當由處理器1502中的至少一個執行時導致裝置1500實現圖7、圖8和圖9描述的方法之一或組合的指令。各實施例中,指令1510或硬體、韌體,及/或軟體組件可另外地/可替換地被置於系統控制邏輯1501,網路介面1506及/或處理器1502。 網路介面1506可包括一個接收器來為裝置1500提供無線介面來與一個或多個網路及/或任何合適的設備進行通訊。網路介面1506可包括任何合適的硬體及/或韌體。網路介面1506可包括多個天線來提供多輸入多輸出無線介面。在一個實施例中,網路介面1506可包括一個網路適配器、一個無線網路適配器、一個電話調變解調器,及/或無線調變解調器。 在一個實施例中,處理器1502中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯一起封裝。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯一起封裝以形成系統級封裝。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯集成在相同的晶粒上。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯集成在相同的晶粒上以形成系統晶片。 裝置1500可進一步包括輸入/輸出裝置1505,。輸入/輸出裝置1505可包括用戶介面旨在使用戶與裝置1500進行互動,可包括外圍組件介面,其被設計為使得外圍組件能夠與系統互動,及/或,可包括傳感器,旨在確定環境條件及/或有關裝置1500的位置資訊。 本申請實施例還提供了一個或多個計算機可讀媒體,所述可讀媒體上儲存有指令,所述指令被一個或多個處理器執行時,使得通訊設備執行本申請實施例中第一伺服器110實現的方法。 本申請實施例還提供了一個或多個計算機可讀媒體,所述可讀媒體上儲存有指令,所述指令被一個或多個處理器執行時,使得通訊設備執行本申請實施例中第二客戶端設備實現的方法。
110‧‧‧第一伺服器
120‧‧‧第二伺服器
130‧‧‧第一客戶端設備
140‧‧‧第二客戶端設備
150‧‧‧網路
160‧‧‧資料庫
111‧‧‧驗證模組
112‧‧‧封裝模組
113‧‧‧儲存模組
114‧‧‧發佈模組
141‧‧‧運行時排程模組
142‧‧‧應用管理模組
143‧‧‧網路管理模組
121‧‧‧應用管理模組
122‧‧‧網路管理模組
1100‧‧‧用戶界面
1101‧‧‧輸入框
1102‧‧‧功能鍵
1103‧‧‧功能鍵
1200‧‧‧用戶界面
1201‧‧‧資訊輸入框
1202‧‧‧功能鍵
1400‧‧‧裝置
1401‧‧‧系統控制邏輯
1402‧‧‧處理器
1403‧‧‧系統內存記憶體
1404‧‧‧儲存器
1405‧‧‧輸入/輸出裝置
1406‧‧‧網路介面
1410‧‧‧指令
1500‧‧‧裝置
1501‧‧‧系統控制邏輯
1502‧‧‧處理器
1503‧‧‧系統內存記憶體
1504‧‧‧儲存器
1505‧‧‧輸入/輸出裝置
1506‧‧‧網路介面
1510‧‧‧指令
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。 圖1為本申請實施例適用的網路架構示意圖; 圖2為本申請實施例中應用開發包的目錄結構示意圖; 圖3為圖1中的第一伺服器的結構示意圖; 圖4為本申請實施例提供的應用資源的管理流程示意圖; 圖5為圖1中的第二客戶端設備的結構示意圖; 圖6為圖1中的第二伺服器的結構示意圖; 圖7至圖9分別為本申請實施例提供的應用資源的使用流程示意圖; 圖10a和圖10b為本申請實施例中的應用資源更新示意圖; 圖11、圖12和圖13分別為本申請實施例中的應用組件的UI示意圖; 圖14為本申請實施例提供的通訊裝置的結構示意圖; 圖15為本申請另一實施例提供的通訊裝置的結構示意圖。

Claims (40)

  1. 一種應用資源管理方法,其特徵在於,包括: 接收應用開發包,該應用開發包中包括至少一個應用組件的資源; 獲取該應用開發包中包含的應用組件的資源; 對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包; 為該應用資源包建立索引,並儲存該應用資源包。
  2. 如申請專利範圍第1項所述的方法,其中,該應用組件的資源包括以下之一或組合: 應用組件的程式代碼; 應用組件所使用的資源。
  3. 如申請專利範圍第2項所述的方法,其中,該應用組件所使用的資源,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。
  4. 如申請專利範圍第1項所述的方法,其中,為該應用資源包建立索引,包括: 為該應用資源包建立第一級索引和第二級索引以及之間的映射關係,一個應用資源包的第一級索引用於描述該應用資源包提供的服務,一個應用資源包的第二級索引包括該應用資源包的唯一標識。
  5. 如申請專利範圍第4項所述的方法,其中,還包括: 發佈該應用資源包的鏈接資訊,其中,該鏈接資訊的顯示本文根據該應用資源包的第一級索引得到,該鏈接資訊關聯的URI根據該應用資源包的第二級索引得到。
  6. 如申請專利範圍第4項所述的方法,其中,還包括: 為該應用資源包分配圖形化識別碼,一個應用資源包的圖形化識別碼與該應用資源包的第二級索引關聯。
  7. 如申請專利範圍第4項所述的方法,其中,該第一級索引包括本文,該第二級索引包括統一資源標識符URI。
  8. 如申請專利範圍第1至7項中任一項所述的方法,其中,該應用開發包中還包括用於描述應用組件的配置資訊; 獲取該應用開發包中包含的應用組件的資源,包括: 根據該用於描述應用組件的配置資訊,從該應用開發包中獲得該配置資訊所描述的應用組件的資源。
  9. 如申請專利範圍第1至7項中任一項所述的方法,其中,對獲取到的應用組件的資源進行封裝時,在應用資源包中添加簽名資訊。
  10. 如申請專利範圍第1至7項中任一項所述的方法,其中,還包括: 根據該應用開發包的簽名資訊,對該應用開發包進行身份合法性驗證;其中,該應用開發包的簽名資訊中包含該應用開發包的身份資訊。
  11. 如申請專利範圍第1至7項中任一項所述的方法,其中,還包括: 對該應用開發包進行資料完整性驗證。
  12. 如申請專利範圍第1至7項中任一項所述的方法,其中,該應用組件為雲端操作系統中的應用組件。
  13. 一種應用使用方法,其特徵在於,包括: 接收應用資源獲取請求; 根據該應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包; 運行獲取到的應用資源包中的應用組件。
  14. 如申請專利範圍第13項所述的方法,其中,根據該應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包,包括: 根據該應用資源獲取請求,查詢快取的以應用組件為資源組織單位的應用資源包,若快取的應用資源中包括所請求的應用資源包,則從快取的應用資源包中獲取所請求的應用資源包;否則,向伺服器請求獲取所請求的以應用組件為資源組織單位的應用資源包。
  15. 如申請專利範圍第14項所述的方法,其中,若快取的應用資源中包括所請求的應用資源包,則還包括: 針對快取的該應用資源包,確定該應用資源包是否有更新版本,若有,則從伺服器請求獲取更新版本的應用資源包,並用獲取到的更新版本的應用資源包更新快取的相應應用資源包。
  16. 如申請專利範圍第14項所述的方法,其中,該應用資源包中包括應用組件的程式代碼文件以及該應用組件所使用的資源文件; 若快取的應用資源包中包括所請求的應用資源包,則還包括: 針對快取的該所請求的應用資源包,確定該應用資源包中包括的文件是否有更新版本,若有,則從伺服器請求獲取該應用資源包中的更新版本的文件,並用獲取到的更新版本的文件更新快取的該應用資源包中相應的文件。
  17. 如申請專利範圍第16項所述的方法,其中,該應用組件所使用的資源文件,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。
  18. 如申請專利範圍第14項所述的方法,其中,還包括: 將從伺服器獲取到的應用資源包進行快取。
  19. 一種伺服器,其特徵在於,包括: 封裝模組,用於接收應用開發包,該應用開發包中包括至少一個應用組件的資源;獲取該應用開發包中包含的應用組件的資源;以及,對獲取到的應用組件的資源進行封裝,得到以應用組件為資源組織單位的應用資源包; 儲存模組,用於為該應用資源包建立索引,並儲存該應用資源包。
  20. 如申請專利範圍第19項所述的伺服器,其中,該應用組件的資源包括以下之一或組合: 應用組件的程式代碼; 應用組件所使用的資源。
  21. 如申請專利範圍第20項所述的伺服器,其中,該應用組件所使用的資源,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。
  22. 如申請專利範圍第19項所述的伺服器,其中,該儲存模組具體用於: 為該應用資源包建立第一級索引和第二級索引以及之間的映射關係,一個應用資源包的第一級索引用於描述該應用資源包提供的服務,一個應用資源包的第二級索引包括該應用資源包的唯一標識。
  23. 如申請專利範圍第22項所述的伺服器,其中,還包括: 發佈模組,用於發佈該應用資源包的鏈接資訊,其中,該鏈接資訊的顯示本文根據該應用資源包的第一級索引得到,該鏈接資訊關聯的URI根據該應用資源包的第二級索引得到。
  24. 如申請專利範圍第22項所述的伺服器,其中,還包括: 發佈模組,用於為該應用資源包分配圖形化識別碼,一個應用資源包的圖形化識別碼與該應用資源包的第二級索引關聯。
  25. 如申請專利範圍第22項所述的伺服器,其中,該第一級索引包括本文,該第二級索引包括統一資源標識符URI。
  26. 如申請專利範圍第19至25項中任一項所述的伺服器,其中,該應用開發包中還包括用於描述應用組件的配置資訊; 該封裝模組具體用於:根據該用於描述應用組件的配置資訊,從該應用開發包中獲得該配置資訊所描述的應用組件的資源。
  27. 如申請專利範圍第19至25項中任一項所述的伺服器,其中,該封裝模組具體用於:對獲取到的應用組件的資源進行封裝時,在應用資源包中添加簽名資訊。
  28. 如權利要求19至25中任一項所述的伺服器,其中,還包括: 驗證模組,用於根據該應用開發包的簽名資訊,對該應用開發包進行身份合法性驗證;其中,該應用開發包的簽名資訊中包含該應用開發包的身份資訊。
  29. 如申請專利範圍第19至25項中任一項所述的伺服器,其中,還包括: 驗證模組,用於對該應用開發包進行資料完整性驗證。
  30. 如申請專利範圍第19至25項中任一項所述的伺服器,其中,該應用組件為雲端操作系統中的應用組件。
  31. 一種客戶端設備,其特徵在於,包括: 運行時排程模組,用於向應用管理模組發送應用資源獲取請求; 該應用管理模組,用於根據該應用資源獲取請求,獲取所請求的以應用組件為資源組織單位的應用資源包,並將獲取到的應用資源包發送給該運行時排程模組; 該運行時排程模組,還用於運行獲取到的應用資源包中的應用組件。
  32. 如申請專利範圍第31項所述的客戶端設備,其中,該應用管理模組具體用於: 根據該應用資源獲取請求,查詢快取的以應用組件為資源組織單位的應用資源包,若快取的應用資源中包括所請求的應用資源包,則從快取的應用資源包中獲取所請求的應用資源包;否則,向伺服器請求獲取所請求的以應用組件為資源組織單位的應用資源包。
  33. 如申請專利範圍第32項所述的客戶端設備,其中,該應用管理模組還用於:若快取的應用資源中包括所請求的應用資源包,則針對快取的該應用資源包,確定該應用資源包是否有更新版本,若有,則從伺服器請求獲取更新版本的應用資源包,並用獲取到的更新版本的應用資源包更新快取的相應應用資源包。
  34. 如申請專利範圍第32項所述的客戶端設備,其中,該應用資源包中包括應用組件的程式代碼文件以及該應用組件所使用的資源文件; 該應用管理模組還用於:若快取的應用資源包中包括所請求的應用資源包,則針對快取的該所請求的應用資源包,確定該應用資源包中包括的文件是否有更新版本,若有,則從伺服器請求獲取該應用資源包中的更新版本的文件,並用獲取到的更新版本的文件更新快取的該應用資源包中相應的文件。
  35. 如申請專利範圍第34項所述的客戶端設備,其中,該應用組件所使用的資源文件,包括以下之一或任意組合: 用於描述應用組件之間的依賴關係的文件; 應用組件所使用的資料資源文件。
  36. 如申請專利範圍第32項所述的客戶端設備,其中,該應用管理模組還用於:將從伺服器獲取到的應用資源包進行快取。
  37. 一種通訊裝置,其特徵在於,包括: 儲存器,用於儲存計算機程式指令; 處理器,耦合到該儲存器,用於讀取該儲存器儲存的計算機程式指令,並作為回應,執行申請專利範圍第1-12項中任一項所述的方法。
  38. 一種通訊裝置,包括: 一個或多個處理器;以及 一個或多個計算機可讀媒體,該可讀媒體上儲存有指令,該指令被該一個或多個處理器執行時,使得該通訊裝置執行如申請專利範圍第13-18項中任一項所述的方法。
  39. 一個或多個計算機可讀媒體,該可讀媒體上儲存有指令,該指令被一個或多個處理器執行時,使得通訊設備執行如申請專利範圍第1-12項中任一項所述的方法。
  40. 一個或多個計算機可讀媒體,該可讀媒體上儲存有指令,該指令被一個或多個處理器執行時,使得通訊設備執行如申請專利範圍第13-18項中任一項所述的方法。
TW106136310A 2017-01-09 2017-10-23 一種應用資源管理方法、使用方法及裝置 TW201826120A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201710014625.7 2017-01-09
CN201710014625.7A CN108287758A (zh) 2017-01-09 2017-01-09 一种应用资源管理方法、使用方法及装置

Publications (1)

Publication Number Publication Date
TW201826120A true TW201826120A (zh) 2018-07-16

Family

ID=62782432

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106136310A TW201826120A (zh) 2017-01-09 2017-10-23 一種應用資源管理方法、使用方法及裝置

Country Status (4)

Country Link
US (1) US20180196665A1 (zh)
CN (1) CN108287758A (zh)
TW (1) TW201826120A (zh)
WO (1) WO2018129509A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552140B2 (en) * 2018-01-31 2020-02-04 Oracle International Corporation Automated identification of deployment data for distributing discrete software deliverables
CN109358973B (zh) * 2018-09-29 2020-12-22 网易(杭州)网络有限公司 信息处理方法、系统、介质和计算设备
US10817281B2 (en) * 2018-10-29 2020-10-27 Sap Se Packaged application resources for mobile applications
CN109445923A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种微服务任务调度的方法及装置
CN109542624B (zh) * 2018-11-23 2021-09-28 中国农业银行股份有限公司 一种应用变更的资源调配方法及装置
CN111290995B (zh) * 2018-12-07 2023-08-25 北京字节跳动网络技术有限公司 资源管理方法和装置
CN109634608A (zh) * 2018-12-17 2019-04-16 江苏满运软件科技有限公司 界面动态生成方法、系统、设备以及介质
CN109933306B (zh) * 2019-02-11 2020-07-14 山东大学 一种基于作业类型识别的自适应混合云计算框架生成方法
CN111984343B (zh) * 2019-05-22 2024-03-01 百度(中国)有限公司 插件资源查找方法、装置、设备及可读存储介质
CN112016580B (zh) * 2019-05-31 2023-07-25 北京百度网讯科技有限公司 应用程序名称识别方法、装置及终端
US11347756B2 (en) * 2019-08-26 2022-05-31 Microsoft Technology Licensing, Llc Deep command search within and across applications
CN110673827B (zh) * 2019-08-27 2022-12-20 广州视源电子科技股份有限公司 基于安卓系统的资源调用方法及装置、电子设备
CN110851209B (zh) * 2019-11-08 2023-07-21 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备及存储介质
CN111209022A (zh) * 2020-01-03 2020-05-29 支付宝(杭州)信息技术有限公司 资源发布及获取方法、装置及设备
CN115485661A (zh) * 2020-05-14 2022-12-16 深圳市欢太科技有限公司 资源处理方法、装置、电子设备和存储介质
CN111722865A (zh) * 2020-06-18 2020-09-29 广州小鹏车联网科技有限公司 一种应用程序的资源数据处理方法和装置
US11900046B2 (en) 2020-08-07 2024-02-13 Microsoft Technology Licensing, Llc Intelligent feature identification and presentation
CN112291600B (zh) * 2020-10-26 2023-04-18 Vidaa(荷兰)国际控股有限公司 一种缓存方法及显示设备
CN113238795A (zh) * 2021-05-14 2021-08-10 北京达佳互联信息技术有限公司 组件发布方法、装置、电子设备、存储介质及程序产品
CN113536316B (zh) * 2021-06-17 2023-08-11 深圳开源互联网安全技术有限公司 组件依赖信息的检测方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617533A (en) * 1994-10-13 1997-04-01 Sun Microsystems, Inc. System and method for determining whether a software package conforms to packaging rules and requirements
US6615235B1 (en) * 1999-07-22 2003-09-02 International Business Machines Corporation Method and apparatus for cache coordination for multiple address spaces
GB0225097D0 (en) * 2002-10-29 2002-12-11 Koninkl Philips Electronics Nv Creating software applications
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
CA2449534A1 (en) * 2003-11-14 2005-05-14 Ibm Canada Limited - Ibm Canada Limitee On-demand software module deployment
US20070271552A1 (en) * 2006-05-19 2007-11-22 Pulley Robert A System and method for packaging software
US8601467B2 (en) * 2006-10-03 2013-12-03 Salesforce.Com, Inc. Methods and systems for upgrading and installing application packages to an application platform
US8707284B2 (en) * 2009-12-22 2014-04-22 Microsoft Corporation Dictionary-based dependency determination
US20120204142A1 (en) * 2011-02-09 2012-08-09 Schlumberger Technology Corporation Oilfield application system
US9329851B2 (en) * 2011-09-09 2016-05-03 Microsoft Technology Licensing, Llc Browser-based discovery and application switching
US20130219383A1 (en) * 2012-02-16 2013-08-22 Israel Hilerio Using an Application Cache to Update Resources of Installed Applications
US9043469B2 (en) * 2012-06-29 2015-05-26 International Business Machines Corporation Cache control for web application resources
CN103729176B (zh) * 2012-10-12 2018-01-26 腾讯科技(深圳)有限公司 应用程序整合方法及装置
US20140282371A1 (en) * 2013-03-14 2014-09-18 Media Direct, Inc. Systems and methods for creating or updating an application using a pre-existing application
US9413736B2 (en) * 2013-03-29 2016-08-09 Citrix Systems, Inc. Providing an enterprise application store
CN104267977B (zh) * 2014-09-16 2017-12-29 小米科技有限责任公司 应用程序运行方法及装置
US9785490B2 (en) * 2014-12-23 2017-10-10 Document Storage Systems, Inc. Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
US20160191645A1 (en) * 2014-12-30 2016-06-30 Citrix Systems, Inc. Containerizing Web Applications for Managed Execution
US9632770B2 (en) * 2015-04-28 2017-04-25 Google Inc. Infrastructure for hosting and publishing software packages
US10582001B2 (en) * 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US9959100B2 (en) * 2015-08-12 2018-05-01 Oracle International Corporation Efficient storage and transfer of iOS binary files
US9952835B2 (en) * 2016-02-23 2018-04-24 Sap Se Generation of hybrid enterprise mobile applications in cloud environment

Also Published As

Publication number Publication date
WO2018129509A1 (en) 2018-07-12
US20180196665A1 (en) 2018-07-12
CN108287758A (zh) 2018-07-17

Similar Documents

Publication Publication Date Title
TW201826120A (zh) 一種應用資源管理方法、使用方法及裝置
JP7275171B2 (ja) オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション
US10606881B2 (en) Sharing container images between mulitple hosts through container orchestration
US11836516B2 (en) Reducing execution times in an on-demand network code execution system using saved machine states
WO2019114766A1 (zh) 一种数据脱敏方法、服务器、终端及计算机可读存储介质
US10496987B2 (en) Containerization of network services
US20180309819A1 (en) Endpoint management system providing an application programming interface proxy service
JP2013541069A (ja) サービス・レジストリからのサービス展開のための方法、サービス・レジストリ、およびコンピュータ・プログラム
US9742860B2 (en) Bi-temporal key value cache system
US20110153812A1 (en) Apparatus and method for distributing cloud computing resources using mobile devices
US20130212340A1 (en) Partition aware quality of service feature
US20210097476A1 (en) Container Management Method, Apparatus, and Device
WO2022105337A1 (zh) 一种任务调度方法与系统
US11645424B2 (en) Integrity verification in cloud key-value stores
KR20160071455A (ko) 클라이언트 디바이스 상에서의 클라우드 서비스 호스팅
US10262024B1 (en) Providing consistent access to data objects transcending storage limitations in a non-relational data store
US20120198035A1 (en) Install system and install method
CN113722114A (zh) 一种数据服务的处理方法、装置、计算设备及存储介质
US9854047B2 (en) Service pool for multi-tenant applications
US10558502B2 (en) Software application runtime having dynamic evaluation functions and parameters
WO2021232860A1 (zh) 通信方法、装置及系统
US10114864B1 (en) List element query support and processing
CN113765983A (zh) 一种站点服务的部署方法和装置
US11017032B1 (en) Document recovery utilizing serialized data
CN114830105A (zh) 一种数据读取方法以及终端