jsr-307 mobiledata and mobility (preferences)

46
November 14, 2007 JCP JSR-307 Expert Group 1 JSR-307 MobileData and Mobility (preferences) Eric Overtoom, Motorola November 14, 2007

Upload: vivian-payne

Post on 01-Jan-2016

31 views

Category:

Documents


1 download

DESCRIPTION

JSR-307 MobileData and Mobility (preferences). Eric Overtoom, Motorola November 14, 2007. Introduction. JSR-307 is a proposal for specification of interfaces for Java MicroEdition to control Connectivity preferences (data and other connection based services like voice telephony) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JSR-307 MobileData and Mobility (preferences)

November 14, 2007 JCP JSR-307 Expert Group 1

JSR-307MobileData and Mobility (preferences)

Eric Overtoom, Motorola

November 14, 2007

Page 2: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 2November 14, 2007

Introduction

JSR-307 is a proposal for specification of interfaces for Java MicroEdition to control Connectivity preferences (data and other

connection based services like voice telephony)

Data session establishment The JSR-307 Expert Group started in

November, 2006

Page 3: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 3November 14, 2007

Purpose JSR-307 is being created to allow applications more

control over data session establishment (and other network connectivity)

Current Java ME + MIDP allows describing the system to attach to, but no information about what route to use for establishing that connection

Focus on application view of the system Core problem: same settings for all Java connections

This can cause trouble if the default (operator specified) configuration doesn’t provide a connection to the destination

Some applications need specific bandwidth or configuration (i.e. a Java implementation of JSR-281 (IMS))

Take advantage of new platform implementation features, such as tagged configurations

Page 4: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 4November 14, 2007

Core need

Not all applications have the same connectivity requirements Different than PC/desktop, where all applications

assume and are configured for the same level of connectivity

Reconfiguration is difficult Multiple connectivity services are available

Cellular data routing to public or carrier network Multiple options may be present at one time – even in

a single mode device Different costs to use these services

Page 5: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 5November 14, 2007

Sample use cases

Games which can post high-score information for competition Need access to particular APN on GPRS, or use public WiFi

hotspot access Music Sync/Catalog

Wants to know when on home network to sync, avoid network access otherwise

Carrier applications Use GPRS or require a IPSec connection over WiFi to the

carrier core network Connection configuration

Need > 200 kbps to carry a video stream

Page 6: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 6November 14, 2007

JSR-307 is

Common means to request particular connection attributes, across access technologies

Learn about device abilities Available access technologies/configurations, how a particular

connection is configured and routed Provide way to request more abstract connectivity,

instead of specific access technology configurations Configuration for IP networking Control connectivity preferences

Static application needs and dynamic per-connection Notifications of changes in connectivity and availability Abstraction from the device configuration

Applications shouldn’t be sensitive to technology

Page 7: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 7November 14, 2007

JSR-307 isn’t

Directly controlling connectivity via an Access Technology Influence platform decision, but not override platform

decisions Providing session continuity

Can represent what the platform may provide Including non-IP data connectivity

Serial, most Bluetooth connectivity is out of scope Replacing the Generic Connection Framework

Page 8: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 8November 14, 2007

JSR-307 and 802.21

Both provide means to request and manage links abstracted from the access technology

JSR-307 assumes a data management layer below which makes decisions and supports any platform session continuity Focus is on application requests to establish sessions, and

obtain information about sessions The MIHF likely is at least a portion of that data

management layer Managing options and session continuity

Depending on implementation, some JSR-307 preferences may influence operation of the MIHF

Page 9: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 9November 14, 2007

Comparison of components

JSR-307 mobiledata JSR-307 connectionpreferences

Java application using JSR-307

Page 10: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 10November 14, 2007

JSR-307 participants

Motorola – lead and co-lead Nokia Ericsson Telcordia (802.21 liaison) Sony-Ericsson Sun Siemens

Page 11: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 11November 14, 2007

JSR-307 schedule

Early Draft - December 2007 first public review EG will close after ED

Public Draft – June 2008 Proposed Final Draft – Dec. 2008 Final Draft, RI, TCK – Feb 2009

Reference Implementation, Test Compatibility Kit Will be opensourced

Page 12: JSR-307 MobileData and Mobility (preferences)

November 14, 2007 JCP JSR-307 Expert Group 12

Platform reference architecture

Page 13: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 13November 14, 2007

Reference Platform

Java applications

GCF

CLDC/CDC VM (with profiles)

Device platform Connectivity Implementation

mobiledata connection preferences

Route SelectionSession

Continuity(VPN)

802.11

Co

nn

.P

refs

802.16 3GPP

MIHF

Physical Interfaces

Page 14: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 14November 14, 2007

Connection configurations

For all connections, the configuration request which is used by the platform comes from 4 sources (only one of which is required) Device defaults – pre-configured settings if no other

request is made Application provisioned defaults – information

provisioned in the JAD file Application preferences – information provided after

installation by the user Dynamic needs – bandwidth, etc. for this session

App

ly t

o al

lco

nnec

tion

requ

ests

Single request

Page 15: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 15November 14, 2007

Connection configuration

Platform Defaults

Wifi preferredSSID=*Bandwidth=0Trraffic Class=

Background

JAD defaults

IPVersion = 4WiFi only

Application Dynamic settings

Bandwidth=64Traffic Ckass=

Streaming

Final Connection

WiFi onlySSID={Tmobile, Home, *}Bandwidth=64Traffic Class=StreamingIPVersion = 4

Application Preferences

SSID={Tmobile, Home, *}Connection Preferences

Mobiledata

Page 16: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 16November 14, 2007

Interface configurations

We assume that below the Java implementation is the actual platform connection manager JSR-307 exposes capabilities of this manager, no new functions

or logic are added Java objects just expose native functionality

Assume there is a set of stored configurations of the access technologies Each configuration represents a distinct way of accessing a

network These may be grouped/tagged when multiple configurations all

represent the same connectivity These configurations can be composed to satisfy

connection requests/requirements

Page 17: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 17November 14, 2007

Example configuration tree

Application

‘HomeBrowse’

MobileIP (MyHouse)

“Hotspot”

WiFi

“Internet”

“MyHouse”

WiFi

MobileInterface (skeleton)

Physical Interface

MobileInterface(skeleton?)

GPRS

“Medianet”

MIP MobileInterface represents the functionality of the MIP Client, which is responsible for selecting a network and establishing the tunnel or not, whether in the home network or not.

Required destination

Exposed destination

Configurationdata

“Caribou”

‘Home’

Destination

MobileInterface

Physicalinterface

Page 18: JSR-307 MobileData and Mobility (preferences)

November 14, 2007 JCP JSR-307 Expert Group 18

Mobility* /Preferences

* Mobility here is from cellular technology definitions – selection of a network to use

Page 19: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 19November 14, 2007

Connectionpreferences

Package with interfaces to control how the platform will select a route for a connection when more than one route is possibleWhich is preferred – GPRS or WiFi when both

networks can be seen? Set of attributes in the application JAD file

Minimum or default preferences this application needs to install/run

Page 20: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 20November 14, 2007

Configurable objects

The ConnectionPreferences package allows setting of preferences for applications and interfaces within the device

A ‘Configurable’ is the actual object which can be configured in this way Each Configurable object has a set of Preferences Only these Preferences objects are defined in JSR-307

Mapping a Configurable to an interface ultimately is specific to the interface/feature package These examples focus on data connectivity preferences Parallels can be drawn for voice telephony

Page 21: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 21November 14, 2007

Configuration Hierarchy

Each level has preferences for what providers of services needed

Relates to the different data paths which are possible in the system for a particular service/feature/interface

Bottom level is a Configuration of a physical interface

Page 22: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 22November 14, 2007

Configurable Hierarchy

Voice telephony(JSR-253)

Messaging(JSR-120)

IMS VoIP

GSM Modem

“Internet”

“Home” “AcmeCoffee”

Configurable

Configuration

Page 23: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 23November 14, 2007

Package class diagram

+getConfigurableNames() : String[]+getProviderSettings(in name : String) : PreferenceSettings+getProviderNames() : String[]

PreferencesManager

+getAccessTechnology() : String+getPreferredNetworks() : String[]+setPreferredNetworks(in preflist : String[])+getAvailableNetworks() : String[]

«interface»NetworkPreferences

Package javax.microedition.connectionpreferences

+getName() : String+getAccessType() : String

«interface»AccessPreferences

+getPreferences() : PreferenceSettings[]+setPreferences(in prefs : PreferenceSettings[])+getAllowedProviderNames() : String[]+getNegativePreferences() : PreferenceSettings[]+setNegativePreferences(in prefs : PreferenceSettings)+getName() : String

«interface»ConfigurablePreferences

«interface»PreferenceSettings

-has1

*

Page 24: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 24November 14, 2007

AccessPreferences

Lowest level in the hierarchy Represents a configuration of an interface

A particular network on a particular access technology

Used where the network in use has an impact on the connectivity (802.11)

No further preference settings, some limited information

+getName() : String+getAccessType() : String

«interface»AccessPreferences

Page 25: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 25November 14, 2007

NetworkPreferences

Representation of an access technology, and preferences for individual networks on that access technology

Used where the network in use does not impact connectivity or services available (Cellular packet data, WiMax)

Preferences may impact multiple features which share that access technology

+getAccessTechnology() : String+getPreferredNetworks() : String[]+setPreferredNetworks(in preflist : String[])+getAvailableNetworks() : String[]

«interface»NetworkPreferences

Page 26: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 26November 14, 2007

Sharing of network preferences

Telephony::ConfigurablePreferences Messaging::ConfigurablePreferences

IMS::ConfigurablePreferences,ProviderPreferences

GSM:NetworkPreferences

“Internet”

Home:AccessPreferences

AcmeCoffee:AccessPreferences

Internet:DestinationHome:

MobileInterfaceGSM:

PhysicalInterfaceAcmeCoffee:

MobileInterface

Page 27: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 27November 14, 2007

ConfigurablePreferences

Application or service top-level configuration

May have other Configurable objects below to select fromEach of these then has preferences for its

own selections to make

+getPreferences() : PreferenceSettings[]+setPreferences(in prefs : PreferenceSettings[])+getAllowedProviderNames() : String[]+getNegativePreferences() : PreferenceSettings[]+setNegativePreferences(in prefs : PreferenceSettings)+getName() : String

«interface»ConfigurablePreferences

Page 28: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 28November 14, 2007

Application preferences

These preference settings are changeable for the application only

Platform level defaults can only be altered using platform software (outside JSR-307)

The platform may restrict ability to change some settingsSecurity or device restrictionsOperator restrictions

Page 29: JSR-307 MobileData and Mobility (preferences)

November 14, 2007 JCP JSR-307 Expert Group 29

MobileData

Page 30: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 30November 14, 2007

JavaME Generic Connection Framework The GCF is an existing abstract means to communicate

off device Includes IP based as well as serial, Bluetooth, etc. Focus is on data-plane send/receive operations

Application requests a connection using a URI Platform uses the URI to identify the protocol to be used, along

with the interface (IP, serial, etc.) IP connectivity supported using HTTP as well as sockets Picking a route for IP connections left up to platform

settings Usually reusing the settings for the browser

Page 31: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 31November 14, 2007

MobileData

Package with objects to represent parts of the data plane which are available

Represent available connection configurations which are known and/or present Can drill down to find objects supporting an interface

Request a configuration of the data plane QoS preferences, required parameters Leverage the GCF to provide the data plane

Application use is optional – if only defaults are needed and specified in JAD or preferences

Page 32: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 32November 14, 2007

Mobiledata Class diagramPackage javax.microedition.mobiledata

+getBandwidth()+getNetwork()+addListener()+getState() : byte+getParameter(in param : String) : Object+getMobileInterface() : MobileInterface

«interface»ConnectionInfo

+getDestinationNames() : String[]+getMobileInterfaceNames() : String[]+getMobileInterface(in name : String) : MobileInterface+getAccessTechnologieNames() : String[]+getByAccessTechnology(in name : String) : String[]+getConnectionInfo(in conn : Connection) : ConnectionInfo+getDestination(in name : String) : Destination

MobileDataManager

+notifyStateChange(in conn : Connection, in newstate : int)+notifyPendingLoss(in conn : Connection)+notifyParameterChanged(in conn : Connection, in parm : String, in newvalue : Object)

«interface»ConnectionListener

1

*

+isActive() : boolean+getName() : String+getConnConfig() : ConnConfigMI+addListener(in listener : MobileInterfaceListener)+isAvailable() : boolean+getDestinations() : String[]

«interface»MobileInterface

+open() : Connection+setParameter(in parm : String, in value : Object)+getGlobalAddresses() : String[]+getLocalAddresses() : String[]+getIPVersion() : String+getParameter(in parm : String) : Object+getParameterList() : String[]

«interface»ConnConfig

+getDestination() : Destination

«interface»ConnConfigDest

+getMobileInterfaces() : String[]+getCurrentMobileInterface() : MobileInterface+getName() : String+isActive() : boolean+addListener(in listener : DestinationListener)+getConnConfig() : ConnConfigDest

«interface»Destination

-has0..*

1

+getMobileInterface() : MobileInterface

«interface»ConnConfigMI

-has0..*

1

+notifyActive(in isActive : boolean)

«interface»DestinationListener

+notifyActive(in isActive : String)+notifyNetwork(in newNetwork : String)+notifyChanged(in mi : MobileInterface, in changeType : int)

«interface»MobileInterfaceListener

-is provided by

1

-has

1..*

+close()

«interface»io::Connection

11

+getAccessTechnology() : String+getSupportedParameters() : String[]+getParameter(in parm : String) : Object

«interface»PhysicalInterface

-has

1..*

1

+getPhysicalInterface() : PhysicalInterface

«interface»PhysicalMobileInterface +getSupportingDestination() : Destination

+getDestinationsUsed() : String

«interface»TunnelMobileInterface

-has

1

*

*

-has1

Physical entity

Configuration entity

Selector entity

Page 33: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 33November 14, 2007

Physical Interface

Represents actual interface hardware in the device

Can learn information about the capabilities of that interface What capabilities (parameters) are supported What the ‘best’ setting possible is for each parameter

Network preferences would be accessed through a NetworkPreferences object

+getAccessTechnology() : String+getSupportedParameters() : String[]+getParameter(in parm : String) : Object

«interface»PhysicalInterface

Page 34: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 34November 14, 2007

MobileInterface

A configuration of a data path ESSID configuration for 802.11 APN configuration for 3GPP MobileIP configuration (HA address, etc.)

PhysicalMobileInterface – configuration of an actual data interface to a network Radio, modem, USB, etc.

TunnelMobileInterface – configuration of a data-path component which transforms data IPSec, VPN, MobileIP Can support session continuity – platform picks new route when a link is

being lost Can be used to restrict connections to a particular configuration Corresponds to an AccessPreferences object

+isActive() : boolean+getName() : String+getConnConfig() : ConnConfigMI+addListener(in listener : MobileInterfaceListener)+isAvailable() : boolean+getDestinations() : String[]

«interface»MobileInterface

+getPhysicalInterface() : PhysicalInterface

«interface»PhysicalMobileInterface +getSupportingDestination() : Destination

+getDestinationsUsed() : String

«interface»TunnelMobileInterface

Page 35: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 35November 14, 2007

MobileInterface skeletons

MobileInterfaces are stored configurations, they may not always be present and usable

A MobileInterface which is not known to be present is a skeleton

Skeleton interfaces can be used in configuration/preferences operations but attempts to establish a connection may fail

Page 36: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 36November 14, 2007

Transient MobileInterfaces

Represent configurations for discovered networks

These are configurations which are not stored in the system

MobileInterface configuration goes away when the network goes out of rangeUnless the user saves the configuration

Page 37: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 37November 14, 2007

Destinations

Abstract representation of a type of connectivity ‘Stand-in’ for multiple MobileInterfaces Platform selection of the final data configuration

Uses preferences if more than one configuration is available which meets the destination

Connection doesn’t change after being setup Evaluated on each new Connection open request

Names come from stored configurations Have value only to the creator of the name and the user of the

name Same value may be provisioned in the configuration and JAD

+getMobileInterfaces() : String[]+getCurrentMobileInterface() : MobileInterface+getName() : String+isActive() : boolean+addListener(in listener : DestinationListener)+getConnConfig() : ConnConfigDest

«interface»Destination

Page 38: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 38November 14, 2007

Relation of Destination and MobileInterface objects

Internet CarrierNetHome

Tmobile(Hotspot)

“JoesHome”GPRS_public

(APN)GPRS_carrier

(APN)

WiFi GPRS/UMTS

Destinations

MobileInterfaces (skeletons)

Physical interfaces

Page 39: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 39November 14, 2007

ConnConfig

Dynamic configuration of a connection, prior to opening the connection Set parameters to build the connection configuration

request Used to open a data session Parallel to Connector class in Java ME Bound to either a MobileInterface or a

Destination Controls the set of configurations which the platform

can consider to establish the session

+open() : Connection+setParameter(in parm : String, in value : Object)+getGlobalAddresses() : String[]+getLocalAddresses() : String[]+getIPVersion() : String+getParameter(in parm : String) : Object+getParameterList() : String[]

«interface»ConnConfig

+getDestination() : Destination

«interface»ConnConfigDest

+getMobileInterface() : MobileInterface

«interface»ConnConfigMI

Page 40: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 40November 14, 2007

Connection Parameters

A set of generic connection configuration parameters are being definedSimilar to (possibly based on?) the 802.21

data types Support for access technology specific

parametersOnly when using a MobileInterface however –

these cannot be used on a Destination

Page 41: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 41November 14, 2007

ConnectionInfo

Information about actual Connection configurationActual negotiated capabilities Interface being used

Access to modify an established connectionChange bandwidth, other QoS settings

+getBandwidth()+getNetwork()+addListener()+getState() : byte+getParameter(in param : String) : Object+getMobileInterface() : MobileInterface

«interface»ConnectionInfo

Page 42: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 42November 14, 2007

Notifications

Support notifications about possible connectivity and changes in connectivity

Connection impact Loss of connection Pending loss of connection Change in connection configuration

Interfaces and Destinations Becoming available/active Better provider becoming availables

Page 43: JSR-307 MobileData and Mobility (preferences)

November 14, 2007 JCP JSR-307 Expert Group 43

Wrap-up

Page 44: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 44November 14, 2007

Complementary services

JSR-307 is providing some similar services to applications as MIH More services are present in 307, these are not in the

MIH scope (preferences, control of the MIHF) We can map 307 operations to current MIH SAP

operations JSR-307 focus is on services built over MIH

functionality Not making the decision, but allowing applications to

see the result of the decision Keeping things simple for applications

Page 45: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 45November 14, 2007

Anything else?

Are there operations which might be useful to support within JSR-307 for application developers? Developer input is limited at present We appreciate any other use cases and requirements

which can be provided! Do we need formal cooperation between the two

groups? Review of the JSR-307 ED is appreciated

Page 46: JSR-307 MobileData and Mobility (preferences)

JCP JSR-307 Expert Group 46November 14, 2007

More information

JCP information sitehttp://jcp.org/en/jsr/detail?id=307When Early Draft is released it will be

available hereEG request to join link is here