II. Chuẩn SCORM.
c. Giao diện lập trình ứng dụng API.
Phần này mô tả API của nội dung dùng để giao tiếp với dịch vụ thực thi (RTS). RTS được định nghĩa là một phần mềm dùng để điều khiển thực thi và phân phối nội dung học tập và có thể cung cấp các dịch vụ như định vị tài nguyên, lập kế hoạch, điều khiển đầu vào và ra và quản lý dữ liệu. Theo quan điểm của SCORM, hai từ RTS và LMS là tương đương với nhau. API cho phép trao đổi dữ liệu giữa nội dung và RTE cung cấp bởi LMS thông qua các dịch vụ API sử dụng ECMAScript.
Một số khái niệm quan trọng: một vài khái niệm được dùng xuyên suốt trong SCORM như API, API Implementation và API Instance. Hãy xem hình vẽ dưới đây:
Hình vẽ chỉ ra mối quan hệ giữa các khái niệm API, API Implementation, và API Instance.
API: Theo nghĩa đơn giản nhất API là một tập các hàm được định nghĩa trước mà SCO có thể gọi.
API Implementation: Là một phần mềm có chức năng dùng để thực thi và cung cấp giao diện hàm chuẩn của API. Tất nhiên API Implementation hoạt động như thế nào bên trong không quan trọng đối với người phát triển SCO, miễn là API Implementation cung cấp một loạt các public interface chuẩn.
API Instance: Là một thể hiện của API Implementation trong một ngữ cảnh cụ thể.
SCO sẽ có trách nhiệm khởi tạo phiên liên lạc với LMS. Hiện tại chưa có cơ chế nào được đặt ra để cho phép LMS khởi tạo các hàm thực thi bởi một SCO. Các phương thức cung cấp bởi API Implementation được chia làm 3 mục. Bảng dưới đây sẽ tóm tắt các mục đó.
Phương thức Mô tả
Các phương thức
phiên Các phương thức phiên được dùng để đánh dấu sự bắt đầu và kết thúc của phiên trao đổi thông tin giữa SCO và LMS thông qua API Instance
Các phương thức
truyền dữ liệu Các phương thức này dùng để trao đổi các giá trị mô hình dữ liệu giữa SCO và LMS thông qua API Instance Các phương thức
hỗ trợ Các phương thức này được dùng như các trao đổi thông tin phụ giữa SCO và LMS thông qua API Instance (chẳng hạn như lỗi phát sinh).
Cú pháp và các phương thức của API: Các yêu cầu chung phải tuân theo khi thực thi API là :
• Tên các phương thức có phân biệt hoa thường rõ ràng và được chỉ ra ở các phần sau này.
• Các tham số của phương thức cũng phân biệt hoa thường rõ ràng.
Các hàm dữ liệu đưa vào trong các tham số được biểu diễn như chuỗi kí tự. Chúng gồm 3 kiểu là các phương thức phiên (Initialize, Terminate), các phương thức trao đổi dữ liệu (GetValue, SetValue) và các phương thức hỗ trợ (GetErrorString, GetErrorCode, GetDiagnostic).
Mô hình trạng thái phiên trao đổi thông tin.
Các trạng thái trong phiên trao đổi thông tin là: - Chưa khởi tạo (Not Initialized)
- Đang chạy (Running) - Kết thúc (Terminated)
Trên hình vẽ cho ta thấy các trạng thái của phiên trao đổi thông tin: Not Initialized, Running và Terminated. Nó cũng cho chúng ta thấy trách nhiệm của SCO là tìm API Instance và gọi phương thức Initialize().
Các mã lỗi khi thực thi API.
Tất cả các mã lỗi được xem như là các số nguyên biểu diễn như các chuỗi kí tự. Chuẩn IEEE yêu cầu tất cả các mã lỗi trong khoảng 0 đến 65536. Một khoảng định nghĩa trước cho các lỗi có thể phát sinh là từ 0 dến 999. Các mã lỗi bổ sung trong khoảng 1000 đến 65535. Mọi hàm API, trừ các phương thức hỗ trợ : GetLastError(), GetErrorString(), và GetDiagnostic(), đặt mã lỗi hiện thời cho API Instance, tức là mỗi lần gọi các hàm đó đều có một mã lỗi tương ứng đi kèm (Có thể có lỗi và có thể không có lỗi). Dưới đây là bảng tóm tắt các mã lỗi quy định bởi IEEE.
Mục mã lỗi Miền giá trị của mã lỗi
Không có lỗi 0
Lỗi chung 100-199
Lỗi cú pháp 200-299
Lỗi RTS 300-399
Lỗi mô hình dữ liệu 400-499 Các lỗi tự định nghĩa 1000-65535
Bảng mã lỗi khi thực thi API.
Trách nhiệm của LMS.
SCORM yêu cầu LMS cung cấp một API Instance như định nghĩa trong chuẩn IEEE và SCORM. API sẽ dấu SCO những thực thi bên trong cụ thể. Dưới đây chúng ta sẽ đi vào những yêu cầu cụ thể hơn. SCORM yêu cầu LMS cung cấp một API Instance thực thi chức năng của API mô tả trước đó. Để SCO có thể sử dụng tốt API Instance đặt ra bởi LMS, thì LMS phải có các yêu cầu nhất định về API Instance. Để cung cấp phương tiện để định vị API Instance, API Instance của LMS sẽ được cung cấp qua DOM như một đối tượng tên API là API_1484_11. LMS phải cung cấp khả năng cho SCO để truy cập API Instance thông qua ECMAScript. Để SCO tìm API Instance cung cấp bởi LMS, LMS phải chịu trách nhiệm phân phối SCO trong một kiến trúc phân cấp DOM cụ thể. LMS sẽ phân phối và hiển thị SCO trong một cửa sổ mà là cửa sổ con hoặc là frame con của cửa sổ LMS chứa API Instance.
Trên hình vẽ là một số thí dụ về nơi đặt API Instance và nơi sẽ hiển thị nội dung của SCO.
Tương lai thì LMS có thể có các phương pháp khác để SCO truy cập API Instance (như Web Service). Tuy nhiên vào thời điểm này, SCORM chỉ hỗ trợ các phương thức mô tả ở trên, DOM và ECMAScript là các kĩ thuật đáng tin cậy được dùng trong nhiều năm và rất dễ dùng.
Trách nhiệm của SCO.
SCO sẽ phải có những trách nhiệm nhất định khi trao đổi thông tin với API. SCO phải có khả năng tìm API Instance. Đây là lí do chính tại sao có những hạn chế trong việc API Instance được định vị ở đâu trong DOM hierarchy, và có một tên duy nhất đặt cho API Instance. Nếu API Instance đặt ở một nơi bất kỳ trong DOM hierarchy thì khó cho SCO trong việc tìm API Instance.
Tìm API Instance.
Bởi vì các đối tượng nội dung trong môi trường SCORM, được hiển thị bởi các Web Browser, Web Browser cung cấp DOM để đặt một API Instance. DOM có thể xem như một cấu trúc được định nghĩa hoặc một tổ chức các đối tượng trong một trang. Để SCO có thể tìm được API Instance trong nhiều LMS khác nhau, IEEE đã đặt các hạn chế về nơi đặt API Instance. Vấn đề quan trọng là SCO sẽ phải tìm API Instance trong các nơi sau :
• Chuỗi các cửa sổ mẹ của của sổ hiện tại, nếu tồn tại, cho đến khi cửa sổ đỉnh được tìm thấy.
• Cửa sổ mở nếu có.
• Chuỗi các cửamẹ của sổ mở, nếu tồn tại, cho đến khi cửa sổ mẹ cấp cao nhất được với tới.
Hình vẽ trên chú giải việc tìm API của SCO.
Đầu tiên đoạn mã tìm API Instance trong chuỗi các cửa sổ mẹ của cửa sổ chứa SCO. Nếu không có thì chuyển sang tìm chuỗi các cửa sổ mẹ của cửa sổ đang mở. Nếu tìm thấy thì trả về API Instance, còn nếu không tìm thấy thì trả về null.
d. Mô hình dữ liệu trong môi trường thực thi của SCORM.Tổng quan về Data Model