4.1.1. Mô hình dịch vụ
Do hạn chế về thời gian và phƣơng tiện (phần cứng) thể hiện nên tác giả lựa chọn cài đặt một nhánh nhỏ theo mô hình kết hợp sử dụng công nghệ web thông qua mạng Internet với dịch vụ tin nhắn SMS đã giới thiệu ở chƣơng 3 (nhánh đánh dấu bằng đƣờng nét đứt ở hình 3.7); truyền dữ liệu qua mạng GSM dƣới dạng tin nhắn SMS; triển khai kiểu dịch vụ thứ ba (đã giới thiệu ở mục 3.2.7) nhƣng không tích hợp bộ thu GPS, thực hiện mô phỏng thiết bị thu GPS.
Phía máy chủ: tập trung biểu diễn hiện trạng khai thác dịch vụ một cách trực quan trên bản đồ số; giao tiếp với máy trạm qua dịch vụ tin nhắn SMS. Máy chủ lƣu trữ dữ liệu bản đồ số thành phố Hà Nội (dữ liệu chủ yếu đƣợc xây dựng để thử nghiệm). Cài đặt thuật toán tìm kiếm đƣờng đi ngay tại máy chủ.
Phía máy khách: sử dụng điện thoại thƣờng, mô phỏng bộ thu GPS tạo số liệu toạ độ hiện thời, gửi yêu cầu và nhận kết quả trả về dƣới dạng tin nhắn.
Hình 4.1: Giao tiếp của hệ thống LBS thử nghiệm
MẠNG TRUYỀN THÔNG DI ĐỘNG GSM MÁY CHỦ GSM MODEM MÁY KHÁCH SMS SMS SMS
4.1.2. Phần cứng
Máy chủ: máy tính để bàn hoặc máy xách tay có cấu hình yêu cầu ở mức trung bình, giao tiếp đƣợc với GSM Modem.
GSM Modem: là thiết bị ghép nối máy tính giúp giao tiếp với mạng di động GSM. Có thể sử dụng GSM Modem chuyên dụng hoặc điện thoại di động đóng vai trò GSM Modem để thực hiện việc gửi, nhận tin nhắn SMS từ máy tính.
Máy khách: sử dụng các loại điện thoại thông thƣờng, không cần tích hợp thiết bị thu GPS.
4.2. Lựa chọn công nghệ
4.2.1. Xử lý dữ liệu bản đồ số bằng MapInfo
MapInfo là phần mềm bản đồ đang đƣợc sử dụng khá rộng rãi trên thị trƣờng Việt Nam. MapInfo thiên về quản lý, tổng hợp thông tin, xây dựng các loại bản đồ chuyên đề số nên chức năng số hóa bản đồ của MapInfo còn hạn chế. Điểm mạnh của MapInfo là khả năng hiển thị, giàn trang in rất tiện lợi và đây là một trong những ƣu thế của MapInfo so với các phần mềm GIS khác. Giải pháp hỗ trợ cho desktop của MapInfo tƣơng đối nhỏ gọn nên MapInfo đang đƣợc chiếm ƣu thế lớn ở Việt Nam, nhất là đối với những nơi tiếp cận GIS sớm, quy mô nhỏ.
Ngoài các giải pháp desktop, MapInfo còn có các giải pháp mạng, ứng dụng Web. Với sự hỗ trợ triển khai dịch vụ trên nền web song song với ứng dụng desktop, MapInfo tỏ ra là một lựa chọn phù hợp cho triển khai thử nghiệm dịch vụ LBS trong đề tài.
Một số đặc điểm chính của MapInfo gồm:
- Có thể chạy trên các hệ điều hành: UNIX, Windows.
- Hỗ trợ các thiết bị: Bàn số, máy quét ảnh, chuột, các máy vẽ.
- Các chức năng chính: Tạo vùng đệm, phân tích bản đồ, phân tích mạng. - Cấu trúc dữ liệu: dữ liệu thuộc tính, dữ liệu bảng biểu, hình ảnh.
- Đơn giản, dễ sử dụng
- Phù hợp với mô hình quy mô nhỏ
Do một số ƣu điểm và khả năng đáp ứng khá tốt cho các yêu cầu xử lý dữ liệu, triển khai dịch vụ nên MapInfo là lựa chọn phù hợp cho xử lý dữ liệu bản đồ số thành phố Hà Nội, áp dụng trong dịch vụ LBS cài đặt thử nghiệm.
Phiên bản sử dụng trong công tác xử lý dữ liệu bản đồ của đề tài là MapInfo Professional 9.0. Phiên bản này có giao diện đẹp, công cụ thao tác thuận tiện.
Sử dụng bộ công cụ của MapInfo. Phần mềm để soạn thảo, hiệu chỉnh dữ liệu tĩnh của bản đồ số thành phố Hà Nội là MapInfo Professional 9.0.
Hình 4.2: Giao diện soạn thảo bản đồ MapInfo Professional 9.0
Hình 4.2 thể hiện giao diện của MapInfo đồng thời là một phần dữ liệu tĩnh bản đồ số thành phố Hà Nội sử dụng trong hệ thống cài đặt thử nghiệm của đề tài. Bản đồ chủ yếu thể hiện các tuyến phố chính, các điểm nút giao thông quan trọng để cài đặt thử nghiệm thuật toán tìm đƣờng trong dịch vụ LBS.
4.2.2. Công cụ lập trình
Công cụ lập trình chính đƣợc sử dụng trong cài đặt thử nghiệm dịch vụ LBS của đề tài là bộ Microsoft Visual Studio 2008. Đây là bộ công cụ phát triển các ứng dụng chuyên nghiệp của Microsoft đang đƣợc nhiều nhà phát triển phần mềm lựa chọn sử dụng.
Microsoft Visual Studio 2008 triển khai các ứng dụng trên môi trƣờng .Net (.Net framework).
Một số ƣu điểm chính của Microsoft Visual Studio 2008:
- Hỗ trợ nhiều ngôn ngữ lập trình nhƣ: VB.Net, C#, C++, ASP.Net
- Có khả năng phát triển nhiều loại ứng dụng khác nhau: ứng dụng giao diện cửa sổ (Windows Forms Application), ứng dụng kiểu giao diện text (Console Application), phát triển các thƣ viện, ứng dụng web...
- Ngoài các ứng dụng chạy trên hệ điều hành Windows cho các dòng máy tính, Microsoft Visual Studio 2008 còn hỗ trợ phát triển ứng dụng cho thiết bị thông minh (Smart Device).
- Hỗ trợ nhiều kiểu lập trình khác nhau nhƣ hƣớng đối tƣợng, hƣớng sự kiện, hƣớng thành phần,...
- Phát triển các ứng dụng đa luồng.
- Hỗ trợ viết mã: trợ giúp trực tuyến giúp lập trình viên nhanh chóng hoàn thiện các đoạn mã của mình, không phải nhớ nhiều cú pháp phức tạp của câu lệnh.
- Các tính năng thiết kế trực quan, tự động sản sinh mã nguồn giúp ngƣời lập trình tạo ra các sản phẩm một cách hiệu quả trong thời gian ngắn.
Hình 4.3: Giao diện Microsoft Visual Studio 2008
4.2.3. Cài đặt ứng dụng desktop và web với MapXtreme
MapXtreme là một môi trƣờng phát triển lý tƣởng để tạo ra các ứng dụng bản đồ và bản đồ trung tâm. MapXtreme là một trong các thành phần chính của bộ MapInfo. Phiên bản MapXtreme 2008 tƣơng thích và tích hợp luôn với bộ Microsoft Visual Studio 2008. MapXtreme 2008 cung cấp các công cụ điều khiển bản đồ thông dụng, các ứng dụng mẫu, và chức năng kéo và thả. Bản desktop MapXtreme 2008 hỗ trợ hoàn toàn cho các ngôn ngữ Microsoft.NET nhƣ VisualBasic.NET, C.
Với ứng dụng web, MapXtreme 2008 có nhiều hỗ trợ mạnh. Việc phát triển một ứng dụng bản đồ trên nền web với MapXtreme 2008 là khá dễ dàng và nhanh chóng. Có thể sử dụng tất cả các ngôn ngữ .NET nhƣ ASP.NET trong môi trƣờng MapXtreme 2008.
Hình 4.4: Giao diện MS Studio 2008 với sự tích hợp của MapXtreme 2008
Hình 4.5: Hiển thị dữ liệu bản đồ bằng MapXtreme 2008
Các công cụ lập trình xử lý dữ liệu bản đồ của MapXtreme tích hợp vào bộ Microsoft Visual Studio 2008.
4.2.4. Giao tiếp GSM Modem bằng tập lệnh AT
Dịch LBS tìm đƣờng đi trong thành phố cài đặt thử nghiệm của đề tài sử dụng giao tiếp giữa máy chủ và khách thông qua dịch vụ tin nhắn. Máy khách là các loại thiết bị liên lạc di động hỗ trợ sẵn khả năng gửi nhận tin nhắn. Máy chủ là máy tính thông thƣờng giao tiếp với mạng GSM thông qua thiết bị đóng vai trò là GSM Modem.
Để thuận tiện cho thử nghiệm, hệ thống sử dụng một điện thoại di động có khả năng kết nối với máy tính đóng vai trò của một GSM Modem. Để lập trình cho điện thoại này thực hiện các hoạt động: gửi, nhận, quản lý các tin nhắn gửi đi và nhận về trong hệ thống, ta có thể sử dụng bộ lệnh điều khiển modem AT.
Giới thiệu chung về tập lệnh AT
AT Commands (viết tắt của Attention Commands) là tập các lệnh đƣợc sử dụng để điều khiển modem. Hầu hết các lệnh trong đó bắt đầu bởi “AT” hay “at” nên nó đƣợc gọi là tập lệnh AT. Với tập lệnh AT chúng ta hoàn toàn có thể điều khiển đƣợc các modem GSM/GPRS và điện thoại di động (có tích hợp GSM Modem). Tập lệnh này do Viện Tiêu Chuẩn Viễn Thông Châu Âu (European Telecommunication Standards Institute - ETSI) đƣa ra.
Các GSM modem hỗ trợ tập lệnh AT chuẩn để giao tiếp với ứng dụng máy tính. Ngoài ra, modem có thể có tập lệnh mở rộng. Nếu ứng dụng máy tính sử dụng tập lệnh AT chuẩn để giao tiếp với modem thì ứng dụng đó không phụ thuộc vào thiết bị.
Các tập lệnh AT cơ bản
Các tập lệnh đưới giới thiệu dưới đây được công bố theo chuẩn máy Nokia.
Bảng 4.1: Tập lệnh AT xử lý tin nhắn (SMS), chế độ văn PDU
Lệnh Mô tả
AT+CMGL Xem danh sách message AT+CMGR Đọc message
AT+CMGS Gửi message AT+CMGW Lƣu message
Bảng 4.2: Tập lệnh AT điều khiển cuộc gọi
Lệnh Mô tả
ATA Lệnh trả lời
ATD Lệnh gọi
ATH Lệnh cúp máy
ATL Bật chế độ loa bên trong ATM Chế độ loa ngoài
ATO Go on-line
ATP Set pulse dial as default
ATT Thiết đặt nhạc chuông mặc định AT+CSTA Chọn kiểu địa chỉ
Bảng 4.3: Tập lệnh AT điều khiển Card
Lệnh Mô tả
AT&F Trở về chế độ mặc định AT&V Xem những thiết đặt
AT+GMI Xem thông tin nhà sản xuất AT+GMM Xem thông tin đời của điện thoại AT+GMR Xem phiên bản sản xuất
AT+GSN Xem số IMEI
Bảng 4.4: Tập lệnh AT điều khiển máy điện thoại
Lệnh Mô tả
AT+CBC Xạc pin
AT+CPAS Chế độ hoạt động của điện thoại AT+CPBF Tìm kiếm trong danh bạ
AT+CPBR Đọc danh bạ AT+CPBW Lƣu vào danh bạ AT+CSQ Xem lƣu lƣợng sóng
Bảng 4.5: Tập lệnh AT xử lý tin nhắn (SMS), chế độ văn bản
Lệnh Mô tả
AT+CSMS Chọn dịch vụ message AT+CMGF Định dạng message AT+CSCA Số của trung tâm dịch vụ AT+CSMP Thiết đặt dạng text
AT+CSDH Hiển thị chế độ text AT+CSAS Lƣu thiết đặt
AT+CRES Phục hồi cài đặt
AT+CMGL Xem danh sách message AT+CMGR Đọc message
AT+CMGS Gửi message
AT+CMSS Gửi message từ bộ nhớ AT+CMGW Lƣu message vào bộ nhó AT+CMGD Xóa message
Cách sử dụng tập lệnh AT để điều khiển modem
Để gửi/nhận tin nhắn SMS, ta cần kết nối thiết bị là GSM modem vào cổng COM của máy tính. Nếu modem kết nối máy tính bằng cổng USB thì cần phải biết tên của thiết bị trong hệ thống hoặc thiết bị đã đƣợc kết nối qua cổng COM mô phỏng nào. Chƣơng trình máy tính và thiết bị trao đổi dữ liệu thông qua hệ thống lệnh AT chuẩn. Tùy vào thiết bị và nhà sản xuất, mỗi modem có thể có hệ thống lệnh AT mở rộng nhằm tối ƣu và nâng cao khả năng kết nối của thiết bị với máy tính.
Trong chƣơng trình giao tiếp với modem bằng lệnh AT, trƣớc hết cần tạo một kết nối cổng COM tới modem. Sau đó gửi đến cổng COM những lệnh AT tƣơng ứng và đọc kết quả thực thi lệnh AT từ cổng COM. Cần kiểm tra kết nối và modem bằng cách sử dụng nhóm lệnh: AT, +CPIN, +CSCA, +CGMI, +CGMM, +CMEE, +CSMS, +CSQ, +CBC trƣớc mỗi phiên làm việc.
Để đọc thiết lập hiện tại, dùng lệnh AT có thêm ký tự „?‟. Để xem những giá trị nào có thể thiết lập, dùng lệnh AT có thêm hai ký tự „=?‟. Để thiết lập giá trị thông số mới, dùng lệnh AT có thêm ký tự „=‟, và theo sau đó là những giá trị
thông số mới. Để gửi một nội dung đến một thuê bao của khách hàng, sử dụng lệnh +CMGS. Trong trƣờng hợp nội dung cần gửi đến nhiều khách hàng khác nhau ta sử dụng lệnh +CMGW ghi SMS lên bộ nhớ của modem, sau đó dùng lệnh +SMSS để gửi SMS đó đến các khách hàng khác nhau. Cách này cho phép nâng cao tốc độ làm việc của modem nhờ giảm thiểu trao đổi thông tin giữa modem và chƣơng trình.
Có thể gửi SMS theo hai chế độ văn bản (text mode, +CMGF = 1) và chế độ mặc định PDU (Protocol Data Unit, +CMGF = 0). Giá trị các thiết lập thông số cho chế độ văn bản và PDU có khác nhau cho một số lệnh AT. Ví dụ, với lệnh đọc tất cả các tin nhắn +CMGL tiếp nhận các thông số "REC UNREAD","REC READ","STO UNSENT", "STO SENT" và "ALL" trong chế độ văn bản. Trong khi đó ở chế độ PDU sẽ là các giá trị 0 - 4. Ngoài ra, không phải tất cả các GSM modem đều hỗ trợ chế độ văn bản. Thử nghiệm cho thấy không chỉ những điện thoại lạc hậu, mà ngay cả với một số loại điện thoại hiện đại, chẳng hạn W580, cũng không hỗ trợ chế độ văn bản khi làm việc với các chƣơng trình trên máy tính. Trong khi đó, chế độ PDU thì tất cả các modem đều hỗ trợ và chế độ này cho phép gửi hình ảnh và nhạc chuông. Từ đó cho thấy, khi xây dựng một chƣơng trình làm việc với các GSM modem, cần phải nghiên cứu tài liệu kỹ thuật của từng loại modem để có thể thiết lập đúng những thông số mà modem đó hỗ trợ. Tất cả các modem đều phải hỗ trợ tập các lệnh AT chuẩn nên nếu chƣơng trình sử dụng tập lệnh AT chuẩn để làm việc với các modem, thì hệ thống sẽ không bị phụ thuộc vào thiết bị đƣợc sử dụng.
Sau đây là một ví dụ sử dụng lệnh AT và chƣơng trình HyperTerminal của Windows để gửi tin nhắn SMS. Nội dung dƣới đây là các lệnh và kết quả trả về từ màn hình giao diện HyperTerminal:
AT
OK
AT+CMGF=1
OK
AT+CMGW="0982713301"
> Day la noi dung thong diep thu nghiem.
+CMGW: 1 OK
AT+CMSS=1
+CMSS: 20 OK
Dòng thứ nhất: “AT” để gửi tới GSM modem nhằm kiểm tra kết nối. GSM modem gửi lại xâu “OK” (dòng thứ 2) cho biết kết nối giữa HyperTerminal và modem là tốt.
Dòng thứ 3: câu lệnh “AT+CMGF” để báo cho modem biết lựa chọn chế độ làm việc SMS là văn bản (text mode). Kết quả trả về “OK” báo rằng lệnh “AT+CMGF=1” đã thực hiện thành công. Nếu kết quả là “ERROR” thì có nghĩa là lệnh đã không đƣợc thực hiện thành công, điều này cũng có nghĩa là modem không hỗ trợ SMS text mode. Để xác nhận, thực hiện lệnh “AT+CMGF=?”, nếu kết quả trả về là “+CMGF: (0,1)” trong đó 0=PDU mode và 1=Text mode. Nếu kết quả là “+CMGF: (1)” thì Text mode đƣợc hỗ trợ, ngƣợc lại thì không.
Các dòng 5 và 6: câu lệnh “AT+CMGW” đƣợc sử dụng để ghi một thông điệp đến modem. Số điện thoại nhận là “0982713301”. Sau khi nhập xong số điện thoại nhận tin nhắn, nhấn phím Enter, modem gửi lại dấu nhắc “>”, tiếp theo nhập nội dung tin nhắn muốn gửi (trong ví dụ là “Day la noi dung thong diep thu nghiem.”). Nhấn tổ hợp phím “Ctrl+z” để kết thúc soạn nội dung tin nhắn.
Dòng 7: “+CMGW:1” cho biết chỉ số đƣợc gắn với tin nhắn là 1. Đây cũng chính là vị trí của tin nhắn trong bộ nhớ lƣu trữ tin nhắn văn bản.
Dòng 9: kết quả trả về “OK” báo lệnh “AT+CMGW” đã thực hiện thành công.
Dòng 10: “AT+CMSS” đƣợc sử dụng để gửi tin nhắn đƣợc lƣu trong bộ nhớ tin nhắn tại ví trí 1.
Dòng 11: “+CMSS:20” cho biết số hiệu tham chiếu đƣợc gán cho tin nhắn là 20.
Dòng 13: “OK” báo câu lệnh “AT+CMSS” đã đƣợc thực hiện thành công.
4.3. Định dạng gói tin SMS sử dụng để giao tiếp trong hệ thống
Hệ thống thử nghiệm sử dụng tin nhắn SMS để gửi yêu cầu, truyền tải thông tin kết quả giữa máy chủ và máy khách. Định dạng gói tin đƣợc quy ƣớc nhƣ sau:
4.3.1. Máy khách cài đặt phần mềm
Định dạng gói tin này sử dụng để giao tiếp giữa phần mềm phía máy khách với máy chủ. Các gói tin sẽ đƣợc máy khách, máy chủ sinh tự động theo yêu cầu ngƣời dùng. Trong trƣờng hợp này, ngƣời dùng dễ dàng khai thác dịch vụ hơn vì không phải nhớ định dạng gói tin yêu cầu dịch vụ, giao diện đẹp. Tuy nhiên yêu cầu máy khách phải cài đƣợc phần mềm.
4.3.1.1. Gói tin yêu cầu
Gói tin yêu cầu đƣợc phần mềm phía máy khách gửi đi đề yêu cầu máy chủ cung cấp dịch vụ. Gói tin yêu cầu có cấu trúc nhƣ sau:
Lenh HT Dau Cuoi PT TTGT
Đầu tin nhắn Cuối tin nhắn
Hình 4.6: Định dạng gói tin yêu cầu 1
Lenh: mã quy ƣớc lệnh khai thác dịch vụ, biểu diễn dƣới dạng xâu văn
bản, luôn bắt đầu bằng dấu @ (ví dụ: “@TD” để tìm đƣờng).
HT: Vị trí hiện thời của của ngƣời sử dụng (cũng chính là vị trí của máy
khách). Vị trí này có thể nhận đƣợc thông qua thiết bị định vị hoặc do ngƣời