Đề tài Xây dựng ứng dụng client cho hệ thống thông tin giao thông

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.

pdf51 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2260 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài 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
i TRƯỜNG …………………. KHOA………………………. ---------- Báo cáo tốt nghiệp Đề tài: XÂY DỰNG ỨNG DỤNG CLIENT CHO HỆ THỐNG THÔNG TIN GIAO THÔNG ii LỜI CÁM ƠN Khóa luận này là thành quả lớn nhất trong những năm học đại học của em. Để hoàn thành được khóa luận, ngoài sự cố gắng của bản thân, em đã nhận được sự giúp đỡ của rất 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 thầy cô Khoa Công Nghệ Thông Tin và các thầy cô giảng dạy tại trường Đại học Công Nghệ đã 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