Ứng dụng định vị

84
Báo cáo đồ án tt nghip SV: Nguyn ThDip Tú Trangi MC LC LI NÓI ĐẦU ....................................................................................................................................... 1 CHƯƠNG I: CÔNG NGHHTRĐỊNH V.................................................................................... 2 I.1 Gii thiu ........................................................................................................................... 2 I.1.1 Phân loi ............................................................................................................................ 2 I.1.2 Hthng vtinh GPS ....................................................................................................... 3 I.2 Các công nghhtrđịnh v........................................................................................... 6 I.2.1 Công nghGIS. ................................................................................................................. 6 I.2.2 Công nghtruyn dliu ................................................................................................. 8 I.3 ng dng ca GPS. ........................................................................................................ 19 Chương II CÔNG NGHJ2ME, MIDP ...................................................................................... 20 II.1 J2ME................................................................................................................................ 20 II.1.1 Gii thiu...................................................................................................................... 20 II.1.2 Kiến trúc....................................................................................................................... 21 II.2 MIDP................................................................................................................................ 24 II.2.1 Gii thiu...................................................................................................................... 25 II.2.2 Lp trình ...................................................................................................................... 29 Chương III CƠ SHTRPHÁT TRIN NG DNG ĐỊNH V........................................ 37 III.1 LOCATION API............................................................................................................. 37 III.1.1 Gii thiu...................................................................................................................... 37 III.1.2 Location. ....................................................................................................................... 38 III.1.3 Mc ranh gii(Landmark).......................................................................................... 41 III.1.4 Định hướng(Orientation) ............................................................................................ 42 III.1.5 Bo mt và cp phép ................................................................................................... 42 III.2 GOOGLE API................................................................................................................. 43 III.2.1 Static Google API ........................................................................................................ 43 III.2.2 Google Map Javasript ................................................................................................. 47 Chương IV PHÁT TRIN NG DNG ĐỊNH V...................................................................... 59 IV.1 GII THIU NG DNG ............................................................................................ 59 IV.2 PHÂN TÍCH.................................................................................................................... 60 IV.2.1 Chương trình sever ..................................................................................................... 60 IV.2.2 Chương trình client ..................................................................................................... 65 IV.3 Xây dng ng dng ........................................................................................................ 68

Upload: trong-thua-huynh

Post on 13-Apr-2016

49 views

Category:

Documents


11 download

DESCRIPTION

Nghiên cứu phát triển ứng dụng định vị cho máy điện thoại di động dùng công nghệ J2ME, MIDP, Google API.

TRANSCRIPT

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangi

MỤC LỤC

LỜI NÓI ĐẦU ....................................................................................................................................... 1

CHƯƠNG I: CÔNG NGHỆ HỖ TRỢ ĐỊNH VỊ .................................................................................... 2

I .1 Giới thiệu ........................................................................................................................... 2

I .1.1 Phân loại ............................................................................................................................ 2

I .1.2 Hệ thống vệ tinh GPS ....................................................................................................... 3

I .2 Các công nghệ hỗ trợ định vị ........................................................................................... 6

I .2.1 Công nghệ GIS. ................................................................................................................. 6

I .2.2 Công nghệ truyền dữ liệu ................................................................................................. 8

I .3 Ứng dụng của GPS. ........................................................................................................ 19

Chương I I CÔNG NGHỆ J2ME, MIDP ...................................................................................... 20

I I .1 J2ME ................................................................................................................................ 20

I I .1.1 Giới thiệu ...................................................................................................................... 20

I I .1.2 Kiến trúc....................................................................................................................... 21

I I .2 MIDP ................................................................................................................................ 24

I I .2.1 Giới thiệu ...................................................................................................................... 25

I I .2.2 Lập tr ình ...................................................................................................................... 29

Chương I I I CƠ SỞ HỖ TRỢ PHÁT TRIỂN ỨNG DỤNG ĐỊNH VỊ ........................................ 37

I I I .1 LOCATION API ............................................................................................................. 37

I I I .1.1 Giới thiệu ...................................................................................................................... 37

I I I .1.2 Location. ....................................................................................................................... 38

I I I .1.3 Mốc ranh giới(Landmark) .......................................................................................... 41

I I I .1.4 Định hướng(Orientation) ............................................................................................ 42

I I I .1.5 Bảo mật và cấp phép ................................................................................................... 42

I I I .2 GOOGLE API ................................................................................................................. 43

I I I .2.1 Static Google API ........................................................................................................ 43

I I I .2.2 Google Map Javasr ipt ................................................................................................. 47

Chương IV PHÁT TRIỂN ỨNG DỤNG ĐỊNH VỊ ...................................................................... 59

IV.1 GIỚI THIỆU ỨNG DỤNG ............................................................................................ 59

IV.2 PHÂN TÍCH .................................................................................................................... 60

IV.2.1 Chương tr ình sever ..................................................................................................... 60

IV.2.2 Chương tr ình client ..................................................................................................... 65

IV.3 Xây dựng ứng dụng ........................................................................................................ 68

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangii

IV.3.1 Bộ công cụ phát tr iển ứng dụng. ................................................................................ 68

IV.3.2 Hiện thực ...................................................................................................................... 68

IV.3.3 Hướng phát tr iển. ........................................................................................................ 73

IV.4 KỊCH BẢN DEMO. ........................................................................................................ 74

IV.4.1 K ịch bản 1 : ..................................................................................................................... 74

IV.4.2 K ịch bản 2 : ..................................................................................................................... 74

IV.4.3 K ịch bản 3 : ..................................................................................................................... 74

KẾT LUẬN .......................................................................................................................................... 76

TÀI LIỆU THAM KHẢO. .................................................................................................................... 77

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangiii

DANH MỤC HÌNH VẼ

Hình 1: Hệ thống vệ tinh GPS .................................................................................. 3

Hình 2 : Cấu trúc phần vũ trụ .................................................................................. 4

Hình 3 : Nguyên tắc cơ bản định vị GPS ................................................................ 5

Hình 4 : Các kiểu dữ liệu được ứng dụng trong GIS .............................................. 7

Hình 5 : Kiến trúc chính của mạng GPRS ..................................................... …….9

Hình 6 :Mô tả hai mạng intra – PLMN kết nối với một inter – PLMN……………14

Hình 7 : Các tầng của CLDC J2ME ....................................................................... 24

Hình 8 : Chu kỳ sống của MIDlet ............................................................................ 27

Hình 9 : Cây phân cấp Connection .......................................................................... 31

Hình 10 : Ảnh thành phố NewYork dùng Google Static Map ................................ 43

Hình 11 : Kết quả ví dụ sử dụng kí hiệu biến cảm ................................................... 46

Hình 12 : Kết quả ví dụ icon .................................................................................... 53

Hình 13 : Kết quả ví dụ Gmarker ........................................................................... 56

Hình 14 : Kết quả ví dụ GXml ................................................................................. 58

Hình 15 : Biểu đồ use case server ........................................................................... 59

Hình 16 : Biểu đồ tuần tự xử gửi và nhận bản đồ .................................................... 60

Hình 17 : Biểu đồ tuần tự hiển thị tọa đồ để chọn .................................................... 63

Hình 18 : Biểu đồ tuần tự hiển thị tọa độ lên bản đồ................................................ 63

Hình 19 : Biểu đồ tuần tự hiển thị tọa độ lên bản đồ................................................ 64

Hình 20 : Giao diện hiển thị tọa độ lên bản đồ ......................................................... 64

Hình 21: Lược đồ use case client. ........................................................................... 65

Hình 22: Giao diện chức năng định vị ...................................................................... 67

Hình 23 : Bảng cơ sở dữ liệu ở server. ..................................................................... 72

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangiv

DANH MỤC BẢNG.

Bảng 1 : Những thay đổi và nâng cấp trong mạng GPRS. ....................................... 10

Bảng 2 : Một số lớp GPRS phổ biến ........................................................................ 16

Bảng 3 : Bảng minh họa tiến trình lịch sử của J2ME .............................................. 20

Bảng 4 : Bảng so sánh các thông số kỹ thuật của CDC và CLDC ........................... 22

Bảng 5 : Các phương thức CLDC Connector. .................................................................. 33

Bảng 6 : Mô tả các lớp trong gói javax.microedition.location ................................. 37

Bảng 7 : Mô tả các giao diện trong gói javax.microedition.location ....................... 38

Bảng 8 : Mô tả các ngoại lệ trong gói javax.microedition.location ......................... 38

Bảng 9 : Các phương thức ném ngoại lệ .................................................................. 42

Bảng 10 : Danh sách các actor của chương trình cho client. ................................... 60

Bảng 11 : Danh sách các use case của chương trình cho client ............................... 60

Bảng 12 : Danh sách các actor của chương trình cho client. ................................... 65

Bảng 13 : Danh sách các use case của chương trình cho client ............................... 66

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangv

THUẬT NGỮ VIẾT TẮT

Từ viết tắt Từ đầy đủ Giải thích nghĩa

APN Access Point Name Tên điểm truy cập

BSC Base Station Controller Đài điều khiển trạm gốc

BSS Base Station Subsystem Hệ thống trạm gốc

BTS Base Transceiver Station Trạm thu phát gốc

CDC Connected Device Configuration Cấu hình thiết bị kết nối

CDMA Code Division Multiple Access Phương thức đa truy cập phân chia theo mã

CLDC Connected Limited Device

Configuration

Cấu hình thiết bị giới hạn kết nối

EDGE Enhanced Data Rates for GSM

Evolution

Một công nghệ được nâng cấp từ GPRS

FDMA Frequency Division Multiple

Access

Phương pháp đa truy cập phân chia theo tần số

GCF Generic Connection Framework Khung mạng kết nối tổng quát

GIS Geographical information

system

Hệ thống thông tin địa lí

GLONASS Global Navigation Satellite

System

Hệ thống vệ tinh định vị toàn cầu

GMSC Gateway Mobile Services

Switching Center

Trung tâm điều khiển dịch vụ di động cổng mạng

GPRS General Packet Radio Service Dịch vụ vô tuyến gói tổng hợp

GPS Global Positioning System Hệ thống định vị toàn cầu

GSM Global System for Mobile Hệ thống thông tin di động toàn cầu

HLR Home Location Register Hệ thống đăng ký địa chỉ thuê bao thường trú

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangvi

HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn bản

IMSI International Mobile Subscriber

Identity

Nó là chuỗi nhận dạng thiết bị di động

J2EE Java 2 Platform Enterprise

Edition

Nền tảng Java 2 phiên bản doanh nghiệp

J2ME Java 2 Platform Micro Edition Nền tảng Java 2 phiên bản thu nhỏ

J2SET Java 2 Platform Standard Edition Nền tảng Java 2 phiên bản chuẩn

JAD Java Application Descriptor Tập tin mô tả ứng dụng Java

JAR Java Archive File Tập tin lưu trữ java

JDK Java Development Kit Bộ công cụ phát triển ngôn ngữ Java của Sun

JRE Java Runtime Environment Môi trường thực thi Java

JSR Java Specification Request Chuẩn đặc tả yêu cầu Java

JVM Java Virtual Machine Máy ảo Java

KVM K Virtual Machine Dạng rút gọn của máy ảo Java ứng dụng trong CLDC

MIDlet Mobile Information Device

applet

Dạng ứng dụng trên di động dùng MIDP

MIDP Mobile Information Device

Profile

Hiện trạng thiết bị thông tin di động

MMS Multimedia Messaging Service Dịch vụ tin nhắn đa phương tiện

MSC Mobile Switching Center Trung tâm chuyển mạch di động

NSS Network Switching Subsystem. Phân hệ chuyển mạch

PDA Personal Digital Assistant Thiết bị kĩ thuật số hỗ trợ các nhân

PLMN Public Land Mobile Network Mạng di động mặt đất công cộng

RMS Record Management System Hệ thống quản lí bản ghi

RS Record Store Tập các bản ghi

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trangvii

RSS Radio SubSystem Hệ con vô tuyến

SGSN Serving GPRS Support Node Nút cung cấp dịch GPRS

SMTP Simple Mail Transfer Protocol Giao thức truyền thư đơn giản

SSL Secure Socket Layer Lớp socket bảo mật

TDMA Time Division Multiple Access Phương thức đa truy cập phân chia theo thời gian

TE Terminal equipment Thiết bị đầu cuối

VLR Visitor Location Register Bộ định vị trí tạm trú

WAP Wireless Application Protocol Giao thức ứng dụng không dây

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trang1

LỜI NÓI ĐẦU

Sự phát triển mạnh mẽ của công nghệ thông tin và sự phát triển nhanh chóng

của các công nghệ chế tạo thiết bị, các dịch vụ và sản phẩm phần mềm đã tạo ra các

thiết bị hiện đại như máy tính, lap tap ,.. đặc biệt là điện thoại di động. Ngày nay điện

thoại di động không chỉ là chiếc điện thoại với những chức năng nghe gọi thông

thường mà thực sự đã trở thành một thiết bị được trang bị những công nghệ hiện đại và

thực sự mạnh mẽ.Các sản phẩm gần đây của các nhà cung cấp dịch vụ nổi tiếng thế

giới như Google với hệ điều hành Android hay Apple với iPhone đã minh chứng cho

nhận định đó.

Thiết bị di động mặc dù có nhiều hạn chế so với máy vi tính về tốc độ xử lý, bộ nhớ,

màn hình hiện thị… nhưng nó có ưu thế riêng là sự nhỏ gọn và cơ động. Hơn nữa sự

phát triển không ngừng của các ngôn ngữ lập trình, đặc biệt là JAVA với nền tảng

J2ME - phiên bản rút gọn cho Java chạy trên các thiết bị có cấu hình thấp về bộ xử lý,

bộ nhớ… và các công nghệ liên quan khác như GPRS, XML… đã trở thành nền tảng

cho sự ra đời và phát triển của rất nhiều ứng dụng và dịch vụ chạy trên thiết bị di động.

Bên cạnh đó, công nghệ GPS dù đã được sử dụng từ lâu với những ứng dụng tuyệt vời

về dò đường, giám sát … nhưng gần đây, GPS đã được tích hợp di động, đem lại

những ứng dụng vô cùng độc đáo và hấp dẫn.

Chính những điều hấp dẫn trên làm em mong muốn tìm hiểu và nghiên cứu về chúng,

đó là lí do em chọn đề tài : Nghiên cứu phát triển ứng dụng định vị cho máy điện thoại

di động. Phạm vi của đề tài là đem lại cái nhìn tổng quan về GPS, các công nghệ hỗ

trợ định vị, công nghệ J2ME&MIDP (để phát triển ứng dụng cho di động), công nghệ

hỗ trợ phát triển ứng dụng định vị (Google API, Location API) và xây dựng chương

trình ứng dụng định vị . Đề tài sẽ gồm các phần chính sau:

Chương I : Công nghệ hỗ trợ định vị.

Chương II :Công nghệ J2ME, MIDP.

Chương III : Cơ sở hỗ trợ phát triển ứng dụng định vị.

Chương IV: Phát triển ứng dụng định vị.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang2

CHƯƠNG I : CÔNG NGHỆ HỖ TRỢ ĐỊNH VỊ I .1 Giới thiệu

GPS -Global Positioning System - là hệ thống định vị toàn cầu do Bộ quốc phòng

Hoa Kì thiết kế, xây dựng, vận hành và quản lý. Trong cùng một thời điểm, ở một

vị trí trên mặt đất nếu xác định được khoảng cách đến ba vệ tinh (tối thiểu) thì sẽ

tính được tọa độ của vị trí đó. Hệ thống định vị toàn cầu là một hệ thống có rất

nhiều ứng dụng trong khoa học công nghệ và trong đời sống hàng ngày: Đo đạc đia

chất, dẫn đường, vẽ bản đồ, quốc phòng an ninh, tìm kiếm cứu nạn… Những ứng

dụng của hệ thống GPS rất rộng.

I .1.1 Phân loại

I .1.1.a NAVSTAR GPS

NAVSTAR GPS là hệ thống vệ tinh phát tín hiệu định vị được sử dụng nhiều

nhất hiện nay. NAVSTAR GPS được triển khai bởi quân đội Mỹ, bắt đầu hoạt

động hoàn chỉnh từ năm 1993. GPS hay Global Positioning System thật ra là tên

gọi chung cho tất cả các hệ thống có khả năng định vị trên toàn cầu. Vì NAVSTAR

GPS là hệ thống được dùng rộng rãi nhất hiện nay nên nhiều người đánh đồng GPS

với NAVSTAR GPS.

NAVSTAR GPS là sản phẩm kế thừa của hệ thống định vị bằng vệ tinh trước

đó của Mỹ: Transit. Ban đầu chỉ được dùng cho các ứng dụng quân sự, nhưng sau

vụ tai nạn thảm khốc của hãng Air line, GPS được chính phủ cho phép sử dụng

rộng rãi cho các ứng dụng dân sự. Tuy nhiên, tín hiệu dân sự chỉ có độ chính xác

tương đối so với tín hiệu được dùng cho quân sự và quân đội Mỹ vẫn giữ quyền

kiểm soát.

Về mặt ứng dụng, NAVSTAR GPS chính là hệ thống nền tảng cho hầu hết các

thiết bị định vị hiện có trên thị trường.

I .1.1.b GLONASS (Global Navigation Satellite System)

GLONASS được Liên bang Xô Viết cũ xây dựng từ 1976 và đạt độ phủ toàn

cầu năm 1991. Từ sau sự sụp đổ của Liên bang Xô Viết, hệ thống này không còn

được duy trì tốt. Vì các vệ tinh chỉ có tuổi đời khoảng 5 năm nên nhều lỗ hổng

trong vùng phủ sóng bất đầu xuất hiện. Chỉ đến năm 2001, các lỗ hổng trong hệ

thống mới được khắc phục và hệ thống được nâng cấp để sử dụng thêm nhiều tần

số và kéo dài tuổi đời vệ tinh.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang3

Tương tự NAVSTAR GPS, GLONASS có 2 tín hiệu khác nhau dùng cho dân

sự (độ chính xác thấp) và quân sự (độ chính xác cao hơn).

I .1.1.c GALILLEO

Là dự án có sự hợp tác của nhiều quốc gia trong Liên minh châu Âu và một số

nước khác. Tuy nhiên Galilleo hiện vẫn ở giai đoạn lập kế hoạch. Galilleo khác

biệt với NAVSTAR GPS và GLONASS ở các điểm:

- Có thể dùng để tăng cường độ chính xác cho việc định vị dựa vào

NAVSTAR GPS và GLONASS: từ vài chục mét xuống vài cm; đồng thời

có khả năng hoạt động độc lập khi hai hệ thống trên có vấn đề.

- Được xây dựng cho mục đích dân sự, mọi đối tượng đều có thể sử dụng

miễn phí; quá trình quản lý sẽ minh bạch hơn do có sự tham gia của nhiều

quốc gia.

Galilleo được dự kiến sẽ đi vào hoạt động trong khoảng 2010 đến 2013

I .1.2 Hệ thống vệ tinh GPS

Hệ thống định vị toàn cầu (Global Positioning System – GPS gồm 3 phân đoạn:

phân đoạn không gian, phân đoạn điều khiển , phân đoạn người sử dụng.

Hình 1 : Hệ thống vệ tinh GPS.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang4

I .1.2.a Cấu trúc

� Phần vũ trụ

Gồm 24 vệ tinh quay xung quanh trái đất hai lần trong ngày trong quỹ

đạo rất chính xác.Độ cao của vệ tinh so với mặt đất là 20,183 km, chu kì

quay xung quanh trái đất là 11 giờ 57’58’ ’

Phần vũ trụ đảm bảo cho bất kì nào trên trái đất đều có thể được 4 vệ tinh

quan sát ở góc trên 15 độ (nếu góc dưới 10độ thì do 10 vệ tinh quan sát, góc

dưới 5 độ có thể do 12 vệ tinh quan sát).

Hình 2 : Cấu trúc phần vũ trụ.

Nhiệm vụ chủ yếu của các vệ tinh :

- Ghi nhận và lưu giữ các thông tin được truyền đi từ bộ phận điều

khiển.

- Xử lí dữ liệu có chọn lọc trên vệ tinh.

- Duy trì chính xác thời gian của các đồng hồ nguyên tử.

- Chuyển tiếp thông tin đến người sử dụng.

- Thay đổi quỹ đạo bay của vệ tinh theo sự điềi khiển của mặt đất.

� Phần kiểm soát

Mục đích trong phần này là kiểm soát vệ tinh đi đúng hướng theo quỹ đạo

và thông tin thời gian chính xác. Có 5 trạm kiểm soát đặt rải rác trên trái đất.

Bốn trạm kiểm soát hoạt động một cách tự động, và một trạm kiểm soát là

trung tâm. Bốn trạm này nhận tín hiệu liên tục từ những vệ tinh và gửi các

thông tin này đến trạm kiểm soát trung tâm. Tại trạm kiểm soát trung tâm,

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang5

nó sẽ sửa lại dữ liệu cho đúng và kết hợp với hai an-ten khác để gửi lại

thông tin cho các vệ tinh.Trạm trung tâm đặt tại Colorade Springs (Mỹ) có

mhiệm vụ thu thập dữ liệu theo dõi vệ tinh từ các trạm thu số liệu để xử lí.

� Phần sử dụng

- Những thiết bị nhận tín hiệu GPS:

- Những máy thu tín hiệu GPS có anten riêng (máy định vị) :

- Các thiết bị tự ghi (bộ ghi số liệu):

- Máy tính (phần mềm xử lí số liệu)

I .1.2.b Cách thức định vị

Các vệ tinhGPS bay vòng quanh Trái Đất hai lần trong một ngày theo một quỹ

đạo rất chính xác và phát tín hiệu có thông tin xuống Trái Đất.Mỗi vệ tinh GPS

phát liên tục một tín hiệu vô tuyến tạo thành tổng thể từ hai sóng mang, hai mã và

một thông điệp điều hướng. Khi bộ thu GPS ở vị trí ON, nó sẽ thu lấy tín hiệu

thông qua antenna bộ thu. Các máy thu GPS nhận thông tin này và bằng phép tính

lượng giác tính được chính xác vị trí của người dùng. Về bản chất máy thu GPS so

sánh thời gian tín hiệu được phát đi từ vệ tinh với thời gian nhận được chúng. Sai

lệch về thời gian cho biết máy thu GPS ở cách vệ tinh bao xa. Rồi với nhiều quãng

cách đo được tới nhiều vệ tinh máy thu có thể tính được vị trí của người dùng và

hiển thị lên bản đồ điện tử của máy.

Máy thu phải nhận được tín hiệu của ít nhất ba vệ tinh để tính ra vị trí hai chiều

(kinh độ và vĩ độ) và để theo dõi được chuyển động. Khi nhận được tín hiệu của ít

nhất 4 vệ tinh thì máy thu có thể tính được vị trí ba chiều (kinh độ, vĩ độ và độ

cao). Một khi vị trí người dùng đã tính được thì máy thu GPS có thể tính các thông

tin khác, như tốc độ, hướng chuyển động, bám sát di chuyển, khoảng hành trình,

quãng cách tới điểm đến, thời gian Mặt Trời mọc, lặn và nhiều thứ khác nữa.

Hình 3: Nguyên tắc cơ bản định vị GPS.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang6

I .2 Các công nghệ hỗ trợ định vị I .2.1 Công nghệ GIS.

GIS(Geographical information system)- Hệ thống thông tin điạ lí - là một hệ

thống tích hợp phần cứng, phần mềm, và dữ liệu để lưu giữ, phân tích, quản lý và

trình bày dữ liệu liên quan tới vị trí và thông tin địa lý. Theo cách hiểu hiện nay,

GIS còn baogồm các công cụ truy vấn thông tin, phân tích và kết hợp các thông

tin rời rạc, bản đồ, biểu đồ, báo cáo …

GIS đóng vai trò rất quan trọng trong các LBS , vì nếu thiếu cơ sở dữ liệu thông

tin về các vị trí do GIS cung cấp, LBS không thể rút ra ý nghĩa từ thông tin vị trí

thu được của thiết bị.

GIS được ứng dụng trong khá nhiều ngành như bất động sản, y tế, an ninh quốc

phòng hay quy hoạch đô thị.

I .2.1.a Dữ liệu cho GIS

Dữ liệu cho GIS thường khá lớn, liên kết nhiều loại dữ liệu khác nhau: dữ liệu

có thể được nhập bằng tay, bằng các thiết bị hỗ trợ với tính năng GPS, từ ảnh scan

v.v… Để có thể chuyển nhiều loại dữ liệu thô khác nhau này thành dữ liệu luận lý

phục vụ cho việc xử lý đòi hỏi sự kết hợp của khá nhiều công nghệ trong đó có :

� Định vị.

Hỗ trợ việc vẽ bản đồ và thu thập dữ liệu. Nổi bật nhất là Google với hệ

thống street car thu thập ảnh đường phố ở nhiều nơi trên thế giới. Google

street view kết hợp hình ảnh với vị trí thu được hình ảnh đó dựngmô hình

3D của con phố. Giờ đây các phương tiện có thiết bị định vị có thể giúp

điều chỉnh độ chính xác của các bản đồ, thu thập dữ liệu hình ảnh.

� Xử lý ảnh.

Các công nghệ xử lý ảnh được sử dụng để kết hợp thông tin từ nhiều lần

khảo sát khác nhau,sửa chữa sai sót giữa các lần khảo sát của cùng một khu

vực.Từ đó, xây dựng được dữ liệu với độ chính xác tương đối.

� Nhận dạng.

Với công nghệ nhận dạng giờ đây các bản đồ trên giấy hoặc các dữ liệu

khảo sát vùng/miền có thể được scan, các vùng khác nhau trên bản đồ được

tự động nhận dạng và chuyển thành dạng vector, dữ liệu chữ và số được

đưa vào cơ sở dữ liệu một cách hoàn toàn tự động. Để lưu trữ dữ liệucó khá

nhiều kiểu dữ liệu được ứng dụng trong GIS và được phân thành 2 loại

chính:

- Dữ liệu dạng raster: Dữ liệu được lưu dưới dạng bảng.Dữ liệu được lưu

thông dụng nhất là ảnh kĩ thuật số mỗi điểm trên ảnh mang giá trị là màu),

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang7

dữ liệu nhiệt độ, lượng mưa ở từng khu vực. Dữ liệu raster có thể được

lưu vào file hoặc cơ sở dữ liệu, tuy nhiên kích thước bảng khá lớn gây khó

khăn cho việc tìm kiếm.

- Dữ liệu dạng vector: Là cách tốt nhất để biểu diễn các yếu tố địa lý như

sông, hồ.Vector có thể biểu diễn dưới dạng toán học (tọa độ 2 đầu của một

đường thẳng) thay vì nhiều điểm liên tục như dữ liệu dạng raster

nênbảng dữ liệu nhỏ hơn và dễ tìm kiếm hơn.Dữ liệu vector thường kết hợp

của nhiều đối tượng hình học đơn giản như: điểm(biểu diễn vi trí nào

đó),đường(biểu diễn đường xá,sông ,mạch nước,..),đa giác (biểu diễn một

vùng,khuôn viên công trình,một mặt hồ,…)

- Các dữ liệu phi không gian (non – spatial) khác: Thường được lưu trữ kết

hợp với các kiểu dữ liệu trên để phục vụ việc xử lý và ra quyết định. Ví dụ

hình ảnh vệ tinh của một quận (raster) có thể đi kèm với bản đồ đường

(vector) và các chỉ tiêu phát triển xã hội như số dân, mật độ dân số, thành

phần dân số…

Hình 4 : Các kiểu dữ liệu được ứng dụng trong GIS.

I .2.1.b Xử lý thông tin với GIS

Xử lý GIS không chỉ gói gọn trong một hệ thống nhất định.Các hệ thống GIS có

thể sử dụng các công cụ hỗ trợ dưới dạng plug-in và công cụ phát triển phần mềm

(Software Development Kit – SDK) đi kèm để người dùng có thể tự tạo công cụ xử

lý dựa trên dữ liệu một cách phù hợp. Xử lí thông tin GIS gồm các bước : mô hình

hóa dữ liệu, mô hình hóa các mạng lưới, mô hình hóa bản đồ, thống kê địa lí, mã

hóa địa chỉ.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang8

I .2.1.c Trình bày thông tin với GIS

� Bản đồ

GIS thường được dùng để tạo ra bản đồ. Các ứng dụng GIS thường cho

phép người dùng dễ dàng thay đổi cách thể hiện bản đồ như tỉ lệ, màu

sắc, kí hiệu v.v… sao cho phù hợp. Vì tận dụng được dữ liệu cũ nên GIS

tạo ra bản đồ nhanh hơn nhiều so với các phương pháp truyền thống. Bản

đồ và các số liệu kèm theo thường được dùng để ra quyết định hoặc tham

khảo. Bản đồ có thế có nhiều dạng: bản đồ giấy thông thường hoặc bản đồ

số với các tính năng tương tác.

� Đồ họa máy tính.

GIS cũng có thể dùng để biểu diễn dữ liệu địa lý một cách trực quan,

chẳng hạn như các danh sách hoặc biểu đồ. Đồ họa máy tính mở ra nhiều

hướng mới để theo dõi dữ liệu địa lý như mô hình 3 chiều, khả năng thêm

bớt các lớp dữ liệu tức thời và quan sát từ nhiều góc độ.

Ứng dụng của GIS không chỉ ở tầm vĩ mô như quy hoạch mà còn có thể

ở tầm vi mô như quản lý một tòa nhà. GIS hoàn toàn có thể được ứng dụng

để theo dõi luồng nhiệt trong một cao ốc, bao gồm cả các yếu tố bên ngoài

như mặt trời và mưa gió.

I .2.2 Công nghệ truyền dữ liệu I .2.2.a WAP

WAP (viết tắt của Wireless Application Protocol - Giao thức Ứng dụng Không

dây) là một tiêu chuẩn công nghệ cho các hệ thống truy nhập Internet từ các thiết bị

di động như điện thoại di động, PDA, v.v... Mặc dù tiêu chuẩn này chưa được

chuẩn hóa trên toàn cầu, nhưng những ứng dụng của giao thức này đã tác động rất

lớn đến ngành công nghiệp di động và các lĩnh vực dịch vụ liên quan. WAP là giao

thức truyền thông mang lại rất nhiều ứng dụng cho người sử dụng thiết bị đầu cuối

di động như E-mail, web, mua bán trực tuyến, ngân hàng trực tuyến, thông tin

chứng khoán, v.v...

WAP có thể được dùng để đưa nội dung đển với người dùng một cách chủ động

(WAP push) mà không cần người dùng yêu cầu. Ban đầu WAP còn đi kèm với

WML để triển khai và thể hiện các trang web tiêu chuẩn cho phù hợp với các thiết

bị di động. Sử dụng khuôn dạng tín hiệu dữ liệu tối ưu, WAP được thiết kế để

duyệt các nội dung web tới thiết bị vô tuyến thông qua loại bỏ các thành phần đồ

hoạ nhằm hiển thị trên màn hình nhỏ và hạn chế băng thông. Thực tế rất nhiều mã

WML được sửa đổi từ mã HTML.Dần dần cùng với sự phát triển của công nghệ

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang9

thiết bị di động, WML trở nên không cần thiết và với WAP 2.0, WML đã được

thay thế bằng XHTML. I .2.2.b GPRS

� Tổng quan về GPRS.

GPRS (General Packet Radio Service) là dịch vụ vô tuyến gói tổng hợp

được phát triển trên nền tảng công nghệ thông tin di động toàn cầu (Global

System for Mobile- GSM) sử dụng các kênh đa truy cập phân chia theo thời

gian (TDMA ).

Công nghệ GPRS hay còn biết đến với mạng di động thế hệ 2.5G, áp

dụng nguyên lý gói vô tuyến để truyền số liệu của người sử dụng một cách

có hiệu quả giữa máy điện thoại di động tới các mạng truyền số liệu. Lợi

ích chính của GPRS là nguồn tài nguyên vô tuyến được truy xuất chỉ khi dữ

liệu thật sự được gửi đi giữa trạm di động và mạng, được phát triển dựa trên

các thành phần của mạng GSM hiện có, vì vậy tiết kiệm được chi phí đồng

thời sử dụng được tài nguyên tiết kiệm, giảm nghẽn mạch. Hơn nữa, GPRS

còn nâng cao chất lượng dịch vụ dữ liệu, tăng độ tin cậy. GPRS áp dụng

nguyên tắc gói vô tuyến để truyền gói dữ liệu hiệu quả hơn giữa trạm di

động GSM và mạng dữ liệu gói bên ngoài. Một người sử dụng GPRS có thể

sử dụng 8 khe thời gian để đạt tốc độ tối đa hơn 100kbit/s. � Mô tả kiến trúc chính của một mạng GPRS.

Hình 5 : Kiến trúc chính của mạng GPRS

Vì lúc đầu GSM được thiết kế cho lưu lượng chuyển mạch kênh nên việc

đưa dịch vụ chuyển mạch gói vào đòi hỏi phải bổ sung thêm thiết bị mạng

cũng như nâng cấp các phần mềm tương ứng .Mạng GPRS kết nối với các

mạng số liệu công cộng như IP và mạng X.25.Dữ liệu trên mạng cung cấp

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang10

sự vận chuyển dữ liệu gói ở tốc độ 9.6Kbps đến 171 Kbps. Hơn nữa nhiều

user có thể chia sẽ cùng nguồn tài nguyên vô tuyến.Những thay đổi trong

mạng GPRS có thể được tóm tắt trong bảng sau :

Thành phần của mạng

GSM

Những thay đổi và nâng cấp trong mạng GPRS

TE(terminal equipment)

Toàn bộ thiết bị đầu cuối thuê bao phải mới để

truy xuất dịch vụ GPRS, những thiết bị này phải

tương thích với mạng GSM.

BTS (Base Transceiver

Station)

Nâng cấp phần mềm.

BSC (Base Station

Controller)

Nâng cấp phần mềm và thiết lập thiết bị phần cứng

mới gọi là PCU (Packet Control Unit). PCU dẫn

lưu lượng dữ liệu đến mạng GPRS và là một thành

phần của BSC.

Core Network Sự phát triển lên GPRS đòi hỏi nhiều thành phần

mới.

Các cơ sở dữ liệu (VLR,

HLR..)

Tất cả các cơ sở dữ liệu trong mạng đều phải nâng

cấp phần mềm để xử lý các chức năng và mô hình

mới trong GPRS.

Bảng 1 : Những thay đổi và nâng cấp trong mạng GPRS.

� Các loại thiết bị di động hỗ trợ GPRS

- TE.

Thuật ngữ “Terminal Equipment” dùng để chỉ các loại điện thoại di động

khác nhau có thể sử dụng trong mạng GPRS.

Một TE GPRS có thể là một trong 3 lớp A, B, C :

+ Lớp A hỗ trợ các dịch vụ GSM và GPRS (như SMS và thoại) đồng

thời. Sự hỗ trợ này gồm truy nhập, giám sát, lưu lượng .

+ Lớp B có thể đăng ký với mạng cho cả dịch vụ GPRS và GSM.Nhưng

ngược với lớp A nó chỉ được sử dụng một trong hai dịch vụ tại thời điểm

được cho. Mobile Station (MS) có thể tạm ngừng chuyển gói cho kết nối

chuyển mạch kênh hoàn toàn và sau đó lại tiếp tục.

+ Lớp C hỗ trợ truy nhập không đồng thời .User phải chọn dịch vụ để kết

nối .Vì thế một User ở lớp C chỉ có thể hoạt động ở một dịch vụ đã được

chọn trước bằng người dùng (hoặc mặc định ), còn dịch vụ không được

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang11

chọn thì không thể truy nhập được (trừ SMS có thể nhận gửi bất cứ lúc

nào).

- GPRS BSS (Base Station System).

+ BSS gồm BSC (Base Station Controller) và BTS (Base Transceiver

Station).

+ Mỗi BSC yêu cầu thiết lập một hay nhiều PCU (packet control unit) và

nâng cấp phần mềm. PCU (packet control unit) cung cấp giao diện dữ liệu

vật lý và logic ngoài trạm gốc(BSS) cho lưu lượng dữ liệu gói. BTS cũng

yêu cầu nâng cấp phần mềm, nhưng không cần thay đổi phần cứng.

+ BSC cung cấp các chức năng của kênh vô tuyến có liên quan. BSC có

thể thiết lập, giám sát, ngắt kết nối cuộc gọi chuyển mạch kênh và chuyển

mạch gói. Nó là một chuyển mạch dung lượng cao cung cấp nhiều chức

năng như: chuyển giao, ấn định kênh. Một MSC (Mobile Switching Center)

phục vụ một hay nhiều BSC.

+ Khi cả lưu lượng thoại và dữ liệu bắt nguồn từ một thiết bị đầu cuối

thuê bao, thì nó được chuyển qua BTS và từ BTS đến BSC theo như chuẩn

GSM.Tuy nhiên ở ngõ ra của BSC dữ liệu được tách ra, thoại được gửi đến

trung tâm chuyển mạch di động MSC theo chuẩn GSM còn dữ liệu được

gửi đến thiết bị mới là SGSN, ngang qua PCU thông qua giao tiếp Frame

Relay

- MSC(Mobile Services Switching Center ).

MSC thực hiện chức năng chuyển mạch trong GSM ,SGSN (Serving

GPRS Support Node) chuyển mạch gói.MSC điều khiển các cuộc gọi đến

và đi từ các điện thoại khác hoặc các hệ thống dữ liệu, như mạng PSTN

(Public-Switched Telephone Network), mạng ISDN(Integrated Services

Data Network), PLMN (Public Land Mobile Network) và một mạng riêng

khác.

+ Vùng định tuyến SGSN RAC (routing area code) là một phần con của

vùng định vị của MSC LAC (location area code). Một MSC LAC là một

nhóm các tế bào BSS.Hệ thống sử dụng LAC để tìm thuê bao đang hoạt

động.Một LAC là một phần của mạng mà MS(Mobile Station) có thể di

chuyển mà không cập nhật vị trí.

+ Có thể có nhiều MSC (Mobile Switching Center) tương ứng với một

SGSN(Serving GPRS Support Node) .Một MSC có thể kết nối với nhiều

SGSN tùy thuộc vào lưu lượng thực tế.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang12

- GMSC (Gateway Mobile Services Switching Center ).

GMSC thì giống GMSC trong GSM. Nó chuyển mạch kênh các cuộc gọi

giữa GSM và PSTN, mạng điện thoại cố định, vì thế nó hỗ trợ chức năng

định tuyến các cuộc gọi đến MSC nơi mà thuê bao đăng ký.

- HLR (Home Location Register ).

+ Là nơi lưu trữ thông tin của thuê bao di động. Thông tin này bao gồm

dịch vụ bổ sung, các tham số nhận thực, tên điểm truy xuất (Access Point

Name(APN)), … và cả vị trí của MS. Đối với GPRS, thông tin thuê bao

thay đổi giữa HLR và SGSN. Bộ ba nhận thực trong GPRS được lấy trực

tiếp từ HLR đến SGSN chứ không qua MSC/VLR(Visitor Location

Register) như trong CS GSM.

+ Thông tin đến từ HLR đến SGSN được thiết lập bởi nhà khai thác của

thuê bao. Thông tin này được chuyển đi khi người khai thác thay đổi thông

tin của thuê bao, hoặc khi một SGSN cần thông tin về thuê bao sau khi đăng

nhập hoặc roaming. SGSN cũ cũng được thông báo về roaming. - VLR (Visitor Location Register ).

+ VLR chứa thông tin về tất cả các MS hiện đang định vị trong MSC

hoặc SGSN. SGSN chứa các chức năng VLR cho chuyển mạch gói. Tương

tự, VLR chuyển mạch kênh là một thành phần tương thích của MSC.

+ VLR chứa thông tin thuê bao tạm thời mà MSC và SGSN cần để cung

cấp các dịch vụ cho thuê bao.

+ Khi một MS roam đến một MSC mới hoặc vùng định tuyến SGSN,

VLR của MSC hoặc SGSN đó yêu cầu và lưu trữ dữ liệu về MS từ HLR.

Nếu MS thực hiện một cuộc khác vào lúc khác, thông tin cần thiết để thiết

lập cuộc gọi đã sẵn sàng.

+ GPRS VLR gồm phần mềm trong SGSN. VLR chứa thông tin về

SGSN đang được sử dụng. Đối với hệ thống GPRS, trực tiếp HLR thay vì

(CS) MSC/VLR được dùng cho thủ tục nhận thực của MS. Vì thế, SGSN

đạt được bộ ba nhận thực từ HLR.

- Mạng lõi.

Trong mạng lõi, các MSC dựa trên kỹ thuật chuyển mạch kênh không xử

lý được lưu lượng gói. Vì thế có hai thành phần mới được thêm vào là

GGSN(Gateway GPRS Support Node) và SGSN (GPRS Serving Nodes

(GSNs)).

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang13

+ GSNs (GPRS Serving Nodes) cấp phát và định tuyến gói dữ liệu giữa

MS và PDN (Packet Data Network) đồng thời thu thập thông tin về việc sử

dụng tài nguyên GPRS.

+ SGSN( Serving GPRS Support Node):

SGSN chịu trách nhiệm phân phối gói dữ liệu đến và đi từ trạm di động

trong vùng phục vụ của nó. Nhiệm vụ của nó bao gồm luôn cả quản lý di

động , quản lý định tuyến và truyền gói, quản lý liên kết logic và chức năng

nhận thực và tính cước. Thanh ghi vị trí của SGSN lưu trữ thông tin như vị

trí cell, VLR hiện tại và dữ liệu cá nhân của user (IMSI, địa chỉ sử dụng

trong mạng dữ liệu gói) của tất cả các user GPRS đăng ký với SGSN

này.Có thể coi SGSN là MSC chuyển mạch gói. Nó gửi các gói IP được

đánh địa chỉ đến / đi đến MS được đăng nhập trong vùng phục vụ của

SGSN. Một thuê bao GPRS có thể được phục vụ bởi bất cứ SGSN nào

trong mạng tất cả tùy thuộc vào vị trí. Lưu lượng được định tuyến từ SGSN

đến BSC, ngang qua BTS đến MS.

+ GGSN (Gateway GPRS Support Node):

Đóng vai trò như một giao tiếp giữa mạng xương sống GPRS và mạng

dữ liệu gói bên ngoài. Nó chuyển đổi gói đến từ SGSN vào dạng giao thức

gói thích hợp (như IP hoặc X.25) và gửi chúng đến mạng gói tương ứng. Ơ

hướng khác, địa chỉ PDP(Packet Data Protocol) của gói dữ liệu đang đến

được biến đổi thành địa chỉ GSM của user nơi đến. Gói dữ liệu đã đánh địa

chỉ lại được gửi đến SGSN quản lý nó. Vì mục đích này, GGSN lưu trữ địa

chỉ SGSN hiện tại và thông tin cá nhân của user trong khi đăng ký vị trí.

GGSN cũng thực hiện chức năng nhận thực và tính cước. Thường có mối

quan hệ nhiều – nhiều giữa SGSN và GGSN. Một GGSN là giao tiếp với

mạng dữ liệu gói bên ngoài của nhiều SGSN. Một SGSN có thể định tuyến

gói của nó qua nhiều GGSN khác nhau để đến các mạng dữ liệu gói khác

nhau.

Giao tiếp Gb kết nối giữa BSC với SGSN .Qua giao tiếp Gn và Gp, dữ

liệu user và dữ liệu báo hiệu được truyền dẫn giữa các GSNs. Giao tiếp Gn

sẽ được dùng nếu SGSN định vị trong cùng một mạng PLMN(Public Land

Mobile Network), trong khi giao tiếp Gp được dùng nếu trong các mạng

PLMN khác nhau.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang14

Tất cả GSNs được kết nối qua mạng xương sống GPRS dựa trên IP.

Trong mạng này, GSNs đóng gói PDN (packet data networks ) và truyền

dẫn chúng dùng GPRS Tunneling Protocol (GTP).Có 2 loại mạng xương

sống GPRS:

1 Intra – PLMN: kết nối các GSNs của cùng một mạng PLMN.

2 Inter – PLMN: kết nối các GSNs của các mạng PLMN khác nhau.

Cần phải có sự chấp nhận roaming giữa hai nhà cung cấp mạng để thiết lập

mạng này.

SGSN chịu trách nhiệm phân phối gói dữ liệu đến và đi từ trạm di động

trong vùng phục vụ của nó. Nhiệm vụ của nó bao gồm luôn cả quản lý di

động, quản lý định tuyến và truyền gói, quản lý liên kết logic và chức năng

nhận thực và tính cước. Thanh ghi vị trí của SGSN lưu trữ thông tin như vị

trí cell, VLR hiện tại và dữ liệu cá nhân của user (IMSI (International

Mobile Subscriber Identity), địa chỉ sử dụng trong mạng dữ liệu gói) của tất

cả các user GPRS đăng ký với SGSN này.

PLMN1

Packet data network

Inter-PLMN

GPRS backbone

Intra-PLMN

GPRS backbone

Intra-PLMN

GPRS backboneBorder Gateway Border Gateway

GGSNGGSNSGSN

BTSBTS

BSC

BSC

PLMN2

Router Host

MS

SGSN SGSN

LAN

Hình 6 : Mô tả hai mạng intra – PLMN kết nối với một inter – PLMN

Cổng giao tiếp giữa PLMN và inter – PLMN được gọi là border

gateway. Nó thực hiện chức năng an toàn để bảo vệ mạng intra – PLMN

trước các user không được nhận thực.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang15

Giao tiếp Gn và Gp cũng được định nghĩa giữa các SGSNs. Nó cho phép

SGSN trao đổi hồ sơ của user khi MS di chuyển từ một vùng SGSN này

đến vùng SGSN khác.

Giao tiếp Gi kết nối PLMN với PDN riêng hoặc công cộng, như mạng

Internet. Giao tiếp với IP (IPv4 và IPv6) và mạng X.25.

HLR lưu trữ hồ sơ user, địa chỉ SGSN hiện tại, và địa chỉ PDP cho mỗi

user GPRS trong PLMN. Giao tiếp Gr được dùng để trao đổi thông tin giữa

HLR và SGSN.

Ví dụ, SGSN thông báo với HLR về vị trí hiện tại của MS. Khi MS đăng

ký với một SGSN mới, HLR sẽ gửi hồ sơ user cho SGSN này. GGSN dùng

đường báo hiệu giữa GGSN và HLR (giao tiếp Gc) để cập nhật thanh ghi vị

trí của nó.

Có thể kết hợp các thủ tục attachment và cập nhật vị trí của GSM và

GPRS. Hơn nữa, bản tin tìm gọi của chuyển mạch kênh GSM có thể thực

hiện ngang qua SGSN. Vì thế, giao tiếp Gs kết nối cơ sở dữ liệu của SGSN

và MSC/VLR.

� Các lớp GPRS.

Lớp của một điện thoại hỗ trợ GPRS sẽ quyết định tốc độ mà dữ liệu có thể

được truyền. Theo chuyên môn kĩ thuật thì lớp GPRS liên quan đến số

lượng khe thời gian còn trống được dùng để upload (tải lên - gửi dữ liệu

điện thoại ) hay download (tải xuống - nhận dữ liệu từ mạng bên ngoài ). Số

khe thời gian được dùng truyền dữ liệu được thêm vào các khe mà dành

riêng cho các cuộc gọi. Những khe thời gian này còn rảnh đồng thời, cho

nên số khe thời gian càng nhiều, tốc độ truyền dữ liệu càng nhanh. Bởi vì

GPRS truyền dữ liệu dưới dạng gói, các khe thời gian không được dùng ở

tất cả mọi thời điểm, nhưng được chia sẻ giữa những người sử dụng trong

mạng. Điều này làm tăng cường hiệu suất băng thông trên mạng, và nó

cũng có nghĩa là tính tiền dựa theo dung lượng dữ liệu được truyền là hợp lí

bởi vì không phải lúc nào người dùng cũng dùng dịch vụ GPRS. Và trong

suốt thời gian mạng bận, tốc độ truyền dữ liệu giảm xuống bởi vì mạng ưu

tiên cho các cuộc gọi hơn.

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang16

Một số lớp GPRS phổ biến:

Lớp GPRS Số khe Tốc độ truyền dữ liệu tối đa

Lớp 2 3 8 - 12 kbps upload / 16 - 24 kbps download

Lớp 4 4 8 - 12 kbps upload / 24 - 36 kbps download

Lớp 6 4 24 - 36 kbps upload / 24 - 36 kbps download

Lớp 8 5 8 - 12 kbps upload / 32 - 40 kbps download

Lớp 10 5 16 - 24 kbps upload / 32 - 8 kbps download

Lớp 12 5 32 - 48 kbps upload / 32 - 48 kbps download

Bảng 2 : Một số lớp GPRS phổ biến

� Các loại thiết bị di động hỗ trợ GPRS

-Loại A: Có thể kết nối vào dịch vụ GPRS và dịch vụ GSM (thoại,

SMS), cùng lúc cả hai. Những thiết bị như vậy đã có mặt trên thị trường.

-Loại B : Có thể kết nối vào dịch vụ GPRS và dịch vụ GSM (thoại,

SMS), nhưng chỉ dùng một trong hai dịchvụ vào một thời điểm. Trong khi

dùng dịch vụ GSM, dịch vụ GPRS bị ngừng sau đó sẽ tự động được tiếp tục

sau khi dịch GSM kết thúc . Phần lớn thiết bị di động GPRS thuộc loại B.

-Loại C : Được kết nối với hoặc dịch vụ GPRS hoặc dịch vụ GSM (thoại,

SMS). Phải được chuyển bằng tay giữa hai dịch vụ .

Một thiết bị Loại A đúng nghĩa có thể cần phải truyền tải trên hai tấn số

khác nhau cùng một lúc, và do đó sẽ cần hai sóng vô tuyến. Để tránh yêu

cầu quá tốn kém này, một thiết bị di động GPRS có thể hiện thực tính năng

chế độ truyền tải kép (DTM). Một điện thoại tương thích DTM có thể dùng

đồng thời thoại và dữ liệu dạng gói, cùng với sự hỗ trợ từ mạng để đảm bảo

rằng không nhất thiết phải truyền tải trên hai tần số khác nhau cùng một lúc.

Những điện thoại như vậy được xem là loại A "giả", đôi khi còn được gọi là

"loại A đơn giản".

� Ứng dụng của GPRS.

- Truy cập Internet: Sử dụng một máy tính xách tay hoặc thiết bị khác

như Palm, PDA, Pocket PC và một máy điện thoại di động GPRS giúp

người dùng có thể truy cập Internet (WEB, WAP) để xem tin tức mọi lúc,

mọi nơi trong phạm vi phủ sóng GPRS của VinaPhone với tốc độ đường

truyền xấp xỉ 56Kbps.

- Xem Video trực tuyến : sử dụng ứng dụng Video Streaming ở máy PC

có kết nối với máy điện thoại di động hỗ trợ GPRS hoặc ở một số thế hệ

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang17

máy di động có hỗ trợ Video Streaming như Nokia 9210, 3650;

SonyEricsson P800; Siemens SX45... Để sử dụng ứng dụng này, người

dùng phải tải về và cài đặt máy phần mềm PVPlayer. Sau khi máy tính kết

nối GPRS chạy ứng dụng trên và nhập vào địa chỉ cần truy cập tương ứng.

- Gửi, nhận thư điện tử: Sử dụng các phần mềm phổ biến như Microsoft

Outlook/Netscape Messenger để gửi, nhận thư điện tử trên máy PC kết nối

mạng GPRS .

- Nhắn tin đa phương tiện MMS .

- Dịch vụ truyền số liệu (FTP): khách hàng có thể gửi các tệp dữ liệu

quan trọng từ máy tính xách tay (laptop) lên máy chủ thông qua modem là

máy điện thoại di động mạng VinaPhone sử dụng dịch vụ GPRS và ngược

lại. Với tốc độ truyền dữ liệu cao và cách tính cước ưu thế của dịch vụ

GPRS khách hàng có thể tải các hình ảnh màu tĩnh hoặc động đặc sắc, nhạc

chuông đa âm, (Polyphonic, SP MIDI, X-MIDI, MP3, AMR...) và các trò

chơi, các ứng dụng về máy điện thoại để giải trí.

I .2.2.c EDGE

EDGE (Enhanced Data rates for GSM Evolution) là một cải tiến nữa của GPRS,

được coi là một phần của công nghệ cận 3G (2.75G). EDGE nâng tốc độ download

tối đa lên 236kbit/s và upload tối đa lên 118kbit/s tùy theo cấu hình. EDGE mở ra

khả năng cung cấp các dịch vụ đa phương tiện trên di động: giờ đây tốc độ

download đã đủ nhanh để triển khai các ứng dụng cần nhiều bandwitdth như video

streaming, truyền hình, video call và nhiều ứng dụng khác.

Cả WAP, GPRS và EDGE đều có điểm chung là gắn liền với mạng di động, từ

đó có tầm hoạt động rộng, phù hợp để cung cấp LBS ở mọi nơi. Tuy nhiên chất

lượng dịch vụ của các giao thức này vẫn phụ thuộc vào nhà cung cấp và một số yếu

tố vật lý như tốc độ di chuyển, khoảng cách tới trạm phát v.v… Ngoài ra giá cả

cũng có thể là trở ngại với người dùng ở Việt Nam.

I .2.2.d Bluetooth

Bluetooth là giao thức truyền tải dữ liệu giữa các thiết bị bằng sóng vô tuyến.

Bluetooth được thiết kế để ít tốn năng lượng trong quá trình hoạt động và hiện có

thể đạt tới tốc độ 3mbit/s. Bluetooth được sử dụng rộng rãi để kết nối các thiết bị

như tai nghe, điều khiển, bàn phím, chuột, truyền / nhận file và hầu hết chức năng

của giao thức hồng ngoại (infrared) trước đây. Ngoài ra máy tính còn có thể sử

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang18

dụng điện thoại làm modem để truy cập internet qua bluetooth. Bluetooth có tầm

hoạt động khoảng vài mét.

I .2.2.e Wifi

Wifi là chuẩn truyền dữ liệu qua sóng vô tuyến với tốc độ tương đối cao

(54Mbit/s và lên đến khoảng 150Mbit/s với công nghệ của các nhà sản xuất độc

lập), có tầm hoạt động tương đối (tử vài chục đến vài trăm mét). Wifi được tích

hợp trong một số thiết bị di động cao cấp để cho phép người dùng lựa chọn phương

thức kết nối: nhanh, rẻ nhưng có tầm hoạt động hạn chế của Wifi và dịch vụ

internet di động của nhà cung cấp dịch vụ - thường chậm hơn và mắc hơn (xem

2.3.1). Wifi không được thiết kế để tiết kiệm năng lương nên thiết bị di động

thường không thể duy trì hoạt động lâu khi kết nối Wifi.

I .2.2.f WiMax

WiMax là một phương thức truyền tải qua vô tuyến khác có tầm phủ sóng tốt

(vài km) tuy nhiên đánh đổi bằng tốc độ (Tối đa 3Mbit/s với công nghệ hiện tại,

144Mbit/s trên lý thuyết). WiMax đã được hoạch định làm một phần của công nghệ

4G; tuy nhiên hiện nay WiMax vẫn chưa được đón nhận rộng rãi vì các vấn đề kỹ

thuật (chưa có tần số chuẩn và chuẩn chưa được hoàn thiện).

Với LBS, bluetooth và wifi có thể được kết hợp để cung cấp dịch vụ trong một

vùng nào đó. Cả hai đều có ưu điểm là tốc độ khá nhanh nhưng lại bị hạn chế ở tầm

hoạt động; trong khi WiMax có tầm hoạt động lớn nhưng vẫn chưa phổ biến (và

khó tích hợp vào thiết bị di động vì giá thành khá cao).

Ngoài ra, với các điểm truy cập (access point) wifi cố định và đã biết vị trí, có

thể suy ra vị trí của người truy cập theo cách giống như Cell identification.

I .2.2.g Truyền thông vệ tinh.

Được phát triển chủ yếu để cung cấp dịch vụ thoại, các dịch vụ viễn thông trên

vệ tinh dần dần được mở rộng để bao gồm cả dịch vụ dữ liệu, truyền hình và radio.

Vệ tinh có thể được dùng để truy cập internet ngay cả ở những vùng hẻo lánh,

không có bất kì loại trạm thu phát nào. Mỗi vệ tinh có thể cung cấp dung lượng

khoảng 40Mbit/s cho vài ngàn người sử dụng, tuy nhiên mỗi người dùng chỉ có tốc

độ khoảng 20kbits/s. Sở dĩ tốc độ chậm vì khoảng cách từ mặt đất tới vệ tinh là

khá lớn, hơn nữa tín hiệu truyền đi với vận tốc ảnh sáng còn chịu ảnh hưởng của

sai lệch đồng hồ của thiết bị cho và nhận, ngoài ra chất lượng tín hiệu cũng bị ảnh

hưởng bởi các yếu tố thời tiết. Sử dụng vệ tinh thường có giá khá đắt, bao gồm cả

Báo cáo đồ án tốt nghiệp Chương I: Công nghệ hỗ trợ định vị

SV: Nguyễn Thị Diệp Tú Trang19

chi phí trang thiết bị (chảo thu, bộ giải mã) và chi phí duy trì (thuê bao tháng). Tuy

có nhiều khuyết điểm và không thông dụng nhưng vệ tinh có thể là lựa chọn duy

nhất khi cần trao đổi dữ liệu ở một vùng hẻo lánh.

I .3 Ứng dụng của GPS. GPS được ứng dụng rất nhiều trong cuộc sống, chúng ta có thể thấy nổi bật nhất

là trên bản đồ với sự tham gia của các đàn anh trong công nghệ như google,

yahoo,..tạonên sự sội động trên thị trường.

Google với Google Maps là dịch vụ bản đổ trực tuyến đầu tiên.Sau đó là hàng

lọat các sản phẩm như : Google Maps cho mobile trên các dòng máy khác nhau

như : Android, IPhone, Windows Mobile, Symbian / UIQ, BlackBerry OS, Palm

OS,Google Latuide. Dù Google Maps của Google có những hạn chế: dữ liệu đường

phố chỉ có ở một số quốc gia xác định nên chức năng tìm đường và một số chức

năng liên quan chỉ hoạt động ở các quốc gia này; Việt Nam hiện chỉ có tên đường

chứ chưa có thông tin đường (chiều, độ rộng, v.v…) trên Google Maps nên cũng

không thể dùng chức năng tìm đường.Nhưng Google Map vẫn chính lĩnh thị

trường.

Cạnh tranh cùng Google là Yahoo. Yahoo map chủ yếu hoạt động trên các hệ

thống desktop và không có phiên bản riêng cho các thiết bị di động như Google

map.Do là ứng dụng trên nền web nên Yahoo không có khả năng xác định vị trí

của người dùng – Yahoo chỉ có thể cung cấp local search khi người dùng di chuyển

đến vị trí của mình trên bản đồ hoặc nhập đúng query cho vị trí của mình. Về tìm

đường, Yahoo cũng gặp phải hạn chế tương tự khi người dùng phải nhập nơi đi và

nơi đến. Trên di động, kết quả local search không hiện lên bản đồ mà dưới dạng

văn bản.

Bên cạnh đó,cũng có các sản phẩm như : Diadiem.com (sản phẩm của công ty

cổ phần Địa Điểm),Vietmap(công ty TNHH bản đồ Việt), Vietbando.com(công ty

cổ phần tin học - bản đồ Việt Nam),Vimap (sản phẩm của nhóm Visky, thuộc

FPT),SMS Locator (dịch vụ ra đời vào tháng 6/2009 của Mobifone nhằm mục

đích cung cấp thông tin địa điểm dựa trên vị trí của người dùng thông qua tin

nhắn).

Ngoài ra ,GPS còn được ứng dụng trong cơ quan chính phủ, lĩnh vực dầu khí và

khí đốt, lĩnh vực Gíao dục, lĩnh vực tài nguyên thiên nhiên, thu thập GIS di động,

thu thập số liệu hạ tầng.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 20

Chương I I CÔNG NGHỆ J2ME, MIDP I I .1 J2ME I I .1.1 Giới thiệu

Điện thoại di động ngày nay có nhiều chức năng cao cấp như đọc báo, tiểu

thuyết, tra từ điển, bản đồ và nhất là mang thế giới giải trí đến bên cạnh, những bản

nhạc hay, những games hay sẽ luôn sẵn sàng vào bất cứ lúc nào.

Để góp phần cho sự phát triển đó ngoài yếu tố phần cứng thì nền tảng phần

mềm là nhân tố quyết định vì theo thực tế , có hàng chục hãng sản xuất điện thoại

khác nhau và sử dụng công nghệ khác nhau. Do đó nền tảng J2ME- Java 2

Platform, Micro Edition được phát triển.

J2ME được giới thiệu vào tháng 6 năm 1999 tại Hội nghị Các nhà phát triển

JavaOne, J2ME mang khả năng đa nền của ngôn ngữ Java vào các thiết bị nhỏ hơn,

cho phép các thiết bị di động không dây chia xẻ các ứng dụng.

I I .1.1.a L ịch sử

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. Đúng với tên gọi, J2ME là nền tảng cho các thiết bị có tính chất nhỏ, gọn (

Micro có nghĩa là nhỏ trong tiếng Anh ). Sau đây là bảng minh họa tiến trình lịch

sử của J2ME:

Phiên bản 1 Phiên bản 2

Máy tính cá nhân JDKTM1.1.x JavaTM 2 Platform,

Standard Edition (J2SETM)

Máy trợ lí cá nhân kỹ thuật

số (PDA)

PersonalJavaTM JavaTM 2 Platform,

Micro Edition (J2SETM) / CDC

Điện thoại và máy nhắn tin J2ME / CLDC

Các thiết bị nhúng EmbeddedJavaTM J2ME / CLDC

Các loại thẻ thông minh JavaCardTM JavaCardTM

Bảng 3 : Bảng minh họa tiến trình lịch sử của J2ME

I I .1.1.b Ưu điểm

� Nền tảng của java hiện có :

- Nền tảng Standard Edition (J2SE) : được thiết kế để chạy trên các máy

tính cá nhân và các máy trạm.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 21

- Nền tảng Enterprise (J2EE) : được thiết kế nhắm tới các ứng dụng chạy

trên máy chủ với những cài đặt sẵn cho Servlets, JSP và XML

- Nền tảng Miro Edition (J2ME) : được thiết kế cho cái thiết bị có bị có bộ

nhớ, màn hình và năng lưc xử lí hạn chế.

� Vậy tại sao J2MEMđược chọn?

- J2ME được thiết kế dành cho các máy có năng lực xử lí hạn chế.

- Thị trường của J2ME được mở rộng ra cho nhiều chủng loại thiết bị như:

+ Các loại thẻ cá nhân như Java Card.

+ Máy điện thoại di động.

+ Máy PDA ( Personal Digital Assistant - thiết bị kĩ thuật số trợ giúp

cá nhân).

I I .1.2 Kiến trúc

I I .1.2.a Cấu hình

Dựa theo cấu hình thì có hai phiên bản của J2ME:

- Phiên bản dựa trên CLDC ( cấu hình thiết bị kết nối giới hạn -

Connected Limited Device Configuration):

+ Đượ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ớ.

+ Dùng máy ảo KVM ( K Virtual Machine ), là dạng máy ảo rút gọn của

JVM ( Java Virtual Machine ), được thiết kế dành cho các thiết bị 16-32 bit

với ít nhất 128 KB bộ nhớ.

- Phiên bản dựa trên CDC (cấu hình thiết bị kết nối - Connected Device

Configuration):

+ Đượ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 CLDC nhưng vẫn yếu hơn 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 ( 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, các thiết bị gia dụng trong gia đình …

+ Dùng máy ảo CVM ( C Virtual Machine ), là dạng máy ảo rút gọn của

JVM ( Java Virtual Machine ), được kiến trúc 32-bit yêu cầu hơn 2 MB bộ

nhớ.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 22

Cả 2 dạng cấu hình kể trên đều chứa máy ảo Java (Java Virtual Machine) và tập

hợp các lớp (class) Java cơ bản để cung cấp một môi trường cho các ứng dụng J2ME.

Tuy nhiên, với các thiết bị cấp thấp, do hạn chế về tài nguyên như bộ nhớ và bộ xử lý

nên không thể yêu cầu máy ảo hỗ trợ tất cả các tính năng như với máy ảo của J2SE, ví

dụ: các thiết bị thuộc CLDC không có phần cứng yêu cầu các phép tính toán dấu phẩy

động, nên máy ảo thuộc CLDC không được yêu cầu hỗ trợ kiểu float và double.Bảng

dưới đây là sự so sánh các thông số kỹ thuật của CDC và CLDC:

CLDC CDC

Ram >=32K, <=512K >=256K

Rom >=128K, <=512K >=512K

Nguồn năng lượng Có giới hạn ( Nguồn pin ) Không giới hạn

Mạng Chậm Nhanh

Bảng 4 : Bảng so sánh các thông số kỹ thuật của CDC và CLDC

Trong phạm vi bài báo cáo này, ta chỉ tập trung vào phiên bản CLDC, phiên bản J2ME

này dành cho các thiết bị có bộ nhớ giới hạn như điện thoại di động ( nói chung nó

dùng cho các thiết bị di động hoạt động bằng nguồn pin ). Phiên bản này của Java cần

ít bộ nhớ hơn phiên bản CDC.

J2ME được thiết kế để chạy trên các điện thoại di động có cấu hình tối thiểu như sau:

- Bộ nhớ tổng cộng: 128-512 KB.

- Bộ xử lý: 16 đến 32 bit.

- Tốc độ xử lý: 8-32 MHz.

- Năng lượng: giới hạn, hoạt động bằng pin.

- Băng thông: giới hạn, khoảng 9600 bps.

I I .1.2.b Kiến trúc tầng

Mục tiêu của J2ME là cho phép người lập trình viết các ứng dụng độc lập với

thiết bị di động, không cần quan tâm đến phần cứng thật sự.Để đạt được mục tiêu

này, J2ME được xây dựng bằng các tầng (layer) khác nhau để giấu đi việc thực

hiện phần cứng khỏi nhà phát triển.Sau đây là các tầng của J2ME được xây dựng

trên CLDC.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 23

Mỗi tầng ở trên tầng hardware là tầng trừu tượng hơn cung cấp cho lập trình

viên nhiều giao diện lập trình ứng dụng (API-Application Program Interface) thân

thiện hơn.

Từ dưới lên trên:

- Tầng phần cứng thiết bị (Device Hardware Layer).

Đây chính là thiết bị di động thật sự với cấu hình phần cứng của nó về bộ nhớ

và tốc độ xử lý.Dĩ nhiên thật ra nó không phải là một phần của J2ME nhưng nó là

nơi xuất phát. Các thiết bị di động khác nhau có thể có các bộ vi xử lý khác nhau

với các tập mã lệnh khác nhau. Mục tiêu của J2ME là cung cấp một chuẩn cho tất

cả các loại thiết bị di động khác nhau.

- Tầng máy ảo Java (Java Virtual Machine Layer)

Khi mã nguồn Java được biên dịch, nó được chuyển đổi thành mã bytecode (

các tập tin đuôi .class ). Mã bytecode này sau đó được chuyển thành mã ngôn ngữ

máy của thiết bị di động . Tầng máy ảo Java bao gồm KVM ( K Virtual Machine)

là bộ biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode của chương trình

Java thành ngôn ngữ máy để chạy trên thiết bị di động. Tầng này cung cấp một sự

chuẩn hóa cho các thiết bị di động, để ứng dụng J2ME sau khi đã biên dịch có thể

hoạt động trên bất kỳ thiết bị di động nào có J2ME KVM.

- Tầng cấu hình (Configuration Layer)

Tầng cấu hình của CLDC định nghĩa giao diện ngôn ngữ Java (Java language

interface) cơ bản để cho phép chương trình Java chạy trên thiết bị di động. Đây là

một tập các API định nghĩa lõi của ngôn ngữ J2ME.Lập trình viên có thể sử dụng

các lớp và phương thức của các API này tuy nhiên tập các API hữu dụng hơn được

chứa trong tầng hiện trạng (profile layer).

- Tầng hiện trạng (Profile Layer)

Tầng hiện trạng hay MIDP ( Hiện trạng thiết bị thông tin di động Mobile

Information Device Profile ) cung cấp tập các API hữu dụng hơn cho lập trình viên.

Mục đích của tầng hiện trạng là xây dựng trên cấu hình và cung cấp nhiều thư viện

ứng dụng hơn. MIDP định nghĩa các API riêng biệt cho thiết bị di động.Cũng có thể

có các hiện trạng và các API khác ngoài MIDP được dùng cho ứng dụng. Ví dụ: có

thể có hiện trạng PDA định nghĩa các lớp và phương thức hữu dụng cho việc tạo

các ứng dụng PDA ( lịch, sổ hẹn, sổ địa chỉ,…). Cũng có thể có một hiện trạng định

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 24

nghĩa các API cho việc tạo các ứng dụng Bluetooth .Thực tế, các hiện trạng kể

trên và tập các API đang được xây dựng. Chuẩn hiện trạng PDA là đặc tả JSR -

75 và chuẩn bluetooth API là đặc tả JSR - 82 với JSR là viết tắt của Java

Specification Request.

Hình 7 : Các tầng của CLDC J2ME

I I .1.2.c Máy ảo Java (KVM)

KVM ( K Virtual Machine ) - là dạng máy ảo rút gọn của JVM - Java Virtual

Machine, được thiết kế dành cho các thiết bị 16-32 bit với ít nhất 128 KB bộ

nhớ.Vai trò của máy ảo Java hay KVM là dịch mã bytecode được sinh ra từ

chương trình Java đã biên dịch sang ngôn ngữ máy. Chính KVM sẽ chuẩn hóa

output của các chương trình Java cho các thiết bị di động khác nhau có thể có bộ vi

xử lý và tập lệnh khác nhau. Không có KVM, các chương trình Java phải được

biên dịch thành tập lệnh cho mỗi thiết bị di động. Như vậy lập trình viên phải xây

dựng nhiều sản phẩm đích cho mỗi loại thiết bị di động .

I I .2 MIDP Định nghĩa: đây là profile được định nghĩa dành riêng cho các thiết bị di động

và là thành phần chính trong J2ME. MIDP cung cấp các chức năng cơ bản cho hầu

hết các dòng thiết bị di động phổ biến như các máy điện thoại di động và các máy

PDA. Tuy nhiên MIDP không phải là cây đũa thần cho mọi lập trình viên vì MIDP

được thiết kế cho các máy di động có cấu hình rất thấp.Trong phần sau sẽ liệt kê

qua các tính năng mà MIDP cung cấp và những giới hạn của nó.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 25

Tầng J2ME cao nhất là tầng hiện trạng và mục đích của nó là định nghĩa các

API cho các thiết bị di động. Một thiết bị di động có thể hỗ trợ nhiều hiện trạng.

Một hiện trạng có thể áp đặt thêm các giới hạn trên các loại thiết bị di động (như

nhiều bộ nhớ hơn hay độ phân giải màn hình cao hơn).

I I .2.1 Giới thiệu

I I .2.1.a Chức năng

� Những chức năng MIDP không hỗ trợ :

- Phép tính dấu phẩy động ( floating point ): phép tính này đòi hỏi rất

nhiều tài nguyên CPU và phần lớn các CPU cho các thiết bị di động

không hỗ trợ phép tính này, do đó MIDP cũng không có.

- Bộ nạp class ( Class Loader ).

- Hỗ trợ từ khóa finalize() như trong J2SE: việc “dọn dẹp“ tài nguyên

trước khi nó bị xóa được đẩy về phía các lập trình viên.

- Không hỗ trợ JNI.

- Hỗ trợ hạn chế thao tác bắt lỗi.

- Phần lớn các thư viện API cho Swing và AWT không thể sử dụng được

trong MIDP.

- Không hỗ trợ các tính năng quản lý file và thư mục: các thiết bị J2ME

không có hỗ trợ các thiết bị lưu trữ thông thường như ổ cứng... Tuy

nhiên, điều đó không có nghĩa là mọi dữ liệu quan trọng mất đi mỗi khi

tắt máy, Sun đã cung cấp một chức năng khác tương đương gọi là Record

Management system (RMS) để cung cấp khả năng lưu trữ cho các thiết

bị này

� Những chức năng MIDP cung cấp :

- Các lớp và kiểu dữ liệu: phần lớn các lớp mà các lập trình viên Java quen

thuộc vẫn còn được giữ lại ví dụ như các lớp trong gói java.util như

Stack, Vector và Hastable cũng như Enumeration.

- Hỗ trợ đối tượng Display: đúng như tên gọi một chương trình MIDP sẽ

hỗ trợ duy nhất một đối tượng Display - là đối tượng quản lý việc hiển

thị dữ liệu trên màn hình điện thoại.

- Hỗ trợ Form và các giao diện người dùng.

- Hỗ trợ Timer và Alert .

- Cung cấp tính năng Record Management System (RMS) cho việc lưu trữ

dữ liệu.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 26

- Ngoài ra vào tháng 11 năm 2003 Sun đã tung ra MIDP 2.0 với hàng loạt

tính khác được cung cấp thêm so với bản MIDP 1.0. Sau đây là các cải

tiến nổi bật so với MIDP 1.0:

- Nâng cấp các tính năng bảo mật như:

+ Tải dữ liệu qua mạng an toàn hơn qua việc hỗ trợ giao thức HTTPS

+ Kiểm soát việc kết nối giữa máy di động và server: ví dụ như

chương trình không thể kết nối tới server nếu thiếu sự chấp thuận

của người sử dụng.

- Thêm các API hỗ trợ Multimedia: Một trong những cải tiến hấp dẫn

nhất của MIDP 2.0 là tập các API media của nó. Các API này là một tập

con chỉ hỗ trợ âm thanh của Mobile Media API (MMAPI) .

- Mở rộng các tính năng của Form: Nhiều cải tiến đã được đưa vào API

javax.microedition.lcdui trong MIDP 2.0, nhưng các thay đổi lớn

nhất (ngoài API cho game) là trong Form và Item.

- Hỗ trợ các lập trình viên Game bằng cách tung ra Game API kể từ MIDP

2.0 .

- Hỗ trợ kiểu ảnh RGB: một trong những cải tiến hấp dẫn cho các nhà phát

triển MIDP là việc biểu diễn hình ảnh dưới dạng các mảng số nguyên,

cho phép MIDlet thao tác với dữ liệu hình ảnh một cách trực tiếp.

I I .2.1.b Chu kì sống

Khi người dùng yêu cầu khởi động ứng dụng MIDlet, bộ quản lý ứng dụng sẽ

thực thi MIDlet (thông qua lớp MIDlet). Khi ứng dụng thực thi, nó sẽ được xem là

đang ở trạng thái tạm dừng. Bộ quản lý ứng dụng gọi hàm tạo và hàm startApp().

Hàm startApp() có thể được gọi nhiều lần trong suốt chu kỳ sống của ứng

dụng. Hàm destroyApp() chỉ có thể gọi từ trạng thái hoạt động hay tạm dừng.

Lập trình viên cũng có thể điều khiển trạng thái của MIDlet. Các phương thức

dùng để điều khiển các trạng thái của MIDlet:

- resumeRequest(): Yêu cầu vào chế độ hoạt động . Ví dụ: Khi MIDlet tạm

dừng, và một sự kiện timer xuất hiện .

- notifyPaused(): Cho biết MIDlet tự nguyện chuyển sang trạng thái tạm

dừng . Ví dụ: Khi đợi một sự kiện timer .

- notifyDestroyed(): Sẵn sàng để hủy

Lập trình viên có thể yêu cầu tạm dừng MIDlet trong khi đợi một sự kiện timer

hết hạn. Trong trường hợp này, phương thức notifyPaused() sẽ được dùng để yêu

cầu bộ quản lý ứng dụng chuyển ứng dụng sang trạng thái tạm dừng .

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 27

Hình 8 : Chu kỳ sống của MIDlet

I I .2.1.c Các tập tin

� Tập tin manifest.mf

Tập tin manifest.mf mô tả các đặc điểm của MIDlet. Tập tin có những thuộc

tính sau :

- MIDlet –Name

- MIDlet –Version

- MIDlet –Vendor

- MIDlet –<n>

- MicroEdition – Profile

- MicroEdition – Configuration

- MIDlet – Icon

- MIDlet – Description

- MIDlet – Info-URL

Dưới đây là ví dụ về một file manifest đơn giản:

- MIDlet - Name: Todo List

- MIDlet - Version: 1.0

- MIDlet - Vendor: Core J2ME

- MIDlet – 1: Todo List, / images/ Todo.png, Todo.TodoMIDlet

- MicroEdtion-Profile: MIDP -1.0

- MicroEdtion-Configuration: CLDC-1.0

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 28

� Tập tin JAR

Các lớp của ứng dụng MIDlet đã biên dịch được đóng gói trong một tập

tin JAR (Java Archive File).Đây chính là tập tin được tải xuống đin thoại di

động.

Không chỉ chứa các file class, tài nguyên, JAR còn bao gồm tập tin

mainifest.mf. Tập tin mainifest.mf trong JAR phải chứa 6 thuộc tính dưới

đây(các thuộc tính khác có thể bỏ qua), nếu không có chúng, bộ quản lí ứng

dụng sẽ từ chối nạp file JAR.

- MIDlet –Name

- MIDlet –Version

- MIDlet –Vendor

- MIDlet –<n>

- MicroEdition – Profile

- MicroEdition – Configuration

Tập tin JAR là toàn bộ ứng dụng MIDlet. MIDlet có thể tải 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.

� Tập tin JAD (Java Application Descr iptor File).

Tập tin JAD (Java Application Descriptor) mô tả các đặc điểm của MIDlet.

Sự khác biệt giữa JAD và mainifest.mf là manifest.mf kê khai là một phần

của tập tin JAR còn tập tin JAD không thuộc tập tin JAR. JAD cũng

được đóng gói dưới hình thức một thành phần của MIDlet,ưu điểm của tập

tin JAD là :

- JAD cung cấp nội dung thộng tin về nội dung của file JAR cho bộ quản

lí ứng dụng,nhờ vậy bộ quản lí ứng dụng có thể quyết định MIDlet có hợp

với thiết bị hay không.

- Cung cấp cách thức truyền tham số cho các MIDlet mà không cần thay

đổi file JAR.

- Các đặc điểm của MIDlet có thể được xác định trước khi tải tập tin JAR.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 29

Tương tự như manifest, trong file JAD có một tập các thuộc tính bắt buộc

phải được định nghĩa.Tập thuộc tính đó bao gồm:

- MIDlet-Name

- MIDlet-Version

- MIDlet-Vendor

- MIDlet-<n>

- MIDlet-Jar-URL

- MIDlet-Jar-Size

Các thuộc tính MIDlet-Name, MIDlet-Version, và MIDlet-Vendor phải có

cùng giá trị với các thuộc tính trùng tên được định nghĩa trong file manifest

(của cùng một file JAR). Các thuộc tính khác không cần phải lặp lại. Giá trị

trong tập tin mô tả sẽ đè giá trị của tập tin manifest.

Dưới đây là ví dụ về một file JAD đơn giản:

- MIDlet-Name: Todo List

- MIDlet-Version: 1.0

- MIDlet-Vendor: Core J2ME

- MIDlet-1: Todo List, / images/ Todo.png, Todo.TodoMIDlet

- MIDlet-Jar-URL: http: // www.corej2me.com/ TodoMIDlet.jar

- MIDlet-Jar-Size: 17043.

I I .2.2 Lập tr ình

I I .2.2.a Môi trường phát tr iển

Công việc của mục này là thiết lập môi trường phát triển J2ME để đơn giản quá

trình lập trình.Để thực hiện điều này, ta có thể dùng các phần mềm như : netbean,

elcipse, jbuilder..là những phần mềm hỗ trợ lập trình J2ME.Với sự ra mắt phiên bản

6.9 tháng 8.2010 netbean đã dẫn đầu trong việc hỗ trợ lập trình mobile.Với netbean

6.9,ta có thể triển khai trên thiết bị giả lập(những tính năng đơn giản) mà không

cần cài thêm tookit.Ngoài ra, ta có thể ép thêm J2ME Wireless Tookit,các

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 30

Symabian platform SDK,... (ở mục add platform)để phù hợp với ứng dụng mà ta

xây dựng.

Ta có thể download các phần mềm trên theo link dưới đây :

Netbean : http://bits.netbeans.org/netbeans/6.9/m1/

J2ME Wireless Toookit: http://www.oracle.com/technetwork/java/download-

135801.html

Symbian Platform SDK : http://www.forum.nokia.com/Devices/Symbian/

I I .2.2.b Khung kết nối (Gener ic Connection Framework)

GCF (Khung kết nối) là một tập các lớp và giao diện được thiết kế nhằm tạo

thuận tiện cho việc truy xuất đến hệ thống lưu trữ và kết nối đế hệ thống mạng.GCF

cung cấp một tập con có chọn lọc của J2SE, tập con này đã được tối ưu để phù hợp

với những ràng buộc và khác biệt đặc trưng của những thiết bị di động thực thi

MIDP.

Cây phân cấp connection.

Khi đưa ra khái niệm cây phân cấp Connection, người ta chủ ý tạo ra một lớp có

khả năng mở mọi loại kết nối bao gồm : file,http,datagram,…Tên của lớp này là

Connector.Nếu dùng Connector để mở kết nối, bạn chỉ cần gọi phương thức Open()

với định dạng : Connector.Open (“ protocol:address;parameters” ).

Ví dụ :

- Socket : Connector.open(“socket://19.3.22.121:1567”)

- SSL : Connector.open(“ssl://pop.gmail.com:465”)

- Comm port : Connector.open(“comm:0;baudrate=9600”)

- Datagram : Connector.open(“Datagram://33.3.22.21:1567”)

- Files : Connector.open(“ file:/hello.txt” )

- HTTP : Connector.open(“http://www.google.com”).

Phương thức open() sẽ trả về một đối tượng Connection đóng vai trò là lớp giao

thức (ví dụ:HttpConnection StreamConnection (socket), SecureConnection ( SSL ) )

để có thể sử dụng các phương thức cho giao thức đó.

Hình dưới đây trình bày các lớp tạo nên cây phân cấp Connection.Trong đó,mỗi

lớp được định nghĩa như là một giao diện :

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 31

Hình 9 : Cây phân cấp Connection

- StreamConnectionNotifier

Giao diện StreamConnectionNotifier được dùng khi đợi một kết nối phía server

được thiết lập. Phương thức acceptAndOpen() bị chặn cho đến khi client thiết lập

kết nối .

- Giao diện DatagramConnection

Kết nối datagram cung cấp kiểu truyền thông gói không chứng thực. Datagram

chứa gói dữ liệu và địa chỉ . Chuỗi địa chỉ có định dạng sau :

datagram:[//{ host} ]:{ port}

Nếu tham số host được xác định, thì datagram mở kết nối ở chế độ client. Nếu

tham số host không được xác định, thì datagram được mở ở chế độ server:

c = Connector.open("datagram://192.165.189.100:1567"); // Chế độ client

c = Connector.open("datagram://:1567"); // Chế độ server

- Giao diện InputConnection

Giao diện InputConnection dùng để thực hiện một luồng nhập tuần tự dữ liệu chỉ

đọc.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 32

- Giao diện OutputConnection

Giao diện OutputConnection dùng để thực hiện một luồng xuất dữ liệu chỉ viết.

- Giao diện StreamConnection

Giao diện StreamConnection là kết hợp của cả hai giao diện InputConnection và

OutputConnection.Nó dùng cho các thiết bị di động có truyền thông hai chiều.

- Giao diện ContentConnection

Giao diện ContentConnection mở rộng giao diện StreamConnection và thêm vào

các phương thức getType(), getEncoding(), và getLength(). Nó cung cấp cơ sở

cho giao diện HttpConnection của MIDP.

- Giao diện HttpConnection

Giao diện HttpConnection được định nghĩa trong MIDP và mở rộng giao diện

ContentConnection của CLDC.Giao diện này cung cấp các phương thức thiết lập

một kết nối HTTP.Nó cung cấp cơ sở cho giao diện HttpsConnection của MIDP.

- Giao diện HttpsConnection

Giao diện HttpsConnection được định nghĩa trong MIDP và mở rộng giao diện

HttpConnection của CLDC.Giao diện này cung cấp các phương thức thiết lập

một kết nối HTTP bảo mật (HTTPS).

- Giao diện SocketConnection

Giao diện SocketConnection mở rộng giao diện StreamConnection.Nó cung cấp

cơ sở cho giao diện SecureConnection của MIDP. Giao diện này cung cấp các

phương thức thiết lập một kết nối socket bình thường, ví dụ:

SocketConnection socket = Connector.open("socket://smtp.gmail.com:110");

InputStream input = socket.openInputStream();

OutputStream output = socket.openOutputStream();

- Giao diện SecureConnection

Giao diện SecureConnection mở rộng giao diện SocketConnection. Giao diện

này cung cấp các phương thức thiết lập một kết nối socket bảo mật, ví dụ:

SecureConnection ssocket = Connector.open("ssl://smtp.gmail.com:995");

InputStream input = ssocket.openInputStream();

OutputStream output = ssocket.openOutputStream();

Theo RFC1900 khuyến nghị nên dùng các địa chỉ là tên máy thay cho IP để tăng

cường bảo mật. Và một kết nối bảo mật phải được thi hành từ một trong những

tiêu chuẩn sau:

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 33

+ TLS Protocol Version 1.0 được chỉ ra trong RFC 2246 .

+ SSL V3 được chỉ ra trong The SSL Protocol Version 3.0 .

+ WAP(TM) TLS Profile và Tunneling Specification được chỉ ra trong WAP-

219-TLS-20010411-a.

I I .2.2.c Kết nối HTTP HTTP là giao thức duy nhất chắc chắn được MIDP hỗ trợ.Vì thế,ta có thể giao

tiếp với máy chủ hay bất cứ thiết bị từ xa nào có hỗ trợ giao thức này nhờ vào lớp

HttpConnection.

Tạo kết nối.

Lớp Connector cung cấp 7 phương thức tạo kết nối với máy chủ :

Phương thức Mô tả

Static Connection open(String name) Tạo kết nối trong chế độ READ_WRITE

Static Connection open (String name,int

mode)

Tạo kết nối với chế độ được chỉ ra

Static InputStream openInputStream(String

name)

Tạo kết nối với chế độ được chỉ ra, điều

khiển ngoại lệ timeout

Static InputStream openInputStream(String

name)

Tạo kết nối nguồn nhập

Static OutputStream

openOutputStream(String name)

Tạo kết nối nguồn xuất

Static DataInputStream

openDataInputStream(String name)

Tạo kết nối nguồn nhập kiểu

DataInputStream

Static DataInputStream

openDataOutputStream(String name)

Tạo kết nối nguồn xuất kiểu

DataOutputStream

Bảng 5 : Các phương thức CLDC Connector.

Ví dụ : String url = http://www.corej2me/picture/1.png.

HttpConnection http = (HttpConnection)Connector.open(url);

Yêu cầu máy khách :Như chúng ta đã biết HTTP là khái niệm chỉ đến một giao

thức yêu cầu/đáp ứng.Trong đó, ứng dụng máy khách gửi yêu cầu, ứng dụng máy

chủ gửi trả về đáp ứng.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 34

Cách thức yêu cầu :

Yêu cầu Mô tả

GET Yêu cầu thông tin - dữ liệu được chuyển đi như 1 phẩn của URL

POST Yêu cầu thông tin - dữ liệu được di chuyển đi trong luồng riêng biệt

HEAD Yêu cầu các thông tin về thông tin của tài nguyên.

Cả ba cách trên đều thông báo cho ứng dụng máy chủ biết rằng ứng dụng của máy

khách đang yêu câù một thông tin nào đó.Đối với GET và POST là chuyển dữ liệu

từ máy chủ đến máy khách đến máy chủ.

Khi sử dụng GET :

Phương thức HTTP GET cho phép lấy dữ liệu từ server và là phương thức mặc định

nếu không xác định phương thức trong trạng thái thiết lập.Khi sử dụng GET phần

dữ liệu của yêu cầu sẽ trở thành một phần của URL.

Ví dụ : http://www.corej2me/formcolor?color=red&font=arial

Ta có form có hai trường color và font.Ta thấy trong URL trên,dấu « ? » đánh dấu

điểm kết thúc của URL và bắt đầu của dữ liệu form.Tất cả thông tin được gửi qua

cặp khóa-giá trị (như color=red),các cặp khóa-giá trị này phân cách nhau bởi

« ? ».Nếu có khoảng trắng sẽ được thay bằng dấu « + ».Ví du : « «ca chua » thi sẽ

thành « ca+chua ».

� Khuyết điểm

– Không thích hợp để truyền dữ liệu có tính bảo mật (password)

– Dung lượng dữ liệu truyền đi có giới hạn

– Khối lượng dữ liệu đối số được truyền đi của Form bị giới hạn bởichiều

dài tối đa của một URL trên Address bar. (tối đa của một URLlà 2048 bytes)

– URL submit bằng phương thức GET được lưu lại trên server

� Ưu điểm

– Người dùng có thể bookmark địa chỉ URL

– Người dùng có thểgiả lập phương thức GET để truyền dữ liệu mà không

cần thông qua FORM.

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 35

Khi sử dụng POST:

Dữ liệu được gửi trong luồng riêng biệt,nội dung dữ liệu không hiển thị lên thanh

địa chỉ như một phần URL .

� Ưu điểm

– Bảo mật hơn phương thức GET

– Không giới hạn dung lượng dữ liệu truyền đi

– Ứng dụng cho các ứng dụng truyền file từ client lên server

� Khuyết điểm

– Kết quả trang web trả về không thể bookmark

– Có thể gây ra lỗi nếu người dùng muốn quay lại trang kết quả (nhấnnút

Back hoặc Refresh) do bị expired

– Dữ liệu có thể không truyền đi được do vấn đề về security

Khi sử dụng HEAD:

Cách thức làm việc của HEAD tương tự như GET dữ liệu được gửi như một phần

của URL.Nhưng khác với GET là máy chủ không trả phần thân của dữ liệu yêu cầu

trong phần thân của đáp ứng.Thông tin đáp ứng được cập nhật sau.

Thông tin header.

Thành phần thứ hai trong yêu cầu máy khách là thông tin header. Giao thức HTTP

định nghĩa hơn 40 trường header, các trường thông dụng là : Accept, Cache-

Control, Content – Type, Expires, If-Modified-Since và User-Agent.Để thiết lập

header ta dùng phương thức setRequestProperty().

Body

Dữ liệu yêu cầu từ máy khách đến máy chủ là body. Với GET và HEAD thi body

trong phần URL, còn POST là luồng riêng biệt.

Đáp ứng từ máy chủ :

Dòng trạng thái :

Để biết kết quả của yêu cầu máy khách,ta dựa vào dòng trạng thái :

Báo cáo đồ án tốt nghiệp Chương II: Công nghệ J2ME, MIDP

SV: Nguyễn Thị Diệp Tú Trang 36

1xx : thông tin

2xx : thành công

3xx : gửi lại

4xx: lỗi ứng dụng máy khách

5xx : lỗi ứng dụng máy chủ.

Ví dụ : http:/1.1 200 OK

http :/1.1 400 Bad Request

http :/1.1. 500 Interal Server Error.

Các phương thức đáp ứng :

- Int getResponseCode (): nhận đáp ứng dạng mã(giá trị số).

- String getResponseMessage (): nhận đáp ứng dạng thông báo(đoạn văn bản).

Header :

Tương tự như máy khách, máy chủ cũng có thể gửi thông tin header. Các cặp khóa -

giá trị của header được trích xuất nhờ một số phương thức :

- String getHeaderField (int n) // nhận giá trị trường header tìm theo chỉ số.

- String getHeaderField (String name) // nhận giá trị trường header tìm theo tên.

- long getHeaderFieldDate (String name, long def) //nhận trường (có tên chỉ ra

trong tham số name)về dưới dạng giá trị long.

- int getHeaderFieldInt(String name, int def) // nhận trường (có tên chỉ trong

tham số name) về dưới dạng giá trị số nguyên.

- String getHeaderFieldKey(int n) // nhận khóa của trường header theo chỉ số

được chỉ ra.

- Long getDate () // nhận trường header “date” .

- Long getExpiration () // nhận trường header “expires”

- Long getLastModified () //nhận trường header “ last -modified” .

Body

Body là dữ liệu từ máy chủ đến máy khách.Tuy nhiên, HttpConnecction không

định nghĩa các phương thức hỗ trợ đọc body, việc đọc thông qua việc sử dụng

luồng.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 37

Chương I I I CƠ SỞ HỖ TRỢ PHÁT TRIỂN ỨNG DỤNG ĐỊNH VỊ I I I .1 LOCATION API

Nhiều điện thoại di động thời nay hỗ trở Loacation API cho J2ME theo JSR

179.Sử dụng các Location API, bạn có thể dễ dàng phát triển những ứng dụng hữu

ích trên di động

I I I .1.1 Giới thiệu

Location APItheo JRS 179 là một gói tùy chọn javax.microedition.location được

cung cấp để truy cập các thông tin dựa trên vị trí. Location API cung cấp một chuẩn

cho các developer viết các ứng dụng di động dựa trên vị trí. Location API cung cấp

thông tin về vị trí địa lý hiện tại của thiết bị. Nó có thể được sử dụng với nhiều

profile J2ME. Các tính năng chính của Location API là:

• Vị trí: chứa các thông tin về vị trí thiết bị.

• Các điểm mốc(landmark): tạo, chỉnh sửa, lưu trữ và lấy các điểm mốc.

• Định hướng(orientation): chứa hướng của thiết bị.

Lớp Mô tả

AddressInfo Lớp này chứa đựng thông tin địa chỉ text về vị trí.

Coordinates Lớp này đại diện như tọa độ(vĩ độ – kinh độ).

Criteria Tiêu chí sử dụng cho việc lựa chọn nhà cung cấp location được xác

định bởi các giá trị trong lớp này.

Landmark Lớp này đại diện cho một cột mốc, tức là địa điểm với một tên gọi.

LandmarkStore Lớp này cung cấp các phương thức để lưu trữ, xóa và nhận landmark

từ một store landmark.

Location Đại diện cho một các tiêu chuẩn thông tin location cơ bản.

LocationProvider Bắt đầu từ điểm mà ứng dụng sử dụng các API này và đại diện cho

một nguồn thông tin location.

Orientation Lớp này đại diện cho một định hướng vật lý.

QualifiedCoordinates Đại diện cho các tọa độ vĩ độ – kinh độ – độ cao.

Bảng 6 : Mô tả các lớp trong gói javax.microedition.location

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 38

Các giao diện trong gói javax.microedition.location

Giao diện Mô tả

LocationListener Đại diện cho một listener để nhận các sự kiện kết hợp với một LocationProvider.

ProximityListener Đại diện cho một listener để các sự kiện kết hợp với các tọa độ đã được đăng ký.

Bảng 7 : Mô tả các giao diện trong gói javax.microedition.location

Các ngoại lệ trong gói javax.microedition.location

Ngoại lệ Mô tả

LandmarkException Lỗi này được ném ra khi xử lý điểm mốc xả ra lỗi.

LocationException Lỗi này được ném ra khi một location API gặp lỗi.

Bảng 8 : Mô tả các ngoại lệ trong gói javax.microedition.location

I I I .1.2 Location.

Các đặc điểm của location cung cấp vị trí và các thông tin liên quan đến thiết bị.

Có 2 lớp Location và LocationProvider cung cấp các phương thức để chứa thông

tin Location. Lớp Location trừu tượng hóa các thông tin cá nhân, bao gồm:

timestamp, tọa độ, tính chính xác, tốc độ, course, thông tin và thông tin địa chỉ

text.Các bước sau đây dùng để xác định thông tin thiết bị:

• Tạo Criteria.

• Thiết lập Criteria cho LocationProvider.

• Nhận một thể hiện LocationProvider theo một Criteria.

• Nhận đối tượng Location từ LocationProvider.

• Nhận Coordinates từ Location.

Để nhận thông tin Location, ứng dụng cần tạo một đối tượng của

LocationProvider từ một Criteria. LocationProvider là điểm bắt đầu của ứng dụng

nhận thông tin Location.Ứng dụng có thể xác định Criteria cho một

LocationProvider. Sử dụng LocationProvider, ứng dụng có thể lấy về đối tượng

Location thông qua:

• Sử dụng phương thức getLocation(int timeout)

• Đăng ký listener để có được Location theo định kỳ.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 39

Đối tượng Location chứa thông tin về địa điểm và tọa độ. Các thông tin đó bao

gồm: độ chính xác, tốc độ, course và các thông tin về phương pháp định vị sử dụng

cho vị trí (method), cộng với một địa chỉ tùy chọn văn bản (text).

Tọa độ được đại diện bởi một trong 2 lớp sau:

• Đối tượng Coordinates đại diện cho một điểm gồm có: vĩ độ, kinh độ (tính theo

độ) và độ cao ( tính theo mét).

• Đối tượng QualifiedCoordinates có chứa vĩ độ, kinh độ, độ cao và chỉ dẫn chính

xác của chúng chẳng hạn như bán kính của khu vực.

Địa chỉ văn bản được đại diện bởi lớp AddressInfo. AddressInfo chứa đựng

thông tin các thông tin text về location. Nó có các phương thức getter và setter để

thiết lập và nhận dữ liệu dựa trên các trường constant, chẳng hạn như: mã vùng, tiểu

bang, thành phố, đường, số điện thoại…

Sau đây, ta tìm hiểu một số phương thức :

I I I .1.2.a Sử dụng phương thức getLocation()

Đoạn code ví dụ dưới đây sẽ mô tả cách thức để chứa một đối tượng Location sử

dụng phương thức getLocation():.

/*Thiết lập criteria cho LocationProvider* /

Criteria cr= new Criteria();

cr.setHorizontalAccuracy(500);

/*Thiết lập đối tượng LocationProvider* /

LocationProvider lp= LocationProvider.getInstance(cr);

/*yêu cầu nhận tọa độ trong khoảng thời gian 60 giây* /

Location l = lp.getLocation(60);

Coordinates c = l.getQualifiedCoordinates();

if(c != null ) {

/*Sử dụng thông tin tọa độ* /

double lat = c.getLatitude();

double lon = c.getLongitude();

} …

I I I .1.2.b Sử dụng L istener

Lớp LocationProvider có 2 phương thức để đăng ký listener để nhận các đối tượng

Location thông qua:

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 40

• LocationListener

setLocationListener(LocationListener listener, int interval, int timeout, int maxAge)

• ProximityListener

addProximityListener(ProximityListener listener, Coordinates coordinates, float

proximityRadius)

I I I .1.2.c LocationListener

LocationListener cho phép cập nhật vị trí thường xuyên tại một khoảng thời gian tự

định nghĩa. Nó có 2 phương thức:

• locationUpdate(LocationProvider provider, Location location): phương thức

này cho phép cập nhật vị trí định kỳ.

• providerStateChanged(LocationProvider provider, int newState): cung cấp

thông tin trạng thái của LocationProvider, chẳng hạn như: AVAILABLE,

OUT_OF_SERVICE hay TEMPORARILY_UNAVAILABLE.

Ví dụ:

public void locationUpdated(LocationProvider provider, Location location){

if (location != null && location.isValid()) {

QualifiedCoordinates qc = location.getQualifiedCoordinates();

form.append("Lat: "+qc.getLatitude()+

"Lon: "+qc.getLongitude()+"Alt: "+ qc.getAltitude()” );

}

}

public void providerStateChanged(LocationProvider provider,int newState){

form.append(“newState ”+newState)

} ...

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 41

I I I .1.2.d ProximityL istener

Ứng dụng có thể thêm ProximityListener để thông báo khi các tọa độ đã đăng ký

được phát hiện. Listener này được gọi khi vạch giới hạn đi vào proximity của tọa độ

đã được đăng ký. Nó có 2 phương thức:

• proximityEvent(Coordinates coordinate, Location location): phương thức này

được gọi khi người dùng đi vào một proximity một vị trí cụ thể.

monitoringStateChanged(boolean isMonitoringActive): phương thức này được

gọi khi trạng thái của monitoring proximity thay đổi. Tham số

isMonitoringActive cho biết trạng thái của monitoring proximity, nếu giá trị của

nó là true có nghĩa là monitoring proximity đang được active, ngược lại nếu bằng

false.

I I I .1.3 Mốc ranh giới(Landmark)

Landmark là một vị trí vật lý với tên đại diện cho vị trí tới người dùng cuối.

Location API cho phép người dùng tạo ra, thêm, lưu trữ, lấy ra hay xóa các

Landmark. Hai lớp Landmark và LandmarkStore cung cấp các chức năng kể trên.

Lớp Landmark đại diện cho thông tin của mốc ranh giới, các thông tin đó bao gồm:

tên, mô tả, các thông tin địa chỉ và các tọa độ. Thông tin địa chỉ chính là lớp

AddressInfo.

Landmark(String name, String description,

QualifiedCoordinates coordinates, AddressInfo addressInfo)

Ví dụ: cách tạo ra một Landmark

...

AddressInfo textAddress = new AddressInfo();

textAddress.setField(AddressInfo.COUNTRY , "UK");

textAddress.setField(AddressInfo.CITY , "London");

Landmark landmark =

new Landmark("My Restaurant” ,” My Restaurant best in the world",

new QualifiedCoordinates(11.289496608768690,

34.59678880927362,460, 31.32, 45.000), textAddress);

….

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 42

LandmarkStore là một vùng được chia sẻ để lưu trữ, chỉnh sửa và xóa Landmark.

Thông tin Landmark có thể được lưu trữ trong data store và có thể được sử dụng

sau này khi ứng dụng cần nó.

Landmark cũng có thể được phân loại trong LandmarkStore. Các Landmark có tên

và có thể được đặt trong một hay nhiều chuyên mục(category). Mỗi chuyên mục

được thiết kế để nhóm các Landmark có cùng kiểu đến người dùng cuối. Tất cả cơ

sở dữ liệu của LandmarkStore phải được chia sẻ bởi tất cả các ứng dụng J2ME và

có thể được chia sẽ bởi các ứng dụng native.

I I I .1.4 Định hướng(Or ientation)

Lớp Orientation đại diện cho hướng vật lý của thiết bị(la bàn định hướng). Ứng

dụng không chỉ xác định vị trí của thiết bị mà còn cả hướng của nó nếu thiết bị có

một compass.

I I I .1.5 Bảo mật và cấp phép

Các phương thức được kiệt kê dưới đây sẽ ném một SecurityException nếu người

dùng không cấp phép truy cập vào các hoạt động về lấy vị trí.

Tên cấp phép Các phương thức được cấp phép

javax.microedition.location.Location LocationProvider.getLocation(),

LocationProvider.setLocationListener()

javax.microedition.location.Orientation Orientation.getOrientation()

javax.microedition.location.ProximityListener LocationProvider.addProximityListener()

javax.microedition.location.LandmarkStore.read LandmarkStore.getInstance(),

LandmarkStore.listLandmarkStores()

javax.microedition.location.LandmarkStore.write LandmarkStore.addLandmark(),

LandmarkStore.deleteLandmark(),

LandmarkStore.removeLandmarkFromCategory(),

LandmarkStore.updateLandmark()

javax.microedition.location.LandmarkStore.category LandmarkStore.addCategory(),

LandmarkStore.deleteCategory()

javax.microedition.location.LandmarkStore.management LandmarkStore.createLandmarkStore(),

LandmarkStore.deleteLandmarkStore()

Bảng 9 : Các phương thức ném ngoại lệ

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 43

I I I .2 GOOGLE API I I I .2.1 Static Google API

I I I .2.1.a Tổng quan

Static Google API cho phép bạn nhúng hình ảnh Google Map trên trang web của

bạn mà không cần JavaScript hoặc bất kì trang load động nào.Các dich vụ Static

Maps tạo ra bản đồ dựa trên các thông số URL được gửi thông qua yêu cầu HTTP

và trả về bản đồ là dạng hình ảnh hiển thị trên trang web của bạn .Static Google

Maps không yêu cầu một Maps API key.

Ví dụ : Ví dụ sau chứa các URL của ảnh bản đồ tĩnh của thành phố New York :

http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY

&zoom=14&size=512x512&maptype=roadmap

&markers=color:blue|label:S|40.702147,-

74.015794&markers=color:green|label:G|40.711614,-74.012318

&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false

Hình 10 : Ảnh thành phố NewYork dùng Google Static Map

Static maps api trả về hình ảnh đáp ứng yệu cầu từ http thông qua URL. Đối với

mỗi yêu cầu,bạn xác định vị trí,kích thước của hình ảnh,mức độ phóng to ảnh,loại

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 44

bản đồ,và vị trí đánh dấu tùy chọn (opotional marker) tại các địa điểm trên bản

đồ.Lưu ý,static maps api chỉ có thể hiển thị trong nội dung của trình duyệt.

Giới hạn :

Sử dụng Static Google Maps API chịu giới hạn 1000 truy vấn hình ảnh khác cho

mỗi người xem trên ngày.Tuy nhiên,người phát triển không cần quá lo lắng về hạn

ngạch của mình, chúng ta có thể thực thi một giới hạn bổ sung để ngăn chăn lạm

dụng dịch vụ.Nếu người dùng vượt quá giới hạn cấm trên,hình ảnh sau xuất hiện :

Giới hạn này nhằm ngăn chặn việc lạm dụng Static Maps API,giới hạn này tương

lai có thể thay đổi.Nếu bạn vượt quá giới hạn hoặc lạm dụng các dịch vụ, Static

Maps API có thể ngưng làm việc tạm thời.Nếu bạn tiếp tục vượt quá hạn,truy cập

của bạn vào static maps api có thể bị cấm.

URL bị giới hạn đến 2048 kí tự .Thực tế,ta không có nhu cầu URL dài đến thế

nhưng với các bản đồ phức tạp với một số lượng lớn các marker và path kèm theo

URL được mã hóa bởi các trình duyệt làm cho kích thước kí tự sử dụng tăng.

Xây dựng một URL hợp lệ có thể tham khảo tại http://code.google.com/intl/vi-

VN/apis/maps/documentation/webservices/index.html#BuildingURL.

I I I .2.1.b Các tham số URL

Một Static Maps API URL có hình thức sau

:http://maps.google.com/maps/api/staticmap? Parameters.

Một số tham số được yêu cầu, một số khác là tùy chọn.Theo chuẩn trong URL,tất

cả những tham số được phân cách bằng dấu “&” . Sau đây, ta sẽ cụ thể các tham số

URL :

� Tham số location - Center (tham số yêu cầu nếu không có markers) định nghĩa trung tâm của

bản đồ,cách đều tất cả các cách của bản đồ.Tham số này có một vị trí

{ vĩ độ,kinh độ} (kinh độ và vĩ độ là kiểu float) là vị trí duy nhật trên trái

đất.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 45

- Zoom (tham số bắt buộc nếu không có marker) xác định mức độ phóng

to của bản đồ.Tham số này có giá trị tường ứng với mức độ phóng to

của khu vực mong muốn.

� Tham số Map

- Size (tham số yêu cầu) : định nghĩa kích thước hình chữ nhật của bản đồ.

Tham số này có hình thức value x value .Ví dụ : 500 x 400 định nghĩa

một bản đồ có 500 điểm ảnh rộng, 400 điểm ảnh cao.Nếu bạn tạo bản đồ

có số điểm ảnh nhỏ hơn 100,logo “Powersd by Google ” tự động giảm

kích thước.

- Format (tham số tùy chọn):xác định định dạng của ảnh, mặc định là

static maps api tạo ra ảnh PNG,có thể gồm các định dạng như : GIF,

JPEG và PNG và các loại.

- Maptype (tham số tùy chọn): xác định loại bản đồ.Một số maptype :

roadmap, satellite(vệ tinh), hybrid, terrain(địa hình).

- Language (tham số tùy chọn): xác định ngôn ngữ hiện thị trên bản đồ.

� Tham số Feature

- Marker (tham số tùy chọn)xác định 1 hoặc nhiều dấu hiệu để đính kèm

vào hình ảnh tại các địa điểm qui định.

- Path (tham số tùy chọn) địng nghĩa con đường duy nhất của hai hay

nhiều điểm kết nối.

- Visible (tham số tùy chọn): Một hoặc nhiều điểm nên hiển thị trên bản

đồ, dù không có marker. Sử dụng tham số này đảm bảo tính năng center

và vị trí bản đồ được hiển thị trên bản đồ tĩnh.

- Style (tham số tùy chọn) : xác định một syle tùy chỉnh để thay đổi cách

trình bày của một số tính năng cụ thể (như đường,công viên,..)của bản

đồ.

� Tham số Repor ting

Reporting (tham số bắt buộc) đặc biêt khi các yêu cầu ứng dụng bản đồ tĩnh

được sủ dụng để định nghĩa vị trí của người sử dụng.Tham số được yêu cầu

cho tất cả những yêu cầu bản đồ tĩnh

I I I .2.1.c Sử dụng thông số

Ở bài báo cáo này,em tập trung các tham số bắt buộc,còn các tùy chọn,có thể tham

khảo tại :

http://code.google.com/intl/vi-

VN/apis/maps/documentation/javascript/v2/reference.html.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 46

� Xác định vị tr í

Static map phải xác định chính xác vị trí của bản đồ thông qua center

hoặc marker.Vĩ độ và kinh độ của một vị trí được tính hính xác đến 6 chữ số

thập phân và được mã hóa địa lí hợp lệ ,nếu vượt quá 6 số thập phân xem

như bỏ qua.Nếu vĩ độ và kinh độ không hợp lệ có thể xem như một yêu cầu

xấu và bị từ chối.

Hầu hết mọi người không xác định được vị trí của mình theo vĩ độ và

kinh độ vì thế họ biểu diễn vị trí bằng cách sử dụng địa chỉ.Quá trình chuyển

1 địa chỉ vào 1 điểm địa lí được gọi là mã hóa địa lí,nhờ đó các bản đồ tĩnh

thực hiện mã hóa địa lí nếu ta cung cấp một địa chỉ hợp lệ.Thay vì ta phải

cung cấp các tham số vĩ độ/tung độ ta có thể chỉ định một chuỗi địa chỉ,

Google sẽ cung cấp dịch vụ Static Map với vĩ độ/kinh độ sử dụng trong việc

xác định vị trí.Địa chỉ được phản ánh qua tên đường,khu vực,thành phố,..

� Sử dụng kí hiệu cảm biến

Sử dụng Google Maps API yêu cầu bạn phải biết sử dụng “sensor” (cảm

biến)(như bộ định vị GPS) để xác dịnh vị trí của người sử dụng. Để xác

định người dùng có sử dụng kí hiệu cảm biến hay không trong URL thì ta

xác định tham số như sau : sensor =true có dùng bộ cảm biến (tham số

trong URL),sensor = false (không dùng bộ cảm biến).’

Ví dụ :

http://maps.google.com/maps/api/staticmap?center=Berkeley,CA&zoom=14

&size=400x400&sensor=false.

Hình 11 : Kết quả ví dụ sử dụng kí hiệu biến cảm

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 47

� Độ zoom

Bản đồ trên Google Map có một số nguyên độ “zoom”,số đó định nghĩa độ

phân giải hiện tại.Zoom mức 0 là mức thấp nhất,có thể nhìn thấy toàn thế

giới trên bản đồ.Mức cao nhất là +21(xuống đến các tòa nhà riêng lẻ).Mỗi

mức độ zoom tăng gấp đôi độ chính xác trong cà hai chiều ngang và chiều

dọc.

Lưu ý : tại các điểm khác nhau trên trái đất có độ zoom khác nhau tùy thuộc

vào vị trí,cũng như dữ liệu toàn cầu về địa điểm đó.

Ví dụ là bản đồ thành phố Manhattan ở cùng trung tâm nhưng có đô zoom

khác :

� Kích thước hình ảnh

Kích thước ảnh có thể lên đến 640x640 (đây là kích thước ảnh lớn nhất).

� Định dạng hình ảnh: ảnh có thể định dạng ở một số file như :jpg, png,..

I I I .2.2 Google Map Javasr ipt

Google Maps API cho phép bạn nhúng Google Maps vào trang web riêng với

javaSript.API cung cấp thêm một số tiên ích,dịch vụ cho thao tác bản đồ một cách

mạnh mẽ trên website của bạn.

Các API Maps thì miễn phí,nhưng để sử dụng nó,ta cần đăng kí 1 Google Maps

API key.Để đăng kí Google Maps API key, ta có thể đăng kí tại:

http://code.google.com/intl/vi-VN/apis/maps/signup.html .Với Google Maps API có

thể khắc phục những hạn chế của Static Google API.

Zoom 12

Zoom 14 Zoom 12

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 48

Nếu như với Static Google Maps điều quan trọng là cách dùng tham số trong

URL thì với Google Maps JavaScipt chúng ta phải biết cách sử dụng các API của

nó.Trong Google Maps API có các lớp : lớp lõi(core),lớp cơ bản(basic), lớp sự

kiện(event), lớp điều khiển (control), lớp bao phủ (overlay), lớp dịch vụ (service).

Bài báo cáo này,em chỉ tập trung vào các API tiêu biểu,ta có thể tham khảo

Google Maps API đầy đủ tại :

http://code.google.com/intl/vi-

VN/apis/maps/documentation/javascript/v2/reference.html.

I I I .2.2.a Lớp lõi ( core class)

Đây là lớp quan trọng trong Maps API , tạo ra một bản đồ mới bên trong

HTML,thường bản đồ hiển thị trong thẻ <div>,nếu không thiết lập loại bản đồ(map

type)thì mặc định là G_DEFAULT_MAP_TYPES được sử dụng.Nếu kích thước

không được khởi tạo thì kích thước của nơi hiển thị sẽ được sử dụng.

Ví dụ :chúng ta hãy xem ví dụ “hello world” bên dưới :

<html>

<head>

<metahttp-equiv="content-type"content="text/html; charset=utf-8"/>

<title>Google Maps JavaScript API </title>

<scriptsrc="http://maps.google.com/maps?file=api&amp;v=2&amp;key=abcdefg&sensor=true"

type="text/javascript"></script>

<scripttype="text/javascript">

function initialize(){

if(GBrowserIsCompatible()){

var map =newGMap2(document.getElementById("map_canvas"));

map.setCenter(newGLatLng(37.4419,-122.1419),13);

map.setUIToDefault();

}

}

</script>

</head>

<bodyonload="initialize()"onunload="GUnload()">

<divid="map_canvas"style="width:500px; height:300px"></div>

</body>

</html>

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 49

Quan sát ví dụ trên ta thấy, để load Google Maps API ta cần khai báo src :

http://maps.google.com/map?file=api&v=2, sensor và key .Key là key khi chúng

ta đăng kí Google Maps JavaScript API key.

Để hiển thị bản đồ lên trang web ta khai báo một hộp có kích thước 500x300

trong thẻ <div> . Mỗi đối tượng của lớp Gmap2 thể hiển một bản đồ trên trang web.

Muốn có nhiều bản đồ trên trang, ta khai báo nhiều đối tượng thuộc lớp Gmap2.

Sau đó, ta khởi tạo bản đồ.

map.setCenter(newGLatLng(37.4419,-122.1419),13);//

map.setUIToDefault();//thiết lập giao diện người dùng

Trong phương thức “setCenter ” có yêu cầu đối tượng GLatLng, đối tượng này sẽ đề

cập ở lớp cơ sở.

Bây giờ, chúng ta xem qua một số phương thức của Gmap2.

- enableDragging () : cho phép kéo bản đồ.

- disableDragging () : không cho phép kéo bản đồ.

- draggingEnabled() : trả về true nếu bản đồ được kéo.

- disableInfoWindow() : đóng cửa sổ nếu nó mở hoặc disables việc mở cửa sổ.

- enableInfoWindow() : cho phép cửa sổ hoạt động.

- enableDoubleClickZoom() : cho phép nhấn double click để phóng to thu nhỏ.

- disableDoubleClickZoom() : disable nhấn double click.

- setUIToDefault () : thiết lập giao diện người dùng.

- addControl (GControl, vị trí) : gán sự kiểm soát bản đồ cho đối tưởng gọi,nếu

tham số vị trí không có thì sẽ dùng vị trí mặc định được định nghĩa bởi

GControl.getDefaultPosition().

- getMaptypes () : trả về mảng MapTypes .

- getCenter () : trả về tọa độ địa lí của điểm trung tâm bản đồ.

- addOverlay(GOverlay) : sự kiện này phát sinh ra khi một lớp phủ duy nhất

được thêm vào bản đồ theo phương pháp addOverlay.

I I I .2.2.b Lớp cơ bản (base class)

� GLatLng : khởi tạo một điểm trong tọa độ địa lí với vĩ độ, kinh độ. Lớp có

các phương thức như :

- Lat () : trả về vĩ độ trong tọa độ.

- Lng() : trả về kinh độ trong tọa độ.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 50

- latRadians() : trả về vĩ độ trong bán kính,nằm trong khoảng -π/2 đến π/2.

- lngRadians() : trả về kinh độ trong bán kính , nằm trong khoảnh từ -π/2

đến π/2.

- equals(GlatLng) : kiểu Boolean, trả về khi hai thành phần bằng nhau.

- distanceForm(GlatLng , bán kính) : trả về khoảng cách giữa vị trí hiện

tạo và vị trí nhất định(tính bằng mét). Theo mặc định, khoảng cách này

được tính từ vị trí hiện tại tới bán kính xích đạo,ngoài ra ta có thể truyền

cho nó tham số bán kính.

- toUrlValue() : trả về chuỗi đại diện cho vị trí này (định dạng của nó phải

phù hợp với tham số URL).

� GBrowser IsCompatible():chức năng này kiểm tra xem Map API có thể

được sử dụng trong các trình duyệt hiện hành. Nếu trả về “ true” thì hỗ

trợ,” faulse” thì không.

� GPoint : biểu diễn 1 điểm trên bản đồ bằng tọa độ pixel, trong version 2

này nó không biểu diễn một điểm trên trái đất bằng tọa độ địa lí.Tọa độ địa lí

được biểu diễn bằng GLatLng. Trong hệ thống tọa đồ Googles Maps, tọa độ x

tăng theo chiều từ trái sang phải, y tăng theo chiều từ trên xuống dưới.

Khởi tạo GPoint (x,y) : tạo ra một đối tượng GPoint.

Các phương thức của GPoint :

- equals( GPoint) : trả về true nếu các điểm có tọa độ giống nhau.

- toString () : trả về một chuỗi có chứa các tọa độ x và y,cách nhau bởi dấu

phẩy.

� GSize : kích thước bằng pixel của khu vực hình chữ nhật của bản đồ.

Khởi tạo : GSize (chiều rộng, chiều cao): tạo ra đối tượng GSize.

Các phương thức :

- Equals(GSize) : trả về true nếu kích thước bằng nhau.

- toString() : trả về một chuỗi chứa tham số chiều rộng,chiều cao.

� Gunload () : tháo gỡ tất cả các xử lí sự kiện được đăng kí để ngăn ngừa sự

rò rỉ bộ nhớ nên nó được gọi như là xử lí sự kiện unload.

I I I .2.2.c Lớp điều khiển (class Control)

GControl : Lớp này thừa kế từ giao diện GControl.Giao diện GControl được cài

đặt bởi tất cả điều khiển.Bạn có thể cài đặt thứ tự để tùy chọn điều khiển bản

đồ.Những điều khiển được thêm vào bản đồ bằng cách GMap2.addControl().

Phương pháp addControl có tham số thứ hai GControlPosition thiết lập vị trí điều

khiển trên bản đồ. Giá trị này có thể là những giá trị sau :

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 51

• G_ANCHOR_TOP_RIGHT //góc phía trên bên phải

• G_ANCHOR_TOP_LEFT // góc phía trên bên trái

• G_ANCHOR_BOTTOM_RIGHT //góc phía dưới bên phải

• G_ANCHOR_BOTTOM_LEFT //góc phía dưới bên trái

Chúng ta có thể add nhiều điều khiển vào bản đồ.Trong trường hợp này,chúng ta có

thể xây dựng điều khiển bằng GSmallMapControl và GmapTypeControl.

var map =newGMap2(document.getElementById"map_canvas"));

var mapTypeControl =newGMapTypeControl();

var topRight =newGControlPosition(G_ANCHOR_TOP_RIGHT,newGSize(10,10));

var bottomRight

=newGControlPosition(G_ANCHOR_BOTTOM_RIGHT,newGSize(10,10));

map.addControl(mapTypeControl, topRight);

GEvent.addListener(map,"dblclick",function(){

map.removeControl(mapTypeControl);

map.addControl(newGMapTypeControl(), bottomRight);

} );

map.addControl(newGSmallMapControl());

map.setCenter(newGLatLng(37.4419,-122.1419),13);

Một số phương thức của GControl :

�GSmallMapControl () : tạo ra một nút điều khiển xoay 4 hướng,phóng to và

thu nhỏ.

�GLargeMapControl () : tạo ra một nút điều khiển xoay 4 hướng,phóng

to,thu nhỏ và zoom theo kiểu trượt.

�GSma-allZoomControl () : tạo nút điều khiển phóng to và thu nhỏ.

�GMapTypeControl : cung cấp 1 điều kiển để chọn và chuyển đổi giữa các

loại bản đồ thông qua nút điều khiển. Theo mặc định, bản đồ hỗ trợ cách thiết

lập của G_DEFAULT_MAP_TYPES; bản đồ cũng có thể thêm các loại bản

đồ một cách rõ ràng qua GMap2.addMapType ().

Phương thức khởi tạo : GMapTypeControl(boolean) : tạo 1 đối

tượngGMapTypeControl.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 52

I I I .2.2.d Lớp sự kiện (Event class)

Nampaces GEvent gồm các chức năng dùng để xử lí sự kiện,cho các sự kiện

riêng và sự kiện phát sinh.Các sự kiện được định nghĩa bởi API và tùy chỉnh sự

kiện thông qua GEvent.trigger().Mỗi Maps API tạo ra một số sự kiện,ví dụ GMap2

tạo ra click,dblclick và sự kiện di chuyển.

Một số phương thức :

�GEvent.removeListener(GEventListener) : xóa một xử lí được thiết lập khi

sử dụng addListener().

I I I .2.2.e Lớp bao phủ (Over lay class)

� GIcon(): một icon biểu diễn 1 GMarker trên bản đồ.Vì lí do tương thích với

trình duyệt rất khó,nên nếu bạn không muốn đặc biệt thì nên dùng mặc định

G_DEFAULT_ICON.

Khởi tạo : GIcon (GIcon, String) : tạo một đối tượng Icon.

Ví dụ icon đơn giản:

var map =newGMap2(document.getElementById("map_canvas"));

map.addControl(newGSmallMapControl());

map.setCenter(newGLatLng(37.4419,-122.1419),13);

// tạo icon cho marker

var blueIcon =newGIcon(G_DEFAULT_ICON);

blueIcon.image ="http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-

dot.png";

// thiết lập đối tượng GMarkerOptions

markerOptions ={ icon:blueIcon } ;

// thêm 10 maker vào bản đồ ở vị trí ngẫu nhiên

var bounds = map.getBounds();

var southWest = bounds.getSouthWest();

var northEast = bounds.getNorthEast();

var lngSpan = northEast.lng()- southWest.lng();

var latSpan = northEast.lat()- southWest.lat();

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 53

for(var i =0; i <10; i++){

var point =newGLatLng(southWest.lat()+ latSpan *Math.random(),

southWest.lng()+ lngSpan *Math.random());

map.addOverlay(newGMarker(point, markerOptions));

}

Kết quả :

Hình 12 : Kết quả ví dụ icon

Một số phương thức :

- Image : trả về chuỗi URL ảnh mặt trước của icon

- Shadow : trả về chuỗi URL của ảnh shadow.

- iconSize : kích thước pixel của ảnh mặt trước icon.

- shadowSize : kích thước pixel của ảnh shadow.

� GMarker()

Một đối tượng GMarker đánh dấu vị trí trên bản đồ. Nó cài đặt giao diện

GOverlay và sau đó thêm vào bản đồ sử dụng phương pháp

GMaps.addOverlay().Mỗi đối tượng GMarker có một thuộc tính “ latlng” là vị trí địa

lí nơi marker hiển thị trên bản đồ và một icon.Nếu icon không được thiết lập,icon

mặc định được sử dụng G_DEFAULT_ICON.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 54

Google Maps API cũng hỗ trợ sử dụng Google Map Marker.Google Map Marker

là bản đồ được tạo ra thông qua sự đóng góp của người sử dụng từ khắp nơi trên thế

giới, bao gồm cả khu vực chưa bao phủ Google Maps.

Lưu ý : khi dùng Map Marker, bạn chỉ có thể kiểm soát bản đồ mà Google Map

Marker thiết lập,khi zoom vào các khu vực mà không hỗ trợ sẽ được thông báo là

nơi đó không có trên bảng đồ.Google Map Marker có sẵn 2 loại bản đồ sau:

• G_MAPMAKER_NORMAL_MAP hiển thị chế độ xem road map chuẩn

• G_MAPMAKER_HYBRID_MAP hiển thị kết hợp ảnh vệ tinh và thông

thường.

• Google Maps cung cấp một số bản đồ bổ sung cho các thiên thể khác ngoài

trái đất :

• G_MOON_ELEVATION_MAP : hiển thị bản đồ địa hình bóng mờ của mặt

trăng,mã màu theo độ cao.

• G_MOON_VISIBLE_MAP : hiển thị ảnh chụp được lấy từ quỹ đạo xung

quanh mặt trăng.

• G_MARS_ELEVATION_MAP : hiển thị một bản đồ địa hình bóng mờ của

bề mặt sao Hỏa, mã màu theo độ cao.

• G_MARS_VISIBLE_MAP : hiển thị hình ảnh được lấy từ quỹ đạo xung

quanh sao Hỏa.

• G_MARS_INFRARED_MAP : hiển thị một bản đồ hồng ngoại bóng của bề

mặt sao Hỏa, nơi vùng ấm áp hơn xuất hiện sáng hơn và lạnh hơn xuất hiện

các khu vực sáng tối hơn.

• G_SKY_VISIBLE_MAP : hiển thị một khảm của bầu trời, như nhìn thấy từ

Trái Đất, bao gồm các thiên thể hình cầu toàn.

Một số phương thức :

- openInfoWindowHtml(String,GInfoWindowOptions ) : mở cửa sổ hiển thị bản

đồ thông qua icon của marker.Nội dung của cửa sổ được cho bởi chuỗi HTML

- bindInfoWindowTabsHtml (GInfoWindowTab[],GInfoWinOptions): kết nối

HTML được cho đến marker.Nội dung HTML sẽ hiển thị trong cửa sổ khi

marker được click.

- closeInfoWindow() :chỉ đóng cửa sổ nếu nó thuộc về marker này.

- getIcon() : trả về icon của marker như thiết lập.

- getTitle (): trả về chuỗi marker như thiết lập thông qua GMarkerOptions.title

- getLatLng (): trả về tọa độ địa lí ở nơi marker đóng.

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 55

Một số sự kiện của GMarker : click,dblclick,mousedown,mouseup,mouseover,.. Ví dụ icon và marker :

var map =newGMap2(document.getElementById("map_canvas"));

map.addControl(newGSmallMapControl());

map.addControl(newGMapTypeControl());

map.setCenter(newGLatLng(37.4419,-122.1419),13);

// Tạo icon đơn giản cho các marker

var baseIcon =newGIcon(G_DEFAULT_ICON);

baseIcon.shadow ="http://www.google.com/mapfiles/shadow50.png";

baseIcon.iconSize =newGSize(20,34);

baseIcon.shadowSize =newGSize(37,34);

baseIcon.iconAnchor =newGPoint(9,34);

baseIcon.infoWindowAnchor =newGPoint(9,2);

function createMarker(point, index){

// Tạo icon chữ trong icon tại mỗi điểm

var letter =String.fromCharCode("A".charCodeAt(0)+ index);

var letteredIcon =newGIcon(baseIcon);

letteredIcon.image ="http://www.google.com/mapfiles/marker"+ letter +".png";

// Thiết lập đối tượng GMarkerOptions

markerOptions ={ icon:letteredIcon } ;

var marker =newGMarker(point, markerOptions);

GEvent.addListener(marker,"click",function(){

marker.openInfoWindowHtml("Marker <b>"+ letter +"</b>");

} );

return marker;

}

// Tạo 10 marker ngẫu nhiên

var bounds = map.getBounds();

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 56

var southWest = bounds.getSouthWest();

var northEast = bounds.getNorthEast();

var lngSpan = northEast.lng()- southWest.lng();

var latSpan = northEast.lat()- southWest.lat();

for(var i =0; i <10; i++){

var point =newGLatLng(southWest.lat()+ latSpan *Math.random(),

southWest.lng()+ lngSpan *Math.random());

map.addOverlay(createMarker(point, i));

}

Kết quả :

Hình 13 : Kết quả ví dụ GMarker

I I I .2.2.f Lớp dịch vụ (Service class) � GDownloadURL() :hàm này cung cấp cách thuận tiện để đồng bộ lấy

nguồn tài nguyên được xác định bởi URL.Hàm này không cần thiết sử dụng

một URL tuyệt đối cho các tham số url, tốt nhất nên dùng đường dẫn tuyệt đối

hay tương đối để xử lí các ngoại lệ được ném ra.

GDownloadUrl (String url, Function onload,String postBody, String

postContentType) : lấy nguồn tài nguyên từ url và gọi chức năng onload với

document như tham số đầu tiên và trạng thái đáp ứng của HTTP như tham số

thứ hai.Nếu thời gian yêu cầu hết,hàm onload có thể được gọi thay vì null ở

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 57

lần đầu tiên và -1 lần thứ hai.Hàm này mặc định gửi HTTP GET.Để gửi HTTP

POST ta sử dụng thêm 2 tham số postBody, postContType. � GXml(): Namespace này cung cấp phương pháp để xử lí các dữ kiện XML.

Một số phương thức:

- GXml.parse (String) : phân tích chuỗi XML và trả về một node.Nếu

browser không hỗ trợ XML,kết quả trả về cho thẻ <div> là rỗng.

- GXml.value() : trả về giá trị text của dữ liệu XML .

Ví dụ :

var map =newGMap2(document.getElementById("map_canvas"));

map.addControl(newGSmallMapControl());

map.addControl(newGMapTypeControl());

map.setCenter(newGLatLng(37.4419,-122.1419),13);

// Download dữ liệu file data.xml and load nó trên bản đồ.

- GDownloadUrl("data.xml",function(data, responseCode){

var xml =GXml.parse(data);

var markers = xml.documentElement.getElementsByTagName("marker");

for(var i =0; i < markers.length; i++){

var point =newGLatLng(parseFloat(markers[i].getAttribute("lat")),

parseFloat(markers[i].getAttribute("lng")));

map.addOverlay(newGMarker(point));

}

} );

Báo cáo đồ án tốt nghiệp Chương III: Cơ sở hỗ trợ phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 58

Kết quả :

Hình 14 : Kết quả ví dụ GXml.

� GXmlHttp() Namespace này cung cấp một phương thức để tạo đối tượng

XmlHttpRequest trong một browser.GXmlHttp.create() : tạo một đối tượng

XmlHttpRequest.

Ví dụ :

� var request =GXmlHttp.create();

request.open("GET","myfile.txt",true);

request.onreadystatechange =function(){

if(request.readyState ==4){

alert(request.responseText);

}

}

request.send(null);

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 59

Chương IV PHÁT TRIỂN ỨNG DỤNG ĐỊNH VỊ

IV.1 GIỚI THIỆU ỨNG DỤNG

Chương trình ứng dụng công nghệ GPS để xây dựng ứng dụng hiển thị vị trí của

máy di động trên bản đồ, trong đó:

- Chương trình trên máy điện thoại di động gửi tọa độ về web servertheo khoảng

thời gian định kì. Đồng thời, người dùng có thể biết biết vị trí hiện tại của mình.

- Chương trình server trên website nhận lấy tọa độ và hiển thị vị trí trên bản đồ.

Đồng thời, tọa độ từ máy điện thoại di động gửi về được lưu trong cơ sở dữ liệu

ở server nhằm phục vụ cho việc định vị, giám sát máy điện thoại di động và

những tiện ích từ bản đồ : dò đường,..người dùng website có thể sử dụng.

Hình 15 : Mô hình ứng dụng.

Mô tả :

Người dùng điện thoại di động bật tính năng “Dinh vi” trên chương trình ứng dụng,

tại màn hình ứng dụng, người sử dụng sẽ nhập usename (phone), website server,

chọnkhoảng thời gian định kì gửi tọa độ GPS và độ zoom của bản đồ(bản đồlà kết

quả từ server gửi về để cho người dùng điện thoại, dựa vào bản đồ này người dùng

điện thoại có thể biết vị trí hiện tại của mình).Chương trình gửi tọa độ về server

thông qua kết nối GPRS.Chương trình có thể chạy song song với các chương trình

ứng dụng khác của điện thoại, người dùng có thể để cho điện thoại tự động gửi tọa

độ cho server trong khi tương tác với các chương trình khác (như nghe nhạc,xem

phim,..).

Tại web server, chương trình trên server sẽ nhận lấy tọa độ, lưu vào trong cở sở dữ

liệu (dữ liệu này có thể dùng để giám sát,ứng dụng trong địa lí như lập biểu đồ

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 60

đường đi,vẽ đường..).Sau đó,server sẽ load các tọa độ lên hộp seclect kèm theo thời

gian cập nhật để người quản lí chọn và hiển thị lên màn hình.Tọa độ được hiển thị

trên bản đồ số, bản đồ này có thể xem ở 3 dạng : bản đồ đường (road map), vệ tinh,

và bản đồ kết hợp cả hai.Đồng thời, người sử dụng web có thể sử dụng các ứng

dụng từ bản đồ số này như : dò đường. Chương trình tại server còn có chức năng

delete để xóa tọa độ.

IV.2 PHÂN TÍCH

IV.2.1 Chương tr ình sever

IV.2.1.a Lược đồ use case

Hình 16 : Biểu đồ use case server.

� Danh sách actor

STT Actor Ý nghĩa

1 Nguoi giam sat Người giám sát

Bảng 10 : Danh sách các actor của chương trình cho server.

� Danh sách use case STT Use case Ý nghĩa

1 Nhan toa do Nhận tọa độ từ client

2 Hien thi toa do de chon Hiển thị các tọa độ trong cơ sở dữ liệu lên

hộp seclect

3 Hien thi toa do len ban do Hiển thị tọa độ đã chọn trong hộp select lên

bản đổ

4 Xoa toa do Xóa tọa độ trong hộp seclect

Bảng 11 : Danh sách các use case của chương trình cho server

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 61

IV.2.1.b Đặc tả use case

� Đặc tả chức năng “ Nhan toa do” .

- Chức năng cho người giám sát nhận tọa độ từ người dùng điện

thoại(client) để cập nhật vào cở sở dữ liệu và trả lại kết kết quả là bản

đồ(nếu kết nối thành công) hay thông báo (nếu kết quả không thành

công)cho client.

- Dòng sự kiện chính:

+ Use case bắt đầu khi người dùng điện thoại kết nối với server.

+Chương trình tự động cập nhật tọa độ vào cơ sở dữ liệu.

+ Chương trình gửi yêu cầu định vị client đến Google map

+ Chương trình trả kết quả lại client.

+ Chức năng thành công, người dùng điện thoại nhận được bản đồ

hiển thị ví trí hiện tại của người dùng và cập nhật được cơ sở dữ liệu tọa độ.

- Dòng sự kiện khác:Không có.

- Các yêu cầu đặc biệt: Không có .

- Điều kiện tiên quyết: Không có.

- Điểm mở rộng: Không có .

� Đặc tả chức năng “ Hien thi toa do de chon” .

- Chức năng cho người giám sát load các tọa độ trong cơ sở dữ liệu vào hộp

seclect.

- Dòng sự kiện chính:

+ Use case bắt đầu khi giám sát bật browser.

+ Chương trình tự động trích tọa độ từ cơ sở dữ liệu hiển thị lên hộp

select..

- Dòng sự kiện khác:Không có.

- Các yêu cầu đặc biệt: Không có .

- Điều kiện tiên quyết: Không có.

- Điểm mở rộng: Không có .

� Đặc tả chức năng “ Hien thi toa do len ban do” .

- Chức năng cho người giám sát chọn tọa độ từ hộp select, trích từ cơ sở

dữ liệu tọa độ tương ứng tọa độ chọn, và load bản đồ từ Google map.

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 62

- Dòng sự kiện chính:

+ Use case bắt đầu khi người giám sát chọn tọa độ trong hộp

seclect.

+ Chương trình trích lấy dữ liệu tọa độ (tương ứng với tọa độ cơ

sở dữ liệu)

+ Chương trình gửi yêu cầu định vị tọa độ vừa chọn đến Google

map

+ Chương trình hiển thị bản đồ với tọa đồ chọn là center.

- Dòng sự kiện khác:Không có.

- Các yêu cầu đặc biệt: Không có .

- Điều kiện tiên quyết: Không có.

- Điểm mở rộng: Không có .

� Đặc tả chức năng “ Xoa toa do” .

- Chức năng cho người giám sát xóa các tọa độ trong cơ sở dữ liệu.

- Dòng sự kiện chính:

+ Use case bắt đầu khi người giám sát nhấn “delect”

+Người giám sát chọn tọa độ cần xóa

+ Thực hiện xóa

+ Chương trình xóa tọa độ trong cở sở dữ liệu

+ Thông báo thành công cho người giám sát.

- Dòng sự kiện khác:Không có.

- Các yêu cầu đặc biệt: Không có .

- Điều kiện tiên quyết: Không có.

- Điểm mở rộng: Không có .

IV.2.1.c Lược đồ tuần tự và hoạt động

Tại bước này, ta chú ý quá trình thực hiện các chức năng, không quan tâm quá trình

điện thoại có tọa độ thế nào mà quan tâm làm rõ quá trình xử lí từ lúc điện thoại có

tọa độ.

� Lược đồ hoạt động nhận tọa độ

Dưới đây là biểu đồ tuần tự xử lí việc gửi tọa độ và nhận bản đồ :

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 63

Hình 17 : Biểu đồ tuần tự xử gửi và nhận bản đồ

� Lược đồ tuần tự hiển thị tọa độ để chọn

Hình 18 : Biểu đồ tuần tự hiển thị tọa đồ để chọn

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 64

� Lược đồ tuần tự hiển thị tọa độ lên bản đồ

Hình 19 : Biểu đồ tuần tự hiển thị tọa độ lên bản đồ.

� Lược đồ tuần tự xóa tọa độ

Hình 20: Lược đồ tuần tự xóa tọa độ.

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 65

IV.2.1.d Giao diện

Hình 21 : Giao diện hiển thị tọa độ lên bản đồ.

IV.2.2 Chương tr ình client

IV.2.2.a Lược đồ use case

Hình 21: Lược đồ use case client.

� Danh sách actor

STT Actor Ý nghĩa

1 Nguoi dung DD Người dùng di động

Bảng 12 : Danh sách các actor của chương trình cho client.

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 66

� Danh sách use case

STT Use case Ý nghĩa

1 Dinh vi dien thoai Hiển thị vị trí người dùng di động trên bản đồ

Bảng 13 : Danh sách các use case của chương trình cho client

IV.2.2.b Đặc tả use case

� Đặc tả chức năng “ Dinh vi dien thoai” .

- Chức năng cho phép người dùng di động biết được vị trí hiện tại của mình

trên bản đồ.

- Dòng sự kiện chính:

+ Use case bắt đầu khi người dùng điện thoại chọn chức năng định

vịtừ nút “Dinh vi” .

+Người dùng nhập các thông tin usename(phone), webserver, độ

zoom, thời gian định kì gửi tọa độ vào ô textbox,checkbox,gause tương

ứng.

+Chương trình sẽ lưu thông tin nhập vào trong nhớ điện thoại, đóng

gói gửi yều cầu tới server.

+ Chức năng thành công, người dùng nhận được bản đồ hiển thị ví trí

hiện tại của người dùng.

- Dòng sự kiện khác:Người dùng phải nhập username hoặc phone, nếu

không nhập sẽ cảnh báo.

- Các yêu cầu đặc biệt: Không có .

- Điều kiện tiên quyết: Không có.

- Điểm mở rộng: Không có .

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 67

IV.2.2.c Lược đồ tuần tự.

Lược đồ tuần tự định vị điện thoại :

Hình 22 : Lược đồ tuần tự định vị điện thoại.

IV.2.2.d Giao diện

Hình 22: Giao diện chức năng định vị.

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 68

IV.3 Xây dựng ứng dụng

IV.3.1 Bộ công cụ phát tr iển ứng dụng.

- Neatbean 6.9 tải tại :http://netbeans.org/community/news/show/1461.html

- JDK 1.6 tải tại

:http://www.oracle.com/technetwork/java/javase/downloads/index.html

- Xampp :http://www.apachefriends.org/en/xampp.html

- MySQL tool 5.0 :http://dev.mysql.com/downloads/gui-tools/5.0.html

- NuSphere PhpED :http://www.nusphere.com/

- JavaScript Editor :http://www.yaldex.com/JSFactory_Pro.htm

IV.3.2 Hiện thực

Chương trình em sử dụng mã nguồn mở GPSTracker, nhưng có bổ sung và chỉnh

sửa ở các bước xử lí và giao diện, cụ thể sẽ trình bày bên dưới.

IV.3.2.a Trên điện thoại

� Trường hợp 1 : xây dựng ứng dụng ở mức thử nghiệm, điện thoại không có

chức năng GPS :

Chương trình trên máy điện thoại di động tạo giả tọa độ GPS và gửi về web

server theo khoảng thời gian định kì. Đồng thời người dùng điện thoại nhận

được bản đồ thể hiện vị trí của mình.

Tuần tự thực hiện chức năng đã được trình bày ở bước phân tích, tại đây ta sẽ

cụ thể các quá trình xử lí như sau :

- Phát sinh tọa độ.

- Tạo bộ định thời.

- Lưu thông tin nhập vào bộ nhớ điện thoại

- Kết nối với server .

Phát sinh tọa độ.

Khi điện thoại sử dụng tính năng GPS tích hợp sẵn,sau quá trình tính

toán(chương 1 có đề cập)điện thoại sẽ nhận được thông tin cơ bản về vị trí gọi

tắt là tọa độ.Thông tin này gồm : tọa độ, độ chính xác, tốc độ, method(cách lấy

dữ liệu vị trí),…Vì thế, ta tạo một lớp “Toado” để mô tả đối tượng là tọa độ

GPS:

public class Toado {

private QualifiedCoordinates toado;

private float speed;

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 69

private int localmethod;

}

Lớp này có thêm các phương thức truy cập vào thành phần của nó để có thể

khởi tạo gía trị và truy cập. Để phát sinh tọa độ, ta sử dụng hàm random, cho

phát sinh ngẫu nhiên các thành phần trong đối tượng Toado, đặc biệt là phải

khởi tạo giá trị cho từng biến trong QuanlifiedCoordinates(như hoành độ, tung

độ, cao độ,..) nhưng phải giới hạn trong phạm vi tọa độ thực.Riêng với tham

số method, nếu method =8 có nghĩa là dữ liệu vị trí được lấy từ cell phone,

nếu method = 327681 thì dữ liệu vị trí lấy từ satellite.Ở đây, em chọn method

= 327681 để tương ứng dữ liệu vị trí lấy từ vệ tinh.

Tạo bộ định thời.

Ta muốn cho điện thoại gửi tọa độ liên tục theo khoảng thời gian định kì tới

server thì buộc ta phải lập lịch cho nhiệm vụ gửi tọa độ. Để lập lịch cho nhiệm

vụ, ta thêm vào hai lớp Timer(lập lịch cho thời điểm xuất phát nhiệm vụ) và

TimerTask (thực thi nhiệm vụ).Cụ thể, trong chương trình này,em cho lớp

GPS kết thừa lớp TimerTask có nhiệm vụ gửi tọa độ và khai báo đối tượng

Timer trong lớp GPSTracker.

Để lập lịch cho nhiệm vụ, có 2 cách : lập lịch nhiệm vụ một lần và lập lịch

nhiệm vụ định kì. Với yêu cầu của chức năng gửi tọa độ liện tục, ta chọn lập

lịch theo định kì.Trong lập lịch theo định kì lại có hai cách : độ trễ cố

định(Fixed -delay) và tỉ lệ cố định (Fixed - rate).Ưu điểm của fixed –delay là

tính ổn định quan trọng hơn tính chính xác, tức là đảm bảo công việc thực hiện

một cách ổn định đôi khi không chính xác thời gian lập lại công việc, vì thế

khi tọa độ thay đổi nó sẽ làm hình ảnh trơn tru, ổn định.Chính những ưu điểm

này làm em chọn cách lập lịch này.Ta dùng phương thức void

schedule(TimerTasker task, long delay, long period) với khoảng thời gian

delay bằng 0, thời gian period tùy thuộc vào tùy chọn của người dùng di

động(đơn vị của period được tính theo phần nghìn giây).Bên cạnh đó, ta dùng

phương thức cancel() để hủy bộ lập thời gian khi có thay đổi về thời gian gửi

toa độ.

Lưu thông tin nhập vào bộ nhớ điện thoại .

Khi ta sử dụng chức năng “Dinh vi” ta cần nhập một số thông tin :

username(phone), thời gian định kì gửi, thời gian gửi tọa độ về server, độ

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 70

zoom. Nhằm tạo sự tiện dụng cho người sử dụng ví dụ như khi nhập các

thông số này, đôi khi ta nhấn nhằm có thể làm chương trình thoát ra,…nên

chương trình có chức năng lưu lại các thông số khi bạn nhấn save và sẽ load

lại trong lần mở chương trình sau đó. Để thực hiện chức năng này, em dùng

lớp RMS(mã nguồn mở), để thực hiện chức năng lưu và load lại thông tin đã

nhập.

Kết nối với server .

Kết nối với server là công việc của đối tượng lớp Networker(mã nguồn

mở).Tại lớp Networker, ta xây dựng phương thức GetURL(String query ) để

tạo kết nối với server thông qua lớp HttpConnector(chương 2) và dùng

phương thức GET để gửi yêu cầu tới server . Kết quả từ server trả về là 1ảnh –

bản đồ với vị trí của người dùng điện thoại là trung tâm bản đồ. Bản đồ này là

Static Google Map.Khi người dùng điện thoại gửi yêu cầu cho server, server

sẽ xử lí (xử lí thế nào, phần server sẽ làm rõ) và tạo ảnh gửi lại cho điện

thoại.Điện thoại mở luồng nhận dữ liệu từ server, và dùng hàm

Image.createImage để phục hồi lại ảnh, hiển thị lên màn hình.Kích thước của

khung hiển thị bản đồ cũng được gửi kèm yêu cầu gửi tới server.

� Trường hợp 2 :

Điện thoại có tính năng GPS, điện thoại nhận tọa độ từ hệ thống GPS gửi về

cho server theo khoảng thời gian định kì. Đồng thời người dùng điện thoại

nhận được bản đồ thể hiện vị trí của mình.

Trình tự xử lí cho trường hợp này tương tự như trường hợp trên, nhưng có

điểm khác nhau.Với trường hợp trên, chương trình phải tự sinh tọa, tạo bộ lập

lịch nhiệm vụ thì với trường hợp này, ta không phải sinh tọa độ mà nhận tọa

độ từ GPS và không cần tạo bộ lập lịch nhiệm vụ, ta sử dụng hàm trong

Location API để thiết lập cập nhật. Các bước xử lí :

- Nhận tọa độ GPS.

- Cập nhật tọa độ theo định kì.

- Lưu thông tin nhập vào bộ nhớ điện thoại

- Kết nối với server và hiển thị kết quả.

Nhận tọa độ GPS.

Để nhận tọa độ từ GPS, ta tiến hành trình tự các bước như trong phần chương

2 giới thiệu :

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 71

- B1 : Tạo Criteria.

- B2 :Thiết lập Criteria cho LocationProvider.

- B3 :Nhận một thể hiện LocationProvider theo một Criteria.

- B4 :Nhận đối tượng Location từ LocationProvider.

- B5 :Nhận Coordinates từ Location.

Bước 1, 2, 3 ta thực hiện ngắn gọn qua hàm createLocationProvider():

private void createLocationProvider() {

Criteria cr = new Criteria();

try {

locationProvider = LocationProvider.getInstance(cr);

} catch (Exception e) {

midlet.log("GPS.createLocationProvider: " + e);

}

}

Bước 4, 5 ta thực hiện đơn giản qua hàm getLocation (Location

location).Hàm này thực hiện nhận Coordinates từ đối tượng Location(sử

dụng hàm khởi tạo mặc định cho đối tượng Location _ với hàm khởi tạo

mặc định, đối tượng này được khởi tạo từ LocationProvider).

Cập nhật tọa độ theo định kì.

Trong Location API có hỗ trợ phương thức

setLocationListener (LocationListener listener, int interval, int timeout, int

maxAge) (thuộc lớp LocationPrivider ) để update vị trí theo khoảng thời gian

interval hoặc theo sự thay đổi trạng thái của LocationProvider. Vì thế, ta sử

dụng phương thứcproviderStateChanged(LocationProvider provider,

int newState) (trong Location API) để lắng nghe sự thay đổi trạng thái của

LocationProvider, và phương thức

locationUpdated(LocationProvider provider, Location location).

Lưu thông tin nhập vào bộ nhớ điện thoại.

Xử lí tương tự như trường hợp 1.

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 72

Kết nối với server .

Xử lí tương tự như trường hợp 1.

IV.3.2.b Trên server

� Nhận tọa độ.

Tuần tự thực hiện chức năng đã được trình bày ở bước phân tích, tại đây ta sẽ cụ thể

các quá trình xử lí như sau :

- Tạo cở sở dữ liệu để lưu các thông số nhận từ client.

Cơ sở dữ liệu ở server là bảng với các field là các thông số nhận từ

client : phoneNumber, latitude, longtitude, sessionID, speed,.. và thêm vào

fiefd GPSLocationID để làm khóa.

Hình 23 : Bảng cơ sở dữ liệu ở server.

- Sử dụng phương thức GET để nhận kết nối

- Lưu thông số nhận từ client vào cơ sở dữ liệu

- Tạo url để download bản đồ ở static map theo định dạng Static Google

API với các tham số : markers, lat, lng, zoom, size,..

- Tạo ảnh bằng hàm imageCreateFromGIF($mapUrl)

- Gửi ảnh trả về client.

� Hiển thị tọa độ lên hộp select .

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 73

- Để hiển thị tọa độ lên hộp select ta trích từ cơ sở dữ liệu thông tin số

phone, ngày giờ cập nhật,.. hiện thị lên hộp seclect.

- Để cho thông tin trong cở sở dữ liệu mỗi khi được cập nhật hiển thị lên

màn hình, ta phải phải kiểm tra trạng thái màn hình, khi màn hình reload lại

thì ta sẽ load lại dữ liệu lên hộp select. Ở đây,em dùng hàm

setTimeout("location.reload(true)", interval*1000) để reload từ server.

� Hiển thị ảnh lên bản đồ (mã nguồn mở).

Để hiển thị ảnh đã chọn từ hộp select lên bản đồ, ta cần xử lí các công việc :

- Trích từ cơ sở dữ liệu thông tin tọa độ tương ứng với tọa độ đã

chọn từ hộp seclect.

- Xây dựng bản đồ (bản đồ hiển thị tọa độ tại server là bản đồ xây

dựng từ Googole JavaScript API).

- Tạo nút điều khiển.

- Tạo marker tương ứng với tọa độ được chọn.

- Tạo icon thể hiện vị trí tọa độ.

Các icon dùng để gán vào marker thể hiện vị trí điện thoại trên bản đồ.Mỗi

lần điện thoại cập nhật vị trí về server, vị trí lưu trong cở sở dữ liệu. Khi ta

chọn trong hộp select số phoneNumber cần định vị, ta sẽ truy cập trong cở

sở dữ liệu toàn bộ các tọa độ của phoneNumber.

Ta tạo ra số marker tương ứng số tọa độ của phoneNumber .Sau đó, ta sẽ

thêm các marker vào bản đồ.Tọa độ hiện hành ta sẽ chọn icon khác các tọa

độ trước đó.Như thế ta sẽ hiển thị được dấu vết tất cả các tọa độ của

phoneNumber.

� Xóa tọa độ.

Để xóa tọa độ, ta chọn tọa độ cần xóa trên hộp select, tiến hành xóa tọa độ

trong cở sở dữ liệu với tọa độ vừa chọn.

IV.3.3 Hướng phát tr iển.

Dù đã nỗ lực và cố gắng nhưng do thời gian hạn chế, khó khăn khi tiếp cận

các công nghệ mới, ngôn ngữ lập trình mới, cũng như khó khăn trong kết hợp

mySQL với php, nhúng javacript, php vào html các nên chương trình em còn có

những hạn chế và thiếu sót sau :

Chương trình server, muốn tự động cập nhật những thay đổi từ cơ sở dữ liệu

lên hộp select phải định kì reload lại màn hình. Em có nghiên cứu tìm cách khắc

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 74

phục, em được biết sẽ dùng timer, nhưng do thời gian hạn chế, nên em chưa kịp

hoàn thiện nó.

Chương trình của em ở mức demo nên quá trình xác thực còn đơn giản, tương

lai nếu chương trình áp dụng thực tế sẽ phải xây dựng hệ thống xác thực mạnh như

radius,...

IV.4 KỊCH BẢN DEMO.

IV.4.1 K ịch bản 1 : Demo chương trình phát triển ứng dụng định vị trên điện thoại giả lập. Điện

thoại giả lập gửi tọa độ phát sinh về web server local.

Cụ thể là, lúc này người dùng điện thoại di động chính là người dùng máy

tính có cài chương trình client, chương trình client chạy trên phần mềm giả lập

điện thoại Toolkit Wireless 2.5.Tại đây, điện thoại giả lập chạy chức năng “định vị

”của chương trình client, điện thoại sẽ gửi tọa độ do chương trình client phát sinh

định kì về web server.

Người giám sát web server sẽ đăng nhập vào web server tại trang login, đăng

nhập thành công sẽ hiển thị trang giám sát. Tại trang này, người giám sát chọn số

phoneNumber cần giám sát tại hộp select để bản đồ thể hiện vị trí của điện thoại

được hiển thị trên trang giám sát và vị trí của điện thoại được thể hiện bằng icon

trên bản đồ. Icon thể hiện vị trí hiện tại khác với icon thể hiện các tọa độ đã đi

qua.Vì thế, khi ta quan sát trên bản đồ tại server sẽ giám sát được người dùng di

động.

IV.4.2 K ịch bản 2 : Demo chương trình phát triển ứng dụng định vị trên điện thoại thật chỉ có tính

năng GPRS, điện thoại gửi tọa độ phát sinh về web server qua GPRS.

Lúc này, người dùng điện thoại sử dụng điện thoại thật, có có chức năng

GPRS, không có chức năng GPS. Điện thoại bật chức năng “định vị” trên chương

trình client và gửi tọa độ do chương trình client phát sinh theo định kì về web

server .

Người giám sát tại web server cũng đăng nhập và làm các bước như web

server local, nhưng trong trường hợp này web server đã được public.

IV.4.3 K ịch bản 3 :

Báo cáo đồ án tốt nghiệp Chương IV: Phát triển ứng dụng định vị

SV: Nguyễn Thị Diệp Tú Trang 75

Demo chương trình phát triển ứng dụng định vị trên điện thoại thật có chức

năng GPS và GPRS, điện thoại nhận tọa độ từ hệ thống GPS qua chức năng GPS

tích hợp trong điện thoại để gửi tọa độ về web server qua GPRS.

Lúc này, điện thoại thật nhận tọa độ GPS từ chức năng GPS tích hợp trong

điện thoại, điện thoại chạy chức năng định vị của chương trình client để gửi tọa độ

thật vể cho server theo định kì thông qua GPRS.

Người giám sát tại web server cũng đăng nhập và làm các bước như web

server local nhưng web server đã được public.

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trang 76

KẾT LUẬN

Sau gần 3 tháng làm đề tài tốt nghiệp, dưới sự hướng dẫn tận tình của thầy

Nguyễn Hồng Sơn em đã nắm được một số kiến thức căn bản về hệ thống định vị

GPS, các công nghệ hỗ trợ định vị, công nghệ J2ME, Milet, một số hàm trong

Googe API, cách tạo bản đồ thông qua Google Static API, cách tạo bản đồ, điều

khiển bản đồ thông qua Google JavaScript API, sơ lược về thẻ htm, ngôn ngữ php.

Đặc biệt xây dựng được chương trình ứng dụng trên điện thoại và server, nhằm giúp

cho người quản lí server giám sát điện thoại, lấy thông tin đường đi thông qua việc

xử lí số liệu tọa độ nhận được trong cơ sở dữ liệu và có thể giúp người dùng định vị

vị trí hiện tại của bản thân.

Báo cáo đồ án tốt nghiệp

SV: Nguyễn Thị Diệp Tú Trang 77

TÀI LIỆU THAM KHẢO.

1.Nguyễn Bích Hà, Nền tảng công nghệ J2ME & MIDP, nhà xuất bản giao thông vận tải

2.John W.Muchow, Core J2METM Technology & MIDP, xuất bản bởi Pretince Hall PTR, ngày xuất bản 21/12/2001 .

3.Vartan Piroumian, Wireless J2METM Platform Programing, xuất bản bởi Pretince Hall PTR, ngày xuất bản 25/03/2002.

4.Phạm Hữu Khang, PHP & MySQL, nhà xuất bản Phương Đông.

5.Các website tham khảo :

http://vi.wikipedia.org/wiki/Hệ_thống_định_vị_toàn_cầu.

http://vi.wikipedia.org/wiki/Dịch_vụ_vô_tuyến_gói_tổng_hợp.

http://ktvt.org/forum/showthread.php?251-doc-GPRS-GSM-Network&p=309

http://developers.sun.com/mobility/apis/articles/location/

http://mobilesprogramming.wordpress.com/2010/08/19/

http://wiki.forum.nokia.com/index.php/Google_Maps_API_in_Java_ME

http://code.google.com/apis/maps/documentation/mapsdata/developers_guide_protocol.html.

http://code.google.com/intl/vi-VN/apis/maps/documentation/staticmaps/

http://www.mapmap.org/googlemaps/mock/js_docs_out/

http://www.jappit.com/blog/midmaps-google-maps-java-me-library/

http://econym.org.uk/gmap/index.htm

http://www.php.net/manual/en/index.php

http://www.qhonline.info/php-can-ban/29/bai-8--khai-niem-ve-ham-va-goi-lai-ham-trong-php.html.

http://www.w3schools.com/jsref/

http://www.ajaxtoolbox.com/request/documentation.php

http://dev.mysql.com/doc/refman/5.1/en/