Khóa luận Nghiên cứu lập trình ứng dụng cho các thiết bị di động áp dụng cho bài toán Campus Guide

ĐꢀI HC QUC GIA HÀ NI  
TRƯꢄNG ĐꢀIHC CÔNG NGHꢅ  
Nguyn Thanh Xuân  
NGHIÊN CU LP TRÌNH NG DNG CHO CÁC  
THIT BDI ĐꢃNG ÁP DNG CHO BÀI TOÁN  
CAMPUS GUIDE  
KHOÁ LUN TT NGHIP ĐꢀI HC HCHÍNH QUY  
Ngành: Mng và truyn thông máy tính  
HÀ NI - 2010  
ĐꢀI HC QUC GIA HÀ NI  
TRƯꢄNG ĐꢀI HC CÔNG NGHꢅ  
Nguyn Thanh Xuân  
NGHIÊN CU LP TRÌNH NG DNG CHO CÁC  
THIT BDI ĐꢃNG ÁP DNG CHO BÀI TOÁN  
CAMPUS GUIDE  
KHOÁ LUN TT NGHIP ĐꢀI HC HCHÍNH QUY  
Ngành: Mng và truyn thông máy tính  
Cán bhưꢏng dn: ThS. Nguyn Vit Anh  
HÀ NI - 2010  
LI CM ƠN  
Em xin chân thành cm ơn các thy cô giáo trong trưꢂng Đꢃi hc Công ngh-  
Đꢃi hc Quc gia Hà Ni ñã tn tình giúp ñꢉ và truyn ñꢃt kin thc cho em trong sut  
4 năm hc qua ñꢍ em có ñꢎ kin thc hoàn thành khóa lun này.  
Đꢏc bit, em xin gi li cm ơn sâu sc ti thy Nguyn Vit Anh – ngưꢂi ñã  
nhit tình giúp ñꢉ, ñꢔnh hưꢒng cũng như ñꢇng viên em trong quá trình nghiên cu và  
hoàn thành khóa lun.  
Em xin cm ơn snhit tình chia skinh nghim, ñóng góp ý kin ca nhóm  
nghiên cu do thy Nguyn Vit Anh hưꢒng dn, ca các anh chcao hc.  
Mc dù ñã rt cgng hoàn thành khóa lun này, xong khóa lun skhó tránh  
khi nhng thiu sót, kính mong quý thy cô tn tình chbo giúp em. Mt ln na em  
xin cm ơn tt cmi ngưꢂi.  
Hà Ni, tháng 5 năm 2010  
Sinh viên  
Nguyn Thanh Xuân  
TÓM TT  
Khóa lun tp trung nghiên cu và phân tích mt svn ñꢊ sau:  
- Tìm hiu vcông nghJ2ME, Web service, Servlet, bn ñꢝ.  
- Áp dng xlý dliu theo ngcnh vào các bài toán thc t.  
- Xây dng thành công chương trình “Hưꢒng dn cung cp thông tin vꢊ Đꢃi hc  
Quc gia Hà Ni - VNU Campus Guide”. ng dng ñã ñáp ng ñưꢠc nhng  
chc năng cn thit nht trong vic xem bn ñꢝ, cung cp thông tin theo ngꢛ  
cnh vꢊ Đꢃi hc Quc gia Hà Ni.  
MC LC  
CHƯƠNG 1. Mꢔ ĐꢕU...................................................................................................1  
1.1. Lý do chn ñꢍ tài .....................................................................................................1  
1.2. Nhim vnghiên cu ..............................................................................................1  
1.3. Bcc ca khóa lun ..............................................................................................2  
CHƯƠNG 2. BÀI TOÁN................................................................................................3  
2.1. Bài toán.....................................................................................................................3  
2.2. Mô t.........................................................................................................................3  
2.3. Mô hình ñꢍ xut.......................................................................................................4  
2.3.1. Mô hình ngưꢀi sdng........................................................................................4  
2.3.2. Yu tngcnh....................................................................................................5  
2.3.3. Mô hình ni dung.................................................................................................7  
2.3.4. Các cách cài ñꢈt cây thông tin .............................................................................9  
2.3.5. Lut la chn thông tin cung cp cho tng ngưꢀi dùng..................................10  
CHƯƠNG 3. PHÂN TÍCH THIT KCHƯƠNG TRÌNH VNU CAMPUS  
GUIDE  
.................................................................................................................11  
3.1. Phân tích.................................................................................................................11  
3.1.1. Phân tích các yêu cu chc năng......................................................................11  
3.1.1.a. Đăng nhp, ñăng ký.........................................................................................11  
3.1.1.b. Xem bn ñꢂ ......................................................................................................11  
3.1.1.c. Tìm kim ñꢄa ñim............................................................................................11  
3.1.1.d. Danh sách trưꢆng, khoa ..................................................................................11  
3.1.1.e. Trgiúp ...........................................................................................................11  
3.1.1.f.  
Xem chi tit ......................................................................................................12  
3.1.2. Đꢄi tưꢐng sdng..............................................................................................12  
3.2. Thit kcơ sdliu ............................................................................................12  
3.2.1. Sơ ñꢑ dliu .......................................................................................................12  
3.2.2. Chi tit thit kcơ sdliu..............................................................................13  
3.2.3. Mô tcây thông tin.............................................................................................14  
3.3. Mô hình kt ni......................................................................................................16  
3.4. Chc năng ca ng dng Midlet .........................................................................17  
3.4.1. Các chc năng ca ng dng............................................................................17  
3.4.2. Lung xlý chương trình.................................................................................18  
3.4.2.a. Các chc năng chính .......................................................................................20  
3.4.2.b. Lung chương trình .........................................................................................24  
3.5. Chc năng phía Server .........................................................................................25  
3.5.1. Web service..........................................................................................................25  
3.5.2. Servlet..................................................................................................................26  
3.6. Các Module xlý...................................................................................................26  
3.6.1. Phía client ...........................................................................................................26  
3.6.1.a. Gói hello ..........................................................................................................26  
3.6.1.b. Gói campusservice...........................................................................................27  
3.6.1.c. Gói data ...........................................................................................................27  
3.6.2. Phía server ..........................................................................................................28  
3.6.2.a. GetMysqlConnection.java................................................................................28  
3.6.2.b. CampusHttpServer.java...................................................................................28  
3.6.2.c. Campus.java ....................................................................................................28  
CHƯƠNG 4. CÔNG NGHSDNG .....................................................................29  
4.1. Lĩnh vc ng dng không dây vi công nghJava............................................29  
4.1.1. Các phiên bn Java 2 .........................................................................................29  
4.1.2. Java 2 Enterprise Edition...................................................................................29  
4.1.3. Java 2 Micro Edition ..........................................................................................30  
4.1.3.a. Các kiu ng dng MIDP ................................................................................30  
4.1.3.b. Hn chca các thit bdi ñꢌng .....................................................................31  
4.2. Lp trình Web Service vi MIDP........................................................................31  
4.2.1. Dch vWeb (Web service).................................................................................31  
4.2.1.a. Đꢄnh nghĩa .......................................................................................................31  
4.2.1.b. Các ñꢍc ñim chính ca dch vWe:...............................................................32  
4.2.1.c. Ti sao dùng dch vWeb................................................................................32  
4.2.1.d. Các thành phn cơ bn....................................................................................32  
4.2.2. WSDL..................................................................................................................32  
4.2.3. UDDI...................................................................................................................35  
4.2.4. SOAP...................................................................................................................35  
4.3. Công nghbn ñꢤ..................................................................................................38  
4.3.1. nh SVG .............................................................................................................38  
4.3.1.a. Các thuc tính ca nh SVG............................................................................38  
4.3.1.b. Các chc năng và ñꢍc trưng............................................................................39  
4.3.1.c. Ưu ñim............................................................................................................39  
4.3.1.d. Nhưꢇc ñim......................................................................................................40  
4.3.2. SVG tiny ..............................................................................................................40  
4.3.3. Xlý các ñꢄi tưꢐng trong nh SVG...................................................................40  
CHƯƠNG 5. CÀI ĐꢥT VÀ THNGHIM..............................................................41  
5.1. Yêu cu...................................................................................................................41  
5.2. Cài ñꢧt ....................................................................................................................41  
5.3. Thnghim chương trình ....................................................................................41  
CHƯƠNG 6. KT LUN ............................................................................................45  
6.1. Kt quꢜ ñꢌt ñưꢨc...................................................................................................45  
6.2. Hưꢏng phát trin...................................................................................................45  
TÀI LIU THAM KHO...............................................................................................46  
CHƯƠNG 1. Mꢔ ĐꢕU  
1.1. Lý do chn ñꢍ tài  
Công nghthông tin là mt phn quan trng ca cuc sng. Các thit bkthut  
cao ngày càng gn gũi vi mi hot ñꢇng ca con ngưꢂi. Đꢏc bit nhng năm gn ñây,  
các thit bkhông giây - vi ưu thnhgn, dmang chuyn, ñã chng tꢚ ñưc li ích  
to ln cho ngưꢂi sdng. Trong ñó ñin thoi di ñꢇng, vi chc năng liên lc ni bt  
lên như mt vt bt ly thân. Vi sphát trin nhanh chóng ca công nghsn xut  
thit bkhông dây, ñin thoi di ñꢇng ñã trthành phương tin ña chc năng(nghe  
nhc, chơi trò chơi, lch làm vic..) phc vcho nhu cu gii trí, làm vic, cp nht  
thông tin mi lúc, mi nơi.  
Trong cuc sng, nhu cu liên lc, cp nht thông tin là ht sc cn thit. Hin  
nay có rt nhiu phương pháp liên lc khác nhau như thư ñin t, ñin thoi ñꢍ bàn,  
ñin thoi di ñꢇng, kt ni Wi-fi, WiMax… Trong ñó, ñin thoi di ñꢇng ni bt vi  
stin li, hu ích. Nhchc năng ñàm thoi trc tip mi lúc mi nơi, mà ñin thoi  
di ñꢇng ngày càng ñưꢠc sdng rng rãi. Đin thoi di ñꢇng là thit bphát trin  
nhanh chóng nht cvcông nghln tính năng, ng dng. Ngày nay, hu như mi  
ngưꢂi ñꢊu mang theo bên mình mt chic ñin thoi di ñꢇng.  
Nhu cu tìm hiu vꢊ Đꢃi hc Quc Gia Hà Ni cũng như các trưꢂng ñꢃi hc  
thành viên là cn thit. Bên cnh ñó, do khuôn viên rng, có nhiu tòa nhà ñꢔa ñim  
nên nhu cu tìm vtrí tòa nhà là cn thit. Vic phát trin ng dng trên ñi dng cho  
hưꢒng dn trong khuôn viên Đꢃi hc Quc Gia Hà Ni rt hu ích. Ngưꢂi dùng có thꢍ  
ngay lp tc tìm ñưꢠc ñꢔa ñim bt clúc nào.  
Vì nhng lý do này, em quyt ñꢔnh thc hin ñꢊ tài “VNU Campus Guide –  
hưꢒng dn, thông tin vꢊ Đꢃi hc Quc Gia Hà Ni – trên nn J2ME”.  
1.2. Nhim vnghiên cu  
Đꢊ tài cn gii quyt nhng nhim vsau:  
Thnht: Xây dng ng dng chính trên nn J2ME. ng dng cn hin thꢔ ñưꢠc  
bn ñꢝ khuôn viên Đꢃi hc Quc Gia Hà Ni, ly thông tin vtrưꢂng tserver.  
Thhai: Cn xây dng mt ng dng Web server cung cp, xlý thông tin cho  
ng dng phía Client là thit bdi ñꢇng. Server sdng công nghJ2EE, WSDL. Tìm  
hiu các công nghꢅ ñꢍ kt ni tꢥ ꢌng dng trên thit bdi ñꢇng ñꢋn Web server.  
1
Thba: Tìm hiu thông tin, tchc thông tin phù hp ñꢍ cung cp cho ngưꢂi  
dùng vi ngcnh khác nhau:  
Ngưꢂi dùng khác nhau (sinh viên, khách tham quan, …)  
Thi gian xem thông tin.  
1.3. Bcc ca khóa lun  
Khóa lun gm 5 chương  
- Chương 1. Mꢣ ñꢁu.  
Nêu khái quát ñꢊ tài, nhim vnghiên cu.  
- Chương 2. Bài toán  
Nêu bài toán, các yu tngcnh, mô hình ñꢊ xut.  
- Chương 3. Phân tích thit kchương trình VNU Campus Guide.  
Thit kchi tit mô ththng VNU Campus Guide.  
- Chương 4. Công ngh.  
Trình bày các công nghdùng trong hthng VNU Campus Guide: J2ME, J2EE,  
công nghbn ñꢝ.  
- Chương 5. Cài ñꢏt và thnghim.  
Chi tit cách cài ñꢏt, trin khai chương trình, các kt quthnghim chương  
trình.  
2
CHƯƠNG 2. BÀI TOÁN  
2.1. Bài toán  
Khuôn viên Đꢃi hc Quc gia Hà Ni rng vi nhiu tòa nhà, mt sinh viên mi  
hay khách tham quan chưa bit ñưꢠc vtrí các tòa nhà, ñꢔa ñim. Thông tin chi tit mô  
tvcác trưꢂng, khoa trong Đꢃi hc Quc gia cũng cn thit ñꢆi vi h. Mt bng chꢜ  
dn ñơn thun không ththa mãn nhu cu tìm hiu thông tin.  
Ngày nay, hu ht mi ngưꢂi ñꢊu có bên mình chic ñin thoi di ñꢇng nhgn,  
nhiu chc năng. Vi sphát trin công nghnhư ngày nay, các thit bdi ñꢇng ngày  
càng ña dng, năng lc xlý càng tăng. Vic xây dng các ng dng cho thit bdi  
ñꢇng ngày càng trlên ddàng hơn.  
Vì vy vic mt ng dng cho phép mi ngưꢂi ddàng xác ñꢔnh tòa nhà, ñꢔa  
ñim vtrí nào trong khuôn viên là cn thit. Ngoài ra ng dng phi cung cp thông  
tin cn thit cho ngưꢂi dùng theo ngcnh.  
2.2. Mô tꢜ  
Mc tiêu ca chương trình là ngưꢂi dùng tìm kim ñꢔa ñim, truy xut thông tin  
cn thit vcác trưꢂng, khoa trong Đꢃi hc Quc gia nu hñiu kin shu mt  
chic ñin thoi di ñꢇng htrꢠ ꢌng dng Java.  
Cn có giao din cho phép ngưꢂi dùng xem bn ñꢝ khu vc ñꢍ xác ñꢔnh các tòa  
nhà, ñꢔa ñim trong Đꢃi hc Quc gia Hà Ni.  
Mi ngưꢂi dùng ñꢊu có nhu cu tìm hiu thông tin khác nhau, vì thlưꢠng thông  
tin cung cp cho tng ngưꢂi cũng phi khác nhau.  
Các thông tin cung cp phi tùy thuc vào ngưꢂi dùng và thông tin cũng như  
lưꢠng thông tin ñã xem trong quá kh.  
Tính di ñꢇng  
Vi mt thit bdi ñꢇng có htrJava, ngưꢂi dùng có thsdng chương trình  
bt kỳ ñâu, vào bt kthi gian nào.  
Tĩnh ngcnh  
Vi ngcnh ngưꢂi dùng, ngcnh môi trưꢂng, lưꢠng thông tin cung cp sꢙ  
khác nhau.  
3
2.3. Mô hình ñꢍ xut  
Mc tiêu ca nghiên cu là phát trin mt ng dng giúp mi ngưꢂi có thdꢓ  
dàng truy cp thông tin, tìm hiu vꢊ Đꢃi hc Quc gia bt cꢌ ñâu, bt clúc nào chꢜ  
vi mt thit bdi dng htrJava và có khnăng kt ni Internet.  
Hthng scung cp thông tin, hình nh, chdn phù hp vi ngcnh. Bên  
cnh ñó trong quá trình hot ñꢇng hthng stꢕ ñꢇng nhn bit sthay ñꢢi ngcnh  
ñꢍ thay ñꢢi ni dung cho phù hp.  
Hthng  
Thông tin  
Xlý  
Thông tin  
yêu cu  
thông tin  
ngcnh  
Ngưꢀi dùng  
Lut la chn  
Thông tin  
Trưꢀng, khoa  
Ni dung theo  
ngcnh  
thông tin  
Hình 2.1. Mô hình ñꢀ xut xây dng hthng  
Mi khi ngưꢂi dùng yêu cu ly thông tin, hthng sly thông tin, yêu cu ca  
ngưꢂi dùng ñꢍ cp nht thông tin ngcnh. Thông tin ngcnh này sꢙ ñưꢠc mt lut  
la chn thông tin sdng. Sau khi chn la ñưꢠc thông tin, chương trình sthay ñꢢi  
ngcnh như lch sxem thông tin …  
2.3.1. Mô hình ngưꢀi sdng  
Mi ngưꢂi dùng có nhiu thông tin cá nhân cũng như thông tin vmôi trưꢂng  
khác nhau, rt nhiu yu tꢆ ꢀnh hưꢣng nhưng ta chchn nhng yu tchính, quan  
trng nh hưꢣng ñꢋn ngcnh ngưꢂi dùng.  
Các tác nhân thhin ngcnh ca ngưꢂi sdng:  
4
Thi gian  
Ví trꢪ  
Lch sꢡ  
xem thông  
tin  
Thông tin  
ngưꢫi dùng  
Hình 2.2. Mô hình ngưꢅi dùng  
Vtrí: là thông tin thc vvtrí hin ti ca ngưꢂi dùng. Ta có thbiu din nó  
theo kinh ñꢇ và vĩ ñꢇ. Do vtrí ca ngưꢂi dùng thay ñꢢi thưꢂng xuyên nên vic xác  
ñꢔnh vtrí ca ngưꢂi dùng là ñưꢠc ưu tiên. Có nhiu cách ta có thxác ñꢔnh ñưꢠc vꢔ  
trí hin ti ca ngưꢂi sdng như sdng công nghꢅ ñꢔnh vA-GPS, E-OTD hay  
Cell-ID hoc TOA… Ngoài ra, location còn bao gm ccác thông tin không gian, và  
vtrí hin ti ca ngưꢂi sdng.  
Thi gian: Thi gian ꢣ ñây là thi gian sdng chương trình, mi ngưꢂi dùng  
ñꢇ tp trung cũng như lưꢠng thi gian có thdùng ñꢍ xem thông tin khác nhau.  
Thông tin ngưꢫi dùng: Mi ngưꢂi dùng có thông tin khác nhau, lưꢠng thông tin  
cung cp cho các ñꢆi tưꢠng ngưꢂi dùng khác nhau cũng phi khác nhau phù hp vi  
ñꢇ tui, sthích…  
Lch sxem thông tin: Mi khi xem mt thông tin ri thì ngưꢂi dùng thưꢂng  
không mun xem tip trong ln tip theo, do ñó cn lưu trlch sxem thông tin ñꢍ xꢐ  
lý trong nhng ln tip theo.  
2.3.2. Yu tngcnh  
"Bi cnh là bt kthông tin có thꢍ ñưꢠc sdng ñꢍ ñꢏc trưng cho hoàn cnh  
ca mt thc th. Thc thlà mt ngưꢂi, ñꢔa ñim, hoc ñꢆi tưꢠng ñó ñưꢠc coi là có  
5
liên quan ñꢋn stương tác gia ngưꢂi sdng và mt ng dng, bao gm cngưꢂi  
dùng và ng dng chính h" - Dey, Abowd & Salber [1].  
Paul Dourish ñã nói rng có hai góc nhìn khác nhau vngcnh [5]:  
- Ngcnh như mt ñꢃi din  
o Ngcnh là mt hình thc ca thông tin. Nó có thꢍ ñưc bit ñꢋn (và do ñó mã  
hóa và biu din như các thông tin khác trong các hthng phn mm).  
o Ngcnh là có khnăng khoanh ñꢔnh. Chúng ta có thxác ñꢔnh nhng gì có  
giá trnhư là bi cnh ca hot ñꢇng mà htrꢠ ꢌng dng.  
o Ngcnh là n ñꢔnh. Mc dù các yu tchính xác ca mt biu din ngcnh  
có thkhác nhau tùy theo ng dng, chúng không thay ñꢢi trong cách thhin  
ca mt hot ñꢇng hay mt skin. Xác ñꢔnh sliên quan ca bt kyu tꢆ  
tim năng theo ngcnh có thꢍ ñưꢠc thc hin mt ln và cho tt c.  
o Ngcnh và các hot ñꢇng ñưꢠc tách riêng. Hot ñꢇng xy ra “trong” mt ngꢛ  
cnh. Ngcnh mô tcác ñꢏc trưng ca môi trưꢂng trong ñó các hot ñꢇng  
din ra, nhưng ñó là tách bit vi hot ñꢇng.  
- Ngcnh như mt tương tác  
o Thay vì xem xét ngcnh ñꢍ ñưꢠc thông tin, ngcnh ñưꢠc xem như mt  
thuc tính quan hꢅ ꢣ gia các ñꢆi tưꢠng hoc các hot ñꢇng. Nó không ñơn  
gin là trưꢂng hp cái mà cái gì ñó là ngcnh hoc không, mà nó có thhoc  
không là theo ngcnh liên quan ñꢋn mt shot ñꢇng cth.  
o Thay vì xem như ngcnh có thꢍ ñưꢠc khoanh ñꢔnh và ñưꢠc xác ñꢔnh trưꢒc,  
cách nhìn thay thchra rng phm vi ca các tính năng ñưꢠc ñꢔnh nghĩa ñꢇng.  
o Thay vì xem ngcnh là n ñꢔnh, bi cnh ñưꢠc xem rng là cthcho tng  
ln hot ñꢇng hoc hành ñꢇng. Bi cnh là mt thuc tính thi ñim, có liên  
quan ñꢋn các cài ñꢏt cth, ñꢏc bit trưꢂng hp hành ñꢇng và các phn cthꢍ  
ñꢍ hành ñꢇng.  
o Thay vì ñꢏt bi cnh và ni dung thành hai thc thriêng bit, xem rng bi  
cnh phát sinh thot ñꢇng. Bi cnh không chlà “ꢣ ñó”, mà là ñang ñưꢠc  
to ra, duy trì và ñưa ra trong quá trình hot ñꢇng.  
Ngcnh chương trình:  
6
- Thông tin ngưꢂi dùng: mi ngưꢂi dùng scó thông tin khác nhau như: tên, kiu  
ngưꢂi dùng, lưꢠng thông tin cn xem…  
- Vtrí: Vtrí ngưꢂi dùng ñưꢠc xác ñꢔnh da trên Location-Based Service hoc do  
ngưꢂi dùng chꢎ ñꢇng la chn. Khi ví trxác ñꢔnh, thông tin cung cp stương  
ng vi ñꢔa ñim ñó.  
- Thi gian xem thông tin: mc ñꢇ chi tit ca thông tin sda vào thi gian ngưꢂi  
dùng mun xem, ngưꢂi dùng có nhiu thi gian có thxem thông tin vi mc ñꢇ  
chi tit cao hơn.  
- Lch sxem thông tin: Khi mt ngưꢂi ñã xem mt thông tin thì không cn thit  
phi xem li, do ñó cn loi btùy chn xem thông tin ñó nhng ln sau.  
2.3.3. Mô hình ni dung  
Thông tin sꢙ ñưꢠc phân cp theo mc ñꢇ chi tit. Đꢍ phân cp theo mc ñꢇ chi  
tit, ta chn mô hình thông tin hình cây. Mi nút scó mt lưꢠng thông tin nht ñꢔnh.  
Tùy thuc vào ngcnh thì sly thông tin mt nhánh các nút khác nhau.  
7
1
2
3
Đꢜnh ñưꢠc gn vi mt  
trưꢂng, khoa  
Đꢜnh cây  
Chia ra 2 nhánh tương  
ng vi kiu ngưꢂi dùng  
nút  
nút  
nút  
nút  
Mc topic: chia ra  
nhiu topic khác  
4
nút  
nút  
Mc thông tin 1:  
Tóm tt tng phn.  
5
6
nút  
nút  
Mc thông tin 2:  
Tiêu ñꢊ các ñon  
nút  
nút  
Mc thông tin 3:  
Ni dung các ñon  
Hình 2.3. Cây thông tin lưu trvcác trưꢅng, khoa  
- Đꢜnh cây là mt nút tương ng vi mt phn thông tin.  
- Mc th2 tương ng vi tng kiu ngưꢂi dùng.  
- Mc th3 tương ng vi tng topic ca cho tng kiu ngưꢂi dùng.  
- Mc th4, 5, 6 tương ng vi 3 mc thông tin theo tùy chn ca ngưꢂi dùng.  
o Mc bn: Mc thông tin 1, tóm tt tng phn.  
o Mc năm: Mc thông tin 2, tiêu ñꢊ tng ñon  
o Mc sáu: Mc thông tin 3, ni dung tng ñon.  
8
2.3.4. Các cách cài ñꢈt cây thông tin  
Thông tin vTrưꢂng, khoa cn tchc phân cp theo mc ñꢇ chi tit ca thông  
tin. Ngoài ra cn chia thông tin theo tng ñꢆi tưꢠng ngưꢂi dùng. Do dó nên tchc  
theo mô hình cây.  
Cây có thcài ñꢏt bi các cách khác nhau. Sau ñây, chúng ta trình bày hai  
phương pháp cài ñꢏt cây thông dng nht.  
Phương pháp 1: chra danh sách các ñꢗnh con ca mi ñꢗnh  
Vi mi ñꢜnh ca cây, ta sdng mt con trtrti mt ñꢜnh con ca nó. Và  
như vy, mi ñꢜnh ca cây ñưꢠc biu din bi mt cu trúc gm hai thành phn: mt  
bin data lưu dliu cha trong ñꢜnh ñó và mt mng child các con trtrti các ñꢜnh  
con. Cn có mt con trngoài trti gc cây root. Gismi ñꢔnh có nhiu nht 4  
ñꢜnh con, ta có mô hình như sau:  
root  
A
A
A
A
ꢀ ꢀ ꢀ  
ꢀ ꢀ  
A
A
A
ꢀ ꢀ ꢀ  
ꢀ ꢀ ꢀ  
ꢀ ꢀ ꢀ  
Hình 2.4. Cài ñꢇt cây bi mng con trꢊ  
Cách cài ñꢏt này thưꢂng không hiu qu, tn bnhdo slưꢠng nút con ca các  
nút là khác nhau, mt nút có thkhông có ti ña các nút con, do ñó con trꢚ ñꢍ trng.  
Phương pháp 2: chra con cvà em lin kca mi ñꢗnh  
Thay vì sdng mng con tr, ta chsdng hai con tr: con trfirstChild trꢚ  
ti ñꢜnh con cvà con trnextBrother trti em lin k.  
9
root  
A
C
F
B
E
D
G
Hình 2.5. Cài ñꢇt cây sdng hai con tr.  
Vi cách này, cây trong hình 3.1 ñưꢠc cài ñꢏt bi CTDL như trong hình 3.2. Dꢓ  
dàng thy rng, xut phát tgc ñi theo con trfirstChild hoc con trnextBrother, ta  
có thtruy cp ti ñꢜnh bt ktrong cây. Ta có nhn xét rng, các con trnextBrother  
liên kt các ñꢜnh to thành mt danh sách liên kt biu din danh sách các ñꢜnh con ca  
mi ñꢜnh.  
Cách cài ñꢏt này hiu quhơn vì nó chsdng 2 con tr, lưꢠng bnhdư tha  
ít hơn. Vì vy chương trình sdùng cách này ñꢍ biu din thông tin.  
2.3.5. Lut la chn thông tin cung cp cho tng ngưꢀi dùng  
Khi chn mt trưꢂng, khoa thì sꢙ ñi theo cây có ñꢜnh tương ng vi trưꢂng, khoa  
ñó.  
Đꢆi vi tng kiu ngưꢂi dùng sꢙ ñi theo nhánh tương ng mc 2. Ta scó các  
topic khác nhau mc 3.  
Khi la chn mt topic vi thi gian tương ng, thông tin sꢙ ñưꢠc ly nhánh  
ca topic như sau:  
- Mc thi gian 1: Ly tt cthông tin trong cây mc bn.  
- Mc thi gian 2: Ly tt cthông tin trong cây mc bn và năm.  
- Mc thi gian 3: Ly tt cthông tin trong cây mc bn, năm và sáu.  
10  
CHƯƠNG 3. PHÂN TÍCH THIT KCHƯƠNG TRÌNH VNU  
CAMPUS GUIDE  
3.1. Phân tích  
3.1.1. Phân tích các yêu cu chc năng  
3.1.1.a. Đăng nhp, ñăng ký  
Thông tin ca chương trình cung cp theo ngcnh. Ngcnh bao gm cthông  
tin ngưꢂi dùng, do ñó cn xác thc ngưꢂi dùng ñꢍ ñưa ra lưꢠng thông tin phù hp. Vì  
vy cn yêu cu Đăng nhp.  
Khi ñăng nhp cn tài khon ngưꢂi dùng, do ñó cn yêu cu Đăng ký tài khon  
ñꢆi vi ngưꢂi dùng mi.  
3.1.1.b. Xem bn ñꢂ  
Khuôn viên Đꢃi hc Quc gia rng vi nhiu tòa nhà. Cn có bn ñꢝ ñꢍ ngưꢂi  
dùng có cái nhìn tng quan, xác ñꢔnh, tìm kim ñꢔa ñim thích hp. Do ñó chương  
trình có màn hình chính thhin bn ñꢝ vi các tương tác cơ bn như: dch chuyn bn  
ñꢝ, phóng to, thu nh…  
3.1.1.c. Tìm kim ñꢄa ñim  
Vi nhiu tòa nhà trong khuôn viên thì khó có thxác ñꢔnh ngay ñưꢠc mt ñꢔa  
ñim nào ñó, vì vy cn có chc năng tìm kim ñꢔa ñim sau ñó hin thtrên bn ñꢝ.  
3.1.1.d. Danh sách trưꢆng, khoa  
Ngưꢂi dùng có nhu cu tìm hiu thông tin có thtrc tip chn Trưꢂng, khoa ñꢍ  
xem thông tin.  
3.1.1.e. Trgiúp  
Ngưꢂi dùng mi ca chương trình có thkhông quen và chưa bit chc năng nên  
cn có chc năng Trgiúp cung cp thông tin chương trình và hưꢒng dn sdng.  
11  
3.1.1.f. Xem chi tit  
Khi chn mt ñꢔa ñim trên bn ñꢝ, ngưꢂi dùng mun xem thông tin, chương  
trình cn ñưa ra thông tin vꢊ ñꢔa ñim, tòa nhà cũng như Trưꢂng, khoa qun lý ñꢔa  
ñim ñó.  
Lưꢠng thông tin cung cp phi tùy thuc vào ngcnh: ngưꢂi dùng, lưꢠng thông  
tin…  
3.1.2. Đꢄi tưꢐng sdng  
Hthng ñưꢠc xây dng ñꢍ htrcho các nhóm sau:  
- Khách tham quan: Nhng ngưꢂi mun tham quan tìm hiu vꢊ Đꢃi hc Quc gia.  
- Sinh viên: Nhng sinh viên mi chưa bit và tìm hiu ñưꢠc ht thông tin vꢊ  
Trưꢂng có thsdng chương trình.  
3.2. Thit kcơ sdliu  
3.2.1. Sơ ñꢑ dliu  
Csdliu ñưꢠc xây dng trên hqun trcơ sdliu mySql. Các thông tin  
vtrưꢂng, khoa ñưꢠc lưu trtheo hình cây, tương ng vi mi ngưꢂi dùng, các mc  
ñꢇ khác nhau thì ñưa ra thông tin khác nhau. Dliu ca hthng là dliu mã  
Unicode.  
Sơ ñꢝ cơ sdliu:  
12  
location  
user  
locID  
varchar(20) <pk >  
usrID  
passwd varchar(30)  
usrType int  
varchar(30) <pk>  
locName varchar(50)  
image  
ownerID  
description varchar(500)  
blob  
int  
<fk >  
log  
logID  
int  
<pk >  
<fk>  
<fk>  
ownerID int  
usrID  
varchar(30)  
topicID varchar(10)  
level  
int  
owner  
<pk>  
ownerID  
int  
ownerName varchar(50)  
topInfoID  
logo  
varchar(10)  
blob  
info  
varchar(10)<pk >  
infoID  
content varchar(500)  
<fk >  
childID varchar(10)  
varchar(10)<fk >  
brotherI  
<pk>: Primary key, Khóa chính  
<fk>: Foreign key, Khóa ngoài  
Hình 3.1. Sơ ñꢍ biu din các bng trong cơ sdliu  
Các bng cơ sdliu:  
user (usrID, passwd, usrType)  
owner (ownerID, ownerName, topInfoID, logo)  
location (locID, locName, image, ownerID, description)  
info (infoID, content, childID, brotherID)  
log (logID, ownerID, usrID, topicID, level)  
3.2.2. Chi tit thit kcơ sdliu  
Mô tcác bng cơ sdliu:  
1. user: Bng lưu ñꢔnh danh ngưꢂi dùng và thông tin.  
Bng 3.1. Hsơ ngưꢅi dùng  
Tên field  
usrID  
passwd  
usrType  
Kiu dliu  
varchar(30)  
varchar(30)  
int  
Mô tꢜ  
Đꢔnh danh ngưꢂi dùng  
Mt khu  
Kiu ngưꢂi dùng, 1: Sinh viên, 2: Khách tham quan  
13  
2. owner: Bng lưu các trưꢂng ñꢃi hc và các khoa  
Bng 3.2. Thông tin trưꢅng, khoa  
Tên field  
ownerID  
ownerName varchar(50)  
Kiu dliu  
int  
Mô tꢜ  
Đꢔnh danh trưꢂng, khoa  
Tên trưꢂng, khoa  
topInfoID  
logo  
varchar(10)  
blob  
Nút info ꢣ ñꢜnh cây lưu trthông tin  
Logo ca trưꢂng  
3. location: Bng lưu trthông tin vcác ñꢔa ñim  
Bng 3.3. Đꢐa ñim, tòa nhà  
Tên field  
locID  
locName  
image  
Kiu dliu  
varchar(20)  
varchar(50)  
blob  
Mô tꢜ  
Đꢔnh danh ñꢔa ñim  
Tên ñꢔa ñim  
nh ca ñꢔa ñim  
ownerID  
description varchar(500)  
int  
Đꢔnh danh ca trưꢂng, khoa qun lý ñꢔa ñim này  
Mô tꢀ ñꢔa ñim, thông tin các phòng (nu là tòa nhà).  
4. info: Bng lưu trthông tin vcác trưꢂng, khoa  
Bng 3.4. Các bn ghi thông tin trưꢅng, khoa  
Tên field  
infoID  
content  
childID  
Kiu dliu  
varchar(10)  
varchar(500)  
varchar(10)  
Mô tꢜ  
Đꢔnh danh nút info.  
Ni dung ca mt nút  
Đꢔnh danh ca nút con trưꢣng  
Đꢔnh danh nút em kꢊ  
brotherID varchar(10)  
5. log: Bng lưu trlch sngưꢂi dùng xem các topic ca các ñꢔa ñim nào.  
Bng 3.5. Lch sngưꢅi dùng  
Tên field  
logID  
ownerID  
usrID  
Kiu dliu  
int  
int  
Mô tꢜ  
Đꢔnh danh lch s, tꢕ ñꢇng thêm vào.  
Đꢔnh danh trưꢂng, khoa  
varchar(30)  
Đꢔnh danh ngưꢂi dùng  
Đꢔnh danh nút là ñꢜnh ca 1 cây con cha thông tin  
trong tng topic (các nút trong bng info).  
topicID  
varchar(10)  
3.2.3. Mô tcây thông tin  
Tt ccác thông tin vTrưꢂng, khoa ñưꢠc lưu trong bng info. Tchc cơ sdꢛ  
liu theo hình cây sphân cp thông tin thành nhiu mc, do ñó tùy ngưꢂi dùng chn  
sxem thông tin theo mc nào.  
14  
Cây thông tin lưu trtheo kiu con trưꢣng và em k. Mi bn ghi trong bng info  
tương ng mt nút trong cây. Mi nút trong cây có thông tin vcon trưꢣng và em k.  
Sơ ñꢝ tchc cây như sau:  
info  
infoID  
content  
brotherID  
childID  
info  
info  
infoID  
infoID  
content  
brotherID  
childID  
content  
brotherID  
childID  
info  
info  
info  
info  
infoID  
infoID  
infoID  
content  
brotherID  
childID  
infoID  
content  
brotherID  
childID  
content  
brotherID  
childID  
content  
brotherID  
childID  
Hình 3.2. Mô hình tchc cây thông tin  
15  
3.3. Mô hình kt ni  
Hình 3.3. Mô hình kt ni  
ng dng vit trên ñin thoi ñóng vai trò là client giao tip vi server qua giao  
thc HTTP. Da vào giao thc HTTP các request tphía client chuyn ñꢋn server,  
server struy vn ñꢋn cơ sdliu MySQL và trli response tương ng. Gói tin  
ñưꢠc ñưꢠc máy di ñꢇng gi ñꢋn webserver là nhng gói tin HTTP request, và thit bꢔ  
di ñꢇng snhn ñưꢠc các HTTP response twebserver.  
Các gói tin HTTP request và HTTP response này scha bên trong các thông  
ñip SOAP request và SOAP response tương ng. Các thông ñip SOAP scha các  
operation ca web service dùng ñꢍ xlý kt ni ñꢋn cơ sdliu to thành mô hình  
truy cp hàm txa RPC (Remote Procedure Call).  
Đꢆi vi dliu nhphân như hình nh, âm thanh, thì vic truyn trc tip qua các  
gói tin HTTP mà không phi qua giao thc SOAP snhanh và thun tin hơn. Hình  
nh sꢙ ñưꢠc trli qua mt servlet.  
16  
3.4. Chc năng ca ng dng Midlet  
3.4.1. Các chc năng ca ng dng  
Hình 3.4. Biu ñꢍ phân rã chc năng  
Khi ngưꢂi dùng mꢣ ꢌng dng, chương trình shin thmàn hình chtrong mt  
khong thi gian, sau ñó svào màn hình ñăng nhp. Sau khi ñăng nhp, chương trình  
schuyn ñꢋn màn hình chính hin thbn ñꢝ khuôn viên Đꢃi hc Quc Gia Hà Ni.  
Các chc năng chính:  
- Đăng ký: Ngưꢂi dùng mi sdng cn có tài khon ñꢍ sdng chương trình sꢙ  
sdng chc năng này ñăng ký mt tài khon mi.  
- Xem chi tit: Khi ngưꢂi dùng xem bn ñꢝ và chn mt ñꢔa ñim. Sau ñó chn  
Xem chi tit, chương trình sꢙ ñưa ra tùy chn xem chi tit mô tꢀ ñꢔa ñim hoc  
xem thông tin vTrưꢂng, khoa qun lý ñꢔa ñim ñã chn.  
- Tìm trưꢀng, khoa: Hin thdanh sách các trưꢂng, khoa trong cơ sdliu, khi  
ngưꢂi dùng chn mt trưꢂng, khoa thì hin thcác tùy chn khác ñꢍ hin thꢔ  
thông tin.  
17  
- Tìm ñꢕa ñim: Hin thdanh sách các ñꢔa ñim trong bn ñꢝ, có mt trưꢂng nhp  
dliu. Khi ngưꢂi dùng nhp dliu thì slc ra các ñꢔa ñim phù hp. Khi chn  
mt ñꢔa ñim thì shin thꢔ ñꢔa ñim ñó trên bn ñꢝ.  
- Trgiúp: Hin thcác thông tin vchương trình và trgiúp.  
3.4.2. Lung xlý chương trình  
(File nh flow.png)  
18  
19  
3.4.2.a. Các chc năng chính  
Chương trình gm 12 Displayable chính: signInForm, signUpForm, mainForm,  
mainMenu, helpForm, findForm, chooseLocOwner, viewLocDetail, viewOwners,  
chooseTopic, chooseLevel, viewOwnerDetail. Chi tit các Displayable như sau:  
signInForm là mt Displayable thhin dưꢒi dng Form. Đây là màn hình ñăng  
nhp, nó có 2 TextField ñꢍ nhp tài khon, mt khu và 4 command:  
- cmSignIn: Đăng nhp vào hthng, nu thành công chuyn ñꢋn mainForm.  
- cmSignUp: Chuyn ñꢋn màn hình ñăng ký (signUpForm).  
- cmViewOnly: Bqua ñăng nhp và chuyn ñꢋn màn hình chính (mainForm).  
- cmExit: Kt thúc chương trình.  
signUpForm là mt Displayable thhin dưꢒi dng Form. Đây là màn hình ñăng  
ký tài khon, nó có 2 TextField ñꢍ nhp tài khon, mt khu, mt ChoiceGroup ñꢍ  
chn kiu ngưꢂi dùng và 2 command:  
- cmSignUp: Đăng ký tài khon mi vi tên, mt khu và kiu ngưꢂi dùng ñã chn.  
- cmBack: Quay li màn hình ñăng nhp.  
Hình 3.6. Màn hình ñăng nhp (signInForm)  
Hình 3.7. Màn hình ñăng ký (signUpForm)  
mainForm là mt Displayable thhin dưꢒi dng GameCanvas. Nó cho phép xꢐ  
lý skin bàn phím, vꢙ ꢀnh bn ñꢝ chi tit. Có 2 command:  
- cmMenu: Chuyn ñꢋn mainMenu.  
- cmExit: Kt thúc chương trình.  
20  
mainMenu là mt Displayable thhin dưꢒi dng List. Đây là mt màn hình thꢍ  
hin danh sách chc năng, nó bao gm danh sách 5 phn t.  
- Chi tit: Chc năng “Xem chi tit”  
- Danh sách trưꢆng, khoa: Chc năng “Tìm trưꢂng, khoa”  
- Đăng nhp li: Chuyn ñꢋn màn hình ñăng nhp signInForm.  
- Tìm ñꢄa ñim: Chc năng “Tìm ñꢔa ñim”  
- Trgiúp: Chc năng “Trgiúp”  
Hình 3.8. Màn hình chính (mainForm)  
Hình 3.9. Màn hình chc năng (mainMenu)  
helpForm là mt Displayable thhin dưꢒi dng Form. Màn hình này thhin  
thông tin chương trình và mt strgiúp, nó có 2 command  
- cmOk: Chuyn vmàn hình chính mainForm.  
- cmBack: Quay li màn hình chc năng mainMenu.  
findForm là mt Displayable thhin dưꢒi dng Form. Màn hình này bao gm  
mt TextField cho phép ngưꢂi dùng nhp ñꢍ lc ñꢔa ñim, mt ChoiceGroup hin  
thcác kt qutìm thy. Có 2 command:  
- cmOK: Chuyn vmainForm, dch chuyn bn ñꢝ ti ñꢔa ñim ñã chn.  
- cmBack: Quay li màn hình chc năng mainMenu.  
21  
Hình 3.10. Màn hình trgiúp (helpForm)  
Hình 3.11. Tìm kim ñꢐa ñim (findLocation)  
chooseLocOwner là mt Displayable thhin dưꢒi dng List. Màn hình này ñưa ra  
2 la chn tương ng vi hai phn t:  
- Xem chi tit ñꢄa ñim: Chuyn ñꢋn màn hình xem thông tin ñꢔa ñim  
viewLocDetail.  
- Thông tin trưꢆng, khoa: Chuyn ñꢋn màn hình la chn topic thông tin  
chooseTopic.  
viewLocDetail là mt Displayable thhin dưꢒi dng Form. Màn hình hin thꢔ  
hình nh và thông tin vꢊ ñꢔa ñim (nu có). Có 2 command:  
- cmOk: Chuyn vmàn hình chính mainForm.  
- cmBack: Chuyn vmàn hình chc năng mainMenu.  
Hình 3.12. Màn hình la chn  
Hình 3.13. Thông tin ñꢐa ñim  
(chooseLocOwner)  
(viewLocDetail)  
22  
viewOwners là mt Displayable thhin dưꢒi dng Form. Màn hình này gm mt  
ChoiceGroup cha các trưꢂng, khoa. Có 2 command:  
- cmOk: Chuyn ti màn hình la chn topic thông tin chooseTopic.  
- cmBack: Quay li màn hình chc năng mainMenu.  
chooseTopic là mt Displayable thhin dưꢒi dng Form. Màn hình gm mt  
ChoiceGroup cha các chꢎ ñꢊ tương ng ñưꢠc cung cp theo ngcnh. Có 3  
command:  
- cmAll: Chn tt ccác chꢎ ñꢊ.  
- cmNone: Bchn tt ccác chꢎ ñꢊ.  
- cmOk: Chuyn ñꢋn màn hình chooseLevel.  
Hình 3.14. Chn trưꢅng, khoa (viewOwners)  
Hình 3.15. Chn chꢗ ñꢀ (chooseTopic)  
chooseLevel là mt Displayable thhin dưꢒi dng Form. Màn hình cho phép la  
chn mc ñꢇ chi tit ñꢆi vi tng chꢎ ñꢊ ñã chn. Có 2 command:  
- cmOk: Chuyn ñꢋn màn hình viewOwnerDetail.  
- cmBack: Chuyn vmàn hình chooseTopic.  
viewOwnerDetail là mt Displayable thhin dưꢒi dng Form. Màn hình hin thꢔ  
thông tin chi tit vtrưꢂng, khoa ng vi chꢎ ñꢊ và mc ñꢇ chi tit thông tin ñã  
chn. Có 2 command:  
- cmOk: Chuyn ñꢋn màn hình mainForm.  
- cmBack: Chuyn vmàn hình chooseLevel.  
23  

Tải về để xem bản đầy đủ

pdf 53 trang yennguyen 16/04/2025 90
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu lập trình ứng dụng cho các thiết bị di động áp dụng cho bài toán Campus Guide", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nghien_cuu_lap_trinh_ung_dung_cho_cac_thiet_bi_di.pdf