460 likes | 476 Views
JSR-307 proposes specifications for Java MicroEdition to enable applications to control connectivity preferences and data session establishment, addressing the issue of uniform settings for all Java connections. It focuses on abstract connectivity, device abilities, and application needs, allowing for specific connection attributes requests and dynamic per-connection configurations. This JSR aims to provide a means for applications to request, manage, and monitor various connection types across different access technologies.
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