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
Trang 1MỤ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 II CÔNG NGHỆ J2ME, MIDP 20
II.1 J2ME 20
II.1.1 Giới thiệu 20
II.1.2 Kiến trúc 21
II.2 MIDP 24
II.2.1 Giới thiệu 25
II.2.2 Lập trình 29
Chương III CƠ SỞ HỖ TRỢ PHÁT TRIỂN ỨNG DỤNG ĐỊNH VỊ 37
III.1 LOCATION API 37
III.1.1 Giới thiệu 37
III.1.2 Location 38
III.1.3 Mốc ranh giới(Landmark) 41
III.1.4 Định hướng(Orientation) 42
III.1.5 Bảo mật và cấp 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 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
Trang 2IV.3.1 Bộ công cụ phát triển ứng dụng 68
IV.3.2 Hiện thực 68
IV.3.3 Hướng phát triể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
Trang 3DANH 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
Trang 4DANH 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
Trang 5THUẬT NGỮ VIẾT TẮT
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
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
bao thường trú
Trang 6HTTP 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
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
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
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
Trang 7RSS 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
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
Trang 8LỜ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ị
Trang 9CHƯƠ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
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
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
Trang 10Tươ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)
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
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
Trang 11I.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,
Trang 12nó 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
Trang 13I.2 Các công nghệ hỗ trợ định vị
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),
Trang 14dữ 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ỉ
Trang 15I.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.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ệ
Trang 16thiết bị di động, WML trở nên không cần thiết và với WAP 2.0, WML đã được
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
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
Trang 17sự 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 :
Core Network Sự phát triển lên GPRS đòi hỏi nhiều thành phần
Bảng 1 : Những thay đổi và nâng cấp trong mạng GPRS
+ 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
Trang 18chọn thì không thể truy nhập được (trừ SMS có thể nhận gửi bất cứ lúc
nào)
+ 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 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
Trang 19- 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ý
+ 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
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))
Trang 20+ 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
Trang 21Tấ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 backbone
Border Gateway Border Gateway
GGSN GGSN
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
Trang 22Giao 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
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
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
Trang 23dù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ệ
Trang 24má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ử
Trang 25dụ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
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ả
Trang 26chi 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
Trang 27Chương II CÔNG NGHỆ J2ME, MIDP II.1 J2ME
II.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
II.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:
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
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
Trang 28- 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)
II.1.2 Kiến trúc
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ộ
Trang 29Cả 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:
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
- 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
II.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
Trang 30Mỗ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
Trang 31nghĩ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
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
II.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ó
Trang 32Tầ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)
II.2.1 Giới thiệu
- 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
bị này
- 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
Trang 33- 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
II.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
Trang 34Hình 8 : Chu kỳ sống của MIDlet
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
Trang 35Tậ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
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 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
Trang 36Tươ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:
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
II.2.2 Lập trình
II.2.2.a Môi trường phát triể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
Trang 37Symabian 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: 135801.html
http://www.oracle.com/technetwork/java/download-Symbian Platform SDK : http://www.forum.nokia.com/Devices/Symbian/
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”)
để 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 :
Trang 38Hì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 :
- 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
Trang 39- 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:
Trang 40+ 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 219-TLS-20010411-a
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 với chế độ được chỉ ra
Static InputStream openInputStream(String
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