Posted
Filed under Scorm
기고자 : Mike Rustici
출처 : http://www.adlkorea.org
=============================================================================

Sharable Content Object Reference Model(SCORM)을 사용하면 업체에서 제공한 학습 컨텐츠를 SCORM에 부합하는 Learning Management System(LMS)과 함께 사용할 수 있다.

SCORM은 정부, 학계, 업계 공동으로 개발되었으며 AICC, IMS, ARIADNE, IEEE LTSC의 작업을 하나의 참조 모델로 통합한다.

SCORM Version 1.2에는 두 종류가 있다. 이는 Run-Time Environment(RTE)와 Content Aggregation Model(CAM)이다.

RTE는 LMS로 시작하는 경우 컨텐츠가 어떻게 작동해야 하는지 설명한다.

CAM은 컨텐츠를 하나로 묶어 이를 LMS에 옮기는 방법을 설명한다. 이 과정에는 LMS가 컨텐츠 내용을 이해하기 위해 필요한 즉, 읽고 학습할 수 있는 형태의 XML 파일 생성 작업이 포함된다.

Run-Time Environment 요약

SCORM표준을 따르는 LMS는 컨텐츠와 LMS의 커뮤니케이션을 가능하게 하는 8가지 함수(전체 규격에 관해서는 3.3항의 SCORM Run-Time Environment 문서 참조)로 구성된 API를 구현하는데 필요하다.

LMSInitialize()
LMSFinish()

LMSGetValue()
LMSSetValue()
LMSCommit()

LMSGetLastError()
LMSGetErrorString()
LMSGetDiagnostic()

API는 SCORM이 API 어댑터에 호출하는 내용에 의해 구현된다. API 어댑터는 컨텐츠를 포함하는 오프너 윈도우(현재창을 열어준 윈도우)나 윈도우의 상위 프레임에 있어야 한다. 즉 LMS가 새로운 윈도우나 프레임세트에서 컨텐츠를 실행해야 한다는 것이다. API 어댑터는 DOM을 통해 접근이 가능한 API인 ECMAScript(JavaScript) 객체여야 한다. 어댑터는 위의 8가지 함수를 구현해야 한다.

컨텐츠와 LMS 사이의 모든 커뮤니케이션은 어댑터가 처리한다. 따라서 컨텐츠 작성자는 서버와 커뮤니케이션을 걱정하지 않아도 되며 API 어댑터를 찾아서 적절한 JavaScript 호출을 만들면 된다. 고객과 서버를 분리하는 것은 SCORM에서 매우 중요한데 이를 통해 표준 플랫폼(웹 브라우저)에서 컨텐츠를 작동하여 컨텐츠의 이동성을 확보할 수 있다. 컨텐츠는 JavaScript API 어댑터를 통해서만 LMS와 커뮤니케니션이 가능하다. 컨텐츠가 웹 서비스나 HTTP 요청과 같은 다른 방법을 통해 LMS와 커뮤니케이션 하는 SCORM 표준을 따르는 방법은 없다.

SCORM에 최소한 부합하기 위해 컨텐츠에 필요한 것은 시작할 때 LMSInitialize()를 호출하고 종료할 때 LMSFinish()를 호출하는 것이다.

그러나 실제로는 훨씬 깊이 있는 상호작용이 요구된다. 시험 결과를 보고하고, 시간을 추적하고 마지막 위치를 표시하는 등의 작업이 가능해야 한다. 이는 다음 3개 함수가 제 역할을 발휘하는 부분이다.

SCORM은 컨텐츠가 읽고 쓸 수 있는 데이터 모델 요소로 구성된 데이터 모델을 정의하여 이와 같은 기능(데이터 모델 요소 전체 리스트는 3.4항의 SCORM Run-Time Environment 문서 참조)을 용이하게 한다. LMSGetValue()는 LMS로부터 데이터 모델 요소의 값을 가져오고 LMSSetValue()는 LMS에 데이터 모델 요소 값을 쓰며, 값을 설정한 후 데이터가 지속될 수 있도록 LMSCommit()을 호출한다.

예를 들어,

cmi.core.lesson_location은 컨텐츠에서 사용자의 위치를 설명하는 데이터 요소이다.
컨텐츠가 시작되면(LMSInitialize(); 호출 후) 호출을 실행하여 사용자가 그만둔 부분을 찾아내서 그 지점으로 돌아갈 수 있게 한다.

strLastLocation = objAPI.LMSGetValue("cmi.core.lesson_location");

컨텐츠가 다른 부분으로 옮겨가면 사용자의 위치를 저장하기 위해 호출을 실행한다.

blnSuccess = objAPI.LMSSetValue("cmi.core.lesson_location", "page3"); blnSuccess = objAPI.LMSCommit("");

다른 3개 함수로 컨텐츠를 트랩하여 지능적으로 오류를 처리할 수 있다.

이처럼 LMS에서 API 어댑터를 구현하는 작업은 컨텐츠에서 사용하는 것보다 다소 복잡하다. API 어댑터는 API 함수를 모두 구현하고 대부분의 SCORM 데이터 모델을 지원해야 한다. SCORM 표준에 부합하는 LMS를 구현하는데 가장 어려운 문제는 브라우저와 서버 사이의 커뮤니케이션을 처리하는 방법이다. 많은 사람들이 Java 애플릿을 이용해 이 문제를 해결하지만 플래시, AcitveX 컨트롤, 순수 JavaScript를 사용하는 경우에도 결과는 성공적이었다.

                       Content Aggregation Model 요약

Content Aggregation 모델은 Content Model, Meta-data, Content Packaging의 세 부분으로 구분된다.
Content Model은 전달중인 컨텐츠를 기술한다. 컨텐츠가 한 개 이상의 모듈을 포함하는 경우, Content Model은 이들 모듈 사이의 관계(Aggregations라고 함)를 설명한다. 컨텐츠 모듈은 컨탠츠의 물리적 구조(필요한 파일 등)를 설명한다.

Content Model은 컨텐츠 재사용을 위해 컨텐츠를 임의의 크기 단위로 분해하는 강력한 모델을 설명한다. 이러한 단위를 Sharable Content Objects(SCO) 및 Asset이라고 한다. Asset은 “미디어, 텍스트, 이미지, 사운드, 웹 페이지, 평가 객체, 기타 데이터를 전자적으로 표현”하는 것이다. 예를 들면, Asset은 이미지, 사운드 클립, 플래시 무비 등이다. SCO는 학습의 논리 단위를 나타내는 한 개 이상의 Asset의 집합이다.

SCO의 정의가 상당히 모호하기 때문에 SCO는 하나의 웹 페이지가 될 수도 있고 수 백 개의 이미지와 Asset을 담은 방대하고 복잡한 웹 기반 교육 모듈이 될 수도 있다. SCO는 LMS가 추적할 수 있는 가장 작은 학습 단위로서 SCO를 표시하는 지침에 따라 컨텐츠 저작자가 정의하게 된다. SCO는 재사용될 수 있어야 한다. 재사용을 위해 SCO는 문맥에 의존적(Context Sensitive)이거나 다른 SCO를 참조하거나 다른 SOC와 링크되지 않아야 한다. SCO의 크기를 결정할 때 반드시 이러한 사안을 고려하도록 한다. 자세한 내용은 SCORM 2004 규격의 2.1항을 참조한다. 2.3항(Content Packaging)에서도 주요 세부사항을 설명하고 있다.

Meta-data 규격은 이미 정의된 공통 어휘를 사용하는 컨텐츠를 설명하는 메커니즘이다. 이러한 어휘는 다음과 같이 9개 종류로 구분된다.

   1. General 카테고리는 전체 자원을 설명하는 일반적인 정보로 구성된다.

   2. Lifecycle 카테고리는 자원의 기록이나 현재 상태와 관련한 내용이나 자원의 발전 중 영향을 준 내용으로 구성된다.

   3. Meta-metadata 카테고리는 Meta-data 기록 자체에 대한 정보이다(기록이 설명하는 자원이 아님).

   4. Technical 카테고리는 자원의 요건과 특징으로 구성된다.

   5. Educational 카테고리는 자원의 교육 및 교수학적 특징으로 구성된다.

   6. Rights 카테고리는 자원의 지적재산권과 사용조건으로 구성된다.

   7. Relation 카테고리는 해당 자원과 다른 목표 자원 사이의 관계를 설명하는 내용으로 구성된다.

   8. Annotation 카테고리는 자원의 교육적 사용에 대한 의견이나 이러한 의견이 언제 누구에 의해서 형성되었는지에 대한 정보를 제공한다.

   9. Classification 카테고리는 자원이 특정 분류 시스템의 어느 부분에 해당하는지 설명한다.

       Meta-data 규격은 매우 다양한 데이터 모델을 정의하지만 SCORM표준에 부합하기 위해서는 소수
       의 데이터 요소만이 필요하다. Meta-data 전체 규격은 SCORM Content Aggregation Model의 2.2
       항에서 볼 수 있다.

Content Packaging 규격은 Content Model과 Meta-data를 설명하고 패키지하는 방법을 정의한다. 시스템 사이의 호환성을 증대하기 위해서는 모든 컨텐츠를 유사한 방식으로 패키지한다.

Content Packaging 규격은 모든 컨텐츠가 하나의 패키지로 전이되도록 요구한다. 이러한 패키지는 Package Interchange File(PIF)이라는 하나의 파일로 묶을 수 있다. 패키지의 루트에는 "imsmanifest.xml"이라는 XML 파일이 있어야 하는데, 이는 지침과 꼭 있어야 하는 것은 아니지만 여러 학습을 구성하는 정적인 방법을 포괄하는 학습 재료(Content Model components)를 설명한다.

ADLNet.org에서는 다양한 Content Package의 예를 제공하고 있다.

이제 SCORM이 무엇이고 어떻게 작동하는지에 대해 상당한 수준으로 이해할 수 있을 것이다. 기술적인 관점에서 가장 중요한 두 가지 부분은 컨텐츠와 LMS 사이의 모든 커뮤니케이션은 JavaScript를 통해 이루어진다는 점과 LMS에 대한 컨텐츠 구조와 특성을 정의하는 imsmanifest.xml이라는 XML 파일이 컨텐츠에 포함되어야 한다는 것이다 . SCORM을 완벽하게 구현하기 위해서는 Run-Time Environment와 Content Aggregation Model에 대한 깊은 이해가 필요하다. 자세한 내용은 SCORM 규격의 기술 정보를 참조한다. 이들 정보는 ADLNet.org에서 제공받거나 mike@scorm.com으로 연락하면 된다.

출처 : Tong - JK world님의 컴퓨터 일반(H/W,S/W)통

2009/07/17 20:45 2009/07/17 20:45