一種云服務平臺中間件及云上傳方法
【專利摘要】本發(fā)明提供一種云服務平臺中間件及云上傳方法,所述中間件包括核心引擎層、數(shù)據(jù)層、支撐層、消息組件層,其中,所述核心引擎層,用于提供不同云服務的調(diào)用接口,供所述中間件外部的云應用層調(diào)用;所述數(shù)據(jù)層與所述核心引擎層通信,用于保存用戶云端數(shù)據(jù);所述支撐層與所述核心引擎層通信,用于提供實現(xiàn)不同云服務的服務組件;所述消息組件層分別與所述支撐層、所述核心引擎層通信,用于實現(xiàn)所述支撐層與所述核心引擎層間的消息傳遞。如此就可大大縮短云應用的開發(fā)時間,減少開發(fā)成本。另外,基于本發(fā)明中間件搭建出的云應用,還可通過中間件來整合用戶在不同云應用下的數(shù)據(jù),實現(xiàn)不同云應用間的數(shù)據(jù)打通與共享,還可節(jié)省存儲資源,提高用戶體驗。
【專利說明】—種云服務平臺中間件及云上傳方法
【技術(shù)領域】
[0001]本發(fā)明涉及通信【技術(shù)領域】,具體涉及一種云服務平臺中間件及云上傳方法。
【背景技術(shù)】
[0002]隨著計算機技術(shù)的不斷發(fā)展,云服務以其可靠性和通用性被人們廣泛接受和使用,隨即,涌現(xiàn)出越來越多滿足人們不同需求的云應用,如云相冊、云網(wǎng)盤、云視頻、云筆記
坐坐寸寸ο
[0003]目前,云服務提供商在構(gòu)建一個云應用服務平臺時,大多是通過分析用戶使用場景進行的定制性云應用構(gòu)建,若要在原有云應用的基礎上再增強云服務,要么需要推翻原有云應用的服務平臺,重新構(gòu)建;要么在原有云應用服務平臺的基礎上,構(gòu)建一個甚至多個并列云應用服務平臺。對于第一種方式,耗時長,花費的代價大;而在第二種方式中,各云應用之間相對獨立,無法在各云應用之間實現(xiàn)對同一用戶的云端數(shù)據(jù)共享。下面進行舉例說明。
[0004]如在基于個人云視頻的服務平臺的基礎上,再推出個人云相冊這一云應用,對應現(xiàn)有技術(shù)的兩種方式,具體實現(xiàn)可體現(xiàn)為:
[0005]方式一,推翻現(xiàn)有云視頻應用平臺的架構(gòu),重新分析當前的使用場景,構(gòu)建全新的系統(tǒng)構(gòu)架,使其同時支撐云視頻、云相冊兩個使用場景。這種方式顯然需要花費很大的代價,特別是用戶需求更新較為頻繁的使用場景,這種代價就顯得更為突出。
[0006]方式二,獨立考慮云相冊應用,即只分析云相冊的使用場景,為其定制一套獨立的服務平臺,再獨立建設一套符合云相冊應用特點的網(wǎng)絡基礎設施,以此向用戶提供云視頻、云相冊的綜合使用場景。這種方式下,兩個云應用的用戶數(shù)據(jù)是相互獨立、無法打通的,也就是說,用戶在云視頻應用中的云端數(shù)據(jù)(如用戶底層數(shù)據(jù)、業(yè)務數(shù)據(jù)等)無法共享到云相冊應用中。這種方式下,兩個服務平臺可能需要維護大量相同的數(shù)據(jù),造成存儲資源的浪費;對于用戶來說,還可能會降低用戶體驗。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例的云服務平臺中間件及云上傳方法,用以解決現(xiàn)有技術(shù)在增強云服務時存在的花費代價大、數(shù)據(jù)無法打通的問題。
[0008]為此,本發(fā)明實施例提供如下技術(shù)方案:
[0009]一種云服務平臺中間件,所述中間件包括核心引擎層、數(shù)據(jù)層、支撐層、消息組件層,其中,
[0010]所述核心引擎層,用于提供不同云服務的調(diào)用接口,供所述中間件外部的云應用層調(diào)用;
[0011]所述數(shù)據(jù)層與所述核心引擎層通信,用于保存用戶云端數(shù)據(jù);
[0012]所述支撐層與所述核心引擎層通信,用于提供實現(xiàn)不同云服務的服務組件;
[0013]所述消息組件層分別與所述支撐層、所述核心引擎層通信,用于實現(xiàn)所述支撐層與所述核心弓I擎層間的消息傳遞。
[0014]優(yōu)選的,所述支撐層提供的服務組件包括以下服務組件中的至少一種:
[0015]圖片縮略圖組件、靜態(tài)資源池、視頻轉(zhuǎn)碼系統(tǒng)、文件分發(fā)與加速系統(tǒng)、分布式文件存儲系統(tǒng)。
[0016]優(yōu)選的,所述中間件還包括數(shù)據(jù)緩存層,
[0017]所述數(shù)據(jù)緩存層,用于緩存所述數(shù)據(jù)層中滿足預設規(guī)則的用戶云端數(shù)據(jù)。
[0018]優(yōu)選的,所述核心引擎層,還用于整合同一用戶在不同云服務中的云端數(shù)據(jù),并保存用戶與整合后的云端數(shù)據(jù)間的對應關(guān)系。
[0019]優(yōu)選的,所述核心引擎層,還用于監(jiān)控用戶對不同云服務的訪問情況,并生成云日志保存至所述數(shù)據(jù)層。
[0020]優(yōu)選的,所述消息組件層,還用于與所述云應用層通信,實現(xiàn)不同云服務間的消息傳遞。
[0021]對應地,本發(fā)明實施例還提供一種云上傳方法,開發(fā)者構(gòu)建能提供云上傳服務的應用層,使所述應用層與上述的云服務平臺中間件通信,按照以下步驟進行云上傳:
[0022]所述應用層向所述中間件的核心引擎層中的云上傳服務的調(diào)用接口發(fā)送文件上傳請求,所述請求包括待上傳文件的文件指紋;
[0023]所述云上傳服務根據(jù)所述文件指紋判斷該待上傳文件是否已完成上傳;
[0024]如果未完成上傳,則通知所述應用層將所述待上傳文件上傳至所述中間件的支撐層中的分布式文件存儲系統(tǒng);
[0025]文件完成上傳后,所述分布式文件存儲系統(tǒng)將文件的存儲地址寫入所述中間件的消息組件層的消息隊列中,并將文件上傳成功的信息反饋給所述應用層;
[0026]所述核心引擎層維護的消息讀取進程按預設間隔訪問所述消息組件層,從中讀取所述分布式文件存儲系統(tǒng)寫入的文件存儲地址,并將所述文件存儲地址保存至所述中間件的數(shù)據(jù)層。
[0027]優(yōu)選的,如果所述待上傳文件為圖片,所述方法還包括:
[0028]文件完成上傳后,所述分布式文件存儲系統(tǒng)利用所述圖片縮略圖組件生成縮略圖,并將所述縮略圖存入靜態(tài)資源池。
[0029]優(yōu)選的,如果所述待上傳文件為視頻文件,所述方法還包括:
[0030]所述消息讀取進程從所述消息組件層讀取到所述文件存儲地址后,所述核心引擎層控制所述支撐層的視頻轉(zhuǎn)碼系統(tǒng)從所述分布式文件存儲系統(tǒng)中讀取所述視頻文件并進行視頻轉(zhuǎn)碼;
[0031]轉(zhuǎn)碼完成后,所述視頻轉(zhuǎn)碼系統(tǒng)將轉(zhuǎn)碼后的文件保存至所述支撐層的文件分發(fā)與加速系統(tǒng),并將轉(zhuǎn)碼后的文件的存儲地址寫入所述消息組件層的消息隊列中;
[0032]所述消息讀取進程按照預設間隔訪問所述消息組件層,從中讀取所述轉(zhuǎn)碼后的文件的存儲地址并保存至所述數(shù)據(jù)層。
[0033]優(yōu)選的,所述待上傳文件請求還包括回調(diào)地址,則所述方法還包括:
[0034]在所述將所述文件存儲地址保存至所述中間件的數(shù)據(jù)層之后,
[0035]所述云上傳服務通過所述回調(diào)地址向所述應用層發(fā)送上傳成功確認消息。
[0036]本發(fā)明實施例的云服務平臺中間件及云上傳方法,由中間件對多個云服務的底層業(yè)務和數(shù)據(jù)進行統(tǒng)一管理和維護,開發(fā)者只需構(gòu)建簡單的應用層,然后調(diào)用中間件提供的對外接口即可搭建一個新的云應用,如此就可大大縮短云應用的開發(fā)時間,減少開發(fā)成本。另外,基于本發(fā)明中間件搭建出的云應用,還可通過中間件來整合用戶在不同云應用下的數(shù)據(jù),實現(xiàn)不同云應用間的數(shù)據(jù)打通與共享,如此還可節(jié)省存儲資源,提高用戶體驗。
【專利附圖】
【附圖說明】
[0037]為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其它的附圖。
[0038]圖1是本發(fā)明實施例的云服務平臺中間件的示意圖;
[0039]圖2是本發(fā)明實施例云上傳方法實施例1的流程圖;
[0040]圖3是本發(fā)明實施例云上傳方法實施例2的流程圖。
【具體實施方式】
[0041]為了使本【技術(shù)領域】的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實施方式對本發(fā)明實施例作進一步的詳細說明。
[0042]為了解決現(xiàn)有技術(shù)在原有云應用基礎上增強云服務時,搭建新的云應用服務平臺耗時長、代價大等問題,本發(fā)明實施例提供了一種云服務平臺中間件,為開發(fā)者提供了實現(xiàn)多種云應用的技術(shù)支持。如此,在需要孵化一款新的云應用時,開發(fā)者只需要構(gòu)建應用層,然后通過應用層調(diào)用本發(fā)明實施例的中間件,以應用層與中間件拼接的方式實現(xiàn)一種新的云應用。相對現(xiàn)有技術(shù)需要花費3?5個月的時間構(gòu)建一種新的云應用來說,采用本發(fā)明方案之后,僅需I?2個月即可完成,大大縮短了研發(fā)時間,降低了時間成本。
[0043]需要說明的是,應用層可以理解為是云應用的用戶交互界面,即用戶可視并可直接操作的界面,其面向用戶不同的云服務需求,可實現(xiàn)移動端、PC端、TV端等客戶端的云應用展示。
[0044]下面對本發(fā)明實施例的云服務平臺中間件的構(gòu)成進行解釋說明。
[0045]實施例1
[0046]參見圖1,示出了本發(fā)明實施例的云服務平臺中間件的示意圖,作為本發(fā)明實施例中間件構(gòu)成方案的實施例1,中間件可包括核心引擎層、數(shù)據(jù)層、支撐層、消息組件層。下面對各層進行解釋說明。
[0047](I)核心引擎層,用于提供不同云服務的調(diào)用接口,供中間件外部的云應用層調(diào)用。
[0048]核心引擎層最基本的功能即是要維護供不同云應用服務的調(diào)用接口,參見圖1所舉示例,核心引擎層可向應用層提供上傳、下載、移動、重命名、搜索等服務,并向開發(fā)者提供這些服務的調(diào)用接口,供其使用。如此,在開發(fā)者擬構(gòu)建一個新的云應用時,只要開發(fā)實現(xiàn)業(yè)務展示的應用層,并在需要時調(diào)用核心引擎層提供的相應的接口即可。
[0049]需要說明的是,核心引擎層作為本發(fā)明中間件的對外接口,可直接與應用層通信,并根據(jù)實際使用情況建立與數(shù)據(jù)層、支撐層、或者消息組件層的通信,對此將在下文一一進行解釋說明。
[0050](2)數(shù)據(jù)層與核心引擎層通信,用于保存用戶云端數(shù)據(jù)。
[0051]數(shù)據(jù)層最基本的功能即是實現(xiàn)云端存儲,主要由數(shù)據(jù)庫組件形成。
[0052](3)支撐層與核心引擎層通信,用于提供實現(xiàn)不同云服務的服務組件。
[0053]應用層調(diào)用核心引擎層后,由核心引擎層根據(jù)應用層為用戶提供的不同云服務,與支撐層相互配合實現(xiàn)云服務。參見圖1所舉示例,支撐層可體現(xiàn)為:圖片縮略圖組件、靜態(tài)資源池、視頻轉(zhuǎn)碼系統(tǒng)、文件分發(fā)與加速系統(tǒng)、分布式文件存儲系統(tǒng)、監(jiān)控系統(tǒng)等。
[0054]支撐層所包含的組件可被劃分為實現(xiàn)不同云服務的通用組件,如,云網(wǎng)盤服務和云相冊服務上傳的文件均可保存至分布式文件存儲系統(tǒng)中,對于這兩個云應用來說,分布式文件存儲系統(tǒng)就可被視為通用組件?;蛘撸煌品站赏ㄟ^監(jiān)控系統(tǒng),對應用接口、消息隊列、服務器、網(wǎng)絡、磁盤、數(shù)據(jù)庫主從等健康狀況進行實時監(jiān)控,故監(jiān)控系統(tǒng)亦可被視為通用組件。
[0055]另外,支撐層的組件還可被劃分為實現(xiàn)個性化云服務的個性化組件,如,對于云相冊服務來說,除了要通過分布式文件存儲系統(tǒng)保存用戶上傳的相冊之外,在檢測到用戶上傳的文件為圖片時,還會通過圖片縮略圖組件進行圖片處理生成縮略圖,并將其推到靜態(tài)資源池中,以提高圖片訪問速度。再例如,對于視頻文件來說,其可能由手機、攝像機等不同終端拍攝,也可能具有不同的視頻格式,為了保證用戶上傳成功后,可在任何地方通過任何設備正常播放該視頻文件,還應對視頻文件進行統(tǒng)一轉(zhuǎn)碼。圖片縮略圖組件、靜態(tài)資源池、視頻轉(zhuǎn)碼系統(tǒng)等均可被視為個性化組件。
[0056](4)消息組件層分別與支撐層、核心引擎層通信,用于實現(xiàn)支撐層與核心引擎層間的消息傳遞。
[0057]消息組件層最基本的功能即是實現(xiàn)支撐層向核心引擎層方向的消息傳遞。如,應用層調(diào)用核心引擎層向用戶提供上傳服務時,核心引擎層會與支撐層的分布式文件存儲系統(tǒng)配合,進行文件上傳與存儲;上傳完成后,分布式文件存儲系統(tǒng)還需要將存儲地址保存到數(shù)據(jù)層,以便用戶在需要進行文件下載時,核心引擎層可以從數(shù)據(jù)層讀取文件存儲地址,進而去相應的位置獲取文件。在這一過程中,支撐層即是通過消息組件層將存儲地址傳遞給核心引擎層,進而由核心引擎層將其保存至數(shù)據(jù)層,對此將在下文的云上傳方法中進行解釋說明。
[0058]如此,開發(fā)者就可以利用本發(fā)明實施例提供的中間件快速方便的構(gòu)建一款新的云應用,且在開發(fā)過程中,開發(fā)者僅需構(gòu)建簡單的應用層,然后使應用層與中間件的對外接口進行交互即可。對于實現(xiàn)云服務的底層業(yè)務及數(shù)據(jù)均可由中間件統(tǒng)一進行管理及維護,這就可大大減少不必要的重復開發(fā)工作,降低數(shù)據(jù)同步、軟硬件開發(fā)、維護升級等方面的成本。
[0059]實施例2
[0060]另外,針對現(xiàn)有技術(shù)增強云服務方式二,無法打通兩個獨立服務平臺之間數(shù)據(jù)的缺點,本發(fā)明實施例還提供了中間件構(gòu)成方案的實施例2。在該實施例中,核心引擎層,還用于整合同一用戶在不同云服務中的云端數(shù)據(jù),并保存用戶與整合后的云端數(shù)據(jù)間的對應關(guān)系O
[0061]也就是說,開發(fā)者可以構(gòu)建多個不同云服務的應用層,并利用本發(fā)明的中間件拼接出多個不同的云應用,如圖1示出的云網(wǎng)盤、云相冊、云備份等云應用的應用層。為了保證用戶在不用云應用中數(shù)據(jù)的打通與共享,核心引擎層還應具有整合用戶云端數(shù)據(jù)的功倉泛。
[0062]具體過程可提現(xiàn)為:在用戶通過利用本發(fā)明中間件搭建成的云應用進行數(shù)據(jù)上傳時,核心引擎層會建立用戶身份信息與云應用間的對應關(guān)系,因為云應用與用戶數(shù)據(jù)也是相對應的,如此也就建立了用戶身份信息與用戶數(shù)據(jù)間的對應關(guān)系,這樣,在用戶需要實現(xiàn)相關(guān)云服務的聯(lián)動時,核心引擎層就可以根據(jù)用戶輸入的條件,查找需要的數(shù)據(jù)反饋給用戶,如此既可節(jié)省存儲資源,又可提高用戶體驗。下面對該過程進行舉例說明。
[0063]如,通過本發(fā)明中間件實現(xiàn)了云網(wǎng)盤和云相冊兩個云應用,若要實現(xiàn)云網(wǎng)盤的個人照片在云相冊中的展現(xiàn)與管理,過程可體現(xiàn)為:首先,核心引擎層會建立用戶身份編碼與云網(wǎng)盤間的映射關(guān)系,進而實現(xiàn)該用戶與云網(wǎng)盤所有用戶數(shù)據(jù)的關(guān)聯(lián)(當然包括該用戶與上述個人照片間的關(guān)聯(lián));對應地,核心引擎層還會建立該名用戶的身份編碼與云相冊間的映射關(guān)系,實現(xiàn)其與云相冊所有用戶數(shù)據(jù)的關(guān)聯(lián),如此,就建立了該用戶及其在兩個云應用下數(shù)據(jù)的關(guān)聯(lián)關(guān)系。其次,在用戶想要實現(xiàn)云網(wǎng)盤的個人照片到云相冊的展現(xiàn)時,將其作為聯(lián)動條件輸入,核心引擎層即會根據(jù)這一條件判斷該名用戶是否與云網(wǎng)盤建立有映射關(guān)系,如果有就可從云網(wǎng)盤中查找并讀取用戶需要的個人照片,并將其共享到云相冊,實現(xiàn)云網(wǎng)盤中的個人照片在云相冊的展現(xiàn)。
[0064]實施例3
[0065]在實現(xiàn)不同云應用間數(shù)據(jù)打通與共享之后,為了實現(xiàn)不同云應用底層系統(tǒng)間的數(shù)據(jù)通信,并降低耦合性,實現(xiàn)系統(tǒng)間松耦合,本發(fā)明實施例還提供了中間件構(gòu)成方案的實施例3。在該實施例中,消息組件層,還用于與所述云應用層通信,實現(xiàn)不同云服務間的消息傳遞。
[0066]也就是說,本發(fā)明中的消息組件層除了可實現(xiàn)同一應用下的消息傳遞,還能實現(xiàn)不同應用間的消息傳遞。下面以傳遞共享信息為例進行解釋說明:
[0067]同一應用下的消息傳遞可體現(xiàn)為:用戶A在云相冊應用中向用戶B共享了一張照片,消息組件層即會向云相冊應用中的用戶B發(fā)送共享信息提醒,提示用戶B當前有用戶A向其共享了照片。
[0068]不同應用下的消息傳遞可體現(xiàn)為:用戶A在云相冊應用中向用戶B共享了一張照片,因不同應用間的數(shù)據(jù)被打通,故消息組件層還可向云網(wǎng)盤應用中的用戶B發(fā)送共享信息提醒,提示用戶B當前有用戶A在云相冊應用中向其共享了照片。作為本發(fā)明實施例的一種優(yōu)選方案,在用戶B點擊共享消息提醒中的鏈接地址時,還可直接從云網(wǎng)盤跳轉(zhuǎn)到云相冊中,查看用戶A共享的照片。
[0069]需要說明的是,上文實施例1處介紹的存儲地址的傳遞可以理解為是同一應用下消息傳遞過程的體現(xiàn)。
[0070]實施例4
[0071]為了提高利用本發(fā)明中間件搭建出的云應用的訪問速度,本發(fā)明實施例還提供了中間件構(gòu)成方案的實施例4。在該實施例中,中間件還包括數(shù)據(jù)緩存層,用于緩存所述數(shù)據(jù)層中滿足預設規(guī)則的用戶云端數(shù)據(jù)。
[0072]—般情況下,在用戶訪問云應用,希望從中讀取或者下載數(shù)據(jù)時,需要通過應用層調(diào)用核心引擎層,再由核心引擎層根據(jù)用戶需求,從數(shù)據(jù)層中讀取相應的用戶數(shù)據(jù)。為了提高這一過程的處理速度,本發(fā)明實施例還增設了讀取速度較快的數(shù)據(jù)緩存層,將部分滿足預設規(guī)則(預設規(guī)則可體現(xiàn)為用戶常用的數(shù)據(jù)、或者用戶設置的特定類型的數(shù)據(jù)等,本發(fā)明對此可不做限定)的數(shù)據(jù)從數(shù)據(jù)層讀取到數(shù)據(jù)緩存層中保存。在用戶需要訪問數(shù)據(jù)時,由核心引擎層先從數(shù)據(jù)緩存層讀取,如果數(shù)據(jù)緩存層不存在,再訪問數(shù)據(jù)層并從中讀取。
[0073]數(shù)據(jù)緩存層可包含數(shù)據(jù)緩存組件、會話共享組件等,因其與數(shù)據(jù)層均是為了實現(xiàn)云端數(shù)據(jù)存儲及查詢,故在圖1所示示例中,并未對二者進行嚴格的劃界。
[0074]實施例5
[0075]為了記錄利用本發(fā)明中間件搭建出的云應用的訪問情況,本發(fā)明實施例還提供了中間件構(gòu)成方案的實施例5。在該實施例中,核心引擎層,還用于監(jiān)控用戶對不同云服務的訪問情況,并生成云日志保存至所述數(shù)據(jù)層。
[0076]也就是說,核心引擎層還具備監(jiān)控功能,可統(tǒng)計分析每個云應用具有的用戶數(shù)量、預設時間段(如每天、每小時等)的訪問量、應用的使用活躍度等,對應于此,數(shù)據(jù)層還包含有日志組件,用于保存核心引擎層監(jiān)控到的數(shù)據(jù)。
[0077]下面以云上傳過程為例,對利用本發(fā)明中間件搭建出的云應用的使用過程進行解釋說明。
[0078]實施例6
[0079]如上文所做介紹,從開發(fā)者的角度來說,其需要構(gòu)建一個能提供云上傳服務的應用層,然后使該應用層與本發(fā)明的云服務平臺中間件通信,按照以下步驟進行云上傳。具體可參見圖2所示實施例1的流程圖,可包括:
[0080]步驟101,所述應用層向所述中間件的核心引擎層中的云上傳服務的調(diào)用接口發(fā)送文件上傳請求,所述請求包括待上傳文件的文件指紋。
[0081]應用層向用戶展示操作界面,并在接收到用戶通過客戶端發(fā)送的文件上傳請求時,與中間件的核心引擎層建立通信,調(diào)用核心引擎層向其提供的文件上傳服務接口,將文件上傳請求提交給該接口,觸發(fā)云上傳過程。
[0082]需要說明的是,文件上傳請求中主要包含的是待上傳文件的文件指紋,文件指紋可視為是文件的身份信息,每個文件都對應有各自唯一的文件指紋,文件指紋可通過文件內(nèi)容、文件大小、文件類型等形成。
[0083]步驟102,所述云上傳服務根據(jù)所述文件指紋判斷該待上傳文件是否已完成上傳,如果未完成上傳,則執(zhí)行步驟103 ;如果已完成上傳,則向用戶反饋上傳成功。
[0084]核心引擎層中的云上傳服務接收到應用層轉(zhuǎn)發(fā)的文件上傳請求之后,先根據(jù)文件指紋判斷該待上傳文件是否已完成上傳:
[0085]如果已完成上傳(不論是用戶自己先前上傳過該文件,還是其它用戶上傳過該文件,均可視為已完成上傳。對于其它用戶上傳過該文件的情況來說,當前用戶相當于共享了其它用戶的上傳進度及上傳文件),則核心引擎層直接通過應用層向用戶反饋文件上傳成功的消息,實現(xiàn)文件秒傳。
[0086]如果未完成上傳(可具體體現(xiàn)為文件不存在,或者文件上傳中斷),云上傳服務則會查找距離該用戶客戶端最近的上傳節(jié)點,并將該上傳節(jié)點分配給客戶端,用以實現(xiàn)文件上傳。[0087]步驟103,通知所述應用層將所述待上傳文件上傳至所述中間件的支撐層中的分布式文件存儲系統(tǒng)。
[0088]本步驟即是查找到距離客戶端最近的上傳節(jié)點之后,通過應用層將該上傳節(jié)點的地址通知客戶端,進而通過上傳節(jié)點將待上傳文件上傳至中間件的支撐層,具體是上傳到支撐層的分布式文件存儲系統(tǒng)中。
[0089]步驟104,文件完成上傳后,所述分布式文件存儲系統(tǒng)將文件的存儲地址寫入所述中間件的消息組件層的消息隊列中,并將文件上傳成功的信息反饋給所述應用層。
[0090]步驟105,所述核心引擎層維護的消息讀取進程按預設間隔訪問所述消息組件層,從中讀取所述分布式文件存儲系統(tǒng)寫入的文件存儲地址,并將所述文件存儲地址保存至所述中間件的數(shù)據(jù)層。
[0091]在文件上傳完成之后,還需要將文件的存儲地址保存到數(shù)據(jù)層,以備后續(xù)用戶在讀取或下載文件時使用,對此還需要進行如下兩方面處理:
[0092]第一方面,分布式文件存儲系統(tǒng)將文件的存儲地址(或理解為存儲路徑)寫入到消息組件層的消息隊列中,同時還會向客戶端用戶反饋文件上傳成功的消息(主要是通過應用層展現(xiàn)給用戶查看)。
[0093]第二方面,核心引擎層維護著一個消息讀取進程,該進程為一個定時腳本,可每隔預設時間間隔訪問一次消息組件層,讀取消息隊列中的消息。在分布式文件存儲系統(tǒng)將文件存儲地址寫入消息隊列之后,即可被消息讀取進程讀取并保存到數(shù)據(jù)層中。至此,就完成了利用本發(fā)明中間件搭建出的云應用進行云上傳的過程。
[0094]實施例7
[0095]參見圖3,示出了本發(fā)明云上傳方法實施例2的流程圖,可包括:
[0096]步驟201,所述應用層向所述中間件的核心引擎層中的云上傳服務的調(diào)用接口發(fā)送文件上傳請求,所述請求包括回調(diào)地址和待上傳文件的文件指紋。
[0097]步驟202,所述云上傳服務根據(jù)所述文件指紋判斷該待上傳文件是否已完成上傳,如果未完成上傳,則執(zhí)行步驟203 ;如果已完成上傳,則向用戶反饋上傳成功。
[0098]步驟203,通知所述應用層將所述待上傳文件上傳至所述中間件的支撐層中的分布式文件存儲系統(tǒng)。
[0099]步驟204,文件完成上傳后,所述分布式文件存儲系統(tǒng)將文件的存儲地址寫入所述中間件的消息組件層的消息隊列中,并將文件上傳成功的信息反饋給所述應用層。
[0100]步驟205,所述核心引擎層維護的消息讀取進程按預設間隔訪問所述消息組件層,從中讀取所述分布式文件存儲系統(tǒng)寫入的文件存儲地址,并將所述文件存儲地址保存至所述中間件的數(shù)據(jù)層。
[0101]步驟201?205與步驟101?105基本相同,此處不再贅述。所不同的是,本實施例中文件上傳請求中還包括回調(diào)地址,也就是說,客戶端用戶希望在平臺確認文件上傳成功之后,通過回調(diào)地址向其反饋上傳成功確認消息。
[0102]步驟206,所述云上傳服務向所述應用層發(fā)送上傳成功確認消息。
[0103]當客戶端對文件上傳結(jié)果要求較為嚴格時,可在文件上傳請求中添加入回調(diào)地址,要求平臺向其反饋文件的最終上傳狀態(tài)。
[0104]在云上傳方法實施例1中,文件完成上傳后,分布式文件存儲系統(tǒng)會向客戶端反饋文件上傳成功的消息,但是,由上文介紹可知,在分布式文件存儲系統(tǒng)向應用層反饋該消息之后,還要經(jīng)過消息讀取進程讀取存儲地址、以及將存儲地址保存到數(shù)據(jù)層等處理過程,不論這些過程中的哪個出現(xiàn)錯誤,都可能會導致用戶后續(xù)無法正確讀取或下載到該上傳文件。因此,本實施例還針對上傳結(jié)果要求較高的情況(如云備份),利用回調(diào)的方式,在確保文件存儲地址被正確保存到數(shù)據(jù)層之后,由核心引擎層向應用層發(fā)送文件上傳成功確認消息,以此使客戶端用戶掌握文件的最終上傳狀態(tài)。
[0105]需要說明的是,進行云上傳的文件可能是普通文檔,也可能是圖片類文件,或者視頻類文件,對于圖片類和視頻類的文件來說,在上傳過程中還需要利用支撐層的個性化組件進行特殊處理,下面分別進行解釋說明。
[0106]在文件完成上傳后,如果分布式文件存儲系統(tǒng)判定該文件為圖片類文件,即會觸發(fā)圖片縮略圖組件生成縮略圖,并將所述縮略圖存入靜態(tài)資源池。這一過程,可在分布式文件存儲系統(tǒng)將文件存儲地址寫入消息隊列之前執(zhí)行,也可在將文件存儲地址寫入消息隊列之后執(zhí)行,或者同時執(zhí)行這兩個動作,對此本發(fā)明可不做限定。
[0107]如果待上傳文件為視頻文件,則在消息讀取進程從消息組件層的消息隊列中讀取到該文件的存儲地址之后,核心引擎層會將文件存儲地址發(fā)送給視頻轉(zhuǎn)碼系統(tǒng),控制視頻轉(zhuǎn)碼系統(tǒng)從分布式文件存儲系統(tǒng)中讀取該視頻類文件,并進行視頻轉(zhuǎn)碼。為了提高轉(zhuǎn)碼后的視頻文件的讀取速度,視頻轉(zhuǎn)碼系統(tǒng)在完成轉(zhuǎn)碼后,還會將轉(zhuǎn)碼后的文件保存至文件分發(fā)與加速系統(tǒng),并將其在文件分發(fā)和加速系統(tǒng)中的存儲地址寫入消息組件層的消息隊列中,等待消息讀取進程讀取并將其保存到數(shù)據(jù)層。也就是說,對于一個視頻文件來說,數(shù)據(jù)層保存有其兩個存儲地址,一個是存儲在分布式文件存儲系統(tǒng)中的原始上傳文件的存儲地址,供用戶查看和下載;一個是存儲在文件分發(fā)與加速系統(tǒng)中的轉(zhuǎn)碼后的文件的存儲地址,供用戶在不同設備上播放。
[0108]以上對本發(fā)明實施例進行了詳細介紹,本文中應用了【具體實施方式】對本發(fā)明進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及平臺;同時,對于本領域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種云服務平臺中間件,其特征在于,所述中間件包括核心引擎層、數(shù)據(jù)層、支撐層、消息組件層,其中, 所述核心引擎層,用于提供不同云服務的調(diào)用接口,供所述中間件外部的云應用層調(diào)用; 所述數(shù)據(jù)層與所述核心引擎層通信,用于保存用戶云端數(shù)據(jù); 所述支撐層與所述核心引擎層通信,用于提供實現(xiàn)不同云服務的服務組件; 所述消息組件層分別與所述支撐層、所述核心引擎層通信,用于實現(xiàn)所述支撐層與所述核心引擎層間的消息傳遞。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述支撐層提供的服務組件包括以下服務組件中的至少一種: 圖片縮略圖組件、靜態(tài)資源池、視頻轉(zhuǎn)碼系統(tǒng)、文件分發(fā)與加速系統(tǒng)、分布式文件存儲系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述中間件還包括數(shù)據(jù)緩存層, 所述數(shù)據(jù)緩存層,用于緩存所述數(shù)據(jù)層中滿足預設規(guī)則的用戶云端數(shù)據(jù)。
4.根據(jù)權(quán)利要求1~3任一項所述的方法,其特征在于, 所述核心引擎層,還用于整合同一用戶在不同云服務中的云端數(shù)據(jù),并保存用戶與整合后的云端數(shù)據(jù)間的對應關(guān)系。
5.根據(jù)權(quán)利要求1~3任一項所述的方法,其特征在于, 所述核心引擎層,還用于監(jiān)控用戶對不同云服務的訪問情況,并生成云日志保存至所述數(shù)據(jù)層。
6.根據(jù)權(quán)利要求1~3任一項所述的方法,其特征在于, 所述消息組件層,還用于與所述云應用層通信,實現(xiàn)不同云服務間的消息傳遞。
7.—種云上傳方法,其特征在于,開發(fā)者構(gòu)建能提供云上傳服務的應用層,使所述應用層與權(quán)利要求1~6任一項所述的云服務平臺中間件通信,按照以下步驟進行云上傳: 所述應用層向所述中間件的核心引擎層中的云上傳服務的調(diào)用接口發(fā)送文件上傳請求,所述請求包括待上傳文件的文件指紋; 所述云上傳服務根據(jù)所述文件指紋判斷該待上傳文件是否已完成上傳; 如果未完成上傳,則通知所述應用層將所述待上傳文件上傳至所述中間件的支撐層中的分布式文件存儲系統(tǒng); 文件完成上傳后,所述分布式文件存儲系統(tǒng)將文件的存儲地址寫入所述中間件的消息組件層的消息隊列中,并將文件上傳成功的信息反饋給所述應用層; 所述核心引擎層維護的消息讀取進程按預設間隔訪問所述消息組件層,從中讀取所述分布式文件存儲系統(tǒng)寫入的文件存儲地址,并將所述文件存儲地址保存至所述中間件的數(shù)據(jù)層。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,如果所述待上傳文件為圖片,所述方法還包括: 文件完成上傳后,所述分布式文件存儲系統(tǒng)利用所述圖片縮略圖組件生成縮略圖,并將所述縮略圖存入靜態(tài)資源池。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,如果所述待上傳文件為視頻文件,所述方法還包括: 所述消息讀取進程從所述消息組件層讀取到所述文件存儲地址后,所述核心引擎層控制所述支撐層的視頻轉(zhuǎn)碼系統(tǒng)從所述分布式文件存儲系統(tǒng)中讀取所述視頻文件并進行視頻轉(zhuǎn)碼; 轉(zhuǎn)碼完成后,所述視頻轉(zhuǎn)碼系統(tǒng)將轉(zhuǎn)碼后的文件保存至所述支撐層的文件分發(fā)與加速系統(tǒng),并將轉(zhuǎn)碼后的文件的存儲地址寫入所述消息組件層的消息隊列中; 所述消息讀取進程按照預設間隔訪問所述消息組件層,從中讀取所述轉(zhuǎn)碼后的文件的存儲地址并保存至所述數(shù)據(jù)層。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述待上傳文件請求還包括回調(diào)地址,則所述方法還包括: 在所述將所述文件存儲地址保存至所述中間件的數(shù)據(jù)層之后, 所述云上傳服務通過所述回調(diào)地址向所述應用層發(fā)送上傳成功確認消息。
【文檔編號】H04L29/08GK103533087SQ201310533857
【公開日】2014年1月22日 申請日期:2013年10月31日 優(yōu)先權(quán)日:2013年10月31日
【發(fā)明者】張清柱 申請人:樂視網(wǎng)信息技術(shù)(北京)股份有限公司