1. Trang chủ
  2. » Công Nghệ Thông Tin

ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE

169 484 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Mobile Cho Hệ Thống Hỗ Trợ Học Tập Moodle Trên Nền Tảng Windows Phone
Tác giả Tô Ngọc Ẩn
Người hướng dẫn Ks. Hồ Quang Thái
Trường học Trường Đại Học Cần Thơ
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2013 - 2014
Thành phố Cần Thơ
Định dạng
Số trang 169
Dung lượng 3,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trước sự phát triển đó, áp dụng công nghệ thông tin vào giáo dục luôn là mục tiêu hàng đầu của nhà nước ta. Hàng loạt phần mềm giáo dục được tạo ra nhằm hỗ trợ đổi mới phương pháp giảng dạy, học tập góp phần nâng cao hiệu quả và chất lượng giáo dục. Một trong những phần mềm giáo dục phổ biến hiện nay không thể không nhắc đến Moodle – hệ thống quản lý đào tạo trực tuyến vô cùng chặt chẽ. Cùng với sự phát triển mạnh mẽ của hệ điều hành mới Windows Phone đã thúc đẩy nhà phát triển tạo ra phần mềm có thể giao tiếp, tương tác với hệ thống học tập trên. Đó là lý do phần mềm Moodle Windows Phone được tạo ra nhằm thỏa mãn nhu cầu người dùng. Ứng dụng Moodle Windows Phone được xây dựng từ nền tảng Silverlight. Đây là nền tảng công nghệ mới nhưng mang lại hiệu quả cao cho các ứng dụng mạng, truyền tải thông tin. Ứng dụng tương tác tốt với cơ sở dữ liệu của Moodle thông qua API Functions mà hệ thống cung cấp, giúp người dùng có thể giao tiếp tốt hơn với hệ thống. Ngoài ra còn sử dụng mô hình DOM trong phân tích và trích xuất dữ liệu từ Website. Để thiết kế giao diện đặc trưng cho Windows Phone, ứng dụng được sự hỗ trợ của ngôn ngữ đánh dấu XAML, dạng ngôn ngữ đánh dấu khá giống với HTML. Mô hình MVVM được Microsoft xây dựng cũng sẽ được áp dụng vào quá trình phát triển phần mềm, mục đích là tạo thuận lợi cho công tác quản lý mã nguồn, bảo trì và nâng cấp ứng dụng. Kết quả quá trình phát triển ứng dụng Moodle Windows Phone đã đáp ứng được nhu cầu của người dùng trên hệ thống Moodle. Trước hết, ứng dụng hoạt động ổn định trên hệ điều hành Windows Phone 8. Người dùng dễ dàng thao tác và sử dụng các chức năng mà ứng dụng cung cấp: Tạo người dùng, tạo khóa học, xem thông tin cá nhân, xem nội dung khóa học, tham gia thảo luận trên diễn đàn và tải xuống các tài liệu liên quan… Ngoài ra người dùng có thể gửi tin nhắn, tạo ghi chú và nhiều chức năng mở rộng dành cho người quản trị. Tin chắc rằng ứng dụng Moodle Windows Phone sẽ làm hài lòng người sử dụng.

Trang 1

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG

-o0o -

Đề tài:

ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG

WINDOWS PHONE

Cán bộ hướng dẫn:

Ks Hồ Quang Thái MSCB: 2299

Sinh viên thực hiện:

Tô Ngọc Ẩn MSSV: 1091649

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Trang 2

Cán bộ phản biện:

Ths.GVC Võ Huỳnh Trâm MSCB: 1069 Ths Phan Phương Lan MSCB: 1232 Luận văn được bảo vệ tại Hội đồng bảo vệ luận văn tốt nghiệp Bộ Môn Công Nghệ Phần Mềm, Khoa Công Nghệ Thông Tin Và Truyền Thông, Trường Đại Học Cần Thơ vào ngày 28 tháng 11 năm 2013

Mã đề tài:

Có thể tìm hiểu luận văn tại:

 Thư viện Khoa Công nghệ thông tin và Truyền thông, Trường Đại học Cần Thơ

 Website: http://www.cit.ctu.edu.vn

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Cán bộ hướng dẫn:

Ks Hồ Quang Thái MSCB: 2299

Sinh viên thực hiện:

Tô Ngọc Ẩn MSSV: 1091649

KHOA CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG

-o0o -

Đề tài:

ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG

WINDOWS PHONE

Trang 3

LỜI CẢM ƠN

Trước tiên em xin nói lời cảm ơn đến những người thân trong gia đình đã quan tâm sâu sắc và tạo mọi điều kiện tốt nhất để em được chú tâm học tập, và rèn luyện tại trường Đại học Cần Thơ trong suốt 4 năm qua

Em cũng chân thành cảm ơn những thầy cô trường Đại học Cần Thơ nói chung, Khoa công nghệ thông tin và truyền thông nói riêng đã nhiệt tình chỉ dạy, truyền thụ

kĩ năng và kiến thức cho em trong thời gian em còn trên ghế giảng đường Xin cám

ơn các thầy cô truyền dạy kiến thức cơ sở ngành, nhờ họ mà em đã có nền tảng vững chắc và định hướng rõ ràng Cảm ơn các giảng viên truyền dạy các môn chuyên ngành, giúp em tiếp thu kinh nghiệm và kĩ năng cần thiết cho công việc và cuộc sống của mình

Đặc biệt, xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới Thầy, Ks Hồ Quang Thái đã tạo điều kiện cho em thực hiện đề tài luận văn này Thầy giúp em làm việc có kế hoạch rõ ràng, thực hiện công việc đúng thời gian đã lập ra Đây là yếu tố quan trọng sẽ giúp ích cho sự thăng tiến trong công việc của em sau này Chân thành cảm ơn sự chỉ dạy và giúp đỡ của Thầy trong suốt thời gian qua

Xin cám ơn những người bạn tốt, những người bạn cùng lớp, những người ở bên cạnh tôi luôn hết lòng giúp đỡ khi tôi cần đến trong suốt thời gian học tập và hoàn thành đề tài của mình

Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em kính mong nhận được sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các Bạn

Em xin chân thành cảm ơn!

Cần thơ, ngày 11 tháng 11 năm 2013

Sinh viên

Tô Ngọc Ẩn

Trang 4

2

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

Cần Thơ, ngày 28 tháng 11 năm 2013 Cán bộ hướng dẫn

Ks Hồ Quang Thái

Trang 5

NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN

Cần Thơ, ngày 28 tháng 11 năm 2013

Cán bộ phản biện

Ths.GVC Võ Huỳnh Trâm

Ths Phan Phương Lan

Trang 6

4

MỤC LỤC

LỜI CẢM ƠN 1

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN 2

NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN 3

MỤC LỤC 4

DANH MỤC HÌNH 6

KÝ HIỆU VÀ VIẾT TẮT 7

TÓM TẮT 8

ABSTRACT 10

CHƯƠNG I: TỔNG QUAN 12

I.1 ĐẶT VẤN ĐỀ 12

I.2 LỊCH SỬ VẤN ĐỀ 13

I.3 PHẠM VI ĐỀ TÀI 13

I.3.1 Về phía người dùng 13

I.3.2 Về lý thuyết 14

I.3.3 Về kỹ thuật 15

I.4 PHƯƠNG PHÁP NGHIÊN CỨU 15

I.4.1 Thu thập tài liệu 15

I.4.2 Phân tích và thiết kế hệ thống 15

I.4.3 Công nghệ thực hiện 15

I.4.4 Công cụ lập trình 15

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 17

II.1 TÌM HIỂU VỀ HỆ ĐIỀU HÀNH WINDOW PHONE 17

II.2 TỔNG QUAN VỀ SILVERLIGHT 17

II.2.1 Silverlight là gì? 17

II.2.2 Các đặc tính của Siverlight 17

II.2.3 Kiến trúc tổng thể và các mô hình lập trình của Silverlight 19

II.3 XAML 23

II.3.1 Sơ lược về xaml 23

II.3.2 Khai báo đối tượng 23

II.3.3 Thiết lập đặc tính cho đối tượng 23

II.3.4 Root elements và namespace trong xaml 25

II.3.5 Sự kiện 25

II.4 MÔ HÌNH MVVM 26

II.4.1 Data binding 27

II.4.2 Data template 27

II.4.3 Command 28

II.4.4 Các thành phần của mvvm 28

II.5 MOODLE 29

II.5.1 Kiến trúc hệ thống moodle 29

II.5.2 Dịch vụ web của moodle 33

II.5.3 API Functions Moodle 39

II.6 TÌM HIỂU VỀ DOM 54

II.6.1 Tổng quan về DOM 54

Trang 7

II.6.2 Các thành phần cơ bản của DOM 54

CHƯƠNG III: XÂY DỰNG ỨNG DỤNG 59

III.1 ĐẶC TẢ YÊU CẦU PHẦN MỀM (IEEE-STD-830-2002) 59

III.1.1 Giới thiệu 59

III.1.2 Mô tả tổng quan 60

III.1.3 Các yêu cầu giao tiếp bên ngoài 64

III.1.4 Các tính năng của hệ thống 65

III.1.5 Các yêu cầu phi chức năng 81

III.1.6 Các yêu cầu khác 82

III.2 THIẾT KẾ PHẦN MỀM (IEEE-V1) 83

III.3 KIỂM THỬ PHẦN MỀM (IEEE-V1) 134

III.3.1 Giới thiệu kế hoạch kiểm thử 134

III.3.2 Chi tiết kế hoạch kiểm thử 135

III.3.3 Quản lý kiểm thử 138

III.3.4 Giới thiệu trường các hợp kiểm thử 142

III.3.5 Môi trường kiểm thử 142

III.3.6 Các trường hợp kiểm thử 143

CHƯƠNG IV: KẾT LUẬN 162

IV.1 KẾT QUẢ ĐẠT ĐƯỢC 162

IV.1.1 Lý thuyết 162

IV.1.2 Chương trình 162

IV.1.3 Thực tế 162

IV.2 HẠN CHẾ 162

IV.3 HƯỚNG PHÁT TRIỂN 163

PHỤ LỤC CÀI ĐẶT ỨNG DỤNG 164

TÀI LIỆU THAM KHẢO 167

Trang 8

6

DANH MỤC HÌNH

Hình 1 Thành phần kiến trúc của Silverlight 20

Hình 2 các lớp trong mô hình MVVM và sự tương tác giữa chúng 28

Hình 3: Tree node 55

Hình 4: tree node và mối quan hệ giữa các nút 56

Hình 5 Các chức năng của sản phẩm 62

Hình 6 Thiết kế hệ thống 84

Hình 7 Mô hình MVVM 85

Hình 8 Đăng nhập hệ thống 87

Hình 9 Tạo người dùng 90

Hình 10 Lấy hồ sơ người dùng 94

Hình 11 cập nhật thông tin cá nhân 96

Hình 12 Đổi mật khẩu 99

Hình 13 Tạo khóa học mới 102

Hình 14 lấy thông tin khóa học 105

Hình 15 Xem nội dung khóa học 107

Hình 16 Tạo nhóm người dùng 109

Hình 17 Thêm thành viên vào nhóm 112

Hình 18 Xóa thành viên ra khỏi nhóm 115

Hình 19 Lấy thông tin các nhóm người dùng trong khóa học 118

Hình 20 Ghi danh người dùng vào khóa học 120

Hình 21 Lấy thông tin danh mục 123

Hình 22 Xem nội dung diễn đàn môn học 125

Hình 23 Tạo chủ đề mới trên diễn đàn 127

Hình 24 Tải tập tin xuống từ diễn đàn 129

Hình 25 Gửi tin nhắn 132

Hình 26 Tạo ghi chú 133

Hình 27 Hình cài đặt ứng dụng trên máy ảo 164

Hình 28 Cấu hình điện thoại 165

Hình 29 Deploy ứng dụng vào máy thật 166

Trang 9

KÝ HIỆU VÀ VIẾT TẮT

1 CNTT Công nghệ thông tin

2 CNTT – TT Khoa Công nghệ thông tin và Truyền Thông

3 HĐH Hệ điều hành

4 XAML Extensible Application Markup Language

5 LMS Learning Management System

6 PHP Hypertext Preprocessor

7 CSS Cascading Style Sheets

8 DHCP Dynamic Host Configuration Protocol

9 API Application Programming Interface

Trang 10

8

TÓM TẮT

Ngày nay, khi cuộc đua công nghệ đang diễn ở hầu hết các lĩnh vực, thì mảng thiết bị di động đang được sự quan tâm của các nhà phát triển Trong các hệ điều hành trên nền tảng di động hiện nay, có thể nói Windows Phone là gương mặt mới nhất Với sự hỗ trợ của các nền tảng và công nghệ tiên tiến mà Microsoft dành cho Windows Phone, các lập trình viên ngày càng dễ dàng sáng tạo ra hàng loạt ứng dụng

có giá trị và hữu ích

Trước sự phát triển đó, áp dụng công nghệ thông tin vào giáo dục luôn là mục tiêu hàng đầu của nhà nước ta Hàng loạt phần mềm giáo dục được tạo ra nhằm hỗ trợ đổi mới phương pháp giảng dạy, học tập góp phần nâng cao hiệu quả và chất lượng giáo dục Một trong những phần mềm giáo dục phổ biến hiện nay không thể không nhắc đến Moodle – hệ thống quản lý đào tạo trực tuyến vô cùng chặt chẽ Cùng với sự phát triển mạnh mẽ của hệ điều hành mới Windows Phone đã thúc đẩy nhà phát triển tạo ra phần mềm có thể giao tiếp, tương tác với hệ thống học tập trên Đó

là lý do phần mềm Moodle Windows Phone được tạo ra nhằm thỏa mãn nhu cầu người dùng

Ứng dụng Moodle Windows Phone được xây dựng từ nền tảng Silverlight Đây

là nền tảng công nghệ mới nhưng mang lại hiệu quả cao cho các ứng dụng mạng, truyền tải thông tin Ứng dụng tương tác tốt với cơ sở dữ liệu của Moodle thông qua API Functions mà hệ thống cung cấp, giúp người dùng có thể giao tiếp tốt hơn với hệ thống Ngoài ra còn sử dụng mô hình DOM trong phân tích và trích xuất dữ liệu từ Website Để thiết kế giao diện đặc trưng cho Windows Phone, ứng dụng được sự hỗ trợ của ngôn ngữ đánh dấu XAML, dạng ngôn ngữ đánh dấu khá giống với HTML

Mô hình MVVM được Microsoft xây dựng cũng sẽ được áp dụng vào quá trình phát triển phần mềm, mục đích là tạo thuận lợi cho công tác quản lý mã nguồn, bảo trì và nâng cấp ứng dụng

Kết quả quá trình phát triển ứng dụng Moodle Windows Phone đã đáp ứng được nhu cầu của người dùng trên hệ thống Moodle Trước hết, ứng dụng hoạt động ổn định trên hệ điều hành Windows Phone 8 Người dùng dễ dàng thao tác và sử dụng

Trang 11

các chức năng mà ứng dụng cung cấp: Tạo người dùng, tạo khóa học, xem thông tin

cá nhân, xem nội dung khóa học, tham gia thảo luận trên diễn đàn và tải xuống các tài liệu liên quan… Ngoài ra người dùng có thể gửi tin nhắn, tạo ghi chú và nhiều chức năng mở rộng dành cho người quản trị Tin chắc rằng ứng dụng Moodle Windows Phone sẽ làm hài lòng người sử dụng

Trang 12

of advanced technologies and foundation which are reserved for Windows Phone by Microsoft, it is easy for programmers to create a series of valuable and useful applications

For the development, the application of technology in Education is always the main purpose of our country A series of educational software are created to help improve the educational methods, enhance educational effects and quality One of the most popular educational software cannot but mention Moodle – E-Learing Management System Windows Phone has promoted developers to create software which can communicate and interact with the above educational system in company with the powerful development of new operating systems It is the reason that Moodle

of Windows Phone is created to satisfy user’s demands

Moodle Application of Windows Phone is built under the Silverlight foundation Although this is a new technology foundation, it brings high effects to network application and information communicating application The application interacts with Moodle database through API Functions which are provided to help users communicate with the system better Besides that, DOM model is used for analyzing and extract database from Website To design a typical interface for Windows Phone, the application is supported by XAML – a type of Markup Language which is nearly the same as HTML MVVM model built by Microsoft is being used for developing software The purpose is to advantage the work of source code management, maintaining and upgrading applications

The results of the development process of Moodle Windows Phone have satisfied the users’ demands on Moodle system Firstly, the application stably operates on Windows Phone 8 operating system It is easy for users to manipulate and use the functions provided by the application: create users, courses, see personal

Trang 13

information, course content, discuss on forum and download related documents… Besides that, users can send messages, make note and other extend functions used for programmer It is believed that Moodle application of Windows Phone will satisfy users

Trang 14

2

CHƯƠNG I: TỔNG QUAN

I.1 ĐẶT VẤN ĐỀ

Sự bùng nổ của CNTT đã và đang tác động mạnh mẽ vào sự phát triển của tất

cả các ngành trong đời sống xã hội Khi hiện nay toàn ngành giáo dục được kết nối internet thì ứng dụng CNTT trong ngành giáo dục là nhu cầu tất yếu với mục tiêu hướng tới người học nhiều hơn, tăng cường tính chủ động trong học tập và nghiên cứu, góp phần tạo nên hứng thú học tập cho học sinh – sinh viên

Công nghệ phần mềm phát triển mạnh, kéo theo là đó hàng loạt các phần mềm giáo dục được tạo ra nhằm hỗ trợ đổi mới phương pháp giảng dạy, học tập và hỗ trợ quản lý giáo dục, góp phần nhằm nâng cao hiệu quả và chất lượng giáo dục Do sự phát triển của công nghệ thông tin và truyền thông mà mọi người đều có trong tay nhiều công cụ hỗ trợ cho quá trình dạy học nói chung và phần mềm dạy học nói riêng Phần mềm dạy học được sử dụng ở nhà cũng sẽ nối dài cánh tay của giáo viên tới từng gia đình học sinh thông qua hệ thống mạng Nhờ có máy tính điện tử mà việc thiết kế giáo án và giảng dạy trên máy tính trở nên sinh động hơn, tiết kiệm được nhiều thời gian hơn so với cách dạy theo phương pháp truyền thống

Trong những phần mềm giáo dục phổ biến hiện nay đã và đang được áp dụng thành công ở Khoa CNTT – TT Trường Đại học Cần Thơ đó là MOODLE – một phần mềm mã nguồn mở hoạt động trên nền web, người dùng có thể dễ dàng truy cập

ở bất kì nơi đâu

Ở thời điểm hiện tại, cuộc chạy đua Công nghệ di động chưa bao giờ chấm dứt, luôn bùng nổ với các dịch vụ và xuất hiện các ứng dụng nhằm duy trì kết nối, cập nhật thông tin và hỗ trợ đắc lực cho công việc Các thiết bị di động thông minh cũng ngày càng phổ biến Đặc biệt đầu năm 2010 Microsoft lần đầu tiên công bố HĐH Windows Phone, tuy còn rất mới nhưng đã phát triển mạnh mẽ và tạo nên chổ đứng vững chắc trong những năm vừa qua

Đứng trước sự phát triển đó, việc có thể học tập mọi lúc, mọi nơi trở thành nhu cầu không thể thiếu đối với mỗi sinh viên nói riêng và sự nghiệp giáo dục của nước

Trang 15

nhà nói chung Đó cũng là mục đích cho việc nghiên cứu, xây dựng ứng dụng học tập trên thiết bị di động sử dụng HĐH Windows Phone

I.2 LỊCH SỬ VẤN ĐỀ

Hiện nay phần mềm Moodle Mobile trên điện thoại di động đã được phát triển cách đây không lâu Phần mềm được phát triển chủ yếu trên một số hệ điều hành nhất định Phiên bản đầu tiên sử dụng API Functions của Moodle được viết bằng HTML5

và CSS3 chỉ dành cho Android và iOS Nhưng không được đánh giá cao từ người dùng, chức năng còn hạn chế không phát huy được hết ưu điểm của một ứng dụng học tập trên thiết bị di động

Với hệ điều hành mới như Windows Phone thì việc tạo ra một ứng dụng học tập trên hệ thống Moodle là hoàn toàn mới Chính vì thế đây là ứng dụng Windows Phone đầu tiên dành cho hệ thống Moodle, mở đầu cho nhiều ứng dụng phát triển sau này

I.3 PHẠM VI ĐỀ TÀI

I.3.1 Về phía người dùng

Phần mềm Moodle Windows Phone giúp cho người dùng dễ dàng truy cập vào hệ thống học tập của mình với quyền và những chức năng sau:

 Người dùng Sinh viên:

- Đăng nhập

- Cập nhật thông tin cá nhân

- Xem danh sách môn học

- Tham gia môn học

- Xem nội dung môn học, diễn đàn môn học

 Người dùng Giáo viên:

- Đăng nhập

- Cập nhật thông tin cá nhân

- Xem danh sách môn học

- Tham gia môn học

- Ghi danh thành viên vào khóa học

Trang 16

o Thêm, xóa thành viên trong nhóm

o Lấy thông tin các nhóm

- Quản lý diễn đàn

I.3.2 Về lý thuyết

Để phục vụ cho quá trình phát triển hoàn chỉnh ứng dụng Moodle Windows Phone ta cần sử dụng các mảng kiến thức sau:

- Tìm hiểu HĐH Windows Phone 8

- Nền tảng Silverlight cho phát triển ứng dụng Windows Phone, ngôn ngữ đánh dấu văn bản XAML

- Tìm hiểu phần mềm MOODLE và các dịch vụ Web của MOODLE

- Sử dụng thư viện HtmlAgilityPack để xử lý văn bản HTML

- Phát triển trên mô hình MVVM trên nền tảng Silverlight

Từ đó xây dựng một ứng dụng truy cập vào hệ thống MOODLE dựa trên nền tảng Windows Phone

Trang 17

I.3.3 Về kỹ thuật

Phần mềm Moodle Windows Phone cần đạt những yêu cầu kĩ thuật sau:

- Chạy ổn định trên thiết bị di động sử dụng hệ điều hành Windows Phone 8

- Chạy ổn định trên giả lập Windows Phone 8 Emulator

- Hỗ trợ trên cách thiết bị cảm ứng, chạy hệ điều hành Windows Phone 8

I.4 PHƯƠNG PHÁP NGHIÊN CỨU

I.4.1 Thu thập tài liệu

- Tìm hiểu về cách thức hoạt động của Web Services và ngôn ngữ XML

- Thu thập các tài liệu liên quan đến cách sử dụng Web Services trên hệ thống MOODLE

- Tìm hiểu về quy trình phát triển ứng dụng Windows Phone 8

- Sưu tầm tài liệu về DOM, HtmlAgilityPack, Silverlight, XAML, chọn lọc sử dụng các mảng kiến thức cần thiết

- Tìm hiểu mô hình phát triển ứng dụng MVVM trên nền tảng Silverlight

I.4.2 Phân tích và thiết kế hệ thống

Cài đặt hệ thống học tập MOODLE, tìm hiểu cách thức lưu trữ CSDL trong hệ thống nhằm sử dụng các dịch vụ Web của MOODLE một cách hiệu quả

I.4.3 Công nghệ thực hiện

- Sử dụng ngôn ngữ lập trình C# để viết mã nguồn (code-behind) của ứng dụng

- Ngôn ngữ đánh dấu XAML dùng thiết kế giao diện ứng dụng

- Silverlight cung cấp các control cần thiết cho ứng dụng

- NET framework 4.0 cung cấp thư viện giao tiếp giữa máy chủ và máy khách

I.4.4 Công cụ lập trình

- Dùng công cụ Microsoft Visual Studio 2012 Ultimate và Windows Phone SDK 8.0

Trang 18

6

- Microsoft Expression Blend cho Visual Studio 2012 thiết kế giao diện cho ứng dụng

- Sử dụng bộ Windows Phone Toolkit cho Windows Phone SDK 8.0

- Công cụ ComponentOne Studio cho Window Phone để hiển thị tập tin PDF

Trang 19

CHƯƠNG II: CƠ SỞ LÝ THUYẾT II.1 TÌM HIỂU VỀ HỆ ĐIỀU HÀNH WINDOW PHONE

Microsoft lần đầu công bố hệ điều hành Windows Phone 7 tại triển lãm di động Mobile World Congress vào tháng 2 năm 2010 tại Tây Ban Nha Đây là một hệ điều hành hoàn toàn mới dành cho người dùng smartphone, với những tính năng mạnh mẽ

Tuy Windows Phone là một hệ điều hành mới, nhưng nó được kì vọng cao và tạo nên vị trí vững chắc để cạnh tranh với các đối thủ còn lại

II.2 TỔNG QUAN VỀ SILVERLIGHT

II.2.1 Silverlight là gì?

Silverlight là một dạng plug-in dựa trên công nghệ của Microsoft.Net nó độc lập với đa nền tảng và đa trình duyệt, nó cho phép phát triển các ứng dụng đa phương tiện đặc biệt là các ứng dụng trên web và Windows Phone Silverlight cung cấp một

mô hình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình như Visual Basic, C#

II.2.2 Các đặc tính của Siverlight

II.2.2.1 Sự kết hợp của WPF và XAML

Silverlight là một gói nhỏ của công nghệ Windows Presentation Foundation

Trang 20

8

Windows Phone để tạo giao diện người dùng WPF cho phép ta tạo ra đồ họa 3D, hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác trên máy khách XAML (Extensible Application Markup Language) cung cấp các cú pháp đánh dấu đặc trưng cho việc tạo các Element

II.2.2.2 Mở rộng cho ngôn ngữ kịch bản

Silverlight cung cấp việc mở rộng cho các ngôn ngữ kịch bản (Javascript) ở một

số trình duyệt phổ biến để thể hiện việc trình bày giao diện và thao tác người dùng một cách phong phú hơn

II.2.2.3 Sự tích hợp với các ứng dụng đã có

Silverlight tích hợp liền mạch với ngôn ngữ Javascript và mã Ajax của ASP.NET để bổ sung các chức năng ta đã xây dựng được Ta có thể tạo ra những tài nguyên trên nền máy chủ có trong ASP.NET và sử dụng các khả năng của Ajax để tương tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng

II.2.2.4 Mô hình ngôn ngữ lập trình trên nền tảng NET

Ta có thể tạo các ứng dụng trên nền tảng SL và sử dụng các ngôn ngữ động như InronPython, C#, Visual Basic Ta cũng có thể sử dụng các công cụ phát triển như Visual Studio để tạo ứng dụng trên nền tảng SL

II.2.2.5 Hỗ trợ mạng

Silverlight bao gồm các hỗ trợ cho HTTP qua TCP Ta có thể kết nối đến các dịch vụ của WCF, SOAP hoặc ASP.NET AJAX và nhận về các định dạng theo cấu trúc XML, JSON hay dữ liệu RSS

II.2.2.6 Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ to SQL)

Điều này cho phép ta truy cập dữ liệu bằng cách sử dụng cú pháp trực quan tự nhiên và mạng mẽ, được gõ bởi các đối tượng có trong các ngôn ngữ NET Framework

Trang 21

II.2.3 Kiến trúc tổng thể và các mô hình lập trình của Silverlight

II.2.3.1 Kiến trúc về các thành phần

Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phần khác nhau Tuy nhiên ta có thể nhóm lại các thành phần chính của Silverlight vào bảng sau đây:

Nền tảng trình bày cơ sở

Các thành phần và dịch vụ hướng tới giao diện người dùng và tương tác người dùng, bao gồm các control cho dữ liệu mà người dùng nhập, thiết bị đa phương tiện, quản lý phân quyền số, trình bày dữ liệu, đồ họa vector, chữ, hình ảnh động, cũng bao gồm XAML để đặc tả việc bố trí giao diện

.NET Framework cho

Silverlight

Là một gói nhỏ trong NET Framework, bao gồm các thành phần và các thư viện, kể cả việc tương tác dữ liệu, khả năng mở rộng các control, mạng, garbage collection và CRL

Cài đặt và cập nhật

Là thành phần để xử lý các tiến trình cài đặt làm sao để đơn giản hóa cho lần cài đặt đầu tiên, tiếp sau đó chỉ cung cấp cơ chế tự động cập nhật và tương tác ở mức thấp

Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc của SL cùng với các thành phần và dịch vụ liên quan khác

Trang 22

0

Hình 1 Thành phần kiến trúc của Silverlight

Core Presentation Components

Dữ liệu vào (Input)

Xử lý dữ liệu vào từ các thiết bị phần cứng như bàn phím, chuột, bảng vẽ hoặc các thiết bị đầu vào khác

Trình bày giao diện người

dùng (UI Rendering)

Trình bày các vector và các đồ họa ảnh bitmap, ảnh động và văn bản

Thiết bị nghe nhìn (Media) Các tính năng phát và quản lý một vài thể loại file

âm thanh và hình ảnh như WMA, MP3

Trang 23

Controls Hỗ trợ mở rộng cho các control để có khả năng

tùy chỉnh về kiểu dáng và khuôn mẫu

Xếp đặt Layout Cho phép khả năng xếp đặt vị trí động các thành

phần giao diện người dùng

Trình bày dữ liệu (Data

Binding)

Cho phép việc kết nối dữ liệu của các đối tượng

và các thành phần giao diện người dùng

DRM Khả năng quản lý phân quyền số

XAML Cung cấp trình phân tách cho XAML

.Net Frame work for Silverlight:

Window

Communication

Foundation

(WCF)

Cung cấp các tính năng để đơn giản hóa việc truy cập dữ liệu từ

xa Cơ chế này bao gồm một đối tượng trình duyệt, HTTP request và HTTP Response, RSS, JSON, POX, và các SOAP

Trang 24

II.2.3.2 Các công cụ và công nghệ liên quan của Silverlight

Microsoft Expression Blend: sử dụng công cụ này ta có thể tạo và thay đổi

cách sắp xếp trình bày các lớp ứng dụng bằng cách thao tác đến các Grid và Control trong XAML, làm việc với các chức năng đồ họa, lập trình với ngôn ngữ Javascript

Visual Stuido 2012: Visual Studio cung cấp các công cụ hiệu quả cho việc phát

triển các ứng dụng có hỗ trợ thao tác code-behind Tất cả các phiên bản đã có của Visual Studio đều có khả năng hỗ trợ Silverlight Tuy nhiên ở phiên bản mới này nó còn hỗ trợ các tính năng đặc biệt hơn như bao gồm khả năng IntelliSense, Debugging

và các Template cho việc tạo mới một ứng dụng Silverlight

Microsoft ASP.NET 3.5 Extensions Preview: Công nghệ này cung cấp chức

năng thêm để việc tăng cường các ứng dụng ASP.NET AJAX Nó bao gồm 2 control

sử dụng hữu ích cho việc xây dựng ứng dụng nền tảng silverlight cũng như là một phần của ứng dụng ASP.NET:

- ASP.NET MediaPlayer Server Control

- ASP.NET Silverlight Server Control

Internet Servers: Bao gồm IIS (Microsoft Internet Information Services) và

Apache Web server

Microsoft Windows Communication Foundation (WCF) services

Trang 25

II.3 XAML

II.3.1 Sơ lược về xaml

XAML (Extensible Apllication Markup Language) là một ngôn ngữ dạng khai báo Ta có thể tạo ra các phần tử đồ họa (UI) với những khai báo thông qua thẻ trong XAML Sau đó ta có thể dùng file mã lệnh tách biệt của nó (code-behind) để trả về những sự kiện và điều khiển những đối tượng mà ta đã định nghĩa trong XAML Nó

là một ngôn ngữ mô tả dựa trên XML là rất trực quan trong việc xây dựng giao diện

từ những bước phác thảo cho đến sản xuất sản phẩm

II.3.2 Khai báo đối tượng

Có 2 cách để khai báo đối tượng trong XAML:

- Khai báo trực tiếp: sử dụng thẻ đóng mở để khai báo một đối tượng giống như

là phần tử XML Ta cũng có thể sử dụng cú pháp này để khai báo đối tượng gốc (root object) hoặc để xét các giá trị của các thuộc tính

- Khai báo gián tiếp: sử dụng giá trị trực tiếp để khai báo một đối tượng Ta có thể sử dụng cú pháp này để thiết lập các giá trị của các thuộc tính Thông thường, điều này có nghĩa là chỉ những thuộc tính được hỗ trợ bởi một đối tượng nào đó mới có thể sử dụng được phương pháp này

II.3.3 Thiết lập đặc tính cho đối tượng

Có những cách sau để khai báo đặc tính cho đối tượng:

- Sử dụng cú pháp theo thuộc tính: Dưới đây là ví dụ xét giá trị cho các thuộc tính: Width, Height, Fill của đối tượng Rectangle

< Rectangle Width ="100" Height ="100" Fill ="Blue" />

- Sử dụng cú pháp theo đặc tính của thành phần (Element): Dưới đây là ví dụ xét đặc tính Fill theo cách này cho đối tượng Rectangle

<Rectangle Width ="100" Height ="100">

< Rectangle.Fill >

< SolidColorBrush Color ="Blue" />

</ Rectangle.Fill >

</ Rectangle >

Trang 26

4

- Sử dụng cú pháp theo nội dung: Dưới đây là ví dụ xét đặc tính Text cho đối tượng TextBlock (giống với đối tượng Label trong Winform, Webform)

< TextBlock > Hello! </ TextBlock >

- Sử dụng theo một tập hợp: đây là một trường hợp khá thú vị trong XAML, bởi

có những cách khác nhau để thể hiện tập hợp này Hơn nữa các khai báo này có thể xuất hiện ở phần đầu tiên của XAML cho phép ta xét những đặc tính chỉ đọc (read-only) của đối tượng Dưới đây là ví dụ xét đặc tính theo những cách khác nhau sử dụng theo kiểu tập hợp

< GradientStop Offset ="0.0" Color ="Red" />

< GradientStop Offset ="1.0" Color ="Blue" />

< GradientStop Offset ="0.0" Color ="Red" />

< GradientStop Offset ="1.0" Color ="Blue" />

< GradientStop Offset ="0.0" Color ="Red" />

< GradientStop Offset ="1.0" Color ="Blue" />

</ LinearGradientBrush >

Trang 27

II.3.4 Root elements và namespace trong xaml

Một file XAML chỉ được có duy nhất một Root element và phải thỏa mãn cả hai tiêu chí sau: wellformed XML (có thẻ mở và đóng) và valid XML (tuân thủ Document Type Definition (DTD)) Ví dụ dưới đây cho Root element điển hình của XAML cho Silverlight với Root element là thành phần PhoneApplicationPage

< phone : PhoneApplicationPage

x : Class ="LVTN_1091649.MainPage"

xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns : ="http://schemas.microsoft.com/winfx/2006/xaml"

FontFamily ="{ StaticResource PhoneFontFamilyNormal }"

FontSize ="{ StaticResource PhoneFontSizeNormal }"

Foreground ="{ StaticResource PhoneForegroundBrush }"

SupportedOrientations ="Portrait" Orientation ="Portrait"

shell : SystemTray.IsVisible ="True">

</ phone : PhoneApplicationPage >

II.3.5 Sự kiện

XAML là một ngôn ngữ khai báo cho đối tượng và những đặc tính của chúng, nhưng nó cũng bao gồm những cú pháp cho sự kết hợp sự kiện cho đối tượng trong những thẻ đánh dấu Ta chỉ rõ tên của sự kiện như là một thuộc tính tên trên đối tượng

mà sự kiện được nghe Về giá trị của thuộc tính, ta chỉ rõ tên của hàm nghe sự kiện

mà bạn định nghĩa ở phần code-behind hoặc ở phần javascript Việc có khai báo hay

không đặc tính x:Class ở thẻ root trong XAML có ảnh hưởng đến việc xử lý sự kiện Nếu ta khai báo x:Class tức là việc xử lý sự kiện của bạn sẽ được thực hiện trong

code-behind, trường hợp này thường xuất hiện trong kiểu lập trình Managed API Còn ngược lại thì việc xử lý sự kiện của bạn được thực hiện ngay trong thẻ Javascript chứa trong HTML, trường hợp này thường xuất hiện trong kiểu lập trình JavaScript API

Đoạn code dưới đây ta sẽ thấy rõ cách tạo sự kiện trong XAML và tạo sự kiện

Trang 28

6

< phone : PhoneApplicationPage

x : Class ="LVTN_1091649.MoodleForum">

< Grid x : Name ="LayoutRoot" Background ="White">

< Button Click ="Button_Click" Content ="Moodle Windows

và khai báo trong thẻ đó một sự kiện Click=”Button_Click” Sự kiện này được xử

lý trong code-behind như sau:

//Xử lý sự kiện Button_Click tại đây

MessageBox Show( "Hello Windows Phone 8" );

Trang 29

Đa số các ứng dụng thuộc bất kì nền tảng nào cũng có thể chia thành hai phần: giao diện (View) và dữ liệu (Model) Vì việc tách riêng các phần này, cần phải có một phần trung gian nào đó nối kết hai phần này lại, và chúng tạo nên một mô hình (pattern)

Quen thuộc và phổ biến nhất với chúng ta là mô hình MVC (Model – View – Controller) Có thể nói MVC là một mô hình tiêu chuẩn bởi sự logic và hợp lý của

nó Điều này làm cho việc xuất hiện một mô hình phát triển ứng dụng mới có thể khiến lập trình viên bỡ ngỡ Trước tiên ta cùng sơ lược về xu hướng phát triển các ứng dụng hiện nay để từ đó làm nổi bật vai trò của mô hình MVVM

II.4.1 Data binding

Đây là một khái niệm quen thuộc và làm ta nhớ lại những rắc rối mà chúng đem lại trong những nền tảng trước đây và thậm chí trong NET Tuy nhiên từ khi WPF ra đời, việc sử dụng kĩ thuật này thực sự chuyển sang một bước tiến mới, thỏa mãn những điều mà hầu hết các lập trình viên mong đợi Nếu như tìm hiểu sâu về tính năng này, ta sẽ không ngạc nhiên gì khi nhiều người nói rằng data binding là thành phần cốt lỗi tạo nên các cơ chế hoạt động trong WPF

Ta có thể binding dữ liệu nguồn và đích từ bất kì đối tượng nào: như cửa sổ, các control đơn giản như TextBlock cho đến một UserControl phức tạp Tất cả đều được thực hiện dễ dàng, nhanh chóng, hiệu quả và có thể không cần dùng đến bất kì dòng code-behind (C#, VB.NET, …) nào

II.4.2 Data template

Một template trong WPF hay Silverlight xác định cách thức và cấu trúc mà dữ liệu hoặc control sẽ được hiển thị ra màn hình Nói riêng về Data Template, chức năng này giúp cho dữ liệu (thuộc dạng non-visual) được gắn vào một cấu trúc bao gồm một hoặc nhiều thành phần có khả năng hiển thị Và do đó, dữ liệu sẽ được hiển thị lên cửa sổ một cách trực quan theo ý muốn của lập trình viên Cũng như Data Binding, tính năng này không yêu cầu bạn phải viết trong code-behind của ứng dụng

Trang 30

8

II.4.3 Command

Data Binding và Data Template giúp cho người dùng thấy được những gì có trong

dữ liệu và có thể cập nhật lại dữ liệu đó Tuy nhiên để nhận được tương tác từ người dùng và xử lý, WPF cung cấp một tính năng gọi là command Các command có thể được xem như dữ liệu và được cung cấp cho người dùng thông qua chức năng binding

Một command binding cho phép bạn tùy ý xác định các phương thức xử lý, phím tắt hoặc thao tác chuột để kích hoạt Ngoài ra, các command có thể tự động thay đổi thuộc tính của các control dựa vào trạng thái chúng có thể được kích hoạt hay không

II.4.4 Các thành phần của mvvm

Mẫu thiết kế Model-View-ViewModel (MVVM) giúp tách biệt lớp business và presentation của ứng dụng khỏi phần giao diện (UI) của nó Việc duy trì phần tách biệt giữa lớp ứng dụng và UI giúp chỉ ra những vấn đề trong việc phát triển và thiết

kế và có thể giúp ứng dụng của bạn trở nên dễ dàng để kiểm thử, bảo trì và phát triển hơn

Bằng việc sử dụng mẫu thiết kế MVVM, phần giao diện (UI) của ứng dụng, presentation và business được tách thành 3 lớp riêng biệt: View bao hàm UI và UI logic (code behind); View Model bao hàm presentation và state; Model bao hàm business và data

Hình 2 Các lớp trong mô hình MVVM và sự tương tác giữa chúng

Tương tự như những mẫu thiết kế có sự tách biệt phần presentation khác, điểm mấu chốt trong việc sử dụng mẫu MVVM hiệu quả nằm ở việc hiểu cách thích hợp

Trang 31

để tác động mã nguồn của chương trình vào đúng những lớp cần thiết, và hiểu những cách thức mà những lớp này tương tác trong những ngữ cảnh khác nhau

Như vậy, MVVM có 3 thành phần và chúng được phát biểu tóm gọn như sau:

- View: Tương tự như trong mô hình MVC, View là phần giao diện của ứng dụng

để hiển thị dữ liệu và nhận tương tác của người dùng Một điểm khác biệt so với các ứng dụng truyền thống là View trong mô hình này tích cực hơn Nó có khả năng thực hiện các hành vi và phản hồi lại người dùng thông qua tính năng binding, command

- Model: Cũng tương tự như trong mô hình MVC Model là các đối tượng giúp

truy xuất và thao tác trên dữ liệu thực sự

- ViewModel: Lớp trung gian giữa View và Model ViewModel có thể được xem

là thành phần thay thế cho Controller trong mô hình MVC Nó chứa các mã lệnh cần thiết để thực hiện data binding, command

- Một điểm cần lưu ý là trong mô hình MVVM, các tầng bên dưới sẽ không biết được các thông tin gì về tầng bên trên nó

II.5 MOODLE

II.5.1 Kiến trúc hệ thống moodle

II.5.1.1 Moodle là gì?

Moodle là một Hệ thống quản lý học tập (LMS - Learning Management System),

Hệ thống quản lý khóa học (CMS - Course Management System), hay Môi trường học tập ảo (VLE - Virtual Learning Environment) Mục tiêu của nó là để cung cấp cho giáo viên và học sinh các công cụ mà họ cần để giảng dạy và học tập

Moodle (viết tắt của Modular Object-Oriented Dynamic Learning Environment) được sáng lập năm 1999 bởi Martin Dougiamas, người tiếp tục điều hành và phát triển chính của dự án Do không hài lòng với hệ thống LMS/LCMS thương mại WebCT trong trường học Curtin của Úc, Martin đã quyết tâm xây dựng một hệ thống LMS mã nguồn mở hướng tới giáo dục và người dùng hơn Từ đó đến nay Moodle

có sự phát triển vượt bậc và thu hút được sự quan tâm của hầu hết các quốc gia trên

Trang 32

0

thế giới và ngay cả những công ty bán LMS/LCMS thương mại lớn nhất như BlackCT (BlackBoard + WebCT) cũng có các chiến lược riêng để cạnh tranh với Moodle Moodle là một ứng dụng web viết bằng PHP Moodle là mã nguồn mở Bản quyền thuộc sở hữu của những cá nhân đóng góp, không giao cho một thực thể duy nhất, mặc dù công ty Moodle Pty Ltd ở Perth Australia, thuộc sở hữu của người sáng lập Martin Dougiamas, quản lý dự án

Do thiết kế dựa trên module nên Moodle cho phép bạn chỉnh sửa giao diện bằng cách dùng các theme có trước hoặc tạo thêm một theme mới cho riêng mình

Tài liệu hỗ trợ của Moodle rất đồ sộ và chi tiết, khác hẳn với nhiều dự án mã nguồn mở khác

Moodle phù hợp với nhiều cấp học và hình thức đào tạo: phổ thông, đại học/cao đẳng, không chính quy, trong các tổ chức/công ty

Moodle rất đáng tin cậy, có trên 91.386 trang đăng kí trên thế giới đã dùng Moodle tại 241 quốc gia và đã được dịch ra 75 ngôn ngữ khác nhau (thống kê tại moodle.org)

Có khoảng 76.144.736 người dùng trong hơn 8.220.438 khóa học được tạo

II.5.1.2 Tổng quan về cài đặt Moodle

Một cài đặt Moodle bao gồm các mã xử lý của Moodle trên một máy chủ web hỗ trợ PHP, một cơ sở dữ liệu được quản lý bởi MySQL, PostgreSQL, Microsoft SQL Server, Oracle, và một kho dữ liệu cho các tập tin tải lên và tạo ra (thư mục moodledata)

Tất cả ba bộ phận có thể chạy trên một máy chủ duy nhất, hoặc chúng có thể được tách ra với nhiều máy chủ web cân bằng tải (load-balanced), một tổ cơ sở dữ liệu, và một file-server

Moodle được thiết kế để đơn giản để cài đặt trên bất kỳ máy chủ đáp ứng các yêu cầu cơ bản Moodle tự cài đặt một lần với mã nguồn đã được sao chép vào máy chủ web và một cơ sở dữ liệu trống đã được tạo ra Tương tự như vậy, Moodle có thể tự nâng cấp tới một phiên bản tiếp theo

Trang 33

II.5.1.3 Moodle là một hệ thống các mô-đun

Giống như nhiều hệ thống mã nguồn mở đã thành công, Moodle được cấu trúc như một ứng dụng lõi (Moodle core), bao quanh bởi nhiều plugin cung cấp các chức năng cụ thể Moodle được thiết kế để dễ mở rộng và tùy biến mà không sửa đổi các thư viện lõi, vì nếu không như vậy sẽ tạo ra vấn đề khi nâng cấp lên một phiên bản mới hơn Do đó, khi tùy biến hoặc mở rộng cài đặt Moodle của riêng bạn phải thông qua kiến trúc plugin

Các plugin trong Moodle là các loại cụ thể Một plugin xác thực (Authentication plugin) và một mô-đun hoạt động (activity module) sẽ liên lạc với Moodle core bằng cách sử dụng các API khác nhau, phù hợp với các loại chức năng plugin cung cấp Chức năng phổ biến cho tất cả các plugin (cài đặt - installation, nâng cấp - upgrade, cho phép - permissions, cấu hình - configuration, ) được xử lý nhất quán trên tất cả các loại plugin

Phân phối Moodle tiêu chuẩn bao gồm Moodle core và một số các plugin của từng loại, để một cài đặt mới Moodle ngay lập tức có thể được sử dụng bắt đầu giảng dạy

và học tập Sau khi cài đặt, một site Moodle có thể được điều chỉnh phù hợp cho một mục đích cụ thể bằng cách thay đổi các tùy chọn cấu hình mặc định, và bằng cách cài đặt hay gỡ bỏ các plugin Hầu hết các plugin đã được chia sẻ công khai được liệt kê trong thư mục Moodle Plugins

Về vật lý, một plugin Moodle là chỉ là một thư mục của các kịch bản PHP (CSS, JavaScript, nếu cần thiết) Moodle core giao tiếp với các plugin bằng cách tìm kiếm các điểm vào cụ thể, thường được định nghĩa trong file lib.php trong plugin

II.5.1.4 Tổng quan về Moodle core

Moodle core cung cấp tất cả cơ sở hạ tầng cần thiết để xây dựng một LMS Nó thực hiện các khái niệm quan trọng mà tất cả các plugin khác nhau sẽ cần phải làm việc với Chúng bao gồm:

- Các khóa học và các hoạt động (Courses & activities)

Trang 34

2

Một khóa học Moodle là một chuỗi các hoạt động và các tài nguyên được nhóm lại thành các phần Các khóa học tự chúng được tổ chức thành một bộ phân cấp các mục trong một site Moodle

- Người sử dụng (Users)

- Nhóm và phân hệ (Group & Cohort)

- Ghi danh và kiểm soát truy cập (Enrolments & access control)

Các ngữ cảnh - contexts, vai trò - roles, khả năng - capabilities, và cho phép - permissions,

- Hoạt động và hoàn thành khóa học (Activity & course completion)

- Điều hướng, thiết lập và cấu hình (Navigation, settings and configuration)

- Thư viện Form

- Thư viện JavaScript

Moodle đã thông qua các thư viện giao diện người dùng Yahoo Ngoài ra còn

có một hệ thống tốt cho tải các tập tin JavaScript bổ sung theo yêu cầu của mỗi trang

- Cài đặt và nâng cấp (installation & upgrade)

- Nhật ký và thống kê (logs and statistics)

II.5.1.5 Cách tổ chức mã Moodle

Moodle chủ yếu là theo cách tiếp cận kịch bản giao dịch (transaction script) Giả

sử bạn đang tìm kiếm một diễn đàn URL sẽ là / mod / forum / view.php? Id = 123 thì script PHP mod / forum / view.php sẽ tạo ra trang đó Người ta có thể lập luận rằng kịch bản giao dịch không phải là một mô hình thích hợp cho một ứng dụng phức tạp như Moodle Tuy nhiên, nó là một kiến trúc rất tự nhiên cho một ứng dụng PHP,

và Moodle là một tổng hợp của nhiều plugin khác nhau, chứ không phải là một ứng dụng phức tạp duy nhất

Trang 35

Đằng sau cách tiếp cận kịch bản giao dịch cơ bản, rất nhiều các chức năng cốt lõi

đã được tái cơ cấu vào các thư viện (chủ yếu là trong thư mục lib) Điều này cung cấp các yếu tố của một mô hình miền (domain model) Tuy nhiên, dự án Moodle bắt đầu trước khi PHP có thể xử lý mã hướng đối tượng, do đó, không mong đợi một mô hình miền theo định hướng đối tượng, ngoại trừ trong một số các bộ phận gần đây của mã Moodle

Có hai lớp được sử dụng để phân tách trình diễn (presentation) và nghiệp vụ (business login) Lớp bên ngoài là theme (xem ở trên) kiểm soát các khía cạnh trực quan của giao diện Moodle Sau đó, có các lớp sinh (renderer classes) sẽ tạo ra mã HTML để xuất các dữ liệu được cung cấp bởi các kịch bản giao dịch và mô hình miền Thật không may, cả PHP và kiến trúc Moodle đều không thực hiện một sự tách biệt rõ ràng với các lớp giao diện người dùng Nó có thể do sự cẩu thả của các nhà phát triển đã gây ra sự hỗn độn, và điều này đã xảy ra trong quá khứ Các mã trong các tiêu chuẩn phân phối Moodle đang dần dần được làm sạch

II.5.2 Dịch vụ web của moodle

II.5.2.1 Mô hình hoạt động

1 Máy khách gửi tài khoản và mật khẩu tới dịch vụ web script

2 Script trả về một chuỗi bảo mật token tương ứng với tài khoản của người dùng

3 Máy khách gọi một hàm dịch vụ web cụ thể trên máy chủ, thông qua một giao thức và phải gửi kèm theo token

4 Máy chủ giao thức sử dụng chuỗi token để kiểm tra xem người dùng có thể gọi hàm hay không

5 Máy chủ giao thức gọi các hàm ngoài phù hợp, nằm trong tập tin externallib.php bên trong các mô-đun có liên quan

6 Hàm ngoài đó sẽ kiểm tra xem người dùng hiện tại có quyền để thực hiện yêu cầu này không

7 Hàm ngoài gọi hàm Moodle core phù hợp, thường ở trong file lib.php

8 Hàm core trả về một kết quả tới hàm ngoài

9 Hàm ngoài sẽ trả về một kết quả đến máy chủ giao thức

Trang 36

4

10 Các máy chủ giao thức trả về kết quả cho máy khách

II.5.2.2 Cấu hình dịch vụ web

Phiên bản Moodle đang sử dụng cho các cấu hình bên dưới là Moodle 2.4.1

 Kích hoạt dịch vụ

- Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Enternal services

- Tích chọn Enable web services for mobile devices sau đó kích Save Changes

- Lưu ý: vì lý do bảo mật nên chỉ kích hoạt dịch vụ web khi cần thiết

 Kích hoạt giao thức và tài liệu

- Truy cập vào Settings -> Site administration -> Advanced features -> Plugins-> Web services -> Manage protocols

- Kích hoạt các giao thức (SOAP, REST, XMLRPC, AMF, )

- Để kích hoạt tài liệu chọn: web services documentation sau đó chọn Save Changes

 Tạo một dịch vụ web mới

Nếu không có các dịch vụ web xây dựng trước phù hợp với nhu cầu của bạn, chúng

ta có thể tạo ra một dịch vụ tức là chọn các hàm dịch vụ web cụ thể có sẵn cho dịch

vụ đó

Bạn có thể kích hoạt các hàm dịch vụ nhất định, vì vậy không ảnh hưởng đến vấn

đề bảo mật

Các bước tạo một dịch vụ web như sau:

1 Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Enternal services

2 Kích Add new custom services

3 Authorised users only: nếu kích hoạt, bạn cần lựa chọn những người dùng

có thẩm quyền bằng tay Nếu không tất cả người dùng với các quyền hạn phù hợp là được phép

Trang 37

4 Required capability: nếu kích hoạt, bất cứ user nào truy cập các dịch vụ

web sẽ được kiểm tra lại các quyền truy cập (Đây chỉ là lớp bảo mật tùy chọn bổ sung)

5 Nhập tên và tích chọn Enabled

6 Bấm nút Add service để tạo dịch vụ

 Thêm một hàm vào dịch vụ web

Hàm dịch vụ được tạo ra, nhưng chưa có các hàm được thêm vào, do đó chúng ta sẽ lựa chọn hàm phù hợp cho phép các ứng dụng bên ngoài sử dụng

Chúng ta làm theo các bước sau:

1 Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Enternal services

2 Tương ứng với từng service đã được tạo trong khung Built – in services chọn Functions

3 Lựa chọn hàm cần thiết cho các ứng dụng bên ngoài chi cập và chọn Add Functions

 Tạo một chuỗi bảo mật token

Tính năng này cho phép bạn tạo ra một chuỗi bảo mật cho người dùng cụ thể Nó có

thể là hữu ích nếu người dùng không có quyền tạo token (moodle / create: token)

Đây cũng là cách duy nhất để tạo ra một chuỗi bảo mật cho người quản trị Vì lý do

an ninh, chuỗi bảo mật không tự động tạo ra trong trang quản trị các khóa bảo mật

1 Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Manage tokens

2 Nhấp vào Add để thêm

3 Chọn người dùng để tạo và dịch vụ

4 Nhấp vào Saves changes để lưu các thay đổi

Khi bạn tạo ra một chuỗi bảo mật cho người dùng, bạn không cần phải giao quyền

moodle/webservice:createtoken cho người dùng đó Tuy nhiên, bạn cũng có thể

thiết lập phân quyền này cho người dùng bằng cách truy cập tới Settings > Site

Trang 38

6

administration > Users > Define roles Trang quản lý các vai trò trong hệ thống

hiện ra (Manage roles), bạn hãy chọn Edit một role nào đó

II.5.2.3 Sử dụng dịch vụ web của Moodle

II.5.2.3.1 Lấy token của một người dùng

Máy khách gửi yêu cầu HTTP đơn giản trong tập tin có đường dẫn /login/token.php với các thông số sau:

- Username = tài khoản người dùng

- Password = mật khẩu người dùng

- Service = shortname: nếu sử dụng dịch vụ web cho các thiết bị di động (được

xây dựng sẵn) thì shortname = moodle_mobile_app Trường shortname có thể tìm thấy trong bảng cơ sở dữ liệu tên external_services

o Nếu username là không tìm thấy trong cơ sở dữ liệu thì trả về:

{"error":"The username was not found in the database",

"stacktrace":null,"debuginfo":null,"reproductionlink":null}

o Nếu service là không tìm thấy thì trả về:

Trang 39

{"error":"Web service is not available (it doesn't exist or might be disabled)",

"stacktrace":null, "debuginfo":null, "reproductionlink":null}

II.5.2.3.2 Lấy danh sách các hàm của một dịch vụ web

Sau khi lấy được chuỗi token ta sẽ sử dụng nó để lấy danh sách các hàm của một dịch vụ web với giao thức Soap Để sử dụng được giao thức này cần kích hoạt Use SOAP protocol như trong 5.2.2 Cụ thể chuỗi url sẽ sử dụng như sau:

http://www.mylocalhost/moodle/webservice/soap/server.php?wsdl=1&wstoken=TOKEN

Tham số WSDL (Web Service Description Language) định nghĩa cách mô tả dịch

vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin:

- Tên dịch vụ

- Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ Web

- Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của dịch vụ Web cộng với tên cho giao diện này)

Hiện tại phiên bản 2.4.1 của Moodle hỗ trợ tất cả 43 hàm dịch vụ bắt đầu với tiền

tố core_ (các hàm đã chuẩn hóa), 25 hàm dịch vụ bắt đầu với tiền tố moodle_ (các hàm này làm việc chưa hiệu quả, sẽ được chuẩn hóa và chuyển thành các hàm core_ trong các phiên bản tiếp theo của Moodle), 2 hàm dịch vụ bắt đầu với tiền tố mod_ Ngoài ra còn có một hàm khá quan trọng là enrol_manual_enrol_users để thực hiện

việc ghi danh người dùng vào khóa học

Moodle hiện vẫn đang trong giai đoạn phát triển nên một số hàm dịch vụ web rất quan trọng liên quan đến Grade (điểm), Cohort (phân hệ) vẫn chưa hoàn thành

II.5.2.3.3 Giao thức REST

- Giao thức REST đưa ra cách thức giao tiếp dựa vào HTTP URI, thường gọi

là URL query Kết quả trả về của giao thức REST theo các định dạng XML hoặc JSON (đơn thuần là văn bản) dễ dàng xử lý với hầu hết các ngôn ngữ

- Việc giao tiếp trên cơ sở HTTP của REST được thực hiện dễ dàng mà không cần phải thêm các thư viện khác

Trang 40

8

- Để gọi thực thi một hàm dịch vụ web của Moodle với giao thức REST ta cần

sử dụng chuỗi URL có định dạng sau:

http://www.mylocalhost/moodle/webservice/rest/server.php?moodlewsrestformat=FORMAT&wsfunction=FUNCTION&wstoken=TOKEN&DATA

o Trong đó: FORMAT là XML hoặc JSON(tham số

moodlewsrestformat mặc định là XML), FUNCTION là tên hàm mà chúng ta cần gọi thực thi, DATA là dữ liệu tham số của hàm cần gọi

- Ví dụ về hàm lấy thông tin người dùng có id=2, sử dụng hàm

core_user_get_users_by_id và kết quả trả về có dạng XML

http://mylocalhost/moodle/webservice/rest/server.php?moodlewsrestformat=xml&wsfunction=core_user_get_users_by_id&wstoken=bae92815bb780f9c828f1f597a200d9b&userids[0]=2

o Kết quả trả về thành công có dạng sau:

Ngày đăng: 23/06/2014, 13:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trần Cao Đệ, Đỗ Thanh Nghị. Kiểm thử phần mềm, Trường ĐH Cần Thơ, Khoa Công Nghệ Thông Tin và Truyền Thông Sách, tạp chí
Tiêu đề: Kiểm thử phần mềm
[4] Magazine Geek. The First Windows Phone Development Sách, tạp chí
Tiêu đề: The First Windows Phone Development
Tác giả: Magazine Geek
[5] Hướng dẫn sử dụng hệ thống MOODLE, Đại học Sư phạm Hà Nội Sách, tạp chí
Tiêu đề: Hướng dẫn sử dụng hệ thống MOODLE
[2] Rob Cameron. Pro Windows Phone App Development Second Edition Khác
[3] Elena Kosinska and Chris Leeds. Microsoft Expression Blend 4 Step by Step Khác

HÌNH ẢNH LIÊN QUAN

Hình 1. Thành phần kiến trúc của Silverlight - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 1. Thành phần kiến trúc của Silverlight (Trang 22)
Hình 2. Các lớp trong mô hình MVVM và sự tương tác giữa chúng. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 2. Các lớp trong mô hình MVVM và sự tương tác giữa chúng (Trang 30)
Hình 4: tree node và mối quan hệ giữa các nút - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 4 tree node và mối quan hệ giữa các nút (Trang 58)
Hình 6. Thiết kế hệ thống. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 6. Thiết kế hệ thống (Trang 86)
Hình 7. Mô hình MVVM. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 7. Mô hình MVVM (Trang 87)
Hình 9. Tạo người dùng. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 9. Tạo người dùng (Trang 92)
Hình 10. Lấy hồ sơ người dùng. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 10. Lấy hồ sơ người dùng (Trang 96)
Hình 11. cập nhật thông tin cá nhân. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 11. cập nhật thông tin cá nhân (Trang 98)
Hình 13. Tạo khóa học mới. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 13. Tạo khóa học mới (Trang 104)
Hình 17. Thêm thành viên vào nhóm. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 17. Thêm thành viên vào nhóm (Trang 114)
Hình 18. Xóa thành viên ra khỏi nhóm. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 18. Xóa thành viên ra khỏi nhóm (Trang 117)
Hình 20. Ghi danh người dùng vào khóa học. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 20. Ghi danh người dùng vào khóa học (Trang 122)
Hình 23. Tạo chủ đề mới trên diễn đàn. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 23. Tạo chủ đề mới trên diễn đàn (Trang 129)
Hình 24. Tải tập tin xuống từ diễn đàn. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 24. Tải tập tin xuống từ diễn đàn (Trang 131)
Hình 29. Deploy ứng dụng vào máy thật. - ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE
Hình 29. Deploy ứng dụng vào máy thật (Trang 168)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w