Các tiện ích
Hình ảnh hoạt động
Một số giải pháp xây dựng hệ thống quản lý và giám sát phòng thực hành Tin học sử dụng Camera
Cập nhật lúc: 03:23 PM ngày 13/05/2014
Trong bài báo này, chúng tôi đề xuất một giải pháp phần mềm quản lý và theo dõi hoạt động dạy và học tin học tại các phòng thực hành máy tính. Mục tiêu quan trọng của giải pháp này đó là nhằm tăng cường chất lượng dạy và học, cải tiến công tác quản lý các phòng thực hành, tăng cường tính trách nhiệm và sự nhiệt tình của giáo viên đồng thời giúp bản thân họ hoàn thành công việc giảng dạy, theo dõi thống kê giờ một cách hiệu quả.

1. Các thành phần của hệ thống.

Hệ thống có thể hoạt động trong cả hai môi trường có kết nối mạng LAN/Internet (online) hoặc không có kết nối mạng LAN (offline), sử dụng hệ quản trị cơ sở dữ liệu SQL Server 2000. Hệ thống bao gồm 3 thành phần là LabClientLabServer và LabViewer. Các chức năng cơ bản của từng thành phần như sau:

LabClient:

- Cho phép giáo viên khai báo các thông tin bắt đầu một buổi thực hành mới như: ngày/giờ/buổi thực hành, tên học phần, phòng thực hành, nhóm sinh viên, lớp, khoa, ngành, nội dung thực hành, tình trạng phòng máy, tên giáo viên thực hành (*)

- Tự động tính toán thời lượng của buổi thực hành thông qua một dịch vụ thời gian riêng của LabClient. Dịch vụ này hoạt động chính xác ngay cả khi người dùng cố tình thay đổi giờ hệ thống hoặc tìm cách tắt, phá hủy dịch vụ  (Chi tiết xem mục 2.3)

- Cho phép “cấp thẻ” chứng nhận về buổi thực hành đã được thực hiện (Chi tiết xem mục 2.3)

- Điều khiển Camera tự động lưu lại hình ảnh toàn bộ phòng thực hành tại các thời điểm: lúc khai báo đầu buổi thực hành (để làm bằng chứng về số lượng sinh viên có mặt hiện tại), lúc kết thúc buổi thực hành và tại các chu kỳ N phút/lần với N được thiết lập bởi quản trị hệ thống (**).

- Mã hóa toàn bộ các thông tin về buổi thực hành (* và **) vào một tệp duy nhất, tệp này chính là thẻ - bằng chứng của một buổi thực hành đã được thực hiện.

- Khi cấp thẻ thực hành cho người dùng, LabClient tạo tên thẻ là:     GioTH_emailGV_ngay_gio_hientai.the

- Người dùng có thể sửa tên thẻ hoặc phần mở rộng của thẻ thực hành. Tuy nhiên, khi cập nhật thẻ thực hành vào CSDL, phần mềm LabServer không quan tâm đến điều này, nó nhận đường dẫn tới tệp do người dùng chỉ định, mở tệp và đọc nội dung xem có đúng do phần LabClient sinh ra hay không.

- Hỗ trợ tìm kiếm thẻ theo ngày/tháng/buổi hoặc theo mã giáo viên. Có thể lưu các thông tin này cả một năm học vì dung lượng các thẻ là rất nhỏ.

- Hiển thị tổng số phút đã thực hành được lên màn hình cho giáo viên xem.

- Nếu mạng thông suốt, LabClient tự động kết nối tới LabServer để cập nhật các thông tin với CSDL hoặc cho phép người quản lý thực hiện các yêu cầu sau:

+Theo dõi quang cảnh toàn bộ phòng thực hành qua Camera

+Theo dõi nội dung thực hành trên từng máy sinh viên (qua module capture màn hình).

+Cả hai hoạt động trên có thể hoạt động trên môi trường mạng LAN hoặc Internet

Giao diện phiên thực hành đã được 30 phút

LabServer:

- Chạy liên tục tại máy chủ, đóng vai trò như một thành phần trung gian (giữa LabClient và LabViewer) cho phép thực hiện các chức năng giám sát, cập nhật thẻ thực hành, tổng hợp, tra cứu thông tin về các buổi thực hành.

- Cập nhật, bổ sung các buổi thực hành thông qua các thẻ (áp dụng cho các trường hợp ngoại lệ mà phần mềm không tự động cập nhật tự động được như thực hành tại phòng máy không có mạng, tại một cơ sở xa…)

- Hỗ trợ các chức năng ghép dữ liệu, xuất dữ liệu và tổng hợp báo cáo

- Hỗ trợ chức năng phát hiện xung đột (kiểm tra một buổi nào đó có hai ca thực hành tại cùng một phòng máy)

- Có khả năng kết nối với thành phần LabClient và theo dõi được sự hoạt động của các kết nối đó (nhận biết có một kết nối mới, một kết nối đã tắt hay cung cấp các dịch vụ khác cho phía Client như thời gian hệ thống, thông tin về buổi thực hành hiện tại…)

- Hỗ trợ kiểm dò buổi thực hành không đủ thời gian quy định (nhập vào thời gian chuẩn, vd 4t, và kiểm dò).

LabViewer: được xây dựng gọn nhẹ, chỉ phục vụ mục đích theo dõi các phòng thực hành (ở 2 chế độ Camera và chụp màn hình) hoạt động trên cả 2 môi trường mạng Lan và Internet. Nhờ có thành phần này, nhà quản lý có thể cài LabViewer trên một máy tính bất kỳ và hỗ trợ các chế độ giám sát từ xa. Các chức năng chính:

- Hiển thị tất cả các phòng máy đang thực hành (với điều kiện mạng LAN, Internet thông suốt) – LabViewer lấy thông tin này từ phần mềm LabServer (vì LabServer kết nối với các LabClient nên nó biết có bao nhiêu máy và phòng máy đang online hiện tại).

- Cho phép nhà quản lý chọn một phòng máy hoặc một máy sinh viên tại một phòng máy nào đó để quan sát.

- Cho phép người quản lý gửi các tin nhắn nhắc việc đến các giáo viên tại phòng thực hành đó.

- Cho phép xem, tra cứu nhật ký các buổi thực hành.

2. Các yêu cầu (luật) bắt buộc của hệ thống

Bất kỳ hệ thống nào cũng có các luật riêng của nó. Các luật hay điều khoản của một hệ thống là tập các ràng buộc hoặc các guide lines (kim chỉ nam) mà người sử dụng bắt buộc phải tuân thủ nhằm mục đích đạt được một hiệu quả làm việc cao nhất. Trong hệ thống này, có các luật mà người sử dụng phải tuân thủ, nếu không sẽ ảnh hưởng đến quyền lợi của họ, bao gồm:

Đối với giáo viên hướng dẫn thực hành:

- Đầu buổi thực hành, giáo viên phải khai báo các thông tin về buổi thực hành. Nếu không thực hiện bước này, giáo viên sẽ không được cấp thẻ thực hành và xem như chưa thực hiện buổi thực hành đó. Tại thời điểm khai báo, thành phần LabClient sẽ tự động điều khiển Camera chụp quang cảnh toàn phòng máy để làm bằng chứng sự hiện diện của sinh viên trong lớp học. Nếu LabClient phát hiện Camera đã được tháo ra khỏi máy tính (do giáo viên cố tình hoặc một lý do nào đó), nó sẽ không cho phép giáo viên khai báo các thông tin về buổi thực hành. Trong trường hợp này, giáo viên cần cắm lại Camera hoặc yêu cầu cán bộ phòng máy trợ giúp. Luật này nhằm ngăn chặn tình huống giáo viên đến sớm và khởi tạo các thông tin về buổi thực hành khi mà vẫn chưa có sinh viên nào đến.

- Tương tự như trên, cuối buổi thực hành giáo viên phải thực hiện một thao tác “Kết thúc buổi thực hành”. Thời lượng buổi thực hành được tính toán tự động nhờ vào dịch vụ thời gian của LabClient mà không phụ thuộc vào đồng hồ của máy tính.

- Giáo viên có thể nhận thẻ chứng nhận buổi thực hành ngay khi kết thúc buổi thực hành (copy ra USB) hoặc lưu tạm trên máy nếu muốn. Nếu phòng máy có LAN, LabClient sẽ tự động cập nhật thẻ thực hành về máy chủ.

- Giáo viên có thể lưu trữ các thẻ thực hành tại máy tính cá nhân ở nhà cho đến cuối năm để tổng hợp một lần. Mỗi thẻ thực hành sẽ chứa các thông tin xác định duy nhất một buổi thực hành, vì vậy nếu giáo viên copy một thẻ thực hành thành nhiều bản thì tất cả các bản đó cũng chỉ có giá trị một buổi thực hành.

- Nếu tại mỗi buổi thực hành, giáo viên khai báo chính xác thông tin về ngàybuổitháng thực hành thì sau này khi cập nhật thẻ thực hành vào CSDL sẽ không có lỗi gì. Ngược lại,  nếu giáo viên khai báo sai các thông tin về ngày, buổi, tháng thì có thể giáo viên sẽ mất buổi thực hành đó bởi vì nếu đã có giáo viên khác có một thẻ thực hành trùng ngày-buổi-tháng-phòng và họ đã cập nhật thẻ thực hành của họ trước.

Đối với cán bộ quản trị hay cán bộ phòng máy:

Có trách nhiệm cấu hình hệ thống mạng LAN theo đúng quy định của hệ thống:

- Các máy trong cùng một phòng phải có thuộc tính Group giống nhau

- Hai phòng máy khác nhau phải có tên Group khác nhau

- Đặt mật khẩu trên máy chủ để ngăn chặn việc sử dụng máy chủ tùy tiện

Đảm bảo hệ thống Camera tại các phòng máy hoạt động ổn định. Không xảy ra tình huống Camera bị tháo ra khỏi máy tính. Nếu xảy ra tình huống này (vì bất kỳ lý do gì), LabClient cũng sẽ không tính giờ cho giáo viên. Trừ khi Camera bị hỏng, LabClient sẽ cho phép quản trị tạm chấp nhận tính giờ thực hành đó với các thông tin chú thích kèm theo.

3. Các khó khăn của hệ thống và giải pháp khắc phục

a. Ngăn chặn người dùng cố tình thay đổi giờ hệ thống

Qua thực tế, một yêu cầu quan trọng cần được quản lý một cách tự động trong hệ thống này là: quản lý được thời lượng của mỗi buổi thực hành, tránh tình trạng giáo viên đến muộn về sớm, thời lượng buổi thực hành ít hơn thực tế. Điều này rất khó vì nếu dựa vào đồng hồ của máy tính tại các phòng máy thì giáo viên có thể thay đổi đồng hồ này theo ý muốn. Nếu lấy giờ từ máy chủ thì phải yêu cầu có mạng LAN thông suốt (thực tế không phải lúc nào các phòng máy cũng sẵn sàng có LAN), mặt khác cho dù có mạng LAN thì đồng hồ trên máy chủ vẫn có thể bị thay đổi do người quản trị hoặc bất kỳ một lý do nào khác (pin yếu, lỗi hệ điều hành, virus…). Nhóm tác giả đề xuất một giải pháp hiệu quả giải quyết triệt để vấn đề này đó là xây dựng một dịch vụ đo thời gian cho thành phần LabClient. Dịch vụ này được chạy tự động khi hệ điều hành khởi động và bền vững với mọi phá hoại cố ý, thậm chí khi máy tính bị tắt đột ngột và khỏi động lại, dịch vụ này vẫn tính toán được thời gian trôi qua kể từ đầu buổi thực hành đến thời điểm hiện tai. Các chức năng của dịch vụ này bao gồm:

Giả sử tại thời điểm giáo viên khai báo các thông tin đầu buổi thực hành, phần mềm LabClient sẽ tạo ra một thẻ thực hành có các thông tin cơ bản như: mã phiên, thời lượng trôi quacác thông tin khác… được lưu trữ trên một tệp có tên là current.the nằm ở vị trí nào đó (LabClient phải đổi tên current.the trước đó thành ngay_gio_hien_tai.the trước khi tạo ra một thẻ mới).

Mỗi khi máy khởi động lại hoặc khi đang chạy, luôn cập nhật khoảng thời gian trôi qua vào thẻ current.the với chu kỳ 1 phút/1 lần. Nếu thời lượng buổi thực hành mà dịch vụ đang cập nhật cho thẻ thực hành hiện tại đã vượt quá thời gian tối đa của mỗi buổi thực hành (2h hoặc 3h..) thì dừng việc cập nhật cho thẻ đó và đổi ngay tên thẻ đó (current.the thành ngay_gio_hien_tai.the). Sau đó, dịch vụ này chờ đến khi có một thẻ thực hành mới được tạo ra.

Cấu trúc của tệp thẻ thực hành (current.the):  KKL, maphien, thoigian, gioshutdown, emailGV, maPhong, tenMon, ngay, thang, nam, buoi, nhom sv, lop, so luong sv,  noi dung, ghichu và các ảnh chụp từ camera lúc khai báo đầu buổi và chu kỳ 20phút/1 ảnh. Trong đó: KKL là dấu hiệu báo rằng đây là thẻ do phần mềm LabClient sinh ra. Toàn bộ thông tin này ở dạng chuỗi, mỗi hạng mục được phân cách nhau bởi dấu phẩy và toàn bộ thông tin trên sẽ được mã hóa. Trường “ghichu” dùng để ghi nhận các sự kiện khác thường của phiên thực hành, ví dụ: giờ thực hành lớn hơn 5 tiết, lưu lại: thời gian hệ thống mà máy còn hoạt động. Gioshutdown: lưu lại thời điểm tắt máy. Cứ mỗi phút cập nhật thông số này. Mỗi khi dịch vụ khởi động lại (do máy bị khởi động lại), xử lý các công việc sau: Lấy ngày giờ hiện hành, trừ đi thời điểm tắt máy hay tắt dịch vụ để tìm sự sai khác. Nếu sự sai khác này:

- Nếu bé hơn một ngưỡng (ví dụ 1h): Thì tiếp tục cập nhật thời gian trôi qua vào thẻ thực hành hiện tại.

- Nếu lớn hơn ngưỡng (ví dụ: đang thực hành mất điện qua buổi, hoặc giáo viên quên không kịp bấm nút kết thúc và tắt điện): trường hợp này, dịch vụ thời gian sẽ kết thúc buổi thực hành hiện tại (đổi tên current.the thành ngay_gio_hientai.the).

b. Giải pháp Offline cho các phòng máy không có LAN hoặc LAN bị trục trặc

Trong thực tế, hệ thống mạng LAN tại các phòng máy không phải lúc nào cũng thông suốt. Nếu mạng bị trục trặc mà hệ thống không hoạt động được thì sẽ ảnh hưởng đến tiến độ dạy và học. Vì vậy, phần mềm phải có khả năng hoạt động tốt ngay cả khi mạng bị lỗi. Nhóm tác giả đề xuất một giải pháp chạy Offline như sau (giống như chế độ offline trong các dịch vụ mail của Google hay Yahoo):

- Xây dựng một dịch vụ đo thời gian đã trôi qua và ghi vào một tệp trên ổ cứng  (phần 2.3.a).

- Yêu cầu giáo viên đầu buổi thực hành phải khai báo với phần mềm LabClient (phần 2.2).

- Kết thúc buổi thực hành, giáo viên khai báo (bấm nút “Kết thúc”) và nhận một thẻ chứng thựcđã tham gia buổi thực hành: là một tệp được mã hóa ghi các thông tin về buổi thực hành đó.

- Cập nhật các thẻ thực hành vào CSDL chung: giáo viên có thể cập nhật nhiều thẻ cùng lúc vào CSDL chung chỉ bằng một nút bấm “Cập nhật” nào đó. Hệ thống sẽ tự động giải mã, đọc các thông tin trong thẻ thực hành và kiểm tra xung đột về ngày tháng, buổi thực hành, phòng TH mà giáo viên đã khai báo trong từng thẻ. Vì trong mỗi thẻ đều có một mã phiên duy nhất gắn kèm theo các thông tin về buổi thực hành nên dù giáo viên có copy thành nhiều bản khác nhau thì hệ thống cũng chỉ cập nhật 1 nội dung mà thôi. Để tạo ra một mã phiên duy nhất cho mỗi thẻ, chúng tôi dùng hàm băm MD5 để băm toàn bộ các thông tin: giờ hiện tại (đến milisecond), mã phòng thực hành, mã giáo viên… thành một mã phiên duy nhất.

- Giáo viên có thể bấm vào nút “Nhận thẻ” nhiều lần trong buổi, LabClient sẽ xuất ra các thẻ có cùng mã thực hành nhưng thời lượng buổi thưc hành đã trôi qua là khác nhau, và trong mỗi thẻ đều có thông tin về mã giáo viên (người khai báo thông tin đầu buổi) nên ngăn chặn tình huống giá viên A ra ngoài, thì có người khác vào bấm nút nhận thẻ. Lúc cập nhật các thẻ, phần mềm LabServer chỉ lấy thẻ có thời lượng thực hành lớn nhất (nếu có nhiều thẻ trùng mã thẻ) – cho dù các thẻ trước đó đã được cập nhật.

4.Giải pháp xây dựng module truyền thông trong hệ thống:

Chức năng giám sát của hệ thống sử dụng các kết nối Socket để liên lạc giữa các máy tính trong mạng LAN. Để tạo ra một kết nối socket giữa hai máy tính với nhau, một máy tính phải đóng vai trò là server và bắt đầu lắng nghe trên một endpoint cụ thể ( một endpoint được định nghĩa là một địa chỉ IP cho biết máy tính, và chỉ số port (cổng) dành cho ứng dụng). Một máy tính khác đóng vai trò là client và gửi một yêu cầu kết nối đến endpoint mà máy tính thứ nhất đang lắng nghe trên đó [1]. Khi server nhận được yêu cầu kết nối từ client thì một kết nối được thiết lập, khi đó hai máy tính có thể liên lạc với nhau. Khi thiết kế hệ thống, chỉ số port mà các máy tính lắng nghe trên đó được người lập trình thống nhất chung một chỉ số cho tất cả các máy tính vì vậy 1 endpoint ở đây có thể tạm hiểu chỉ cần là một địa chỉ IP mà thôi. Tóm lại, để tạo ra một kết nối socket giữa hai máy tính với nhau thì máy tính đóng vai trò là client phải biết được IP của máy tính kia. Trong hệ thống này máy chủ cài phần LabServer phải đóng vai trò là Server lắng nghe các kết nối đến từ các máy client. Còn các máy cài phần LabClient khi cài đặt người quản trị phải thiết lập địa chỉ IP của máy chủ thì các client mới có thể kêt nối đến.

Các máy tính chỉ có thể tạo được kết nối socket với nhau khi chúng cùng trong một mạng LAN, khi đó các máy tính kết nối với nhau sử dụng địa chỉ mạng LAN do modem cung cấp (địa chỉ Private) [2], trong mạng internet thì tất cả các máy tính trong cùng mạng LAN sẽ có cùng một địa chỉ IP là địa chỉ IP của modem (địa chỉ public). Mặt khác địa chỉ này là địa chỉ động. Do đó một máy tính ở bên ngoài sẽ không thể nhìn thấy một máy tính ở bên trong mạng LAN. Nhưng điều đó có thể được giải quyết nếu các máy tính tham gia mạng internet được cấp một địa chỉ IP tĩnh. Vì vậy, để giúp người quản lý có thể theo dõi được ở bất cứ đâu có kết nối internet, cần xây dựng thêm một phần LabViewer, LabViewer này chỉ có thể kết nối đến máy chủ cài LabServer có IP tĩnh, và thông qua LabServer này để lấy các thông tin từ các LabClient.

Do các LabClient có thể biết được IP của máy cài LabServer, do đó LabServer đóng vai trò là server lắng nghe các kết nối đến. Thế nhưng trong thực tế nhiệm vụ của các LabClient chỉ là chờ các yêu cầu từ LabServer (chụp màn hình, hiển thị tin nhắn), thực hiện yêu cầu rồi gửi lại kết quả. Còn phía LabServer lại là gửi các yêu cầu tới các LabClient. Mặt khác, không phải lúc nào tất cả các LabClient cũng chụp màn hình và gửi đến LabServer mà chỉ những máy tính nào được yêu cầu mới thực hiện điều đó. Nếu tại LabServer lúc nào cũng tạo ra số lượng các kết nối và tiến trình bằng số lượng các client trong hệ thống thì sẽ là một gánh nặng cho LabServer. Để giảm gánh nặng cho LabServer, sau khi các LabClient gửi yêu cầu kết nối đến, LabServer chỉ lưu lại thông tin của client (trong đó có IP của các client) dưới dạng danh sách các client có thể kết nối đến mà không tạo ra cho mỗi client một kết nối rồi lắng nghe. Tiếp theo các LabClient sẽ đóng vai trò là các server và lắng nghe. Mỗi khi có nhu cầu kết nối đến LabClient nào thì LabServer sẽ lấy IP của client đó trong danh sách và kết nối đến. Nếu có thêm một LabClient nào kết nối đến hoặc ngắt kết nối thì LabServer sẽ bổ sung hoặc loại bỏ khỏi danh sách. Như vậy LabServer chỉ cần tạo ra một tiến trình cho việc theo dõi các client có khả năng kết nối đến.

 5.KẾT LUẬN

Kết quả đề tài giúp các nhà quản lý giáo dục tiết kiệm được nhiều thời gian và công sức trong công tác quản lý theo dõi phòng thực hành, đồng thời góp phần nâng cao chất lượng đào tạo của đơn vị. Việc theo dõi, quản lý các buổi thực hành được thực hiện tự động hoàn toàn nên đảm bảo tính khách quan, trung thực khi thống kê, thanh toán giờ thực hành. Quan trọng hơn, phần mềm có khẳ năng chụp màn hình để lưu lại nội dung của buổi thực hành, lưu lại thời gian thực hành, do vậy, sẽ giải quyết được triệt để hiện tượng thực hành không đúng nội dung hay gian lận trong việc tính giờ thực hành. Toàn bộ quá trình này được thực hiện tự động bằng phần mềm nên sẽ làm tăng tính nghiêm túc và trách nhiệm của cả người dạy và người học, điều đó góp phần nâng cao chất lượng đào tạo của đơn vị sử dụng.

Kết quả nghiên cứu tạo ra sự thay đổi lớn trong công tác quản lý, theo dõi, đào tạo và thanh toán giờ thực hành tại các đơn vị ứng dụng đối với cả đối tượng người quản lý, người dạy và người học. Thực tế cho thấy, rất nhiều người học đã phản ảnh về chất lượng các buổi thực hành tin học chưa đáp ứng hết nội dung bài học, số lượng buổi thực hành thiếu nhiều, thái độ của giáo viên chưa nhiệt tình. Trong khi đó, công tác thống kê, thanh toán giờ thực hành hàng năm đều gặp nhiều khó khắn và tốn nhiều thời gian do số lượng thống kê của cán bộ giảng dạy không khớp với số lượng các buổi thực hành được ghi chép lại bởi cán bộ phụ trách phòng thực hành, thậm chí đã có nhiều vấn đề bức xúc khác nảy sinh ngay trong mô trường đại học dẫn đến việc mất đoàn kết nội bộ, ảnh hưởng lớn đến công tác đào tạo và chất lượng đào tạo, đặc biệt đối với các môn thực hành có tính ứng dụng cao như Tin học thì  toàn bộ sinh viên thuộc các ngành khác nhau trong Nhà trường đều phải đạt trình độ sử dụng Tin học nhất định, do đó, nếu công tác quản lý thực hành và chất lượng các buổi thực hành không tốt sẽ dẫn đến những hậu quả to lớn. Vì vậy, việc ứng dụng kết quả nghiên cứu vào các đơn vị đào tạo sẽ góp phần ngăn chặn được các tồn tại trên, nâng cao trách nhiệm của người học và người dạy, nhờ đó chất lượng đào tạo sẽ tăng lên đáng kể. Mặt khác, do tính công bằng của phần mềm, các vấn đề về thống kê, thanh toán giờ thực hành sẽ được thực hiện tự động, nhanh chóng, khách quan, giảm thiểu những xung đột không đáng có trong đơn vị, góp phần nâng cao đời sống dân trí và xã hội của cán bộ công nhân viên chức trong các đơn vị giảng dạy.

Một số hướng phát triển tiếp theo đó là phát triển module tổng hợp giọng nói để cho phép nhà quản lý nhắc việc (bằng giọng nói) qua mạng, hỗ trợ quá trình giảng dạy (truyền hình ảnh trực tiếp) từ máy giáo viên đến các máy tính sinh viên (không cần sử dụng máy chiếu), đồng thời sẽ tiến hành triển khai rộng rãi phần mềm cho các đơn vị trong nhà trường sử dụng và các đơn vị khác trên địa bàn tỉnh.

 


  Chia sẻ: Share on Facebook Google Share on LinkHay Share on Go Share on Zing