1. 程式人生 > 其它 >Agora 教程丨如何實現15mins自主搭建一個教育平臺?

Agora 教程丨如何實現15mins自主搭建一個教育平臺?

[ 前言 ]

2020 年對於全球而言都是非常特殊的一年,人與人之間的“物理連結”受到了嚴重影響,日常的生活、工作大都也逐漸向線上轉移。受此影響,大量的線下業務也加速了線上轉型,這其中教育行業的線上化趨勢尤為明顯。

對於教育機構而言,目前常見的教學平臺搭建主要有兩種選擇:可直接使用的 SaaS 平臺以及自主開發的 PaaS 平臺。但這兩種方式都有著較為明顯的長短板:SaaS 即拿即用但無法靈活擴充套件;PaaS 可根據業務需求進行定製化且後期可擴充套件,但對於開發者的經驗以及開發時間會有一定要求。

在這個過程中,如何有效獲取自有使用者資料促進使用者留存以及如何快速進行自主品牌的打造是目前線上教育面臨的挑戰。而教育 aPaaS 平臺的出現,也許剛好可以滿足以上需求。

什麼是教育 aPaaS

1、關於 aPaaS

在我們瞭解什麼是教育 aPaaS 前,首先需要理解幾個關於雲服務的基本概念。以下圖為例,簡單直接點來說:

  • IaaS(Infrastructure as a service – 基礎設施即服務)就是有權管理作業系統之上的一切功能。就像一個未經加工的食材,你可以自行選擇器具,然後用這個食材做任何料理,發揮空間很大,但需要付出大量的資源採買、時間和人力成本。

  • PaaS(Platform as a service – 平臺即服務)則是抽象掉了硬體和作業系統細節,可以無縫地擴充套件(scaling)。開發者只需要關注自己的業務邏輯,不需要關注底層。你拿到手的就是一個食物半成品,在這個既定基礎上你可以根據自身的需求來進行味道或配料上的調整,鹹淡由你。

  • SaaS(Software as a Service – 軟體即服務)給使用者提供的能力是使用在雲基礎架構上執行的雲服務提供商的應用程式。約等於可“直接食用”,但幾乎沒辦法做更多的調整和選擇,給什麼就是什麼。

圖片來源:

https://twitter.com/jeffbarr/status/892767314168365056

不難看出,PaaS 平臺給開發者提供了最大的靈活度,從業務邏輯到實時互動的方式,甚至音視訊的清晰度等引數,都可自定義。不過,由於開放的介面比較多,開發者需要一定時間根據產品需求來實現。而 SaaS 雖然可以“即拿即用”,但短板也是顯而易見:不靈活、無法定製化、業務資料留存在第三方平臺。

那麼 aPaaS 是什麼呢?

aPaaS(Application Platform as a Service - 應用平臺即服務)和 PaaS 都可以完成軟體的開發和部署,都支援雲端訪問。對於開發者來講,兩者的差異在於整合時間與程式碼量上。以開發一個比較完備的教育應用為例,使用 PaaS 的開發者需要至少兩週到一個月的時間,除了要先搞定幾百個 API 的作用外,還要理解業務邏輯層面的程式碼。而 aPaaS 是把複雜的業務邏輯都封裝成可配置的引數了,開發者不用去管底層邏輯,不用去學每個 API 是什麼,現成引數配置成自己需要的就可以。使用教育 aPaaS 產品最快只需要 15 分鐘,通過修改數行引數即可達到應用上線的目的。

2、教育 aPaaS 給我們帶來了什麼?

自主品牌和個性化業務功能是教育機構與生俱來的需求。隨著教育機構業務的不斷成長,這種需求會越發強烈與迫切。同時,教師、學生資訊以及課程日誌等資料對於教育機構而言也是企業未來業務增長很重要的一部分企業資產,對於學員留存也至關重要。

如果選擇使用 SaaS 化平臺,雖然可以直接上手使用,但由於其是以行業標準化需求來進行開發的,因此很難滿足機構的定製化需求,甚至在教育機構的 Logo、UI、域名等品牌資訊的露出上也會十分受限,不利於教育機構自主品牌的打造。

另一方面,教師和學生的資訊、上課資料等業務資料也會被動保留在第三方直播平臺,對企業機構而言,這無疑是給自己的資料安全埋下了一個不定時的隱患。

在 PaaS 平臺進行開發雖然能很好地避免以上問題,甚至在定製化方面做得更好,但對於缺乏經驗的開發團隊或上線排期緊的專案,也就顯得有些為難了。

聲網Agora釋出的 “靈動課堂”是基於 Low-code (低程式碼)的首款教育 aPaaS 產品,幫助教育機構和開發者最快 15 分鐘上線自有品牌,從根本上加快了在本地或雲中構建和部署功能強大的現代教育應用程式所需的時間。支援擁有自主品牌、功能靈活可擴充套件、業務資料自主掌控、穩定可靠、具有XLA體驗質量保障等。

  • 低程式碼開發,模組化功能擴充套件——提效

“靈動課堂”基於聲網Agora 教育 aPaaS 平臺,同時滿足靈活定製和低程式碼接入的使用者需求,節省 90%+ 開發時間,15 分鐘即可上線自有品牌的全功能線上互動教學平臺。具備課堂互動、課堂管理、角色管理、許可權管理、使用者管理等豐富功能,通過模組化功能設計,支援業務功能靈活擴充套件。同時實現線上教學全流程打通,支援通過標準介面無縫對接使用者業務管理系統。

  • 10 倍負荷冗餘,不再擔心高併發——穩定

依託聲網Agora 自研的軟體定義實時網 SD-RTN™ ,基於深度學習演算法實時、準確識別網路異常,實現使用者“零感知”故障切換機制,為業務高可用保駕護航。還針對東南亞、中東、北美等外教所在國和國內中小城市,做到專屬網路優化,端到端優質傳輸率高於 99%。

  • 資料在自己手裡更安全——安全

上線“靈動課堂”後,教育機構的業務資料可以儲存在本地或指定第三方伺服器,機構可以做到 100% 自主掌控資料留存和遷移。同時,還提供資源隔離、內容加密、傳輸加密和身份鑑權等功能,多重安全防護措施對教育機構的業務資料安全進行保障。

15 分鐘實現雲課堂

開發 ≠ 寫程式碼,對於開發者而言,用 100 種方式寫出同一個需求是你的能力,但用最高效、簡潔的方式寫出需求是一種選擇。

教育 aPaaS 平臺對於開發者而言,重點不僅僅在於提效降本,更重要的是有一部分技術人也許沒辦法寫 100 種程式碼,但他們關心業務、有著 100 種關於業務的想法,可最終都掣肘於技術的門檻。藉助教育 aPaaS 中成熟的基礎設施、現成的標準零件、自動化的裝配流水線,開發者只需要專注於最核心的業務價值即可。就算是碰到了非標需求,也可以隨時自己動手,用最靈活的手工定製方式來解決各種邊角問題。

聲網一直致力於通過低程式碼(Low-code)的方式為開發者減負、降低門檻, 讓實時互動場景的開發變得更普適、更方便。作為聲網推出的教育行業首款低程式碼教育 aPaaS 產品,“靈動課堂”將原本需要幾百個 API 接口才能開發“線上互動課堂”的複雜邏輯進行模組化封裝,簡化為只需填寫或修改幾個簡單引數即可完成上線,教育機構和開發者無需再花費大量的時間去理解底層音視訊的複雜邏輯。

以 Web 為例,首先準備好:

然後通過 npm/cdn 獲取 Agora Edu SDK,根據註釋,修改程式碼中的 AppID、userUuid、dom節點、RESTful API token。

下面示例演示了 1V1 教室的建立

 1 AgoraEduSDK.config({
 2  // 聲網APP ID
 3  appId: '<YOUR AGORA APPID>',
 4 })
 5
 6 AgoraEduSDK.launch(
 7  // 放置教育應用的dom節點
 8  document.querySelector("#root1"),
 9  {
10    // 你的使用者的全域性唯一標識ID,需要與你簽發restToken時使用的uid一致
11    userUuid: "userUuid",
12    // 聲網RESTful API token,必須使用RTM Token
13    rtmToken: "006f488493d1886435f963dfb3d95984fd4IABFUDvP51uuFjh3OT3Z3AhgOvCxoWDJ959XnVqGGFbJE0AK77EAAAAAIgCUerYEzZcCYAQAAQD/////AgD/////AwD/////BAD/////"
14    rtmUid: "12311"
15    // 用於顯示的使用者名稱
16    userName: "userName",
17    // 你的課堂的全域性唯一標識ID
18    roomUuid: "roomUuid",
19    // 進入房間的角色,roleType 1: 老師, 2: 學生
20    roleType: 1,
21    // 房間的型別,0: 1v1, 1: 小班, 2: 大班
22    roomType: 0,
23    // 用於顯示的房間名
24    roomName: "roomName",
25    // 是否開啟裝置檢測,true的話會在進入教室前顯示裝置檢測頁面
26    pretest: true,
27    listener: (evt) => {
28       console.log("evt", evt)
29    }
30  }
31).then(e => window.room$ = e)
根據需要,修改好課堂名稱、使用者角色、課堂型別(如 1v1課堂, 小

根據需要,修改好課堂名稱、使用者角色、課堂型別(如 1v1課堂, 小班課, 大班課)、房間名稱等,就完成基本的開發啦。

注:聲網“靈動課堂”主要提供的是課堂內的實時互動體驗,本身不提供使用者系統和排課系統。

如果你已經建立了自己的使用者系統和排課系統,可以參考下圖將你的使用者系統和排課系統與聲網“靈動課堂”進行對接。

你需要實現以下業務邏輯:

  • 在你的服務端部署 RTM Token 生成器,通過 Agora App ID、App 證書和使用者 ID 引數生成 RTM Token。詳情請參考**生成 RTM Token 文件。

  • 設計一個 RESTful API,用於實現以下三個目的:

    • 驗證登入 App 的使用者是否在使用者系統中存在。

    • 獲取該使用者的個人資訊與排課資訊。

    • 獲取 RTM Token 生成器為該使用者簽發的 RTM Token。

客戶端獲取到使用者 ID、課堂 ID 和 RTM Token 後,呼叫 Agora Edu SDK 的 launch 方法,傳入使用者 ID、課堂 ID 和 RTM Token 以及其他引數,即可啟動聲網“靈動課堂”。