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 HꢁC QUꢂC GIA HÀ NꢃI
TRƯꢄNG ĐꢀIHꢁC CÔNG NGHꢅ
Nguyꢆn Thanh Xuâ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
KHOÁ LUꢈN TꢂT NGHIꢅP ĐꢀI HꢁC Hꢅ CHÍNH QUY
Ngành: Mꢌng và truyꢍn thông máy tính
HÀ NꢃI - 2010
ĐꢀI HꢁC QUꢂC GIA HÀ NꢃI
TRƯꢄNG ĐꢀI HꢁC CÔNG NGHꢅ
Nguyꢆn Thanh Xuâ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
KHOÁ LUꢈN TꢂT NGHIꢅP ĐꢀI HꢁC Hꢅ CHÍNH QUY
Ngành: Mꢌng và truyꢍn thông máy tính
Cán bꢎ hưꢏng dꢐn: ThS. Nguyꢆn Viꢑt Anh
HÀ NꢃI - 2010
LꢄI CꢒM ƠN
Em xin chân thành cꢀm ơn các thꢁy cô giáo trong trưꢂng Đꢃi hꢄc Công nghꢅ -
Đꢃi hꢄc Quꢆc gia Hà Nꢇi ñã tꢈn tình giúp ñꢉ và truyꢊn ñꢃt kiꢋn thꢌc cho em trong suꢆt
4 năm hꢄc qua ñꢍ em có ñꢎ kiꢋn thꢌc hoàn thành khóa luꢈn này.
Đꢏc biꢅt, em xin gꢐi lꢂi cꢀm ơn sâu sꢑc tꢒi thꢁy Nguyꢓn Viꢅt Anh – ngưꢂi ñã
nhiꢅt tình giúp ñꢉ, ñꢔnh hưꢒng cũng như ñꢇng viên em trong quá trình nghiên cꢌu và
hoàn thành khóa luꢈn.
Em xin cꢀm ơn sꢕ nhiꢅt tình chia sꢖ kinh nghiꢅm, ñóng góp ý kiꢋn cꢎa nhóm
nghiên cꢌu do thꢁy Nguyꢓn Viꢅt Anh hưꢒng dꢗn, cꢎa các anh chꢔ cao hꢄc.
Mꢏc dù ñã rꢘt cꢆ gꢑng hoàn thành khóa luꢈn này, xong khóa luꢈn sꢙ khó tránh
khꢚi nhꢛng thiꢋu sót, kính mong quý thꢁy cô tꢈn tình chꢜ bꢀo giúp em. Mꢇt lꢁn nꢛa em
xin cꢀm ơn tꢘt cꢀ mꢄi ngưꢂi.
Hà Nꢇi, tháng 5 năm 2010
Sinh viên
Nguyꢓn Thanh Xuân
TÓM TꢓT
Khóa luꢈn tꢈp trung nghiên cꢌu và phân tích mꢇt sꢆ vꢘn ñꢊ sau:
- Tìm hiꢍu vꢊ công nghꢅ J2ME, Web service, Servlet, bꢀn ñꢝ.
- Áp dꢞng xꢐ lý dꢛ liꢅu theo ngꢛ cꢀnh vào các bài toán thꢕc tꢋ.
- Xây dꢕng thành công chương trình “Hưꢒng dꢗn cung cꢘp thông tin vꢊ Đꢃi hꢄc
Quꢆc gia Hà Nꢇi - VNU Campus Guide”. ꢟng dꢞng ñã ñáp ꢌng ñưꢠc nhꢛng
chꢌc năng cꢁn thiꢋt nhꢘt trong viꢅc xem bꢀn ñꢝ, cung cꢘp thông tin theo ngꢛ
cꢀnh vꢊ Đꢃi hꢄc Quꢆc gia Hà Nꢇi.
MꢉC LꢉC
CHƯƠNG 1. Mꢔ ĐꢕU...................................................................................................1
1.1. Lý do chꢖn ñꢍ tài .....................................................................................................1
1.2. Nhiꢑm vꢗ nghiên cꢘu ..............................................................................................1
1.3. Bꢙ cꢗc cꢚa khóa luꢛn ..............................................................................................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 ñꢍ xuꢝt.......................................................................................................4
2.3.1. Mô hình ngưꢀi sꢁ dꢂng........................................................................................4
2.3.2. Yꢃu tꢄ ngꢅ cꢆnh....................................................................................................5
2.3.3. Mô hình nꢇi dung.................................................................................................7
2.3.4. Các cách cài ñꢈt cây thông tin .............................................................................9
2.3.5. Luꢉt lꢊa chꢋn thông tin cung cꢌp cho tꢍng ngưꢀi dùng..................................10
CHƯƠNG 3. PHÂN TÍCH THIꢊT Kꢊ CHƯƠ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 cꢎu chꢏc năng......................................................................11
3.1.1.a. Đăng nhꢀp, ñăng ký.........................................................................................11
3.1.1.b. Xem bꢁn ñꢂ ......................................................................................................11
3.1.1.c. Tìm kiꢃm ñꢄa ñiꢅm............................................................................................11
3.1.1.d. Danh sách trưꢆng, khoa ..................................................................................11
3.1.1.e. Trꢇ giúp ...........................................................................................................11
3.1.1.f.
Xem chi tiꢃt ......................................................................................................12
3.1.2. Đꢄi tưꢐng sꢁ dꢂng..............................................................................................12
3.2. Thiꢞt kꢞ cơ sꢟ dꢠ liꢑu ............................................................................................12
3.2.1. Sơ ñꢑ dꢅ liꢒu .......................................................................................................12
3.2.2. Chi tiꢃt thiꢃt kꢃ cơ sꢓ dꢅ liꢒu..............................................................................13
3.2.3. Mô tꢆ cây thông tin.............................................................................................14
3.3. Mô hình kꢞt nꢙi......................................................................................................16
3.4. Chꢘc năng cꢚa ꢘng dꢗng Midlet .........................................................................17
3.4.1. Các chꢏc năng cꢔa ꢏng dꢂng............................................................................17
3.4.2. Luꢑng xꢁ lý chương trình.................................................................................18
3.4.2.a. Các chꢈc năng chính .......................................................................................20
3.4.2.b. Luꢂng chương trình .........................................................................................24
3.5. Chꢘc năng phía Server .........................................................................................25
3.5.1. Web service..........................................................................................................25
3.5.2. Servlet..................................................................................................................26
3.6. Các Module xꢡ lý...................................................................................................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 NGHꢅ Sꢢ DꢉNG .....................................................................29
4.1. Lĩnh vꢣc ꢘng dꢗng không dây vꢏi công nghꢑ Java............................................29
4.1.1. Các phiên bꢆn 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 kiꢅu ꢈng dꢉng MIDP ................................................................................30
4.1.3.b. Hꢊn chꢃ cꢋa các thiꢃt bꢄ di ñꢌng .....................................................................31
4.2. Lꢛp trình Web Service vꢏi MIDP........................................................................31
4.2.1. Dꢕch vꢂ Web (Web service).................................................................................31
4.2.1.a. Đꢄnh nghĩa .......................................................................................................31
4.2.1.b. Các ñꢍc ñiꢅm chính cꢋa dꢄch vꢉ We:...............................................................32
4.2.1.c. Tꢊi sao dùng dꢄch vꢉ Web................................................................................32
4.2.1.d. Các thành phꢎn cơ bꢁn....................................................................................32
4.2.2. WSDL..................................................................................................................32
4.2.3. UDDI...................................................................................................................35
4.2.4. SOAP...................................................................................................................35
4.3. Công nghꢑ bꢜn ñꢤ..................................................................................................38
4.3.1. ꢖnh SVG .............................................................................................................38
4.3.1.a. Các thuꢌc tính cꢋa ꢁnh SVG............................................................................38
4.3.1.b. Các chꢈc năng và ñꢍc trưng............................................................................39
4.3.1.c. Ưu ñiꢅm............................................................................................................39
4.3.1.d. Nhưꢇc ñiꢅm......................................................................................................40
4.3.2. SVG tiny ..............................................................................................................40
4.3.3. Xꢁ lý các ñꢄi tưꢐng trong ꢆnh SVG...................................................................40
CHƯƠNG 5. CÀI ĐꢥT VÀ THꢢ NGHIꢅM..............................................................41
5.1. Yêu cꢦu...................................................................................................................41
5.2. Cài ñꢧt ....................................................................................................................41
5.3. Thꢡ nghiꢑm chương trình ....................................................................................41
CHƯƠNG 6. KꢊT LUꢈN ............................................................................................45
6.1. Kꢞt quꢜ ñꢌt ñưꢨc...................................................................................................45
6.2. Hưꢏng phát triꢩn...................................................................................................45
TÀI LIꢅU THAM KHꢒO...............................................................................................46
CHƯƠNG 1. Mꢔ ĐꢕU
1.1. Lý do chꢖn ñꢍ tài
Công nghꢅ thông tin là mꢇt phꢁn quan trꢄng cꢎa cuꢇc sꢆng. Các thiꢋt bꢔ kꢡ thuꢈt
cao ngày càng gꢁn gũi vꢒi mꢄi hoꢃt ñꢇng cꢎa con ngưꢂi. Đꢏc biꢅt nhꢛng năm gꢁn ñây,
các thiꢋt bꢔ không giây - vꢒi ưu thꢋ nhꢚ gꢄn, dꢙ mang chuyꢍn, ñã chꢌng tꢚ ñưꢠc lꢠi ích
to lꢒn cho ngưꢂi sꢐ dꢞng. Trong ñó ñiꢅn thoꢃi di ñꢇng, vꢒi chꢌc năng liên lꢃc nꢢi bꢈt
lên như mꢇt vꢈt bꢘt ly thân. Vꢒi sꢕ phát triꢍn nhanh chóng cꢎa công nghꢅ sꢀn xuꢘt
thiꢋt bꢔ không dây, ñiꢅn thoꢃi di ñꢇng ñã trꢣ thành phương tiꢅn ña chꢌc năng(nghe
nhꢃc, chơi trò chơi, lꢔch làm viꢅc..) phꢞc vꢞ cho nhu cꢁu giꢀi trí, làm viꢅc, cꢈp nhꢈt
thông tin mꢄi lúc, mꢄi nơi.
Trong cuꢇc sꢆng, nhu cꢁu liên lꢃc, cꢈp nhꢈt thông tin là hꢋt sꢌc cꢁn thiꢋt. Hiꢅn
nay có rꢘt nhiꢊu phương pháp liên lꢃc khác nhau như thư ñiꢅn tꢐ, ñiꢅn thoꢃi ñꢍ bàn,
ñiꢅn thoꢃi di ñꢇng, kꢋt nꢆi Wi-fi, WiMax… Trong ñó, ñiꢅn thoꢃi di ñꢇng nꢢi bꢈt vꢒi
sꢕ tiꢅn lꢠi, hꢛu ích. Nhꢂ chꢌc năng ñàm thoꢃi trꢕc tiꢋp mꢄi lúc mꢄi nơi, mà ñiꢅn thoꢃi
di ñꢇng ngày càng ñưꢠc sꢐ dꢞng rꢇng rãi. Điꢅn thoꢃi di ñꢇng là thiꢋt bꢔ phát triꢍn
nhanh chóng nhꢘt cꢀ vꢊ công nghꢅ lꢗn tính năng, ꢌng dꢞng. Ngày nay, hꢁu như mꢤi
ngưꢂi ñꢊu mang theo bên mình mꢇt chiꢋc ñiꢅn thoꢃi di ñꢇng.
Nhu cꢁu tìm hiꢍu vꢊ Đꢃi hꢄc Quꢆc Gia Hà Nꢇi cũng như các trưꢂng ñꢃi hꢄc
thành viên là cꢁn thiꢋt. Bên cꢃnh ñó, do khuôn viên rꢇng, có nhiꢊu tòa nhà ñꢔa ñiꢍm
nên nhu cꢁu tìm vꢔ trí tòa nhà là cꢁn thiꢋt. Viꢅc phát triꢍn ꢌng dꢞng trên ñi dꢇng cho
hưꢒng dꢗn trong khuôn viên Đꢃi hꢄc Quꢆc Gia Hà Nꢇi rꢘt hꢛu ích. Ngưꢂi dùng có thꢍ
ngay lꢈp tꢌc tìm ñưꢠc ñꢔa ñiꢍm bꢘt cꢌ lúc nào.
Vì nhꢛng lý do này, em quyꢋt ñꢔnh thꢕc hiꢅn ñꢊ tài “VNU Campus Guide –
hưꢒng dꢗn, thông tin vꢊ Đꢃi hꢄc Quꢆc Gia Hà Nꢇi – trên nꢊn J2ME”.
1.2. Nhiꢑm vꢗ nghiên cꢘu
Đꢊ tài cꢁn giꢀi quyꢋt nhꢛng nhiꢅm vꢞ sau:
Thꢈ nhꢏt: Xây dꢕng ꢌng dꢞng chính trên nꢊn J2ME. ꢟng dꢞng cꢁn hiꢍn thꢔ ñưꢠc
bꢀn ñꢝ khuôn viên Đꢃi hꢄc Quꢆc Gia Hà Nꢇi, lꢘy thông tin vꢊ trưꢂng tꢥ server.
Thꢈ hai: Cꢁn xây dꢕng mꢇt ꢌng dꢞng Web server cung cꢘp, xꢐ lý thông tin cho
ꢌng dꢞng phía Client là thiꢋt bꢔ di ñꢇng. Server sꢐ dꢞng công nghꢅ J2EE, WSDL. Tìm
hiꢍu các công nghꢅ ñꢍ kꢋt nꢆi tꢥ ꢌng dꢞng trên thiꢋt bꢔ di ñꢇng ñꢋn Web server.
1
Thꢈ ba: Tìm hiꢍu thông tin, tꢢ chꢌc thông tin phù hꢠp ñꢍ cung cꢘp cho ngưꢂi
dùng vꢒi ngꢛ cꢀnh khác nhau:
Ngưꢂi dùng khác nhau (sinh viên, khách tham quan, …)
Thꢂi gian xem thông tin.
1.3. Bꢙ cꢗc cꢚa khóa luꢛn
Khóa luꢈn gꢝm 5 chương
- Chương 1. Mꢣ ñꢁu.
Nêu khái quát ñꢊ tài, nhiꢅm vꢞ nghiên cꢌu.
- Chương 2. Bài toán
Nêu bài toán, các yꢋu tꢆ ngꢛ cꢀnh, mô hình ñꢊ xuꢘt.
- Chương 3. Phân tích thiꢋt kꢋ chương trình VNU Campus Guide.
Thiꢋt kꢋ chi tiꢋt mô tꢀ hꢅ thꢆng VNU Campus Guide.
- Chương 4. Công nghꢅ.
Trình bày các công nghꢅ dùng trong hꢅ thꢆng VNU Campus Guide: J2ME, J2EE,
công nghꢅ bꢀn ñꢝ.
- Chương 5. Cài ñꢏt và thꢐ nghiꢅm.
Chi tiꢋt cách cài ñꢏt, triꢍn khai chương trình, các kꢋt quꢀ thꢐ nghiꢅm chương
trình.
2
CHƯƠNG 2. BÀI TOÁN
2.1. Bài toán
Khuôn viên Đꢃi hꢄc Quꢆc gia Hà Nꢇi rꢇng vꢒi nhiꢊu tòa nhà, mꢇt sinh viên mꢒi
hay khách tham quan chưa biꢋt ñưꢠc vꢔ trí các tòa nhà, ñꢔa ñiꢍm. Thông tin chi tiꢋt mô
tꢀ vꢊ các trưꢂng, khoa trong Đꢃi hꢄc Quꢆc gia cũng cꢁn thiꢋt ñꢆi vꢒi hꢄ. Mꢇt bꢀng chꢜ
dꢗn ñơn thuꢁn không thꢍ thꢚa mãn nhu cꢁu tìm hiꢍu thông tin.
Ngày nay, hꢁu hꢋt mꢄi ngưꢂi ñꢊu có bên mình chiꢋc ñiꢅn thoꢃi di ñꢇng nhꢚ gꢄn,
nhiꢊu chꢌc năng. Vꢒi sꢕ phát triꢍn công nghꢅ như ngày nay, các thiꢋt bꢔ di ñꢇng ngày
càng ña dꢃng, năng lꢕc xꢐ lý càng tăng. Viꢅc xây dꢕng các ꢌng dꢞng cho thiꢋt bꢔ di
ñꢇng ngày càng trꢣ lên dꢓ dàng hơn.
Vì vꢈy viꢅc mꢇt ꢌng dꢞng cho phép mꢄi ngưꢂi dꢓ dàng xác ñꢔnh tòa nhà, ñꢔa
ñiꢍm ꢣ vꢔ trí nào trong khuôn viên là cꢁn thiꢋt. Ngoài ra ꢌng dꢞng phꢀi cung cꢘp thông
tin cꢁn thiꢋt cho ngưꢂi dùng theo ngꢛ cꢀnh.
2.2. Mô tꢜ
Mꢞc tiêu cꢎa chương trình là ngưꢂi dùng tìm kiꢋm ñꢔa ñiꢍm, truy xuꢘt thông tin
cꢁn thiꢋt vꢊ các trưꢂng, khoa trong Đꢃi hꢄc Quꢆc gia nꢋu hꢄ có ñiꢊu kiꢅn sꢣ hꢛu mꢇt
chiꢋc ñiꢅn thoꢃi di ñꢇng hꢤ trꢠ ꢌng dꢞng Java.
Cꢁn có giao diꢅn cho phép ngưꢂi dùng xem bꢀn ñꢝ khu vꢕc ñꢍ xác ñꢔnh các tòa
nhà, ñꢔa ñiꢍm trong Đꢃi hꢄc Quꢆc gia Hà Nꢇi.
Mꢤi ngưꢂi dùng ñꢊu có nhu cꢁu tìm hiꢍu thông tin khác nhau, vì thꢋ lưꢠng thông
tin cung cꢘp cho tꢥng ngưꢂi cũng phꢀi khác nhau.
Các thông tin cung cꢘp phꢀi tùy thuꢇc 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
Vꢒi mꢇt thiꢋt bꢔ di ñꢇng có hꢤ trꢠ Java, ngưꢂi dùng có thꢍ sꢐ dꢞng chương trình
bꢘt kỳ ñâu, vào bꢘt kỳ thꢂi gian nào.
Tĩnh ngꢅ cꢆnh
Vꢒi ngꢛ cꢀnh ngưꢂi dùng, ngꢛ cꢀnh môi trưꢂng, lưꢠng thông tin cung cꢘp sꢙ
khác nhau.
3
2.3. Mô hình ñꢍ xuꢝt
Mꢞc tiêu cꢎa nghiên cꢌu là phát triꢍn mꢇt ꢌng dꢞng giúp mꢄi ngưꢂi có thꢍ dꢓ
dàng truy cꢈp thông tin, tìm hiꢍu vꢊ Đꢃi hꢄc Quꢆc gia ꢣ bꢘt cꢌ ñâu, bꢘt cꢌ lúc nào chꢜ
vꢒi mꢇt thiꢋt bꢔ di dꢇng hꢤ trꢠ Java và có khꢀ năng kꢋt nꢆi Internet.
Hꢅ thꢆng sꢙ cung cꢘp thông tin, hình ꢀnh, chꢜ dꢗn phù hꢠp vꢒi ngꢛ cꢀnh. Bên
cꢃnh ñó trong quá trình hoꢃt ñꢇng hꢅ thꢆng sꢙ tꢕ ñꢇng nhꢈn biꢋt sꢕ thay ñꢢi ngꢛ cꢀnh
ñꢍ thay ñꢢi nꢇi dung cho phù hꢠp.
Hꢃ thꢄng
Thông tin
Xꢈ lý
Thông tin
yêu cꢇu
thông tin
ngꢁ cꢂnh
Ngưꢀi dùng
Luꢃt lꢄa chꢅn
Thông tin
Trưꢀng, khoa
Nꢆi dung theo
ngꢁ cꢂnh
thông tin
Hình 2.1. Mô hình ñꢀ xuꢁt xây dꢂng hꢃ thꢄng
Mꢤi khi ngưꢂi dùng yêu cꢁu lꢘy thông tin, hꢅ thꢆng sꢙ lꢘy thông tin, yêu cꢁu cꢎa
ngưꢂi dùng ñꢍ cꢈp nhꢈt thông tin ngꢛ cꢀnh. Thông tin ngꢛ cꢀnh này sꢙ ñưꢠc mꢇt luꢈt
lꢕa chꢄn thông tin sꢐ dꢞng. Sau khi chꢄn lꢕa ñưꢠc thông tin, chương trình sꢙ thay ñꢢi
ngꢛ cꢀnh như lꢔch sꢐ xem thông tin …
2.3.1. Mô hình ngưꢀi sꢁ dꢂng
Mꢤi ngưꢂi dùng có nhiꢊu thông tin cá nhân cũng như thông tin vꢊ môi trưꢂng
khác nhau, rꢘt nhiꢊu yꢋu tꢆ ꢀnh hưꢣng nhưng ta chꢜ chꢄn nhꢛng yꢋu tꢆ chính, quan
trꢄng ꢀnh hưꢣng ñꢋn ngꢛ cꢀnh ngưꢂi dùng.
Các tác nhân thꢍ hiꢅn ngꢛ cꢀnh cꢎa ngưꢂi sꢐ dꢞng:
4
Thꢫi gian
Ví trꢪ
Lꢪch sꢡ
xem thông
tin
Thông tin
ngưꢫi dùng
Hình 2.2. Mô hình ngưꢅi dùng
Vꢪ trí: là thông tin thꢕc vꢊ vꢔ trí hiꢅn tꢃi cꢎa ngưꢂi dùng. Ta có thꢍ biꢍu diꢓn nó
theo kinh ñꢇ và vĩ ñꢇ. Do vꢔ trí cꢎa ngưꢂi dùng thay ñꢢi thưꢂng xuyên nên viꢅc xác
ñꢔnh vꢔ trí cꢎa ngưꢂi dùng là ñưꢠc ưu tiên. Có nhiꢊu cách ta có thꢍ xác ñꢔnh ñưꢠc vꢔ
trí hiꢅn tꢃi cꢎa ngưꢂi sꢐ dꢞng như sꢐ dꢞng công nghꢅ ñꢔnh vꢔ A-GPS, E-OTD hay
Cell-ID hoꢏc TOA… Ngoài ra, location còn bao gꢝm cꢀ các thông tin không gian, và
vꢔ trí hiꢅn tꢃi cꢎa ngưꢂi sꢐ dꢞng.
Thꢫi gian: Thꢂi gian ꢣ ñây là thꢂi gian sꢐ dꢞng chương trình, mꢤi ngưꢂi dùng
có ñꢇ tꢈp trung cũng như lưꢠng thꢂi gian có thꢍ dùng ñꢍ xem thông tin khác nhau.
Thông tin ngưꢫi dùng: Mꢤi ngưꢂi dùng có thông tin khác nhau, lưꢠng thông tin
cung cꢘp cho các ñꢆi tưꢠng ngưꢂi dùng khác nhau cũng phꢀi khác nhau phù hꢠp vꢒi
ñꢇ tuꢢi, sꢣ thích…
Lꢪch sꢡ xem thông tin: Mꢤi khi xem mꢇt thông tin rꢝi thì ngưꢂi dùng thưꢂng
không muꢆn xem tiꢋp trong lꢁn tiꢋp theo, do ñó cꢁn lưu trꢛ lꢔch sꢐ xem thông tin ñꢍ xꢐ
lý trong nhꢛng lꢁn tiꢋp theo.
2.3.2. Yꢃu tꢄ ngꢅ cꢆnh
"Bꢆi cꢀnh là bꢘt kỳ thông tin có thꢍ ñưꢠc sꢐ dꢞng ñꢍ ñꢏc trưng cho hoàn cꢀnh
cꢎa mꢇt thꢕc thꢍ. Thꢕc thꢍ là mꢇt ngưꢂi, ñꢔa ñiꢍm, hoꢏc ñꢆi tưꢠng ñó ñưꢠc coi là có
5
liên quan ñꢋn sꢕ tương tác giꢛa ngưꢂi sꢐ dꢞng và mꢇt ꢌng dꢞng, bao gꢝm cꢀ ngưꢂi
dùng và ꢌng dꢞng chính hꢄ" - Dey, Abowd & Salber [1].
Paul Dourish ñã nói rꢦng có hai góc nhìn khác nhau vꢊ ngꢛ cꢀnh [5]:
- Ngꢛ cꢀnh như mꢇt ñꢃi diꢅn
o Ngꢛ cꢀnh là mꢇt hình thꢌc cꢎa thông tin. Nó có thꢍ ñưꢠc biꢋt ñꢋn (và do ñó mã
hóa và biꢍu diꢓn như các thông tin khác trong các hꢅ thꢆng phꢁn mꢊm).
o Ngꢛ cꢀnh là có khꢀ năng khoanh ñꢔnh. Chúng ta có thꢍ xác ñꢔnh nhꢛng gì có
giá trꢔ như là bꢆi cꢀnh cꢎa hoꢃt ñꢇng mà hꢤ trꢠ ꢌng dꢞng.
o Ngꢛ cꢀnh là ꢢn ñꢔnh. Mꢏc dù các yꢋu tꢆ chính xác cꢎa mꢇt biꢍu diꢓn ngꢛ cꢀnh
có thꢍ khác nhau tùy theo ꢌng dꢞng, chúng không thay ñꢢi trong cách thꢍ hiꢅn
cꢎa mꢇt hoꢃt ñꢇng hay mꢇt sꢕ kiꢅn. Xác ñꢔnh sꢕ liên quan cꢎa bꢘt kỳ yꢋu tꢆ
tiꢊm năng theo ngꢛ cꢀnh có thꢍ ñưꢠc thꢕc hiꢅn mꢇt lꢁn và cho tꢘt cꢀ.
o Ngꢛ cꢀnh và các hoꢃt ñꢇng ñưꢠc tách riêng. Hoꢃt ñꢇng xꢀy ra “trong” mꢇt ngꢛ
cꢀnh. Ngꢛ cꢀnh mô tꢀ các ñꢏc trưng cꢎa môi trưꢂng trong ñó các hoꢃt ñꢇng
diꢓn ra, nhưng ñó là tách biꢅt vꢒi hoꢃt ñꢇng.
- Ngꢛ cꢀnh như mꢇt tương tác
o Thay vì xem xét ngꢛ cꢀnh ñꢍ ñưꢠc thông tin, ngꢛ cꢀnh ñưꢠc xem như mꢇt
thuꢇc tính quan hꢅ ꢣ giꢛa các ñꢆi tưꢠng hoꢏc các hoꢃt ñꢇng. Nó không ñơn
giꢀn là trưꢂng hꢠp cái mà cái gì ñó là ngꢛ cꢀnh hoꢏc không, mà nó có thꢍ hoꢏc
không là theo ngꢛ cꢀnh liên quan ñꢋn mꢇt sꢆ hoꢃt ñꢇng cꢞ thꢍ.
o Thay vì xem như ngꢛ cꢀnh có thꢍ ñưꢠc khoanh ñꢔnh và ñưꢠc xác ñꢔnh trưꢒc,
cách nhìn thay thꢋ chꢜ ra rꢦng phꢃm vi cꢎa các tính năng ñưꢠc ñꢔnh nghĩa ñꢇng.
o Thay vì xem ngꢛ cꢀnh là ꢢn ñꢔnh, bꢆi cꢀnh ñưꢠc xem rꢦng là cꢞ thꢍ cho tꢥng
lꢁn hoꢃt ñꢇng hoꢏc hành ñꢇng. Bꢆi cꢀnh là mꢇt thuꢇc tính thꢂi ñiꢍm, có liên
quan ñꢋn các cài ñꢏt cꢞ thꢍ, ñꢏc biꢅt trưꢂng hꢠp hành ñꢇng và các phꢁn cꢞ thꢍ
ñꢍ hành ñꢇng.
o Thay vì ñꢏt bꢆi cꢀnh và nꢇi dung thành hai thꢕc thꢍ riêng biꢅt, xem rꢦng bꢆi
cꢀnh phát sinh tꢥ hoꢃt ñꢇng. Bꢆi cꢀnh không chꢜ là “ꢣ ñó”, mà là ñang ñưꢠc
tꢃo ra, duy trì và ñưa ra trong quá trình hoꢃt ñꢇng.
Ngꢅ cꢆnh chương trình:
6
- Thông tin ngưꢂi dùng: mꢤi ngưꢂi dùng sꢙ có thông tin khác nhau như: tên, kiꢍu
ngưꢂi dùng, lưꢠng thông tin cꢁn xem…
- Vꢔ trí: Vꢔ trí ngưꢂi dùng ñưꢠc xác ñꢔnh dꢕa trên Location-Based Service hoꢏc do
ngưꢂi dùng chꢎ ñꢇng lꢕa chꢄn. Khi ꢣ ví trꢔ xác ñꢔnh, thông tin cung cꢘp sꢙ tương
ꢌng vꢒi ñꢔa ñiꢍm ñó.
- Thꢂi gian xem thông tin: mꢌc ñꢇ chi tiꢋt cꢎa thông tin sꢙ dꢕa vào thꢂi gian ngưꢂi
dùng muꢆn xem, ngưꢂi dùng có nhiꢊu thꢂi gian có thꢍ xem thông tin vꢒi mꢌc ñꢇ
chi tiꢋt cao hơn.
- Lꢔch sꢐ xem thông tin: Khi mꢇt ngưꢂi ñã xem mꢇt thông tin thì không cꢁn thiꢋt
phꢀi xem lꢃi, do ñó cꢁn loꢃi bꢚ tùy chꢄn xem thông tin ñó ꢣ nhꢛng lꢁn sau.
2.3.3. Mô hình nꢇi dung
Thông tin sꢙ ñưꢠc phân cꢘp theo mꢌc ñꢇ chi tiꢋt. Đꢍ phân cꢘp theo mꢌc ñꢇ chi
tiꢋt, ta chꢄn mô hình thông tin hình cây. Mꢤi nút sꢙ có mꢇt lưꢠng thông tin nhꢘt ñꢔnh.
Tùy thuꢇc vào ngꢛ cꢀnh thì sꢙ lꢘy thông tin ꢣ mꢇt nhánh các nút khác nhau.
7
1
2
3
Đꢜnh ñưꢠc gꢑn vꢒi mꢇt
trưꢂng, khoa
Đꢜnh cây
Chia ra 2 nhánh tương
ꢌng vꢒi kiꢍu ngưꢂi dùng
nút
nút
nút
nút
Mꢌc topic: chia ra
nhiꢊu topic khác
4
nút
nút
Mꢌc thông tin 1:
Tóm tꢑt tꢥng phꢁn.
5
6
nút
nút
Mꢌc thông tin 2:
Tiêu ñꢊ các ñoꢃn
nút
nút
Mꢌc thông tin 3:
Nꢇi dung các ñoꢃn
Hình 2.3. Cây thông tin lưu trꢆ vꢀ các trưꢅng, khoa
- Đꢜnh cây là mꢇt nút tương ꢌng vꢒi mꢇt phꢁn thông tin.
- Mꢌc thꢌ 2 tương ꢌng vꢒi tꢥng kiꢍu ngưꢂi dùng.
- Mꢌc thꢌ 3 tương ꢌng vꢒi tꢥng topic cꢎa cho tꢥng kiꢍu ngưꢂi dùng.
- Mꢌc thꢌ 4, 5, 6 tương ꢌng vꢒi 3 mꢌc thông tin theo tùy chꢄn cꢎa ngưꢂi dùng.
o Mꢌc bꢆn: Mꢌc thông tin 1, tóm tꢑt tꢥng phꢁn.
o Mꢌc năm: Mꢌc thông tin 2, tiêu ñꢊ tꢥng ñoꢃn
o Mꢌc sáu: Mꢌc thông tin 3, nꢇi dung tꢥng ñoꢃn.
8
2.3.4. Các cách cài ñꢈt cây thông tin
Thông tin vꢊ Trưꢂng, khoa cꢁn tꢢ chꢌc phân cꢘp theo mꢌc ñꢇ chi tiꢋt cꢎa thông
tin. Ngoài ra cꢁn chia thông tin theo tꢥng ñꢆi tưꢠng ngưꢂi dùng. Do dó nên tꢢ chꢌc
theo mô hình cây.
Cây có thꢍ cài ñꢏt bꢣi 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 dꢞng nhꢘt.
Phương pháp 1: chꢗ ra danh sách các ñꢗnh con cꢔa mꢘi ñꢗnh
Vꢒi mꢤi ñꢜnh cꢎa cây, ta sꢐ dꢞng mꢇt con trꢚ trꢚ tꢒi mꢇt ñꢜnh con cꢎa nó. Và
như vꢈy, mꢤi ñꢜnh cꢎa cây ñưꢠc biꢍu diꢓn bꢣi mꢇt cꢘu trúc gꢝm hai thành phꢁn: mꢇt
biꢋn data lưu dꢛ liꢅu chꢌa trong ñꢜnh ñó và mꢇt mꢀng child các con trꢚ trꢚ tꢒi các ñꢜnh
con. Cꢁn có mꢇt con trꢚ ngoài trꢚ tꢒi gꢆc cây root. Giꢀ sꢐ mꢤi ñꢔnh có nhiꢊu nhꢘt 4
ñꢜnh con, ta có mô hình như sau:
root
ꢀ
ꢀ ꢀ ꢀ
ꢀ ꢀ
ꢀ ꢀ ꢀ
ꢀ ꢀ ꢀ
ꢀ ꢀ ꢀ
Hình 2.4. Cài ñꢇt cây bꢈi mꢉng con trꢊ
Cách cài ñꢏt này thưꢂng không hiꢅu quꢀ, tꢆn bꢇ nhꢒ do sꢆ lưꢠng nút con cꢎa các
nút là khác nhau, mꢇt nút có thꢍ không có tꢆi ña các nút con, do ñó con trꢚ ñꢍ trꢆng.
Phương pháp 2: chꢗ ra con cꢆ và em liꢙn kꢙ cꢔa mꢘi ñꢗnh
Thay vì sꢐ dꢞng mꢀng con trꢚ, ta chꢜ sꢐ dꢞng hai con trꢚ: con trꢚ firstChild trꢚ
tꢒi ñꢜnh con cꢀ và con trꢚ nextBrother trꢚ tꢒi em liꢊn kꢊ.
9
root
A
C
F
B
E
D
G
Hình 2.5. Cài ñꢇt cây sꢋ dꢌng hai con trꢊ.
Vꢒi cách này, cây trong hình 3.1 ñưꢠc cài ñꢏt bꢣi CTDL như trong hình 3.2. Dꢓ
dàng thꢘy rꢦng, xuꢘt phát tꢥ gꢆc ñi theo con trꢚ firstChild hoꢏc con trꢚ nextBrother, ta
có thꢍ truy cꢈp tꢒi ñꢜnh bꢘt kỳ trong cây. Ta có nhꢈn xét rꢦng, các con trꢚ nextBrother
liên kꢋt các ñꢜnh tꢃo thành mꢇt danh sách liên kꢋt biꢍu diꢓn danh sách các ñꢜnh con cꢎa
mꢤi ñꢜnh.
Cách cài ñꢏt này hiꢅu quꢀ hơn vì nó chꢜ sꢐ dꢞng 2 con trꢚ, lưꢠng bꢇ nhꢒ dư thꢥa
ít hơn. Vì vꢈy chương trình sꢙ dùng cách này ñꢍ biꢍu diꢓn thông tin.
2.3.5. Luꢉt lꢊa chꢋn thông tin cung cꢌp cho tꢍng ngưꢀi dùng
Khi chꢄn mꢇt trưꢂng, khoa thì sꢙ ñi theo cây có ñꢜnh tương ꢌng vꢒi trưꢂng, khoa
ñó.
Đꢆi vꢒi tꢥng kiꢍu ngưꢂi dùng sꢙ ñi theo nhánh tương ꢌng ꢣ mꢌc 2. Ta sꢙ có các
topic khác nhau ꢣ mꢌc 3.
Khi lꢕa chꢄn mꢇt topic vꢒi thꢂi gian tương ꢌng, thông tin sꢙ ñưꢠc lꢘy ꢣ nhánh
cꢎa topic như sau:
- Mꢌc thꢂi gian 1: Lꢘy tꢘt cꢀ thông tin trong cây ꢣ mꢌc bꢆn.
- Mꢌc thꢂi gian 2: Lꢘy tꢘt cꢀ thông tin trong cây ꢣ mꢌc bꢆn và năm.
- Mꢌc thꢂi gian 3: Lꢘy tꢘt cꢀ thông tin trong cây ꢣ mꢌc bꢆn, năm và sáu.
10
CHƯƠNG 3. PHÂN TÍCH THIꢊT Kꢊ CHƯƠNG TRÌNH VNU
CAMPUS GUIDE
3.1. Phân tích
3.1.1. Phân tích các yêu cꢎu chꢏc năng
3.1.1.a. Đăng nhꢀp, ñăng ký
Thông tin cꢎa chương trình cung cꢘp theo ngꢛ cꢀnh. Ngꢛ cꢀnh bao gꢝm cꢀ thông
tin ngưꢂi dùng, do ñó cꢁn xác thꢕc ngưꢂi dùng ñꢍ ñưa ra lưꢠng thông tin phù hꢠp. Vì
vꢈy cꢁn yêu cꢁu Đăng nhꢈp.
Khi ñăng nhꢈp cꢁn tài khoꢀn ngưꢂi dùng, do ñó cꢁn yêu cꢁu Đăng ký tài khoꢀn
ñꢆi vꢒi ngưꢂi dùng mꢒi.
3.1.1.b. Xem bꢁn ñꢂ
Khuôn viên Đꢃi hꢄc Quꢆc gia rꢇng vꢒi nhiꢊu tòa nhà. Cꢁn có bꢀn ñꢝ ñꢍ ngưꢂi
dùng có cái nhìn tꢢng quan, xác ñꢔnh, tìm kiꢋm ñꢔa ñiꢍm thích hꢠp. Do ñó chương
trình có màn hình chính thꢍ hiꢅn bꢀn ñꢝ vꢒi các tương tác cơ bꢀn như: dꢔch chuyꢍn bꢀn
ñꢝ, phóng to, thu nhꢚ…
3.1.1.c. Tìm kiꢃm ñꢄa ñiꢅm
Vꢒi nhiꢊu tòa nhà trong khuôn viên thì khó có thꢍ xác ñꢔnh ngay ñưꢠc mꢇt ñꢔa
ñiꢍm nào ñó, vì vꢈy cꢁn có chꢌc năng tìm kiꢋm ñꢔa ñiꢍm sau ñó hiꢍn thꢔ trên bꢀn ñꢝ.
3.1.1.d. Danh sách trưꢆng, khoa
Ngưꢂi dùng có nhu cꢁu tìm hiꢍu thông tin có thꢍ trꢕc tiꢋp chꢄn Trưꢂng, khoa ñꢍ
xem thông tin.
3.1.1.e. Trꢇ giúp
Ngưꢂi dùng mꢒi cꢎa chương trình có thꢍ không quen và chưa biꢋt chꢌc năng nên
cꢁn có chꢌc năng Trꢠ giúp cung cꢘp thông tin chương trình và hưꢒng dꢗn sꢐ dꢞng.
11
3.1.1.f. Xem chi tiꢃt
Khi chꢄn mꢇt ñꢔa ñiꢍm trên bꢀn ñꢝ, ngưꢂi dùng muꢆn xem thông tin, chương
trình cꢁn ñưa ra thông tin vꢊ ñꢔa ñiꢍm, tòa nhà cũng như Trưꢂng, khoa quꢀn lý ñꢔa
ñiꢍm ñó.
Lưꢠng thông tin cung cꢘp phꢀi tùy thuꢇc vào ngꢛ cꢀnh: ngưꢂi dùng, lưꢠng thông
tin…
3.1.2. Đꢄi tưꢐng sꢁ dꢂng
Hꢅ thꢆng ñưꢠc xây dꢕng ñꢍ hꢤ trꢠ cho các nhóm sau:
- Khách tham quan: Nhꢛng ngưꢂi muꢆn tham quan tìm hiꢍu vꢊ Đꢃi hꢄc Quꢆc gia.
- Sinh viên: Nhꢛng sinh viên mꢒi chưa biꢋt và tìm hiꢍu ñưꢠc hꢋt thông tin vꢊ
Trưꢂng có thꢍ sꢐ dꢞng chương trình.
3.2. Thiꢞt kꢞ cơ sꢟ dꢠ liꢑu
3.2.1. Sơ ñꢑ dꢅ liꢒu
Cꢣ sꢣ dꢛ liꢅu ñưꢠc xây dꢕng trên hꢅ quꢀn trꢔ cơ sꢣ dꢛ liꢅu mySql. Các thông tin
vꢊ trưꢂng, khoa ñưꢠc lưu trꢛ theo hình cây, tương ꢌng vꢒi mꢤi ngưꢂi dùng, các mꢌc
ñꢇ khác nhau thì ñưa ra thông tin khác nhau. Dꢛ liꢅu cꢎa hꢅ thꢆng là dꢛ liꢅu mã
Unicode.
Sơ ñꢝ cơ sꢣ dꢛ liꢅu:
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ơ ñꢍ biꢎu diꢏn các bꢉng trong cơ sꢈ dꢆ liꢃu
Các bꢀng cơ sꢣ dꢛ liꢅu:
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 tiꢃt thiꢃt kꢃ cơ sꢓ dꢅ liꢒu
Mô tꢀ các bꢀng cơ sꢣ dꢛ liꢅu:
1. user: Bꢀng lưu ñꢔnh danh ngưꢂi dùng và thông tin.
Bꢉng 3.1. Hꢍ sơ ngưꢅi dùng
Tên field
usrID
passwd
usrType
Kiꢩu dꢠ liꢑu
varchar(30)
varchar(30)
int
Mô tꢜ
Đꢔnh danh ngưꢂi dùng
Mꢈt khꢧu
Kiꢍu ngưꢂi dùng, 1: Sinh viên, 2: Khách tham quan
13
2. owner: Bꢀng lưu các trưꢂng ñꢃi hꢄc và các khoa
Bꢉng 3.2. Thông tin trưꢅng, khoa
Tên field
ownerID
ownerName varchar(50)
Kiꢩu dꢠ liꢑu
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 trꢛ thông tin
Logo cꢎa trưꢂng
3. location: Bꢀng lưu trꢛ thông tin vꢊ các ñꢔa ñiꢍm
Bꢉng 3.3. Đꢐa ñiꢎm, tòa nhà
Tên field
locID
locName
image
Kiꢩu dꢠ liꢑu
varchar(20)
varchar(50)
blob
Mô tꢜ
Đꢔnh danh ñꢔa ñiꢍm
Tên ñꢔa ñiꢍm
ꢨnh cꢎa ñꢔa ñiꢍm
ownerID
description varchar(500)
int
Đꢔnh danh cꢎa trưꢂng, khoa quꢀn lý ñꢔa ñiꢍm này
Mô tꢀ ñꢔa ñiꢍm, thông tin các phòng (nꢋu là tòa nhà).
4. info: Bꢀng lưu trꢛ thông tin vꢊ các trưꢂng, khoa
Bꢉng 3.4. Các bꢉn ghi thông tin trưꢅng, khoa
Tên field
infoID
content
childID
Kiꢩu dꢠ liꢑu
varchar(10)
varchar(500)
varchar(10)
Mô tꢜ
Đꢔnh danh nút info.
Nꢇi dung cꢎa mꢇt nút
Đꢔnh danh cꢎa nút con trưꢣng
Đꢔnh danh nút em kꢊ
brotherID varchar(10)
5. log: Bꢀng lưu trꢛ lꢔch sꢐ ngưꢂi dùng xem các topic cꢎa các ñꢔa ñiꢍm nào.
Bꢉng 3.5. Lꢐch sꢋ ngưꢅi dùng
Tên field
logID
ownerID
usrID
Kiꢩu dꢠ liꢑu
int
int
Mô tꢜ
Đꢔnh danh lꢔch 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 cꢎa 1 cây con chꢌa thông tin
trong tꢥng topic (các nút trong bꢀng info).
topicID
varchar(10)
3.2.3. Mô tꢆ cây thông tin
Tꢘt cꢀ các thông tin vꢊ Trưꢂng, khoa ñưꢠc lưu trong bꢀng info. Tꢢ chꢌc cơ sꢣ dꢛ
liꢅu theo hình cây sꢙ phân cꢘp thông tin thành nhiꢊu mꢌc, do ñó tùy ngưꢂi dùng chꢄn
sꢙ xem thông tin theo mꢌc nào.
14
Cây thông tin lưu trꢛ theo kiꢍu con trưꢣng và em kꢊ. Mꢤi bꢀn ghi trong bꢀng info
tương ꢌng mꢇt nút trong cây. Mꢤi nút trong cây có thông tin vꢊ con trưꢣng và em kꢊ.
Sơ ñꢝ tꢢ chꢌc cây như sau:
info
infoID
content
brotherID
childID
info
info
infoID
infoID
…
content
brotherID
childID
content
brotherID
childID
infoID
infoID
infoID
content
brotherID
childID
infoID
…
…
content
brotherID
childID
content
brotherID
childID
content
brotherID
childID
Hình 3.2. Mô hình tꢑ chꢒc cây thông tin
15
3.3. Mô hình kꢞt nꢙi
Hình 3.3. Mô hình kꢓt nꢄi
ꢟng dꢞng viꢋt trên ñiꢅn thoꢃi ñóng vai trò là client giao tiꢋp vꢒi server qua giao
thꢌc HTTP. Dꢕa vào giao thꢌc HTTP các request tꢥ phía client chuyꢍn ñꢋn server,
server sꢙ truy vꢘn ñꢋn cơ sꢣ dꢛ liꢅu MySQL và trꢀ lꢃi response tương ꢌng. Gói tin
ñưꢠc ñưꢠc máy di ñꢇng gꢐi ñꢋn webserver là nhꢛng gói tin HTTP request, và thiꢋt bꢔ
di ñꢇng sꢙ nhꢈn ñưꢠc các HTTP response tꢥ webserver.
Các gói tin HTTP request và HTTP response này sꢙ chꢌa bên trong các thông
ñiꢅp SOAP request và SOAP response tương ꢌng. Các thông ñiꢅp SOAP sꢙ chꢌa các
operation cꢎa web service dùng ñꢍ xꢐ lý kꢋt nꢆi ñꢋn cơ sꢣ dꢛ liꢅu tꢃo thành mô hình
truy cꢈp hàm tꢥ xa RPC (Remote Procedure Call).
Đꢆi vꢒi dꢛ liꢅu nhꢔ phân như hình ꢀnh, âm thanh, thì viꢅc truyꢊn trꢕc tiꢋp qua các
gói tin HTTP mà không phꢀi qua giao thꢌc SOAP sꢙ nhanh và thuꢈn tiꢅn hơn. Hình
ꢀnh sꢙ ñưꢠc trꢀ lꢃi qua mꢇt servlet.
16
3.4. Chꢘc năng cꢚa ꢘng dꢗng Midlet
3.4.1. Các chꢏc năng cꢔa ꢏng dꢂng
Hình 3.4. Biꢎu ñꢍ phân rã chꢒc năng
Khi ngưꢂi dùng mꢣ ꢌng dꢞng, chương trình sꢙ hiꢍn thꢔ màn hình chꢂ trong mꢇt
khoꢀng thꢂi gian, sau ñó sꢙ vào màn hình ñăng nhꢈp. Sau khi ñăng nhꢈp, chương trình
sꢙ chuyꢍn ñꢋn màn hình chính hiꢍn thꢔ bꢀn ñꢝ khuôn viên Đꢃi hꢄc Quꢆc Gia Hà Nꢇi.
Các chꢌc năng chính:
- Đăng ký: Ngưꢂi dùng mꢒi sꢐ dꢞng cꢁn có tài khoꢀn ñꢍ sꢐ dꢞng chương trình sꢙ
sꢐ dꢞng chꢌc năng này ñăng ký mꢇt tài khoꢀn mꢒi.
- Xem chi tiꢃt: Khi ngưꢂi dùng xem bꢀn ñꢝ và chꢄn mꢇt ñꢔa ñiꢍm. Sau ñó chꢄn
Xem chi tiꢋt, chương trình sꢙ ñưa ra tùy chꢄn xem chi tiꢋt mô tꢀ ñꢔa ñiꢍm hoꢏc
xem thông tin vꢊ Trưꢂng, khoa quꢀn lý ñꢔa ñiꢍm ñã chꢄn.
- Tìm trưꢀng, khoa: Hiꢍn thꢔ danh sách các trưꢂng, khoa trong cơ sꢣ dꢛ liꢅu, khi
ngưꢂi dùng chꢄn mꢇt trưꢂng, khoa thì hiꢍn thꢔ các tùy chꢄn khác ñꢍ hiꢍn thꢔ
thông tin.
17
- Tìm ñꢕa ñiꢚm: Hiꢍn thꢔ danh sách các ñꢔa ñiꢍm trong bꢀn ñꢝ, có mꢇt trưꢂng nhꢈp
dꢛ liꢅu. Khi ngưꢂi dùng nhꢈp dꢛ liꢅu thì sꢙ lꢄc ra các ñꢔa ñiꢍm phù hꢠp. Khi chꢄn
mꢇt ñꢔa ñiꢍm thì sꢙ hiꢍn thꢔ ñꢔa ñiꢍm ñó trên bꢀn ñꢝ.
- Trꢐ giúp: Hiꢍn thꢔ các thông tin vꢊ chương trình và trꢠ giúp.
3.4.2. Luꢑng xꢁ lý chương trình
(File ꢁnh flow.png)
18
19
3.4.2.a. Các chꢈc năng chính
Chương trình gꢝm 12 Displayable chính: signInForm, signUpForm, mainForm,
mainMenu, helpForm, findForm, chooseLocOwner, viewLocDetail, viewOwners,
chooseTopic, chooseLevel, viewOwnerDetail. Chi tiꢋt các Displayable như sau:
• signInForm là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Đây là màn hình ñăng
nhꢈp, nó có 2 TextField ñꢍ nhꢈp tài khoꢀn, mꢈt khꢧu và 4 command:
- cmSignIn: Đăng nhꢈp vào hꢅ thꢆng, nꢋu thành công chuyꢍn ñꢋn mainForm.
- cmSignUp: Chuyꢍn ñꢋn màn hình ñăng ký (signUpForm).
- cmViewOnly: Bꢚ qua ñăng nhꢈp và chuyꢍn ñꢋn màn hình chính (mainForm).
- cmExit: Kꢋt thúc chương trình.
• signUpForm là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Đây là màn hình ñăng
ký tài khoꢀn, nó có 2 TextField ñꢍ nhꢈp tài khoꢀn, mꢈt khꢧu, mꢇt ChoiceGroup ñꢍ
chꢄn kiꢍu ngưꢂi dùng và 2 command:
- cmSignUp: Đăng ký tài khoꢀn mꢒi vꢒi tên, mꢈt khꢧu và kiꢍu ngưꢂi dùng ñã chꢄn.
- cmBack: Quay lꢃi màn hình ñăng nhꢈp.
Hình 3.6. Màn hình ñăng nhꢔp (signInForm)
Hình 3.7. Màn hình ñăng ký (signUpForm)
• mainForm là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng GameCanvas. Nó cho phép xꢐ
lý sꢕ kiꢅn bàn phím, vꢙ ꢀnh bꢀn ñꢝ chi tiꢋt. Có 2 command:
- cmMenu: Chuyꢍn ñꢋn mainMenu.
- cmExit: Kꢋt thúc chương trình.
20
• mainMenu là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng List. Đây là mꢇt màn hình thꢍ
hiꢅn danh sách chꢌc năng, nó bao gꢝm danh sách 5 phꢁn tꢐ.
- Chi tiꢃt: Chꢌc năng “Xem chi tiꢋt”
- Danh sách trưꢆng, khoa: Chꢌc năng “Tìm trưꢂng, khoa”
- Đăng nhꢀp lꢊi: Chuyꢍn ñꢋn màn hình ñăng nhꢈp signInForm.
- Tìm ñꢄa ñiꢅm: Chꢌc năng “Tìm ñꢔa ñiꢍm”
- Trꢇ giúp: Chꢌc năng “Trꢠ giúp”
Hình 3.8. Màn hình chính (mainForm)
Hình 3.9. Màn hình chꢒc năng (mainMenu)
• helpForm là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình này thꢍ hiꢅn
thông tin chương trình và mꢇt sꢆ trꢠ giúp, nó có 2 command
- cmOk: Chuyꢍn vꢊ màn hình chính mainForm.
- cmBack: Quay lꢃi màn hình chꢌc năng mainMenu.
• findForm là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình này bao gꢝm
mꢇt TextField cho phép ngưꢂi dùng nhꢈp ñꢍ lꢄc ñꢔa ñiꢍm, mꢇt ChoiceGroup hiꢍn
thꢔ các kꢋt quꢀ tìm thꢘy. Có 2 command:
- cmOK: Chuyꢍn vꢊ mainForm, dꢔch chuyꢍn bꢀn ñꢝ tꢒi ñꢔa ñiꢍm ñã chꢄn.
- cmBack: Quay lꢃi màn hình chꢌc năng mainMenu.
21
Hình 3.10. Màn hình trꢕ giúp (helpForm)
Hình 3.11. Tìm kiꢓm ñꢐa ñiꢎm (findLocation)
• chooseLocOwner là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng List. Màn hình này ñưa ra
2 lꢕa chꢄn tương ꢌng vꢒi hai phꢁn tꢐ:
- Xem chi tiꢃt ñꢄa ñiꢅm: Chuyꢍn ñꢋn màn hình xem thông tin ñꢔa ñiꢍm
viewLocDetail.
- Thông tin trưꢆng, khoa: Chuyꢍn ñꢋn màn hình lꢕa chꢄn topic thông tin
chooseTopic.
• viewLocDetail là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình hiꢍn thꢔ
hình ꢀnh và thông tin vꢊ ñꢔa ñiꢍm (nꢋu có). Có 2 command:
- cmOk: Chuyꢍn vꢊ màn hình chính mainForm.
- cmBack: Chuyꢍn vꢊ màn hình chꢌc năng mainMenu.
Hình 3.12. Màn hình lꢂa chꢖn
Hình 3.13. Thông tin ñꢐa ñiꢎm
(chooseLocOwner)
(viewLocDetail)
22
• viewOwners là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình này gꢝm mꢇt
ChoiceGroup chꢌa các trưꢂng, khoa. Có 2 command:
- cmOk: Chuyꢍn tꢒi màn hình lꢕa chꢄn topic thông tin chooseTopic.
- cmBack: Quay lꢃi màn hình chꢌc năng mainMenu.
• chooseTopic là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình gꢝm mꢇt
ChoiceGroup chꢌa các chꢎ ñꢊ tương ꢌng ñưꢠc cung cꢘp theo ngꢛ cꢀnh. Có 3
command:
- cmAll: Chꢄn tꢘt cꢀ các chꢎ ñꢊ.
- cmNone: Bꢚ chꢄn tꢘt cꢀ các chꢎ ñꢊ.
- cmOk: Chuyꢍn ñꢋn màn hình chooseLevel.
Hình 3.14. Chꢖn trưꢅng, khoa (viewOwners)
Hình 3.15. Chꢖn chꢗ ñꢀ (chooseTopic)
• chooseLevel là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình cho phép lꢕa
chꢄn mꢌc ñꢇ chi tiꢋt ñꢆi vꢒi tꢥng chꢎ ñꢊ ñã chꢄn. Có 2 command:
- cmOk: Chuyꢍn ñꢋn màn hình viewOwnerDetail.
- cmBack: Chuyꢍn vꢊ màn hình chooseTopic.
• viewOwnerDetail là mꢇt Displayable thꢍ hiꢅn dưꢒi dꢃng Form. Màn hình hiꢍn thꢔ
thông tin chi tiꢋt vꢊ trưꢂng, khoa ꢌng vꢒi chꢎ ñꢊ và mꢌc ñꢇ chi tiꢋt thông tin ñã
chꢄn. Có 2 command:
- cmOk: Chuyꢍn ñꢋn màn hình mainForm.
- cmBack: Chuyꢍn vꢊ màn hình chooseLevel.
23
Tải về để xem bản đầy đủ
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:
khoa_luan_nghien_cuu_lap_trinh_ung_dung_cho_cac_thiet_bi_di.pdf