Tài liệu Nghiên cứu java mobile và xây dựng ứng dụng và minh họa

  • Số trang: 234 |
  • Loại file: PDF |
  • Lượt xem: 46 |
  • Lượt tải: 0
quangtran

Đã đăng 3721 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH – VIỄN THÔNG ĐẶNG NGUYỄN KIM ANH – ĐÀO ANH TUẤN NGHIÊN CỨU JAVA MOBILE VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA KHÓA LUẬN CỬ NHÂN TIN HỌC TP.HCM, 2005 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH – VIỄN THÔNG ĐẶNG NGUYỄN KIM ANH ĐÀO ANH TUẤN – 0112424 – 0112451 NGHIÊN CỨU JAVA MOBILE VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA KHÓA LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN Thầy NGUYỄN MINH TUẤN NIÊN KHÓA 2001-2005 Lời Cảm Ơn! Sau hơn năm tháng tìm hiểu và thực hiện, luận văn “Nghiên cứu công nghệ Java Mobile và xây dựng ứng dụng minh hoạ” đã cơ bản hoàn thành. Để đạt được kết quả này, chúng tôi đã nỗ lực hết sức đồng thời cũng nhận được rất nhiều sự quan tâm, giúp đỡ, ủng hộ của các thầy cô, bạn bè và gia đình. Trước hết, chúng em xin gởi lời cảm ơn chân thành đến Bộ môn Mạng máy tính và Viễn thông, Khoa Công nghệ Thông tin, trường Đại học Khoa học Tự nhiên và các thầy cô đặc biệt là Thầy Nguyễn Minh Tuấn đã tận tình giúp đỡ, hướng dẫn chúng em hoàn thành luận văn này. Chúng tôi rất cảm ơn các bạn bè trong khoa, các anh chị, các bạn trong cộng đồng Java Việt Nam đã bên cạnh ủng hộ, đóng góp ý kiến cho chúng tôi trong quá trình thực hiện luận văn. Và chúng con cũng xin chân thành cảm ơn gia đình đã luôn động viên, tạo điều kiện tốt nhất cho chúng con học tập và hoàn tất luận văn. Luận văn đã hoàn thành với một số kết quả nhất định, tuy nhiên vẫn không tránh khỏi sai sót. Kính mong sự cảm thông và đóng góp ý kiến từ các thầy cô và các bạn. Thành phố Hồ Chí Minh, tháng 7 năm 2005 Đặng Nguyễn Kim Anh - Đào Anh Tuấn MỤC LỤC Lời Nói Đầu...................................................................................................... 1 Phần 1: Kiến thức nền tảng J2ME ................................................................ 5 Chương 1: Tổng quan về J2ME.................................................................... 5 1.1 Giới thiệu J2ME (Java 2 Micro Edition).......................................................5 1.2 Lý do chúng ta cần J2ME..............................................................................6 1.3 Các thành phần của J2ME:............................................................................7 1.3.1 Configuration:.............................................................................................7 1.3.2 Profile: ........................................................................................................9 1.3.3 Máy ảo Java ..............................................................................................10 Chương 2: Giới thiệu CLDC và MIDP ...................................................... 13 2.1. CLDC ..........................................................................................................13 2.1.1. Yêu cầu phần cứng: ..................................................................................13 2.1.2. Yêu cầu phần mềm: ..................................................................................13 2.1.3. Máy ảo Java:.............................................................................................13 2.2. MIDP:..........................................................................................................16 2.2.1. Yêu cầu phần cứng: ..................................................................................16 2.2.2. Yêu cầu phần mềm: ..................................................................................16 2.2.3. Cấu trúc MID Profile:...............................................................................16 2.2.4. MIDlet Suite: ............................................................................................18 2.2.5. Môi trường phát triển ứng dụng J2ME.....................................................22 Chương 3: Các vấn đề cơ bản của chương trình MIDlet ......................... 25 3.1. Cấu trúc cơ bản: ..........................................................................................25 3.2. Xây dựng một ứng dụng MIDlet:................................................................25 3.3. Lớp MIDlet: ................................................................................................26 3.4. Lớp MIDletStateChangeException:............................................................28 3.5. Display.........................................................................................................28 3.6. Lớp Displayable: .........................................................................................30 3.7. Quản lý các sự kiện (event).........................................................................32 3.7.1. Command & CommandListener...............................................................33 3.7.2. Item và ItemStateListener.........................................................................38 Chương 4: Giao diện đồ họa cấp cao.......................................................... 40 4.1. Screen: .........................................................................................................42 4.2. Form: ...........................................................................................................43 4.3. Item:.............................................................................................................45 4.3.1. DateField: .................................................................................................46 4.3.2. Gauge:.......................................................................................................48 4.3.3. String Item: ...............................................................................................51 4.3.4. TextField: .................................................................................................53 4.3.5. ChoiceGroup: ...........................................................................................57 4.3.6. Image và ImageItem: ................................................................................61 4.4. List:..............................................................................................................64 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. 6.2. 6.3. 6.4. 6.5. 6.6. Giới thiệu RMS .........................................................................................106 Duyệt danh sách Record với RecordEnumeration ....................................115 Sắp xếp bằng RecordComparator..............................................................117 Lọc record với RecordFilter ......................................................................119 Nhận thông điệp khi Record Store thay đổi ..............................................121 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 SOAP Short Message Service, tin nhắn thông thường cho điện thoại di động. 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 Processhttp://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 Java Mobile tính kết nối mạng. Với ứng dụng này, tính tiện dụng của hệ thống đăng ký học phần SMS đã được mở rộng. Chỉ cần có một điện thoại di động hỗ trợ GPRS các bạn sinh viên có thể đăng ký học phần ngay cả khi đang về quê ăn tết ở những vùng internet chưa phổ biến nhưng đã phủ sóng di động hay khi đang di chuyển trên tàu xe… Vì một số điều kiện đặc biệt của điện thoại, hiện nay ứng dụng này chỉ chạy trên chương trình giả lập. Tuy nhiên, chúng tôi hi vọng trong một tương lai rất gần, khi các thế hệ điện thoại mới có giá thành vừa phải ra đời và hỗ trợ một số công nghệ như WebService, mã hoá… mà chúng tôi đang sử dụng để xây dựng phần mềm thì ứng dụng này có thể được áp dụng rộng rãi trong thực tế cho sinh viên của khoa. Cần phải nói thêm, ứng dụng hiện tại hoàn toàn có thể sử dụng được trong thực tế Việt Nam nhưng có một số đòi hỏi về thiết bị khá đắt tiền (xin xem thêm Chương 10, phần Kết Luận), chứ không chỉ mới là lý thuyết trên giấy tờ. Với việc xây dựng thành công hệ thống đăng ký học phần qua mạng điện thoại di động, chúng tôi rất tự tin về việc xây dựng các hệ thống thương mại di động lớn hơn. Trong tương lai gần, khách hàng có thể ngồi trên taxi mua vé máy bay, đặt chỗ khách sạn, xem lại tài khoản ngân hàng… với chiếc điện thoại di động nhỏ bé. Chiếc điện thoại di động sẽ trở thành một công cụ giao dịch không thể thiếu trong thời đại mới, thời đại của thương mại điện tử toàn cầu. Luận văn được trình bày thành hai phần lớp: Phần 1: Giới thiệu về lý thuyết nền tảng của J2ME, các thư viện, các kỹ thuật lập trình, đóng gói ứng dụng di động. Chương 1. Tổng quan về J2ME : Giới thiệu tổng quan về J2ME, các đặc điểm và các thành phần con. Chương 2. Giới thiệu CLDC và MIDP: Trình bày chi tiết về hai thành phần quan trọng của J2ME dành cho điện thoại di động, môi trường phát triển ứng dụng J2ME. Chương 3. Các vấn đề cơ bản của chương trình MIDlet: Chương này sẽ trình bày những đặc điểm quan trọng nhất của một ứng dụng J2ME, các bước cơ bản để xây dựng ứng dụng này. 3 Java Mobile Chương 4. Giao diện đồ họa cấp cao: Trình bày về thư viện đồ họa cấp cao như Form, List, TextBox… trong J2ME. Chương 5. Giao diện đồ họa cấp thấp: Trình bày về lập trình đồ họa cấp thấp, các phương thức vẽ, xử lý font, game action … trong J2ME. Chương 6. Lưu trữ thông tin với RMS: Trình bày về Record Management System, một cơ chế lưu trữ riêng của J2ME. Chương 7. Lập trình mạng vơi GCF: Trình bày về khả năng lập trình mạng trong J2ME. Phần 2: Giới thiệu về Web Service, một công nghệ rất mới để xây dựng các ứng dụng thương mại điện tử phân tán và giới thiệu chi tiết về ứng dụng cùng những đánh giá, tổng kết. Chương 8. Giới thiệu về ứng dụng phân tán và web service Chương 9. Trình bày chi tiết về ứng dụng "Đăng Ký Học Phần" Chương 10. Đánh giá, tổng kết các kết quả đạt được và hướng phát triển trong tương lai. Tuy đã đầu tư khá nhiều thì giờ và công sức vào luận văn này nhưng chắc chắn chúng tôi cũng không tránh khỏi những sai sót. Rất mong nhận được ý kiến đóng góp và sự thông cảm của quý thầy cô và các bạn! Xin chân thành cảm ơn! Kim Anh – Anh Tuấn 4 Java Mobile Phần 1: Kiến thức nền tảng J2ME Chương 1: Tổng quan về J2ME 1.1 Giới thiệu J2ME (Java 2 Micro Edition) J2ME là một nhánh của ngôn ngữ lập trình JAVA được phát triển nhằm hướng tới việc lập trình cho các thiết bị “nhỏ” (micro) có bộ nhớ, khả năng hiển thị và xử lý hạn chế. Ban đầu Java được xây dựng chỉ gồm một phiên bản duy nhất, ngày nay được biết đến với tên J2SE (Java 2 Standard Edition), với phương châm là “viết một lần, chạy trên mọi môi trường” (“Write once, run anywhere”). Java được hình thành trên ý tưởng xây dựng một ngôn ngữ mà lập trình viên chỉ cần viết một lần duy nhất nhưng ứng dụng có thể chạy trên bất cứ môi trường nào có hỗ trợ máy ảo Java (Java Virtual Machine). Để làm được việc này, Java sử dụng một phương thức biên dịch mã nguồn tương đối khác so với các ngôn ngữ lập trình truyền thống. Bộ biên dịch Java không biên dịch mã nguồn trực tiếp sang mã máy mà biên dịch sang một dạng mã trung gian mà máy ảo Java hiểu được (mã bytecode). Khi có nhu cầu sử dụng ứng dụng, máy ảo Java sẽ đọc mã trung gian này và dịch ra mã máy và thực thi; nhờ vào quá trình trung gian đó một ứng dụng Java có thể chạy trên bất kỳ môi trường nào có cài đặt máy ảo Java tương thích. Được giới thiệu lần đầu vào năm 1995, ngày nay mục tiêu Java nhắm đến cũng đã thay đổi khá nhiều. Java hiện nay không chỉ nhắm đến họ máy tính để bàn đơn thuần; hai năm sau ngày đầu được ra mắt, một phiên bản Java mới là J2EE (Java 2 Enterprise Edition) đã được giới thiệu nhắm tới việc phát triển các ứng dụng có qui mô lớn hơn. Phiên bản mới nhất được thêm vào dòng ngôn ngữ Java là J2ME (Java 2 Micro Edition). J2ME nhắm đến việc phát triển ứng dụng cho các ứng dụng có năng lực hạn chế như đầu giải mã kỹ thuật số TV set-top boxes, điện thoại di động … 5 Java Mobile 1.2 Lý do chúng ta cần J2ME Ngày nay ngành công nghiệp sản xuất thiết bị di động trên thế giới đang phát triển nhanh chóng. Các thiết bị di động ngày càng hiện đại hơn, “thông minh” hơn và ngày càng có nhiều tính năng nổi bật. Đơn cử như chiếc điện thoại di động, ngày nay chúng không chỉ đơn thuần đảm nhận chức năng hội thoại mà còn có thêm nhiều chức năng như chụp ảnh, nghe nhạc, xem phim … như một “trung tâm giải trí”. Các thiết bị gia dụng khác như lò vi ba, TV… cũng ngày càng được trang bị những tính năng hiện đại hơn. Nhu cầu phát triển phần mềm cho các thiết bị di động, gia dụng ngày càng tăng cao và được đánh giá là một ngành công nghệ có thể đem lại nhiều tỉ đô la doanh thu. Một thực tế đặt ra cho các nhà phát triển phần mềm trên các thiết bị này là hiện nay không có một chuẩn hóa nào dành cho các nhà sản xuất phần cứng. Các thiết bị trên thị trường hiện nay rất đa dạng và mang nhiều đặc điểm cũng như cấu hình khác nhau. Trước thực tế đó, việc có thể chạy trên nhiều môi trường là một lợi thế rất lớn của ngôn ngữ Java. Các nhà phát triển Java đã cho ra đời ngôn ngữ J2ME hướng đến việc phát triển phần mềm cho các thiết bị di động. Ngôn ngữ J2ME thực sự là một ngôn ngữ nhỏ gọn, dễ nắm bắt, chặt chẽ và thích hợp cho các thiết bị có khả năng hạn chế. Các thiết bị di động trên thị trường hiện nay, đặc biệt là điện thoại di động hầu hết đều hỗ trợ rất tốt ngôn ngữ J2ME và J2ME thực sự đã trở thành một trong những ngôn ngữ phổ biến nhất trong lãnh vực lập trình di động. Hình 1.1 Các thiết bị J2ME hỗ trợ 6 Java Mobile 1.3 Các thành phần của J2ME: Hình 1.2 Các thành phần của J2ME Khái niệm thiết bị di động là tương đối rộng lớn. Chúng bao hàm những thiết bị có kích thước vật lý khác nhau nhiều lần và cho dù cùng kích thước những thiết bị này vẫn có khả năng xử lý cũng như hiển thị khác nhau ( những chiếc điện thoại hiển thị 12,000 pixels cho đến những chiếc PDA 20,000 pixels). Để đáp ứng được nhu cầu khác nhau của những thiết bị này, bản thân ngôn ngữ J2ME cũng được chia thành những thành phần nhỏ hơn. Chúng ta sẽ tìm hiểu hai khái niệm mới là Configurations và Profiles. 1.3.1 Configuration: Để đáp ứng nhu cầu cho nhiều chủng loại thiết bị khác nhau, Sun đã đưa ra khái niệm Configuration. Khái niệm Configuration có mối liên hệ chặt chẽ với máy ảo Java. Nói chính xác hơn, một Configuration qui định những thành phần và những thư viện gốc của ngôn ngữ Java mà máy ảo phải hỗ trợ cho configuration đó. Việc phân chia thành những Configurations khác nhau chủ yếu dựa vào khả năng bộ nhớ, năng lực hiển thị, năng lực xử lý và khả năng kết nối mạng của các thiết bị. Như chúng ta đã biết, các thiết bị di động rất khác nhau về nguồn tài nguyên, về khả năng phần cứng. Với những thiết bị có năng lực hạn chế, nếu ta đưa 7 Java Mobile quá nhiều thư viện hỗ trợ vào máy ảo trên thiết bị đó sẽ gây chậm hệ thống và dư thừa không cần thiết. Với những thiết bị có khả năng cao hơn, chúng ta sẽ đưa thêm nhiều thư viện hỗ trợ vào máy ảo giúp ích cho công việc lập trình của các nhà phát triển. Do đó, nhu cầu phân chia thành nhiều Configurations là việc cần thiết. Hiện nay Sun đã đưa ra hai loại Configurations khác nhau: CDC (Connected Device Configuration): • 512 kb (minimum) bộ nhớ để chạy Java • 256 kb (minimum) bộ nhớ cấp phát động. • Kết nối mạng liên tục, băng thông rộng. CLDC(Connected Limited Device Configuration): • 128 kb (minimum) bộ nhớ để chạy Java • 32 kb (minimum) bộ nhớ cấp phát động. • Giao diện người dùng hạn chế • Năng lượng tiêu tốn ít (chủ yếu dùng pin) • Kết nối mạng Wireless, chậm. Việc phân chia này thực chất cũng chỉ mang tính tương đối. Công nghệ hiện nay đang phát triển khá nhanh, và việc phát triển này càng làm cho ranh giới giữa các loại Configuration này trở nên không rõ ràng. 8
- Xem thêm -