1,introducere. sisteme de operare pentru terminale mobile. tehnologii

34
Dezvoltarea de Aplicații pentru Telefoane Mobile (DATM) - curs 1 - Marcel Cremene, Conf.dr.ing. 2012-2013 02.10.2012 1

Upload: vlad-flavius

Post on 18-Jul-2016

26 views

Category:

Documents


1 download

DESCRIPTION

1

TRANSCRIPT

Page 1: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Dezvoltarea de Aplicații

pentru Telefoane Mobile

(DATM)

- curs 1 -

Marcel Cremene, Conf.dr.ing.

2012-2013

02.10.2012 1

Page 2: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Conținutul prezentării

Obiectivele și conținutul cursului

Cunoștințe prealabile necesare

Contextul în care dezvoltăm aplicații mobile Serviciile mobile și infrastructura acestora

Terminale mobile – caracteristici și sisteme de operare

Domeniul de cercetare Ubiquitous/Pervasive Computing

Bibliografie

02.10.2012 2

Page 3: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Obiectivele cursului

Învățarea prin aplicare practică

Cunoașterea unor aspecte cheie:

managementul proiectelor software

modele de proiectare (design-patterns)

paradigme, tehnologii, framework-uri

limbaje de programare: Java, C++, C#, Objective C

convenții de scriere a codului

Identificarea și rezolvarea problemelor specifice

aplicațiilor destinate dispozitivelor mobile

Dobândirea abilităților practice necesare dezvoltării

de aplicații mobile complexe

02.10.2012 3

Page 4: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Cursul include:

Gestiunea proiectelor software (Project Management)

Paradigme utilizate: componentă, serviciu, middleware, agent, aspect

Design pattern-uri (modele de programare)

Platforme vizate: J2ME – Polish

Android

iPhone

Windows Phone 7

Direcții de cercetare: Pervasive/Ubiquitous Computing

Context-aware Computing

02.10.2012 4

Page 5: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Cunoștințe prealabile necesare

Principiile OOP

Clase, obiecte, relații

Limbaje de programare

Java, C#, C++

Rețele și protocoale

TCP, UDP, HTTP, SOAP

Sisteme de comunicații mobile

GSM, 3G, Bluetooth, WiFi

Sisteme de operare și arhitecturi de calculatoare

02.10.2012 5

Page 6: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Metodologie de lucru

Utilizarea de tehnici de muncă intelectuală: Problematizare

Gândire critică

Gândire laterală

Brainstorming

Lucrul în echipă

Justificarea teoriei pornind de la necesitățile practice

Suport WEB: mercur.utcluj.ro/mobile

02.10.2012 6

Page 7: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – infrastructura telecom (1)

Tendințe:

Integrarea domeniilor:

-> Telecomunicatii

-> Internet

-> Audio-vizual

- Debite cat mai mari

- Oferirea unui QoS garantat

- Ubiquitous/Pervasive Computing

- Semantic web

02.10.2012 7

Page 8: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – infrastructura telecom (2)

Mobilitate extinsă

1G -> 2G -> 2.5G -> 3G -> 4G …

Mobilitate într-o arie limitată

WiFi : 802.11, 802.11.b, 802.11.a …

WiMax : 802.16

Mobilitate în aria personală

Bluetooth v.1, v.2

02.10.2012 8

Page 9: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – infrastructura telecom (3)

Tendințe:

-> rețea comună de transport, bazată

pe IP

-> rețele de acces diverse conectate

la o aceeași rețea de transport

-> schimbarea modului de acces să

fie transparent pentru utilizator

02.10.2012 9

Page 10: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – infrastructura telecom (4)

02.10.2012 10

Care sunt asemănările/diferențele dintre soluțiile de conectivitate fixe

respectiv mobile?

Page 11: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Zone de mobilitate

11 02.10.2012

Page 12: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – piața serviciilor (1)

Cerințe:

-> Serviciile să țină cont de

nevoile specifice ale

utilizatorilor

-> Serviciile să fie

personalizabile

-> Să se poată garanta o

anumită calitate pentru un

anumit cost

02.10.2012 12

Page 13: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – caracteristicile

terminalelor mobile (1)

02.10.2012 13

Care sunt asemănările/diferențele dintre caracteristicile unui telefon mobil

respectiv ale unui PC? Dar în ceea ce privește contextul de utilizare al

acestora?

Page 14: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Context – consumul de energie

14 02.10.2012

Baterii

Page 15: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Sisteme de operare – generalități

Asigură accesul la resursele hardware

Este necesar să existe pe orice mașină de calcul programabilă

Aplicațiile accesează sistemul de operare la nivelul API-urilor

Utilizatorul accesează funcțiile sistemului de operare prin intermediul unei console sau GUI dedicat

Funcții: execuția programelor, întreruperi, gestiune: sistem fisiere, periferice, rețea, memorie, procese,

securitate, etc.

Page 16: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Sisteme de operare pentru

mobile – Windows

Terminale: PDA-uri, Smart-phone, Pochet PC, Handheld PC

Rata utilizare: 15% dintre smartphone

Page 17: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Windows Mobile 6 Functionalitati:

320x320 and 800x480 (WVGA) screen resolution support

Office Mobile support for Smartphones

Operating System Live Update[23]

Improved Remote Desktop access[24](Available for only certain Pocket PCs)[25]

VoIP (Internet calling) support with AEC (Acoustic Echo Cancelling) and MSRT Audio Codec

Windows Live for Windows Mobile[26]

Customer Feedback option[27]

Enhanced Microsoft Bluetooth Stack

Storage Card Encryption (encryption keys are lost if device is cold-booted).

Smartfilter for searching within programs

Improved Internet Sharing

HTML email support in Outlook Mobile

Search ability for contacts in an Exchange Server Address Book

AJAX, JavaScript, and XMLDOM support on Internet Explorer Mobile

Out of Office Replies with Microsoft Exchange 2007

Unlicensed Mobile Access (UMA) support for select operators

Server Search on Microsoft Exchange 2007

.NET Compact Framework v2 SP2 Preinstalled in ROM

Microsoft SQL Server 2005 Compact Edition Preinstalled in ROM

OneNote Mobile as a companion to Microsoft Office OneNote

Office Mobile 6.1 announced[28] with support for Office 2007 document formats (pptx, docx, xlsx).

Page 18: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Windows Phone 7 Foarte similar cu Android ca funcții si arhitectură

Bazat pe tehnologiile Silverlight, HTML, XNA, JavaScript

Aplicații: C#

Masina virtuală: CLR (hardware divers)

Page 19: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Sisteme de operare pentru mobile –

Symbian OS

Terminale: telefoane mobile, smartphone

Rata utilizare: 67% dintre smartphone

La 11.02.2011 Nokia anunta

migrarea de la Symbian la

Windows Phone 7

Page 20: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Symbian OS 9.4 Core OS

Security, Privacy and Content Protection

• Application capability management

• Application data caging

• Cryptographic algorithms – DES, 3DES,

RC2, RC4, RC5 and AES

• Cryptographic token framework

• DRM framework and reference

implementation

• IPSec and VPN client support plus SSL

and TLS

Open Environments

• Standard C environment

• Standard libraries including partial POSIX

support (P.I.P.S.)

Location-Based Services

• GPS, A-GPS (terminal-assisted / terminalbased)

and network-based positioning

• Mobile originated and mobile terminated

requests (including emergency requests)

Telephony

• Multimode Etel (2.5G / 3G)

• GSM Phase 2+

• HSCSD

• GPRS, classes A, B and C (R97/98)

• EDGE (CSD and GPRS)

• WCDMA (3GPP R4 and R5 IMS support)

• HSDPA

• SMS (3GPP TS 23.040 V6.5.0)

• EMS (3GPP TS 23.040 V4.5)

• SIM Application Toolkit

• SIM and USIM support

• Quality-of-Service framework

• Support for multiple primary and

secondary PDP contexts

• Third party OTA API

Networking & Comms

• Bluetooth v2.0 (L2CAP, RFCOMM, SDP,

GAP and SPP) plus profile support

• Bluetooth stereo headset support

• USB v2.0 High Speed (Mass storage, ACM,

WHCM) and USB On-The-Go support

• WLAN

• IrDA & serial

• OBEX over Bluetooth, IrDA and USB

• TCP, IPv4, IPv6, MSCHAP v2, PPP

• TCP/IP plug-in framework

• HTTP plug-in framework

- HTTP 1.1

- Pipelining

• WAP push

• Connectionless WSP

• Multihoming, NAPT

Multimedia

• Video capture and playback framework

• Audio capture and playback framework

• Camera interface supporting multimegapixel

cameras and advanced features

• Tuner interface

• Hardware abstraction layer for multimedia

acceleration

• Audio and video codec interfaces

compliant with OpenMax IL 1.0

• Image conversion (all common formats)

with scaling enhancements

Graphics

• Bitmap and vector font support with

advanced font effects

• 2D and 3D graphics support including

OpenGL ES

Persistent Data Services

• Embedded SQL database

Generic OS Services

• Extensive language support including:

Thai, Arabic, Hebrew, Japanese, Chinese,

Hindi, Brahmic and Vietnamese scripts

• Unicode 3.0

Kernel & Hardware Services

• ARMv5, v6 and v7 support

• L2 cache support

• Defragmentation of physical RAM

• Demand paging of read-only code and data

• Hardware-dependent support for “VFP”

floating point acceleration and accelerated

maths functions

• High performance file server

• MMC and SD card support including

media >2GB

Generic Middleware

Security Management

• Cryptographic services

• Certificate management (X509 certificates)

• Secure Software Install

• MIDP 2.0 support

Application Protocols

• White/black list URI service for WAP push

• SIP/SDP

Multimedia Middleware

• High-level multimedia service abstraction

• RTP, RTCP

System GUI Frameworks

• Flexible application and UI frameworks

• Control and windowing environments

Application Services / Logic

Remote Management Application Daemons

• Over-the-air firmware upgrade (FOTA)

• OMA Client Provisioning v1.1

• OMA Data Synchronization v1.2

• OMA Device Management v1.2

Enterprise Application Services

• Calendaring including vCalendar v1.0 and

interoperability with Microsoft Exchange

and Lotus Notes servers

• Contacts management including

vCard v2.1

• IMAP4 including IDLE support, RFC2177

and RFC 3501

• POP3 implementation compliant with

RFC 1939

• SMTP implementation compliant with

RFC 2821

• SMTP Service Extension for

Authentication, RFC 2554, Secure SMTP

over Transport Layer Security, RFC 3207

• Secure email using TLS with IMAP, POP3,

and ACAP, RFC 2595

• Extensible framework for push

email solutions

Page 21: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Sisteme de operare pentru mobile

– Palm OS

Terminale: PDA, power mobile devices

Page 22: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Palm OS Garnet 5.4

Functionalitati: Simple, single-tasking environment to allow launching of full screen applications

with a basic, common GUI set

Monochrome or color screens with resolutions up to 480x320

Handwriting recognition input system called Graffiti 2

HotSync technology for synchronization with desktop computers

Sound playback and record capabilities

Simple security model: Device can be locked by password, arbitrary application records can be made private

TCP/IP network access

Serial port/USB, Infrared, Bluetooth and Wi-Fi connections

Expansion memory card support

Defined standard data format for personal information management applications to store calendar, address, task and note entries, accessible by third-party applications.

Page 23: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Sisteme de operare pentru mobile

– Linux mobile

Page 24: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Android (Google)

Page 25: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Android

Functionalitati: Application framework enabling reuse and replacement of

components

Dalvik virtual machine optimized for mobile devices

Integrated browser based on the open source WebKit engine

Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)

SQLite for structured data storage

Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM Telephony (hardware dependent)

Bluetooth, EDGE, 3G, and WiFi (hardware dependent)

Camera, GPS, compass, and accelerometer (hardware dependent)

Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Page 26: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Apple iOS (iPhone OS)

Sistem proprietar - nu se bazează pe o masină virtuală (dar nu suportă hardware multiplu)

Aproximativ 26% din piață, 500.000 aplicatii iOS în Apple Store în 2010

UI bazată pe manipulare directă (ecran tactil)

Accelerometru intern

Sistem de operare Unix-like

Aplicațiile de dezvoltă în limbajul Objective-C

Page 27: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Comparație între principalele platforme

Google Android

Microsoft

Windows

Phone 7

Apple iOS

Sursa aplicații Android Market App Marketplace AppStore

API Interfață

utilizator

Java Application

Framework Silverlight Cocoa

Browser Webkit Internet Explorer Webkit

API grafica 3D OpenGL DirectX OpenGL

Limbaj aplicații Java C# Objective-C

Masină virtuală Dalvik VM CLR -

Sistem operare Linux Windows Unix-like

27 02.10.2012

Page 28: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Alte sisteme de operare/platforme

BlackBerry

Qualcomm Brew (Binary Runtime Environment for

Wireless)

Page 29: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Tehnologii, limbaje

Symbian OS C++

Windows Mobile C#, .NET Compact Framework

VBasic, .NET Compact Framework

Java 2 Micro Edition J2ME LCDui, MIDP, CLDC/CDC

J2ME Polish

Android Java

Apple iOS Objective-C

Page 30: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Ubiquitous/Pervasive Computing

Viziune: servicii mobile omniprezente –

accesibile oriunde, oricând

1 user … N dispozitive/terminale/servicii

30 02.10.2012

Page 31: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Probleme fundamentale ale

aplicațiilor mobile

Adaptarea aplicațiilor/serviciilor:

la caracteristicile rețelei

la caracteristicile ecranului, puterii de procesare, memoriei

optimizarea utilizării bateriei

la preferintele utilizatorului (ex. localizare fizică sau socială)

Accesul nomad – gestiunea schimbării terminalelor

Adaptare transparentă versus adaptarea cu implicarea

utilizatorului

Gestiunea datelor replicate (replica reconciliation)

gestiunea deconectărilor

caching, prefetching

31 02.10.2012

Page 32: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Aspecte legate de cercetare în

domeniul ”Mobile Computing”

Problema centrală: dinamicitatea contextului cauzată în

special de mobilitate

Context:

Infrastructura hardware:

Dispozitive: memorie, CPU, screen, etc.

Rețele de comunicații: debit, deconexiuni

Utilizator:

Preferințe - dependente de localizare, condiții de mediu înconjurător

Mediul înconjurător:

Proximitatea față de anumite obiecte, persoane, zgomot, lumină

ambiantă, etc.

Page 33: 1,Introducere. Sisteme de Operare Pentru Terminale Mobile. Tehnologii

Adaptarea la context

Cine se adaptează? În functie de ce? Când? Cu ce

scop?

Exemple:

Adaptarea calității unui flux de date (ex. video) la debitul

disponibil

Adaptarea interfeței utilizator la tipul de ecran/tastatură

Gestiunea replicării datelor în condiții de deconexiune

Adaptarea calității serviciului la resursele terminalului (memorie

disponibilă, putere procesare)

Adaptarea serviciului la o nouă nevoie a utilizatorului (de

exemplu cauzată de schimbarea locației)