Chủ Nhật, 23 tháng 2, 2014
nghiên cứu JAVA MoBILE và xây dựng ứng dụng minh họa
4.5.
TextBox: 69
4.6.
Alert và AlertType: 72
4.6.1.
Alert: 72
4.6.2.
AlertType: 74
4.7.
Ticker: 77
Chương 5:
Giao diện đồ họa cấp thấp 78
5.1.
Canvas: 78
5.1.1.
Hệ toạ độ: 79
5.1.2.
Vẽ trên đối tượng Canvas: 79
5.1.3.
Bắt sự kiện trong các đối tượng Canvas: 82
5.1.4.
Game action: 85
5.1.5.
Sự kiện con trỏ: 87
5.2.
Graphics: 89
5.2.1.
Màu sắc: 90
5.2.2.
Nét vẽ: 93
5.2.3.
Font chữ: 98
5.2.4.
Vẽ các đối tượng hình ảnh (image): 101
5.2.5.
Các phương thức tịnh tiến đối tượng: 103
5.2.6.
Vùng xén (Clipping regions): 105
Chương 6:
Lưu trữ thông tin với RMS 106
6.1.
Giới thiệu RMS 106
6.2.
Duyệt danh sách Record với RecordEnumeration 115
6.3.
Sắp xếp bằng RecordComparator 117
6.4.
Lọc record với RecordFilter 119
6.5.
Nhận thông điệp khi Record Store thay đổi 121
6.6.
Xử lý lỗi khi thao tác với Record Store 122
Chương 7:
Kết nối mạng với Generic Connection Framework (GCF) 124
7.1.
Giới thiệu GFC 124
7.2.
Lược đồ lớp 124
7.3.
Kết nối HTTP: 127
7.3.1.
Khởi tạo kết nối: 127
7.3.2.
Các đặc điểm của kết nối HTTP bằng J2ME: 130
7.3.3.
Thông số kết nối: 137
7.4.
Kết nối socket Datagram (UDP) 138
7.5.
Kết nối TCP socket 141
7.6.
Gửi và nhận SMS 144
Phần 2 : Web Service và Ứng dụng "Đăng Ký Học Phần" 149
Chương 8:
Giới thiệu Web Service 149
8.1.
Ứng dụng phân tán (Distributed Application) 149
8.1.1.
Giới thiệu 149
8.1.2.
Các vấn đề nảy sinh trong hệ thống ứng dụng phân tán 150
8.1.3.
Hạn chế của những mô hình ứng dụng phân tán trước đây 151
8.2.
Web Service 152
8.2.1.
Định nghĩa 152
8.2.2.
Thành phần cơ bản của Web service: 152
8.2.3.
Hoạt động của Web service 152
8.2.4.
Ưu điểm của web service 155
8.3.
Các thành phần chính của Web Service 157
8.3.1.
SOAP (Simple Object Access Protocol) 157
8.3.2.
WSDL (Web Service Definition Language) 162
Chương 9:
Ứng dụng đăng ký học phần 172
9.1
Đặc tả chương trình: 172
9.1.1
Tổng quan: 172
9.1.2
Các chức năng chính: 172
9.2
Kiến trúc chương trình: 174
9.2.1
Mô hình kết nối: 174
9.2.2
Mô hình bảo mật (mã hoá password): 176
9.3
Phân tích - thiết kế: 177
9.3.1
Mô hình use case: 177
9.3.2
Đặc tả một số use case chính: 178
9.4
Thiết kế mô hình dữ liệu: 183
9.4.1
Mô hình thực thể kết hợp: 183
9.4.2
Các bảng dữ liệu: 183
9.4.3
Chi tiết các bảng dữ liệu: 184
9.4.4
Ràng buộc dữ liệu: 188
9.4.5
Mô hình dữ liệu: 190
9.4.6
Các chức năng store procedures: 190
9.4.7
Thiết kế lớp: 191
9.5
Cài đặt - thử nghiệm: 192
9.5.1
Yêu cầu phần cứng: 192
9.5.2
Yêu cầu phần mềm: 193
9.5.3
Giao diện chương trình: 193
Chương 10:
Tổng kết 205
10.1
Kết luận: 205
10.2
Hướng phát triển: 207
Tài liệu tham khảo 210
Phụ Lục A:
Hướng dẫn sử dụng công cụ Sun Wireless ToolKit 2.3 211
Phụ Lục B:
Xây dựng và Sử dụng Web Service 217
Phụ Lục C:
Giới thiệu các thư viện JSR 222
Danh Sách Các Hình
Hình 1.1 Các thiết bị J2ME hỗ trợ 6
Hình 1.2 Các thành phần của J2ME 7
Hình 1.3 Configurations và các thiết bị 9
Hình 1.4 Cấu trúc chương trình J2ME 11
Hình 1.5 Cấu trúc chương trình MIDP 11
Hình 2.1 Cấu trúc thiết bị MID 17
Hình 3.1 Command Exit 34
Hình 3.2 Command Label 36
Hình 3.3 Ánh xạ soft-button 36
Hình 4.1 Sơ đồ các lớp giao diện đồ hoạ 40
Hình 4.2 Giao diện đối tượng DateField 46
Hình 4.3 Giao diện đối tượng Gauge chế độ tương tác 48
Hình 4.4 Giao diện đối tượng Gauge chế độ không tương tác 49
Hình 4.5 Giao diện đối tượng StringItem 52
Hình 4.6 Giao diện đối tượng TextField 56
Hình 4.7 Giao diện đối tượng ChoiceGroup chế độ một lựa chọn 59
Hình 4.8 Giao diện đối tượng ChoiceGroup chế độ nhiều lựa chọn 60
Hình 4.9 Giao diện đối tượng List dạng menu 67
Hình 4.10 Giao diện đối tượng List cho phép chọn nhiều lựa chọn 68
Hình 4.11 Giao diện đối tượng TextBox 71
Hình 4.12 Giao diện đối tượng Alert 76
Hình 4.13 Giao diện Ticker 77
Hình 5.1 Các phương thức vẽ đường cong 94
Hình 5.2 Các phương thức vẽ hình chữ nhật 95
Hình 5.3 Các phương thức hỗ trợ vẽ Text 97
Hình 5.4 Các định dạng trong Text Graphic 97
Hình 5.5 Các phương thức tạo font 100
Hình 5.6 Vẽ bằng đối tượng Immutable Image 101
Hình 5.7 Vẽ bằng đối tượng Mutable Image 102
Hình 5.8 Các định dạng vị trí trong Graphics 103
Hình 7.1 Lược đồ các lớp trong thư viện GCF 125
Hình 7.2 Kết nối UDP 138
Hình 7.3 Kết Nối TCP 141
Hình 7.4 Lược đồ lớp thư viện WMA 145
Hình 8.1 Hoạt động của Web Service 152
Hình 8.2 Một client truy xuất đến nhiều web services cùng lúc 154
Hình 8.3 Một web service có thể triệu tập đến các web services khác 155
Hình 8.4 Web Service Endpoint 162
Hình 9.1 Kiến trúc chương trình ứng dụng 174
Hình 9.2 Mô hình mã hoá password 176
Hình 9.3 Lược đồ use case 177
Hình 9.4 Mô hình thực thể kết hợp ER 183
Hình 9.5 Ràng buộc chu trình 189
Hình 9.6 Mô hình cơ sở dữ liệu 190
Hình 9.7 Mô hình Lớp 192
Hình 9.8 Sơ đồ các màn hình 194
Hình 9.9 Màn hình welcome 195
Hình 9.10 Màn hình đăng nhập 196
Hình 9.11 Confirm 197
Hình 9.12 Menu chức năng 198
Hình 9.13 Màn hình đăng ký học phần lý thuyết 199
Hình 9.14 Màn hình đăng ký học phần thực hành 200
Hình 9.15 Màn hình xem thời khoá biểu 201
Hình 9.16 Màn hình xem kết quả học tập 202
Hình 9.17 Màn hình xem phiếu đăng ký 203
Hình 9.18 Màn hình xem thời khoá biểu 204
Hình 10.1 Hướng phát triển thực tế 207
Hình A.1 Công cụ Sun WirelessToolkit 2.3 211
Hình A.2 Màn hình chính của công cụ 212
Hình A.3 Tạo project mới 212
Hình A.4 Các options cho project 213
Hình A.5 Chỉnh sửa nội dung file Jad và Jar 214
Hình A.6 Biên dich project 215
Hình A.7 Đóng gói ứng dụng 216
Hình B.1 Tạo project Web Service 217
Hình B.2 Khai báo lớp và hàm 218
Hình B.3 Export nhiều hàm cùng lúc 219
Hình B.4 Màn hình thực thi Web Service của IE 219
Hình B.5 File WSDL 220
Hình B.6 Công cụ Stub Generator 221
Hình B.7 Các options của công cụ Stub Generator 221
Danh Sách Các Bảng
Bảng 2.1 Cấu trúc file manifest 19
Bảng 2.2 Cấu trúc file JAD 20
Bảng 3.1 Lớp MIDlet 27
Bảng 3.2 Lớp Display 29
Bảng 3.3 Lớp Displayable 32
Bảng 3.4 Các Command Type 37
Bảng 3.5 Command và CommandListener 38
Bảng 3.6 Item và ItemStateListener 39
Bảng 4.1 Lớp Screen 42
Bảng 4.2 Lớp Form 44
Bảng 4.3 Lớp Item 45
Bảng 4.4 Lớp DateField 46
Bảng 4.5 Lớp Gauge 49
Bảng 4.6 Lớp StringItem 51
Bảng 4.7 Các Ràng Buộc của TextField 53
Bảng 4.8 Lớp TextField 55
Bảng 4.9 Lớp ChoiceGroup 58
Bảng 4.10 Lớp Image 62
Bảng 4.11 Định dạng ImageItem 62
Bảng 4.12 Lớp ImageItem 63
Bảng 4.13 So sánh List và ChoiceGroup 65
Bảng 4.14 Lớp List 66
Bảng 4.15 So sánh TextField và TextBox 69
Bảng 4.16 Lớp TextBox 70
Bảng 4.17 Lớp Alert 73
Bảng 4.18 AlertType 75
Bảng 4.19 Lớp Ticker 77
Bảng 5.1 Truy vấn kích thước Canvas 79
Bảng 5.2 Lớp Canvas 81
Bảng 5.3 Giao tiếp với Application Manager 81
Bảng 5.4 Mã Phím 83
Bảng 5.5 Sự kiện keyPressed 84
Bảng 5.6 Sự kiện Game Action 85
Bảng 5.7 Bắt sự kiện trong Game Action 86
Bảng 5.8 Sự kiện con trỏ 87
Bảng 5.9 Lớp Graphics 90
Bảng 5.10 Các phương thức vẽ 93
Bảng 5.11 Xử lý Text 96
Bảng 5.12 Giá trị Anchor 96
Bảng 5.13 Xử lý Font chữ 98
Bảng 5.14 Các giá trị Font 99
Bảng 5.15 Vẽ hình ảnh 101
Bảng 5.16 Giá trị Image Anchor 103
Bảng 5.17 Các phương thức tịnh tiến 103
Bảng 5.18 Vùng xén 105
Bảng 6.1 Mô hình Record Store 107
Bảng 6.2 Lớp RecordStore 109
Bảng 6.3 Lớp RecordEnumeration 117
Bảng 6.4 Các giá trị hằng để sắp xếp record 118
Bảng 6.5 Lớp RecordListener 121
Bảng 7.1 Lớp Connector 128
Bảng 7.2 Mode Kết Nối 128
Bảng 7.3 Các Request Method chính 130
Bảng 7.4 Các phương thức set/get Request Method 131
Bảng 7.5 Các phương thức truy vấn HTTP Header 134
Bảng 7.6 Lấy thông số kết nối 137
Bảng 7.7 Lớp DatagramConnection 139
Bảng 7.8 Lớp Datagram 140
Bảng 7.9 Thuộc tính của SocketConnection 142
Bảng 7.10 Lớp SocketConnection 143
Bảng 7.11 Các interfaces chính của WMA 144
Bảng 9.1 Danh sách các Use Case 178
Bảng 9.2 Table ChuyenNganh 184
Bảng 9.3 Table SV 184
Bảng 9.4 Table MonHoc 185
Bảng 9.5 Table GV 185
Bảng 9.6 Table Lop 185
Bảng 9.7 Table Lop_MonLT 186
Bảng 9.8 Table Lop_MonTH 187
Bảng 9.9 Table PhanCongTH 187
Bảng 9.10 Table DangKyLT 187
Bảng 9.11 Table DangKyTH 187
Bảng 9.12 Table ThongBao 188
Các chữ viết tắt, thuật ngữ được sử dụng
API Application Program Interface
CDC Connected Device Configuration
CLDC Connected Limited Device Configuration
Configuration
Đặc tả qui định các thư viện gốc J2ME phải hỗ trợ cho một dòng
phần cứng.
DES Thuật toán mã hóa khóa bí mật 64 bits
GCF General Connection Framework
IIS Internet Information Services-Web server chuẩn trên Windows
J2EE Java 2 Enterpise Edition, phiên bản Java cho những dự án lớn.
J2ME Java 2 Micro Edition, phiên bản Java cho những thiết bị nhỏ.
J2SE
Java 2 Standard Edition, phiên bản Java ra đời đầu tiên, dành cho
PC thông thường.
JCP Tổ chức Java Community Process
JDK Java Development Kits
JSR
Java Specification Requests, những yêu cầu cần bổ sung cho các
phiên bản Java.
JSR-172 Thư viện truy xuất web service cho ngôn ngữ J2ME.
JSR-177 Thư viện mã hóa và bảo mật cho ngôn ngữ J2ME.
KVM Máy ảo Java cho môi trường CLDC.
MIDlet Tên gọi chung cho các ứng dụng J2ME.
MIDP Mobile Information Device Profile.
MMS
Multimedia Message Service, tin nhắn hình ảnh, âm thanh, video
cho di động.
PDA Personal Digital Assistant.
Profile Các tập thư viện cấp cao định nghĩa trên nền Configuration.
RMS RecordStore Management System, cơ chế lưu trữ của J2ME.
SMS
Short Message Service, tin nhắn thông thường cho điện thoại di
động.
SOAP
Simple Object Access Protocol, định dạng thông điệp của Web
Service.
Symbian Hệ điều hành cho điện thoại di động của hãng Symbian.
UDDI Universal Description, Discovery, and Integration
Web Service Giao thức gọi hàm từ xa dựa trên XML và HTTP.
WMA Wireless Message API
WSDL Web Service Definition Language
XML Extensible Markup Language
Java Mobile
Lời Nói Đầu
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990 và
theo thời gian, số lượng các thuê bao cũng như các nhà cung cấp dịch vụ di động tại
Việt Nam ngày càng tăng. Cùng với sự phát triển của số lượng thuê bao di động là
sự đa dạng hoá các dịch vụ hướng đến thiết bị di động. Ngày nay điện thoại di động
không chỉ còn mang chức năng gọi điện hay nhắn tin thông thường mà còn là một
thiết bị giải trí, tra cứu thông tin rất tiện lợi. Do đó, xây dựng các ứng dụng cho điện
thoại di động đang là một yêu cầu tất yếu trong xu thế hiện nay. Ngành công nghiệp
phần mềm cho các thiết bị di động được xem như một mảnh đất màu mỡ và hứa hẹn
đem lại nhiều tỉ đô la doanh thu.
Hai hướng phát triển ứng dụng trên điện thoại di động phổ biến hiện nay là
sử dụng ngôn ngữ C++ trên nền hệ điều hành Symbian và J2ME. Các ứng dụng viết
trên nền Symbian có các ưu thế truy cập trực tiếp các tài nguyên của điện thoại cũng
như hỗ trợ hệ thống tập tin, thư mục… như máy tính cá nhân vì được hỗ trợ trực
tiếp bởi hệ điều hành. Tuy nhiên hệ điều hành Symbian lại có kích thước khá lớn
nên chỉ có ở các thế hệ điện thoại tương đối cao cấp, và xây dựng ứng dụng dùng
Symbian API cũng phức tạp hơn.
Đối trọng với Symbian API là công nghệ J2ME với kích thước nhỏ gọn,
tiện dụng, được hỗ trợ bởi hầu hết các thế hệ điện thoại mới ra đời, kể cả các điện
thoại có hệ điều hành Symbian. J2ME không những là một ngôn ngữ hướng đến các
thiết bị di động mà còn là ngôn ngữ chính để lập trình trên các thiết bị gia dụng, thẻ
tín dụng điện tử và các thiết bị thông minh khác. Chúng ta có thể nói đối tượng của
ngôn ngữ J2ME là rộng hơn rất nhiều so với C++ trên nền Symbian. Tại thời điểm
hiện tại, ngôn ngữ J2ME không hỗ trợ được nhiều tính năng như C++ trên Symbian
nhưng lại có những ưu điểm trội hơn.
J2ME là một ngôn ngữ nhỏ, gọn nhưng rất chặt chẽ và dễ nắm bắt, với
những lập trình viên đã có kinh nghiệm với Java việc lập trình với J2ME trở nên rất
1
Java Mobile
dễ dàng. J2ME còn là một ngôn ngữ được các tổ chức mã nguồn mở ủng hộ mạnh
mẽ và phát triển rất nhanh chóng, JCP (Java Community Process-
http://www.jcp.org) là một chương trình do Sun thành lập luôn tiếp thu các ý kiến
và đưa ra các đặc tả mới dành cho Java nói chung và J2ME nói riêng. Các đặc tả
này thường có tiếp đầu ngữ JSR và là các tính năng bổ sung mới cho J2ME.
Những JSR quan trọng có thể được nhắc đến như JSR-82 (Bluetooth), JSR
205 (Gửi tin nhắn SMS, MMS), JSR-172 (Web service), JSR-177 (Security and
Trust Services), JSR 184 (3D Game)… Các đặc tả này ngày càng phong phú và
phần nào phát triển nhanh hơn cả sự phát triển của phần cứng.
Thật khó so sánh giữa các dòng ngôn ngữ lập trình với nhau vì mỗi loại đều
có ưu và khuyết điểm riêng. Trong luận văn của mình, chúng tôi chọn nghiên cứu
về J2ME vì những ưu điểm khá rõ ràng đã nêu trên, mặt khác chúng tôi cũng muốn
thử sức ở một lãnh vực khá mới mẻ là tiếp cận với phần mềm mã nguồn mở.
Về chương trình ứng dụng, tính khả thi và thực tế ngày càng được đề cao.
Chúng tôi nhận thấy xu hướng mở rộng các ứng dụng trên web sang điện thoại di
động đang được chú trọng. Thương mại điện tử (e-commerce) đang tiến dần sang
thương mại di động (m-commerce). Với thực trạng Việt Nam hiện nay, số người sở
hữu máy vi tính cá nhân, đặc biệt là máy tính xách tay chưa nhiều nhưng tỉ lệ số
người có điện thoại di động lại khá cao. Việc chuyển các ứng dụng thương mại từ
môi trường web sang môi trường di động sẽ khiến sự tiện dụng tăng cao, số người
sử dụng dịch vụ trực tuyến chắc chắn sẽ tăng nhanh vì đối với nhiều người chiếc
điện thoại di động dễ sử dụng hơn rất nhiều so với chiếc máy tính "phức tạp và khó
hiểu".
Ứng dụng chúng tôi chọn thực hiện để bước chân vào lãnh vực khá mới mẻ
này là ứng dụng "Đăng Ký Học Phần" qua mạng di động. Đối với sinh viên khoa
công nghệ thông tin, hệ thống đăng ký học phần SMS qua môi trường web là một
ứng dụng rất quen thuộc. Chúng tôi muốn phát triển ứng dụng của mình như một
mở rộng của hệ thống đăng ký học phần này trên điện thoại di động nhằm hỗ trợ các
bạn sinh viên có thể sử dụng các tiện ích của hệ thống mà không cần phải có máy
2
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét