Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,15 MB
Nội dung
Find best mobile with best price www.thongtinmobile.com Lời giới thiệu: Công nghệ Java cho công nghiệp di động (Java Technology Wireless Industry - JTWI) ngày phát triển thu hút quan tâm nhiều người Nhằm đáp ứng nhu cầu này, TinCNTT mở chuyên mục J2ME Tutorial cố gắng đề cập đầy đủ nhiều khía cạnh cơng nghệ Java cho di động Để bắt đầu loạt bài, khảo sát lớp khái niệm quan trọng J2ME Bài 1: Khái quát lớp J2ME Mục tiêu J2ME cho phép người lập trình viết ứ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 Để đạt mục tiêu này, J2ME xây dựng tầng (layer) khác để giấu việc thực phần cứng khỏi nhà phát triển Sau tầng J2ME xây dựng CLDC: Hình Các tầng CLDC J2ME Mỗi tầng tầng hardware tầng trừu tượng 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 Từ lên trên: Tầng phần cứng thiết bị (Device Hardware Layer) Đây thiết bị di động thật với cấu hình phần cứng nhớ tốc độ xử lý Dĩ nhiên thật khơng phải phần J2ME nơi xuất phát Các thiết bị di động khác có vi xử lý khác với tập mã lệnh khác Mục tiêu J2ME cung cấp chuẩn cho tất loại thiết bị di động khác Tầng máy ảo Java (Java Virtual Machine Layer) Khi mã nguồn Java biên dịch chuyển đổi thành mã bytecode Mã bytecode sau chuyển thành mã ngơn ngữ máy thiết bị di động Tầng máy ảo Java bao gồm KVM (K Virtual Machine) biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode chương trình Java thành ngơn ngữ máy để chạy thiết bị di động Tầng cung cấp chuẩn hóa cho thiết bị di động để ứng dụng J2ME sau biên dịch hoạt động thiết bị di động có J2ME KVM Tầng cấu hình (Configuration Layer) Tầng cấu hình CLDC định nghĩa giao diện ngôn ngữ Java (Java language interface) phép chương trình Java chạy thiết bị di động Đây tập API định nghĩa lõi ngơn ngữ J2ME Lập trình viên sử dụng lớp phương thức API nhiên tập API hữu dụng chứa tầng trạng (profile layer) Tầng trạng (Profile Layer) Tầng 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 API hữu dụng cho lập trình viên Mục đích trạng xây dựng lớp cấu hình cung cấp nhiều thư viện ứng dụng MIDP định nghĩa API riêng biệt cho thiết bị di động Cũng có trạng API khác MIDP dùng cho ứng dụng Ví dụ, có trạng PDA định nghĩa lớp phương thức hữu dụng cho việc tạo ứng dụng PDA (lịch, sổ hẹn, sổ địa chỉ,…) Cũng có trạng định nghĩa API cho việc tạo ứng dụng Bluetooth Thực tế, trạng kể tập API xây dựng Chuẩn trạng PDA đặc tả JSR - 75 chuẩn bluetooth API đặc tả JSR - 82 với JSR viết tắt Java Specification Request Máy ảo Java (hay KVM) Vai trò máy ảo Java hay KVM dịch mã bytecode sinh từ chương trình Java biên dịch sang ngơn ngữ máy Chính KVM chuẩn hóa output chương trình Java cho thiết bị di động khác có vi xử lý tập lệnh khác Không có KVM, chương trình Java phải biên dịch thành tập lệnh cho thiết bị di động Như lập trình viên phải xây dựng nhiều đích cho loại thiết bị di động Hình biểu diễn tiến trình xây dựng ứng dụng MIDlet hồn chỉnh vai trị KVM Hình Tiến trình xây dựng MIDlet Quá trình phát triển ứng dụng MIDlet với IDE (Mơi trường phát triển tích hợpIntergrated Development Environment): Lập trình viên: Tạo tập tin nguồn Java Bước lập trình viên phải tạo mã nguồn Java, có nhiều tập tin (*.java) Trên IDE: Bộ biên dịch Java (Java Compiler): Biên dịch mã nguồn thành mã bytecode Bộ biên dịch Java biên dịch mã nguồn thành mã bytecode Mã bytecode KVM dịch thành mã máy Mã bytecode biên dịch lưu tập tin *.class có tập tin *.class sinh cho lớp Java Trên IDE: Bộ tiền kiểm tra (Preverifier): Kiểm tra tính hợp lệ mã bytecode Một yêu cầu an toàn J2ME bảo đảm mã bytecode chuyển cho KVM hợp lệ không truy xuất lớp hay nhớ giới hạn chúng Do tất lớp phải tiền kiểm tra trước chúng download thiết bị di động Việc tiền kiểm tra xem phần môi trường phát triển làm cho KVM thu nhỏ Bộ tiền kiểm tra gán nhãn lớp thuộc tính (attribute) đặc biệt lớp tiền kiểm tra Thuộc tính tăng thêm khoảng 5% kích thước lớp kiểm tra kiểm tra thiết bị di động Trên IDE: Tạo tập tin JAR IDE tạo tập tin JAR chứa: * Tất tập tin *.class * Các hình ảnh ứng dụng Hiện hỗ trợ tập tin *.png * Các tập tin liệu yêu cầu ứng dụng * Một tập tin kê khai (manifest.mf) cung cấp mô tả ứng dụng cho quản lý ứng dụng (application manager) thiết bị di động * Tập tin JAR bán phân phối đến người dùng đầu cuối Sau gỡ rối kiểm tra mã lệnh trình giả lập (simulator), mã lệnh sẵn sàng kiểm tra điện thoại di động sau phân phối cho người dùng Người dùng: Download ứng dụng thiết bị di động Người dùng sau download tập tin JAR chứa ứng dụng thiết bị di động Trong hầu hết điện thoại di động, có ba cách để download ứng dụng: * Kết nối cáp liệu từ PC sang cổng liệu điện thoại di động: Việc yêu cầu người dùng phải có tập tin JAR thật phần mềm truyền thông để download ứng dụng sang thiết bị thông qua cáp liệu * Cổng hồng ngoại IR (Infra Red) Port: Việc yêu cầu người dùng phải có tập tin JAR thật phần mềm truyền thông để download ứng dụng sang thiết bị thông qua cổng hồng ngoại * OTA (Over the Air): Sử dụng phương thức này, người dùng phải biết địa URL đến tập tin JAR Trên thiết bị di động: Bộ tiền kiểm tra: Kiểm tra mã bytecode Bộ tiền kiểm tra kiểm tra tất lớp có thuộc tính hợp lệ thêm vào tiền kiểm tra trạm phát triển ứng dụng Nếu tiến trình tiền kiểm tra thất bại ứng dụng khơng download thiết bị di động Bộ quản lý ứng dụng: Lưu trữ chương trình Bộ quản lý ứng dụng thiết bị di động lưu trữ chương trình thiết bị di động Bộ quản lý ứng dụng điều khiển trạng thái ứng dụng thời gian thực thi tạm dừng ứng dụng có gọi tin nhắn đến Người dùng: Thực thi ứng dụng Bộ quản lý ứng dụng chuyển ứng dụng cho KVM để chạy thiết bị di động KVM: Thực thi mã bytecode chương trình chạy KVM dịch mã bytecode sang ngơn ngữ máy thiết bị di động để chạy Tầng CLDC (Connected Limited Device Configuration) Tầng J2ME kế tầng KVM CLDC hay Cấu hình thiết bị kết nối giới hạn Mục đích tầng cung cấp tập tối thiểu thư viện cho phép ứng dụng Java chạy thiết bị di động Nó cung cấp sở cho tầng Hiện trạng, tầng chứa nhiều API chuyên biệt Các CLDC API định nghĩa với hợp tác với 18 công ty phận JCP (Java Community Process) Nhóm giúp bảo đảm API định nghĩa hữu dụng thiết thực cho nhà phát triển lẫn nhà sản xuất thiết bị di động Các đặc tả JCP gán số JSR (Java Specification Request) Quy định CLDC phiên 1.0 gán số JSR - 30 2.a CLDC – Connected Limited Device Configuration Phạm vi: Định nghĩa thư viện tối thiểu API Định nghĩa: * * * * * * Tương thích ngơn ngữ JVM Các thư viện lõi I/O Mạng Bảo mật Quốc tế hóa Khơng định nghĩa: * * * * Chu kỳ sống ứng dụng Giao diện người dùng Quản lý kiện Giao diện ứng dụng người dùng Các lớp lõi Java bản, input/output, mạng, bảo mật định nghĩa CLDC Các API hữu dụng giao diện người dùng quản lý kiện dành cho trạng MIDP J2ME phiên thu nhỏ J2SE, sử dụng nhớ để thích hợp với thiết bị di động bị giới hạn nhớ Mục tiêu J2ME tập 100% tương thích J2SE Hình biểu diễn mối liên hệ J2SE J2ME (CDC, CLDC) 2.b Sự khác J2ME J2SE Các điểm khác hai lý Do lớp Java bị bỏ để giảm kích thước J2ME lớp bị bỏ ảnh hưởng đến an toàn, bảo mật thiết bị di động hay ứng dụng khác thiết bị di động (có thể dẫn đến phát triển virus) Điểm khác biệt khơng có phép tốn số thực Khơng có JNI (JavaNative Interface Support) bạn khơng thể truy xuất chương trình khác viết ngôn ngữ thiết bị (như C hay C++) Tuyến đoạn (thread) cho phép khơng có nhóm tuyến đoạn (thread group) daemon thread CLDC định nghĩa mơ hình an tồn, bảo mật thiết kế để bảo vệ thiết bị di động, KVM, ứng dụng khác khỏi mã phá hoại Hai phận định nghĩa CLDC tiền kiểm tra mơ hình sandbox Hình biểu diễn cách mà tiền kiểm tra kiểm tra làm việc với để kiểm tra mã chương trình Java trước chuyển cho KVM Như đề cập trước đây, tập tin lớp gán nhãn thuộc tính máy trạm nhà phát triển Thuộc tính sau kiểm tra tiền kiểm tra trước mã chương trình giao cho KVM hay biên dịch mã bytecode Một phận khác bảo mật CLDC mơ hình sandbox Hình biểu diễn khái niệm mơ hình sandbox Hình cho thấy ứng dụng J2ME đặt sandbox có nghĩa bị giới hạn truy xuất đến tài nguyên thiết bị không truy xuất đến Máy ảo Java hay nạp chương trình Ứng dụng truy xuất đến API CLDC MIDP Ứng dụng truy xuất tài nguyên thiết bị di động (các cổng, âm thanh, rung, báo hiệu,…) nhà sản xuất điện thoại di động cung cấp API tương ứng Tuy nhiên, API phần J2ME Thế hệ CLDC đặc tả JSR - 139 gọi CLDC hệ (Next Generation) Nó nhắm đến vấn đề nâng cao việc quản lý lỗi phép tốn số thực MIDP (Mobile Information Device Profile) Tầng J2ME cao tầng trạng mục đích định nghĩa API cho thiết bị di động Một thiết bị di động hỗ trợ nhiều trạng Một trạng áp đặt thêm giới hạn loại thiết bị di động (như nhiều nhớ hay độ phân giải hình cao hơn) Hiện trạng tập API hữu dụng cho ứng dụng cụ thể Lập trình viên viết ứng dụng cho trạng cụ thể khơng cần quan tâm đến chạy thiết bị Hiện trạng công bố MIDP (Mobile Information Profile) với đặc tả JSR 37 Có 22 cơng ty thành viên nhóm chun gia tạo chuẩn MIDP MIDP cung cấp API cho phép thay đổi trạng thái chu kỳ sống ứng dụng, đồ họa (mức cao mức thấp), tuyến đoạn, timer, lưu trữ bền vững (persistent storage), mạng Nó khơng định nghĩa cách mà ứng dụng nạp thiết bị di động Đó trách nhiệm nhà sản xuất Nó khơng định nghĩa loại mơ hình bảo mật end-to-end nào, vốn cần thiết cho ứng dụng kinh doanh nhận số thẻ tín dụng người dùng Nó khơng bắt buộc nhà sản xuất cách mà lớp MIDP thực Từng bước lập trình cho điện thoại di động J2ME - Phần 1/ MIDlet Các ứng dụng J2ME gọi MIDlet (Mobile Information Device applet) Hình MIDlet Thơng báo import dùng để truy xuất lớp CLDC MIDP Lớp ứng dụng định nghĩa lớp kế thừa lớp MIDlet MIDP Có thể có lớp ứng dụng kế thừa lớp Lớp MIDlet trình quản lý ứng dụng điện thoại di động dùng để khởi động, dừng, tạm dừng MIDlet (ví dụ, trường hợp có gọi đến) 1.1 Bộ khung MIDlet (MIDlet Skeleton) Một MIDlet lớp Java kế thừa (extend) lớp trừu tượng java.microedition.midlet.MIDlet thực thi (implement) phương thức startApp(), pauseApp(), destroyApp() Hình biểu diễn khung yêu cầu tối thiểu cho ứng dụng MIDlet 1) Phát biểu import Các phát biểu import dùng để include lớp cần thiết từ thư viện CLDC MIDP 2) Phần MIDlet MIDlet định nghĩa lớp kế thừa lớp MIDlet Trong ví dụ MIDletExample bắt đầu ứng dụng 3) Hàm tạo (Constructor) Hàm tạo thực thi lần MIDlet khởi tạo lần Hàm tạo không gọi lại MIDlet sau khởi động lại 4) startApp() Phương thức startApp() gọi quản lý ứng dụng MIDlet khởi tạo, MIDlet trở từ trạng thái tạm dừng Nói chung, biến tồn cục khởi tạo lại trừ hàm tạo biến giải phóng hàm pauseApp() Nếu khơng chúng không khởi tạo lại ứng dụng 5) pauseApp() Phương thức pauseApp() gọi quản lý ứng dụng ứng dụng cần tạm dừng (ví dụ, trường hợp có gọi tin nhắn đến) Cách thích hợp để sử dụng pauseApp() giải phóng tài nguyên biến để dành cho chức khác điện thoại MIDlet tạm dừng Cần ý nhận gọi đến hệ điều hành điện thoại di động dừng KVM thay dừng MIDlet Việc khơng đề cập MIDP mà nhà sản xuất định chọn cách 6) destroyApp() Phương thức destroyApp() gọi thoát MIDlet (ví dụ nhấn nút exit ứng dụng) Nó đơn MIDlet Nó khơng thật xóa ứng dụng khỏi điện thoại di động Phương thức destroyApp() nhận tham số Boolean Nếu tham số true, MIDlet tắt vô điều kiện Nếu tham số false, MIDlet có thêm tùy chọn từ chối thoát cách ném ngoại lệ MIDletStateChangeException Tóm tắt trạng thái khác MIDlet: Tạo (Created) ð Hàm tạo MIDletExample() gọi một lần Hoạt động (Active) ð Phương thức startApp() gọi chương trình bắt đầu hay sau tạm dừng Tạm dừng (Paused) ð Phương thức pauseApp() gọi Có thể nhận kiện timer Hủy (Destroyed) ð Phương thức destroy() gọi 1.2 Chu kỳ sống MIDlet (MIDlet lifecycle) Hình biểu diễn chu kỳ sống MIDlet Khi người dùng yêu cầu khởi động ứng dụng MIDlet, quản lý ứng dụng thực thi MIDlet (thông qua lớp MIDlet) Khi ứng dụng thực thi, xem trạng thái tạm dừng Bộ quản lý ứng dụng gọi hàm tạo hàm startApp() Hàm startApp() gọi nhiều lần suốt chu kỳ sống ứng dụng Hàm destroyApp() gọi từ trạng thái hoạt động hay tạm dừng Lập trình viên điều khiển trạng thái MIDlet Các phương thức dùng để điều khiển trạng thái MIDlet: resumeRequest(): Yêu cầu vào chế độ hoạt động Ví dụ: Khi MIDlet tạm dừng, kiện timer xuất notifyPaused(): Cho biết MIDlet tự nguyện chuyển sang trạng thái tạm dừng Ví dụ: Khi đợi kiện timer notifyDestroyed(): Sẵn sàng để hủy Ví dụ: Xử lý nút nhấn Exit Lập trình viên yêu cầu tạm dừng MIDlet đợi kiện timer hết hạn Trong trường hợp này, phương thức notifyPaused() dùng để yêu cầu quản lý ứng dụng chuyển ứng dụng sang trạng thái tạm dừng 1.3 Tập tin JAR Các lớp biên dịch ứng dụng MIDlet đóng gói tập tin JAR (Java Archive File) Đây tập tin JAR download xuống điện thoại di động Tập tin JAR chứa tất tập tin class từ hay nhiều MIDlet, tài nguyên cần thiết Hiện tại, MIDP hỗ trợ định dạng hình png (Portable Network Graphics) Tập tin JAR chứa tập tin kê khai (manifest file) mô tả nội dung MIDlet cho quản lý ứng dụng Nó phải chứa tập tin liệu mà MIDlet cần Tập tin JAR tồn ứng dụng MIDlet MIDlet load triệu gọi phương thức từ lớp tập tin JAR, MIDP, hay CLDC Nó khơng thể truy xuất lớp khơng phải phận tập tin JAR hay vùng dùng chung thiết bị di động 1.4 Tập tin kê khai (manifest) tập tin JAD hướng nhiều tính khả chuyển Bằng cách này, Sun đảm nhận tốn lớn tính đa dạng thiết bị mức tổng quát, nhà phát triển quan tâm đến vấn đề Nếu nhà cung cấp PDA, điện thoại máy nhắn tin thực J2ME cho thiết bị họ, có khả viết chương trình “viết lần, chạy nơi” (write once, run anywhere) lĩnh vực micro, giống ta quen với khái niệm hệ thống máy lớn Hiện trạng thiết bị thông tin di động (Mobile Information Device Profile) Mặc dù có hướng kiến trúc J2ME, thiết bị di động không dây dường quan tâm đến J2ME Bao gồm: * * * * * Điện thoại di động Trợ tá cá nhân số (Personal Digital Assistant-PDA) Máy nhắn tin Thiết bị đọc sách điện tử Các thiết bị point-of-sale J2ME tổ chức thành mức, mức xác định định nghĩa tăng dần thiết bị đích Có nhiều lựa chọn kiến trúc tồn mức, ràng buộc tùy chọn mức cao Lập trình viên cần quan tâm đến trạng (profile), định nghĩa API; nhà thực J2ME cho thiết bị cần tập trung đến mức VM (Virtual Machine) Hình Các mức tổ chức J2ME Các đặc tả cho thiết bị không dây Connected Limited Device Configuration hay CLDC, Mobile Information Device Profile hay MIDP MIDP định nghĩa đặc tính tối thiểu thiết bị sau: * Bộ nhớ khơng bay có dung lượng 128K (nghĩa là, nhớ có trạng thái giữ lại thiết bị tắt) dành cho thành phần MIDP, bao gồm KVM, Core API chương trình MIDP * 8K nhớ không bay dành cho liệu bền vững ứng dụng * 32K nhớ bay cho nhớ chương trình * Màn hình hiển thị 96x54 pixel, bit màu hay hỗ trợ nhiều màu màu mức xám * Cơ chế nhập liệu hỗ trợ phím số, hình cảm ứng có khả cấu hình hỗ trợ nhập liệu số * Khả kết nối mạng không dây hai chiều, với băng thông hạn chế thông thường không liên tục Như thiết bị hỗ trợ MIDP cung cấp tảng chuẩn cho phần mềm Java: Hình Triển khai hệ thống J2ME Các kiểu ứng dụng MIDP Các ứng dụng MIDP gọi MIDlet Hầu hết MIDlet hai dạng sau: Ứng dụng đơn (standalone application) nạp hoàn toàn vào thiết bị chạy lúc thiết bị mở, khơng u cầu tài ngun bên ngồi Loại bao gồm: * Các ứng dụng PDA ứng dụng organizer sổ địa chỉ, danh sách công việc lịch hẹn * Các công cụ đơn giản máy làm tính (calculator) * Trị chơi Ứng dụng nối mạng (networked application) chia thành hai thành phần, thành phần client triển khai thiết bị di động Thành phần dùng khơng có kết nối đến server hệ thống Server thường đặt môi trường J2EE, phục vụ Web giao thức Internet khác Ở đây, ta xét kỹ thuật ngữ client Ta không gọi MIDlet client đơn giản sử dụng kết nối mạng MIDP liên lạc đến thành phần khác Câu hỏi phần luận lý lõi ứng dụng đặt đâu? MIDlet có đảm nhận hầu hết việc “suy nghĩ” quan tâm đến mạng hay khơng? Đó khơng phải client, – không theo nghĩa ngữ cảnh hệ thống enterprise Một client MIDlet dựa vào server để suy nghĩ, lưu trữ, tải, xử lý, hay nói cách khác làm việc thay cho Java Enterprise Edition Các MIDlet client khơng u cầu phải kết nối đến server chạy Java Một MIDlet viết để tạo HTTP request đến trang web có từ trước, khơng cần quan tâm trang web hỗ trợ ASP IIS, hay servlet Apache/Tomcat, Tuy nhiên, thực tế, toàn hệ thống phân tán phát triển mới, Java nên dùng mức Phiên Java doanh nghiệp, Java Enterprise Edition, hay J2EE – tập chuẩn để áp dụng công nghệ Java cho hoạt động “loại doanh nghiệp (enterpriseclass)”, ví dụ như: * * * * * * Dịch vụ HTTP, bao gồm ứng dụng Web dịch vụ Web (Web service) Lưu trữ lấy liệu từ sở liệu quan hệ Xử lý giao tác trực tuyến Thực đối tượng phân tán (bằng CORBA) Truyền thông điệp tin cậy server tiến trình Xử lý tài liệu XML Ta xét thuật ngữ Enterprise software (phần mềm doanh nghiệp) Đây thuật ngữ định nghĩa không chặt Nói chung, ta định nghĩa hệ thống mức doanh nghiệp yêu cầu nhu cầu thực thi * Trong lĩnh vực mức nào, hệ thống doanh nghiệp thường phải chịu áp lực cao: xử lý hay lưu trữ nhiều liệu, xử lý nhiều yêu cầu, thường thường xuyên, nhiều cơng việc phải làm cho client Hệ thống phải có khả nâng cấp, phải hoạt động có hiệu áp lực cao * Hệ thống phải có tính sẵn sàng (available) * Quản lý liệu ứng dụng phải thỏa mãn tất tính chất giao tác ACID: atomicity (tính ngun tử), consistency (tính tồn vẹn), isolation (tính tách biệt), durability (tính bền vững) Nói chung, điều có nghĩa server phải hỗ trợ chuẩn tin cậy cao việc xử lý liệu * Các chức liệu ứng dụng phải an toàn (secure): điều bao gồm cần phải có xác thực, sách cấp quyền * Truyền thông điệp thành phần phải đáng tin cậy (reliable) – điều giống tính ACID giao tác, ta áp dụng cho thông điệp ứng dụng Kiến trúc Ba-tầng (Three-tier) Một ứng dụng J2EE nên thực theo kiến trúc ba tầng (three-tier architecture), phân chia rõ ràng trách nhiệm cho tầng khác mơ hình ứng dụng Hình Kiến trúc three-tier * Tầng trình diễn (presentation tier) đảm nhận phần biểu diễn thông tin đến server thu thập liệu nhập người dùng Nó khơng biết khơng quan tâm đến cách mà thông tin phát sinh, biết số điều “hình dạng (shape)” thông tin * Tầng luận lý nghiệp vụ (business logic tier) (hay đơi cịn gọi “domain”, hay đơn giản “tầng (middle tier)” đảm nhận chức lõi ứng dụng: tính hàm để biên dịch hay thay đổi liệu, luật phải áp dụng cho liệu thay đổi Tầng cung cấp cho tầng trình diễn trước nó, phương tiện cho việc lưu trữ nhận liệu tầng sau * Tầng persistent quản lý lưu trữ bền vững lấy liệu ứng dụng Tầng bao gồm mã chương trình cộng với hệ quản trị sở liệu quan hệ Mơ hình mẫu biểu diễn Hình 4: Hình Mơ hình mẫu kiến trúc three-tier * JavaServer page servlet, quản lý Web server J2EE, xác định tầng trình diễn – giao diện server quản lý * Một lớp xác định Enterprise JavaBean gọi session bean thực logic nghiệp vụ * JDBC loại khác EJB, entity bean, quản lý liệu RDBMS Tuy nhiên client không dây (wireless client) dạng client đặc biệt Nó cần phải server phục vụ đặc biệt: liệu phải xử lý đặc biệt cho loại client Hỗ trợ thiết bị MIDP thông qua tầng môi giới (Mediation) Việc chuẩn bị đặc biệt liệu từ tầng dạng trình diễn đặc biệt gọi môi giới (mediation) Tầng môi giới (mediator tier) tính thơng thường hệ thống N-tầng, thường triển khai để hỗ trợ việc dùng nhiều khung (framework) trình diễn khác cho tầng domain Hình Vị trí tầng mơi giới Đối với MIDP client, môi giới thường dạng gateway, biên dịch nội dung mức PC sang nội dung mức micro, xử lý chuyển đổi giao thức, ví dụ như: * Nội dung HTML biên dịch thành Wireless Markup Language, hay WML * Giao thức chuyển từ HTTP sang Wireless Application Protocol hay WAP * Các datagram không cung cấp User Datagram Protocol (UDP) mà Wireless Datagram Protocol hay WDP Kiến trúc cuối hai biến thể kiến trúc N-tầng kiến trúc J2EE mà ta thấy * Mediation domain: Hình Mơi giới tầng domain * Mediation/Translation tầng trình diễn: Hình Mơi giới tầng trình diễn MIDP client dựa nhiều vào phần mềm J2EE gateway hay tầng mơi giới để đơn giản hóa hay định dạng nội dung cho việc trình diễn xử lý người dùng di động Các dịch vụ Web (Web service) Ứng dụng Web chia sẻ với dịch vụ Web, thành phần cung cấp truy xuất programmatic trực tiếp đến tầng business/domain, sử dụng giao thức Web để chấp nhận phục vụ yêu cầu Hình Dịch vụ Web Các MIDlet client dịch vụ Web, cần phải có mơi giới Có hai nỗ lực đế hỗ trợ MIDP truy xuất dịch vụ Web: * Một tập Java API for XML Processing đưa vào MIDP 2.0 API * Một đặc tả Web-service gateway phát triển, tránh việc xử lý XML MIDlet Từng bước lập trình cho điện thoại di động J2ME - Phần Lập trình Web Service với MIDP Lập trình mạng MIDP HTTP client Khái quát Đặc tả MIDP 1.0 phát biểu triển khai MIDP thiết bị di động bắt buộc phải hỗ trợ kết nối HTTP 1.1 sử dụng khung kết nối chung (GCF – Generic Connection Framework) Sử dụng kết nối client HTTP 1.1 nghĩa thiết bị gởi yêu cầu (request) server gởi hồi đáp (response) tương ứng Hình HTTP client request-response Bằng cách dùng kết nối HTTP client nghĩa server thiết lập liên lạc với thiết bị ngoại trừ cách hồi đáp request Một MIDlet HTTP client thông thường dùng hai phương thức HTTP GET POST Đặc tả MIDP 2.0 phát biểu HTTP HTTPS bắt buộc phải hỗ trợ Thân thông điệp HTTP Thông tin gởi thân thông điệp HTTP request response đơn giản luồng byte MIDlet servlet chọn kiểu định dạng thông tin để mã hóa byte Thân thơng điệp SOAP/HTTP Các điểm cuối dịch vụ Web dựa SOAP trao đổi thông điệp SOAP với HTTP chế mặc định dùng để truyền thông điệp SOAP Thông điệp SOAP chứa liệu theo định dạng XML Thơng điệp XML dùng UTF-8 hay UTF-16 để làm bảng mã mã hóa Khái quát dịch vụ Web (Web service), SOAP WSDL Thuật ngữ “Dịch vụ Web” (Web service) nói đến truyền thơng ứng dụng-đến-ứng dụng (application-to-application) Một dịch vụ Web đơn giản dịch vụ Internet có khả truy xuất thông qua giao diện theo khuôn dạng sử dụng giao thức Internet chuẩn HTTP World Wide Web Consortium (W3C) định nghĩa dịch vụ Web sau: Một dịch vụ Web hệ thống phần mềm nhận dạng URI (Uniform Resource Identifier), mà giao diện chung gắn kết định nghĩa mô tả XML Định nghĩa nhận hệ thống phần mềm khác Các hệ thống sau tương tác với dịch vụ Web theo phương cách mơ tả định nghĩa nó, sử dụng thông điệp theo XML chuyển giao thức Internet Hai đặc tả quan trọng dịch vụ Web Ngôn ngữ mô tả dịch vụ Web (Web Services Description Language – WSDL) Giao thức truy xuất đối tượng đơn giản (Simple Object Access Protocol – SOAP) WSDL dùng để mô tả dịch vụ Web triển khai SOAP dùng để định nghĩa định dạng thông điệp trao đổi điểm cuối (thí dụ client server) dịch vụ Web suốt trình hoạt động dịch vụ Web Một dịch vụ Web tự đăng ký nơi đăng ký thích hợp (ví dụ cách cung cấp mơ tả WSDL nó) để client nhận Các tiến trình gọi trình đăng ký nhận biết dịch vụ Java, Web service SOAP Lĩnh vực dịch vụ Web phát triển nhanh chóng Tại thời điểm Ủy ban công nghệ Java (Java Techonology Community) xây dựng phiên Java API cho RPC dựa XML (Java API for XML-based RPC – JAXRPC) cho J2SE Một gói tùy chọn cho dịch vụ Web J2ME xây dựng Đặc tả MIDP 1.0 MIDP 2.0 không xác định hỗ trợ cho XML hay SOAP Các nhà phát triển MIDP muốn sử dụng XML hay SOAP thường phải sử dụng thư viện bên Điều bất lợi MIDlet phải chứa thư viện Các thư viện thường khoảng 25 đến 50 KB (kích thước file class) Điều có khả làm giảm không gian cho ứng dụng MIDlet Luận án phát triển thư viện mở KXML KSOAP Một vài thư viện XML SOAP khác nhắm đến thiết bị J2ME dễ dàng tìm thấy, sử dụng theo phương cách tương tự Tối ưu hóa truyền thông Client/Server cho ứng dụng di động Ứng dụng di động client/server Ngoài ứng dụng chạy đơn thiết bị di động không cần tương tác với tài ngun bên ngồi, cịn có nhu cầu mơi trường phân tán với client có nhu cầu liên lạc với server sử dụng kết nối IP Ta xét số vấn đề điển hình liên lạc client/server phát sinh q trình kết nối Java Platform, Enterprise Edition (J2EE), tảng server MIDlet Tiếp theo so sánh giao thức khác nhau, dùng để phát triển loại ứng dụng phân tán Ngồi ra, lập trình viên sử dụng thêm tầng trừu tượng giao thức chuyển vận, dựa HTTP, ứng dụng để xây dựng kiến trúc linh động tối ưu hóa Với cách tiếp cận này, giao thức chuyển vận chọn chuyển đổi tương đối dễ dàng mà không cần phải hiệu chỉnh logic ứng dụng Ở ta dùng proxy servlet để nâng cao hiệu ứng dụng di động client/server Trên thực tế, vô số ứng dụng Mobile Information Device Profile (MIDP) không chạy thiết bị di động, mà có truy xuất đến server, thể ứng dụng phân tán Nhiều ứng dụng di động thật hoạt động kết nối đến server Kết nối “ln ln mở (always on)” hay mở ứng dụng cần liên lạc với server Sử dụng cách tiếp cận phân tán, ứng dụng di động truy xuất đến sở liệu ngoại, cơng việc q phức tạp khả hạn chế thiết bị MIDP chuyển đến cho server mạnh Do đó, lời giải cho ứng dụng di động doanh nghiệp thực thơng qua tương tác J2EE Java Platform, Micro Edition (J2ME) Tuy nhiên, trình trao đổi liệu server client di động, cần phải quan tâm đến vấn đề liên quan, đặc biệt vấn đề liên quan đến hiệu suất truyền tải xử lý liệu thiết bị Đối với giải pháp doanh nghiệp dựa công nghệ J2ME, cần phải quan tâm đến hạn chế kết nối mạng tài nguyên thiết bị, không giống môi trường thông thường máy tính cá nhân với kết nối mạng cố định Điều có nghĩa nhà phát triển nên lường trước khoảng thời gian trễ dài băng thông hạn chế Hơn nữa, tình khơng nên cho thiết bị di động ln ln có kết nối Về tài ngun, ta phải đối mặt với vấn đề khả tính toán hạn chế với khả lưu trữ tương đối thiết bị Do đó, trước phát triển ứng dụng phân tán cho client di động, ta cần phải xem xét kỹ yếu tố trước chọn giao thức, định có ảnh hưởng lớn đến hiệu suất ứng dụng HTTP giao thức liên lạc client/server lý tưởng cho ứng dụng Java di động Đối với đặc tả, thiết bị tương thích MIDP 1.0 phải hỗ trợ HTTP Các giao thức khác TCP hay UDP tùy chọn Bởi khơng phải tất thiết bị MIDP hỗ trợ truyền thông socket hay datagram, triển khai HTTP thiết bị di động cho phép tối ưu khả chuyển đổi thiết bị từ nhà sản xuất khác Mặc dù số thiết bị, Nokia 6800 hỗ trợ kết nối socket, để tương thích tối đa, nên sử dụng HTTP làm giao thức trao đổi client server Một lợi điểm khác giao thức HTTP hưởng truy xuất không lỗi (troublefree access) thông qua tường lửa Bởi server client di động tách biệt firewall, HTTP không cần phải cấu hình thêm Mặc dù vậy, ta nên qua tâm đến rủi ro bảo mật có mở kết nối HTTP giới bên ngồi Java cung cấp API lập trình mạng, hỗ trợ giao thức HTTP 1.1 Ta dễ dàng tạo request GET, POST, HEAD ứng dụng Java Các loại giao thức khác Bây ta chọn HTTP làm giao thức chuyển vận, vai trò người phát triển phải định định dạng thông điệp để trao đổi liệu server client Nền tảng J2ME không đưa chế chuẩn hóa Java Remote Method Invocation (RMI) Java API for XML-based Remote Procedure Call (JAX-RPC) (vốn tốn tài nguyên), người phát triển phải tự định nghĩa định dạng lớp truyền thông lớp chuyển vận HTTP Có nhiều lựa chọn, ta xem xét chi tiết Chủ yếu có hai cách định nghĩa định dạng thông điệp: Một định dạng nhị phân, tối ưu hóa để bảo đảm hiệu suất cao Hai định dạng phức tạp dựa XML, ví dụ SOAP, cung cấp khả đọc khả chuyển cao, hiệu suất kém, đặc biệt với thiết bị di động với băng thông tốc độ xử lý hạn chế Người phát triển phải đối mặt với thử thách phải lựa chọn giải pháp tốt cho ứng dụng Về bản, kích thước giao thức tăng tương ứng với khả tự mơ tả, làm giảm hiệu truyền thông mạng điện thoại di động băng thơng hẹp Tăng khả human-readability, đồng thời gia tăng định dạng dựa XML, hiệu suất tính tốn để phát sinh phân tích thơng điệp đến Hình Biểu đồ so sánh giao thức liên lạc khác Định dạng nhị phân độc quyền (Proprietary Binary Format) Định dạng có khả linh động cao phát sinh cách dễ dàng Từng bước lập trình cho DTDD J2ME - Phần Các vấn đề thiết kế ứng dụng Enterprise không dây áp dụng công nghệ Java Mơ hình lập trình Hình biểu diễn cấu trúc tổng quát ứng dụng enterprise khơng dây điển hình, bao gồm thiết bị J2ME server J2EE Find best mobile with best price www.thongtinmobile.com Hình Kiến trúc mức cao ứng dụng enterprise Java không dây Kiến trúc ứng dụng enterprise phục vụ client không dây tương tự ứng dụng J2EE chuẩn: Một client ứng dụng sử dụng MIDP hay gọi MIDlet client, cung cấp giao diện người dùng thiết bị di động MIDlet giao tiếp với Java servlet, thường thông qua HTTP, kênh truyền bảo mật cần thiết Servlet dịch yêu cầu từ MIDlet, tới lượt nó, gởi yêu cầu đến thành phần EJB Khi yêu cầu thỏa mãn, servlet phát sinh hồi đáp cho MIDlet Các thành phần EJB, hay enterprise beans, bao bọc logic nghiệp vụ ứng dụng Một trình chứa EJB cung cấp dịch vụ chuẩn giao tác, bảo mật, quản lý tài nguyên để nhà phát triển tập trung vào việc thực logic nghiệp vụ Các thành phần servlet EJB sử dụng API bổ sung để truy xuất liệu dịch vụ Ví dụ, chúng sử dụng JDBC API để truy xuất sở liệu quan hệ, hay JavaMail API để gởi e-mail cho người dùng Hỗ trợ nhiều loại client Nền tảng J2EE nhấn mạnh vào thành phần tái sử dụng Ứng dụng dùng thành phần để hỗ trợ nhiều loại client mà khơng (hay ít) ảnh hưởng đến logic nghiệp vụ ứng dụng Hình biểu diễn kiến trúc ứng dụng với client J2ME client trình duyệt Hình Kiến trúc mức cao ứng dụng J2EE hỗ trợ client J2ME client trình duyệt Find best mobile with best price www.thongtinmobile.com Các vấn đề thiết kế thực Ta xem xét số vấn đề thiết kế thực ứng dụng enterprise không dây Xây dựng ứng dụng khơng dây có ràng buộc đặc thù Và thiết kế ứng dụng không dây, ta gặp phải ba vấn đề sau: ràng buộc thiết kế (design constraint), thơng điệp (messaging), trình diễn (presentation) Ràng buộc thiết kế (Design Constraint) Hạn chế thiết bị di động dẫn đến nhiều ràng buộc thiết kế ứng dụng không dây Các ứng dụng phải cung cấp giao diện có ích tiện lợi phải đối mặt với kích thước hình, khả nhập liệu, sức mạnh xử lý, nhớ, lưu trữ, thời gian sử dụng nguồn pin bị hạn chế Nhất ứng dụng enterprise không dây bị ràng buộc, chúng dựa vào mạng Các hạn chế mạng di động ảnh hưởng đến ứng dụng di động nhiều so với trình duyệt Web thơng thường Nói chung, thiết bị di động gặp phải vấn đề sau: Độ trễ cao Băng thông hạn chế Kết nối không liên tục Để giải ràng buộc này, client MIDP sử dụng cách sau: Chỉ kết nối vào mạng cần thiết Chỉ sử dụng liệu mức cần thiết Phải có khả sử dụng ngắt kết nối Truyền thông điệp Mặc dù MIDP khơng có chế truyền thơng client/server phức tạp, Java Remote Method Invocation (RMI) hay Java API for XML-based Remote Procedure Calls (JAX-RPC), nhà phát triển thiết kế giao thức truyền thơng điệp sử dụng định dạng cách trao đổi theo ý Đối với hầu hết ứng dụng, HTTP xứng đáng giao thức truyền thông điệp bản, ưa chuộng so với phương thức truyền thơng khác (ví dụ dựa socket hay datagram) lý sau đây: Tất thiết bị MIDP phải hỗ trợ lập trình mạng MIDP Do đó, ứng dụng dựa vào HTTP có tính khả chuyển thiết bị khác Mặt khác, tất thiết bị MIDP hỗ trợ truyền thông dựa packet hay datagram, ứng dụng sử dụng phương thức khơng bảo đảm tính khả chuyển HTTP có khả bảo mật tường lửa (firewall) Hầu hết server tách biệt khỏi client di động firewall, HTTP số giao thức mà hầu hết firewall cho phép qua Các API lập trình mạng Java làm cho lập trình HTTP dễ dàng MIDP hỗ trợ HTTP 1.1 API để phát sinh GET, POST HEAD request, thao tác header bản, chế luồng cho thơng điệp Trong đó, API cho Java servlet, cung cấp khả xử lý HTTP request sinh HTTP response mạnh Khi MIDP client liên lạc với Java servlet việc sau xảy ra: Client mã hóa application request đóng gói vào HTTP request Các Content-Type Content-Length header phải thiết lập để bảo đảm gateway trung gian xử lý request đắn Servlet nhận HTTP request giải mã application request Server hay thành phần khác (ví dụ enterprise bean) thực cơng việc xác định application request Servlet mã hóa application response đóng gói vào HTTP response Content-Type Content-Length header phải thiết lập để bảo đảm gateway trung gian xử lý response đắn Client nhận HTTP response giải mã application response chứa Client thiết lập nhiều đối tượng thực số công việc đối tượng cục Thiết kế định dạng thông điệp (Message Format) Cách định dạng application request response tùy thuộc vào lập trình viên Các lựa chọn rơi vào hai cách sau: Một cách dùng định dạng nhị phân Các thông điệp nhị phân đọc ghi sử dụng lớp DataInputStream DataOutputStream gói java.io Trên thực tế, sử dụng thông điệp đạt hiệu trao đổi tải rút gọn Chú ý để tiết kiệm không gian, thông điệp phải thỏa mãn tính tự miêu tả (self-descriptive) Do đó, định dạng thông điệp phải biết client server, chúng gắn chặt với Cách khác sử dụng Extensible Markup Language (XML) Trong tảng J2EE cung cấp nhiều hỗ trợ cho XML (đặc biệt Web service), đặc tả MIDP không yêu cầu hỗ trợ XML, nhà phát triển thêm hỗ trợ XML vào ứng dụng MIDP cách kết hợp thư viện bổ sung Để phân tích xử lý tài liệu XML, nhà phát triển lựa chọn nhiều cách thực hiện, bao gồm hai mơ hình xử lý phổ biến, Document Object Model (DOM) Simple API for XML (SAX) (SAX phân tích dựa kiện khác thích hợp DOM áp dụng cho thiết bị di động với nhớ tốc độ xử lý bị hạn chế) Các thư viện RPC dựa XML cung cấp, bao gồm phân tích dựa đặc tả Simple Access Object Protocol (SOAP) Tuy nhiên sử dụng định dạng XML, ngồi việc chi phí cho kích thước băng thơng, cịn có chi phí khơng nhỏ nhớ, xử lý lưu trữ Liên quan đến truyền thông điệp, ta có vấn đề sau: Liên lạc an tồn (Communicating Securely) Các client MIDP dựa vào số chế giống chế dùng để hỗ trợ liên lạc an toàn ứng dụng J2EE client trình duyệt Web Server ứng dụng J2EE nhiều thiết bị MIDP hỗ trợ HTTP Secure Sockets Layer (SSL) Các thiết bị MIDP sử dụng secure HTTP để xác thực với server tiến hành trao đổi an tồn với server Khung kết nối tổng quát (Generic Connection Framework) MIDP cho phép người lập trình mở kết nối secure HTTP đơn giản cách gọi phương thức Connector.open() với URL bắt đầu https Để xác thực phía client, MIDP client dựa vào việc xác nhận ứng dụng quản lý, dựa vào chế tự đăng ký Nói cách khác, MIDP client gởi thơng tin ủy nhiệm (ví dụ tên đăng nhập mật khẩu) đến ứng dụng J2EE, ứng dụng xác nhận thơng tin này, cách sử dụng sở liệu Quản lý giao tác Nền tảng J2EE hỗ trợ giao tác theo nhiều cách Các nhà phát triển quản lý giao tác cách thủ công sử dụng Java Transaction API, dựa vào server J2EE để quản lý giao tác cách tự động Enterprise bean thơng thường có thực giao tác, thành phần nghiệp vụ tầng Web thực giao tác Khi thiết kế MIDP client, nhà phát triển nên quan tâm đến việc giao tác trải qua nhiều HTTP request (Các client trình duyệt bị ảnh hưởng giới hạn này) Nếu request xác định hoạt động yêu cầu giao tác, hoạt động xử lý đơn vị nguyên tử; trước trả response, tất hoạt động thực hiện, khơng có hoạt động thực Do đó, MIDP client muốn hồn lại request, khơng thể đưa rollback request kế tiếp, request nằm ngữ cảnh giao tác khác Thay vào đó, ứng dụng phải sử dụng giao tác bù (compensating transaction) để hồn lại request Quản lý lỗi Khi server J2EE thực request cho MIDP client, cần phải thơng báo điều cho client Mặc dù chương trình server sử dụng chế quản lý ngoại lệ Java để xử lý lỗi cục bộ, khơng thể sử dụng chế để thông báo lỗi cho MIDP client liên lạc mạng Nói cách khác, lập trình viên khơng thể cài đặt khối try-catch mã client để bắt trực tiếp ngoại lệ ném từ server Thay vào đó, họ phải tổ chức chế thông báo lỗi vào giao thức truyền thông điệp họ Một cách dành phần cố định response ứng dụng cho mã trạng thái thể request ứng dụng có thành cơng hay khơng Ví dụ, sử dụng truyền thông điệp nhị phân, hai byte dành cho mã trạng thái số nguyên Khi sử dụng HTTP, nhà phát triển ứng dụng dùng mã trạng thái HTTP response để thể thành công hay thất bại mức truyền thông Ví dụ, mã trạng thái 200 (“OK”) dùng để thành công, mã trạng thái 500 (“Internal Server Error”) dùng để thất bại Các chiến lược trình diễn (presentation) Người dùng tương tác với ứng dụng tập trung trực tiếp, người dùng dàng sử dụng Điều có ý nghĩa đặc biệt định cho ứng dụng khơng dây hình hiển thị khả nhập liệu thiết bị di động bị hạn chế Các nhà phát triển sử dụng vài chiến lược để làm cho ứng dụng khơng dây có kết nối mạng tăng tính hữu dụng hơn: thực kiểm tra phía client, cung cấp biểu thị diễn tiến, cho phép ngắt hoạt động, cá nhân hóa ứng dụng Ta nghiêng cứu chiến lược Thực kiểm tra phía client Việc kiểm tra nhập liệu phía client phương thức tốt để giảm việc gọi đến server Xét form đặt hàng, có trường thơng tin thẻ tín dụng Một MIDlet khơng thể kiểm tra thơng tin được, chắn áp đặt số phương cách kiểm tra đơn giản để xác định thơng tin có hợp lệ hay khơng Ví dụ, kiểm tra tên chủ thẻ khơng thể null, số thẻ phải có đủ số Nếu liệu nhập qua bước này, client chuyển chúng đến server Server xử lý cơng việc phức tạp hơn, ví dụ kiểm tra số thẻ tín dụng có thật thuộc chủ thẻ hay không chủ thẻ cịn đủ tiền hay khơng Bằng cách thực việc kiểm tra nhập liệu phía client, MIDlet tránh việc liên lạc khơng cần thiết đến server Các MIDlet chủ động để tránh việc nhập liệu khơng hợp lệ Ví dụ giới hạn việc nhập số điện thoại cách sử dụng trường nhập ràng buộc số, số điện thoại số gởi đến server Cung cấp biểu thị diễn tiến (process indicator) Bởi hoạt động kết nối mạng tốn nhiều thời gian, ứng dụng nên cung cấp cho người dùng thông tin phản hồi diễn tiến hoạt động Ví dụ đưa hoạt hình gauge để biểu thị diễn tiến Biểu thị diễn tiến dùng cho hoạt động kéo dài, ví dụ download danh sách trường mạng Cho phép ngắt hoạt động Cho phép người dùng có khả ngắt hoạt động kéo dài giúp họ giữ việc điều khiển ứng dụng Các biểu thị diễn tiến có thêm nút nhấn ngừng Biểu thị lắng nghe kiện nút nhấn ngừng, nhấn nút ngừng hình hiển thị chuyển sang hình trước Cần ý rằng, tất hoạt động dừng Ví dụ, khơng nên dừng việc tạo tài khoản người dùng server lưu lại client Hai công việc nên thực hoạt động chung không thực hai Nếu hoạt động bị ngắt, dẫn đến khơng thống liệu client server Cá nhân hóa ứng dụng Khái niệm cá nhân hóa (personalization) khả dịch vụ thích ứng với thơng tin mà biết người dùng Thơng thường, nhiều thơng tin người dùng, chẳng hạn địa chỉ, mã ZIP, hay màu sắc ưa thích, khơng thay đổi từ phiên làm việc sang phiên làm việc khác Bởi liệu ổn định, ứng dụng dùng để cá nhân hóa việc sử dụng người dùng Việc cá nhân hóa dịch vụ có lợi hai lý sau: Nó giảm việc yêu cầu nhập liệu Người dùng chán phải nhập nhập lại thông tin lần sử dụng dịch vụ Nó rút ngắn dịng chảy cơng việc (workflow) Người dùng nhập thông tin tài khoản vào lần đầu, client giữ lại thông tin đăng nhập họ Trong lần sử dụng sau đó, người dùng lựa chọn tự động đăng nhập mà qua hình đăng nhập Trong trạng thái phiên làm việc xem thơng tin tạm thời, liệu cá nhân hóa có tính bền vừng Lưu liệu bền vững đâu tùy vào người phát triển ứng dụng Khi định lưu trữ liệu cá nhân hóa, nhà phát triển phải xem xét câu hỏi sau: Dữ liệu cá nhân hóa có thường xun ảnh hưởng đến client request khơng? Ví dụ, ứng dụng đặt vé liệt kê rạp dựa vào mã vùng người dùng Server lưu trữ mã vùng này, client khơng cần phải gởi lại mã vùng lần gởi yêu cầu Tuy nhiên nên cho phép người dùng bỏ qua mã vùng này, ví dụ họ sang thăm vùng khác Thơng tin cá nhân hóa có khả sử dụng nhiều loại client hay không? Ví dụ, người dùng sử dụng ứng dụng đặt vé điện thoại di động muốn truy xuất ứng dụng qua Web Khi đó, họ muốn liệu cá nhân có sẵn để tránh việc nhập lại qua Web Quyết định nơi để lưu liệu cá nhân hóa khơng phải ln định lựa chọn hai Dữ liệu cá nhân hóa lưu chồng client server Khi liệu cá nhân hóa lưu chồng client server, ứng dụng cần phải có thêm số tính để đồng hóa liệu Các nhà phát triển khuyên nên cân nhắc đến chi phí việc thực tính Find best mobile with best price www.thongtinmobile.com ... bị di động Như lập trình viên phải xây dựng nhiều đích cho loại thiết bị di động Hình biểu di? ??n tiến trình xây dựng ứng dụng MIDlet hồn chỉnh vai trị KVM Hình Tiến trình xây dựng MIDlet Q trình. .. Từng bước lập trình cho điện thoại di động J2ME - Phần Lập trình Web Service với MIDP Lập trình mạng MIDP HTTP client Khái quát Đặc tả MIDP 1.0 phát biểu triển khai MIDP thiết bị di động bắt buộc... Object Từng bước lập trình cho điện thoại di động J2ME - Phần Lưu trữ ghi (Record Store) Lưu trữ ghi cho phép lưu liệu ứng dụng thoát, khởi động lại thiết bị di động tắt hay thay pin Dữ liệu lưu trữ