Khóa luận Xây dựng ứng dụng Client cho hệ thống thông tin giao thông

TRƯNG ………………….  
KHOA……………………….  
----------  
Báo cáo tt nghip  
Đề tài:  
XÂY DNG NG DNG CLIENT CHO HỆ  
THNG THÔNG TIN GIAO THÔNG  
i
LI CÁM ƠN  
Khóa lun này là thành quln nht trong những năm học đại hc của em. Để hoàn  
thành đưc khóa lun, ngoài scgng ca bản thân, em đã nhận được sự giúp đỡ ca rt  
nhiều người.  
Đầu tiên con xin cám ơn bố mẹ đã sinh thành và nuôi dưỡng con đến ngày hôm nay.  
Em xin cám ơn các thy cô Khoa Công NghThông Tin và các thy cô ging dy ti  
trường Đại hc Công Nghệ đã tn tình ging dy, truyền đạt cho em rt nhiu kiến thc  
trong suốt 4 năm đại hc.  
Em xin cám ơn Tiến sĩ, cô giáo Trần ThMinh Châu – Ging viên khoa Công nghệ  
thông tin trường Đại hc Công nghệ đã tn tình hướng dẫn và giúp đỡ em trong quá trình  
thc hin khóa lun này.  
Xin cám ơn các anh chị khóa trước đã giải đáp rất nhiu thông tin giúp em có thể  
hoàn thành tt khóa lun.  
Khóa lun ca em skhông ththành công nếu không có sự giúp đỡ ca mọi người.  
Xin cám ơn tất c.  
ii  
TÓM TẮT KHÓA LUẬN  
Giao thông đang thực slà vấn đề được rt nhiều người quan tâm. Đặc bit ở nước  
ta, khi mật độ các phương tiện giao thông gia tăng mạnh mtrong những năm gần đây.  
Vi mong mun góp phn gim thiu tình trng ùn tắc giao thông, giúp người dân chủ  
động hơn khi tham gia giao thông, mc tiêu ca khóa lun này là xây dng ng dng  
Client cho hthng thông tin giao thông. ng dụng được cài đặt trên điện thoại di động  
cho phép người dùng tìm kiếm các địa điểm mà htham gia giao thông và gi tin nhn tra  
cứu đến Server giải đáp.  
Khóa lun strình bày mt skiến thức cơ bản vJ2ME và SMS, các công nghệ  
được sdụng để xây dng ng dng. Phn sau ca khóa lun strình bày các bước phân  
tích, thiết kế, xây dựng và các hướng dn trin khai ng dng trên thiết bị di động gilp.  
iii  
Mục lục  
LỜI CÁM ƠN.........................................................................................................i  
TÓM TT KHÓA LUN.....................................................................................iii  
Chương 1. Mở đầu ............................................................................................. 1  
Chương 2. Lp trình ng dụng cho đin thoại di động vi J2ME ....................... 3  
2.1. Tng quan vJ2ME..................................................................................... 3  
2.1.1. Gii thiu J2ME ................................................................................... 3  
2.1.2. Kiến trúc ca J2ME .............................................................................. 4  
2.2. Cu trúc ng dng MIDlet........................................................................... 7  
2.2.1. JAD và JAR.......................................................................................... 7  
2.2.2 Vòng đời ca mt MIDLet..................................................................... 8  
2.3. Đồ ha trong J2ME ................................................................................... 10  
2.3.1. Đồ ha mc cao (High Level Graphics) :............................................ 11  
2.4. Lưu trữ dliu vi Record Management System (RMS)........................... 12  
2.4.1. Các thao tác mở, đóng hay xóa bản ghi............................................... 13  
2.4.2. Thao tác vi các bn ghi ..................................................................... 13  
2.4.3. Sdng hiu quRMS qua các lp tin ích....................................... 15  
2.5. Kết ni mạng cơ bản trong J2ME ............................................................. 15  
2.5.1. Cơ chế kết ni Client – Server ............................................................ 15  
2.5.2. Tìm hiu CLDC Generic Connection Framework............................... 16  
Chương 3. Dch vtin nhn SMS..................................................................... 18  
3.1. Lch sca SMS ....................................................................................... 18  
iv  
3.2. Li ích ca dch vtin nhn SMS.............................................................. 18  
3.3 Mô hình dch vtin nhn SMS ................................................................... 19  
Chương 4. ng dng hthng giao thông cho thiết bị di động sdng SMS... 20  
4.1. Mô thoạt động ca hthng:................................................................... 20  
4.2. Hoạt động và các chức năng chính của Client............................................ 21  
Chương 5. Phân tích thiết kế ứng dng............................................................. 22  
5.1 Biểu đồ ca sdng ..................................................................................... 22  
5.1.1. Lược đồ các ca sdng chính................................................................. 22  
5.1.2. Mô tcác ca sdng: ............................................................................. 24  
5.2. Biểu đồ lp................................................................................................ 27  
5.2.1. Biểu đồ lp mc tng th:................................................................... 27  
5.2.2. Các biểu đồ lp chi tiết. ...................................................................... 27  
Chương 6. Các màn hình chính và hướng dn demo ng dng......................... 34  
6.1. Demo các chức năng xem danh sách địa điểm hay khu vc....................... 34  
6.2. Demo chức năng quản lý địa điểm:............................................................ 36  
6.3. Demo chức năng Tìm kiếm địa điểm. ........................................................ 36  
6.4. Demo chức năng thiết lp cu hình:........................................................... 37  
6.5. Demo chức năng nhn tin tra cu: ............................................................. 38  
6.6 Demo chức năng Nhắn tin cp nht. ........................................................... 40  
6.7 Demo chức năng Hướng dn sdng:........................................................ 42  
Chương 7. Kết lun .......................................................................................... 43  
Tài liu tham kho................................................................................................ 44  
v
DANH SÁCH HÌNH VẼ  
Hình 1: Kiến trúc J2ME .......................................................................................... 4  
Hình 2: Cơ chế hoạt động ca máy o Java ............................................................ 5  
Hình 3: Máy o Java trong các phiên bn ca Java ................................................ 6  
Hình 4. Vòng đời mt MIDLet................................................................................. 9  
Hình 5: Đồ ha trong J2ME.................................................................................. 11  
Hình 6: Cu trúc phân cp các lớp đồ ha mc cao.............................................. 12  
Hình 7: Cơ chế lưu trữ trong mt kho cha các bn ghi........................................ 14  
Hình 8: Cơ chế kết ni gia thiết bị di động và Web server................................... 16  
Hình 9: Mi quan hgia các giao din htrcho lp trình mng trong J2ME... 16  
Hình 10: Mô hình dch vSMS.............................................................................. 19  
Hình 11: Các thành phn ca hthng ................................................................. 20  
Hình 12: Biểu đồ các ca sdng........................................................................... 23  
Hình 13: Biểu đồ lp mc tng th........................................................................ 27  
Hình 14: Biểu đồ lp Location .............................................................................. 28  
Hình 15: Biểu đồ lp Zone .................................................................................... 28  
Hình 16: Biểu đồ lp DataRMS............................................................................. 29  
Hình 17: Biểu đồ lp DisplayManager.................................................................. 29  
Hình 18: Cơ chế hoạt động ca Stack.................................................................... 30  
Hình 19: Biểu đồ lp BaseForm............................................................................ 30  
Hình 20: Các lp kế tha tBaseForm ................................................................. 31  
Hình 21: Biểu đồ lp SettingForm......................................................................... 32  
Hình 22: Biểu đồ lp DetailForm.......................................................................... 32  
vi  
Hình 23: Biểu đồ các lp Sender và Receiver........................................................ 33  
Hình 24: Màn hình chính ca SMS Gateway gilp ............................................. 34  
Hình 25: Màn hình chính ng dng Client ............................................................ 35  
Hình 26: Màn hình xem danh sách địa điểm và khu vc........................................ 35  
Hình 27: Màn hình quản lý địa đim ..................................................................... 36  
Hình 28: Màn hình tìm kiếm địa đim ................................................................... 37  
Hình 29: Màn hình thiết lp cu hình.................................................................... 38  
Hình 30: Màn hình chtin nhắn đến trên SMS Gateway ....................................... 39  
Hình 31: Tin nhn nhận đưc trên SMS Gateway.................................................. 39  
Hình 32: Hin thtin nhn nhận đưc lên màn hình.............................................. 40  
Hình 33: Màn hình chn tình trạng địa điểm......................................................... 41  
Hình 34: Cú pháp tin nhn cp nhật địa đim ....................................................... 41  
Hình 35: Màn hình hướng dn sdng................................................................. 42  
DANH SÁCH BNG  
Bng 1: Danh sách các ca sdng........................................................................ 24  
Bng 2: Mô tca sdụng Danh sách địa điểm ..................................................... 24  
Bng 3: Mô tca sdụng Danh sách địa điểm khu vc ........................................ 25  
Bng 4: Mô tca sdng Tìm kiếm địa đim........................................................ 25  
Bng 5: Mô tca sdng Quản lý địa đim.......................................................... 26  
Bng 6: Mô tca sdng Gi tin nhn SMS........................................................ 26  
Bng 7: Mô tca sdụng Hướng dn sdng...................................................... 26  
vii  
Chương 1. Mở đầu  
Giao thông thc sự đang là một vấn đề mà cxã hội đang rất quan tâm. Hin nay,  
dân stp trung quá nhiu các khu vc thành th, nội đô cũng như mật độ các phương tiện  
giao thông gia tăng một cách chóng mặt trong khi cơ sở htng hin tại đang trong giai  
đoạn từng bước quy hoch li. Vấn đề này kéo theo hquca nó là tình hình giao thông  
các khu vc thành phphát trin luôn trong tình trạng căng thẳng. Điều này cũng là dễ  
hiểu đối vi một đất nước đang phát triển như chúng ta.  
Trong khi chờ đợi cơ sở htầng đưc qui hoch tốt hơn, thì hng ngày chúng ta vn  
phi lo lng mi ln tham gia giao thông. Hin nay có không ít gii pháp htrcho vic  
thông tin đến người tham gia giao thông tình hình giao thông những điểm nóng mà họ  
quan tâm, trong số đó phổ biến nht có lẽ là thông qua đài tiếng nói Vit Nam, kênh VOV  
Giao thông. Không thphnhn nhng hiu quả mà kênh thông tin này làm được. Tuy  
nhiên, không phi bt kai cũng có có điu kin theo dõi radio mi lúc mọi nơi được.  
Vi mong mun có thể đưa được thông tin tình hình giao thông ti nhiều người dân  
để giúp hchủ động hơn trong việc tham gia giao thông, chúng tôi la chọn đề tài “Hệ  
thng thông tin giao thông qua SMS” vi mc tiêu xây dng mt hthng cung cp thông  
tin về các địa điểm, các tuyến đường cho người sdng thông qua hthng tin nhn  
SMS. Chúng ta thy rng hiện nay đin thoại di động đã thc strthành thiết bcá nhân  
rt phbiến. Tin nhn SMS cũng rất quen thuc với người dùng di động, vì mức độ đơn  
gin ca nó.  
Khóa lun này snghiên cu tìm hiu công nghlp trình ng dụng cho điện thoi  
di động J2ME, các kiến thức cơ bản vdch vnhắn tin SMS. Sau đó ở phn cui ng  
dng sxây dng phn Client cho hthng thông tin giao thông.  
Mặc dù để trin khai ng dụng đi vào thực tế, scòn nhiu vấn đề cn xem xét gii  
quyết, tuy nhiên khóa lun cũng đã gii thiệu đầy đủ nhng kiến thc cn thiết vJ2ME  
để có thxây dng mt ng dụng đơn giản. Chương trình demo phn Client ca hthng  
thông tin giao thông đã được cài đt và cho kết qutt trên thiết bgilp.  
Khóa luận được chia thành 7 chương:  
1
Chương 1 giới thiu tng quan vmục đích và ý nghĩa của khóa lun.  
Chương 2 sẽ trình bày mt cách khái quát vJ2ME. Trong phm vi khóa lun, tôi  
chgii thiu các vấn đề đã nghiên cu, tìm hiu trong quá trình xây dng ng dng  
Client.  
Chương 3 sẽ dành để nói vdch vtin nhn SMS, lch s, hiu qukinh tế, và cơ  
chế hoạt động ca dch vnày.  
Các chương 4,5,6 trình bày vquá trình phân tích, thiết kế để xây dng ng dng.  
Chương 7 kết lun nhng vấn đề đã gii quyết được hay hướng phát trin, trin khai  
cho hthng.  
2
Chương 2. Lp trình ng dụng cho điện thoại di động vi J2ME  
2.1. Tổng quan về J2ME  
2.1.1. Giới thiệu J2ME  
Java là mt ngôn nglp trình bậc cao hướng đối tượng được Sun gii thiu rng rãi  
từ tháng 5 năm 1995. Skiện này đã to nên mt cuc cách mạng trong tư duy lập trình  
và hướng gii quyết vấn đề ca các nhà phát trin. Bcông cphát trin Java (Java  
Development Kit) phiên bản đầu tiên cũng được Sun công bố ngay sau đó vào tháng 2  
năm 1996, tạo thun li cho vic tạo ra các chương trình Java.  
Cùng vi sphát trin ln mnh nhvào những tính năng ưu việt như hỗ trlp  
trình hướng đối tượng, đáp ứng đa nền tảng, đến tháng 12 năm 1998, Sun công bố Java 2,  
vi ba phiên bn khác nhau: Standard Edition (J2SE) cho các máy tính để bàn và xách  
tay, Enterprise Edition (J2EE) cho các máy chln, và Micro Edition (J2ME) cho các  
thiết bnh. Thc chất J2ME được phát trin tkiến trúc Java Card, Embeded Java và  
Personal Java ca phiên bản Java 1.1. Đến sra đời ca Java 2 thì Sun quyết định thay  
thế Personal Java và được gi vi tên mi là Java 2 Micro Edition, hay viết tt là J2ME.  
Thc tế, J2ME là mt nn tng, mt bcác công nghệ và các đặc tả được thiết kế cho thị  
trường các thiết bnhkhác nhau. Java ME bao gm cu hình – configuration, hin trng  
– profiles và các gói tùy chn khác. Các cu hình là các đặc tchi tiết mt máy o và mt  
bcác giao din lp trình API cơ sở dùng cho mt lp các thiết bcth. Ví d, mt cu  
hình được thiết kế cho các thiết bcó bnhớ dưới 512KB và mt kết ni mng hay bị  
gián đoạn. Máy ảo trong trường hp này có thể là JVM đầy đủ hoc mt tp con ca  
JVM.  
Hin trạng đưc xây dng trên mt cu hình cthể nhưng có bổ sung các đc tAPI  
để to ra một môi trường hoàn chnh cho vic phát trin các ng dng. Mc dù cu hình  
mô tmt máy o JVM và mt tập API cơ sở, nhưng tự bn thân nó lại không đủ chi tiết  
để cho phép xây dng mt ng dng hoàn chnh. Các cu hình thường bao gm các API  
cho vòng đời ca mt ng dng, các giao diện người dùng và cơ chế lưu trữ cố định.  
Các gói tùy chn cung cp các hàm không có trong cu hình hay hin trng cth.  
Mt ví dca gói tùy chn là Bluetooth API (JSR 82), nó cung cp các giao din chun  
3
cho vic sdng mng Bluetooth. Gói ty chn này có thể được thc thi song song vi  
mt cu hình hay hin trng bt k.  
2.1.2. Kiến trúc của J2ME  
Hình 1: Kiến trúc J2ME1  
Các thành phần cơ bản trong kiến trúc ca J2ME gm có:  
Cu hình (Configuration) là đặc tả định nghĩa một môi trường phn mm cho mt  
dòng các thiết bị được phân loi bi tp hp các thuc tính, ví dụ như:  
+ Kiu và số lượng bnhớ  
+ Kiu và tốc độ bvi xlý  
+ Kiu mng kết ni  
Do đây là đặc tnên các nhà sn xut thiết bị như Samsung, Nokia …bắt buc phi  
thực thi đầy đủ các đặc tả do Sun qui định đcác lp trình viên có thdựa vào môi trường  
lp trình nht quán và thông qua snht quán này, các ng dụng được to ra có thmang  
tính đc lp thiết bcao nht có th.  
Hiện nay Sun đã đưa ra 2 dạng Configuration:  
-
Cu hình thiết bkết ni gii hn (Connected Limited Device  
Configuration CLDC):  
4
Được thiết kế để nhm vào thị trường các thiết bcp thp (low-end), các thiết bị  
này thông thường là máy điện thọai di đng và PDA vi khong 512 KB bnh.  
- Cu hình thiết bkết ni (Connected Device Configuration).  
CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bthuc  
CLĐC nhưng vẫn yếu hơn cho các hệ thống máy để bàn sdng J2SE. Nhng thiết bị  
này có nhiu bnhớ hơn hơn (thông thường là trên 2Mb) và có bxlý mạnh hơn. Các  
sn phm này có thkể đến như các máy PDA cấp cao, đin thoi web hay các thiết bgia  
dụng trong gia đình.  
Một thành phần đặc trưng chung của tất cả các công nghệ Java, bao gồm cả J2ME,  
đó là máy ảo Java.  
Hình 2: Cơ chế hoạt động ca máy o Java2  
Máy ảo là một phần mềm dựa trên cơ sở máy tính ảo. Nó có tập hợp các lệnh logic  
để xác định các hoạt động của máy tính. Người ta có thể xem nó như một hệ điều hành  
thu nhỏ. Nó thiết lập các lớp trừu tượng cho: Phần cứng bên dưới, hệ điều hành, mã đã  
biên dịch.  
5
Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo mà không phụ  
thuộc vào phần cứng cụ thể. Trình thông dịch trên mỗi máy sẽ chuyển tập lệnh này thành  
chương trình thực thi.  
Biểu đồ sau sẽ minh họa khả năng của máy ảo JVM trong các phiên bản của Java  
Hình 3: Máy o Java trong các phiên bn ca Java  
Hiện trạng định nghĩa loại của các thiết bị được hỗ trợ bởi ứng dụng của bạn. Một  
cách cụ thể là, nó thêm vào các lớp chuyên dụng cho cấu hình J2ME để định nghĩa các sử  
dụng xác định cho các thiết bị. Hiện trạng được xây dựng ở trên cu hình. Hai hiện trạng  
được định nghĩa cho J2ME và được xây dựng trên CLDC: Kjava và Hiện trạng thiết bị  
thông tin di động (Mobile Information Device Profile – MIDP). Các hiện trạng này hướng  
tới các thiết bị nhỏ hơn.  
CLDC phác họa tập thư viện và tính năng máy ảo Java cơ bản nhất yêu cầu cho việc  
thực thi của J2ME trên các thiết bị ràng buộc cao. Các thiết bị đích của CLDC với kết nối  
mạng chậm, nguồn giới hạn, 128 KB hoặc hơn bộ nhớ không bay hơi (non-volatile  
memory), và 32 KB hoặc hơn bộ nhớ bay hơi (volatile memory). Bộ nhớ bay hơi là bộ  
nhớ không bền và không có bảo vệ ghi, nghĩa là nếu thiết bị đã tắt, thì nội dung của bộ  
nhớ bay hơi sẽ mất. Với bộ nhớ không bay hơi, nội dung được giữ liên tục và bảo vệ ghi.  
Các thiết bị CLDC sử dụng bộ nhớ không bay hơi để lưu trữ các thư viện thực thi và  
KVM, và máy ảo khác được tạo cho thiết bị riêng biệt. Bộ nhớ bay hơi được dùng để cấp  
phát bộ nhớ thực thi.  
6
Một hiện trạng khung mà trên đó bạn phát triển hiện trạng của riêng mình, Hiện  
trạng nền móng (the Foundation Profile), được cung cấp cho CDC. Tuy nhiên ở đây ta chỉ  
quan tâm đến các hiện trang trên CLDC cho các thiết bị nhỏ.  
Cấu hình các thiết bị kết nối giới hạn (Connected Limited Device Configuration -  
CLDC) và Hiện trạng thiết bị thông tin di động (Mobile Information Device Profile -  
MIDP) kết hợp tương ứng để hỗ trợ phần lớn các thiết bị di động giá thấp được dùng hiện  
nay, như PDAs, điện thoại không dây, và máy nhắn tin hai chiều.  
2.2. Cấu trúc ứng dụng MIDlet  
2.2.1. JAD và JAR  
Các thành phần cơ bản ca bt kbMIDlet bao gm tp tin JAD (Java  
Application) và JAR (Java Archive).  
Các lớp đã biên dịch của ứng dụng MIDlet được đóng gói trong một tập tin JAR  
(Java Archive File). Đây chính là tập tin JAR được tải xuống điện thoại di động.  
Tập tin JAR chứa tất cả các tập tin đã biên dịch thành tập tin class từ một hay nhiều  
MIDlet, cũng như các tài nguyên cần thiết. Hiện tại, MIDP chỉ hỗ trợ định dạng hình .png  
(Portable Network Graphics). Tập tin JAR cũng chứa tập tin kê khai (manifest file) mô tả  
nội dung của MIDlet cho bộ quản lý ứng dụng. Nó cũng phải chứa các tập tin dữ liệu mà  
MIDlet cần. Tập tin JAR là toàn bộ ứng dụng MIDlet. MIDlet có thể load và triệu gọi các  
phương thức từ bất kỳ lớp nào trong tập tin JAR, trong MIDP, hay CLDC. Nó không thể  
truy xuất các lớp không phải là bộ phận của tập tin JAR hay vùng dùng chung của thiết bị  
di động.  
Nội dung của tập tin JAR:  
Các trường yêu cầu  
- Manifest-Version // Phiên bản tập tin Manifest  
- MIDlet-Name // Tên bộ MIDlet (MIDlet suite)  
- MIDlet-Version // Phiên bản bộ MIDlet  
- MIDlet-Vendor // Nhà sản xuất MIDlet  
7
- MIDlet- for each MIDlet // Tên của MIDlet  
- MicroEdtion-Profile // Phiên bản hiện trạng  
- MicroEdtion-Configuration // Phiên bản cấu hình  
Tập tin JAD và tập tin kê khai (manifest.mf) mô tả các đặc điểm của MIDlet.  
Tập tin kê khai được đóng gói trong tập tin JAR trong khi tập tin JAD thì không. Việc  
tách rời tập tin JAD với JAR cho phép thiết bị có thể xác định được đặc điểm của ứng  
dụng MIDlet trước khi tải tập tin JAR về máy. Như vậy, nếu người dùng muốn  
download một ứng dụng không được thiết bị di động hỗ trợ (ví dụ, MIDP 2.0), thì quá  
trình download sẽ bị hủy bỏ thay vì phải đợi download hết toàn bộ tập tin JAR.  
Ví dụ về tập tin JAD:  
- MIDlet-Name: GiaoThong  
- MIDlet-Version: 1.0.0  
- MIDlet-Vender: PhanTuan  
- MIDlet-Description: thong tin giao thong qua SMS  
- MIDlet-info-URL:  
- MIDlet-Jar-URL:  
- MIDlet-Jar-Size:  
- MicroEdition-Profile: MIDP-1.0  
- MicroEdition-Configuration: CLDC-1.0  
2.2.2 Vòng đời của một MIDLet  
8
Hình 4. Vòng đời mt MIDLet3  
Các ứng dụng J2ME được gọi là MIDlet (Mobile Information Device applet). Lớp  
chính của một ứng dụng được định nghĩa là lớp mở rộng (extends) của lớp MIDlet trong  
MIDP. Có thể chỉ có một lớp trong ứng dụng mở rộng lớp này. Lớp MIDlet được trình  
quản lý ứng dụng trên điện thoại di động dùng để khởi động, dừng, và tạm dừng MIDlet  
(ví dụ, trong trường hợp có cuộc gọi đến). Khi sử dụng lớp Midlet, chúng ta phải khai báo  
sử dụng thư viện java.microedition.midlet.MIDlet và thực thi ba phương thức startApp(),  
pauseApp(), và destroyApp().  
Cấu trúc của một ứng dụng với Midlet gồm sáu phần chính:  
- Khai báo import thư viện java.microedition.midlet.MIDlet.  
- Khai báo một lớp (mà lớp này là lớp chính của ứng dụng) extends từ lớp  
Midlet.  
- Hàm khởi tạo (constructor) cho lớp vừa khai báo.  
- Cài đặt phương thức startApp():  
Được gọi bởi bộ quản lý ứng dụng khi MIDlet được khởi tạo, và mỗi khi MIDlet trở  
về từ trạng thái tạm dừng. Nói chung, các biến toàn cục sẽ được khởi tạo lại trừ hàm tạo  
9
bởi vì các biến đã được giải phóng trong hàm pauseApp(). Nếu không thì chúng sẽ không  
được khởi tạo lại bởi ứng dụng.  
- Cài đặt phương thức pauseApp():  
Được gọi bởi bộ quản lý ứng dụng mỗi khi ứng dụng cần được tạm dừng (ví dụ,  
trong trường hợp có cuộc gọi hoặc tin nhắn đến). Cách thích hợp để sử dụng pauseApp()  
là giải phóng tài nguyên và các biến để dành cho các chức năng khác trong điện thoại  
trong khi MIDlet được tạm dừng. Cần chú ý rằng khi nhận cuộc gọi đến hệ điều hành trên  
điện thoại di động có thể dừng KVM thay vì dừng MIDlet. Việc này không được đề cập  
trong MIDP mà đó là do nhà sản xuất quyết định sẽ chọn cách nào.  
- Cài đặt phương thức destroyApp():  
Được gọi khi thoát MIDlet. (ví dụ khi nhấn nút exit trong ứng dụng). Không thật sự  
xóa ứng dụng khỏi điện thoại di động. Phương thức destroyApp() chỉ nhận một tham số  
Boolean. Nếu tham số này là true, MIDlet được tắt vô điều kiện. Nếu tham số là false,  
MIDlet có thêm tùy chọn từ chối thoát bằng cách gởi ra một ngoại lệ  
MIDletStateChangeException.  
2.3. Đồ họa trong J2ME  
Các lp MIDP cung cp hai mức đồ họa: đồ ha mc thấp và đồ ha mức cao. Đồ  
ha mức cao dùng cho văn bản hay form. Đồ ha mc thp dùng cho các ng dng trò  
chơi yêu cầu phi vlên màn hình.  
10  
Hình 5: Đồ ha trong J2ME4  
- Một ứng dụng MIDlet chỉ có 1 đối tượng thể hiện Display. Đối tượng này dùng để  
lấy thông tin về đối tượng trình bày.  
- Một đối tượng Displayable là một thành phần được hiển thị trên một thiết bị.  
MIDP chứa hai lớp con của lớp Displayable là Screen và Canvas.  
- Một đối tượng Screen không phải là một cái gì hiện ra trên thiết bị, lớp Screen sẽ  
được thừa kế bởi các thành phần hiển thị ở mức cao, chính các thành phần này sẽ được  
hiển thị ra trên màn hình.  
2.3.1. Đồ họa mức cao (High Level Graphics) :  
Về mục đích tạo ra một ứng dụng demo đơn giản với đầy đủ chức năng đáp ưng  
được yêu cầu của hệ thống, khóa luận này chỉ giới hạn nghiên cứu tìm hiểu việc sử dụng  
các lớp giao diện đồ họa mức cao. Còn các lớp xây dựng đồ họa mức thấp phù hợp cho  
các ứng dụng trò chơi có giao diện động phức tạp. Do vậy cơ sở lý thuyết cho phần đồ  
họa mức thấp sẽ được đề cập đến trong những tài liệu khác phù hợp hơn.  
4 Ngun từ  
11  
Đồ họa mức cao là lớp con của lớp Screen. Nó cung cấp các thành phần như  
textbox, form, list và alert. Việc sắp xếp các thành phần trên màn hình hạn chế, phụ thuộc  
vào nhà sản xuất.  
Cấu trúc phân cấp các thành phần của các lớp đồ họa mức cao có thể được minh họa  
theo biểu đồ sau:  
Hình 6: Cu trúc phân cp các lớp đồ ha mc cao5  
2.4. Lưu trữ dữ liệu với Record Management System (RMS)  
Trong quá trình thực hiện khóa luận, tiếp xúc và tìm hiểu cơ chế lưu trữ dữ liệu  
thông qua RMS là một khái niệm khá mới và thú vị. RMS là một “hệ cơ sở dữ liệu” đơn  
giản, nó tổ chức và quản lý tất cả dữ liệu dưới dạng các record (bản ghi). RMS chỉ cho  
phép thao tác đọc và ghi với dữ liệu ở dạng một mảng byte nhị phân. Do đó để làm việc  
được với RMS, các kiểu dữ liệu thông thường cũng như các kiểu dữ liệu do người dùng  
định nghĩa đều phải được chuyển thành mảng byte nhị phân để ghi vào các record trong  
RMS. Trong phần xây dựng chương trình demo, các lớp yêu cầu phải lưu trữ trực tiếp lên  
RMS đều có phương thức cho phép chuyển đổi các kiểu dữ liệu thông thường thành mảng  
byte và ngược lại.  
5 Ngun:  
12  
2.4.1. Các thao tác mở, đóng hay xóa bản ghi  
Trong RMS, các bản ghi được tập hợp với nhau và lưu trữ trong một kho các bản  
ghi, gọi là Record store. Trong khóa lun này, thuật ngữ tiếng Anh sẽ được giữ nguyên  
đối với Record store  
Phương thức dùng để mở một Record Store:  
public static RecordStore openRecordStrore(String recordStoreName,  
boolean createIfNecessary)  
Trong phương thức trên, recoredStroreName là tên của record store. Còn tham số  
createIfNecessary dùng để xem xét có tạo mới một record store khi không tìm thấy các  
record store trong thiết bị hay không.  
Ví dụ sau mở một record store tên là “zoneRecord”, đây là các bản ghi lưu trữ thông  
tin cho lớp khu vực được sử dụng trong ứng dụng demo:  
RecordStore rsZone =  
RecordStore.openRecordStore(“zoneRecord”,true);  
Record store được đóng khi gọi phương thức:  
rsZone.close();  
Như đã nói trên, Record store là một kho chứa nhiều bản ghi, mỗi bản ghi là một  
mảng các byte nhị phân. Để biết kích thước tính theo đơn vị byte đã được sử dụng của  
một record store, có thể sử dụng phương thức:  
public int getSize();  
Trong hệ RMS, cũng cung cấp một phương thức trả về kích thước số byte còn dư  
trong record store:  
Public int getSizeAvailable();  
2.4.2. Thao tác với các bản ghi  
Mỗi một bản ghi trong một RecordStore có một số nguyên làm định danh, hình sau  
minh họa một RecordStore chứa bốn bản ghi:  
13  
Hình 7: Cơ chế lưu trữ trong mt kho cha các bn ghi  
- Thêm một bản ghi:  
Phương thức dùng để thêm một bản ghi lên RecordStore là:  
public int addRecord(byte[] data, int offset, int numBytes)  
Ví dụ sau giải thích rõ hơn cho phương thức này:  
Zone cauGiay  
=
=
new Zone(“Cau Giay”, “CG”);  
= cauGiay.toByteArray();  
zoneRecord.addRecord(data,0,data.length());  
byte[ ]  
data  
int id  
- Đọc một bản ghi:  
publicbyte[ ] getRecord(int recordId);  
Phương thức trên cho phép đọc một bản ghi có định danh tại recordId. Trong ứng  
dụng này, sau khi lưu trữ toàn bộ thông tin các khu vực và địa điểm lên RMS, để hiển thị  
lên màn hình, dữ liệu được lấy từ RMS và gọi hàm khởi tạo đối tượng Zone (hoặc  
Location)  
int size =  
Zone zone =  
zoneRecord.getSize();  
null;  
for(int i = 0; i < size; i++){  
byte[] buffer = zoneRecord.getRecord(i);  
zone = new Zone(buffer);  
}
- Thay thế một bản ghi:  
Phương thức:  
14  
public void setRecord(int recordId, byte[] newData,  
int offset, int numBytes)  
Phương thức trên sẽ thay thế mảng byte newData vào vị trí bản gi có số hiệu  
recordId  
2.4.3. Sử dụng hiệu quả RMS qua các lớp tiện ích  
Trên đây đã trình bày chi tiết một số phương thức cơ bản để có thể sử dụng hệ quản  
trị RMS cho mục đích lưu trữ các bản ghi đơn giản. Bên cạnh các phương thức đơn giản,  
Java còn cung cấp một số lớp tiện ích hỗ trợ cho các thao tác được thực hiện thường  
xuyên như sắp xếp hay tìm kiếm dữ liệu. Phần tiếp theo của khóa luận sẽ giới thiệu về các  
lớp đó  
- Lớp RecordEnumeration  
Lớp RecordEnumeration cung cấp các phương thức cho phép di chuyển lên trước và  
ra sau giữa các bản ghi trong một record store. Lớp này sẽ rất hữu ích khi được sử dụng  
kết hợp với một bộ lọc để tìm kiếm một bản ghi, hoặc kết hợp với việc so sánh để sắp xếp  
thứ tự các bản ghi.  
- Sắp xếp bản ghi với lớp RecordComparator  
RecrodComparator là một giao diện của Java.  
- Lớp RecordFilter  
2.5. Kết nội mạng cơ bản trong J2ME  
2.5.1. Cơ chế kết nối Client – Server  
Các lp htrlp trình kết ni mng trong J2ME cho phép thiết bị di động có thể  
mcác kết ni mng thông qua các giao thc mạng được thiết kế riêng cho các thiết bdi  
động.  
Hình sau smô tả cơ chế kết ni gia thiết bị di động và Web server  
15  
Hình 8: Cơ chế kết ni gia thiết bị di động và Web server6  
2.5.2. Tìm hiểu CLDC Generic Connection Framework  
Khi làm vic vi J2SE, các lp htrkết ni mng là java.io.* java.net.* yêu cu  
nhiu bnhớ hơn so với nhng gì mà các thiết bcm tay có thhtr. Do vy, mt nn  
tảng được thiết kế dành riêng cho các thiết bCLDC là Generic Connection Framework  
(GCF). GCF cung cp mt bcác lp tru tượng được sdng mc lp trình cho phép  
điều khin nhiu loi giao tiếp.  
Trong nn tng này, mi kết nối đều được to ra sdụng phương thức tĩnh open ca  
lp Connector. Nếu thành công, phương thức này strvmột đối tượng thc thi mt  
trong các giao din kết ni chung. Hình sau scho thy mi quan his-a gia các giao  
din. Giao din Connection là giao diện cơ sở.  
Hình 9: Mi quan hgia các giao din htrcho lp trình mng trong J2ME7  
16  
Tham scủa phương thức open là mt chui ký tmô tgiao thức, địa ch, và tham  
s:  
Try{  
Connector.open(“protocol:address;parameters”);  
}catch(ConnectionNotFoundExeption e){  
//  
}
Ví dvvic sdụng phương thc open cho các kết ni khác nhau:  
HTTP Connection: Connector.open("http://java.sun.com/wireless")  
Socket Connection: Connector.open("socket://java.sun.com:port")  
Datagram Connection:  
Connector.open("datagram://java.sun.com:port"  
)
17  
Chương 3. Dch vtin nhn SMS  
3.1. Lịch sử của SMS  
Dch vtin nhn(SMS – Short Message Service) là dch vgi và nhn bn tin  
ngắn, đầu tiên được cung cấp cho các điện thoại di động, sau đó được áp dng cho các  
điện thoi cố định, các máy fax, các hộp thư điện tvà các thiết bị điện thoi khác. bn tin  
nhn có thbao gm các kí tchvà s.  
Nhng ý tưởng đầu tiên cho dch vtin nhn SMS xut hin trong khong nhng  
năm 1980 khi các chuyên gia từ cộng đồng các dch vụ thông tin di động tho lun về  
nhng dch vmà chun GSM scó. Nhiu chuyên gia cho rng SMS slà một cách để  
cảnh báo người dùng cá nhân di động. Cho đến năm 1985, khi mà các chuẩn GMS đã  
đồng nht, có mt cuc tho lun vvic to ra các chun để vic nhn tin có thgi và  
nhn bởi người dùng di động. Đến năm 1987, một chun GSM mới được to ra gi là  
“Implementation of Data and Telematic Services Experts Group”, viết tt là IDEG.  
Tháng 12 năm 1992, một nhân viên ca tchc Airwide Solution là Neil Papworth  
đã gi mt tin nhắn văn bản thương mại đầu tiên, đó là một tin nhn Chúc mng giáng  
sinh tmột máy tính cá nhân đến những người trong mạng GSM trên nước Anh. Riku  
Pihkonen, mt sinh viên kthut làm vic cho Nokia, cũng đã gi tin nhắn văn bản đầu  
tiên tmt chiếc điện thoại GSM vào năm 1992.  
Mc dù xut hin sm từ đầu những năm 1990, nhưng dịch vụ SMS tăng trưởng khá  
chm vì nhiều lý do. Cho đến những năm 2000, việc gii thiệu điện thoại di động trả  
trước thuế, trong đó mọi người có thtrtiền cho đường truyn ca họ trước sau đó kiểm  
soát vic sdụng điện thoi di dng ca hlà chất xúc tác đẩy nhanh sphát trin ca  
SMS.  
3.2. Lợi ích của dịch vụ tin nhắn SMS  
Li ích ca SMS dành cho các thuê bao tp trung stin li, linh hoạt và đơn giản  
ca các dch vnhn tin và truy cp dliu. Từ quan điểm này, li ích chính ca SMS là  
khả năng sdng các thiết bcầm tay như một phn mrng ca máy tính. Nhng li ích  
này thường phthuc vào các nhà cung cp dch vụ, nhưng ít nhất, SMS cũng mang lại  
nhng tin ích sau:  
18  
- Cung cp các thông báo và các cnh báo  
- Đảm bo vic cung cp tin nhn  
- Đáng tin cậy, cơ chế giao tiếp không yêu cu chi phí cao  
- Có khả năng hin thcác tin nhn lên màn hình và gi li mt cách chn lc  
3.3 Mô hình dịch vụ tin nhắn SMS  
Hình 10: Mô hình dch vSMS8  
Dch vtin nhn ngắn (Short Message Service) đã thc sto ra mt nn tng cho  
phép các máy tính, hay cthể là các máy điện thoi có thgiao tiếp vi nhau mà không  
cần đến một trung tâm trung ương. Với SMS, điện thoi có thtìm thy nhau, gi và nhn  
các gói tin ngắn. Tuy nhiên lượng thông tin có thgi cùng một lúc được gii hn trong  
một kích thưc nhất định. Điu này còn phthuc vào ngôn ngmà thiết bhtrợ, nhưng  
đối vi chcái Latinh thì khong 150 ký t.  
19  
Chương 4. ng dng hthng giao thông cho thiết bị di động sdng SMS  
4.1. Mô tả hoạt động của hệ thống:  
Hình 11: Các thành phn ca hthng  
Hthng thông tin giao thông có hai phn chính: Client và Server  
Phn Client là mt ng dụng được cài đặt trên điện thoại di động, có giao diện đơn  
giản cho phép người dùng ddàng tìm kiếm các địa điểm và tuyến đường mà hquan tâm  
để tra cu thông tin. ng dng cũng hướng dẫn người sdng có thnhn tin thuần văn  
bn với cú pháp đơn giản tới đầu sca tổng đài hệ thng.  
Phn Server là mt ng dụng được xây dng trên nền Web. Cơ sở dliu cho toàn  
hthng sdo Server cp nht và qun lý. ng dng Server cũng sẽ cung cp giao din  
web với đầy đủ chức năng cho phép người dùng truy cp tra cu trc tuyến tình hình giao  
thông. Khi nhận được tin nhn tra cu ca Client thông qua tổng đài SMS gateway,  
Server có nhim vthông qua gateway này gi mt tin nhn phn hi thông báo vtình  
trng hin ti của địa điểm. Các trng thái của các địa điểm ti mt thời điểm được ly từ  
nhiu nguồn, trong đó có kênh VOV giao thông, một kênh thông tin đáng tin cậy. Ngoài  
ra, hthng cũng cho phép nhn tin nhn góp ý hay thông báo tình hình giao thông từ  
người dùng di động. Khi đó, tin nhắn sẽ được xử lý để tự động cp nhật cơ sở dliu.  
Mc dù ngun thông tin này không thc sự đảm bảo, nhưng nó được xem xét là phương  
hướng chiến lược để kích thích người dùng sdng hthng, cũng như làm tăng tính  
cộng đồng cho người tham gia giao thông.  
20  
Client và Server sgiao tiếp vi nhau thông qua mt tổng đài SMS. Đây là mô hình  
khá phbiến hin nay vi rt nhiu loi hình dch vgiá trị gia tăng sử dng SMS. SMS  
Gateway là cng kết ni ti các nhà khai thác mng viễn thông di động (Vinaphone,  
MobiFone, Sfone, Viettel, EVN, Beeline ..) cho phép các đối tác tchc những chương  
trình sdng tin nhn SMS, MMS làm phương tiện tương tác vi khách hàng ca mình.  
(vd: Mobile Marketing, nhắn tin trúng thưởng, cung cp nội dung dành cho điện thoi di  
động…)  
4.2. Hoạt động và các chức năng chính của Client  
Sau khi người dùng khởi động ứng dụng Client, chương trình sẽ hiện lên màn hình  
chính là một danh sách các chức năng sau:  
- Tìm kiếm địa điểm:  
Chương trình sẽ hiện ra màn hình liệt kê các tuyến đường. Người dùng có thể tùy  
chọn danh sách hiện ra toàn bộ các tuyên đường, địa điểm hoặc được phân nhóm theo khu  
vực.  
- Quản lý địa điểm:  
Nếu người dùng thường xuyên tra cứu một số tuyến đường, địa điểm cụ thể, họ có  
thể thêm vào danh sách hay tra cứu, tiện cho việc tìm kiếm. Từ màn hình quản lý địa  
điểm, chương trình cho phép người dùng có thể thêm mới hay loại bỏ một tuyến đường ra  
khỏi danh sách.  
- Thiết lập các tùy chọn:  
Chức năng cấu hình cho phép người dùng có thể sử đổi các tùy chọn cấu hình cho  
chương trình. Các tùy chọn như số trung tâm tổng đài, màn hình mặc định trong trang tìm  
kiếm,…  
- Hướng dẫn sử dụng  
Màn hình hiện ra các hướng dẫn cơ bản giúp người dùng có thể sử dụng tốt chương  
trình.  
21  
Chương 5. Phân tích thiết kế ứng dng  
Ứng dụng MIDlet chạy trên điện thoại di động đóng vai trò 1 client. Client này sau  
khi cài đặt sẽ có khả năng gửi và nhận SMS. Nếu máy cài đặt GPRS, chương trình có thể  
kết nối đến Server và tải các tập tin cập nhật cơ sở dữ liệu.  
Ứng dụng được viết bằng J2ME đóng gói thành TTGT.jar và TTGT.jad. Server là  
chương trình viết bằng PHP chạy trên HTTP server với đầy đủ giao diện các chức năng.  
Server và Client sẽ trao đổi thông tin thông qua giao thức truyền nhận SMS với nhà cung  
cấp tổng đài thứ 3.  
Ứng dụng được phân tích, thiết kế và xây dựng theo phương pháp hướng đối tượng.  
Vì lý do độ phức tạp của ứng dụng không lớn, cơ sở dữ liệu chỉ lưu thông tin về tuyến  
đường và khu vực ngay trên điện thoại di động nên tôi chỉ sử dụng biểu đồ ca sử dụng cho  
việc phân tích và biểu đồ Lớp cho việc thiết kế. Các biểu đồ được xây dựng trên phần  
mềm Enterprise Architect, phiên bản 7.0.8  
5.1 Biểu đồ ca sử dụng  
5.1.1. Lược đồ các ca sử dụng chính  
22  
Hình 12: Biểu đồ các ca sdng  
Ý nghĩa  
Danh sách các ca sdng  
STT Use case  
Xem danh sách địa điểm  
Xem danh sách khu vực  
Tìm kiếm địa điểm  
Xem danh sách toàn bộ tuyến đường,  
địa điểm  
1
2
3
4
5
Xem danh sách được phân chia theo  
khu vực, quận huyện  
Tìm kiếm địa điểm  
Quản lý địa điểm  
Quản lý các địa điểm mà người dùng  
quan tâm  
Xem hướng dẫn sử dụng  
Đọc hướng dẫn sử dụng ứng dụng  
23  

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

pdf 51 trang yennguyen 10/07/2025 380
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Xây dựng ứng dụng Client cho hệ thống thông tin giao thông", để 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_xay_dung_ung_dung_client_cho_he_thong_thong_tin_gi.pdf