Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Parallel port wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Airborne Networking wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
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