21-07-0429-00-0000-JSR

Download Report

Transcript 21-07-0429-00-0000-JSR

JSR-307
MobileData and
Mobility (preferences)
Eric Overtoom, Motorola
November 14, 2007
November 14, 2007
JCP JSR-307 Expert Group
1
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
November 14, 2007
JCP JSR-307 Expert Group
2
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
November 14, 2007
JCP JSR-307 Expert Group
3
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
November 14, 2007
JCP JSR-307 Expert Group
4
Sample use cases

Games which can post high-score information for
competition


Music Sync/Catalog


Wants to know when on home network to sync, avoid network
access otherwise
Carrier applications


Need access to particular APN on GPRS, or use public WiFi
hotspot access
Use GPRS or require a IPSec connection over WiFi to the carrier
core network
Connection configuration

Need > 200 kbps to carry a video stream
November 14, 2007
JCP JSR-307 Expert Group
5
JSR-307 is


Common means to request particular connection
attributes, across access technologies
Learn about device abilities




Provide way to request more abstract connectivity,
instead of specific access technology configurations
Configuration for IP networking
Control connectivity preferences



Available access technologies/configurations, how a particular
connection is configured and routed
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
November 14, 2007
JCP JSR-307 Expert Group
6
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
November 14, 2007
JCP JSR-307 Expert Group
7
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


The MIHF likely is at least a portion of that data
management layer


Focus is on application requests to establish sessions, and
obtain information about sessions
Managing options and session continuity
Depending on implementation, some JSR-307
preferences may influence operation of the MIHF
November 14, 2007
JCP JSR-307 Expert Group
8
Comparison of components
Java application using JSR-307
JSR-307 mobiledata
November 14, 2007
JSR-307 connectionpreferences
JCP JSR-307 Expert Group
9
JSR-307 participants
Motorola – lead and co-lead
 Nokia
 Ericsson
 Telcordia (802.21 liaison)
 Sony-Ericsson
 Sun
 Siemens

November 14, 2007
JCP JSR-307 Expert Group
10
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
11
Platform reference
architecture
November 14, 2007
JCP JSR-307 Expert Group
12
Reference Platform
Java applications
mobiledata
connection preferences
GCF
CLDC/CDC VM (with
profiles)
Route Selection
Session
Continuity
(VPN)
802.11
802.16
3GPP
MIHF
November 14, 2007
JCP JSR-307 Expert Group
Conn.
Prefs
Device platform Connectivity Implementation
Physical Interfaces
13
Connection configurations
Apply to all
connection requests

Single
request
For all connections, the configuration request
which is used by the platform comes from 4
sources (only one of which is required)
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
 Device
November 14, 2007
JCP JSR-307 Expert Group
14
Connection configuration
JAD defaults
IPVersion = 4
WiFi only
Platform Defaults
Final Connection
Wifi preferred
SSID=*
Bandwidth=0
Trraffic Class=
Background
WiFi only
SSID={Tmobile, Home, *}
Bandwidth=64
Traffic Class=Streaming
IPVersion = 4
Application Preferences
SSID={Tmobile, Home, *}
November 14, 2007
JCP JSR-307 Expert Group
Mobiledata
Application Dynamic
settings
Bandwidth=64
Traffic Ckass=
Streaming
Connection
Preferences
15
Interface configurations

We assume that below the Java implementation is the
actual platform connection manager



Assume there is a set of stored configurations of the
access technologies



JSR-307 exposes capabilities of this manager, no new functions
or logic are added
Java objects just expose native functionality
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
November 14, 2007
JCP JSR-307 Expert Group
16
Example configuration tree
Application
‘HomeBrowse’
MobileInterface
(skeleton?)
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.
‘Home’
MobileIP (MyHouse)
“MyHouse”
“Internet”
MobileInterface
(skeleton)
“Hotspot”
“Caribou”
WiFi
“Medianet”
WiFi
Required destination
Exposed destination
November 14, 2007
Configuration
data
Physical Interface
GPRS
Destination
Physicalinterface
MobileInterface
JCP JSR-307 Expert Group
17
Mobility* /
Preferences
* Mobility here is from cellular technology definitions – selection of a network to use
November 14, 2007
JCP JSR-307 Expert Group
18
Connectionpreferences

Package with interfaces to control how the
platform will select a route for a connection
when more than one route is possible
is preferred – GPRS or WiFi when both
networks can be seen?
 Which

Set of attributes in the application JAD file
 Minimum
or default preferences this
application needs to install/run
November 14, 2007
JCP JSR-307 Expert Group
19
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
November 14, 2007
JCP JSR-307 Expert Group
20
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

November 14, 2007
JCP JSR-307 Expert Group
21
Configurable Hierarchy
Configurable
Voice telephony
(JSR-253)
Messaging
(JSR-120)
IMS VoIP
“Internet”
Configuration
“Home”
November 14, 2007
“AcmeCoffee”
GSM Modem
JCP JSR-307 Expert Group
22
Package class diagram
*
Package javax.microedition.connectionpreferences
«interface»
PreferenceSettings
«interface»NetworkPreferences
«interface»
AccessPreferences
+getName() : String
+getAccessType() : String
+getAccessTechnology() : String
+getPreferredNetworks() : String[]
+setPreferredNetworks(in preflist : String[])
+getAvailableNetworks() : String[]
«interface»
ConfigurablePreferences
+getPreferences() : PreferenceSettings[]
+setPreferences(in prefs : PreferenceSettings[])
+getAllowedProviderNames() : String[]
+getNegativePreferences() : PreferenceSettings[]
+setNegativePreferences(in prefs : PreferenceSettings)
+getName() : String
PreferencesManager
1
-has
+getConfigurableNames() : String[]
+getProviderSettings(in name : String) : PreferenceSettings
+getProviderNames() : String[]
November 14, 2007
JCP JSR-307 Expert Group
23
AccessPreferences
«interface»
AccessPreferences
+getName() : String
+getAccessType() : String
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
November 14, 2007
JCP JSR-307 Expert Group
24
«interface»NetworkPreferences
NetworkPreferences
+getAccessTechnology() : String
+getPreferredNetworks() : String[]
+setPreferredNetworks(in preflist : String[])
+getAvailableNetworks() : String[]
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

November 14, 2007
JCP JSR-307 Expert Group
25
Sharing of network preferences
Telephony::ConfigurablePreferences
Messaging::ConfigurablePreferences
IMS::ConfigurablePreferences,
ProviderPreferences
“Internet”
Home:
AccessPreferences
Home:
MobileInterface
November 14, 2007
AcmeCoffee:
AccessPreferences
AcmeCoffee:
MobileInterface
GSM:
NetworkPreferences
Internet:Destination
JCP JSR-307 Expert Group
GSM:
PhysicalInterface
26
ConfigurablePreferences
«interface»
ConfigurablePreferences
+getPreferences() : PreferenceSettings[]
+setPreferences(in prefs : PreferenceSettings[])
+getAllowedProviderNames() : String[]
+getNegativePreferences() : PreferenceSettings[]
+setNegativePreferences(in prefs : PreferenceSettings)
+getName() : String
Application or service top-level
configuration
 May have other Configurable objects
below to select from

 Each
of these then has preferences for its
own selections to make
November 14, 2007
JCP JSR-307 Expert Group
27
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 settings

 Security
or device restrictions
 Operator restrictions
November 14, 2007
JCP JSR-307 Expert Group
28
MobileData
November 14, 2007
JCP JSR-307 Expert Group
29
JavaME Generic Connection
Framework

The GCF is an existing abstract means to communicate
off device



Application requests a connection using a URI



Includes IP based as well as serial, Bluetooth, etc.
Focus is on data-plane send/receive operations
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
November 14, 2007
JCP JSR-307 Expert Group
30
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
November 14, 2007
JCP JSR-307 Expert Group
31
Mobiledata Class diagram
Package javax.microedition.mobiledata
«interface»ConnConfig
+open() : Connection
+setParameter(in parm : String, in value : Object)
+getGlobalAddresses() : String[]
+getLocalAddresses() : String[]
+getIPVersion() : String
+getParameter(in parm : String) : Object
+getParameterList() : String[]
«interface»MobileInterfaceListener
+notifyActive(in isActive : String)
+notifyNetwork(in newNetwork : String)
+notifyChanged(in mi : MobileInterface, in changeType : int)
«interface»ConnConfigMI
«interface»ConnConfigDest
+getMobileInterface() : MobileInterface
+getDestination() : Destination
«interface»DestinationListener
+notifyActive(in isActive : boolean)
0..*
-has
0..*
-has
1
1
«interface»
PhysicalInterface
+getAccessTechnology() : String
+getSupportedParameters() : String[]
+getParameter(in parm : String) : Object
*
1
«interface»MobileInterface
«interface»Destination
+isActive() : boolean
+getName() : String
+getConnConfig() : ConnConfigMI
+addListener(in listener : MobileInterfaceListener)
+isAvailable() : boolean
+getDestinations() : String[]
+getMobileInterfaces() : String[]
+getCurrentMobileInterface() : MobileInterface
+getName() : String
+isActive() : boolean
+addListener(in listener : DestinationListener)
+getConnConfig() : ConnConfigDest
1..*
1
-is-has
provided by
*
1..*
«interface»
TunnelMobileInterface
+getSupportingDestination() : Destination
+getDestinationsUsed() : String
«interface»
PhysicalMobileInterface
+getPhysicalInterface() : PhysicalInterface
-has
-has
1
«interface»ConnectionInfo
1
+getBandwidth()
+getNetwork()
+addListener()
+getState() : byte
+getParameter(in param : String) : Object
+getMobileInterface() : MobileInterface
-has
«interface»
io::Connection
+close()
1
1
MobileDataManager
+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
1
*
«interface»ConnectionListener
+notifyStateChange(in conn : Connection, in newstate : int)
+notifyPendingLoss(in conn : Connection)
+notifyParameterChanged(in conn : Connection, in parm : String, in newvalue : Object)
Physical entity
Configuration entity
Selector entity
November 14, 2007
JCP JSR-307 Expert Group
32
Physical Interface


«interface»
PhysicalInterface
+getAccessTechnology() : String
+getSupportedParameters() : String[]
+getParameter(in parm : String) : Object
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
November 14, 2007
JCP JSR-307 Expert Group
33
«interface»MobileInterface
+isActive() : boolean
+getName() : String
+getConnConfig() : ConnConfigMI
+addListener(in listener : MobileInterfaceListener)
+isAvailable() : boolean
+getDestinations() : String[]
MobileInterface

A configuration of a data path
«interface»
PhysicalMobileInterface
+getPhysicalInterface() : PhysicalInterface
«interface»
TunnelMobileInterface
+getSupportingDestination() : Destination
+getDestinationsUsed() : String

ESSID configuration for 802.11
 APN configuration for 3GPP
 MobileIP configuration (HA address, etc.)

PhysicalMobileInterface – configuration of an actual data interface to
a network


TunnelMobileInterface – configuration of a data-path component
which transforms data




Radio, modem, USB, etc.
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
November 14, 2007
JCP JSR-307 Expert Group
34
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

November 14, 2007
JCP JSR-307 Expert Group
35
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 range

 Unless
November 14, 2007
the user saves the configuration
JCP JSR-307 Expert Group
36
«interface»Destination
+getMobileInterfaces() : String[]
+getCurrentMobileInterface() : MobileInterface
+getName() : String
+isActive() : boolean
+addListener(in listener : DestinationListener)
+getConnConfig() : ConnConfigDest
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
November 14, 2007
JCP JSR-307 Expert Group
37
Relation of Destination and
MobileInterface objects
Internet
Tmobile
(Hotspot)
Home
“JoesHome”
WiFi
November 14, 2007
CarrierNet
GPRS_public
(APN)
GPRS/UMTS
JCP JSR-307 Expert Group
GPRS_carrier
(APN)
Destinations
MobileInterfaces
(skeletons)
Physical interfaces
38
«interface»ConnConfig
+open() : Connection
+setParameter(in parm : String, in value : Object)
+getGlobalAddresses() : String[]
+getLocalAddresses() : String[]
+getIPVersion() : String
+getParameter(in parm : String) : Object
+getParameterList() : String[]
ConnConfig

«interface»ConnConfigMI
«interface»ConnConfigDest
+getMobileInterface() : MobileInterface
+getDestination() : Destination
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
November 14, 2007
JCP JSR-307 Expert Group
39
Connection Parameters

A set of generic connection configuration
parameters are being defined
 Similar
to (possibly based on?) the 802.21
data types

Support for access technology specific
parameters
when using a MobileInterface however –
these cannot be used on a Destination
 Only
November 14, 2007
JCP JSR-307 Expert Group
40
«interface»ConnectionInfo
ConnectionInfo

+getBandwidth()
+getNetwork()
+addListener()
+getState() : byte
+getParameter(in param : String) : Object
+getMobileInterface() : MobileInterface
Information about actual Connection
configuration
 Actual
negotiated capabilities
 Interface being used

Access to modify an established
connection
 Change
November 14, 2007
bandwidth, other QoS settings
JCP JSR-307 Expert Group
41
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
42
Wrap-up
November 14, 2007
JCP JSR-307 Expert Group
43
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
November 14, 2007
JCP JSR-307 Expert Group
44
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
November 14, 2007
JCP JSR-307 Expert Group
45
More information

JCP information site
 http://jcp.org/en/jsr/detail?id=307
 When
Early Draft is released it will be
available here
 EG request to join link is here
November 14, 2007
JCP JSR-307 Expert Group
46