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ự.
8
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
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
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
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
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.
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
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
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.
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
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:
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