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