Công cụ và nền tảng phát triển ứng dụng di động

Nội dung

• Tổng quan • WAP • Publishing FW • Một số công cụ và nền tảng cơ bản

@Hà Quốc Trung 2011 2

Tổng quan

• Cách tiếp cận • Mô hình tập trung • Mô hình nhiều lớp

@Hà Quốc Trung 2011 3

Cách tiếp cận

• Phần mềm

– Mức thấp=ngôn ngữ máy – Mức cao=các ngôn ngữ lập trình – Công cụ, nền tảng, ..=> trừu tượng hóa phần mềm

• Giảm độ phức tạp • Có rất nhiều công cụ cho phần mềm thông thường – OOP, Design partern, các tiến trình phát triển phần

mềm

• Câu hỏi: có gì khác trong phát triển ứng dụng di

động

@Hà Quốc Trung 2011 4

Phát triển ứng dụng di đông<>cố định

• Mức thấp: giống nhau • Mức cao:

– Chưa đề cập đến các vấn đề như

• Nhận biết vị trí, tài nguyên hạn chế, nguồn hạn chế, nền tảng thay đổi, giao diện người sử dụng thay đổi, QoS • Người sử dụng có vị trí thay đổi, không tập trung vào

ứng dụng, dừng công việc đột ngột, khắp nơi

• Đang có sự thay đổi liên tục

@Hà Quốc Trung 2011 5

Khác nhau của hệ thống di động/hệ thống cố định

• Vị trí • QoS • Tài nguyên hạn chế • Giao diện NSD khác nhau • Thiết bị khác nhau • Push

@Hà Quốc Trung 2011 6

Khác nhau giữa người sử dụng di động<>cố định

• Di động • Không tập trung • Thường xuyên ngắt quãng công việc • Làm việc mọi nơi

@Hà Quốc Trung 2011 7

Công cụ và nền tảng tập trung

• Logic của ứng dụng đặt ở thiết bị tính toán

trung tâm

• Thiết bị đầu cuối chuyên biệt cho một ứng

dụng cụ thể

• Cấu hình của thiết bị được xác định khi thiết

kế

• Chỉ còn các vấn đề về QoS và Push • Vd Call Center

@Hà Quốc Trung 2011 8

II. N-Tier FW

• Nguyên tắc:

– Phân tán các chức năng của ứng dụng Client-

Server

• Hệ thống cố định:

– giao diện, logics, dữ liệu – Giao diện, logics, middleware, dữ liệu

@Hà Quốc Trung 2011 9

Chức năng của client

• Khả chuyển • JVM • MS .NET FW

– Sử dụng nhiều tài nguyên và nguồn

@Hà Quốc Trung 2011 10

Giải pháp

• Thin client-web • Thich client

– Bộ công cụ phát triển –operating environment

• J2EE-Net-Symbian-IOS SDK – Bộ công cụ phát triển trực tiếp

• Ứng dụng độc lập • Phần cứng chuyên biệt

@Hà Quốc Trung 2011 11

Các giải pháp trong mô hình n-lớp

@Hà Quốc Trung 2011 12

2. Một số chuẩn thông dụng

• WAP • Publishing framework

@Hà Quốc Trung 2011 13

WAP

• Thay thế HTTP cho các thiết bị di động • Định hướng cho các thiết bị nhỏ gọn (thin

client) – WAP, WML->XHTML

• Sử dụng giao thức truyền thông khác nhau – TCP/IP – persistent. WAP: Non Persistent TCP

• Mô hình Proxy-gateway • Đầy đủ để có thể xây dựng các ứng dụng di

động

@Hà Quốc Trung 2011 14

Kiến trúc WAP

@Hà Quốc Trung 2011 15

WAP-UI

• WML đơn giản hơn HTML, thuận tiện cho Micro

Browser

• WML tuân thủ XML-> các trình duyệt khác nhau

hiển thị giống nhau

• WML thiết kế cho màn hình đơn sắc kích thước

nhỏ

• WML thiết kế cho phép tương tác với dịch vụ

thoại (WAP WTA)

• Khó khăn chuyển đổi HTML->WML. Giải pháp:

XHTML

@Hà Quốc Trung 2011 16

Proxy và Gateway

• Bảo mật: WTLS • Điểm truy cập vào hệ thống cho client • Chuyển đổi giao thức WAP<>HTTP,

WSP<>HTTP

• Caching • Chuẩn bị nội dung:

– WML->WMLC, WMLS

@Hà Quốc Trung 2011 17

MMS

• Hiển thi: SMIL • Đánh địa chỉ • Giao diện MMS

– Proxy-relay, email, messaging system

@Hà Quốc Trung 2011 18

PUSH

• PAP-Push Access Protocol

@Hà Quốc Trung 2011 19

WAP-Push

• MMS client kết nối với Master Pull Proxy,

đăng ký

• Proxy kết nối với Application Server thông qua

PAP

• Các thông báo được AS push với định dạng

MIME

• Proxy Push thông báo tới MMS Client theo

các thông số của User Agent Profile

@Hà Quốc Trung 2011 20

WAP và các vấn đề của tính toán di động

Vị trí

1.x không hỗ trợ. 2.x không đầy đủ

QOS

WSP, WDP, WTLS, chưa quan tâm đến vấn đề ngắt kết nối

Thiết bị khả năng hạn chế

Phù hợp với các thiết bị di động Khả năng tương tác không cao Không khai thác được các tính năng của các thiết bị mới

Nguồn hạn chế

Mặc định OK, tuy nhiên không cho phép nhà phát triển can thiệp vào việc tiết kiệm năng lượng

Giao diện thay đổi

Phù hợp với đa số thiết bị, chia màn hình thành các khu vực

Nền tảng khác nhau

1.x không, 2.x có (UAP)

Push-Pull

WAP-Push (2.x)

@Hà Quốc Trung 2011 21

Publishing FW

• Cung cấp các định dạng thông tin khác nhau • Đáp ứng các dạng tài liệu cần thiết cho các

thiết bị

@Hà Quốc Trung 2011 22

Một vài framework thông dụng

• Java • Symbian • Androit • IOS • Apache Cocoon • IBM-Every Place

@Hà Quốc Trung 2011 23

Java

• J2ME (Java Micro Edition) • Là máy ảo Java đã được gõ bỏ một số tính năng cho phù hợp với các thiết bị di động

• MIDP • Hỗ trợ 2 loại thiết bị

– Các thiết bị có kết nối, cấu hình hạn chế:

Connected Limited Device Configuration (KVM)

– (32-512KB) – Các thiết bị có kết nối CDC (2-16MB)

@Hà Quốc Trung 2011 24

So sánh CLDC và CDC

Nguồn: http://www.thienlong.org/forumvn/showthread. php?t=8862

@Hà Quốc Trung 2011 25

MIDP (Mobile Information Device Profile)

• Profile: Mở rộng các cấu hình, bổ sung thêm

các thành phần phù hợp với thiết bị

• MIDP • PDA • Core Java • Personal Basis Profile, Personal Profile, RMI

Profile, Game Profile.

@Hà Quốc Trung 2011 26

IOS

(nguồn: http://developer.apple.com/devcenter/ios/index.action)

Cocoa Touch

Media

Core Services

Core OS

• Collection • Address Books

• Multi touch • Core Motion • View

• OSX • BSD • Sockets • Security • Power

• Audio • Open AL • Audio Mixing • Recording • Video

Management

Playback

• Networking • File Access • SQLite • Core

• Image

Formats

• Certificate • File System • Bonjour

Hirearchy • Localization • Controls • Alerts • Web View • Map Kit • Image Picker • Camera

• Quartz • Animation • OpenGL

Location • Net Services • Threading • Preferences • URL Tools

@Hà Quốc Trung 2011 27

Lập trình IOS

• Bộ công cụ lập trình IOS SDK • Tạo account, đăng nhập-> tải, cài đặt • Bộ công cụ mô phỏng • Thiết bị di động IOS

– Iphone, Ipad

• Máy tính MAC ()

@Hà Quốc Trung 2011 28

Android

• Google • Tự do-Mã nguồn mở • Dựa trên Linux, đa nhiệm, đa luồng • Có thể chạy trên nhiều loại thiết bị di động

khác nhau – ĐT DĐ, đầu đĩa, máy nghe nhạc, ...

@Hà Quốc Trung 2011 29

Kiến trúc của Android

Nguồn http://developer.android.com

@Hà Quốc Trung 2011 30

Cocoon

• Công cụ phát triển các ứng dụng Web • Sử dụng Java & XML • Chuyển đổi thông tin sang dạng phù hợp với

các thiết bị di động

• Đăng tải động trên nhiều kênh • Có thể tương tác với các framework Java khcs

@Hà Quốc Trung 2011 31

Kiến trúc của Cocoon

@Hà Quốc Trung 2011 32

Sitemap components

• Pipelines • Matchers • Generators • Transformers • Serializers • Readers

Basic web application development with Apache Cocoon

Sitemap

• XML configuration file • Request handling • Where everything comes together

Basic web application development with Apache Cocoon

Pipelines

• Contain matchers for (requested) URI

Example

Nguồn: Basic web application development with Apache Cocoon

Pipeline example

Basic web application development with Apache Cocoon

Bài tập

• Java

– Cài đặt J2ME, MIDP trên máy PC với bộ mô phỏng và thực hiện chương trình Hello World – Thực hiện chương trình trên một thiết bị di động

hỗ trợ Java

– Qui trình thực hiện ứng dụng

• Cài đặt môi trường làm việc với IOS SDK • Cài đặt WAP Server • Xây dựng ứng dụng?

@Hà Quốc Trung 2011 37