THÔNG TIN TÀI LIỆU
", DO GIAO DUC vA BAo TAO TRUONG BAI HOC NGOAI NGU - TIN HOC TP.HCM KHOA CONG NGH~ THONG TIN , - ~ - KHOA LUAN TOT NGHIEP • • TIM HIEU NODE.JS vA xA Y DuNG • TRANG WEB DOC NGUON TIN • Giang vien htrOng din: ThS Nguy~n PhtrO'e B,i Sinh vien th'1c hi~n: Binh Kim Quac Khai - MSSV: 09DHII031 Ngo Van Kim Khanh - MSSV: 09DHII025 TP HO cHi MINH - 2013 L01 CAM ON Lai cam on d~u tien, chung toi xin phep dugc gui dSn quy th~y co khoa Cong Ngh~ Thong Tin, cling nhu cac th~y co cua truang B;;ti hQc Ngo;;ti NguTin HQc da: truy~n d;;tt rftt nhi~u kiSn thuc va ky nang huu feh su6t qua trinh hQc ~p, ren luy~n t;;titruang D?c bi~t, v6'i long kinh trQng va biSt on sau s~c, chung toi cling xin gui dSn nguai th~y cua chung toi - Th~y Th~y Nguyen Phuac D;;ti lai cam on chan nht86 thu~t ngfr 8U d\lng lu~n van 147 Tai li~u tham khao 150 DANH sAcH cAc BANG BlED vA HINH vi Hinh 1-1 L~p trinh vien Ryan Lienhart DahL 15 Hinh 1-2 s6 luqng website, server trien khai c6ng ngh~ Node.js (Ngu6n: W3Techs.com) 18 Hinh 1-3 Vi tri Clla Node,js so v6i cac nen tang Server khac (Ngu6n: W3Techs.com) 18 Hinh 1-4 Bieu d6 the hi~n s6 l~n Commit tren Github CllaNode.js 19 Hinh 1-5 Brendan Eich, nguai sang t~o nen Javascript 20 Hinh 1-6 Bieu tuqng Google Chrome va Javascript V8 Engine 21 Hinh 1-7 Node.js dva tren V8 Javascript Engine 23 Hinh 1-8 Giao di~n Node.js version 0.8.18 tren Ubuntu 27 Hinh 1-9 Cua s6 "Create a New Workspace" CllaC9.io 29 Hinh 1-10 Giao di~n lam vi~c clla C9.io 30 Hinh 1-11 Ph~n mem WebStorm IDE 30 Hinh 1-12 Blocking I/O 35 Hinh 1-13 Non-blocking I/O 35 Hinh 1-14 M6 hinh MVC 71 Hinh 2-1 Binh Ii CAP 82 Hinh 2-2 Bieu tuqng MongoDB 86 Hinh 3-1 Bieu tuqng RSS tren cac trang co ngu6n tin 95 Hinh 3-2 Nt s6 ket qua sau : Tim hi~u dugc cong ngh~ Node.js, m(>t cong ngh~ phat tri~n ung dVng web b~ng ngon ngfr Javascript va ch/;ly tren V8 Engine cua Google v6n dang dugc phat tri~n r~t m/;lnh va co kha nang Slr dVng r(>ng riii hi~n nay, nAm dugc cach thuc hO/;ltd(>ng, cac d~c di~m ki thu?t va kha nang cua cong ngh~ Node.js Them vao do, qua trinh nghien CUuva tim hi~u v~ Nbde.js, nhom thlJc hi~n cung nAm dugc m(>t s6 cong ngh~, ky thu?t khac lien quan m?t thiet den Javascript va Node.js nhu cO' dfr li~u MongoDB, xay dlJng phfin m~m cho Android b~ng PhoneGap sa B6 sung kinh nghi~m lam vi~c v6'i di~n toan dam may, m(>t d~ tai dang dugc d~ C?P thuOng xuyen va se dfin ph6 bien linh VlJCcong ngh~ thong tin hi~n rna di~n hinh Ia OpenShift, nha biet them dugc v~ c~u truc, cach thuc hO/;ltd(>ng, tri~n khai va tri hO/;ltd(>ng cua m(>t ung dVng web tren di~n toan dam may D~ minh hQa cho vi~c Slr dVng cong ngh~ Node.js, nhom thlJc hi~n dii xay d1Jllg dugc m(>t ung dVng thlJc hi~n vi~c dQc, C?P nh?t, chi a se ngu6n tin tr1Jc tuyen m(>t cach dan gian va nhanh chong, khong chi tren may tinh rna ca thiet bi di d(>ng Qua do, nAm dugc vi~c xay dlJng ung dVng hoan chinh, Slr dVng hoan toan dlJa tren HTML5, CSS3, va Javascript d6ng thai v?n dVng cac kien thuc lien quan den XML, m(>t dinh d/;lng ph6 bien luu trfr, chia se dfr li~u a 5.2/ H~n ch~ M~c dli dii c6 gAng nhung d~ tfli vfin m(>t 56 di~m h/;ln che vi~c tim hi~u cong ngh~ m6'i g~p phai nhi~u kho khan v~ m~t tai li~u va thai gian Vi _I _ 144 ChU011g 5/ T6ng kit v~y, frng dVng cua nhom chi mang tinh minh hQa vi~c sir dVng cong ngh~, k~t hqp kha nang cua cac cong ngh~ v&i m(>t cach d6ng b(> nh~m ~o m(>t ung dVng t6t v&i thai gian rut ng~n so v&i truy~n th6ng M(>t s6 chuc nang vftn chua xay dlJl1gdugc: - Lien k~t, chia se tin mc len cac trang m':lng xa h(>i - Xac thlJc email nguai dung dang ky sir dVng dich - Phan 10':licac tin mc theo muc d(>quan tam - Quan Iy theo nhom cac ngu6n tin V\l 5.3/ HtrO'ng phat tri~n Phat tri€n, b6 sung cac tinh nang giup vi~c truy c~p~ dQc va quan Iy hi~u qua hon, nhftt la nguai dung dang ky s61ugng l&n cac ngu6n tin Tri€n khai rna r(>ng sir dVng Node.js, giup Node.js t~n dVng t6i da kha nang v~ tai nguyen s6 lugng nguai dung tang d(>tbi~n nhu cac trang co s6 lugng truy c~p l&n rna di€n hinh la cac trang m':lng xa h(>i,nh~m dam bao chftt lugng dich V\l, tranh thftt thoM cho nha phat tri€n va lam hai long nguai sir dVng Tim hi€u cac phuong thuc giup b6 sung may chu, giam thi€u kha nang phai khai d(>ng l':li application, dam bao thai gian hO':ltd(>ng khong ng~t quang, ky thu~t can b~ng tai 145 PHVLVC PHV LVC A: Thiet lip oi tnri'mg eho PhoneGap B I: T,o moi tnrimg lw> trlnh teen thiet bi di dQng, ching b~: android Sau tili thu vi~n Phonegap ~ duimg d&t: https:lls3.amazonaws.com/phonegap.download/phonegap-2 IDE cho 7.0 zip v€ may tfnh r6i gjili nen B2: T~ project moo cho Android, nen chQn phien ban Ice Cream Sandwich 4.0 tra len dS duqc bB trq nhi€u tien fcb B3: Tit duemg dfut thu m\lC g6c Clla project, ~ assetslwww hai thu m\lC moo la /libs va B4: Chep file cae file va thu m\lc sau vao duemg dan phil hqp: File cordova-2.0.0.js tit thu m\lC Phonegap da tili vao assets/www File cordova-2.0.0Jar tit thu m\lc Phonegap da tili vao /libs Thu m\lC xml tit thu m\lC Phonegap da tili vao Ires B5: Nhan chuQt phili vao thu m\lC /libs, chQDBuild Paths! > Configure Build Path Trong the Libraries them cordova-2.0.0.jar vao project B6: Trong file rna ngu6n a thu m\lC src: Them tha vi~ bing each gQi import org.apache.cordova *; f>i.i extends Clla lap til A(ftivity DroidGap Thay the dong setContentViewO super.loadUrI("file:1 I/android _assetlwww/index.html"); B7: Vao file AndroidManifest.xml va sdk /> va Dbu sao: 147 y : NQi dung file co th~ thay d6i my theo nhu cAu Clla application cAn t~o D~ don gian IAnt~o ban dAu, co th~ su d\mg nQi dung file c~u hinh LUll nhu tren B8: Them thuQc tinh vao tag activity: android: configChanges=" orientationlkeyboardHiddenlkeyboardlscreenS izellocale" B9: T~o cac file cAn thi~t Clla mQt trang web nhu file index.html Cac file cAn d~t thu mvc assets/www Sau do, build (eng dVng IAndAu tien, phAn m~m gia l~p Clla Android se duqc ch~y va nQi dung trang web se duqc t~o mQt application hoan chinh Sau th\Jc hi~n cac buac tren, ta co th~ b~t dAu vi~t cac trang web theo chu~n HTML5 va CSS3, cac thu mvc khac d~u phai d~t vao thu mvc g6c assets/www, qua trinh l~i se PhoneGap tv' dong goi cac t~p tin cai d~t cho tUng n~n tang PHl) Ll)C B: Ml}t sa thu~t ngfr Stl dl}.ng lu~n van IDE (Integrated Development Environment) : moi truemg phat tri~n giup l~p trinh vien vi~t, thvc thi, sua 16i code nhanh va thu~n ti~n Framework: n~n tang, quy uac va cac thu vi~n chung rna cac (eng dVng khac se phat tri~n, b6 sung tren Event-driven: ly cac S\J Non-blocking: l~p trinh theo huang S\J ki~n, bao g6m khai bao va xu ki~n xay cach l~p trinh d~ vi~c thvc thi code se khong phai gian do~n hay cha k~t qua tu qua trinh truac 148 Scalable: cho phep rna rQng nha b6 sung them cac tai nguyen, may chu Sharding: qua trinh phan tan du li~u ca sa du li~u Replication: qua trinh d~ dam bao ca sa du li~u giua nai duqc d6ng bQ gi6ng API: vith t~t cua Application Programming Interface (giao di~n l~p trinh ung dVng), la giao ti~p ph~n mSm duqc cung c~p va su dvng bai cac ung dVng khac IRC (Internet Relay Chat): mQt d~ng lien l~c c~p t6c qua m~ng Internet, duqc thi~t k~ v&i mvc dich chinh la cho phep cac nhom nguai mQt phong thao lu~n (channel) lien l~c v&i Tuy nhien, IRC cling cho phep hai nguai dung lien l~c rieng n~u hQ thfeh Inheritance: thira huang cac thuQc tinh va hanh vi cua cac lap ngu6n g6c AJAX (Asynchronous JavaScript and XML): mQt nhom cac c6ng ngh~ phcit tri~n web duqc su dVng d~ t~o cac ung dVng web dQng Garbage collection (GC): mQt qua trinh ch~y ng~m d~ giai phong vling nh& duqc c~p phcit cho cac d6i tuqng rna ung dVng kh6ng su dVng cac d6i tuqng nua Process: mQt thl!c th~ diSu khi~n do~n rna l~nh co rieng mQt kh6ng gian dja chi, co ngan x~p (stack) rieng re, co bang chua cac s6 mieu ta file (file descriptor) duqc rna cung ti~n trinh va d~c bi~t la co mQt djnh danh PID (process identifier) nh~t toan bQ h~ th6ng van thai di~m ti~n trinh dang ch~y Socket: mQt c6ng logic rna mQt chuang trinh su dVng d~ k~t n6i v&i mQt chuang trinh khac ch~y tren mQt may tinh khac tren Internet Regular Expression (RegExp): mQt chu6i mieu ta mQt bQ cac chu6i khac, theo nhfrng quy t~c Cll phap nh~t djnh Bi~u thuc chinh quy thuang duqc dung cac trinh bien t~p van ban va cac ti~n feh tim ki~m va xu 19 van ban dl!a tren cac m~u duqc quy djnh 149 URL (Uniform Resource Locator) duqc dung d~ tharn chi~u t6i tai nguyen tren Internet URL mang l~i kha nang sieu lien k~t cho cae trang m~ng WebSocket: rnQtchu~n cho phep cae kenh giao ti~p song soOnghai chi~u, hi~n dii duqc h6 trq nhi~u trinh duy~t (Firefox, Google Chrome va Safari) K~t n6i duqc rna thong qua rnQtHTTP request (yeu c~u HTTP), duqc g9i la lien k~t WebSockets v6i nhfrng header d~c bi~t K~t n6i duqc tri d~ b~n co th~ vi~t va nh~n dii li~u bAng JavaScript nhu b~n dang su d1,1ngrnQt TCP socket don thu~n XSLT: Ngon ngii djnh ki~u rna rQng chuy~n d6i (Extensible Stylesheet Language Transformations - XSLT) cung c~p each chuy~n d6i dii li~u XML ill d~ng sang d~ng khac rnQtcae tlJ dQng 150 T i Ii~u a khio [1] Tom Hughes-Croucher, Mike W'tlson, Node: Up and Running: Scalable Server-Side Code with JavaScript, O'Reilly, 2012 [2] Manuel Kiessling, The Node Beginner Book, leanpub, 2012 [3] Shelley Powers, Learning Node, O'Reilly, 2012 [4] Kristina Chodorow, MongoDB: The Definitive Guide, 2013 [5] Brett McLaughlin, What Is Node?, O'Reilly, 2011 [6] Mike Wilson, Building Node Applications with MongoDB and Backbone, 2012 [7] Eric D Schabell, OpenShift Primer, 2013 [8] Michael McGrath, Understanding PaaS, 2012 [9] Kris Jamsa, Cloud Computing, 2011 [10] http://www.ibm.com!developerworks/cloud/library/cl-nodejscloud/ [11] http://www.ibm.com!developerworks/web/library/jnodejs/index.html?ca=drs[12] http://blog.mixu.net/20 11/02/02/essential-node-js-pattems-and-snippets/ [13] http://horicky.blogspot.com/20 12/04/mongodb-architecture.html [14] http://docs.mongodb.org/manuaVreference/sgl-comparison/ [15] http://www.techrepublic.com/blog/l know-about-nosgl-databases/ O-things/l O-things-you-should- [16] http://bi-bigdata.com/20 12/12/25/nosql-categories-breakdown/ [17] http://horicky.blogspot.com/2009/1l/nosql-pattems.html [18] http://ksat.me/a-plain-english-introduction-to-cap-theorem/ [19] http://www.infog.com/articles/cap-twelve-years-Iater-how-the-ruleshave-changed
Ngày đăng: 01/09/2023, 21:57
Xem thêm: