Như đã mô tả trong phần tổng quan, Client và Server sẽ giao tiếp với nhau thông
qua một SMS Gateway. Để thuận tiện cho việc demo ứng dụng Client trên thiết bị
điện thoại giả lập, tôi hệ thống sử dụng một điện thoại giả lập khác đóng vai trò của
SMS Gateway. Thiết bị Gateway giả lập này sẽ chỉ có 2 chức năng chính là gửi và
nhận SMS.
51 trang |
Chia sẻ: lylyngoc | Lượt xem: 2888 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn -Xây dựng ứng dụng client cho hệ thống thông tin giao thông, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đã tận tình giảng dạy, truyền đạt cho em rất nhiều kiến thức
trong suốt 4 năm đại học.
Em xin cám ơn Tiến sĩ, cô giáo Trần Thị Minh Châu – Giảng viên khoa Công nghệ
thông tin trường Đại học Công nghệ đã tận tình hướng dẫn và giúp đỡ em trong quá trình
thực hiện khóa luận này.
Xin cám ơn các anh chị khóa trước đã giải đáp rất nhiều thông tin giúp em có thể
hoàn thành tốt khóa luận.
Khóa luận của em sẽ không thể thành công nếu không có sự giúp đỡ của mọi người.
Xin cám ơn tất cả.
iii
TÓM TẮT KHÓA LUẬN
Giao thông đang thực sự là vấn đề được rất nhiều người quan tâm. Đặc biệt ở nước
ta, khi mật độ các phương tiện giao thông gia tăng mạnh mẽ trong những năm gần đây.
Với mong muốn góp phần giảm thiểu tình trạng ùn tắc giao thông, giúp người dân chủ
động hơn khi tham gia giao thông, mục tiêu của khóa luận này là xây dựng ứng dụng
Client cho hệ thống 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à họ tham gia giao thông và gửi tin nhắn tra
cứu đến Server giải đáp.
Khóa luận sẽ trình bày một số kiến thức cơ bản về J2ME và SMS, các công nghệ
được sử dụng để xây dựng ứng dụng. Phần sau của khóa luận sẽ trình bày các bước phân
tích, thiết kế, xây dựng và các hướng dẫn triển khai ứng dụng trên thiết bị di động giả lập.
iv
Mục lục
LỜI CÁM ƠN ......................................................................................................... i
TÓM TẮT KHÓA LUẬN..................................................................................... iii
Chương 1. Mở đầu ............................................................................................. 1
Chương 2. Lập trình ứng dụng cho điện thoại di động với J2ME ....................... 3
2.1. Tổng quan về J2ME..................................................................................... 3
2.1.1. Giới thiệu J2ME ................................................................................... 3
2.1.2. Kiến trúc của J2ME .............................................................................. 4
2.2. Cấu trúc ứng dụng MIDlet ........................................................................... 7
2.2.1. JAD và JAR.......................................................................................... 7
2.2.2 Vòng đời của một MIDLet..................................................................... 8
2.3. Đồ họa trong J2ME ................................................................................... 10
2.3.1. Đồ họa mức cao (High Level Graphics) :............................................ 11
2.4. Lưu trữ dữ liệu với 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 với các bản ghi ..................................................................... 13
2.4.3. Sử dụng hiệu quả RMS qua các lớp tiện ích....................................... 15
2.5. Kết nội mạng cơ bản trong J2ME ............................................................. 15
2.5.1. Cơ chế kết nối Client – Server ............................................................ 15
2.5.2. Tìm hiểu CLDC Generic Connection Framework ............................... 16
Chương 3. Dịch vụ tin nhắn SMS..................................................................... 18
3.1. Lịch sử của SMS ....................................................................................... 18
v
3.2. Lợi ích của dịch vụ tin nhắn SMS.............................................................. 18
3.3 Mô hình dịch vụ tin nhắn SMS ................................................................... 19
Chương 4. Ứng dụng hệ thống giao thông cho thiết bị di động sử dụng SMS... 20
4.1. Mô tả hoạt động của hệ thống:................................................................... 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 dụng............................................................. 22
5.1 Biểu đồ ca sử dụng ..................................................................................... 22
5.1.1. Lược đồ các ca sử dụng chính................................................................. 22
5.1.2. Mô tả các ca sử dụng: ............................................................................. 24
5.2. Biểu đồ lớp ................................................................................................ 27
5.2.1. Biểu đồ lớp mức tổng thể:................................................................... 27
5.2.2. Các biểu đồ lớp chi tiết. ...................................................................... 27
Chương 6. Các màn hình chính và hướng dẫn demo ứng dụng......................... 34
6.1. Demo các chức năng xem danh sách địa điểm hay khu vực ....................... 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 lập cấu hình:........................................................... 37
6.5. Demo chức năng nhắn tin tra cứu: ............................................................. 38
6.6 Demo chức năng Nhắn tin cập nhật. ........................................................... 40
6.7 Demo chức năng Hướng dẫn sử dụng: ........................................................ 42
Chương 7. Kết luận .......................................................................................... 43
Tài liệu tham khảo................................................................................................ 44
vi
DANH SÁCH HÌNH VẼ
Hình 1: Kiến trúc J2ME .......................................................................................... 4
Hình 2: Cơ chế hoạt động của máy ảo Java ............................................................ 5
Hình 3: Máy ảo Java trong các phiên bản của Java ................................................ 6
Hình 4. Vòng đời một MIDLet ................................................................................. 9
Hình 5: Đồ họa trong J2ME.................................................................................. 11
Hình 6: Cấu trúc phân cấp các lớp đồ họa mức cao.............................................. 12
Hình 7: Cơ chế lưu trữ trong một kho chứa các bản ghi........................................ 14
Hình 8: Cơ chế kết nối giữa thiết bị di động và Web server ................................... 16
Hình 9: Mối quan hệ giữa các giao diện hỗ trợ cho lập trình mạng trong J2ME... 16
Hình 10: Mô hình dịch vụ SMS.............................................................................. 19
Hình 11: Các thành phần của hệ thống ................................................................. 20
Hình 12: Biểu đồ các ca sử dụng........................................................................... 23
Hình 13: Biểu đồ lớp mức tổng thể ........................................................................ 27
Hình 14: Biểu đồ lớp Location .............................................................................. 28
Hình 15: Biểu đồ lớp Zone .................................................................................... 28
Hình 16: Biểu đồ lớp DataRMS............................................................................. 29
Hình 17: Biểu đồ lớp DisplayManager.................................................................. 29
Hình 18: Cơ chế hoạt động của Stack.................................................................... 30
Hình 19: Biểu đồ lớp BaseForm............................................................................ 30
Hình 20: Các lớp kế thừa từ BaseForm ................................................................. 31
Hình 21: Biểu đồ lớp SettingForm......................................................................... 32
Hình 22: Biểu đồ lớp DetailForm.......................................................................... 32
vii
Hình 23: Biểu đồ các lớp Sender và Receiver........................................................ 33
Hình 24: Màn hình chính của SMS Gateway giả lập ............................................. 34
Hình 25: Màn hình chính ứng dụng Client ............................................................ 35
Hình 26: Màn hình xem danh sách địa điểm và khu vực ........................................ 35
Hình 27: Màn hình quản lý địa điểm ..................................................................... 36
Hình 28: Màn hình tìm kiếm địa điểm ................................................................... 37
Hình 29: Màn hình thiết lập cấu hình.................................................................... 38
Hình 30: Màn hình chờ tin nhắn đến trên SMS Gateway ....................................... 39
Hình 31: Tin nhắn nhận được trên SMS Gateway.................................................. 39
Hình 32: Hiển thị tin nhắn nhận được lên màn hình .............................................. 40
Hình 33: Màn hình chọn tình trạng địa điểm......................................................... 41
Hình 34: Cú pháp tin nhắn cập nhật địa điểm ....................................................... 41
Hình 35: Màn hình hướng dẫn sử dụng ................................................................. 42
DANH SÁCH BẢNG
Bảng 1: Danh sách các ca sử dụng........................................................................ 24
Bảng 2: Mô tả ca sử dụng Danh sách địa điểm ..................................................... 24
Bảng 3: Mô tả ca sử dụng Danh sách địa điểm khu vực ........................................ 25
Bảng 4: Mô tả ca sử dụng Tìm kiếm địa điểm........................................................ 25
Bảng 5: Mô tả ca sử dụng Quản lý địa điểm.......................................................... 26
Bảng 6: Mô tả ca sử dụng Gửi tin nhắn SMS........................................................ 26
Bảng 7: Mô tả ca sử dụng Hướng dẫn sử dụng...................................................... 26
1
Chương 1. Mở đầu
Giao thông thực sự đang là một vấn đề mà cả xã hội đang rất quan tâm. Hiện nay,
dân số tập trung quá nhiều các khu vực 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ở hạ tầng hiện tại đang trong giai
đoạn từng bước quy hoạch lại. Vấn đề này kéo theo hệ quả của nó là tình hình giao thông
ở các khu vực thành phố phát triển luôn trong tình trạng căng thẳng. Điều này cũng là dễ
hiểu đối với một đất nước đang phát triển như chúng ta.
Trong khi chờ đợi cơ sở hạ tầng được qui hoạch tốt hơn, thì hằng ngày chúng ta vẫn
phải lo lắng mỗi lần tham gia giao thông. Hiện nay có không ít giải pháp hỗ trợ cho việc
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 nhất có lẽ là thông qua đài tiếng nói Việt Nam, kênh VOV
Giao thông. Không thể phủ nhận những hiệu quả mà kênh thông tin này làm được. Tuy
nhiên, không phải bất kỳ ai cũng có có điều kiện theo dõi radio mọi lúc mọi nơi được.
Với mong muốn có thể đưa được thông tin tình hình giao thông tới nhiều người dân
để giúp họ chủ động hơn trong việc tham gia giao thông, chúng tôi lựa chọn đề tài “Hệ
thống thông tin giao thông qua SMS” với mục tiêu xây dựng một hệ thống cung cấp thông
tin về các địa điểm, các tuyến đường cho người sử dụng thông qua hệ thống tin nhắn
SMS. Chúng ta thấy rằng hiện nay điện thoại di động đã thực sự trở thành thiết bị cá nhân
rất phổ biến. Tin nhắn SMS cũng rất quen thuộc với người dùng di động, vì mức độ đơn
giản của nó.
Khóa luận này sẽ nghiên cứu tìm hiểu công nghệ lập trình ứng dụng cho điện thoại
di động J2ME, các kiến thức cơ bản về dịch vụ nhắn tin SMS. Sau đó ở phần cuối ứng
dụng sẽ xây dựng phần Client cho hệ thống thông tin giao thông.
Mặc dù để triển khai ứng dụng đi vào thực tế, sẽ còn nhiều vấn đề cần xem xét giải
quyết, tuy nhiên khóa luận cũng đã giới thiệu đầy đủ những kiến thức cần thiết về J2ME
để có thể xây dựng một ứng dụng đơn giản. Chương trình demo phần Client của hệ thống
thông tin giao thông đã được cài đặt và cho kết quả tốt trên thiết bị giả lập.
Khóa luận được chia thành 7 chương:
2
Chương 1 giới thiệu tổng quan về mục đích và ý nghĩa của khóa luận.
Chương 2 sẽ trình bày một cách khái quát về J2ME. Trong phạm vi khóa luận, tôi
chỉ giới thiệu các vấn đề đã nghiên cứu, tìm hiểu trong quá trình xây dựng ứng dụng
Client.
Chương 3 sẽ dành để nói về dịch vụ tin nhắn SMS, lịch sử, hiệu quả kinh tế, và cơ
chế hoạt động của dịch vụ này.
Các chương 4,5,6 trình bày về quá trình phân tích, thiết kế để xây dựng ứng dụng.
Chương 7 kết luận những vấn đề đã giải quyết được hay hướng phát triển, triển khai
cho hệ thống.
3
Chương 2. Lập trình ứng dụng cho điện thoại di động với J2ME
2.1. Tổng quan về J2ME
2.1.1. Giới thiệu J2ME
Java là một ngôn ngữ lập trình bậc cao hướng đối tượng được Sun giới thiệu rộng rãi
từ tháng 5 năm 1995. Sự kiện này đã tạo nên một cuộc cách mạng trong tư duy lập trình
và hướng giải quyết vấn đề của các nhà phát triển. Bộ công cụ phát triển 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 thuận lợi cho việc tạo ra các chương trình Java.
Cùng với sự phát triển lớn mạnh nhờ vào những tính năng ưu việt như hỗ trợ lập
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,
với ba phiên bản 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 chủ lớn, và Micro Edition (J2ME) cho các
thiết bị nhỏ. Thực chất J2ME được phát triển từ kiến trúc Java Card, Embeded Java và
Personal Java của phiên bản Java 1.1. Đến sự ra đời của Java 2 thì Sun quyết định thay
thế Personal Java và được gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME.
Thực tế, J2ME là một nền tảng, một bộ các công nghệ và các đặc tả được thiết kế cho thị
trường các thiết bị nhỏ khác nhau. Java ME bao gồm cấu hình – configuration, hiện trạng
– profiles và các gói tùy chọn khác. Các cấu hình là các đặc tả chi tiết một máy ảo và một
bộ các giao diện lập trình API cơ sở dùng cho mọt lớp các thiết bị cụ thể. Ví dụ, một cấu
hình được thiết kế cho các thiết bị có bộ nhớ dưới 512KB và một kết nối mạng hay bị
gián đoạn. Máy ảo trong trường hợp này có thể là JVM đầy đủ hoặc một tập con của
JVM.
Hiện trạng được xây dựng trên một cấu hình cụ thể nhưng có bổ sung các đặc tả API
để tạo ra một môi trường hoàn chỉnh cho việc phát triển các ứng dụng. Mặc dù cấu hình
mô tả một máy ảo JVM và một tập API cơ sở, nhưng tự bản thân nó lại không đủ chi tiết
để cho phép xây dựng một ứng dụng hoàn chỉnh. Các cấu hình thường bao gồm các API
cho vòng đời của một ứng dụng, các giao diện người dùng và cơ chế lưu trữ cố định.
Các gói tùy chọn cung cấp các hàm không có trong cấu hình hay hiện trạng cụ thể.
Một ví dụ của gói tùy chọn là Bluetooth API (JSR 82), nó cung cấp các giao diện chuẩn
4
cho việc sử dụng mạng Bluetooth. Gói tủy chọn này có thể được thực thi song song với
một cấu hình hay hiện trạng bất 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 của J2ME gồm có:
Cấu hình (Configuration) là đặc tả định nghĩa một môi trường phần mềm cho một
dòng các thiết bị được phân loại bởi tập hợp các thuộc tính, ví dụ như:
+ Kiểu và số lượng bộ nhớ
+ Kiểu và tốc độ bộ vi xử lý
+ Kiểu mạng kết nối
Do đây là đặc tả nên các nhà sản xuất thiết bị như Samsung, Nokia …bắt buộc phải
thực thi đầy đủ các đặc tả do Sun qui định để các lập trình viên có thể dựa vào môi trường
lập trình nhất quán và thông qua sự nhất quán này, các ứng dụng được tạo ra có thể mang
tính độc lập thiết bị cao nhất có thể.
Hiện nay Sun đã đưa ra 2 dạng Configuration:
- Cấu hình thiết bị kết nối giới hạn (Connected Limited Device
Configuration CLDC):
1 Nguồn từ
5
Được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bị
này thông thường là máy điện thọai di động và PDA với khoảng 512 KB bộ nhớ.
- Cấu hình thiết bị kết nối (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 bị thuộc
CLĐC nhưng vẫn yếu hơn cho các hệ thống máy để bàn sử dụng J2SE. Những thiết bị
này có nhiều bộ nhớ hơn hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn. Các
sản phẩm này có thể kể đến như các máy PDA cấp cao, điện thoại web hay các thiết bị gia
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 của 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.
2 Nguồn từ
6
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 bản của 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 cấu 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.
7
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 của bất kỳ bộ MIDlet bao gồm tệp 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
8
- 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
9
Hình 4. Vòng đời một 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
3 Nguồn từ
10
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 lớp MIDP cung cấp hai mức đồ họa: đồ họa mức thấp và đồ họa mức cao. Đồ
họa mức cao dùng cho văn bản hay form. Đồ họa mức thấp dùng cho các ứng dụng trò
chơi yêu cầu phải vẽ lên màn hình.
11
Hình 5: Đồ họa 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 Nguồn từ
12
Đồ 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: Cấu trúc phân cấp các lớp đồ họa mức 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 Nguồn:
13
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 luận 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:
14
Hình 7: Cơ chế lưu trữ trong một kho chứa các bản 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”);
byte[ ] data = cauGiay.toByteArray();
int id = zoneRecord.addRecord(data,0,data.length());
- Đọc một bản ghi:
public byte[ ] 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 = zoneRecord.getSize();
Zone zone = 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:
15
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 lớp hỗ trợ lập trình kết nối mạng trong J2ME cho phép thiết bị di động có thể
mở các kết nối mạng thông qua các giao thức mạng được thiết kế riêng cho các thiết bị di
động.
Hình sau sẽ mô tả cơ chế kết nối giữa thiết bị di động và Web server
16
Hình 8: Cơ chế kết nối giữa thiết bị di động và Web server6
2.5.2. Tìm hiểu CLDC Generic Connection Framework
Khi làm việc với J2SE, các lớp hỗ trợ kết nối mạng là java.io.* và java.net.* yêu cầu
nhiều bộ nhớ hơn so với những gì mà các thiết bị cầm tay có thể hỗ trợ. Do vậy, một nền
tảng được thiết kế dành riêng cho các thiết bị CLDC là Generic Connection Framework
(GCF). GCF cung cấp một bộ các lớp trừu tượng được sử dụng ở mức lập trình cho phép
điều khiển nhiều loại giao tiếp.
Trong nền tảng này, mọi kết nối đều được tạo ra sử dụng phương thức tĩnh open của
lớp Connector. Nếu thành công, phương thức này sẽ trả về một đối tượng thực thi một
trong các giao diện kết nối chung. Hình sau sẽ cho thấy mối quan hệ is-a giữa các giao
diện. Giao diện Connection là giao diện cơ sở.
Hình 9: Mối quan hệ giữa các giao diện hỗ trợ cho lập trình mạng trong J2ME7
6 Nguồn từ
17
Tham số của phương thức open là một chuỗi ký tự mô tả giao thức, địa chỉ, và tham
số:
…
Try{
Connector.open(“protocol:address;parameters”);
}catch(ConnectionNotFoundExeption e){
//
}
Ví dụ về việc sử dụng phương thức open cho các kết nối khác nhau:
HTTP Connection: Connector.open("")
Socket Connection: Connector.open("socket://java.sun.com:port")
Datagram Connection:
Connector.open("datagram://java.sun.com:port"
)
7 Nguồn từ
18
Chương 3. Dịch vụ tin nhắn SMS
3.1. Lịch sử của SMS
Dịch vụ tin nhắn(SMS – Short Message Service) là dịch vụ gửi và nhận bản tin
ngắn, đầu tiên được cung cấp cho các điện thoại di động, sau đó được áp dụng cho các
điện thoại cố định, các máy fax, các hộp thư điện tử và các thiết bị điện thoại khác. bản tin
nhắn có thể bao gồm các kí tự chữ và số.
Những ý tưởng đầu tiên cho dịch vụ tin nhắn SMS xuất hiện trong khoảng những
năm 1980 khi các chuyên gia từ cộng đồng các dịch vụ thông tin di động thảo luận về
những dịch vụ mà chuẩn GSM sẽ có. Nhiều chuyên gia cho rằng SMS sẽ là 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 nhất, có một cuộc thảo luận về việc tạo ra các chuẩn để việc nhắn tin có thể gửi và
nhận bởi người dùng di động. Đến năm 1987, một chuẩn GSM mới được tạo ra gọi là
“Implementation of Data and Telematic Services Experts Group”, viết tắt là IDEG.
Tháng 12 năm 1992, một nhân viên của tổ chức Airwide Solution là Neil Papworth
đã gửi một tin nhắn văn bản thương mại đầu tiên, đó là một tin nhắn Chúc mừng giáng
sinh từ một máy tính cá nhân đến những người trong mạng GSM trên nước Anh. Riku
Pihkonen, một sinh viên kỹ thuật làm việc cho Nokia, cũng đã gửi tin nhắn văn bản đầu
tiên từ một chiếc điện thoại GSM vào năm 1992.
Mặc dù xuất hiện sớm từ đầu những năm 1990, nhưng dịch vụ SMS tăng trưởng khá
chậm vì nhiều lý do. Cho đến những năm 2000, việc giới thiệu điện thoại di động trả
trước thuế, trong đó mọi người có thể trả tiền cho đường truyền của họ trước sau đó kiểm
soát việc sử dụng điện thoại di dộng của họ là chất xúc tác đẩy nhanh sự phát triển của
SMS.
3.2. Lợi ích của dịch vụ tin nhắn SMS
Lợi ích của SMS dành cho các thuê bao tập trung sự tiện lợi, linh hoạt và đơn giản
của các dịch vụ nhắn tin và truy cập dữ liệu. Từ quan điểm này, lợi ích chính của SMS là
khả năng sử dụng các thiết bị cầm tay như một phần mở rộng của máy tính. Những lợi ích
này thường phụ thuộc vào các nhà cung cấp dịch vụ, nhưng ít nhất, SMS cũng mang lại
những tiện ích sau:
19
- Cung cấp các thông báo và các cảnh báo
- Đảm bảo việc cung cấp tin nhắn
- Đáng tin cậy, cơ chế giao tiếp không yêu cầu chi phí cao
- Có khả năng hiển thị các tin nhắn lên màn hình và gọi lại một cách chọn lọc
3.3 Mô hình dịch vụ tin nhắn SMS
Hình 10: Mô hình dịch vụ SMS8
Dịch vụ tin nhắn ngắn (Short Message Service) đã thực sự tạo ra một nền tảng cho
phép các máy tính, hay cụ thể là các máy điện thoại có thể giao tiếp với nhau mà không
cần đến một trung tâm trung ương. Với SMS, điện thoại có thể tìm thấy nhau, gửi và nhận
các gói tin ngắn. Tuy nhiên lượng thông tin có thể gửi cùng một lúc được giới hạn trong
một kích thước nhất định. Điều này còn phụ thuộc vào ngôn ngữ mà thiết bị hỗ trợ, nhưng
đối với chữ cái Latinh thì khoảng 150 ký tự.
8Nguồn từ
20
Chương 4. Ứng dụng hệ thống giao thông cho thiết bị di động sử dụng SMS
4.1. Mô tả hoạt động của hệ thống:
Hình 11: Các thành phần của hệ thống
Hệ thống thông tin giao thông có hai phần chính: Client và Server
Phần Client là một ứ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 dễ dàng tìm kiếm các địa điểm và tuyến đường mà họ quan tâm
để tra cứu thông tin. Ứng dụng cũng hướng dẫn người sử dụng có thể nhắn tin thuần văn
bản với cú pháp đơn giản tới đầu số của tổng đài hệ thống.
Phần Server là một ứng dụng được xây dựng trên nền Web. Cơ sở dữ liệu cho toàn
hệ thống sẽ do Server cập nhật và quản lý. Ứng dụng Server cũng sẽ cung cấp giao diện
web với đầy đủ chức năng cho phép người dùng truy cập tra cứu trực tuyến tình hình giao
thông. Khi nhận được tin nhắn tra cứu của Client thông qua tổng đài SMS gateway,
Server có nhiệm vụ thông qua gateway này gửi một tin nhắn phản hồi thông báo về tình
trạng hiện tại của địa điểm. Các trạng thái của các địa điểm tại một thời điểm được lấy từ
nhiều nguồn, trong đó có kênh VOV giao thông, một kênh thông tin đáng tin cậy. Ngoài
ra, hệ thống cũng cho phép nhận tin nhắn 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 cập nhật cơ sở dữ liệu.
Mặc dù nguồn thông tin này không thực 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 sự dụng hệ thống, cũng như làm tăng tính
cộng đồng cho người tham gia giao thông.
21
Client và Server sẽ giao tiếp với nhau thông qua một tổng đài SMS. Đây là mô hình
khá phổ biến hiện nay với rất nhiều loại hình dịch vụ giá trị gia tăng sử dụng SMS. SMS
Gateway là cổng kết nối tới các nhà khai thác mạng viễn thông di động (Vinaphone,
MobiFone, Sfone, Viettel, EVN, Beeline ..) cho phép các đối tác tổ chức những chương
trình sử dụng tin nhắn SMS, MMS làm phương tiện tương tác với khách hàng của mình.
(vd: Mobile Marketing, nhắn tin trúng thưởng, cung cấp nội dung dành cho điện thoại 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.
22
Chương 5. Phân tích thiết kế ứng dụng
Ứ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
23
Hình 12: Biểu đồ các ca sử dụng
Danh sách các ca sử dụng
STT Use case Ý nghĩa
1
Xem danh sách địa điểm Xem danh sách toàn bộ tuyến đường,
địa điểm
2
Xem danh sách khu vực Xem danh sách được phân chia theo
khu vực, quận huyện
3
Tìm kiếm địa điểm Tìm kiếm địa điểm
4
Quản lý địa điểm Quản lý các địa điểm mà người dùng
quan tâm
5
Xem hướng dẫn sử dụng Đọc hướng dẫn sử dụng ứng dụng
24
6
Tùy chọn cấu hình Thay đổi các tùy chọn cấu hình của
ứng dụng
7
Gửi tin SMS Gửi tin nhắn tra cứu đến tổng đài
Bảng 1: Danh sách các ca sử dụng
5.1.2. Mô tả các ca sử dụng:
Tên Use Case Danh sách địa điểm
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
danh sách địa điểm
Luồng sự kiện chính:
Liệt kê toàn bộ danh sách địa điểm trong cơ sở dữ liệu lên màn hình
Luồng sự kiện phụ:
Hiển thị thông tin chi tiết địa điểm khi người dùng chọn địa điểm muốn xem
từ danh sách.
Bảng 2: Mô tả ca sử dụng Danh sách địa điểm
Tên Use Case Danh sách khu vực
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
danh sách theo khu vực
Luồng sự kiện chính:
25
Liệt kê toàn bộ danh sách khu vực trong cơ sở dữ liệu lên màn hình
Luồng sự kiện phụ:
Hiển thị danh sách các địa điểm trong khu vực người dùng chọn
Bảng 3: Mô tả ca sử dụng Danh sách địa điểm khu vực
Tên Use Case Tìm kiếm
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng tìm
kiếm.
Luồng sự kiện chính:
- Hiện textbox cho phép người dùng nhập địa điểm
- Tìm kiếm trong cơ sở dữ liệu các bản ghi phù hợp và hiển thị lên
màn hình
Luồng sự kiện phụ:
Hiển thị thông tin chi tiết địa điểm khi người dùng kích hoạt chức năng xem
chi tiết địa điểm
Bảng 4: Mô tả ca sử dụng Tìm kiếm địa điểm
Tên Use Case Quản lý địa điểm
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
danh sách địa điểm
Luồng sự kiện chính:
26
Liệt kê toàn bộ danh sách địa điểm trong cơ sở dữ liệu lên màn hình
Luồng sự kiện phụ:
Hiển thị thông tin chi tiết địa điểm khi người dùng chọn địa điểm muốn xem
từ danh sách.
Bảng 5: Mô tả ca sử dụng Quản lý địa điểm
Tên Use Case Gửi tin nhắn SMS
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng gửi
tin
Luồng sự kiện:
- Tạo kết nối tới trung tâm tin nhắn
- Gửi tin nhắn có cú pháp đi
Bảng 6: Mô tả ca sử dụng Gửi tin nhắn SMS
Tên Use Case Xem hướng dẫn sử dụng
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
hướng dẫn sử dụng
Luồng sự kiện chính:
Hiển thị lên màn hình các hướng dẫn giúp đỡ người dùng sử dụng hệ thống
dưới dạng text
Bảng 7: Mô tả ca sử dụng Hướng dẫn sử dụng
27
5.2. Biểu đồ lớp
5.2.1. Biểu đồ lớp mức tổng thể:
Hình 13: Biểu đồ lớp mức tổng thể
5.2.2. Các biểu đồ lớp chi tiết.
5.2.2.1. Biểu đồ lớp cho gói SMS.data:
Các lớp nằm trong gói data được thiết kế để lưu trữ những thông tin về tuyến đường,
khu vực dựa trên hệ thống quản lý bản ghi RMS của J2ME
- Biểu đồ lớp Location (địa điểm):
28
Hình 14: Biểu đồ lớp Location
Lớp Location chứa các trường thông tin về địa điểm, gồm có tên địa điểm, mã địa
điểm và mã khu vực chứa địa điểm đó.
Ngoài hàm khởi tạo chứa các tham số tương ứng với các thuộc tính, lớp Location
cũng có một hàm khởi tạo nhận tham số là một mảng kiểu byte. Hàm này sẽ được dùng
khi dữ liệu về địa điểm được lấy từ cơ sở dữ liệu RMS, nó là một mảng kiểu byte.
Phương thức toByteArray() trả về một luồng byte dùng để lưu đối tượng Location
vào RMS.
- Biểu đồ lớp Zone
Hình 15: Biểu đồ lớp Zone
Lớp Zone chứa các thông tin về khu vực bao gồm tên, mã và một danh sách lưu mã
các địa điểm nằm trong khu vực. Danh sách này được cài đặt bằng kiểu Vector được hỗ
trợ trong Java
Trong lớp Zone cũng có hàm khởi tạo và phương thức cho phép ghi và đọc trực tiếp
lên cơ sở dữ liệu RMS.
- Lớp DataRMS
29
Hình 16: Biểu đồ lớp DataRMS
5.2.2.2 Biểu đồ lớp cho gói SMS.gui
Gói SMS.gui chứa các lớp xây dựng nên các Form giao diện người dùng. Để đơn
giản, trong ứng dụng demo này, em chỉ dùng các thành phần giao diện mức cao thuộc lớp
con Screen của lớp Displayable
- Lớp DisplayManager
Hình 17: Biểu đồ lớp DisplayManager
30
Đối với các ứng dụng di động trong J2ME, tại một thời điểm, trên màn hình thiết bị
chỉ hiển thị một thể hiện Displayable. Lớp DisplayManager dùng để quản lý việc điều
hướng giữa các khung giao diện một cách logic. Lớp DisplayManager đơn giản sử dụng
cấu trúc dữ liệu ngăn xếp để lưu trữ tham chiếu đến các đối tượng form khác. Mỗi khi
người dùng chọn một chức năng điều hướng (lệnh “chọn” hay “quay lại”), mỗi đối tượng
Displayable tương ứng sẽ được đẩy vào ngăn xếp. Và lớp GiaoThongMIDlet sẽ thực hiện
công việc lấy phần tử đầu tiên trong ngăn xếp và hiển thị lên màn hình. Khi người dùng
muốn quay lại màn hình trước đó (khi người dùng chọn chức năng “quay lại”) thì đối
tượng DisplayManager sẽ đẩy phần tử đầu tiên ra khỏi ngăn xếp.
Hình 18: Cơ chế hoạt động của Stack
- Lớp BaseForm
Hình 19: Biểu đồ lớp BaseForm
31
BaseForm là một lớp trừu tượng thừa kế từ lớp List. Nó khai báo các thuộc tính
dùng chung đối với các Form dạng danh sách trong ứng dụng. Phương thức trừu tượng
builForm() sẽ do các Form kế thừa nó cài đặt.
Hình 20: Các lớp kế thừa từ BaseForm
Các lớp SearchForm, ZoneForm, LocationInZoneForm đều kế thừa từ lớp
BaseForm, chúng hiển thị lên màn hình một danh sách các địa điểm hoặc khu vực.
Nếu người dùng chọn chức năng danh sách địa điểm, lớp SearchForm sẽ được đặt
vào trong ngăn xếp của đối tượng DisplayManager. Từ màn hình này, nếu người
dùng chọn các lệnh chức năng hiển thị theo khu vực, hay hiển thị chi tiết một địa
điểm cụ thể, thì các form tương ứng sẽ được đẩy vào ngăn xếp theo cơ chế như đã
nói trên.
- Lớp SettingForm
32
Hình 21: Biểu đồ lớp SettingForm
Lớp SettingForm cho phép người dùng thay đổi một số thông số cơ bản của ứng
dụng:
Tùy chọn kiểu hiển thị mặc định bao gồm hiển thị theo khu vực hay theo địa điểm.
Ứng dụng sẽ dựa theo thuộc tính này để hiển thị cho phù hợp trong form tìm kiếm.
- Lớp DetailForm
Hình 22: Biểu đồ lớp DetailForm
Khi lựa chọn một địa điểm mà người dùng muốn xem các thông tin chi tiết, màn
hình sẽ hiện ra form DetailForm. Từ màn hình này, người dùng có thể tùy chọn các chức
năng gửi tin truy vấn SMS, hay nhắn tin đóng góp cho tổng đài bằng cách cập nhật tình
hình tắc đường đối với địa điểm đã chọn.
33
- Lớp HelpForm
Lớp HelpForm đơn giản chi là một Form chứa thành phần StringItem, nó hiện lên
màn hình các chuỗi chỉ dẫn hướng dẫn người dùng sử dụng hệ thống
5.2.2.3 Biểu đồ lớp cho gói SMS.connection
Gói SMS.connection gồm 2 lớp là Sender và Receiver dùng để xử lý việc gửi và
nhận tin nhắn SMS cho ứng dụng
Hình 23: Biểu đồ các lớp Sender và Receiver
34
Chương 6. Các màn hình chính và hướng dẫn demo ứng dụng
Trong phạm vi khóa luận này, ứng dụng Client đã đáp ứng được những chức
năng cơ bản của hệ thống. Vì lý do không có điều kiện để tiến hành cài đặt và chạy
thử ứng dụng trên các thiết bị thật, nên việc cài đặt và chạy thử ứng dụng demo được
thực hiện trên máy điện thoại giả lập của bộ công cụ phát triển Sun Java Wireless
Toolkit.
Như đã mô tả trong phần tổng quan, Client và Server sẽ giao tiếp với nhau thông
qua một SMS Gateway. Để thuận tiện cho việc demo ứng dụng Client trên thiết bị
điện thoại giả lập, tôi hệ thống sử dụng một điện thoại giả lập khác đóng vai trò của
SMS Gateway. Thiết bị Gateway giả lập này sẽ chỉ có 2 chức năng chính là gửi và
nhận SMS.
Hình 24: Màn hình chính của SMS Gateway giả lập
6.1. Demo các chức năng xem danh sách địa điểm hay khu vực
Bước 1: Khởi động ứng dụng bằng cách chạy tập tin JAD, màn hình chính hiện
ra:
35
Hình 25: Màn hình chính ứng dụng Client
Bước 2: Từ màn hình chính, chọn chức năng “Danh sách địa điểm”, Màn hình
danh sách địa điểm sẽ hiện ra. Màn hình này có chức năng chuyển đổi qua lại với màn
hình khu vực cho phép người dùng thay đổi:
Hình 26: Màn hình xem danh sách địa điểm và khu vực
36
6.2. Demo chức năng quản lý địa điểm:
Bước 1: Từ màn hình danh sách địa điểm, chọn địa điểm hay tra cứu nhất, sau đó
chọn chức năng “Thêm vào danh sách ưa thích”.
Bước 2: Lần lượt chọn “Thêm vào danh sách ưa thích” đối với các địa điểm khác
mà bạn muốn thêm vào
Bước 3: Quay ra màn hình chính, chọn chức năng “Quản lý địa điểm”, danh sách
các địa điểm người dùng quan tâm sẽ hiện ra. Từ màn hình này, có chức năng cho
phép loại địa điểm ra khỏi danh sách.
Hình 27: Màn hình quản lý địa điểm
6.3. Demo chức năng Tìm kiếm địa điểm.
Bước 1: Từ màn hình danh sách địa điểm, chọn chức năng Tìm kiếm, một màn
hình mới hiện ra yêu cầu người dùng nhập ký tự tìm kiếm vào.
Bước 2: Nhập đầy đủ hoặc một phần tên địa điểm mà bạn muốn tìm kiếm.
Bước 3: Chọn chức năng Tìm, màn hình danh sách địa điểm sẽ hiện ra với kết
quả tìm kiếm đã được lọc.
37
Hình 28: Màn hình tìm kiếm địa điểm
6.4. Demo chức năng thiết lập cấu hình:
Bước 1: Từ màn hình chính, chọn chức năng “Cấu hình”, màn hình thiết lập cấu
hình hiện lên.
Bước 2: Trong ô Tổng đài tin nhắn, nhập 5550001, đây là số điện thoại của thiết
bị SMS Gateway giả lập sẽ sử dụng để demo chức năng tra cứu hay cập nhật.
38
Hình 29: Màn hình thiết lập cấu hình
Bước 3: Chọn chức năng Lưu để lưu lại các thiết lập và quay trở lại màn hình
chính
6.5. Demo chức năng nhắn tin tra cứu:
Bước 1: Khởi động thiết bị giả lập SMS Gateway bằng cách chạy tập tin
MyGateway.jad
Bước 2: Kích hoạt Receiver midlet
39
Hình 30: Màn hình chờ tin nhắn đến trên SMS Gateway
Bước 3: Từ màn hình danh sách địa điểm, xem chi tiết địa điểm rồi chọn chức
năng Nhắn tin tra cứu. Chọn yes để đồng ý xác thực sẽ gửi tin, xem màn hình SMS
Gateway sẽ nhận được tin nhắn với cú pháp VG TTGT Ma_Duong
Hình 31: Tin nhắn nhận được trên SMS Gateway
40
Bước 4: Từ SMS Gateway, chọn Trả lời và nhập vào : Duong thong
Client nhận được tin nhắn thông báo và hiện lên trên màn hình:
Hình 32: Hiển thị tin nhắn nhận được lên màn hình
6.6 Demo chức năng Nhắn tin cập nhật.
Bước 1: Từ màn hình chi tiết địa điểm, chọn chức nang nhắn tin cập nhật
Bước 2: Trong menu dạng đổ xuống tiếp theo, chọn trạng thái thông hay tắc rồi
gửi tin
41
Hình 33: Màn hình chọn tình trạng địa điểm
Bước 3: SMS Gateway sẽ nhận được tin nhắn theo cú pháp
GT TTGT Ma_Duong TinhTrang
Hình 34: Cú pháp tin nhắn cập nhật địa điểm
42
6.7 Demo chức năng Hướng dẫn sử dụng:
Từ màn hình chính, chọn chức năng Hướng dẫn sử dụng, màn hình hướng dẫn sẽ
hiện ra
Hình 35: Màn hình hướng dẫn sử dụng
43
Chương 7. Kết luận
Kết thúc khóa luận này, thông qua ứng dụng Client của hệ thống thông tin giao
thông, tôi đã có điều kiện tiếp cận và nghiên cứu những kiến thức nền tảng về lập trình
J2ME cho điện thoại di động. Biết cách xây dựng ứng dụng với giao diện đồ họa mức
cao, sử dụng linh hoạt hệ quản trị RMS và gửi tin nhắn SMS thành công tới một thiết bị di
động khác.
Ứng dụng Client sau khi cài đặt lên điện thoại giả lập có chức năng đơn giản, dễ sử
dụng, đã chạy thử nghiệm và cho kết quả tốt đối với các chức năng của hệ thống.
Để ứng dụng có thể áp dụng trong thực tế, cần thời gian cài đặt thử nghiệm lên thiết
bị thật, nghiên cứu áp dụng các kỹ thuật đồ họa mức thấp để làm cho giao diện đẹp hơn.
Xây dựng một phiên bản có hỗ trợ xem bản đồ giao thông cũng là một hướng phát
triển của ứng dụng, khi mà người dùng hiện nay ngày càng sử dụng nhiều các thiết bị di
động cao cấp với giao diện cảm ứng và bộ nhớ máy không quá hạn chế.
44
Tài liệu tham khảo
[1]. John W. Muchow, Core J2ME Technology; 1st edition (December 21, 2001),
tr.1-10.
[2]. Vartan Piroumian, Wireless J2ME Platform Programming; 1st edition (March
25,2002), tr.11-14
[3]. tr.4
[4]. tr.8
[5]. tr.14-16
[6]. tr.15
[7]. tr.18
[8]. , tr.17
[9]. tr.36-32
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-XÂY DỰNG ỨNG DỤNG CLIENT CHO HỆ THỐNG THÔNG TIN GIAO THÔNG.pdf