WO2009106931A1 - Transport selection for multi-transport structures - Google Patents

Transport selection for multi-transport structures Download PDF

Info

Publication number
WO2009106931A1
WO2009106931A1 PCT/IB2008/050709 IB2008050709W WO2009106931A1 WO 2009106931 A1 WO2009106931 A1 WO 2009106931A1 IB 2008050709 W IB2008050709 W IB 2008050709W WO 2009106931 A1 WO2009106931 A1 WO 2009106931A1
Authority
WO
WIPO (PCT)
Prior art keywords
transport
connection
parameters
transports
communication
Prior art date
Application number
PCT/IB2008/050709
Other languages
French (fr)
Inventor
Arto Palin
Juha-Matti Tuupola
Timo Eriksson
Jukka REUNAMÄKI
Niko Kiukkonen
Original Assignee
Nokia Corporation
Nokia, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corporation, Nokia, Inc. filed Critical Nokia Corporation
Priority to PCT/IB2008/050709 priority Critical patent/WO2009106931A1/en
Publication of WO2009106931A1 publication Critical patent/WO2009106931A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/51Allocation or scheduling criteria for wireless resources based on terminal or device properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers

Definitions

  • the present invention relates to a communication architecture, and more specifically, to a communication architecture for establishing connectivity between devices using one or more transports.
  • software programs may include instruction sets that are executable by a processor, and are further organized to receive input (e.g., data) for use in a calculation or determination resulting in an output.
  • input e.g., data
  • Software technology has evolved to transform these individual instruction sets into program modules that may in turn be integrated together to form the more complex programs.
  • Today's more-sophisticated software programs may receive various forms of input such as raw data, for example as stored in magnetic or optical storage, user input through various known types of user interfaces, measured or monitored information converted to electronic information from electronic and/or electromechanical sensors, etc.
  • programs may be configured to produce data usable by other software applications.
  • a problem may be presented in conveying the information from one program to another. If the relationship is known before the programs are created, then a specific strategy may be devised to convert one program's output into another program's input. Traditionally this strategy has led to functional but rigid software applications, requiring frequent and possibly substantial revisions due to changes in functionality, platform, architecture, etc.
  • nodes modular program units, or "nodes,” that can be revised or replaced without having to interrupt overall device operation.
  • some nodes may contribute information to a shared memory space, while others may read previously stored information from the shared memory space or may combine these functions.
  • Other types of nodes may also be specialized to provide communication services.
  • altering program elements e.g., altering, adding or deleting one or more nodes
  • memory usage may be optimized since information may be stored in a single location while being accessible to all of the nodes.
  • the present invention may include at least a method, computer program, device and system for automating connection management in a manner that may be transparent to any actively communicating applications operating in a Network on Terminal Architecture (NoTA).
  • An application level entity such as an application node, may access another node by making a request to a high level communication structure via a high level interface. The high level structure may then interact with a lower level structure in order to facilitate a connection to a programmatic element on another device, for example, via a particular communication transport.
  • the lower level structure may manage communication by establishing communication with another device via one or more wireless transports.
  • the selection of both the number of active transports and/or the specific transports to utilize may be determined in view of various parameters. These parameters may, for example, pertain to a particular application operating on the device, the status of the device itself, the status of the one or more communication transports, etc. Moreover, the parameters may be determined on the device, but may also be received from other wirelessly-coupled devices.
  • various embodiments of the present invention may utilize one or more wireless transports in a process of establishing optimized communication. Information obtained pertaining to available devices, alone or in combination with the factor information, may be used to determine a layout of the operational environment.
  • the layout of the operational environment may further be utilized to establish the optimized communication.
  • a low power communication transport may be utilized for control purposes, while faster and more energy intensive communication transport may be used for more traffic-intensive communication.
  • a low-power transport may constantly communicate in order to implement control, while a faster transport may only be employed when necessary to conserve device resources, for example, for transactions that requires faster speed, a large amount of data to be conveyed, etc.
  • FIG. IA discloses an exemplary intra-device Network on Terminal
  • NoTA NoTA
  • FIG. IB discloses a structural diagram of various exemplary layers of an inter-device Network on Terminal Architecture (NoTA) including a Whiteboard-type exchange service in accordance with at least one exemplary embodiment of the present invention.
  • NoTA Inter-device Network on Terminal Architecture
  • FIG. 2 discloses an exemplary need for underlying connectivity establishment in accordance with at least one exemplary embodiment of the present invention.
  • FIG. 3 A discloses a structural example of communication establishment in accordance with at least one exemplary embodiment of the present invention.
  • FIG. 3B discloses an example of establishing access to a target service residing in another device in accordance with at least one exemplary embodiment of the present invention.
  • FIG. 4 discloses an example of various software levels and interfaces through which information may be conveyed in accordance with at least one exemplary embodiment of the present invention.
  • FIG. 5 discloses an exemplary configuration for the lower level communication structure in accordance with at least one exemplary embodiment of the present invention.
  • FIG. 6 discloses an example of connection establishment in accordance with at least one exemplary embodiment of the present invention.
  • FIG. 7 discloses an example of buffer level condition parameters in accordance with at least one embodiment of the present invention.
  • FIG. 8 discloses an example of the utilization of one or more wireless transports for controlling buffer levels in accordance with at least one embodiment of the present invention.
  • FIG. 9 discloses an example of multi-transport communication in accordance with at least one embodiment of the present invention.
  • FIG. 10 discloses a flowchart of an exemplary communication management process in accordance with at least one embodiment of the present invention.
  • FIG. 1 IA discloses an exemplary communication scenario including multiple buffers containing data in accordance with at least one embodiment of the present invention.
  • FIG. 1 IB discloses an example of information routing between buffers in accordance with at least one embodiment of the present invention.
  • FIG. 11C discloses at least one impact of the loss of a selected transport on message routing in accordance with at least one embodiment of the present invention.
  • FIG. 12A discloses an example of information routing between buffers including transport failure protection in accordance with at least one embodiment of the present invention.
  • FIG. 12B discloses a further example the transport failure protection described with respect to FIG. 12A in accordance with at least one embodiment of the present invention.
  • FIG. 12C discloses an example of transport failure protection activity during a transport failure in accordance with at least one embodiment of the present invention.
  • NoTA Network on Terminal Architecture
  • NoTA Network on Terminal Architecture
  • NoTA is a service based interconnect-centric platform architecture usable in various electronic apparatuses including wired and/or wireless (e.g., mobile) devices.
  • the interconnect-centric approach incorporated in NoTA may allow any physical sub-system to directly communicate with other sub-systems while supporting multiple parallel connections. Direct connections are possible due to simple switches optimized for the underlying physical media.
  • NoTA interconnect architecture and related interfaces may be complexity and performance optimized for service and data communication, and may be designed in such a way that different communication media technologies can be utilized.
  • FIG. IA discloses an example of NoTA implemented in a single device
  • the NoTA platform architecture consists of subsystems 102 connected together via interconnects as shown, for example, at 104. It is also possible for subsystems to be directly coupled to other subsystems as shown at 102' in FIG. IA. A coupled configuration may exist in a scenario where subsystems frequently cooperate during operation.
  • FIG. IA also discloses service nodes (SN) 106 and application nodes (AN) 108 (e.g., PN, RN and AG) that may be mapped into subsystems 102 and 102'.
  • Subsystems in NoTA context may encompass all of the resources (e.g., computing, software, peripherals, etc.) required to implement the services and/or applications running in the corresponding subsystem. [0031] Now referring to FIG.
  • Whiteboard 110 is an example of an application and service level that may comprise the highest level of operation in this architecture.
  • operational groups 112 may be formed including whiteboards 114 and various application nodes 108.
  • Application nodes 108 may correspond to application existing on a plurality of wireless communication devices, and may be utilized to exchange information between these applications, for example, by placing data into, and removing data from, whiteboard 114.
  • the various nodes may consist of proactive nodes (PN) 116 that may place information into whiteboard 114, reactive nodes (RN) 120 that may take information from whiteboard 114 and agent nodes (AG) 122 that may operate either in a PN or RN mode depending on the particular application.
  • PN proactive nodes
  • RN reactive nodes
  • AG agent nodes
  • ITI Information semantics interpreter
  • whiteboard 114 may provide a standardized means for application interaction that overcomes many incompatibilities.
  • Billboard level 124 may facilitate interaction between services available on the one or more devices. Services 134 and clients 136 that may utilize these services may be organized in service domains 126.
  • service domains 126 may correspond to a particular protocol, such as UPnP, BT SDP, Bonjour, etc.
  • services 134 may be represented by service nodes (SN) 130, and likewise, application nodes (AN) 132 may be established to correspond to applications.
  • service domains 126 may interact utilizing service ontology interpreters (SOI) 128. SOI 128 may allow service domains 126 to interact with other service domains (e.g., 138), even if service domain 138 resides on another wirelessly-linked device (e.g., to provide access information to service domains 126).
  • SOI service ontology interpreters
  • Connectivity map 144 may define connectivity methods/possibilities and topology for different devices participating in sharing resources in order to support a top level, for example whiteboard 110, and also billboard-type services in billboard level 122.
  • devices 144 may be linked in directly connected groups 142.
  • Examples of directly connected groups of devices (Dev) 142 may include devices connected via BluetoothTM piconet, a WLAN network, a wUSB link, etc.
  • Each directly connected group of devices 142 may further be linked by gateways (GW) 146.
  • FIG. 2 discloses an example scenario wherein application and/or service nodes may reside on two different devices 200 and 202.
  • Whiteboard sections 152 A and 152B also reside on these devices, respectively, ideally providing a common memory space via which the nodes may interact.
  • interaction with a common memory space in the form of whiteboard 152 may initially depend upon the establishment a wireless connection between whiteboard sections 152A and 152B.
  • PN proactive node
  • whiteboard 152 A may allow PN 210 access to other shared memory spaces, such as service domain 126 (e.g., to allow an application to access a desired service, like a printer service), or any other exemplary subsystem 102 as previously discussed in accordance with various embodiments of the present invention.
  • service domain 126 e.g., to allow an application to access a desired service, like a printer service
  • any other exemplary subsystem 102 as previously discussed in accordance with various embodiments of the present invention.
  • interaction between nodes may not be problematic on a single device in view of the locally interconnected subsystems However, this interaction may become more difficult with multiple devices linked, for example, over one or more wireless transports.
  • FIG. 3 A discloses an example of an underlying logical architecture that may be utilized in implementing NoTA in accordance with at least one exemplary embodiment of the present invention.
  • NoTA may be configured as multiple subsystems (e.g., 300 and 350) coupled by interconnect 312.
  • interconnect 312 As previously set forth, a communication link between devices that may be both established and managed by a lower operational level may facilitate the routing of messages for higher level subsystems, such as sections (152 A and 152B) of the same shared memory space (whiteboard) 152, without the actual involvement of the higher levels in any communication configuration.
  • NoTA interconnect 312 may comprise two layers: High Interconnect (H IN) layer 302 and Low Interconnect (LJN) layer 304 coupled to corresponding H IN 352 and L_IN 354 by switch 310.
  • the various communication layers may further interact over interfaces (abbreviated "IF" in FIG. 3).
  • H_IF 380 may serve as the interface between the application level and H_IN 302/352
  • L IF 382 may serve as the interface between H_IN 302/352 and LJN 304/354.
  • Low interconnect layer 304 may include ISO/OSI layers Ll - L4 and may provide transport socket type interface upwards.
  • High Interconnect layer 302 may act as the middleware between L IN 304 and the higher level Application nodes 306 (AN) and Service nodes (SN) 308 residing in subsystems like 300 and 350.
  • Key HJN 302 functionality may include providing client nodes (AN 306 or SN 308) a direct access to services without having to disclose the location of the latter (e.g., transparent at the top level). All communication establishment may be connection-oriented, meaning that before any service or data communication may take place, connection setup procedures must first be carried out. Security features have been added to countermeasure identified threats.
  • NoTA is an architecture that may be used to provide inter-device service access, making it possible to build independent subsystems providing both services and applications. In an exemplary implementation there may be several individual NoTA devices involved in direct inter sub-system communication.
  • FIG. 3B An example of establishing access to a service on another device via a wireless link, in accordance with at least one exemplary embodiment of the present invention, is disclosed in FIG. 3B.
  • a node in the application/service level of subsystem 300 in device 200 desires to access a service.
  • the service may be identified, for example, by a service description (SID). This service description may be used to locate and establish access to the desired service.
  • SID may be mapped to an Interconnect Address (IA) that may further identify the subsystem in which the service resides.
  • IA Interconnect Address
  • the desired service resides in subsystem 350 in target device 202.
  • a transport In order to make an H IN level connection with the subsystem offering this service, a transport must be selected that is suitable for making a connection between the devices. The IA may then be mapped to the selected transport in L_IN 304. In the example of FIG. 3B, a wireless link must be established because the devices are not coupled by a wired connection. This wireless link is established over interconnect 312 via the wireless transport. Once devices 200 and 202 are wirelessly coupled, H_IN level connection between subsystem 300 and 350 may be possible. In H_IN level 352 a corresponding H IN protocol is usable to negotiate service usage.
  • the (SID -MA) and (IA -> transport) mapping is used only in subsystem 300 in order to build a connection with a proper subsystem offering the needed service (e.g., subsystem 350).
  • upper level e.g., application/service level
  • access may be established from a requesting node in device 200 to a service that is able to fulfill the request, even though the service resides in device 202.
  • This access may be facilitated by lower level link establishment via one or more transports.
  • FIG. 4 describes the interaction of the various communication levels and examples of functions that may be performed by each level and its corresponding interface in accordance with at least one exemplary embodiment of the present invention.
  • 400 discloses an exemplary service node (SN) that may facilitate the set-up and establishment of connections supporting various application nodes (AN) such as 108 shown in FIG. IA.
  • the interface between the top application level and the H_IN level 404 may provide service access, registration and communication stream access via H_IF interface level 402.
  • services may be identified by a Service Identification (SID).
  • SID Service Identification
  • H_IN level 404 may then obtain device-to-device access and communication interface access to LJNup level 408 via LJF interface level 406.
  • the H_IN level access may be identified by an Interconnect Address (IA) which separates different devices/subsystems in high level middleware layer.
  • IA Interconnect Address
  • a general connectivity control interface L_IFdown level 410 may then provide access from transport- independent L_INup level 408 to LJN down 412 including transport specific L IN adaptors as disclosed at 414.
  • Wired and/or wireless transports 418 supported, for example in a mobile device may then utilize the physical hardware and/or corresponding software in device PHY layer 420 to communicate.
  • the service level may utilize an SID to identify different services
  • H IN level middleware layer may then map this SID into a certain IA, which corresponds to an address of a device/subsystem where the respective service may be accessed in the high level middleware layer.
  • L INup level 408 may then map this IA to one or more physical connections (e.g., transports) that may offer connectivity to the device/subsystem that corresponds to the IA.
  • L INdown level 410 may then establish physical connections with the specific transport.
  • FIG. 5 depicts an exemplary low interconnect architecture (L IN) 304, in accordance with at least one exemplary embodiment of the present invention.
  • L IN 304 may provide service upwards to H IN 302 via L_IF interface 382, and may comprise a unified L INup communication structure 408 and one or more L INdown communication structures 412.
  • L INdown 412 may further include at least one L INdown adaptor 414 corresponding to each transport 418 that may be utilized in a device.
  • L_INup 408 may be transport independent (e.g., L_INup operation does not change in dependence upon the transport in use), while LJNdown adaptors 414 in L INdown 412 may be specifically configured for use with each transport 418.
  • Each L_INdown adaptor 414 may provide service to L_INup 408 through one or more L_IFdown interface 410.
  • L_IFdown interfaces 410 may be configured similarly for each transport 418 except in the addressing and access mechanism.
  • L INup 408 may perform multiple functions in embodiments of the present invention. For example, activation and deactivation may be controlled in this layer of the communication structure. The L_IN activation process is controlled over the L IF 382. During the activation process, the L IN 304 may be configured to be able to use wireless and/or wired transports as L_IN transports. As a result of successful activation, L IN 304 may then be able to resolve an Interconnect Address (IA) as well as IAs for the existing Resource Managers (IArm). LJNup 408 may use the query services provided to L_INdown 412 during this activation.
  • IA Interconnect Address
  • IArm Resource Managers
  • L IN 304 When active, L IN 304 may be able to detect loss of a L IN network connection. As a result, any earlier allocated IA and IArms may be released in order to, for example, automatically reconnect the network connection using the same or a different transport.
  • the deactivation process is also controlled over L IF 382. In the deactivation process, L_IN 304 is deactivated in respect of all available transports. During this process, the IA is released.
  • the L IN connection creation process may establish a L IN-level connection between different devices such as shown in FIG. 6.
  • This connection may utilize different types of transport technologies in-between the end-points.
  • the choice of transport may be transparent at the application level, since interfaces with which the nodes may interact may be transport-independent.
  • applications and services e.g., represented in the NoTA architecture by AN 306 and SN 308
  • L IF interface 382 may therefore be equipped with a mechanism to enable a quality of service (QoS) parameter setup to monitor each connection.
  • QoS quality of service
  • the quality of service parameters may not be bound to an actual transport since the transport technology used to carry out data would not be selected at this level. Rather, the QoS requirements may be mapped to an L IN communication instantiation, or "socket," that are abstractions of the actual connection that upper protocols may use.
  • the connectivity requirements may be achieved using, for example, buffer state-based transport selection and flow control.
  • the interface does not have to address transport specific parameters. Instead the requirements, or wishes, may be described in more universal manner.
  • L_INup-L_INup connection protocols may be defined. All of these may be utilized by the L INup communication structure 408, hence making the implementation of the L_INdown adapter 412 simple (e.g., because no generic L_INdown — L INdown peer protocols are required).
  • the following L_INup protocols may be defined for facilitating communication between L IN communication structures existing in two separate devices (e.g., devices 200 and 202 as shown in FIG. 6):
  • a protocol that may provide a means to allocate and identify unique interconnect addresses for each device may be called an Interconnect Address Resolution Protocol (IARP) in accordance with at least one exemplary embodiment of the present invention.
  • IARP Interconnect Address Resolution Protocol
  • a protocol that may provide a means to establish data connection establishment and disconnection between sockets may be called the Device Access Protocol (DAP) in accordance with at least one exemplary embodiment of the present invention.
  • DAP Device Access Protocol
  • This protocol may be called the Connectivity Environment Protocol (CEP) in accordance with at least one exemplary embodiment of the present invention.
  • CEP Connectivity Environment Protocol
  • IARP may be specified to provide inter-device NoTA architecture
  • IARP may contain four messages in order to retrieve and release a unique IA.
  • the IA resolution process may handle IA address allocation between devices as a connection is established. Address resolution may utilize IARP as a resource for supporting connection establishment. Address resolution may be centralized or distributed/autonomous requiring zero manual configuration.
  • the data delivery process may manage data flow control between the sending device and the receiving device. L IF ring-buffer based sockets may be used in this process.
  • the data delivery process may further implement connection loss detection and recovery process in order to provide more reliable data delivery using inter-transport switching.
  • DAP may provide connectivity initialization, creation, and disconnection.
  • L_IN layer internal interface, L_IFdown 410 may provide uniform way for DAP to access individual transports. Each transport needs an adaptor 412 which implements L IFdown interface 410.
  • FIG. 6 shows how the architecture scales from a transport independent intra-device domain (e.g., L_INup 408) to transport independent inter-device domain (e.g. L INdown 412).
  • the depicted communication layers may be coupled data sockets 600 that may directly couple H_IN 302 and L_INdown 412 via transport-independent L INup communication structure 408.
  • Inter-transport switch triggering decisions may be controlled in view of condition information obtained by monitoring the transmit (TX) and receive (RX) buffer fill levels. All data conveyance may be considered "Best Effort" (BE) type. Introduction of some simple QoS classes (e.g. BE, low-latency delivery, minimized power consumption, etc.) may then be possible while still keeping the overall implementation complexity of NoTA manageable.
  • the connection loss and recovery process is a supplemental action in L_IN communication structure 304 that can be utilized for restoration and reconnection procedures that could not otherwise be handled in as part of the inherent abilities of resources operating at the transport level.
  • connection setup, data delivery, and connectivity recovery solutions may include sharing and distributing information about the connectivity in the surrounding environment by means of the CEP protocol. This method may retrieve information about the available connectivity technologies used by other surrounding devices and enables smart decision making procedures when choosing optimal transport to access devices and services.
  • control sockets 602 for enabling L INup-to- L INup protocol communication are shown interacting with the IARP, DAP and CEP protocols in furthering inter-device communication.
  • the L INdown communication structure 412 may provide other communication-related functionality.
  • a query operation may be an L INdown internal function that is intended to provide information concerning transport specific connection opportunities. This functionality may be tightly coupled with scene and connectivity maps by which information regarding the overall space/proximity/neighborhood connectivity may be obtained.
  • the query function is mainly employed during the establishment of a connection.
  • a data delivery process may handle data flow control between the same transport peer entities (e.g., between L_IN up communication structures such as shown in FIG. 6).
  • the same ring buffers may be used as in the previously described case with respect to L IF.
  • a transport specific connection loss and recovery process may also be implemented in L INdown 412. The implementation may substantially depend on the applied transport technology.
  • FIG. 7 discloses an exemplary implementation of the present invention, in accordance with at least one embodiment, wherein services (e.g., represented by SN 700) may produce data into general transmit buffer 702. While a one-way wireless transmission from device 200 to device 202 has been disclosed in FIG. 7 for the sake of explanation, the present invention is not limited to this specific example, and may be implemented to manage two-way communication via wired or wireless communication. Further, while FIG. 7 discloses an example of general buffers 702 located above interconnect structure 312 and transport-specific buffers 704 located within L_IN level 304, other possible configurations may include, for example, general buffer 702 also residing in L_IN level 304.
  • services e.g., represented by SN 700
  • FIG. 7 discloses an example of general buffers 702 located above interconnect structure 312 and transport-specific buffers 704 located within L_IN level 304
  • other possible configurations may include, for example, general buffer 702 also residing in L_IN level 304.
  • control elements may monitor buffer status as shown graphically at 706, 708, 712 and 714.
  • buffer status may be monitored as shown graphically at 706, 708, 712 and 714.
  • various embodiments may also incorporate dynamic buffer allocation which may be taken into account.
  • control elements may identify one or more wireless transports appropriate to implement according to various parameters including, for example, buffer level.
  • buffer level In the exemplary scenario depicted in FIG. 7, SN produces information into general buffer 706 which is operating at a level as shown at 706.
  • the transport specific buffer 704 is approaching full. This may further affect buffers 712 and 714 by starving them of information.
  • resources such as power, processing capacity, etc. may be utilized inefficiently due to the limitations imposed by the wireless transport, which could be the same transport that was utilized when, for example, communication was initially established.
  • FIG. 8 an exemplary implementation wherein co-operation of one or more wireless transports may help to resolve such a problematic scenario is disclosed in FIG. 8.
  • a low power low rate wireless transport 750 may be utilized.
  • general buffer 706 may start to fill up because high speed service data cannot be delivered efficiently over transport 750.
  • various control elements may utilize transport 750 to negotiate a switch to transport 800.
  • L_INup 408 may determine (e.g., through previously mentioned connectivity map 140) that high speed transport 800 can be used and may then facilitate a switch to high speed transport 800.
  • connection speed may be much faster, and therefore, an overflow of the various buffers may be prevented.
  • the same strategy may also be implemented based on receiving device(s) characteristics, meaning that a frequently empty buffers 712 and 714 may indicate that the amount of data being received is too low from the perspective of the data consumer (e.g., device 202 in this example).
  • This characteristic may indicate different situations depending, for example, on the particular transport currently in use. In a scenario where a low speed transport is employed, the limited speed of the transport may be creating a bottleneck in conveying the data. In such a situation it may be beneficial to employ a faster transport having better data-handling capacity.
  • a high speed and/or capacity transport is already in use when a determination is made that receiving-side buffers are near empty, then the problem may be that the volume of data being sent is too low to create a steady stream of incoming data over the transport. In this case, a lower power and/or capacity transport may be selected to convey the data while also conserving power.
  • a decision to perform the switch may be implemented based on many parameters, and also in view of the particular configuration of the present invention that is being utilized. For example, a number of empty (or full) buffers and/or per time period, estimated needed bit-rate (e.g., determined based on monitoring the buffer filling level), etc.
  • the request to perform the switch from one transport to another may be triggered by either end (TX or RX).
  • TX or RX In the case of push type configuration (e.g., stream from device 200 is pushed into storage in device 202) the TX side may be more likely to initiate a switch.
  • pull systems e.g. data is being pulled from device 200 to device 202), the RX side may initiate a switch.
  • the implementation of one or more transports may result in a balancing of buffer levels as shown at 706, 708, 712 and 714 in FIG. 8, and as a result, an optimization of device resources.
  • Another exemplary use may include that during utilization of transport 800 communication is suddenly lost and hence some "fallback" procedure is needed.
  • This procedure may be negotiated during the setup phase of link 800.
  • link 750 may be used (e.g., in accordance with certain parameters) if the link 800 is lost.
  • transport protocols do not control packet retransmission, for example, in a case where a transport delivered an erroneous packet.
  • a bearer may be carrying a data packet successfully from device to another but there is an error in the packet that is not noticed by the bearer error-checking mechanism.
  • a packet already in queue for transport 800 is lost if the link is lost, even though the data is still in TX buffer 704. In this situation, it would be beneficial for the data to be restored from buffer 704 and resent using transport 750.
  • TX buffer 704 is intentionally filled up and then emptied with high bit rate communication link (depending, for example, on whether the provider application can support the increased speed).
  • transport 800 may, in at least one instance, not support a sleep mode that increases operational efficiency, which may mean that substantial power will be consumed during waiting time until TX buffer 704 is filled up again.
  • a low rate radio sleep mode may be utilized, which would mean that the transport 750 is active during the time when TX buffer 704 is filling. This activity may be controlled, as previously set forth, by various hardware and/or software control elements in device 200.
  • Transport control may also be implemented in view of receiving side flow control parameters.
  • a transport-specific RX buffer corresponding to TX buffer 704 may become filled resulting in receiver-side data flow control issues. In such a situation the TX side may stop its transmission. If the link was high bit rate link (e.g., transport 800) it might be beneficial to negotiate that the slower transport 750 should become active until a "GO" signal is again issued. It is also possible for connectivity control elements to monitor radio operation. Either side (TX or RX) may trigger a low power transport mode, but now the TX side control may understand that there is no point trying to use high bit rate link despite its TX buffer filled condition because the RX side issued flow control, and thus cannot process incoming data as fast as the TX side.
  • FIG. 9 discloses devices 1-4.
  • device 1 may be a controlling device, such as a personal communicator, a personal digital assistant (PDA), a wireless tablet device, etc. that is enabled to support a variety of wireless transports.
  • Device 2 may be a low power temperature sensor that is enabled to communicate using BluetoothTM (BT) and Ultra Low Power BluetoothTM (ULP-BT).
  • Device 3 may be a display (e.g., an LCD display) capable of communicating via BT and Ultra Wide Band (UWB).
  • Device 4 may be a file server (e.g., a video server) capable of communicating via ULP-BT, WLAN and UWB.
  • a connection may be established between device 1 and the other devices utilizing a low power medium. This is shown in FIG. 9 by the use of the ULP-BT and BT links. This initial link may be established, for example, to obtain information about the other devices (e.g., supported mediums, available applications, etc.) Otherwise, device 1 may already be aware of the capabilities of the other devices (e.g., from previous connections). In the case of device 2, only a small amount of data is being exchanged. Therefore, device 1 and device 2 may continue to utilize ULP-BT in order to conserve power.
  • the possible connectivity techniques between device 1 and device 4 include ULP-BT, WLAN and UWB.
  • ULP-BT is a low power/speed, transport that would be too slow for video streaming, so the best transport would be either WLAN or UWB.
  • UWB can provide data rate that is much faster than is needed for the video streaming, and thus, UWB would spend a great deal of time in the idle mode (e.g., no transmission or reception) during the video streaming.
  • UWB power consumption during the inactivity periods is much higher compared to ULP-BT, resulting is a waste of power.
  • An optimal solution would then be to use UWB only for transmission and reception of streaming video, and to use ULP-BT to manipulate UWB activity states and related wake-up cycle control.
  • a first exemplary implementation may negotiate the duty cycle already at the beginning of video streaming.
  • the role of ULP-BT would then be to set up the video streaming link as shown in FIG. 9, and to provide a timing reference (e.g., to the UWB radio so that it can awaken at correct moment).
  • This kind of scenario may be used in the situations where the timing between active and inactive states may be fixed. Operation according to this exemplary scenario may be challenging in some situations. For example, if the connectivity patterns are fixed at the beginning of the service, it may be difficult to change or modify the connectivity patterns if any of the parameters change during the connection.
  • the system may operate by utilizing ULP-BT to asynchronously control the WLAN reactivation.
  • a ULP-BT and WLAN are both active.
  • the ULP-BT radio may be used during the WLAN inactive periods, and as soon as high bit rate is needed (e.g., application data is generated) ULP-BT may trigger the WLAN radio to awaken.
  • WLAN radios Once active over the ULP BT radio link, WLAN radios may, for example, communicate on the physical channel utilizing a RTS/CTS (Request-to-Send / Clear-to-Send) mechanism. This type of strategy may be used to manage asynchronous TX/RX activity.
  • RTS/CTS Request-to-Send / Clear-to-Send
  • Another example may include a scenario where a UWB is being used, but then the UWB radio enters hibernation mode.
  • the UWB radios When signaled over the active low power ULP-BT link, the UWB radios may return to the active mode and can reserve enough air time according to information that may be provided from the other wirelessly coupled devices over the ULP-BT link. This information exchange may decrease the time required for UWB connection set-up and/or reestablishment.
  • the operation may be as follows: a first video packet of the stream content is transported over the UWB link from the video server to device 1. Once packet is received, UWB radio may enter into an idle mode.
  • the ULP-BT radio of the device receiving the video stream may then be used to launch the transport of the next video packet of the stream over UWB link when the receiving device notices that the previous video packet of the stream is approaching its end. This operation may enable the higher power usage UWB radios to remain in idle mode most of the time, and as a result, may further significantly enhance power conservation in wirelessly coupled devices.
  • the controlling of WLAN or UWB radio over ULP-BT may be arranged as follows:
  • a ULP-BT connection is created, one logical link may be reserved as a connectivity control channel.
  • This channel may carry information regarding connectivity between devices.
  • connectivity map information may be exchanged.
  • this channel may make it possible to provide timing information (e.g., transport awakening and synchronization reference point delivery between devices) for control purposes.
  • This connectivity information may be exchanged using any available transport, and may be used with many different applications to provide better initial transport selection, faster service discovery, optimal transport medium selection, transport handover etc.
  • Connectivity map 140 may also be beneficial when selecting active bearer from multiple available bearers during link setup, link maintenance and data delivery. For example, at some point in FIG.
  • a user of device 1 may want to watch a movie, and then finds the device 4 and the video streaming service using ULP-BT.
  • the two devices may negotiate that UWB will be used to provide an air interface for the video streaming due to the bandwidth performance requirements.
  • the UWB radio may be activated in device 1 to receive the data, but as described above, during an inactive period (e.g., when no data is being delivered) ULP- BT may be used in "doze" mode to keep the link alive.
  • the UWB radio may then be reactivated when higher data rates are once again needed during data delivery. If device 1 was to move out of UWB radio range at some point, the video streaming service would become unusable unless device 1 is able to determine alternative high rate transport to use.
  • both the device 1 and device 4 support WLAN, which may be used instead of UWB.
  • control elements in the devices may have negotiated a backup transport and continue with that if needed as before.
  • radio activity information may be used for optimally performing multiradio control in devices.
  • Earlier multiradio control relied upon device internal parameters, while in various embodiments of the present invention activity information of another device may be shared.
  • This information may include negotiation of the connectivity technologies used and the timing synchronization of those technologies, taking into account the overall connectivity situation of the devices. This may enable the most optimal overall service quality and power consumption for both devices.
  • step 1000 A flowchart describing an exemplary process flow in accordance with at least one embodiment of the present invention is now disclosed with respect to FIG. 10.
  • a communication requirement may be realized at the service and/or application level. This requirement may include the need to send or receive information from another device, via wired or wireless transports.
  • Communication may then be established between two or more devices in step 1002. These devices may already be aware of the configuration of other devices within communication range (e.g., information that may be used to establish connectivity map 140) from prior configuration, previous connection establishment, etc.
  • an optional step 1004 may exist in various embodiments of the present invention wherein information may be exchanged between the various devices in order to determine, for example, available transports.
  • the information pertaining to device connectivity may be evaluated to determine the optimal connection strategy.
  • This evaluation may include reviewing various parameters such as application-specific parameters (e.g., required data rate, target device requirements, etc.), device-specific parameters (e.g., power level, available processing capacity, etc.), transport-specific parameters (e.g., Quality of Service (QoS), interference, other active mediums, etc.), etc.
  • the transport used to establish the initial link may not be the best medium over which to conduct further communication.
  • This determination may be made in step 1008. If change is required, then in step 1010 the communication configuration may be modified. This may include changing the active transport, trigger a transport to enter or reawaken from a sleep mode, etc. The process may then return to step 1006 until, based on the current parameters as described above, no further change is required.
  • Similar factor information pertaining to other devices may be evaluated in the device in step 1012. This information may be determined from conditions in the device (e.g., an increase in transport-specific buffer levels may indicate that another device is resource limited) or from actual messages sent from other devices. This information may be evaluated in a similar fashion to the evaluation performed with respect to the device, and a change determination may be made in step 1014. If a change is required, the process may return to step 1010 where the communication configuration may be modified before the process again resumes. If no change is required then a determination may be made as to whether the communication transaction is complete. If communications have not concluded, then the process may return to step 1006 where the factor evaluation with respect to the device may continue. Otherwise, communication may terminate in step 1018 and the process may return to step 1000 for the next requirement.
  • This information may be determined from conditions in the device (e.g., an increase in transport-specific buffer levels may indicate that another device is resource limited) or from actual messages sent from other devices. This information may be evaluated in a similar fashion to the evaluation performed with respect to the
  • FIG. 1 IA discloses an exemplary communication configuration in accordance with at least one exemplary embodiment of the present invention. Additional detail is given to general buffer 702, which may be transport-independent (e.g., operation is not influenced by the particular transport in use) and transport-specific buffer 704. As set forth above, while a one-way wireless transmission from device 200 to device 202 has been disclosed in FIG. 1 IA for the sake of explanation, the present invention is not limited to this specific example, and may be implemented to manage two-way communication via wired or wireless communication.
  • general buffer 702 may contain information for transmission.
  • Exemplary data units A, B, C... are disclosed in FIG. 1 IA, wherein these units may be, for example, data packets for transmission to another node in a subsystem on another device (e.g., device 202).
  • FIG. 1 IA all of the information for transmission currently resides in general buffer 702.
  • an exemplary data conveyance, and the effect that a transport failure or switching, for example due to a change in connection parameters, may have on this data conveyance will now be described with respect to FIG. 1 IB-11C.
  • FIG. 1 IB discloses an example of data being conveyed from an application and/or service level in device 200 to a node in the corresponding level in device 202.
  • General buffer 702 has released data unit A to transport-specific buffer 704.
  • transport-specific buffer 704 has released data unit A for conveyance over transport link 750 to device 202.
  • Data A is also shown in a hold pending confirmation mode in transport-specific buffer 704.
  • transport-specific buffer 704 will keep a copy of data A until a receipt confirmation is received (e.g., in the form of a return packet) from device 202. At this point the copy of data A may be deleted.
  • the selected transport may resend data A until, for example, a threshold condition is achieved. Examples of threshold conditions governing the resending of information may include a number of retries, a timeout period, etc.
  • a connection established using a particular transport may become broken, or alternatively, parameters relating to the connection may become altered in a manner where another transport may become more preferable transport for maintaining the connection.
  • a wired transport may experience failure due to the physical disconnection of media (e.g., cables).
  • a wireless transport may experience a loss of connection due to a device leaving the transmission range of a particular transport, interference experienced from other radios in the same device or nearby wireless devices, electromagnetic emission, etc.
  • FIG. 11C the link 750 established over the selected transport has been lost.
  • the related hardware and/or software at the transport control level has attempted to reestablish the link with no success (e.g., the threshold condition governing retries has been met).
  • the loss of link 750 may abandon data A in transport-specific buffer 704. Since this data cannot be recovered to general buffer 702, the data may be deemed lost.
  • device 200 may have to recreate data A. This may impact overall communications in that data B, C... may have to be delayed until data A is recreated and sent. All of the above activities related to recovering data A may in turn impact the overall QoS of communication being conducted in device 200, and therefore, the overall operation of any application and/or service that is relying on the transport for communication.
  • FIG. 12 A that may be structurally similar to FIG. 1 IA is disclosed. However, in FIG. 12A a copy of data A may be retained in general buffer 702 after the data A has been passed to transport-specific buffer 704. The "copy" of data A may be retained until a confirmation has been received from device 202 that the information has been received. An example of this process is disclosed in FIG. 12B.
  • FIG. 12B shows an example of a successful transaction. More specifically, information is being sent from transport-specific buffer 704 in device 202 to the corresponding transport-specific buffer 704 in device 202 over transport link 750. In this instance, data A has been received in device 202, which may be confirmed, for example, by a receipt confirmation packet being transmitted back from device 202 to device 200. As a result of the successful transaction, TX buffer may empty and accept the next data unit to be sent (e.g., data B). Either action listed above (e.g., the receipt of a confirmation packet or the acceptance of data B into transport-specific buffer 704) may be used as an indication to general buffer 702 that the transaction was successful. Alternatively, transport-specific buffer 704 may send a message to general buffer 702 indicating that the previous transaction was successful. General buffer 702 may then delete the copy of data A it was holding and may hold a copy of the next data unit sent.
  • TX buffer may empty and accept the next data unit to be sent (e.g., data B).
  • FIG. 12C The effect of the above exemplary configuration, in accordance with at least one embodiment, on a situation where the previously selected transport experiences a failure, or alternatively, parameters relating to the connection have changed so that the previously selected transport is no longer preferable, and a transport switch is determined to happen, is shown with respect to FIG. 12C. Similar to FIG. 11C, the original link 750 over the previously selected transport has failed, leaving data A in transport-specific buffer 704 without any means to send or recover this data. However, since general buffer 702 has retained a copy of data A, corrective action may begin quickly. In this scenario a new link is established with another transport that has a corresponding transport-specific buffer 1200. General buffer 702 may then re- forward data A to transport-specific buffer 1200 over link 800.
  • general buffer 702 does not delete the information for data A until a successful transaction is confirmed over the new transport link 800. Therefore, once transport-specific buffer 1200 has received a confirmation and/or is ready to accept a new data unit, general buffer 702 may delete data A and forward a new data unit for transmission (e.g., data B). As in the process previously described above, general buffer 702 will save a copy of data B until a successful transaction is confirmed. Otherwise, a new transport may be selected if needed, and data B may be passed to the corresponding transport-specific buffer for sending.
  • the principle of releasing memory reserved in general buffer 702 for storing data copies may vary depending on the particular transport(s) in use. For example, since there may be various ways to indicate the receipt of some amount of data on the receiving end (e.g., transmission has been successful), then also the actual amount of received data confirmed may vary. More specifically, the granularity of general buffer 702 and transport-specific buffer 704 may differ, and thus, special consideration may be required when general buffer memory is released. In other words, the number of data copies that may be simultaneously maintained in general buffer 702 may depend on various transport- specific factors such as the speed of the transport(s) being used, whether the transport(s) supports error correction, the transmission data unit size of the transport(s), etc.
  • expedient connection reestablishment and data retransmission may be realized in scenarios where one or more active transports may fail or a determination to switch an active transport for the connection has been made.
  • data that may be awaiting transmission via Bluetooth when the transport experiences problems may be lost.
  • a copy of the unsent data abandoned in the Bluetooth data buffer may still reside in the general data buffer.
  • This backup data copy may be immediately allocated to an alternative transport (e.g., WLAN) without the burden of trying to recover and convert the Bluetooth-formatted data packets back into a transport-independent format because the "raw" data is still available in the transport-independent general data buffer.
  • the data stored in the general data buffer may be fragmented into transport-suitable packets, so that whenever the general data buffer receives an indication that the corresponding data has been successfully reached its destination, the copy stored in the general data buffer may then be removed.
  • an indication that the data has been reallocated to another transport may be provided to the Bluetooth radio control entity so that the data that was successfully sent via the alternative transport may be removed from the Bluetooth buffer.

Abstract

A system for automating connection management in a manner that may be transparent to any actively communicating applications operating in a Network on Terminal Architecture (NoTA). An application level entity may access another node by making a request to a high level communication structure via an interface. The high level structure may interact with a lower level structure configured to manage communication by establishing communication with another device via one or more transports. Selection of both the number of transports and/or a specific transport may be determined in view of various factors. These factors may pertain to a particular application operating on the device, the status of the device itself, the status of the one or more communication transports, etc. Factors may also be obtained from other linked devices.

Description

TRANSPORT SELECTION FOR MULTI-TRANSPORT STRUCTURES BACKGROUND OF INVENTION
L Field of Invention:
[0001] The present invention relates to a communication architecture, and more specifically, to a communication architecture for establishing connectivity between devices using one or more transports.
2. Background:
[0002] In general, software programs may include instruction sets that are executable by a processor, and are further organized to receive input (e.g., data) for use in a calculation or determination resulting in an output. Software technology has evolved to transform these individual instruction sets into program modules that may in turn be integrated together to form the more complex programs. Today's more-sophisticated software programs may receive various forms of input such as raw data, for example as stored in magnetic or optical storage, user input through various known types of user interfaces, measured or monitored information converted to electronic information from electronic and/or electromechanical sensors, etc.
[0003] In some instances, programs may be configured to produce data usable by other software applications. However, a problem may be presented in conveying the information from one program to another. If the relationship is known before the programs are created, then a specific strategy may be devised to convert one program's output into another program's input. Traditionally this strategy has led to functional but rigid software applications, requiring frequent and possibly substantial revisions due to changes in functionality, platform, architecture, etc.
[0004] Recently, more flexible modular architectures for sharing information amongst programs are emerging. These programs use modular program units, or "nodes," that can be revised or replaced without having to interrupt overall device operation. In particular, some nodes may contribute information to a shared memory space, while others may read previously stored information from the shared memory space or may combine these functions. Other types of nodes may also be specialized to provide communication services. Using this strategy, altering program elements (e.g., altering, adding or deleting one or more nodes) may not affect nodes that are actively communicating with other nodes, and memory usage may be optimized since information may be stored in a single location while being accessible to all of the nodes.
[0005] While this strategy can conceptually be implemented in a single device platform, no effective solution currently exists for coupling nodes on different devices. Problems currently exist with respect to facilitating the establishment of a transport (e.g., a wireless communication medium) with which one node may correspond with another. Further, if a selected transport becomes unavailable, for example, because of environmental interference, range and or traffic issues, then under the application of current practices a whole new connection configuration would have to be devised. Alternatively, solutions may now exist that utilize strategies for rolling one transport to another if problems occur, but again this would require a configuration that would limit operation to a specifically defined action. The management of active transports to facilitate inter-program communication, as well as inter-device connectivity, in a manner that conveys data while being completely transparent at the application level does not currently exist.
SUMMARY
[0006] The present invention may include at least a method, computer program, device and system for automating connection management in a manner that may be transparent to any actively communicating applications operating in a Network on Terminal Architecture (NoTA). An application level entity, such as an application node, may access another node by making a request to a high level communication structure via a high level interface. The high level structure may then interact with a lower level structure in order to facilitate a connection to a programmatic element on another device, for example, via a particular communication transport.
[0007] In at least one embodiment of the present invention, the lower level structure may manage communication by establishing communication with another device via one or more wireless transports. The selection of both the number of active transports and/or the specific transports to utilize may be determined in view of various parameters. These parameters may, for example, pertain to a particular application operating on the device, the status of the device itself, the status of the one or more communication transports, etc. Moreover, the parameters may be determined on the device, but may also be received from other wirelessly-coupled devices. [0008] In addition, various embodiments of the present invention may utilize one or more wireless transports in a process of establishing optimized communication. Information obtained pertaining to available devices, alone or in combination with the factor information, may be used to determine a layout of the operational environment. The layout of the operational environment may further be utilized to establish the optimized communication. For example, a low power communication transport may be utilized for control purposes, while faster and more energy intensive communication transport may be used for more traffic-intensive communication. More specifically, a low-power transport may constantly communicate in order to implement control, while a faster transport may only be employed when necessary to conserve device resources, for example, for transactions that requires faster speed, a large amount of data to be conveyed, etc.
DESCRIPTION OF DRAWINGS
[0009] The invention will be further understood from the following detailed description of various exemplary embodiments, taken in conjunction with appended drawings, in which:
[0010] FIG. IA discloses an exemplary intra-device Network on Terminal
Architecture (NoTA) in accordance with at least one exemplary embodiment of the present invention.
[0011] FIG. IB discloses a structural diagram of various exemplary layers of an inter-device Network on Terminal Architecture (NoTA) including a Whiteboard-type exchange service in accordance with at least one exemplary embodiment of the present invention.
[0012] FIG. 2 discloses an exemplary need for underlying connectivity establishment in accordance with at least one exemplary embodiment of the present invention.
[0013] FIG. 3 A discloses a structural example of communication establishment in accordance with at least one exemplary embodiment of the present invention.
[0014] FIG. 3B discloses an example of establishing access to a target service residing in another device in accordance with at least one exemplary embodiment of the present invention. [0015] FIG. 4 discloses an example of various software levels and interfaces through which information may be conveyed in accordance with at least one exemplary embodiment of the present invention.
[0016] FIG. 5 discloses an exemplary configuration for the lower level communication structure in accordance with at least one exemplary embodiment of the present invention.
[0017] FIG. 6 discloses an example of connection establishment in accordance with at least one exemplary embodiment of the present invention.
[0018] FIG. 7 discloses an example of buffer level condition parameters in accordance with at least one embodiment of the present invention.
[0019] FIG. 8 discloses an example of the utilization of one or more wireless transports for controlling buffer levels in accordance with at least one embodiment of the present invention.
[0020] FIG. 9 discloses an example of multi-transport communication in accordance with at least one embodiment of the present invention.
[0021] FIG. 10 discloses a flowchart of an exemplary communication management process in accordance with at least one embodiment of the present invention.
[0022] FIG. 1 IA discloses an exemplary communication scenario including multiple buffers containing data in accordance with at least one embodiment of the present invention.
[0023] FIG. 1 IB discloses an example of information routing between buffers in accordance with at least one embodiment of the present invention.
[0024] FIG. 11C discloses at least one impact of the loss of a selected transport on message routing in accordance with at least one embodiment of the present invention.
[0025] FIG. 12A discloses an example of information routing between buffers including transport failure protection in accordance with at least one embodiment of the present invention. [0026] FIG. 12B discloses a further example the transport failure protection described with respect to FIG. 12A in accordance with at least one embodiment of the present invention.
[0027] FIG. 12C discloses an example of transport failure protection activity during a transport failure in accordance with at least one embodiment of the present invention.
DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0028] While the invention has been described below in a multitude of exemplary embodiments, various changes can be made therein without departing from the spirit and scope of the invention, as described in the appended claims.
I. Network on Terminal Architecture (NoTA)
[0029] Network on Terminal Architecture (NoTA) is a service based interconnect-centric platform architecture usable in various electronic apparatuses including wired and/or wireless (e.g., mobile) devices. The interconnect-centric approach incorporated in NoTA may allow any physical sub-system to directly communicate with other sub-systems while supporting multiple parallel connections. Direct connections are possible due to simple switches optimized for the underlying physical media. NoTA interconnect architecture and related interfaces may be complexity and performance optimized for service and data communication, and may be designed in such a way that different communication media technologies can be utilized.
[0030] FIG. IA discloses an example of NoTA implemented in a single device
100. The NoTA platform architecture consists of subsystems 102 connected together via interconnects as shown, for example, at 104. It is also possible for subsystems to be directly coupled to other subsystems as shown at 102' in FIG. IA. A coupled configuration may exist in a scenario where subsystems frequently cooperate during operation. FIG. IA also discloses service nodes (SN) 106 and application nodes (AN) 108 (e.g., PN, RN and AG) that may be mapped into subsystems 102 and 102'. Subsystems in NoTA context may encompass all of the resources (e.g., computing, software, peripherals, etc.) required to implement the services and/or applications running in the corresponding subsystem. [0031] Now referring to FIG. IB, a more detailed disclosure of NoTA as it may be applied to a multiple-device system, in accordance with at least one embodiment, is now disclosed. The general architecture may be explained in terms of three exemplary operational levels: whiteboard 110, billboard 122 and connectivity map 140. Whiteboard 110 is an example of an application and service level that may comprise the highest level of operation in this architecture. At this level, operational groups 112 may be formed including whiteboards 114 and various application nodes 108. Application nodes 108 may correspond to application existing on a plurality of wireless communication devices, and may be utilized to exchange information between these applications, for example, by placing data into, and removing data from, whiteboard 114. For example, the various nodes may consist of proactive nodes (PN) 116 that may place information into whiteboard 114, reactive nodes (RN) 120 that may take information from whiteboard 114 and agent nodes (AG) 122 that may operate either in a PN or RN mode depending on the particular application. Information semantics interpreter (ISI) 118 may be utilized to link different whiteboards 114 together. Utilizing these constructs, whiteboard 114 may provide a standardized means for application interaction that overcomes many incompatibilities.
[0032] Billboard level 124 may facilitate interaction between services available on the one or more devices. Services 134 and clients 136 that may utilize these services may be organized in service domains 126. In at least one scenario, service domains 126 may correspond to a particular protocol, such as UPnP, BT SDP, Bonjour, etc. hi each service domain 126, services 134 may be represented by service nodes (SN) 130, and likewise, application nodes (AN) 132 may be established to correspond to applications. Further, service domains 126 may interact utilizing service ontology interpreters (SOI) 128. SOI 128 may allow service domains 126 to interact with other service domains (e.g., 138), even if service domain 138 resides on another wirelessly-linked device (e.g., to provide access information to service domains 126).
[0033] Connectivity map 144 may define connectivity methods/possibilities and topology for different devices participating in sharing resources in order to support a top level, for example whiteboard 110, and also billboard-type services in billboard level 122. In at least one exemplary embodiment of the present invention, devices 144 may be linked in directly connected groups 142. Examples of directly connected groups of devices (Dev) 142 may include devices connected via Bluetooth™ piconet, a WLAN network, a wUSB link, etc. Each directly connected group of devices 142 may further be linked by gateways (GW) 146.
II. Underlying communication elements that may couple subsystems
[0034] While examples of inter-node interaction involving application and/or service nodes has been described, no detailed discussion regarding how the devices may be coupled via wired or wireless communication, or the management of this connection, has been offered. FIG. 2 discloses an example scenario wherein application and/or service nodes may reside on two different devices 200 and 202. Whiteboard sections 152 A and 152B also reside on these devices, respectively, ideally providing a common memory space via which the nodes may interact. However, interaction with a common memory space in the form of whiteboard 152 may initially depend upon the establishment a wireless connection between whiteboard sections 152A and 152B.
[0035] While an exemplary whiteboard 152 divided into two sections 152A and
152B has been utilized for the sake of explanation in the present disclosure, the facilitation of node interaction is not specifically limited to this scenario. For example, while proactive node (PN) 210 coupled to whiteboard section 152 A may utilize SN 212 and 214 to interact with whiteboard section 152B as shown in FIG. 2, it is further conceivable that whiteboard 152 A may allow PN 210 access to other shared memory spaces, such as service domain 126 (e.g., to allow an application to access a desired service, like a printer service), or any other exemplary subsystem 102 as previously discussed in accordance with various embodiments of the present invention. Regardless of the node/device configuration, interaction between nodes may not be problematic on a single device in view of the locally interconnected subsystems However, this interaction may become more difficult with multiple devices linked, for example, over one or more wireless transports.
[0036] FIG. 3 A discloses an example of an underlying logical architecture that may be utilized in implementing NoTA in accordance with at least one exemplary embodiment of the present invention. NoTA may be configured as multiple subsystems (e.g., 300 and 350) coupled by interconnect 312. As previously set forth, a communication link between devices that may be both established and managed by a lower operational level may facilitate the routing of messages for higher level subsystems, such as sections (152 A and 152B) of the same shared memory space (whiteboard) 152, without the actual involvement of the higher levels in any communication configuration. NoTA interconnect 312 may comprise two layers: High Interconnect (H IN) layer 302 and Low Interconnect (LJN) layer 304 coupled to corresponding H IN 352 and L_IN 354 by switch 310. The various communication layers may further interact over interfaces (abbreviated "IF" in FIG. 3). For example, H_IF 380 may serve as the interface between the application level and H_IN 302/352, while L IF 382 may serve as the interface between H_IN 302/352 and LJN 304/354. Low interconnect layer 304 may include ISO/OSI layers Ll - L4 and may provide transport socket type interface upwards. High Interconnect layer 302 may act as the middleware between L IN 304 and the higher level Application nodes 306 (AN) and Service nodes (SN) 308 residing in subsystems like 300 and 350. Key HJN 302 functionality may include providing client nodes (AN 306 or SN 308) a direct access to services without having to disclose the location of the latter (e.g., transparent at the top level). All communication establishment may be connection-oriented, meaning that before any service or data communication may take place, connection setup procedures must first be carried out. Security features have been added to countermeasure identified threats. NoTA is an architecture that may be used to provide inter-device service access, making it possible to build independent subsystems providing both services and applications. In an exemplary implementation there may be several individual NoTA devices involved in direct inter sub-system communication.
[0037] Utilizing the previously described architecture, an example of establishing access to a service on another device via a wireless link, in accordance with at least one exemplary embodiment of the present invention, is disclosed in FIG. 3B. A node in the application/service level of subsystem 300 in device 200 desires to access a service. The service may be identified, for example, by a service description (SID). This service description may be used to locate and establish access to the desired service. In the HJN level, the SID may be mapped to an Interconnect Address (IA) that may further identify the subsystem in which the service resides. In this example, the desired service resides in subsystem 350 in target device 202. In order to make an H IN level connection with the subsystem offering this service, a transport must be selected that is suitable for making a connection between the devices. The IA may then be mapped to the selected transport in L_IN 304. In the example of FIG. 3B, a wireless link must be established because the devices are not coupled by a wired connection. This wireless link is established over interconnect 312 via the wireless transport. Once devices 200 and 202 are wirelessly coupled, H_IN level connection between subsystem 300 and 350 may be possible. In H_IN level 352 a corresponding H IN protocol is usable to negotiate service usage. The (SID -MA) and (IA -> transport) mapping is used only in subsystem 300 in order to build a connection with a proper subsystem offering the needed service (e.g., subsystem 350). As a result, upper level (e.g., application/service level) access may be established from a requesting node in device 200 to a service that is able to fulfill the request, even though the service resides in device 202. This access may be facilitated by lower level link establishment via one or more transports.
III. Exemplary connection management structures
[0038] The present invention, in accordance with at least one embodiment, may be described in terms of the functionality of various architecture components and component relations. FIG. 4 describes the interaction of the various communication levels and examples of functions that may be performed by each level and its corresponding interface in accordance with at least one exemplary embodiment of the present invention. For example, 400 discloses an exemplary service node (SN) that may facilitate the set-up and establishment of connections supporting various application nodes (AN) such as 108 shown in FIG. IA. The interface between the top application level and the H_IN level 404 may provide service access, registration and communication stream access via H_IF interface level 402. In accordance with at least one exemplary embodiment of the present invention, services may be identified by a Service Identification (SID). H_IN level 404 may then obtain device-to-device access and communication interface access to LJNup level 408 via LJF interface level 406. The H_IN level access may be identified by an Interconnect Address (IA) which separates different devices/subsystems in high level middleware layer. A general connectivity control interface L_IFdown level 410 may then provide access from transport- independent L_INup level 408 to LJN down 412 including transport specific L IN adaptors as disclosed at 414. In various embodiments of the present invention, there may be a specific LJN adaptor 414 for each communication medium (e.g., transport 418), each being linked by transport specific control interfaces 416. Wired and/or wireless transports 418 supported, for example in a mobile device, may then utilize the physical hardware and/or corresponding software in device PHY layer 420 to communicate. Overall, the service level may utilize an SID to identify different services, H IN level middleware layer may then map this SID into a certain IA, which corresponds to an address of a device/subsystem where the respective service may be accessed in the high level middleware layer. L INup level 408 may then map this IA to one or more physical connections (e.g., transports) that may offer connectivity to the device/subsystem that corresponds to the IA. L INdown level 410 may then establish physical connections with the specific transport.
[0039] FIG. 5 depicts an exemplary low interconnect architecture (L IN) 304, in accordance with at least one exemplary embodiment of the present invention. L IN 304 may provide service upwards to H IN 302 via L_IF interface 382, and may comprise a unified L INup communication structure 408 and one or more L INdown communication structures 412. L INdown 412 may further include at least one L INdown adaptor 414 corresponding to each transport 418 that may be utilized in a device. As a result, L_INup 408 may be transport independent (e.g., L_INup operation does not change in dependence upon the transport in use), while LJNdown adaptors 414 in L INdown 412 may be specifically configured for use with each transport 418. Each L_INdown adaptor 414 may provide service to L_INup 408 through one or more L_IFdown interface 410. L_IFdown interfaces 410 may be configured similarly for each transport 418 except in the addressing and access mechanism.
[0040] L INup 408 may perform multiple functions in embodiments of the present invention. For example, activation and deactivation may be controlled in this layer of the communication structure. The L_IN activation process is controlled over the L IF 382. During the activation process, the L IN 304 may be configured to be able to use wireless and/or wired transports as L_IN transports. As a result of successful activation, L IN 304 may then be able to resolve an Interconnect Address (IA) as well as IAs for the existing Resource Managers (IArm). LJNup 408 may use the query services provided to L_INdown 412 during this activation.
[0041] When active, L IN 304 may be able to detect loss of a L IN network connection. As a result, any earlier allocated IA and IArms may be released in order to, for example, automatically reconnect the network connection using the same or a different transport. The deactivation process is also controlled over L IF 382. In the deactivation process, L_IN 304 is deactivated in respect of all available transports. During this process, the IA is released.
[0042] The L IN connection creation process may establish a L IN-level connection between different devices such as shown in FIG. 6. This connection may utilize different types of transport technologies in-between the end-points. In general, the choice of transport may be transparent at the application level, since interfaces with which the nodes may interact may be transport-independent. However, there may be instances where applications and services (e.g., represented in the NoTA architecture by AN 306 and SN 308) may have requirements, or desired characteristics, regarding the connectivity that LJN layer 304 may provide. L IF interface 382 may therefore be equipped with a mechanism to enable a quality of service (QoS) parameter setup to monitor each connection. At this level, the quality of service parameters may not be bound to an actual transport since the transport technology used to carry out data would not be selected at this level. Rather, the QoS requirements may be mapped to an L IN communication instantiation, or "socket," that are abstractions of the actual connection that upper protocols may use. The connectivity requirements may be achieved using, for example, buffer state-based transport selection and flow control. The interface does not have to address transport specific parameters. Instead the requirements, or wishes, may be described in more universal manner.
[0043] In order for L IN to carry out its function, a set of basic L_ TNup-L_INup connection protocols may be defined. All of these may be utilized by the L INup communication structure 408, hence making the implementation of the L_INdown adapter 412 simple (e.g., because no generic L_INdown — L INdown peer protocols are required). The following L_INup protocols may be defined for facilitating communication between L IN communication structures existing in two separate devices (e.g., devices 200 and 202 as shown in FIG. 6):
[0044] A protocol that may provide a means to allocate and identify unique interconnect addresses for each device may be called an Interconnect Address Resolution Protocol (IARP) in accordance with at least one exemplary embodiment of the present invention. [0045] A protocol that may provide a means to establish data connection establishment and disconnection between sockets may be called the Device Access Protocol (DAP) in accordance with at least one exemplary embodiment of the present invention.
[0046] A protocol that may provide a means to exchange connectivity map-type information between devices. This information (e.g., regarding connectivity in the device environment) may further be utilized to select optimal connectivity method when distributing information across the devices. This protocol may be called the Connectivity Environment Protocol (CEP) in accordance with at least one exemplary embodiment of the present invention.
[0047] IARP may be specified to provide inter-device NoTA architecture
Interconnect Address (IA) resolution within a network of devices, in an ad-hoc communication connection, etc. IARP may contain four messages in order to retrieve and release a unique IA. In the example of FIG. 6, the IA resolution process may handle IA address allocation between devices as a connection is established. Address resolution may utilize IARP as a resource for supporting connection establishment. Address resolution may be centralized or distributed/autonomous requiring zero manual configuration. The data delivery process may manage data flow control between the sending device and the receiving device. L IF ring-buffer based sockets may be used in this process. The data delivery process may further implement connection loss detection and recovery process in order to provide more reliable data delivery using inter-transport switching.
[0048] DAP may provide connectivity initialization, creation, and disconnection.
L_IN layer internal interface, L_IFdown 410, may provide uniform way for DAP to access individual transports. Each transport needs an adaptor 412 which implements L IFdown interface 410. FIG. 6 shows how the architecture scales from a transport independent intra-device domain (e.g., L_INup 408) to transport independent inter-device domain (e.g. L INdown 412). For example, the depicted communication layers may be coupled data sockets 600 that may directly couple H_IN 302 and L_INdown 412 via transport-independent L INup communication structure 408.
[0049] Inter-transport switch triggering decisions may be controlled in view of condition information obtained by monitoring the transmit (TX) and receive (RX) buffer fill levels. All data conveyance may be considered "Best Effort" (BE) type. Introduction of some simple QoS classes (e.g. BE, low-latency delivery, minimized power consumption, etc.) may then be possible while still keeping the overall implementation complexity of NoTA manageable. The connection loss and recovery process is a supplemental action in L_IN communication structure 304 that can be utilized for restoration and reconnection procedures that could not otherwise be handled in as part of the inherent abilities of resources operating at the transport level.
[0050] Part of the connection setup, data delivery, and connectivity recovery solutions may include sharing and distributing information about the connectivity in the surrounding environment by means of the CEP protocol. This method may retrieve information about the available connectivity technologies used by other surrounding devices and enables smart decision making procedures when choosing optimal transport to access devices and services. In FIG. 6, control sockets 602 for enabling L INup-to- L INup protocol communication are shown interacting with the IARP, DAP and CEP protocols in furthering inter-device communication.
[0051] The L INdown communication structure 412 may provide other communication-related functionality. For example, a query operation may be an L INdown internal function that is intended to provide information concerning transport specific connection opportunities. This functionality may be tightly coupled with scene and connectivity maps by which information regarding the overall space/proximity/neighborhood connectivity may be obtained. The query function is mainly employed during the establishment of a connection.
[0052] A data delivery process may handle data flow control between the same transport peer entities (e.g., between L_IN up communication structures such as shown in FIG. 6). The same ring buffers may be used as in the previously described case with respect to L IF. A transport specific connection loss and recovery process may also be implemented in L INdown 412. The implementation may substantially depend on the applied transport technology.
IV. Communication management
[0053] FIG. 7 discloses an exemplary implementation of the present invention, in accordance with at least one embodiment, wherein services (e.g., represented by SN 700) may produce data into general transmit buffer 702. While a one-way wireless transmission from device 200 to device 202 has been disclosed in FIG. 7 for the sake of explanation, the present invention is not limited to this specific example, and may be implemented to manage two-way communication via wired or wireless communication. Further, while FIG. 7 discloses an example of general buffers 702 located above interconnect structure 312 and transport-specific buffers 704 located within L_IN level 304, other possible configurations may include, for example, general buffer 702 also residing in L_IN level 304. Various control elements implemented in hardware and/or software (not pictured) may monitor buffer status as shown graphically at 706, 708, 712 and 714. Furthermore, while the present invention will be described with fixed buffer size, various embodiments may also incorporate dynamic buffer allocation which may be taken into account.
[0054] These control elements may identify one or more wireless transports appropriate to implement according to various parameters including, for example, buffer level. In the exemplary scenario depicted in FIG. 7, SN produces information into general buffer 706 which is operating at a level as shown at 706. However, due to the speed limitations of wireless transport 750, the transport specific buffer 704 is approaching full. This may further affect buffers 712 and 714 by starving them of information. As a result, resources such as power, processing capacity, etc. may be utilized inefficiently due to the limitations imposed by the wireless transport, which could be the same transport that was utilized when, for example, communication was initially established.
[0055] However, in accordance with at least one embodiment of the present invention, an exemplary implementation wherein co-operation of one or more wireless transports may help to resolve such a problematic scenario is disclosed in FIG. 8. For example, during a service search and initialization a low power low rate wireless transport 750 may be utilized. When service 700 is enabled, general buffer 706 may start to fill up because high speed service data cannot be delivered efficiently over transport 750. However, according to at least one embodiment, various control elements may utilize transport 750 to negotiate a switch to transport 800. For example, L_INup 408 may determine (e.g., through previously mentioned connectivity map 140) that high speed transport 800 can be used and may then facilitate a switch to high speed transport 800. After switching the active transport to bearer 800, the connection speed may be much faster, and therefore, an overflow of the various buffers may be prevented. The same strategy may also be implemented based on receiving device(s) characteristics, meaning that a frequently empty buffers 712 and 714 may indicate that the amount of data being received is too low from the perspective of the data consumer (e.g., device 202 in this example). This characteristic may indicate different situations depending, for example, on the particular transport currently in use. In a scenario where a low speed transport is employed, the limited speed of the transport may be creating a bottleneck in conveying the data. In such a situation it may be beneficial to employ a faster transport having better data-handling capacity. However, if a high speed and/or capacity transport is already in use when a determination is made that receiving-side buffers are near empty, then the problem may be that the volume of data being sent is too low to create a steady stream of incoming data over the transport. In this case, a lower power and/or capacity transport may be selected to convey the data while also conserving power.
[0056] A decision to perform the switch may be implemented based on many parameters, and also in view of the particular configuration of the present invention that is being utilized. For example, a number of empty (or full) buffers and/or per time period, estimated needed bit-rate (e.g., determined based on monitoring the buffer filling level), etc. In addition, the request to perform the switch from one transport to another may be triggered by either end (TX or RX). In the case of push type configuration (e.g., stream from device 200 is pushed into storage in device 202) the TX side may be more likely to initiate a switch. In pull systems, (e.g. data is being pulled from device 200 to device 202), the RX side may initiate a switch. In either case, the implementation of one or more transports may result in a balancing of buffer levels as shown at 706, 708, 712 and 714 in FIG. 8, and as a result, an optimization of device resources.
[0057] Another exemplary use may include that during utilization of transport 800 communication is suddenly lost and hence some "fallback" procedure is needed. This procedure may be negotiated during the setup phase of link 800. In this procedure it may be established that link 750 may be used (e.g., in accordance with certain parameters) if the link 800 is lost. However, it might be that transport protocols do not control packet retransmission, for example, in a case where a transport delivered an erroneous packet. In at least one instance a bearer may be carrying a data packet successfully from device to another but there is an error in the packet that is not noticed by the bearer error-checking mechanism. For the same reason a packet already in queue for transport 800 is lost if the link is lost, even though the data is still in TX buffer 704. In this situation, it would be beneficial for the data to be restored from buffer 704 and resent using transport 750.
[0058] From a power consumption standpoint, it may be beneficial to utilize high bit rate connectivity to move large amount of bits during a short period of time. This means that TX buffer 704 is intentionally filled up and then emptied with high bit rate communication link (depending, for example, on whether the provider application can support the increased speed). However, it is conceivable that transport 800 may, in at least one instance, not support a sleep mode that increases operational efficiency, which may mean that substantial power will be consumed during waiting time until TX buffer 704 is filled up again. In this kind of exemplary situation, a low rate radio sleep mode may be utilized, which would mean that the transport 750 is active during the time when TX buffer 704 is filling. This activity may be controlled, as previously set forth, by various hardware and/or software control elements in device 200.
[0059] Transport control may also be implemented in view of receiving side flow control parameters. A transport-specific RX buffer corresponding to TX buffer 704 may become filled resulting in receiver-side data flow control issues. In such a situation the TX side may stop its transmission. If the link was high bit rate link (e.g., transport 800) it might be beneficial to negotiate that the slower transport 750 should become active until a "GO" signal is again issued. It is also possible for connectivity control elements to monitor radio operation. Either side (TX or RX) may trigger a low power transport mode, but now the TX side control may understand that there is no point trying to use high bit rate link despite its TX buffer filled condition because the RX side issued flow control, and thus cannot process incoming data as fast as the TX side.
V. Proactive control
[0060] In addition to the reactive control methodology described above, proactive control may also be implemented in accordance with at least one embodiment of the present invention. FIG. 9 discloses devices 1-4. In this example device 1 may be a controlling device, such as a personal communicator, a personal digital assistant (PDA), a wireless tablet device, etc. that is enabled to support a variety of wireless transports. Device 2 may be a low power temperature sensor that is enabled to communicate using Bluetooth™ (BT) and Ultra Low Power Bluetooth™ (ULP-BT). Device 3 may be a display (e.g., an LCD display) capable of communicating via BT and Ultra Wide Band (UWB). Device 4 may be a file server (e.g., a video server) capable of communicating via ULP-BT, WLAN and UWB.
[0061] Initially, a connection may be established between device 1 and the other devices utilizing a low power medium. This is shown in FIG. 9 by the use of the ULP-BT and BT links. This initial link may be established, for example, to obtain information about the other devices (e.g., supported mediums, available applications, etc.) Otherwise, device 1 may already be aware of the capabilities of the other devices (e.g., from previous connections). In the case of device 2, only a small amount of data is being exchanged. Therefore, device 1 and device 2 may continue to utilize ULP-BT in order to conserve power. On the other hand, the possible connectivity techniques between device 1 and device 4 include ULP-BT, WLAN and UWB. ULP-BT is a low power/speed, transport that would be too slow for video streaming, so the best transport would be either WLAN or UWB. UWB can provide data rate that is much faster than is needed for the video streaming, and thus, UWB would spend a great deal of time in the idle mode (e.g., no transmission or reception) during the video streaming. UWB power consumption during the inactivity periods is much higher compared to ULP-BT, resulting is a waste of power. An optimal solution would then be to use UWB only for transmission and reception of streaming video, and to use ULP-BT to manipulate UWB activity states and related wake-up cycle control.
[0062] There are at least two possible control implementations usable in accordance with various embodiments of the present invention. A first exemplary implementation may negotiate the duty cycle already at the beginning of video streaming. The role of ULP-BT would then be to set up the video streaming link as shown in FIG. 9, and to provide a timing reference (e.g., to the UWB radio so that it can awaken at correct moment). This kind of scenario may be used in the situations where the timing between active and inactive states may be fixed. Operation according to this exemplary scenario may be challenging in some situations. For example, if the connectivity patterns are fixed at the beginning of the service, it may be difficult to change or modify the connectivity patterns if any of the parameters change during the connection. This is especially challenging in situations when the data rate of a service is bursty (e.g., sporadic including short bursts of data). One good example of such a scenario is video streaming (e.g. throughput may slow down causing the activity period to be increased in order to maintain smooth video streaming quality). Thus, for these types of situations it may be good to have another possible operational mode providing better timing control.
[0063] In accordance with a second exemplary implementation, as shown in FIG.
9, the system may operate by utilizing ULP-BT to asynchronously control the WLAN reactivation. In this example, a ULP-BT and WLAN are both active. The ULP-BT radio may be used during the WLAN inactive periods, and as soon as high bit rate is needed (e.g., application data is generated) ULP-BT may trigger the WLAN radio to awaken. Once active over the ULP BT radio link, WLAN radios may, for example, communicate on the physical channel utilizing a RTS/CTS (Request-to-Send / Clear-to-Send) mechanism. This type of strategy may be used to manage asynchronous TX/RX activity. Another example may include a scenario where a UWB is being used, but then the UWB radio enters hibernation mode. When signaled over the active low power ULP-BT link, the UWB radios may return to the active mode and can reserve enough air time according to information that may be provided from the other wirelessly coupled devices over the ULP-BT link. This information exchange may decrease the time required for UWB connection set-up and/or reestablishment. In a video streaming scenario, the operation may be as follows: a first video packet of the stream content is transported over the UWB link from the video server to device 1. Once packet is received, UWB radio may enter into an idle mode. The ULP-BT radio of the device receiving the video stream may then be used to launch the transport of the next video packet of the stream over UWB link when the receiving device notices that the previous video packet of the stream is approaching its end. This operation may enable the higher power usage UWB radios to remain in idle mode most of the time, and as a result, may further significantly enhance power conservation in wirelessly coupled devices.
[0064] For example, the controlling of WLAN or UWB radio over ULP-BT may be arranged as follows: When a ULP-BT connection is created, one logical link may be reserved as a connectivity control channel. This channel may carry information regarding connectivity between devices. In this channel, for example, connectivity map information may be exchanged. In addition, this channel may make it possible to provide timing information (e.g., transport awakening and synchronization reference point delivery between devices) for control purposes. This connectivity information may be exchanged using any available transport, and may be used with many different applications to provide better initial transport selection, faster service discovery, optimal transport medium selection, transport handover etc. Connectivity map 140 may also be beneficial when selecting active bearer from multiple available bearers during link setup, link maintenance and data delivery. For example, at some point in FIG. 9 a user of device 1 may want to watch a movie, and then finds the device 4 and the video streaming service using ULP-BT. The two devices may negotiate that UWB will be used to provide an air interface for the video streaming due to the bandwidth performance requirements. During data delivery, the UWB radio may be activated in device 1 to receive the data, but as described above, during an inactive period (e.g., when no data is being delivered) ULP- BT may be used in "doze" mode to keep the link alive. The UWB radio may then be reactivated when higher data rates are once again needed during data delivery. If device 1 was to move out of UWB radio range at some point, the video streaming service would become unusable unless device 1 is able to determine alternative high rate transport to use. In this example case, both the device 1 and device 4 support WLAN, which may be used instead of UWB. As a result, control elements in the devices may have negotiated a backup transport and continue with that if needed as before.
[0065] Another benefit of this procedure, especially in the exemplary scenario shown in FIG. 9, is that radio activity information may be used for optimally performing multiradio control in devices. Earlier multiradio control relied upon device internal parameters, while in various embodiments of the present invention activity information of another device may be shared. This information may include negotiation of the connectivity technologies used and the timing synchronization of those technologies, taking into account the overall connectivity situation of the devices. This may enable the most optimal overall service quality and power consumption for both devices.
[0066] A flowchart describing an exemplary process flow in accordance with at least one embodiment of the present invention is now disclosed with respect to FIG. 10. In this example applications and/or services in a device wants to interact with resources in other devices. In step 1000 a communication requirement may be realized at the service and/or application level. This requirement may include the need to send or receive information from another device, via wired or wireless transports. Communication may then be established between two or more devices in step 1002. These devices may already be aware of the configuration of other devices within communication range (e.g., information that may be used to establish connectivity map 140) from prior configuration, previous connection establishment, etc. However, an optional step 1004 may exist in various embodiments of the present invention wherein information may be exchanged between the various devices in order to determine, for example, available transports.
[0067] In step 1006, the information pertaining to device connectivity (e.g., connectivity map 140) may be evaluated to determine the optimal connection strategy. This evaluation may include reviewing various parameters such as application-specific parameters (e.g., required data rate, target device requirements, etc.), device-specific parameters (e.g., power level, available processing capacity, etc.), transport-specific parameters (e.g., Quality of Service (QoS), interference, other active mediums, etc.), etc. In some instances the transport used to establish the initial link may not be the best medium over which to conduct further communication. This determination may be made in step 1008. If change is required, then in step 1010 the communication configuration may be modified. This may include changing the active transport, trigger a transport to enter or reawaken from a sleep mode, etc. The process may then return to step 1006 until, based on the current parameters as described above, no further change is required.
[0068] Similar factor information pertaining to other devices may be evaluated in the device in step 1012. This information may be determined from conditions in the device (e.g., an increase in transport-specific buffer levels may indicate that another device is resource limited) or from actual messages sent from other devices. This information may be evaluated in a similar fashion to the evaluation performed with respect to the device, and a change determination may be made in step 1014. If a change is required, the process may return to step 1010 where the communication configuration may be modified before the process again resumes. If no change is required then a determination may be made as to whether the communication transaction is complete. If communications have not concluded, then the process may return to step 1006 where the factor evaluation with respect to the device may continue. Otherwise, communication may terminate in step 1018 and the process may return to step 1000 for the next requirement.
VI. Exemplary transport switching [0069] FIG. 1 IA discloses an exemplary communication configuration in accordance with at least one exemplary embodiment of the present invention. Additional detail is given to general buffer 702, which may be transport-independent (e.g., operation is not influenced by the particular transport in use) and transport-specific buffer 704. As set forth above, while a one-way wireless transmission from device 200 to device 202 has been disclosed in FIG. 1 IA for the sake of explanation, the present invention is not limited to this specific example, and may be implemented to manage two-way communication via wired or wireless communication.
[0070] In the example of FIG. 1 IA, general buffer 702 may contain information for transmission. Exemplary data units A, B, C... are disclosed in FIG. 1 IA, wherein these units may be, for example, data packets for transmission to another node in a subsystem on another device (e.g., device 202). In FIG. 1 IA all of the information for transmission currently resides in general buffer 702. However, an exemplary data conveyance, and the effect that a transport failure or switching, for example due to a change in connection parameters, may have on this data conveyance will now be described with respect to FIG. 1 IB-11C.
[0071] FIG. 1 IB discloses an example of data being conveyed from an application and/or service level in device 200 to a node in the corresponding level in device 202. General buffer 702 has released data unit A to transport-specific buffer 704. Subsequently, transport-specific buffer 704 has released data unit A for conveyance over transport link 750 to device 202. Data A is also shown in a hold pending confirmation mode in transport-specific buffer 704. In other words, transport-specific buffer 704 will keep a copy of data A until a receipt confirmation is received (e.g., in the form of a return packet) from device 202. At this point the copy of data A may be deleted. However, if no receipt is received, then the selected transport may resend data A until, for example, a threshold condition is achieved. Examples of threshold conditions governing the resending of information may include a number of retries, a timeout period, etc.
[0072] However, in some cases a connection established using a particular transport may become broken, or alternatively, parameters relating to the connection may become altered in a manner where another transport may become more preferable transport for maintaining the connection. For example, a wired transport may experience failure due to the physical disconnection of media (e.g., cables). Likewise, a wireless transport may experience a loss of connection due to a device leaving the transmission range of a particular transport, interference experienced from other radios in the same device or nearby wireless devices, electromagnetic emission, etc. Such an instance of disconnect is shown with respect to FIG. 11C. In FIG. 11C, the link 750 established over the selected transport has been lost. We may further assume that in this example the related hardware and/or software at the transport control level has attempted to reestablish the link with no success (e.g., the threshold condition governing retries has been met).
[0073] In the example of FIG. 11C, the loss of link 750 may abandon data A in transport-specific buffer 704. Since this data cannot be recovered to general buffer 702, the data may be deemed lost. To accommodate the loss of data A, device 200 may have to recreate data A. This may impact overall communications in that data B, C... may have to be delayed until data A is recreated and sent. All of the above activities related to recovering data A may in turn impact the overall QoS of communication being conducted in device 200, and therefore, the overall operation of any application and/or service that is relying on the transport for communication.
[0074] However, various exemplary embodiments of the present invention may provide a strategy for avoiding an overly detrimental impact on device operations caused by the loss of data by leveraging the flexibility of the NoTA architecture. Now referring to FIG. 12 A, that may be structurally similar to FIG. 1 IA is disclosed. However, in FIG. 12A a copy of data A may be retained in general buffer 702 after the data A has been passed to transport-specific buffer 704. The "copy" of data A may be retained until a confirmation has been received from device 202 that the information has been received. An example of this process is disclosed in FIG. 12B.
[0075] FIG. 12B shows an example of a successful transaction. More specifically, information is being sent from transport-specific buffer 704 in device 202 to the corresponding transport-specific buffer 704 in device 202 over transport link 750. In this instance, data A has been received in device 202, which may be confirmed, for example, by a receipt confirmation packet being transmitted back from device 202 to device 200. As a result of the successful transaction, TX buffer may empty and accept the next data unit to be sent (e.g., data B). Either action listed above (e.g., the receipt of a confirmation packet or the acceptance of data B into transport-specific buffer 704) may be used as an indication to general buffer 702 that the transaction was successful. Alternatively, transport-specific buffer 704 may send a message to general buffer 702 indicating that the previous transaction was successful. General buffer 702 may then delete the copy of data A it was holding and may hold a copy of the next data unit sent.
[0076] The effect of the above exemplary configuration, in accordance with at least one embodiment, on a situation where the previously selected transport experiences a failure, or alternatively, parameters relating to the connection have changed so that the previously selected transport is no longer preferable, and a transport switch is determined to happen, is shown with respect to FIG. 12C. Similar to FIG. 11C, the original link 750 over the previously selected transport has failed, leaving data A in transport-specific buffer 704 without any means to send or recover this data. However, since general buffer 702 has retained a copy of data A, corrective action may begin quickly. In this scenario a new link is established with another transport that has a corresponding transport-specific buffer 1200. General buffer 702 may then re- forward data A to transport-specific buffer 1200 over link 800.
[0077] It is important to note that general buffer 702 does not delete the information for data A until a successful transaction is confirmed over the new transport link 800. Therefore, once transport-specific buffer 1200 has received a confirmation and/or is ready to accept a new data unit, general buffer 702 may delete data A and forward a new data unit for transmission (e.g., data B). As in the process previously described above, general buffer 702 will save a copy of data B until a successful transaction is confirmed. Otherwise, a new transport may be selected if needed, and data B may be passed to the corresponding transport-specific buffer for sending.
[0078] In accordance with at least one embodiment of the present invention, the principle of releasing memory reserved in general buffer 702 for storing data copies may vary depending on the particular transport(s) in use. For example, since there may be various ways to indicate the receipt of some amount of data on the receiving end (e.g., transmission has been successful), then also the actual amount of received data confirmed may vary. More specifically, the granularity of general buffer 702 and transport-specific buffer 704 may differ, and thus, special consideration may be required when general buffer memory is released. In other words, the number of data copies that may be simultaneously maintained in general buffer 702 may depend on various transport- specific factors such as the speed of the transport(s) being used, whether the transport(s) supports error correction, the transmission data unit size of the transport(s), etc.
[0079] In view of the various embodiments of the present invention disclosed herein, several advantages may be realized from the combined implementation of transport-independent and transport-specific data buffers. For instance, expedient connection reestablishment and data retransmission may be realized in scenarios where one or more active transports may fail or a determination to switch an active transport for the connection has been made. In at least one exemplary scenario, data that may be awaiting transmission via Bluetooth when the transport experiences problems may be lost. However, a copy of the unsent data abandoned in the Bluetooth data buffer may still reside in the general data buffer. This backup data copy may be immediately allocated to an alternative transport (e.g., WLAN) without the burden of trying to recover and convert the Bluetooth-formatted data packets back into a transport-independent format because the "raw" data is still available in the transport-independent general data buffer. Further, the data stored in the general data buffer may be fragmented into transport-suitable packets, so that whenever the general data buffer receives an indication that the corresponding data has been successfully reached its destination, the copy stored in the general data buffer may then be removed. In the above exemplary scenario where the Bluetooth transport wasn't able to successfully transmit the data, an indication that the data has been reallocated to another transport may be provided to the Bluetooth radio control entity so that the data that was successfully sent via the alternative transport may be removed from the Bluetooth buffer.
[0080] Accordingly, it will be apparent to persons skilled in the relevant art that various changes in forma and detail can be made therein without departing from the spirit and scope of the invention. The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims

WHAT IS CLAIMED:
1. A method, comprising: receiving a communication request within a device; selecting, based on one or more parameters, at least one transport for fulfilling the communication request from a plurality of transports that are supported in the device; establishing a communication connection using the at least one selected transport; evaluating the connection based on the one or more parameters; and if the evaluation indicates that the connection should be modified, reconfiguring the connection with respect to the at least one selected transport.
2. The method of claim 1 , wherein the communication request is transport- independent.
3. The method of claim 1 , wherein data being sent over the connection is first stored in a transport-independent data buffer that conveys at least part of the data to one or more transport-specific data buffers corresponding to the one or more transports.
4. The method of claim 1 , wherein the connection is established using a first wireless transport, the first wireless transport having low power usage characteristics.
5. The method of claim 1 , wherein the one or more parameters include at least one of application-related, device-related and transport-related parameters.
6. The method of claim 1, wherein the parameters pertain both to the device and one or more coupled devices whose parameters are obtained via the connection.
7. The method of claim 1, wherein reconfiguring the connection with respect to the at least one selected transport includes reselecting the at least one transport from the plurality of transports supported in the device based on current values of the one or more parameters.
8. The method of claim 1, wherein reconfiguring the connection with respect to the at least one selected transport includes selecting another transport from the plurality of transports supported in the device to be used simultaneously with the at least one selected transport.
9. The method of claim 1, wherein modifying the communication connection includes putting at least one wireless transport medium into a power conservation mode.
10. A computer program product comprising a computer usable medium having computer readable program code embodied in said medium, comprising: a computer readable program code configured to receive a communication request within a device; a computer readable program code configured to select, based on one or more parameters, at least one transport for fulfilling the communication request from a plurality of transports that are supported in the device; a computer readable program code configured to establish a communication connection using the at least one selected transport; a computer readable program code configured to evaluate the connection based on the one or more parameters; and a computer readable program code configured to, if the evaluation indicates that the connection should be modified, reconfiguring the connection with respect to the at least one selected transport.
11. The computer program product of claim 10, wherein the communication request is transport-independent.
12. The computer program product of claim 10, wherein data being sent over the connection is first stored in a transport-independent data buffer that conveys at least part of the data to one or more transport-specific data buffers corresponding to the one or more transports.
13. The computer program product of claim 10, wherein the connection is established using a first wireless transport, the first wireless transport having low power usage characteristics.
14. The computer program product of claim 10, wherein the one or more parameters include at least one of application-related, device-related and transport-related parameters.
15. The computer program product of claim 10, wherein the parameters pertain both to the device and one or more coupled devices whose parameters are obtained via the connection.
16. The computer program product of claim 10, wherein reconfiguring the connection with respect to the at least one selected transport includes reselecting the at least one transport from the plurality of transports supported in the device based on current values of the one or more parameters.
17. The computer program product of claim 10, wherein reconfiguring the connection with respect to the at least one selected transport includes selecting another transport from the plurality of transports supported in the device to be used simultaneously with the at least one selected transport.
18. The computer program product of claim 10, wherein modifying the communication connection includes putting at least one wireless transport medium into a power conservation mode.
19. A device, comprising: at least one communication module configured to support one or more transports; and a processor coupled to the at least one communication module, the processor being configured to: receive a communication request within a device; select, based on one or more parameters, at least one transport for fulfilling the communication request from a plurality of transports that are supported in the device; establish a communication connection using the at least one selected transport; evaluate the connection based on the one or more parameters; and if the evaluation indicates that the connection should be modified, reconfigure the connection with respect to the at least one selected transport.
20. The device of claim 19, wherein the communication request is transport- independent.
21. The device of claim 19, wherein data being sent over the connection is first stored in a transport-independent data buffer that conveys at least part of the data to one or more transport-specific data buffers corresponding to the one or more transports.
22. The device of claim 19, wherein the connection is established using a first wireless transport, the first wireless transport having low power usage characteristics.
23. The device of claim 19, wherein the one or more parameters include at least one of application-related, device-related and transport-related parameters.
24. The device of claim 19, wherein the parameters pertain both to the device and one or more coupled devices whose parameters are obtained via the connection.
25. The device of claim 19, wherein reconfiguring the connection with respect to the at least one selected transport includes reselecting the at least one transport from the plurality of transports supported in the device based on current values of the one or more parameters.
26. The device of claim 19, wherein reconfiguring the connection with respect to the at least one selected transport includes selecting another transport from the plurality of transports supported in the device to be used simultaneously with the at least one selected transport.
27. The device of claim 19, wherein modifying the communication connection includes putting at least one wireless transport medium into a power conservation mode.
28. A device, comprising: means for receiving a communication request within a device; means for selecting, based on one or more parameters, at least one transport for fulfilling the communication request from a plurality of transports that are supported in the device; means for establishing a communication connection using the at least one selected transport; means for evaluating the connection based on the one or more parameters; and means for, if the evaluation indicates that the connection should be modified, reconfiguring the connection with respect to the at least one selected transport.
29. A system, comprising: a first device supporting one or more transports; and at least one other device supporting one or more transports; the first device receiving a communication request from within the first device; the first device further selecting, based on one or more parameters, at least one transport for fulfilling the communication request from a plurality of transports that are supported in the device; the first device further establishing a communication connection using the at least one selected transport with the at least one other device; evaluating the connection based on the one or more parameters from at least one of the first device and the at least one other device; and if the evaluation indicates that the connection should be modified, reconfiguring the connection between the first device and the at least one other device with respect to the at least one selected transport.
30. A middleware layer in an operational structure, comprising: a higher level configured receive a communication request from at least one of an application or service residing in a layer above the middleware layer, and to select, based on one or more parameters, at least one transport for fulfilling the communication request from a plurality of available transports; and a lower level configured to establish a communication connection using the at least one selected transport; the higher level further being configured to evaluate the connection based on the one or more parameters, and if the evaluation indicates that the connection should be modified, reconfiguring the connection with respect to the at least one selected transport.
PCT/IB2008/050709 2008-02-27 2008-02-27 Transport selection for multi-transport structures WO2009106931A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/IB2008/050709 WO2009106931A1 (en) 2008-02-27 2008-02-27 Transport selection for multi-transport structures

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2008/050709 WO2009106931A1 (en) 2008-02-27 2008-02-27 Transport selection for multi-transport structures

Publications (1)

Publication Number Publication Date
WO2009106931A1 true WO2009106931A1 (en) 2009-09-03

Family

ID=40345030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2008/050709 WO2009106931A1 (en) 2008-02-27 2008-02-27 Transport selection for multi-transport structures

Country Status (1)

Country Link
WO (1) WO2009106931A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012142105A1 (en) * 2011-04-11 2012-10-18 Interdigital Patent Holdings, Inc. Session manager and source internet protocol (ip) address election
DE102014106017A1 (en) * 2014-04-29 2015-10-29 Beckhoff Automation Gmbh Method for operating a network and network participants

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030100308A1 (en) * 2001-11-27 2003-05-29 Intel Corporation Device and method for intelligent wireless communication selection
WO2004008793A1 (en) * 2002-07-11 2004-01-22 Qualcomm Incorporated Interface selection in a wireless communication network
US20050003822A1 (en) * 2003-07-01 2005-01-06 Markus Aholainen Method and apparatus for automatically selecting a bearer for a wireless connection
US20050066033A1 (en) * 2003-09-24 2005-03-24 Cheston Richard W. Apparatus, system, and method for dynamic selection of best network service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030100308A1 (en) * 2001-11-27 2003-05-29 Intel Corporation Device and method for intelligent wireless communication selection
WO2004008793A1 (en) * 2002-07-11 2004-01-22 Qualcomm Incorporated Interface selection in a wireless communication network
US20050003822A1 (en) * 2003-07-01 2005-01-06 Markus Aholainen Method and apparatus for automatically selecting a bearer for a wireless connection
US20050066033A1 (en) * 2003-09-24 2005-03-24 Cheston Richard W. Apparatus, system, and method for dynamic selection of best network service

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ERIKSSON A ET AL: "Providing quality of service in always best connected networks", IEEE COMMUNICATIONS MAGAZINE, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 41, no. 7, 1 July 2003 (2003-07-01), pages 154 - 163, XP011098966, ISSN: 0163-6804 *
SUORANTA R ED - KAMALA ET AL: "New Directions in Mobile Device Architectures", DIGITAL SYSTEM DESIGN: ARCHITECTURES, METHODS AND TOOLS, 2006. DSD 200 6. 9TH EUROMICRO CONFERENCE ON, IEEE, PI, 1 January 2006 (2006-01-01), pages 17 - 26, XP031102259, ISBN: 978-0-7695-2609-6 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012142105A1 (en) * 2011-04-11 2012-10-18 Interdigital Patent Holdings, Inc. Session manager and source internet protocol (ip) address election
DE102014106017A1 (en) * 2014-04-29 2015-10-29 Beckhoff Automation Gmbh Method for operating a network and network participants
US10271249B2 (en) 2014-04-29 2019-04-23 Beckhoff Automation Gmbh Method for operating a network and network participants

Similar Documents

Publication Publication Date Title
EP2248309B1 (en) Buffer control for multi-transport architectures
JP5301533B2 (en) How to optimize near-field links
RU2595752C2 (en) Multichannel connections in file system sessions
EP2803244B1 (en) Methods and apparatus for establishing a tunneled direct link setup (tdls) session between devices in a wireless network
JP5340084B2 (en) WIRELESS COMMUNICATION TERMINAL, ITS CONTROL METHOD, PROGRAM, AND INFORMATION STORAGE MEDIUM
CA2656660C (en) Client/bridge and method and system for using same
EP2915377A1 (en) Systems and methods for power savings in wireless communications
US9407497B2 (en) Communication terminal
WO2022001175A1 (en) Data packet sending method and apparatus
US20110310859A1 (en) Basic service set scheduling based on media access controller states
US10645184B2 (en) Information transmission method, gateway, and controller
CN114040368A (en) Data transmission method and system based on BLE Bluetooth and Bluetooth module
WO2009106931A1 (en) Transport selection for multi-transport structures
CN102946402B (en) Communication method, and bluetooth device
US20110004886A1 (en) Transport independent architecture
CN116192863A (en) Micro-service flow processing method, DPU service grid deployment method and system
CN102981999B (en) Dynamic and configurable Wireless digital bus switch
WO2010133020A1 (en) Data transmitting method, terminal processor and terminal device in zigbee network
WO2024037254A1 (en) Communication method and apparatus
WO2024041572A1 (en) Service processing method and apparatus, device, medium and program product
US20220060926A1 (en) Seamless data traffic switchover for internet of things devices
KR102406213B1 (en) The Method For Data Transmitting In Mobile Communication Terminal
WO2010010424A1 (en) Transport independent multicast architecture
Kinoshita et al. Joint Bandwidth Assignment and Routing for Power Saving on Large File Transfer with Time Constraints
KR20080011150A (en) A method for energy-efficient multi-hop multi-radio mobile ad hoc network formation based on application demands

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08719491

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08719491

Country of ref document: EP

Kind code of ref document: A1