簡體   English   中英

使用不帶LMS的SCORM運行時API?

[英]Use SCORM runtime API without LMS?

我是SCORM的新手,已被授權將SAP Workforce Performance Builder導出的SCORM(可以是1.2或2004)內容集成到現有的PHP網站中。

簡單來說,我需要能夠在瀏覽器中顯示導出的SCORM材料(我已經可以這樣做了),並且能夠通過SCORM運行時API獲取統計信息。

我知道我需要利用LMS來允許通過SCORM運行時API與SCO進行通信。 我已經研究過幾個開源的LMS,但是沒有找到一個很好的解決方案。 問題是很多這些LMS都設計為在提供商的域上運行,並且內置了工具來跟進用戶的進度和評分。

我正在尋找的是一個簡單,輕量級的解決方案,能夠與SCORM運行時API進行交互,因此我可以獲取用戶在課程上花費的時間,他的分數等。我將收集的數據插入到我的擁有自己的數據庫,並編寫可自行評估結果的后端代碼,我只需要一種獲取SCORM數據的方法。

我覺得我錯過了一些東西,你肯定不需要整個LMS實現來簡單地監聽基本的8個SCORM API調用,並記錄結果? 任何幫助或推動正確的方向非常感謝!

如果您只需要模仿LMS,提供偽SCORM API以便課程可以“與您的PHP站點對話”,請嘗試使用Claude Ostyn的SCORM Test Wrapper 它是純粹的客戶端JavaScript,與SCORM一樣輕量級。

簡而言之,Claude的測試包裝器為要連接的課程提供了一個簡單的SCORM API。 它接收來自課程的通信,您可以隨意處理。 沒有提供后端代碼; 如果要與數據庫合並,則需要修改包裝器以從站點的數據庫中推送/拉取數據(這通常通過AJAX處理)。

構建數據存儲后,您可以使您的站點充當LMS,使站點能夠啟動SCORM課程,並使課程能夠通過SCORM API向您的站點發送/接收數據。 無需LMS或第三方服務器。

筆記:

  • 不支持解壓縮包或閱讀清單。 (我懷疑你對那么遠沒興趣。)

  • SCORM還支持排序和導航,這超越了簡單的JavaScript包裝器。 如果您需要支持排序和導航功能,您需要從現有的開源項目中獲取它們(不容易)或者支付第三方,如Rustici Software(SCORM Cloud)。 我懷疑你通過SAP創建的內容不會使用任何SCORM的排序或導航功能,所以你可能會沒問題。

  • 克勞德不久前去世了,所以他不能支持你。 向Rustici Software的人們大聲疾呼,他們為SCORM社區保留了這個網站。

從課件的角度來看,它只是使用javascript來調用APIAPI_1484_11對象上的API 如果您可以編寫javascript代碼來充分利用接口,並存儲/返回必要的數據模型元素,那么您不需要“整個LMS實現”。

您需要仔細閱讀Run-Time Environment文檔。

如果您只計划使用它來運行SAP Workforce Performance Builder生成的課件,那么您可以實現足夠的或數據模型以使其正常工作(雖然我已經看到這樣做,然后人們驚訝/困惑/生氣其他SCORM兼容課件不起作用,所以要小心。)

(旁白)您還需要一種可靠的方法來從PIF zip文件安裝/更新課件包。 同樣,為了處理來自特定內容創建者的課件而不需要編寫完整的通用接口,您只需挑選出所需的imsmanifest.xml文件的位。

(離題)在編寫了界面的課件方面幾次之后,我在API的各種LMS實現中看到了有趣的問題,包括返回布爾值truefalse而不是字符串"true""false" 。可以讓你措手不及 到目前為止,最喜歡的是LMS,它會截斷第一個換行符處的cmi.suspend_data。 (實際上,實現是錯誤的,他們的bug中存在錯誤,並且它也會在換行符之前切斷角色。)

您將主要想要捕獲,維護和強制執行Student Attempt Object。 我現在已經在JSON格式中使用了一段時間了,您可以采用不同的方法來存儲可共享內容對象收集的信息。 通常人們會采取他們需要的部分,而不是試圖100%完全支持SCORM,因此這些類型的問題很受歡迎。

通過為SCORM 1.2或2004創建SCORM運行時,您將主要提供這些方法來從學生會話構建數據。 這看起來像https://gist.github.com/cybercussion/4675334 (基於SCORM 2004的單元測試數據)

  1. 您嘗試將呼叫路由到服務器端。 通常這會導致很多滯后。 我通常不提倡它作為一種選擇。

  2. 您緩存學生嘗試,但是您在提交調用上發布了整個JSON對象。 這通常會導致更大的數據發布,如果有大量的日志交互,可能會對您造成影響。

  3. 您采用混合方法,僅發布已更改的數據並將其合並到服務器上,從而限制可能發生的數據飛艇問題。

我在這里的維基上也有很多信息https://github.com/cybercussion/SCOBot/wiki以及很多示例代碼,提示等...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM