460 likes | 590 Views
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)
E N D
JSR-307MobileData and Mobility (preferences) Eric Overtoom, Motorola November 14, 2007 JCP JSR-307 Expert Group
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
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
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
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
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
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
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
Comparison of components Java application using JSR-307 JSR-307 mobiledata JSR-307 connectionpreferences JCP JSR-307 Expert Group
JSR-307 participants • Motorola – lead and co-lead • Nokia • Ericsson • Telcordia (802.21 liaison) • Sony-Ericsson • Sun • Siemens JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
Platform reference architecture JCP JSR-307 Expert Group
Reference Platform MIHF Physical Interfaces JCP JSR-307 Expert Group
Apply to all connection requests 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 Single request JCP JSR-307 Expert Group
Connection configuration Mobiledata Connection Preferences JCP JSR-307 Expert Group
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
Example configuration tree JCP JSR-307 Expert Group
Mobility* /Preferences * Mobility here is from cellular technology definitions – selection of a network to use JCP JSR-307 Expert Group
Connectionpreferences • 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 JCP JSR-307 Expert Group
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
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
Configurable Hierarchy Configurable Configuration JCP JSR-307 Expert Group
Package class diagram JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
Sharing of network preferences JCP JSR-307 Expert Group
ConfigurablePreferences • 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 JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
MobileData JCP JSR-307 Expert Group
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
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
Mobiledata Class diagram JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
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
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 the user saves the configuration JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
Relation of Destination and MobileInterface objects JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
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 • Only when using a MobileInterface however – these cannot be used on a Destination JCP JSR-307 Expert Group
ConnectionInfo • Information about actual Connection configuration • Actual negotiated capabilities • Interface being used • Access to modify an established connection • Change bandwidth, other QoS settings JCP JSR-307 Expert Group
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 JCP JSR-307 Expert Group
Wrap-up JCP JSR-307 Expert Group
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
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
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 JCP JSR-307 Expert Group