Title: JSR-307 MobileData and Mobility (preferences)
1JSR-307MobileData and Mobility (preferences)
- Eric Overtoom, Motorola
- November 14, 2007
2Introduction
- 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
3Purpose
- 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 doesnt 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
4Core 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
5Sample 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 gt 200 kbps to carry a video stream
6JSR-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 shouldnt be sensitive to technology
7JSR-307 isnt
- 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
8JSR-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
9Comparison of components
Java application using JSR-307
JSR-307 mobiledata
JSR-307 connectionpreferences
10JSR-307 participants
- Motorola lead and co-lead
- Nokia
- Ericsson
- Telcordia (802.21 liaison)
- Sony-Ericsson
- Sun
- Siemens
11JSR-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
12Platform reference architecture
13Reference Platform
MIHF
Physical Interfaces
14Connection 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
Single request
15Connection configuration
Mobiledata
Connection Preferences
16Interface 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
17Example configuration tree
18Mobility /Preferences
Mobility here is from cellular technology
definitions selection of a network to use
19Connectionpreferences
- Package with interfaces to control how the
platform will select a route for a connection
when more than one route is possible - Which 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
20Configurable 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
21Configuration 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
22Configurable Hierarchy
Configurable
Configuration
23Package class diagram
24AccessPreferences
- 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
25NetworkPreferences
- 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
26Sharing of network preferences
27ConfigurablePreferences
- 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
28Application 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
29MobileData
30JavaME 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
31MobileData
- 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
32Mobiledata Class diagram
33Physical 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
34MobileInterface
- 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
35MobileInterface 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
36Transient 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 the user saves the configuration
37Destinations
- 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 doesnt 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
38Relation of Destination and MobileInterface
objects
39ConnConfig
- 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
40Connection 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
- Only when using a MobileInterface however these
cannot be used on a Destination
41ConnectionInfo
- Information about actual Connection configuration
- Actual negotiated capabilities
- Interface being used
- Access to modify an established connection
- Change bandwidth, other QoS settings
42Notifications
- 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
43Wrap-up
44Complementary 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
45Anything 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
46More information
- JCP information site
- http//jcp.org/en/jsr/detail?id307
- When Early Draft is released it will be available
here - EG request to join link is here