Chương I TONG QUAN VE LAP TRINH THIET B] DI DON Chương này sẽ giới thiệu tổng quan vẻ lập trình cho thiết bị di động, bao gồm: > Các khái niệm cơ bản như điện toán di động, thiết bi di động, nền tảng, môi trường phát triển phần mềm, môi trường tích hợp, kiến trúc Client-Server. > Sự phát triển của công nghệ di động, sự cạnh tranh giữa các nền tảng di động, vai trò của lập trình di động trong kỹ thuật, công nghệ và đời sống. > Sự phát triển mạng di động. > Cae van dé cin lưuý khi xây dựng một ứng dụng cho thiết bị di động.1 CÁC KHÁI NIỆM CƠ BẢN 1.1 Điện toán di động và thiết bị di động [1] _.
Điện toán đi động (Mobile computing) là chức năng tính toán của hệ thống di động, chức năng tính toán được hiểu bao hàm cả việc lưu trữ và trao đổi thông tỉ “Thiết bị dĩ động (Mobile devices) là các hệ thống mà chúng có thể di chuyển dễ đảng và có khả năng tính toán trong khi chúng đang di động. Vi dy: Ultramobile PC, Mobile phone, Tablet, Phablet, TV set-top boxes, dụng cụ đo lường từ xa trên xe, iết bị nhúng,. ngay cả laptop cũng có thê được xem như là thiết bị di động. Giáo trình này sẽ tập trung vào điện thoại di động thông minh (smartphone).
Cơ sở phân biệt hệ thống tính toán đi động với các hệ thống tính toán khác là: — Sự khác nhau về công việc mà chúng được thiết kế đề thực hiện; — Cách mà chúng được thiết kế; — Cách chúng vận hành. Có nhiều việc một hệ thống cố định không thực hiện được nhưng hệ thống di động có thể thực hiện được. Một thiết bị di động cũng như bắt kỳ một hệ thống nào khác, nó có thể kết nối mạng. Tuy nhiên, một thiết bị di động có é ết nối mạng không dây (Ví dụ: e, máy hát nhạc PM3,.
inh và hệ thống di động cl sự khác biệt, nhưng di này không có nghĩa là chúng không có. it kỳ điểm chung nào. Có 4 khía cạnh liên quan đến lĩnh vực di động: người dùng di động; thiết bị di động; ứng dụng di động và mạng di động. Khuôn khố của sự di động (Dimensions of mobility) là tập hợp các tính chất dùng để phân biệt hệ thống tính toán di động với các hệ thống tính toán cố định.
Thường người ta sử dụng các tính chất sau nhận diện các hệ thống di động: (1) Sự nhận biết vị tri (Location awareness) (2) Chất lượng kết nối mạng của dịch vụ (Network connectivity quality of service, QOS) (3) Sự hạn chế về khả năng của thiết bị (Limited device capability - particularly storage and CPU) nguồn điện (Limited power supply) (5) Sự hỗ trợ về mặt đa dạng của giao diện người dùng (Support for a wide variety of user interfaces) (6) Sự tăng nhanh về số lượng platform. Mulimodal and Large Variety of Vara Us Pistons Lites ehavor Power Supply Umited Device Location Capabilities ‘Awareness Wireless Connectivity Hình 1.1 Các tính chất để đánh giá kích thước đi động [1] Điều kiện di động (Mobile condirion) là sự khác biệt giữa người dùng. di động với người dùng cô định, bao gồm: (1) Người dùng di động là có thể hoặc đang di chuyển giữa vị trí được. biết hay các vị trí không biết (2) Người ding di động không tập trung vào việc tính toán.
(3) Người dùng di động thường đòi hỏi ở mức cao sự tức thì và đáp ứng nhanh từ hệ thống. (4) Người dùng di động thay đổi công việc thường xuyên hoặc đột ngột. (5) Người dùng di động có thể ï hỏi truy xuất đến hệ thống mọi nơi và mọi lúc, Tóm lại, các thuộc tính của người dung di động là: thay đổi vị trí, không tập trung, đòi hỏi tức thì, thay đôi đột ngột trong công việc, mọi nơi và mọi lúc Điện thoại thông minh (Smartphone) là thiết bị di động mà nó kết hợp các chức năng của điện thoại thông thường với chức năng điện toán di động. Bạn dau ¢ thoại thô ò Điện thoại tệ mình ngày nay bao gồm hầu hết các chức năng cũa một mày tính cá nhân (PC), đặc biệt là có thé chạy các ứng dụng của bên thứ ba (third- party apps), bên cạnh đó, nó còn có các chức năng mà PC không thể có.2 Khai ni m lập trình di „._ Lập trình di động (Mobile programming) Ia mềm ting dụng hay một chức năng cho một phần mềm đi động k thử, gỡ lỗi/ sửa chữa, và bảo trì phần mị Sự khác nhau cơ bản 1g và lập trình di động là đi toán di động là một chị hiết bị di động trong khi lập trình di động là quá trình xây dựng chức năng cho thiết bị di động của người lập trình.3 Trừu tượng Trừu tượng (Abstraction) là những phần mềm nằm giữa phần cứng va môi trường phát triển ứng dụng hoặc ứng dụng, chẳng hạn như: các lớp trong giao diện lập trình ứng dụng (API-Application Programming Interface), trong các thực đơn (menu), có sở dữ liệu (database), hệ thống tập tin (fïle systems), các thư viện thực (runtime libraries), giao diện đồ họa người dùng (graphical user interface),.
Triru tượng là công cụ hữu hiệu cho việc phát triển phan mềm, là một trong những phương tiện được dùng phổ biến trong việc lập trình. Khi lập trình trong một môi trường xác định, người lập trình phải biết các trừu tượng cơ bản được áp dụng trong môi trường đó, và biết cách mà các trừu tượng dự định sẽ được dùng. Đây là một kỹ năng.4 Nền tảng Nền tảng (Platform) là cơ sở công nghệ của một hệ tính toán, trên đó người ta xây dựng các chương trình ứng dụng. Nền tảng là sự liên kết giữa cấu.
hình phần cứng thấp nhất, hệ điều hành. ngôn ngữ lập trình và các trừu tượng. Trong đó hệ điều hành là thành phần chính và thường trùng tên với nền tảng, nên nhiều khi người ta xem một nên tảng bằng chính hệ điều hành tương. Sự phát sinh nhanh chóng nl tảng có ý nghĩa rất quan trọng đến ú ủa thiết bị di động, sự thiết kế và phát triển các ứng mềm ứng dụng mong muốn sao cho việc phát triển tảng.
Nghĩa là khi xây dựng một ứng dụng không cần dựa trên một nền tảng cụ thể, nhưng lại có thể chạy trên mọi nên nhau, hoặc có sự thống nhất chung một nên tảng. Tuy nhiên, các nhà ng tạo ra cái riêng, đi ngược lại xu hướng này. Từ lúc điện ại di động ra đời, nó đã làm phát sinh nhiều nền tảng cạnh tranh với nhau, như: Java J2ME, Symbian, BREW, iOS cho iPhone của Apple, Blackberry OS cia RIM, WebOS, Android, Windows Mobile va Windows phone của Microsoft.5 Môi trường phát triển phần mềm và môi trường phát triển tích hợp. Môi trường phát triển phần mềm (SDE - Software Development Environment) là một tổng thể mà nó cung cấp toàn bộ các phương.
người lập trình máy tính phát triển phần mềm. Một SDE có thể bao gồm: — _ Công cụ quản lý cần thiết; —_ Công cụ mô hình hóa thiết kế; —_ Công cụ tạo ra văn bản, tài liệu; —_ Môi trường phát triển tích hợp (IDE) ~_ Công cụ phân tích mas —_ Công cụ tra Cứu mã; — Công cụ kiểm tra mã: — Công cụ xây đựng phần mém (compile, link); — Kho chứa tài nguyên (quản lý cấu hìn! —_ Công cụ dò tìm và báo sự cố. Môi trường phát trién tich hop (IDE-Integrated Development Environment) cũng được gọi là môi trường thiết kế tích hợp (integrated design environment) hay môi trường gỡ lỗi tích hợp (integrated debugging environment) là mgt phan mém ting dụng mà nó cung cấp toàn bộ các phương tiện đề người lập trình máy tính phát triển phần mềm. Một IDE bao gồm: — B6 bién tip ma ngudn (source code editor) — Trinh bién dich (compiler) và/hoặc trình thông dich (interpreter) - c ‘ng cy (build automation tools) = Trinh go Idi (debugger) Vi dy: Netbeans, Eclipse, Borland Jbuilder,.
Khung (Frameworks) là một môi trường tích hợp trên một platform với các công cụ tương ứng, trên đó người ta phát triển phần mềm ứng dụng.6 Kiến trúc Client-Server [1] Ld. 1 Thin-Client Wireless Client-Server: Kiến trúc này đòi hỏi client kết nối mạng liên tục và ổn định, tương ứng với tập các đặc tính kỹ thuật chung nhỏ nhất của các thiết bị và nền tảng. Vì vậy, mô hình này được thực thỉ bởi các "gia đình” nền táng và thiết bị với các trình duyệt phù hợp. Các trình duyệt với cùng đặc tính kỹ thuật có thể thực thi trên mỗi thiết bị trong môi trường client-server.
Trình duyệt cho phép tải và trả Š mã đánh dấu (markup), và cả các plug-in. Phương pháp này tương tự như phương pháp mô hình wcb, mà trong đó các trình duyệt được thực thi cho nhiều hệ điều hành khác nhau. Nhà phát triển web không cần lo lắng về môi trường mà trong đó trình duyệt hoạt động. Giao thức truy xuất / ứng dụng không đây (WAP - Wireless Access! Application Protocol) và Ngôn ngữ đánh dâu không dây (WML: Wireless Markup Language) của nó cung cấp một khung cho việc xây dựng các ứng.
dụng thin-client wireless với một kiến trúc nhiều lớp (N-Tier).2 Thick-Client Wireless Client-Server: Ứng dụng trên thiết bị di động có thể là do người dùng đặt hàng. Vì vậy, nếu thick client giao tiếp với server, nó có thể thực thi vai việc và server thực hiện các việc khác. Các kiến trúc thick-client-server cố định ding client như là một bộ lưu trữ dữ liệu phụ cho các ứng dụng khi client ngắt kết nối với mạng (thực hiện logic kinh doanh không cần tập trung hóa). Việc thực hiện kiến trúc này cho thiết bị di động khó khăn hơn, do thiết bị di động có tài nguyên rất hạn chế.
Công nghệ hiện nay có thể khắc phục sự hạn chế này, chẳng hạn như điện thoại thông minh (smart phone) và máy tinh bang (tablet computer) có CPU mạnh và bộ nhớ lớn không kém các PC. Tuy nhiên, có ấn đề khác, đó là: Ta phải phân bố phần mềm như thế nào cho một dải rộng thiết bị? Ta phải viết phần mềm như thế nào cho một số lớn các nền tảng khác nhau? Connect " Sandstone Newworks Platform Wire| sccorked Wireless WaP Symbian, ‘Motile platform NET Hình 1.2 Các giải pháp ctia khung N-Tier Client-Server Trong thực lế, các nhà sản xuất thiết bị muốn có sự khác biệt về phần cứng với đối thủ của họ. Một cách để thực hiện mong muốn này là buộc các nhà phát triển phần mềm viết chươngtrình rất đặc thù cho các nền tảng của thiết bị bằng ngôn ngữ riêng biệt của nền tảng đó.