november 14, 2007jcp jsr-307 expert group 1 jsr-307 mobiledata and mobility (preferences) eric...
TRANSCRIPT
November 14, 2007 JCP JSR-307 Expert Group 1
JSR-307MobileData and Mobility (preferences)
Eric Overtoom, Motorola
November 14, 2007
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
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
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
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
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
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
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
JCP JSR-307 Expert Group 9November 14, 2007
Comparison of components
JSR-307 mobiledata JSR-307 connectionpreferences
Java application using JSR-307
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
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
November 14, 2007 JCP JSR-307 Expert Group 12
Platform reference architecture
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
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
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
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
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
November 14, 2007 JCP JSR-307 Expert Group 18
Mobility* /Preferences
* Mobility here is from cellular technology definitions – selection of a network to use
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
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
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
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
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
*
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
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
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
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
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
November 14, 2007 JCP JSR-307 Expert Group 29
MobileData
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
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
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
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
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
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
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
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
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
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
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
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
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
November 14, 2007 JCP JSR-307 Expert Group 43
Wrap-up
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
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
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