Công ngh Web chính là m t công ngh client-server, trong đó trình duy t web đóng vai trò là client, còn h th ng cung c p trang web đó đóng vai trò là server... Nói cách khác, nó cho phép
Trang 1Nguy n V ng Khang 1051010072
Tp H Chí Minh, tháng 06 n m 2014
Trang 2Trong su t quá trình h c t p t i Tr ng i h c M Thành ph H Chí Minh, và
nh t là trong quá trình th c hi n khóa lu n t t nghi p, em đư nh n đ c s giúp đ ,
h ng d n, h tr và đ ng viên t gia đình, bè b n và th y cô đ hoàn thành đ tài này Nay, xin cho phép em đ c g i l i cám n chân thành đ n:
Th y ThS Hu nh Minh Quang, gi ng viên khoa Công ngh Thông tin,
tr ng i h c M Thành ph H Chí Minh, là giáo viên h ng d n khóa
lu n t t nghi p Trong su t quá trình th c hi n, th y đư t n tình h ng d n, góp ý c ng nh đ xu t gi i pháp giúp em hoàn thành bài khóa lu n theo đúng đ nh h ng ban đ u
B n bè và gia đình đư h t lòng quan tâm, giúp đ và t o đi u ki n t t nh t trong th i gian qua đ giúp em hoàn thành đ tài này
M c dù đư c g ng r t nhi u, nh ng do h n ch v th i gian và ki n th c, nên không th tránh kh i nh ng sai sót sai sót Em r t mong nh n đ c s đóng góp và nh n xét c a th y cô đ khóa lu n t t nghi p d c hoàn thi n h n
Tp HCM, ngày 02 tháng 06 n m 2014
Sinh viên th c hi n
Nguy n V ng Khang
Trang 3
Tp.HCM, ngày … tháng … n m …
Gi ng viên h ng d n
Trang 4
Tp.HCM, ngày … tháng … n m …
Giáo viên ph n bi n
Trang 5M C L C
CH NG 1: M U 1
1.1 Lý do ch n đ tài 1
1.2 M c tiêu 2
1.3 i t ng h ng t i và ph m vi tìm hi u 2
1.4 Ph ng pháp 3
1.5 Tóm t t n i dung 3
CH NG 2: C S LÝ THUY T 4
2.1 H c t p tr c tuy n 4
2.1.1 Gi i thi u 4
2.1.2 Quá trình phát tri n 4
2.1.3 c đi m và phân lo i 5
2.1.4 E-learning Vi t Nam 7
2.1.5 u và nh c đi m 8
2.1.6 K t lu n 9
2.2 T ng quan v công ngh web 2.0 9
2.2.1 c đi m 9
2.2.2 S khác bi t gi a Web 1.0 và Web 2.0 11
2.2.3 M t s công ngh dùng đ xây d ng ng d ng web 2.0 13
2.2.4 K t lu n 13
2.3 ng d ng n n web 13
2.3.1 Khái ni m 13
2.3.2 L ch s hình thành 14
2.3.3 c đi m 15
2.3.4 Mô hình MVC 15
2.3.5 K t lu n 17
2.4 Ngôn ng PHP, Zend Framework 2 và h qu n tr c s d li u MySQL 17
2.4.1 T ng quan v mư ngu n m 17
2.4.2 Ngôn ng PHP 18
2.4.3 Zend Framework 2 19
Trang 62.4.4 H qu n tr c s d li u MySQL 26
CH NG 3: HI N TH C NG D NG 28
3.1 Gi i thi u ng d ng 28
3.1.1 Ý ngh a và ch c n ng c a ng d ng 28
3.1.2 Ki n trúc c a ng d ng 29
3.1.3 Các lo i tài kho n ng i dùng 31
3.2 Phân tích thi t k h th ng 32
3.2.1 Mô hình ý ni m truy n thông 32
3.2.2 Mô hình ý ni m x lý 34
3.2.3 Mô hình ý ni m d li u 52
3.2.4 Mô hình logic d li u 53
3.2.5 Mô hình v t lý d li u 54
3.2.6 Thi t l p c s d li u v t lý 55
3.3 Xây d ng ng d ng 61
3.3.1 Các công đo n c n thi t đ xây d ng m t module 62
3.3.2 M t s hình nh c a ng d ng 64
CH NG 4: T NG K T 69
4.1 K t lu n 69
4.2 H ng phát tri n c a đ tài 70 TÀI LI U THAM KH O
PH L C
Trang 7DANH M C CÁC T VI T T T
AJAX Asynchronous JavaScript and XML JavaScript và XML không đ ng b
API Application Programming Interface Giao di n L p trình ng d ng
DBMS Database Management System H qu n tr C s d li u
HTTP HyperText Transfer Protocol Giao th c Truy n t i Siêu v n b n
HTTPs HyperText Transfer Protocol
Secure
Giao th c Truy n t i Siêu v n b n
có B o m t
JSON JavaScript Object Notation Ký hi u đ i t ng JavaScript
URL Uniform Resource Locator nh v Tài nguyên Th ng nh t
Trang 8DANH M C HÌNH
Hình 2.1- S khác bi t gi a Web 1.0 và Web 2.0 v phía ng i dùng 11
Hình 2.2- S khác bi t gi a Web 1.0 và Web 2.0 v phía ng i l p trình 12
Hình 2.3- Mô hình MVC 16
Hình 2.4- Ki n trúc MVC trong Zend 21
Hình 3.1- Các module trong ng d ng EdusOne 29
Hình 3.2- Mô hình ý ni m truy n thông c a ng d ng 32
Hình 3.3- Mô hình ý ni m x lý (quy trình ng ký) 35
Hình 3.4- Mô hình ý ni m x lý (quy trình ng nh p / ng xu t) 37
Hình 3.5- Mô hình ý ni m x lý (quy trình i m t kh u) 39
Hình 3.6- Mô hình ý ni m x lý (quy trình Qu n lý thông tin cá nhân) 40
Hình 3.7- Mô hình ý ni m x lý (quy trình K t n i ph huynh – h c viên) 42
Hình 3.8- Mô hình ý ni m x lý (quy trình Qu n lý tài li u) 44
Hình 3.9- Mô hình ý ni m x lý (quy trình Qu n lý l p) 46
Hình 3.10- Mô hình ý ni m x lý (quy trình Trao đ i) 48
Hình 3.11- Mô hình ý ni m x lý (quy trình Qu n lý bài gi ng) 49
Hình 3.12- Mô hình ý ni m x lý (quy trình Qu n lý đ thi, làm bài và ch m đi m) 51 Hình 3.13- Mô hình ý ni m d li u c a ng d ng 52
Hình 3.14- Mô hình logic d li u c a ng d ng 53
Hình 3.15- Mô hình v t lý d li u c a ng d ng 54
Hình 3.16- M t module trong ng d ng 63
Hình 3.17- Giao di n trang ng nh p 64
Hình 3.18- Giao di n trang ng ký H c viên 64
Hình 3.19- Giao di n trang H s 64
Hình 3.20- Giao di n trang Qu n lý c p 65
Hình 3.21- Giao di n m t trang Qu n lý th m c 65
Hình 3.22- Giao di n m t trang Qu n lý thông báo 65
Hình 3.23- Giao di n trang Qu n lý l p 66
Hình 3.24- Giao di n trang Qu n lý bài gi ng 66
Hình 3.25- Giao di n trang Qu n lý đ thi 66
Trang 9Hình 3.26- Giao di n trang Ch m bài 67
Hình 3.27- Giao di n m t trang L p 67
Hình 3.28- Giao di n trang Làm bài thi 67
Hình 3.29- Giao di n trang B ng đi m 68
Hình 3.30- Giao di n trang Danh sách k t n i ph huynh 68
Hình 3.31- Giao di n trang Danh sách k t n i các con 68
Trang 10DANH M C B NG
B ng 2.1- So sánh gi a công ngh web 1.0 và 2.0 12
B ng 2.2- nh tuy n trong ZF2 22
B ng 2.3- K t n i c s d li u s d ng Zend\Db\Adapter trong ZF2 23
B ng 2.4- Truy v n c s d li u s d ng Zend\Db\Sql trong ZF2 24
B ng 3.1- Ch c n ng c a m i module c a ng d ng 30
B ng 3.2- Danh sách các tác nhân c a ng d ng 33
B ng 3.3- Danh sách các lu ng thông tin c a ng d ng 33
B ng 3.4- B ng BAI_DANG trong c s d li u c a ng d ng 55
B ng 3.5- B ng BAI_GIANG trong c s d li u c a ng d ng 55
B ng 3.6- B ng CAP trong c s d li u c a ng d ng 55
B ng 3.7- B ng DANH_XUNG trong c s d li u c a ng d ng 56
B ng 3.8- B ng DE_THI trong c s d li u c a ng d ng 56
B ng 3.9- B ng GIANG_VIEN trong c s d li u c a ng d ng 56
B ng 3.10- B ng HOC trong c s d li u c a ng d ng 57
B ng 3.11- B ng HOC_HAM trong c s d li u c a ng d ng 57
B ng 3.12- B ng HOC_VI trong c s d li u c a ng d ng 57
B ng 3.13- B ng HOC_VIEN trong c s d li u c a ng d ng 57
B ng 3.14- B ng KET_NOI trong c s d li u c a ng d ng 57
B ng 3.15- B ng KIEU_THONG_BAO trong c s d li u c a ng d ng 58
B ng 3.16- B ng LINH_VUC trong c s d li u c a ng d ng 58
B ng 3.17- B ng LOAI_TAI_KHOAN trong c s d li u c a ng d ng 58
B ng 3.18- B ng LOP trong c s d li u c a ng d ng 58
B ng 3.19- B ng NHOM_LINH_VUC trong c s d li u c a ng d ng 59
B ng 3.20- B ng PHU_HUYNH trong c s d li u c a ng d ng 59
B ng 3.21- B ng QUOC_TICH trong c s d li u c a ng d ng 59
B ng 3.22- B ng TAI_KHOAN trong c s d li u c a ng d ng 59
B ng 3.23- B ng THANG_DIEM trong c s d li u c a ng d ng 60
B ng 3.24- B ng THONG_BAO trong c s d li u c a ng d ng 60
B ng 3.25- B ng THONG_TIN_CA_NHAN trong c s d li u c a ng d ng 60
Trang 12CH NG 1: M U
1.1 LỦ do ch n đ tƠi
Internet đư làm thay đ i r t nhi u cu c s ng c a con ng i, t vi c đi u hành đ t
n c, qu n lý, kinh doanh cho đ n đáp ng nhu c u cá nhân nh gi i trí và h c t p Ngày nay, m i ng i th ng nghe nói đ n c m t “e-government” (chính ph đi n t ),
“e-commerce” (th ng m i đi n t ), e-learning (h c t p đi n t ), …; trong đó e-learning (hay còn g i là h c t p tr c tuy n) là m t ng d ng công ngh thông tin trong l nh v c giáo d c ây là m t xu h ng h c t p ph bi n các n c phát tri n trên th gi i, và t i Vi t Nam, nó c ng đang đ c khuy n khích tri n khai Ch th s 58-CT/TW đ c phê duy t vào ngày 17/10/2000 b i ông Ph m Th Duy t, th ng
tr c B Chính tr Ban Ch p hành Trung ng ng C ng s n Vi t Nam, v vi c “ y
m nh ng d ng và phát tri n công ngh thông tin ph c v s nghi p công nghi p hoá,
hi n đ i hoá” đư ch ra đ nh h ng phát tri n công ngh thông tin c a đ t n c Theo
ch th này, c n ph i “ y m nh ng d ng công ngh thông tin trong công tác giáo
d c và đào t o các c p h c, b c h c, ngành h c Phát tri n các hình th c đào t o t
xa ph c v cho nhu c u h c t p c a toàn xã h i c bi t t p trung phát tri n m ng máy tính ph c v cho giáo d c và đào t o, k t n i Internet t i t t c các c s giáo
d c và đào t o”, trong đó có các d ch v công c ng nh giáo d c, đào t o t xa, ch a
b nh t xa, th vi n đi n t , [3]
S phát tri n c a Internet d n đ n s n r c a các website và ng d ng web Chúng ngày càng tr nên quen thu c đ i v i nhi u ng i tính đ n gi n và s n ti n (không ph thu c vào h đi u hành và ph n c ng máy tính, ch c n truy xu t thông qua trình duy t web) Do đó, vi c phát tri n m t ng d ng trên n n web c ng s thu n
l i h n khi không đòi h i ng i dùng ph i cài đ t trên máy tính c c b M i yêu c u
c a h th ng ph thu c vào kh n ng đáp ng c a web server
xây d ng m t ng d ng web, không th không nh c t i PHP ây là ngôn
ng mư ngu n m hoàn toàn mi n phí Bên c nh đó c ng ph i k đ n MySQL, h
qu n tr c s d li u c ng mi n phí Tuy nhiên, vi c l p trình web b ng PHP thu n có đôi chút khó kh n, ch ng h n nh mư PHP và mư HTML n m l n l n v i nhau, t n nhi u công s c đ thi t k theo mô hình MVC và khi c n plug-in ph i t tìm ki m và thêm vào Nh ng khó kh n này khi n cho mư ngu n trang web không đ c “s ch”,
Trang 13khó b o trì và qu n lý Zend Framework giúp gi i quy t v n đ này Zend là m t th
vi n l p trình d a trên ngôn ng PHP, đ c thi t k theo h ng đ i t ng và h tr xây d ng ng d ng theo mô hình MVC Vi c l p trình đ c chia thành t ng module,
m i module đ m nh n m t ch c n ng riêng bi t ng th i Zend c ng h tr nhi u
th vi n do c ng đ ng xây d ng s n, rút ng n th i gian vi t các hàm x lý thông d ng
Nh ng lý do trên cho th y vi c ng d ng công ngh thông tin vào giáo d c và
h c t p là phù h p v i ch tr ng c a nhà n c và đáp ng nhu c u trao đ i và h c
h i c a nhi u ng i, đ c bi t là gi i sinh viên, h c sinh Do đó, đ tài “Xây d ng ng
d ng H c t p tr c tuy n s d ng Zend Framwork 2” đ c ch n làm đ tài cho khóa
lu n t t nghi p, v i mong mu n cung c p thêm m t hình th c h c t p m i dành cho
h c sinh, sinh viên và nh ng ng i có nhu c u h c t p qua m ng, theo tinh th n k t
n i và s chia ng d ng mang tên EdusOne, đ c vi t b ng mư ngu n m PHP và s
d ng th vi n Zend 2
1.2 M c tiêu
H c hành có t m quan tr ng r t l n đ i v i m i con ng i, k c trong công vi c
l n trong cu c s ng S phát tri n c a Internet đư giúp cho con ng i có c h i ti p
c n ki n th c nhi u h n, k t n i h v i nhau trong m t không gian o đ trao đ i thông tin v i nhau Ngày nay, vi c s d ng m t ng d ng đư không còn khó kh n, b i
t t c đ u đ c truy c p thông qua trình duy t web Do đó, ng d ng web s d dàng
ti p c n t i nhi u đ i t ng ng i dùng, đ c bi t là h c sinh, sinh viên
Vì v y, m c tiêu c a đ tài là xây d ng m t ng d ng web đáp ng nhu c u h c
t p và trao đ i c a sinh viên, h c sinh, phát huy nh ng l i ích mà Internet mang l i
1.3 i t ng h ng t i vƠ ph m vi tìm hi u
i t ng chính mà đ tài này h ng t i chính là các h c sinh, sinh viên c ng
nh nhi u đ i t ng khác có nhu c u h c t p qua m ng Internet, bên c nh đó là các
gi ng viên, nh ng ng i có đam mê gi ng d y, mong mu n truy n t i ki n th c và s n sàng gi i đáp th c m c cho h c viên
Ph m vi tìm hi u c a đ tài g m có:
H c t p tr c tuy n (e-learning)
Công ngh Web 2.0 và ng d ng n n web (web-based application)
Công ngh mư ngu n m , bao g m PHP, Zend Framework 2 và h qu n
tr c s d li u MySQL
Trang 14o Công ngh mư ngu n m
Ch ng 3: Hi n th c ng d ng – Mô t , phân tích thi t k h th ng và xây
d ng ng d ng EdusOne
Ch ng 4: T ng k t – a ra k t lu n và h ng phát tri n c a đ tài
Trang 15CH NG 2: C S LÝ THUY T
2.1 H c t p tr c tuy n
Trong xư h i toàn c u hóa nh hi n nay, h c t p là m t vi c vô cùng quan tr ng, không ch đ đ ng v ng trong th tr ng vi c làm đ y c nh tranh mà còn giúp nâng cao ki n th c v n hóa và xư h i c a m i con ng i T n d ng nh ng ti n b c a công ngh Internet, e-learning (hay còn g i là h c t p tr c tuy n) ra đ i v i m c tiêu truy n
t i ki n th c và k n ng đ n nh ng ng i h c t i b t kì th i đi m nào, b t kì n i nào trên th gi i
2.1.1 Gi i thi u
H c t p tr c tuy n là vi c ng d ng công ngh thông tin vào l nh v c giáo d c,
có s t ng tác gi a ng i d y và ng i h c Ki n th c đ c cung c p t i ng i h c
đa d ng v hình th c, t v n b n, âm thanh, phim nh, hình nh mô ph ng, cho đ n
di n đàn, phòng trò chuy n, … S k t n i thông qua Internet, do đó không b gi i h n
b i th i gian và kho ng cách đ a lý ng th i nó c ng gi m chi phí và t ng kh n ng
ti p nh n ki n th c cho ng i h c D đoán e-learning s tr thành ph ng pháp h c
t p ph bi n trong th k này, khi công ngh phát tri n và kh n ng k t n i con ng i ngày càng m r ng
2.1.2 Quá trình phát tri n
2.1.2.1 Tr c n m 1983
Th i k này, máy tính ch a đ c s d ng r ng rưi, ph ng pháp giáo d c “L y
gi ng viên làm trung tâm” là ph ng pháp ph bi n nh t trong các tr ng h c H c viên ch có th trao đ i v i gi ng viên và b n h c
2.1.2.2 Giai đo n 1984-1993
S ra đ i c a h đi u hành Windows 3.1, máy tính Macintosh, ph n m m trình
di n Powerpoint, cùng các công c đa ph ng ti n khác đư cho phép t o ra nh ng bài
gi ng có tích h p hình nh và âm thanh d a trên công ngh CBT (Computer-based Training – ào t o d a trên Máy tính) Bài h c đ c l u tr trên đ a CD-ROM ho c
đ a m m, ng i h c mua v và t h c Tuy nhiên s h ng d n c a gi ng viên là r t
h n ch
2.1.2.3 Giai đo n 1994-1999
ây là th i k phát tri n c a th h Web 1.0 V i nh ng khái ni m m i nh mail, web, trình duy t, media player, k thu t truy n audio/video t c đ th p, k thu t
Trang 16e-truy n thông đa ph ng ti n đư có b c phát tri n m i Nh nh ng công ngh m i này, hình th c đào t o qua m ng đư đ c tri n khai trên di n r ng
2.1.2.4 Giai đo n 2000 đ n nay
ng d ng m ng IP, công ngh truy c p m ng t c đ cao, các công ngh thi t k
web tiên ti n đư t o nên m t cu c cách m ng trong giáo d c Nh có web, giáo viên có
th k t h p h ng d n tr c tuy n (hình nh, âm thanh, công c trình di n) t i m i
ng i h c, nâng cao h n ch t l ng d ch v đào t o Công ngh web càng cho phép đa
d ng hoá môi tr ng h c t p và tài nguyên s d ng T t c nh ng đi u này t o ra m t
cu c cách m ng trong đào t o v i giá thành r , ch t l ng cao và hi u qu
Hi n nay, m t trong nh ng h th ng e-learning vi t b ng mư ngu n m đ c s
d ng ph bi n nh t là Moodle [xem ph l c B]
2.1.3 c đi m và phợn ệo i
2.1.3.1 c đi m
E-learning có nh ng đ c đi m sau:
Ki n th c c p nh t: So v i cách h c truy n th ng thì n i dung thông qua hình th c h c t p tr c tuy n mang tính th i đ i, th c t , không ph i là
Mang tính cá nhân: Vi c l a ch n l p h c, ki n th c, k n ng trong h
th ng liên quan tr c ti p t i ki n th c n n t ng, nhi m v và công vi c
Ti t ki m th i gian và không b gi i h n v đ a lý: E-learning cho phép
h c viên có th h c v i t c đ hi u qu nhanh nh t có th Ng i h c có
Trang 17th h c b t k đâu, b t c lúc nào mi n có k t n i Internet và thi t b công ngh
2.1.3.2 Phân lo i
V cách th c truy n đ t ki n th c, có th chia thành 2 lo i:
ng b (synchronous): H c t p đ ng b liên quan đ n vi c trao đ i ý
ki n và thông tin v i m t ho c nhi u ng i tham gia trong cùng kho ng
th i gian Hình th c trao đ i có th là thông qua Skype, ho c phòng h c
o, n i t t c m i ng i đang tr c tuy n cùng trò chuy n m t lúc
Không đ ng b (asynchronous): H c t p không đ ng b có th s d ng email, blog, wiki, di n đàn, sách giáo khoa đi n t (ebook), tài li u siêu
v n b n, âm thanh ho c m ng xư h i nh m giúp cho ng i h c xem l i nhi u l n m t n i dung, ki n th c nào đó ho c t mình đào sâu nghiên
c u thêm
V hình th c đào, có th chia thành 5 lo i:
ào t o d a trên công ngh (TBT – Technology-based Training): là hình
th c đào t o có s áp d ng c a công ngh , đ c bi t là công ngh thông tin
ào t o d a trên máy tính (CBT – Computer-Based Training): thông
th ng là s d ng các ph n m m đào t o trên đ a CD-ROM ho c cài trên máy tính c c b
ào t o d a trên web (WBT – Web-based Training): là hình th c đào t o
s d ng công ngh web N i dung h c, các thông tin qu n lý khoá h c, thông tin v ng i h c đ c l u tr trên máy ch và ng i dùng có th d dàng truy c p thông qua trình duy t Web
ào t o tr c tuy n (Online Learning/Training): là hình th c đào t o có s
d ng k t n i m ng đ h c t p, nh l y tài li u, giao ti p gi a ng i d y và
ng i h c
ào t o t xa (Distance Learning): Thu t ng này nói đ n hình th c đào
t o trong đó ng i d y và ng i h c không cùng m t ch , th m chí không cùng m t th i đi m Ví d nh vi c đào t o s d ng công ngh k t
n i video, h i th o t xa, …
Trang 18c n ph i “ y m nh ng d ng công ngh thông tin trong công tác giáo d c và đào t o các c p h c, b c h c, ngành h c Phát tri n các hình th c đào t o t xa ph c v cho
nhu c u h c t p c a toàn xã h i c bi t t p trung phát tri n m ng máy tính ph c v cho giáo d c và đào t o, k t n i Internet t i t t c các c s giáo d c và đào t o”,
trong đó có các d ch v công c ng nh giáo d c, đào t o t xa, ch a b nh t xa, th
vi n đi n t , [3]
M t trong nh ng m c tiêu ng d ng công ngh thông tin đ c nhi u ng i
h ng t i là e-learning Nhi u h i ngh , h i th o v công ngh thông tin và giáo d c
đ u có đ c p nhi u đ n v n đ e-learning và kh n ng áp d ng vào môi tr ng đào
t o Vi t Nam nh “H i th o nâng cao ch t l ng đào t o i h c Qu c gia Hà N i”
n m 2000, “H i ngh giáo d c đ i h c” n m 2001, “H i th o khoa h c qu c gia l n I
v nghiên c u phát tri n và ng d ng công ngh thông tin và truy n thông ICT/rda” tháng 2 n m 2003, “H i th o khoa h c qu c gia l n II v nghiên c u phát tri n và ng
d ng công ngh thông tin và truy n thông ICT/rda” tháng 9 n m 2004 n đ u tháng
3 n m 2005, “Nghiên c u và tri n khai e-learning” do Vi n Công ngh Thông tin ( i
h c Qu c gia Hà N i) và Khoa Công ngh Thông tin ( i h c Bách khoa Hà N i)
ph i h p t ch c là h i th o khoa h c chính th c đ u tiên v e-learning đ c t ch c
t i Vi t Nam
2.1.4.2 Tình hình phát tri n c a e-learning Vi t Nam
Vào kho ng n m 2002 tr v tr c, các tài li u v e-learning Vi t Nam không nhi u Trong hai n m 2003 và 2004, vi c nghiên c u ph ng pháp h c t p m i m này trong n c m i đ c nhi u đ n v quan tâm h n Các tr ng đ i h c Vi t Nam b t
đ u nghiên c u và tri n khai e-learning, thu đ c m t s k t qu kh quan, có th k
đ n i h c Công ngh – i h c Qu c gia Hà N i, Vi n Công ngh Thông tin – i
Trang 19h c Qu c gia Hà N i, i h c Bách Khoa Hà N i, i h c Qu c gia TP HCM, H c
vi n B u chính Vi n thông, N i b t nh t là đ án xây d ng m ng giáo d c EduNet vào n m 2008 v i kinh phí r t l n, m c đích là cung c p tài li u, khóa h c tr c tuy n
mi n phí và k t n i các tr ng đ i h c v i nhau ng th i, m t s công ty ph n m m
Vi t Nam đư tung ra th tr ng các s n ph m h tr đào t o
Nh ng vi c làm này đư b c đ u thúc đ y s phát tri n c a e-learning Vi t Nam Tuy nhiên, hình th c này ch m i giai đo n s khai và còn nhi u vi c ph i làm
đ hòa nh p vào xu h ng chung c a th gi i
2.1.5 u và nh c đi m
2.1.5.1 u đi m
E-learning mang l i nhi u l i ích u tiên, nó giúp gi m thi u chi phí Vi c đ a
l p h c lên m ng s giúp c t gi m chi phí v phòng c và thi t b h c t p
Th hai, ng i h c có th t do l a ch n khóa h c phù h p nh t đ i v i trình đ ,
s thích, m c tiêu c a b n thân, ho c theo nhu c u công vi c; linh đ ng thu x p th i gian h c t p; tho i mái khi “lên l p” do không b gò bó b i th i gian và không gian
Th ba, giáo trình và tài li u c a các khóa h c tr c tuy n là có tính đ ng b cao
vì các h u h t tài li u đ c so n th o và đ a vào ch ng trình d y đ c xem xét và có
th thay đ i m t cách d dàng
Th t , v i ph ng châm l y ng i h c là trung tâm, ng i h c c n bi t cách
đi u ch nh th i gian và hành vi c a mình đ đ t đ c hi u qu h c t p cao nh t H
c ng có th t ng tác v i nhi u ng i cùng lúc đ th o lu n v bài h c
Và cu i cùng, vì e-learning d a ch y n d a trên công ngh Internet, truy c p
b ng trình duy t web, nên nó r t d ti p c n v i nhi u đ i t ng ng i dùng
2.1.5.2 Nh c đi m
Bên c nh nh ng u đi m, e-learning c ng còn m t s nh c đi m u tiên là c
h i giao ti p s gi m Xư h i o là m t ph n nguyên nhân khi n gi i tr ng i giao ti p
và thi u k n ng ng x Th c t , có r t nhi u ng i t ra ít nói ngoài đ i th c nh ng
l i r t d dàng trò chuy n qua m ng, t đó khi n h đánh m t nhi u c h i trong công
vi c c ng nh trong cu c s ng
K đ n, hình th c này h n ch v i nh ng ng i l n tu i Công ngh thông tin phát tri n, nh ng không ph i ai c ng theo k p s phát tri n này Hi n t i, v n có m t
Trang 20b ph n không nh nh ng ng i thu c th h tr c g p khó kh n khi ti p xúc v i máy tính, t đó khi n h e ng i đ i v i ph ng pháp h c t p tr c tuy n
H n n a, m t s giáo viên t ra không thích thú vì gi m kh n ng truy n đ t ki n
th c t giáo viên đ n h c viên: ôi khi có nh ng bài thuy t gi ng, bài h c mà ng i
d y c n có m t “không gian s ng” (l p h c, gi ng đ ng, h i tr ng, …) và giao ti p
v i ng i nghe thì h m i có h ng thú truy n đ t h t ki n th c c a mình Vi c h c t p qua m ng, d u sau ng i d y c ng ch là ng i tr c máy tính đ trò chuy n v i nh ng
ng i mà th m chí h còn không bi t m t
Ngoài ra, ng i d y không th đánh giá h t trình đ , kh n ng c a h c viên, mà
ch có th đánh giá kh n ng ti p thu ki n th c thông qua nh ng bài ki m tra, ho c nhi u nh t là qua nh ng gì trao đ i trên m ng
2.1.6 K t lu n
Ph ng pháp h c t p tr c tuy n m ra kh n ng t ng tác gi a ng i h c và
ng i d y, giúp ng i h c linh đ ng h n trong vi c ti p thu ki n th c Hình th c này
đư và đang phát tri n nhi u n i trên th gi i c ng nh Vi t Nam T i Vi t Nam, trong hi n t i và trong t ng lai g n, hy v ng v i s c i thi n v giao di n, ch c n ng,
kh n ng t ng tác, c ng nh t c đ đ ng truy n đ c nâng cao, e-learning s ngày càng l n m nh và t o đi u ki n t t nh t đ ph c v cho quá trình d y – h c
2.2 T ng quan v công ngh web 2.0
Vào tháng 10 n m 2004, t i h i th o Web 2.0 l n th nh t do O’Reilly Media và MediaLive International t ch c, công ngh Web 2.0 đ c gi i thi u S ki n này
đ c đánh giá là b c ngo t thay đ i cách th c s d ng Internet: ng i dùng s không
ch “duy t và xem” trang web nh tr c kia mà còn tham gia đóng góp thông tin
2.2.1 c đi m
T i bu i h i th o, Dale Dougherty, phó ch t ch c a O’Reilly Media, đư không
đ a ra đ nh ngh a v web 2.0 mà ch đ a ra các ví d so sánh phân bi t Web 1.0 và Web 2.0 Sau đó, Tim Oreilly, ch t ch kiêm giám đ c đi u hành O’Reilly Media, đư đúc k t l i 7 đ c tính c a công ngh m i này [15]:
Trang 21 Phát tri n ng d ng d dàng và nhanh chóng
Ph n m m có th ch y trên nhi u thi t b
Giao di n ng d ng phong phú
2.2.1.1 Web đóng vai trò n n t ng
c đi m đ u tiên d nh n th y đ i v i b t k ai đư t ng s d ng web (website
ho c ng d ng web) chính là không yêu c u cài đ t trên máy tính c c b Vi c hi n th video, hình nh và âm thanh là nh ng ví d : ng i dùng không c n cài đ t ph n m m nào trên máy tính c a mình, t t c đ u do trình duy t web h tr
2.2.1.2 T p h p trí tu c ng đ ng
N u nh th i k Web 1.0, ng i dùng ch có th “duy t và xem” thông tin thì
t i Web 2.0, h đư đ c “c p quy n” đóng góp thông tin Wikipedia là m t ví d đi n hình v đi u này: thông tin trên trang đ u do c ng đ ng ng i dùng đóng góp, đư đ c các chuyên gia cùa Wikipedia ki m ch ng, và h n th n a, ng i xem đ c phép ph n
h i n u nh thông tin đó không chính xác M t ví d khác là blog, hay còn g i là nh t
ký cá nhân Blog cho phép ng i dùng t do th hi n suy ngh và ý ki n cá nhân, sau
đó đ c c ng đ ng ng i xem bình lu n và đánh giá
2.2.1.3 D li u có vai trò then ch t
M i ng d ng Internet quan tr ng hi n nay đ u s d ng ngu n c s d li u chuyên bi t: web tìm ki m d li u c a Google và Yahoo!, thông tin s n ph m c a Amazon, c s d li u v s n ph m và ng i bán c a eBay, d li u b n đ c a MapQuest, d li u bài hát c a Napster, Bên c nh đó, m t s website còn cung c p
d li u đ các website khác s d ng, g i là d ch v web (web service)
2.2.1.4 Ph n m m đ c cung c p d ng d ch v web và đ c c p nh t liên t c
Do vi c c p nh t đ c ti n hành server nên v i nh ng ph n m m đ c cung
c p nh m t d ch v thông qua Internet, ng d ng trên máy tính c a ng i dùng s
đ c c p nh t ngay khi có phiên b n m i nh t
2.2.1.5 Phát tri n ng d ng d dàng và nhanh chóng
Chính xác Tim Oreily đư dùng c m t “lightweight models and cost-effective scalability” (mô hình g n nh và kh n ng m r ng ít t n kém) c đi m này đ c p
đ n nh ng d ch v , ph n m m không đóng gói và d phát tri n v sau D li u tách
bi t v i ph n hi n th, và chính nh m i liên k t “l ng l o” này đư giúp cho các ng
d ng d dàng thay đ i và tùy bi n hi n th trên nhi u thi t b khác nhau Bên c nh đó,
Trang 22xu h ng s d ng ngôn ng mư ngu n m (nh PHP, Python, Ruby on Rails, ) v i công c phát tri n nhanh ng d ng đư làm gi m chi phí thi t k và xây d ng ng d ng.
2.2.1.6 Ph n m m có th ch y trên nhi u thi t b
Ngày nay, khi các thi t b di đ ng tr nên ph bi n thì Web 2.0 là m t l i th khi
nó không b gi i h n b i n n t ng M t thi t b s d ng h đi u hành Android, IOS hay Windows Phone đ u có th truy c p vào trang web t trình duy t web Theo Tim Oreilly, b t k ng d ng web nào c ng có th đ c xem nh ph n m m ch y trên hai máy tính k t n i v i nhau: m t l u tr web server và m t l u tr trình duy t client
2.2.1.7 Giao di n ng d ng phong phú
S xu t hi n c a DHTML và JavaScript, sau đó là khái ni m RIA (Rich Internet Application) do Macromedia đ xu t cùng v i Flash dùng cho di n ho t trên web đư góp ph n đa d ng hóa cách hi n th thông tin trên trình duy t Ngày nay, v i HTML5
và CSS 3.0, kh n ng di n ho t đư t ng lên đáng k Cùng nhau, chúng đư thay đ i
di n m o c a trang web, t o đi m nh n và thu hút ng i đ c
2.2.2 S khác bi t gi a Web 1.0 và Web 2.0
V phía ng i s d ng, Web 2.0 trao nhi u quy n cho h h n khi h có th đ c
và ghi (read and write) Do đó, Web 2.0 có n i dung đ ng và t ng tác hai chi u,
ng c l i Web 1.0 có n i dung t nh và t ng tác m t chi u
Hình 2.1- S khác bi t gi a Web 1.0 và Web 2.0 v phía ng i dùng
(ngu n: http://www.technomagzine.com)
Trang 23V phía ng i lâp trình, Web 2.0 đư cung c p c ch tách bi t gi a mư l p tr nh
và mư giao di n, t đó t o thu n l i trong vi c qu n lý mư ngu n và b o trì ng d ng
M t trong nh ng mô hình ki n trúc ra đ i t Web 2.0 là MVC, cho phép ng i l p trình tách ng d ng thành 3 ph n khác nhau Model, View và Controller, m i thành
ph n có m t nhi m v riêng bi t và đ c l p v i nhau
Hình 2.2- S khác bi t gi a Web 1.0 và Web 2.0 v phía ng i l p trình
(ngu n: http://www.technomagzine.com)
B ng d i đây ch ra s khác bi t gi a hai công ngh web:
M c đ t p trung T p trung m t n i Phân tán nhi u n i
M c đ t ng tác Dành cho cá nhân Dành cho cá nhân, t p th , xư h i
M c đ n i dung Cung c p n i dung Cung c p các d ch v và h giao
Trang 242.2.3 M t s công ngh dùng đ xợy d ng ng d ng web 2.0
2.2.3.1 XML
XML (Extensible Markup Language – ngôn ng đánh d u m r ng) là m t ngôn
ng đánh d u đ c t o ra c u trúc d li u, l u tr và v n chuy n b ng cách đ nh ngh a
m t t p h p các quy t c cho các tài li u mư hóa trong m t đ nh d ng mà c con ng i
và máy có th đ c đ c Các quy t c đó đ c đ nh ngh a trong XML 1.0, theo chu n
c a W3C [xem ph l c C]
2.2.3.2 AJAX
Ajax (Asynchronous JavaScript và XML) là m t nhóm các k thu t phát tri n web liên quan đ n nhau đ c s d ng trên phía client đ t o ra các ng d ng web không đ ng b V i Ajax, các ng d ng web có th g i d li u, và l y d li u t m t máy ch không đ ng b mà không can thi p v i màn hình hi n th và hành vi c a trang hi n t i D li u có th đ c l y ra b ng cách s d ng đ i t ng XMLHttpRequest M c dù trong tên g i có ch a XML, nh ng th c t JSON đ c s
d ng ph bi n h n [xem ph l c C]
2.2.4 K t lu n
Web 2.0 t o đi u ki n thu n l i cho s tham gia chia s thông tin, kh n ng
t ng tác gi a ng i dùng và h th ng, trái ng c v i th h 1.0 khi ng i dùng ch xem thông tin m t cách th đ ng Bên c nh đó, web 2.0 giúp cho ng i l p trình thi t
k h th ng m t cách ch t ch , qu n lý mư l nh rõ ràng, thu n l i khi nâng c p và b o trì Nói tóm l i, Web 2.0 đư thay đ i cách th c s d ng Internet theo h ng ch đ ng
2.3 ng d ng n n web
S ra đ i c a công ngh Web 2.0 đư mang đ n m t khái ni m m i trong vi c xây
d ng ng d ng Nh ng ng d ng gi đây không c n ph i cài đ t trên máy tính c c b ,
mà đ c đ a lên server và ng i dùng truy c p thông qua trình duy t web Chúng
đ c g i là ng d ng n n web (web-based application)
2.3.1 Ầhái ni m
ng d ng n n web là m t thu t ng dùng đ ch nh ng nh ng ng d ng hay
ph n m m có th truy c p thông qua trình duy t trên h th ng m ng nh Internet ây chính là nh ng ng d ng ch y trên máy tính phía server, k t n i v i máy tính ng i dùng thông qua h th ng m ng và đ c mư hóa b ng m t ngôn ng nào đó mà trình duy t web có th hi u đ c nh HTML, JavaScript, (g i là ngôn ng phía client)
Trang 252.3.2 L ch s hình thành
Tr c đây, trong mô hình client-server, m i ng d ng g m có hai thành ph n riêng bi t: m t cài đ t phía sever và m t cài đ t phía client Ch ng trình phía client cung c p giao di n ng i dùng và ph i đ c cài đ t riêng l trên t ng máy tính Khi nâng c p ch ng trình, ngoài vi c thay đ i server c ng c n ph i c p nh t l i trên m i client
Mô hình này có u đi m là kh n ng t p trung hóa d li u, b o m t h th ng Tuy nhiên, tr c s t ng tr ng nhanh chóng v quy mô c a các doanh nghi p, yêu
c u v l i nhu n đư khi n công ngh client-server truy n th ng b c l nh c đi m:
Khó duy trì, nâng c p h th ng và h tr ng i dùng: M i khi ch ng trình có c p nh t, c n ph i thay đ i toàn b nh ng ng d ng trên m i máy tính phía client
H n ch v m t k t n i: Các h th ng client-server có thi t k khác nhau,
d a trên nh ng đ c t k t n i (giao th c) không gi ng nhau
Tính di đ ng kém: Công ngh client-server đòi h i ng i dùng g n ch t
v i máy tính c a mình đ s d ng ng d ng cài đ t trên đó Th c t ,
đi u này không kh thi vì không ph i lúc nào ng i dùng đ u làm vi c trên máy tính c a mình
Không t ng thích v ph n c ng và h đi u hành: M t h th ng khi tri n khai trên ph m vi r ng s g p ph i khó kh n b i nh ng khác bi t v h
t ng công ngh
S ra đ i c a công ngh Web 2.0 đư thúc đ y b c phát tri n m i cho ng d ng Công ngh Web chính là m t công ngh client-server, trong đó trình duy t web đóng vai trò là client, còn h th ng cung c p trang web đó đóng vai trò là server V i Web 2.0, khi ng i dùng có th tác đ ng vào d li u thì vi c s d ng ng d ng thông qua trình duy t không khác gì so v i trên máy tính cá nhân
Cách th c ho t đ ng c a nh ng ng d ng n n web r t đ n gi n: Trình duy t web g i các truy v n cho server theo giao th c HTTP; server nh n l nh, th c thi yêu
c u và g i tr k t qu v trình duy t và hi n th lên màn hình c a ng i dùng Ngôn
ng k ch b n phía ng i dùng (client-script) d ng ngôn ng chu n nh JavaScript,
và nh ng ngôn ng khác dành cho hi n th giao di n nh CSS, ActionScript Ngôn
ng k ch b n phía server (server-script) có th là PHP, ASP, JSP, …
Trang 26Có th th y, ng d ng n n web có nhi u thu n l i h n, đ c bi t khi tri n khai cho doanh nghi p.
D ti p c n v i ng i dùng: Ng i dùng đư quá quen thu c v i cách s
d ng trình duy t, th m chí khi cài m i và nâng c p m t trình duy t c ng không ph i quá khó kh n
Chu n hóa giao th c và b o m t truy n nh n d li u: Giao ti p gi a trình duy t phía client và server đ u tuân theo giao th c http, là m t giao th c
đ c đa s các công ty chuyên v an ninh m ng th a nh n Ngày nay, tính b o m t càng đ c nâng cao v i giao th c HTTPs ây là m t s
k t h p gi a giao th c HTTP và giao th c b o m t SSL hay TLS cho phép trao đ i thông tin m t cách b o m t trên Internet
Tính di đ ng: Ng i dùng có th s d ng trình duy t đ truy c p vào
m t trang web b t k đâu có k t n i Internet, k c trên máy tính cá nhân hay thi t b di đ ng
Không ph thu c vào ph n c ng ho c h đi u hành: Trình duy t web có
m t trên t t c các máy tính, th c thi câu l nh đ c l p d a trên ngôn ng HTML và JavaScript, m i thao tác x lý đ u đ c th c thi trên server
2.3.4 Mô hình MVC
d qu n lý các thành ph n c a h th ng, c ng nh không b nh h ng b i
nh ng thay đ i, vi c thi t k ng d ng nên đ c chia thành t ng nhóm có cùng ch c
n ng v i nhau và phân trách nhi m cho t ng nhóm đ công vi c không b ch ng chéo
và nh h ng l n nhau
MVC (Model – View – Controller) là m t ki n trúc ph n m m hay mô hình thi t
k đ c s d ng trong k thu t ph n m m Nó giúp cho các nhà phát tri n ng d ng web tách ng d ng c a h ra 3 thành ph n khác nhau, g m Model, View và Controller
M i thành ph n có m t nhi m v riêng bi t và đ c l p v i các thành ph n khác
Trang 27Khi vi t ng d ng, ng i l p trình th ng có xu h ng đ a t t c m i th lên
m t trang, t các dòng l nh PHP, HTML, … cho đ n nh ng x lý k t n i Thao tác này không h giúp ng i l p trình làm công vi c t t h n, mà còn khi n cho vi c l p trình c a h càng thêm r c r i Mô hình MVC h tr cho vi c qu n lý các mư l nh c a
c u t url và bi u m u đ thao tác tr c ti p v i thành ph n Model
Hình 2.3- Mô hình MVC (ngu n: www.wikipedia.com)
Lu ng s ki n đ c x lý trong MVC có th đ c mô t đ n gi n b ng các b c sau:
Ng i dùng t ng tác v i View, b ng cách click vào nút (button), ng i dùng g i yêu c u đi
Controller nh n và đi u h ng chúng đ n đúng ph ng th c x lý t ng Model
Model nh n thông tin và th c thi các yêu c u
Trang 28Khi t ng Model hoàn t t vi c x lý, t ng View s nh n k t qu t Model và hi n
th l i cho ng i dùng
2.3.5 K t lu n
Công ngh Web 2.0 cho phép đóng gói, x lý, l u tr và truy n t i d li u t server t i client Nói cách khác, nó cho phép ng i dùng t ng tác vào h th ng Chính đ c đi m này mà ng d ng web đ c phát tri n r ng rưi D i góc đ k thu t,
ng d ng web đ c xem là m t mô hình ng d ng client-server c i ti n D i góc đ
ch c n ng, ng d ng Web là các ch ng trình máy tính cho phép ng i dùng đ ng
nh p, truy v n d li u qua m ng Internet trên trình duy t web ng d ng web không
h là m t khái ni m m i l , nó ch thay đ i môi tr ng cài đ t t máy tính c c b lên
Ph n m m ngu n m là ph n m m v i mư ngu n đ c công b và s d ng m t
gi y phép ngu n m Gi y phép này cho phép b t c ai c ng có th nghiên c u, thay
đ i và c i ti n ph n m m, và phân ph i nó d ng ch a thay đ i ho c đư thay đ i [9]
2.4.1.1 u và nh c đi m
u đi m:
T do sao chép, chia s : do ít b ràng bu c v quy n s h u, b t k ai
c ng có th đ c đ c mư ngu n và thay đ i mư ngu n c a ng d ng
Nhi u b n phân ph i, không b ràng bu c vào nhà cung c p: m i ng
d ng đ u đa d ng v phiên b n do đ c nhi u ng i đóng góp, ch nh s a
B o m t t t: tr i qua nhi u phiên b n, mư ngu n m d n đ c hoàn thi n
v kh n ng b o m t, do đó ng i l p trình có th yên tâm s d ng các ngôn ng mư ngu n m đ vi t ng d ng
D dàng thay đ i, phát tri n theo m c đích: c u trúc t ch c th m c trong
d án (project) đ n gi n, thao tác sao chép, di chuy n các đo n mư c ng nhanh chóng nên r t ti n l i cho ng i l p trình
Trang 29 H tr c ng đ ng cao: m i ng i đ u có th đ c đ c mư ngu n và cùng tham gia phát tri n, c p nh t ho c vá l i cho m t ng d ng
Quá nhi u phiên b n: m i phiên b n có tính n ng riêng tùy vào m c đích
c a ng i phát tri n cu i cùng, do đó gây khó kh n cho ng i l p trình khi mu n xây d ng m t ng d ng
Nh p nh ng v b n quy n: do ng d ng có th đ c xây d ng t nhi u
h p v i web và có th d dàng nhúng vào trang HTML Do đ c t i u hóa cho các
ng d ng web, t c đ nhanh, nh g n, cú pháp t a C và Java, d h c và th i gian xây
d ng s n ph m t ng đ i ng n h n so v i các ngôn ng khác nên PHP đư nhanh chóng tr thành m t ngôn ng l p trình web ph bi n nh t th gi i
Ti n thân c a ngôn ng này xu t phát t m t s n ph m có tên là PHP/FI (PHP/FI
do Rasmus Lerdorf t o ra n m 1995, s d ng các mư k ch b n Perl) Sau này, ông đư
vi t ra m t b th c thi b ng C l n h n đ có th truy v n các c s d li u và giúp
ng i s d ng phát tri n các ng d ng web đ n gi n [1]
Hi n t i, PHP đ c s d ng ph bi n v i phiên b n 5.0 nh ng phiên b n 6.0 đang phát tri n v i hy v ng kh c ph c nh ng khi m khuy t c a các phiên b n tr c đó
2.4.2.2 c đi m
PHP ch phân tích các đo n mư n m trong nh ng d u gi i h n c a nó Các d u
gi i h n th ng dùng bao g m:
<?php và ?>, t ng ng v i d u gi i h n m và đóng
Trang 30 <script language="php"> và </script>
<? hay <?= và th đóng ?>, là cách vi t d u gi i h n d ng th ng n
PHP có v g n gi ng v i JavaScript và VBScript, nh ng tuy đ c g n chung vào
v i HTML, PHP l i hoàn toàn khác v i JavaScript vì nó đ c ch y trên h th ng server i u này có ngh a là ng i dùng ch th y đ c mư HTML mà không th y đ c
mư PHP, c c u làm vi c phía sau đ c gi u kính hoàn toàn
V cú pháp các t khóa và ngôn ng , PHP t ng t h u h t các ngôn ng l p trình b c cao có cú pháp ki u C Các hàm tr v đ u t ng t cú pháp c a các ngôn
ng nh C, C++, Java và Perl Riêng các bi n đ c xác đ nh b ng cách thêm vào tr c
m t d u đô la ($) và không c n xác đ nh tr c ki u d li u
2.4.2.3 u và nh c đi m
u đi m
u đi m đ u là s d ng mư ngu n m (có th ch y trên Apache ho c IIS) u
đi m này khuy n khích các doanh nghi p v a và nh khi h mu n xây d ng m t h
th ng website cho riêng mình v i chi phí th p H n n a, đi kèm theo đó là h qu n tr
c s d li u MySQL cùng nhi u h th ng CMS (Content Management System – H
th ng qu n lý n i dung) mi n phí V i u đi m này, PHP ph bi n h n ASP
Th hai, do cú pháp c a PHP r t gi ng v i C, đ ng th i đ c g n chung vào v i ngôn ng HTML và s d ng HTML đ đ nh d ng nên đ i v i ng i l p trình, PHP r t
d h c n u đư làm quen v i HTML và m t s ngôn ng l p trình C khác
Và cu i cùng, PHP có th ho t đ ng trên Linux, trên IIS c a Microsoft Windows,
m r ng kh n ng th c thi c a nó trên nhi u môi tr ng h đi u hành khác nhau
Nh c đi m
Vì HTML đ c g n chung v i PHP nên trong nhi u tr ng h p, mư ngu n trên trang web không rõ ràng, gây lúng túng cho ng i l p trình khi mu n ch nh s a
Nh c đi m k ti p là PHP ch ch y trên các ng d ng web i u này h n ch
kh n ng m r ng sang nh ng l nh v c khác nh ng d ng c c b trên máy tính ho c
ng d ng trên di đ ng
2.4.3 Zend Framework 2
Framework là m t th vi n các l p đư đ c xây d ng hoàn ch nh, là b khung đ phát tri n ng d ng PHP c ng đ c c ng đ ng xây d ng nên nhi u framework khác nhau PHP frameworks cung c p m t c u trúc c b n đ xây d ng m t ng d ng nh m
Trang 31làm cho ng d ng tr nên trôi ch y h n Nói cách khác, PHP framework giúp ng i
l p trình ti t ki m đ c th i gian, t ng s n đ nh c a ng d ng, gi m thi u s l n
ph i vi t l i mư, đ ng th i cung c p c ch t ng tác chính xác gi a c s d li u, mư
l nh (PHP) và giao di n (HTML) Ý t ng chung đ ng sau cách th c làm vi c c a
nh ng PHP framework chính là mô hình MVC
M t trong nh ng PHP framework đ c s d ng ph bi n là Zend
2.4.3.1 Gi i thi u
Zend là m t framework đu c xây d ng d a trên ngôn ng PHP và mô hình MVC
Nó giúp tách các thành ph n x lý ra m t cách rõ ràng, làm cho mư l nh d dàng qu n
lý, ch nh s a và nâng c p
Zend Framework 2 (ZF2) ra m t vào tháng 9 n m 2012, v i r t nhi u thay đ i so
v i phiên b n đ u tiên ây là m t framework mư ngu n m dùng cho vi c phát tri n các ng d ng web s d ng PHP 5.3, hoàn toàn h ng đ i t ng c ng nh áp d ng h u
h t các đ c đi m m i c a PHP 5.3 nh không gian tên (namespace), k thu t s d ng khóa static (late static binding) và cú pháp lambda
Cung c p m t mô hình MVC m nh m có hi u su t cao
Thành ph n Form h tr HTML5, t o giao di n, ki m tra đi u ki n đ u và
l c d li u…
Trang 322.4.3.3 Ki n trúc MVC trong Zend Framework 2
Trong Zend, nguyên t c thi t k ng d ng c ng tuân theo mô hình MVC chu n Zend\Mvc là m t nhánh th c hi n MVC m i đ c thi t k cho ZF2, t p trung vào hi u
su t và tính linh ho t
Hình 2.4- Ki n trúc MVC trong Zend (ngu n: http://www.itnewsoftechnology.com)
M t s thành ph n tiêu bi u c a l p MVC:
Zend\Mvc\Application (g i t t là “Application”): kh i t o tài nguyên,
đ nh tuy n request, nh n và g i controller phù h p trong các quá trình
đ nh tuy n Sau khi hoàn thành, sau đó xu t sang view, hoàn thành các request, tr v và g i response
Zend\Mvc\Controller: m t t p h p các l p “controller”, m i controller
g m nhi u action Action làm nhi m v đi u khi n ho t đ ng request và response trên m t trang web
Zend\Mvc\Router: ch a các l p liên quan đ n đ nh tuy n m t request Nói cách khác, nó n i các request t i các controller t ng ng c a nó
Zend\Mvc\Service: cung c p m t t p h p các y u t và đ nh ngh a ServiceManager
Zend\Mvc\View: hi n th thông tin lên trang web thông qua các th HTML
2.4.3.4 Module trong Zend
Module là m t nhóm trong đó có ch a các thành ph n c a website ph c v cho
m t ch c n ng hoàn ch nh nào đó Trong ZF2 t t c đ u đ c t i u hóa thành module
Vi c xây d ng ng d ng theo module giúp rút ng n th i gian l p trình c ng nh phân công công vi c cho t ng nhóm phát tri n, c ng nh kh n ng tái s d ng t nh ng d
án khác Module trong Zend có th ch a: mư PHP, th vi n thi t k s n, view script và các tài nguyên dùng chung nh hình nh, CSS, và JavaScript
Trang 33Tr c tiên, ng i l p trình c n t i v b khung c a ZF2 [xem ph l c E], trong
đó m c đ nh có module m u Application Nh ng module khác do ng i l p trình thêm vào nh ng v n ph i đ m b o nguyên t c đ c tên và c u trúc gi ng nh module m u
H th ng module đ c t o thành nh sau:
Module Autoloader: ây là thành ph n đ c bi t giúp cho vi c x lý các namespace, mapping, và l u gi các instance khi c n x lý
Module Manager: Qu n lý module và các c u hình c a module, đi u khi n
vi c n p module khi th c thi ng d ng
ModuleManager Listeners: Các Event listener có th đ c g n v i nhi u
s ki n khác nhau c a module manager Chúng có th làm m i vi c t
vi c gi i quy t và n p các module t i vi c kh i t o nh ng tác v ph c t p
2.4.3.5 nh tuy n trong Zend
nh tuy n (routing) trong Zend hi u c b n là vi c ch đ nh vi c g i m t action trong controller t ng ng cho m t view và hi n th đ ng d n này lên thanh đ a ch URL c a trình duy t web ZF2 có kh n ng ánh x đ a ch URL r t m nh m khi cung
c p ph ng pháp r t linh ho t trong vi c ánh x URLs sang cho controller Ngoài ra, ZF2 còn có kh n ng phân tích URL, chuy n các thông s trong URL thành các tham
s trong ph n g i hàm c a controller
Có nhi u ph ng pháp đ nh tuy n trong ZF2, m t trong s đó là segment u tiên c n ph i ch đ nh hình d ng đ ng d n trong tham s “route”, k đ n là đ nh d ng
ký t đ c phép cho m i segment c a route trong tham s “constraints”, và cu i cùng
là ch ra action m c đ nh c a m i controller trong tham s “defaults”
Trang 34"Driver" c a Zend\Db adapter Nó c ng t o ra m t l p tr u t ng, g i là "Platform"
c a adapter, cho các ngu n khác nhau mà m i nhà cung c p platform c th có th có
đ k t n i t i h qu n tr c s d li u
k t n i t i c s d li u, c n t o m t adapter b ng cách s d ng l p Zend\Db\Adapter\Adapter Thông th ng, m t m ng c u hình ho c m t t p tin xml
ch a các thông tin c u hình c s d li u s đ c dùng đ k t n i v i adapter
$adapter = new \Zend\Db\Adapter\Adapter(array(
'driver' => '<tên driver>',
'database' => '<tên c s d li u>',
Pdo_Mysql: dành cho MySQL thông qua m r ng PDO
Pdo_Sqlite: dành cho SQLite thông qua m r ng PDO
Pdo_Pgsql: PostgreSQL thông qua m r ng PDO
Trang 35ZendDbSql
Zend\Db\Sql là m t l p tr u t ng dùng đ xây d ng các truy v n SQL c b n,
c th thông qua API h ng đ i t ng K t qu cu i cùng c a đ i t ng Zend\Db\Sql
s v a t o ra m t câu l nh (statement) và câu l nh ch a bi n (parameter container) đ i
di n cho truy v n đích, ho c là m t chu i đ y đ có th th c thi tr c ti p trên n n t ng
$select = $sql->select(); // tr v đ i t ng Zend\Db\Sql\Select
$insert = $sql->insert(); // tr v đ i t ng Zend\Db\Sql\Insert
$update = $sql->update(); // tr v đ i t ng Zend\Db\Sql\Update
$delete = $sql->delete(); // tr v đ i t ng Zend\Db\Sql\Delete
B ng 2.4- Truy v n c s d li u s d ng Zend\Db\Sql trong ZF2
ZendDb TableGateway
i t ng TableGateway đ c dùng đ cung c p m t đ i t ng đ i di n cho m t
b ng trong c s d li u, và các ph ng th c c a đ i t ng này ánh x đ n nh ng thao tác t ng t nh trong b ng c a c s d li u Có hai implementation (k th a t
interface) chính hi u qu nh t là: AbstractTableGateway và TableGateway
AbstractTableGateway là m t implementation c s tr u t ng cung c p các ch c n ng nh select(), insert(), update(), delete() th c hi n các công
vi c t ng t nh các đ i t ng SQL, và các ph ng th c selectWith(), insertWith(), updateWith() và deleteWith()…
TableGateway đ n gi n ch c n thêm m t ph ng th c kh i t o h p lý cho l p AbstractTableGateway i t ng TableGateway c th đ c
kh i t o hàm kh i t o Tên b ng và th hi n c a m t adapter c n thi t đ thi t l p m t đ i t ng làm vi c TableGateway Khi m t ph ng th c
đ c th c thi (ch ng h n select()), m t đ i t ng ResultSet s đ c tr v
Trang 36trong ZF2 là s d ng l p Zend/Form ZendForm h tr các hàm d ng s n đ ki m tra
ho c l c d li u đ u vào, giúp cho ng i l p trình thu n l i h n trong vi c ki m tra d
li u tr c khi l u vào c s d li u M t cách tr u t ng, ZendForm chính là c u n i
gi a model và view
Các b c t o m t bi u m u s d ng ZendForm:
Khai báo bi u m u trong action controller
T o m t view script đ hi n th bi u m u này
Thêm nh ng ki m ch ng đ ràng bu c d li u trong ph n form b ng cách
s d ng các Validation mà th vi n Zend cung c p Trong ph n này, có
th xu t l i n u nh d li u nh p vào vi ph m quy t c ki m ch ng
Quay l i controller, ph i xét n u d li u nh p vào là h p l m i th c hi n
nh ng công vi c ti p theo thông qua hàm isValid()
Th ba, tài li u v Zend r t nhi u và đa d ng, giúp cho ng i l p trình d ti p
c n t c b n đ n nâng cao Tuy nhiên, s l ng tài li u chính th ng b i nh ng ng i
có uy tín trong ngành l p trình vi t ra l i không nhi u
Th t , Zend h ng đ n mô hình MVC, v n là m t trong nh ng l a ch n r ng rưi nh t khi phát tri n ng d ng web Các module c a MVC và kh n ng phân tách
gi a ph n d li u và ng d ng chính là nguyên nhân chính đ ng sau s ph bi n c a
nó M t l i th khác là Zend h tr h u h t các c s d li u hi n nay, giúp cho ng i
l p trình không c n ph i b n tâm l a ch n
Nh c đi m
V n đ đ u tiên, tuy Zend là m t th vi n mi n phí nh ng bên c nh đó, các ti n ích c a m t hưng phát tri n th ba l i có tính phí, đôi khi r t đ t Có m t s ti n ích
Trang 37c n thi t trong quá trình phát tri n ng d ng và đ có đ c nó, ng i l p trình c n ph i
t n m t kho n chi phí khá l n
V n đ th hai, do b th vi n khá đ s nên trong đó ch c ch n ch a r t nhi u
l p đ m nh n nh ng công vi c khác nhau i u này gây khó kh n và t n th i gian tìm
hi u cho ng i l p trình ng d ng khi mu n tìm ki m chính xác m t l p mà h quan tâm, m c dù tài li u h ng d n r t đa d ng
V n đ th ba, có m t s thay đ i r t khác bi t hai phiên b n, khi n cho vi c c p
nh t ng d ng tr nên r c r i H u h t m i th đ u thay đ i, t cách thi t l p route, tên
l p, cú pháp, … khi chuy n t phiên b n 1 lên 2 Th m chí nh ng ng i v n đư rành
v Zend phiên b n c c ng c m th y khó kh n khi tìm hi u phiên b n hi n t i
Và cu i cùng, cú pháp c a Zend t ng đ i khó vi t, đ c bi t là v i nh ng ng i
m i ch p ch ng làm quen v i ngôn ng PHP H s c m th y gi a Zend và PHP có
m t s khác bi t r t l n Nh ng ng i này cho bi t, cú pháp c a Zend, theo nh
h ng d n chính th ng, có v r t “hàn lâm”
2.4.3.9 Nh n xỨt
Zend Framework là th vi n l p trình d a trên ngôn ng PHP, đ c thi t k theo
h ng đ i t ng và h tr l p trình theo mô hình MVC Vi c l p trình đ c chia thành
t ng module, tách b ch gi a t ng ph n x lý cho website, nó giúp cho mư l nh c a
2.4.4.2 c đi m
MySQL là t p h p các đ i t ng: b ng, b ng o, … cho phép ng i dùng l u tr
và truy xu t các thông tin đư đ c t ch c và l u tr bên trong [1]
MySQL s d ng Ngôn ng truy v n có c u trúc (SQL) đ l y d li u t c s d
li u Ng i dùng có th s d ng giao di n đ h a (ch ng h n công c phpMyAdmin) hay dùng dòng l nh (command line) đ th c hi n các thao tác trên c s d li u
Trang 38M i b ng trong c s d li u khi t o ra s đ c l u tr b ng ba t p tin v t lý:
li u nhanh và h tr m nh cho các ch c n ng chuyên d ng c a web nh tìm ki m v n
b n Do đó, MySQL r t thích h p cho các ng d ng có truy c p c s d li u trên Internet
Nh c đi m
K t khi Oracle mua l i MySQL t hưng Sun Microsystems vào n m 2010, nó không còn hoàn toàn là m t ph n m m mư ngu n m n a D i s qu n lý c a Oracle, MySQL hi n có phiên b n tr phí, module mư ngu n đóng H n n a, công ty này đư không ch p nh n các b n vá l i ho c cung c p m t h ng phát tri n dành cho công
đ ng M t khác, m t s tên tu i l n nh Red Hat Enterprise Linux, Fedora, Slackware Linux, openSUSE và Wikimedia Foundation đ u đư chuy n sang dùng MariaDB Tuy nhiên, v i phiên b n chu n, MySQL v n hoàn toàn mi n phí
Trang 39CH NG 3: HI N TH C NG D NG
3.1 Gi i thi u ng d ng
H c t p đ i v i m i ng i là m t vi c làm quan tr ng và không bao gi ng i ngh Ngày nay, s phát tri n c a Internet và công ngh di đ ng đư t o thêm đi u ki n
h tr nhu c u chính y u này M t ph ng pháp h c t p m i xu t hi n và ngày càng
đ c nhi u ng i s d ng, nh t là trong gi i tr , đó là h c qua m ng Nh có Internet
và thi t b di đ ng, ng i h c có th linh đ ng ti p thu ki n th c m i lúc, m i n i và
đ c bi t là cùng nhau trao đ i v i nh ng ng i h c khác
T th c t này, EdusOne ra đ i v i mong mu n k t n i m i ng i trong th gi i
c a tri th c ây là m t ng d ng web cho phép ng i dùng tham gia nh ng l p h c trên m ng ng d ng đ c vi t b ng ngôn ng PHP, s d ng Zend Framework 2.0 và
h qu n tr c s d li u MySQL, trong môi tr ng l p trình Zend Studio 10.5
3.1.1 Ý ngh a và ch c n ng c a ng d ng
3.1.1.1 Ý ngh a
EdusOne s d ng trình duy t web đ truy c p ng d ng này cho phép gi ng viên m l p và truy n t i ki n th c đ n ng i h c, còn ng i h c đ ng ký các l p đư
đ c m , đ ng th i trao đ i v i nh ng h c viên cùng l p, làm bài thi đ ki m tra n ng
l c c a mình Ngoài ra, v i nh ng h c viên nh tu i, ng d ng còn cho phép ph huynh theo dõi và giám sát quá trình h c t p c a con cái
o T i lên bài gi ng, c p nh t bài gi ng
o T o đ thi, cho thi, ch m bài
o Thông báo đi m t i ph huynh (đư k t n i v i h c viên t ng ng)
i v i h c viên:
o Tìm l p, đ ng ký tham d l p
o Làm bài thi
Trang 40Hình 3.1- Các module trong ng d ng EdusOne