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