EP4710570A1 - Single-instance concurrent multi-user architecture - Google Patents
Single-instance concurrent multi-user architectureInfo
- Publication number
- EP4710570A1 EP4710570A1 EP23742501.2A EP23742501A EP4710570A1 EP 4710570 A1 EP4710570 A1 EP 4710570A1 EP 23742501 A EP23742501 A EP 23742501A EP 4710570 A1 EP4710570 A1 EP 4710570A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- personal area
- area network
- user account
- network interface
- interface
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
A host computing system comprises a plurality of personal area networks associated with a plurality of user accounts. The host computing system comprises a memory that stores personal area network configuration data, for each user account. The host, computing system comprises processors that execute an operating system to obtain, from the memory, first personal area network configuration data for a first user account and second personal area network configuration data for a second user account. The operating system initiates, based on the first personal area network configuration data, a. first personal area network interface, and initiates, based on the second personal area network configuration data, a second personal area network interface, lire first and second personal area network interfaces are a same type of personal area network interface. The first and second, personal area, network interfaces are managed by a single instance of the operating system.
Description
SINGLE-INSTANCE CONCURRENT MULTI-USER ARCHITECTURE
BACKGROUND
[0001] There is an increased demand for cars to support more screens or personal devices and more concurrent users. Bluetooth™ is the main connectivity means by which users bring features of their wireless devices into the car, such as media control, audio streaming (sink and source), game controllers, messaging, and calling. However, many Bluetooth™ platforms do not currently support the demands of this environment due to privacy and performance concerns and inadequate architecture. While an instance of a vehicle operating system may support multiple user profiles, the instance of tire vehicle operating system may only allow a single user profile of the multiple user profiles to access (or in other words “log into”) the instance of the vehicle operating system.
SUMMARY
[0002] In general, various aspects of the techniques set forth in this disclosure are directed to a single instance, concurrent multi-user architecture. Rather than limit access to a single user profile for the single instance of an operating system, a single instance of an operating system described in this disclosure may allow multiple user profiles to access the single instance of tlie operating system by providing each user of the multiple users their own personal area network stack (or personal area network controller/chip). The techniques described herein are further directed to a new host computing system comprising a plurality of personal area networks, wherein each personal area network is associated with a user account from a plurality of user accounts. In general, the host computing system processors may execute a single instance of an operating system to obtain, from a memory that stores personal area network configuration data for each user account from the plurality of user accounts, the personal area network configuration data for a first user account and a second user account. The host computing sy stem processors may then initiate, based on the personal area network configuration data for the first user account, a first personal area network interface, as well as initiate, based on the personal area network configuration data for the second user account, a second personal area network interface. The first personal area network interface and the second personal area network interface may be the same type of personal area network interface.
[0003] In this respect, various aspects of the techniques described in this disclosure may facilitate better personal area network (e.g., BluetoothTM) functionality and user experience
for concurrent users. For example, in a vehicle, each user of the concurrent users (such as the driver, front seat passengers, or rear seat passengers) is provided their own private, perfbrmant, and personal version of the Bluetooth™ (or personal area network) stack for audio streaming (sink and source) and sharing, game controllers, calling, messaging, etc. with privacy ensured. As a result of permitting multiple user profiles to access the vehicle operating system, the vehicle operating system may tailor tire user experience to each individual user profile, thereby allowing for preferences to be applied that are specific to each individual user profile. By providing each user of the concurrent users their own personal area network stack (or personal area network controller/chip), the concurrent users will not have to share link keys, data, resources, and control. Further, resource and performance problems may be alleviated with multiple PAN controllers since bandwidth and advertising/scanning/streaming limitations are not shared. Lastly, the techniques described in tliis disclosure conform to the single-instance, concurrent multi-user architecture that the automotive industry' has aligned with, which may result in lower implementation costs.
In one example, this disclosure describes a method comprising: obtaining, by a host computing system and from a memory storing personal area network configuration data for each user account from a plurality of user accounts, first personal area network configuration data for a first user account from the plurality' of user accounts, wherein the first user account is associated with a first personal area network from a plurality' of personal area networks; obtaining, by the host computing system and from the memory', second personal area network configuration data for a second user account from the plurality of user accounts, wherein the second user account is associated with a second personal area network from the plurality of personal area networks; initiating, by the host computing system and based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiating, by the host computing system and based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and w herein the first personal area network interface and the second personal area network interface are managed by a single instance of an operating system executing at the host computing system.
[0004] In another example, this disclosure describes a host computing system comprising: a first personal network from a plurality of personal area networks that is associated with a first user account from a plurality of user accounts; a second personal network from the plurality
of personal area networks that is associated with a second user account from the plurality of user accounts; a memory that stores personal area network configuration data for each user account from the plurality of user accounts; and one or more processors that execute an operating system to: obtain, from the memory, first personal area network configuration data for tire first user account; obtain, from the memory, second personal area network configuration data for the second user account; initiate, based on the first personal area network configuration data, a fsrst personal area network interface from a plurality of persona] area network interfaces; and initiate, based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area netw ork interface are managed by a single instance of the operating system.
[0005] In one example, this disclosure describes a non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to: obtain, from a memory, first personal area network configuration data for a first user account, wherein the first user account is associated with a first personal network from a plurality of personal area networks; obtain, from the memory, second personal area network configuration data for a second user account, wherein the second user account is associated with a second personal network from the plurality of personal area networks; initiate, based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiate, based on the second personal area netw ork configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area network interface are managed by a single instance of the operating system.
[0006] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims.
BRIEF DESCRIPTION OF DRAWINGS
[0007] FIG. 1 is a block diagram illustrating an example computing system that is configured to provide concurrent users access to a single instance of an operating system by providing
each user of the concurrent users their own personal area network stack, in accordance with the techniques described in this disclosure.
[0008] FIG. 2 is a block diagram illustrating example personal area network stacks configured to provide concurrent users access to a single instance of an operating system, in accordance with the techniques described in this disclosure.
[0009] FIG. 3 is a flowchart illustrating example operation of the system shown in tire example of FIG. 2 in providing concurrent users access to a single instance of an operating system by providing them their own personal area network stack, in accordance with the techniques described in this disclosure.
DETAILED DESCRIPTION
[0010] FIG. 1 is a block diagram illustrating an example computing system that is configured to provide concurrent users access to a single instance of an operating system by providing each user of the concurrent users their own personal area network stack, in accordance with the techniques described in this disclosure. As shown in the example of FIG. 1 , a computing system 100 includes a host computing device 102 and client computing devices 110A-1 ION (‘"client computing devices 110”). Although described with respect to a vehicle, the computing system 100 may be utilized in different contexts, including standalone computing systems (including laptop computers, desktop computers, workstations and the like), gaming systems, cellular telephones (including so-called “smartphones”), media systems (including streaming media systems), audio/visual (A/V) receivers, televisions (including so-called “smart televisions”), smart speakers, smart watches, thermostats (including so-called “smart thermostats”), smart glasses, or any other computing system.
[0011] In any event, host computing device 102. is an example of vehicle computing device, such as head unit or other vehicular computing system (such as an electronic control unit - ECU). FIG . 1 illustrates only one particular example of host computing device 102, and many other examples of host computing device 102 may be used in other instances and may include a subset of the components included in example computing device 102 or may include additional components not shown in FIG. 1 .
[0012] As shown in the example of FIG. 1, host computing device 102 includes presencesensitive display 112, one or more processors 140, one or more communication units I42A- 142N (referred herein collectively as “communication units 142”), one or more input components 144, one or more output components 146, and one or more storage devices 148. Storage devices 148 of host computing device 102 may store (or otherwise, include) software
modules, such as an operating system (OS) 126 that supports one or more personal area network (PAN) stacks 128 that operate according to a suite of PAN protocols, such as Bluetooth™ and various profiles thereof, e.g., Bluetooth™ low energy (BLE).
[0013] Communication channels 150 may interconnect each of the components 112, 140, 142, 146, and/or 148 for inter-component communications (physically, communicatively, and/or operatively) and thereby allow components 112, 140, 142, 146, and 148 to communicate with one another. In some examples, communication channels 150 may include a system bus, a network connection, one or more inter-process communication data structures, or any other components for communicating data (also referred to as information). Although shown as including components 112, 140, 142, 146, and 148, host computing device 102 may include other components or less components than those shown, where such components may be included in other control units such as a telematic control unit (TCU). [0014] One or more communication units 142 of host computing device 102 may communicate with external devices by transmitting and/or receiving data. For example, host computing device 102 may use one or more of communication uni ts 142 to transmit and/or receive radio signals on a radio network such as a cellular radio network. In some examples, communication units 142 may transmit and/or receive satellite signals on a satellite network such as a Global Positioning System (GPS) network. Examples of communication units 142 include a network interface card (e.g., an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other ty pe of device that can send and/or receive information. Other examples of communication units 142 may include short wave radios (e.g., near field communication (NFC), personal area networks - such as Bluetooth™ and different profiles thereof, e.g., Bluetooth™ low energy (BLE), etc.), GPS, 3G, 4G, 5G, and WiFi® radios found in mobile devices as well as Universal Serial Bus (USB) controllers and the like. In the example of FIG, 1, communication units 142A-142N are assumed to implement one or more personal area network (PAN) interfaces by which wireless local area network connections may be established with one or more computing devices (e.g., client computing devices 110). In some examples, the plurality of PAN interfaces further comprises a plurality of discrete hardware interfaces, wherein each discrete hardware interface is configured to connect with a PAN device, such as client computing devices 110. In these examples, each discrete hardware interface may comprise a Bluetooth1-1 module. In some examples, the personal area network interfaces are discrete hardware interfaces such as a USB connector, a radio transceiver, or an Ethernet port. Each discrete hardware interface maybe configured to connect with a personal area network device, such as a smartphone, a
smartwatch, smartglasses, a laptop computer, a tablet computer, or a portable gaming system. [0015] One or more input components 144 of host computing device 102 may receive input. Examples of input are tactile, audio, kinetic, and optical input, to name only a few examples. Input components 144 of host computing device 102 include, in one example, a mouse, keyboard, touchpad, voice responsive system, video camera, buttons, scroll wheel, dial, control pad, microphone or any other type of device for detecting input from a human or machine. Input components 144 may include cameras. In some examples, input component 144 may be a presence-sensitive input component, which may include a presence-sensitive screen, touch-sensitive screen, etc. separate from presence-sensitive display 112.
[0016] One or more output components 146 of host computing device 102 may generate output . Examples of output are tactile, audio, and video output. Output components 146 of host computing device 102, in some examples, include a presence-sensitive screen (possibly separate from presence-sensitive display 112), sound card, video graphics adapter card, speaker, cathode ray tube (CRT) monitor, liquid cry stal display (LCD), organic light emiting diode (OLED), or any other type of device for generating tactile, audio and/or visual output to a human or machine.
[0017] In some examples, presence-sensitive display 112 of host computing device 102 may include functionality of input component 144 and/or output components 146, In the example of FIG. 1, presence-sensitive display 112 may include a presence-sensitive input (PSI) component 104 (“PSI component 104”), such as a presence-sensitive screen or touch- sensitive screen. In some examples, presence-sensitive input component 104 may detect an object at and/or near the presence-sensitive input component. As one example range, presence-sensitive input component 104 may detect an object, such as a finger or stylus that is within two inches or less of presence-sensitive input component 104. Presence-sensitive input component 104 may determine a location (e.g., an (x,y) coordinate) of the presencesensitive input component at which the object was detected. In another example range, presence-sensitive input component 104 may detect an object two inches or less from presence-sensitive input component 104 and other ranges are also possible. Presencesensitive input component 104 may determine the location of presence-sensitive input component 104 selected by a user’s finger using capacitive, inductive, and/or optical recognition techniques.
[0018] In some examples, presence-sensitive display 1 12 may also provide output to a user using tactile, audio, or video stimuli as described with respect to output component 146. For instance, presence-sensitive display 112 may include display component 103 that displays a
graphical user interface. Display component 103 may be any type of output component that provides visual output, such as described with respect to output components 146. While illustrated as an integrated component of host computing device 102, presence-sensitive display 112 may, in some examples, be an external component that shares a data or information path with other components of host computing device 102 for transmitting and/or receiving input and output.
[0019] For instance, presence-sensitive display 112 may be a built-in component of host computing device 102 located within and physically connected to the external packaging of host computing device 102 (e.g., an in-vehicle screen mounted in a dashboard of a vehicle). In another example, presence-sensitive display 112 may be an external component of host computing device 102 located outside and physically separated from the packaging of host computing device 102 (e.g., a monitor, a projector, etc. that shares a wired and/or wireless data path with an electronic control unit of the vehicle). In some examples, presence-sensitive display 112, when located outside of and physically separated from the packaging of host computing device 102, may be implemented by two separate components: a presencesensitive input component 104 for receiving input and a display component 103 for providing output.
[0020] One or more storage components 148 within host computing device 102. may store information for processing during operation of host computing device 102 (e.g., computing device 102 may store data accessed by modules 126-136 during execution at host computing device 102). In some examples, storage component 148 is a temporary' memory, meaning that a primary purpose of storage component 148 is not long-term storage. Storage components 148 on host computing device 102 may be configured for short-term storage of information as volatile memory' and therefore not retain stored contents if powered off. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.
[0021] Storage components 148, in some examples, also include one or more computer- readable storage media. Storage components 148 in some examples include one or more non-transitory computer-readable storage mediums. Storage components 148 may be configured to store larger amounts of information than typically stored by volatile memory. Storage components 148 may further be configured for long-term storage of information as non-volatile memory space and retain information after power on/off cycles. Examples of non-volatile memories include magnetic hard discs, optical discs, flash memories, or forms of
electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. Storage components 148 may store program instructions and/or information (e.g., data) associated with modules 12.6-136. Storage components 148 may include a memory' configured to store data or other information associated with modules 126- 136.
[0022] One or more processors 140 may implement functionality and/or execute instructions associated with host computing device 102, Examples of processors 140 include application processors, display controllers, auxiliary' processors, one or more sensor hubs, and any other hardware configure to function as a processor, a processing unit, or a processing device. Modules 126-136 may be operable (or, in other words, executed) by processors 140 to perform various actions, operations, or functions of host computing device 102. That is, modules 126-136 may form executable bytecode, which when executed, cause processors 140 to perform specific operations (and thereby causing host computing device 102 to become a specific-puspose computer by which to perform) in accordance with various aspects of the techniques described herein. For example, processors 140 of host computing device 102 may retrieve and execute instructions stored by storage components 148 that cause processors 140 to perform the operations described herein that are attributed to modules 126- 136. The instructions, when executed by processors 140, may cause host computing device 102 to store information within storage devices 184.
[0023] Client computing devices 110 support PAN links for wireless communication with host computing device 102. Client computing devices 110 may7 include components similar to host computing device 102. For example, client computing devices 1 10 may include one or more processors, one or more communication units, one or more input components, and one or more output components. Each of components may be similar to, if not substantially similar to, respective components 1 12-184, as described above. Client computing devices 110 may also include communication channels interconnecting modules, which may be similar to, if not substantially similar to, communication channels 150 discussed in more detail above. Furthermore, client computing devices 110 may include storage devices configured to store an OS, which may be similar to, if not substantially similar to, storage devices 184 and OS 126 described above.
[0024] Host computing device 102 may be integrated or otherwise included w'ithm a vehicle. The vehicle may include one or more of a bicycle, a tricycle, a unicycle, an automobile, farm equipment (such as a tractor, combine, etc.), construction equipment (a dump truck, crane, etc.), military vehicle or equipment (a tank, armament, etc.), a truck, a semi-tractor (or, in
other words, a semi-trailer), aviation equipment (such as a plane), nautical equipment (such as a boat, earner, etc.), or any other type of vehicle.
[0025] In this respect, host computing device 102 may represent a vehicle head unit that is integrated in to a dashboard or other componen t of the vehicle, where host compu ting device 102 may be referred to alternatively as vehicle head unit 102, host vehicle head unit 102, and/or main computing device 102. In this context, processors 140 may retrieve and execute OS 126, which may be referred to as an embedded OS in that OS 126 is a fully specified OS that provides a full-featured application execution environment in which local applications (so-called “apps,” which are not shown for ease of illustration) may be stored locally (e.g., to storage devices 184) and executed by processors 140 within the execution environment provided by OS 126.
[0026] OS 126 may, in this context, include a kernel that supports interaction between the applications and underlying hardware, such as processors 140, communication units 142, input components 144, output components 146, presence-sensitive display 112, and/or storage devices 184. Hie kernel may execute in so-called kernel space (which refers to a privileged OS-level execution environment) that is separate from a so-called user space that supports the application environment in which tire applications execute. The kernel may expose an interface (such as an application programming interface - API) by which the user space (and applications executing therein) may access kernel space in a limited manner (e.g., having less privileges than tire kernel) in order to interface with the underlying hardware. [0027] OS 126, in other words, does not represent a thin client that supports projection, casting, or other processes by which to mirror output from an OS executed by a separate device, such as OS executed by separate client computing devices 110 . OS 126 instead provides, as noted above, a full execution environment that is separate from OS executed by client computing devices 1 10 (or any other separate device) that facilitates local (e.g., on host computing device 102) execution of applications, rather than stream applications within client computing device OS during execution by client computing devices 110 .
[0028] In this context of embedded OS 126 (which is another way to refer to OS 126), OS 126 may enable PAN links between host computing device 102 and multiple client computing devices 110, and any other client computing devices that support PAN links for wireless communication between host computing de vice 102 and such client computing devices. OS 126 implements PAN stacks 128A-128N (referred to collectively herein as “PAN stacks 128”) as native functions of OS 126 (meaning, within kernel space), thereby allowing OS 126 (and/or one or more applications executing within the user space) to
0
establish PAN links 143A-143N (not shown in the example of FIG. 1 ) with external devices, such as PAN link 143A with client computing device 110A and PAN link 143N with client computing device 1 10N (and potentially via the kernel API for applications executed locally by OS 126).
[0029] In some examples, host computing device 102 receives a request from a user account associated with a client computing device of client computing devices 110A-110N to connect to a PAN interface of PAN interfaces 142A-142N. Responsive to receiving the request, host computing device 102 then determines whether the PAN interface was previously associated with the user account. Responsive to determining that the PAN interface was previously associated with the user account, host computing device 102 may then connect the user’s PAN device, such as one of client computing devices 110A-110N, and the PAN interface that is associated with the user account, in which a PAN link is established. Responsive to successfully connecting the PAN device with the PAN interface that is associated with the user account, host computing device 102 may then store, to the PAN configuration data, an indication that the PAN device is connected to the PAN interface that is associated with the user account.
[0030] In accordance with various aspects of tire techniques described in this disclosure, host computing device 102 may initiate PAN interfaces 142A-142N for a plurality of user accounts associated with a plurality of client computing devices 110A-110N, wherein PAN interfaces 142A-142N are managed by a single instance of OS 126. Hie single instance of OS 12.6 may include a plurality of software interfaces configured to communicate with a plurality of discrete hardware interfaces. To facilitate such initiation of PAN interfaces 142A-142N, processors 140 may obtain, from storage devices 184, PAN configuration data (PCD) 129A- 129N for the plurality of user accounts. In some examples, the single instance of OS 126 is executed on a vehicle head unit.
[0031] In this respect, various aspects of the techniques may enable host computing device 102 to operate more securely while also promoting more efficient operation. For example, by providing each user from a plurality' of concurrent users their own PAN stack (or PAN network control ler/chip), the concurrent users will not have to share link keys, data, resources, and control. Further, resource and performance problems may be alleviated with multiple PAN controllers since bandwidth and advertising/scanning/streaming limitations are not shared. In this respect, data security may7 be improved from the perspective of the user of the client computing device, while also improving operation of host computing device 102 itself.
[0032] In operation, PAN stack 128A may store PCD 129A. PCD 129A may represent PCD for a first riser account supported by OS 126. As noted above, OS 126 may support multiple concurrent user accounts. PAN stacks 128A-128N may include PCD 129A-129N, respectively, wherein each PAN stack includes PCD for a single user account. For example, a first user account may be associated with PAN stack 128A including PCD 129A, a second user account may be associated with PAN stack 128B including PCD 129B, a third user account may be associated with PAN stack 128C including PCD 129C, and a fourth user account may be associated with PAN stack 128D including PCD 129D. Each user account may be associated with a user operating one or more of client computing devices 110A- 110N.
[0033] For example, when a first user operating client computing device 110A logs into OS 126 under the first user account, OS 126 invokes PAN stack 128A, which may retrieve PCD 129A from storage device 184. PCD 129A may include an identifier for use by PAN interface 142A when supporting a P AN link 143A with client computing device 110A, wherein such identifier may be denoted as ID 149A of IDs 149A-149N.
[0034] In any event, OS 126 may invoke PAN stack 128A, passing data indicative of the first dedicated user account (e.g., an account identifier or other data uniquely identifying the first user account). PAN stack 128 A may obtain PCD 129A using the data indicative of the first dedicated user account as a key to retrieving PCD 129A. PAN stack 128A may parse PCD 129A to obtain ID 149A, which PAN stack 128A may use to initiate programming of PAN interface 142A to use ID 149A.
[0035] PAN interface 142A may next establish, using ID 149A, PAN link 143 A with client computing device 110A associated with the first dedicated user account (assuming client computing device 110A has been previously paired to host computing device 102 when tire first user has logged into OS 126 under the first user account). For example, OS 126 may receive a request from client computing device 110A to connect to PAN interface 142A, wherein the request is associated with the first user account. Responsive to receiving the request, OS 126 determine whether P AN interface 142A was previously associated with the first user account. Responsive to determining that PAN interface 142A was previously associated with the first user account, OS 126 may connect client computing device 1 10A and PAN interface 142A. Responsive to successfully connecting client computing device 110A and PAN interface 142A, OS 126 may then store, to PCD 129A, an indication that client computing device 1 10A is connected to PAN interface 142 A.
[0036] FIG. 2 is a block diagram illustrating example personal area network stacks configured to provide concurrent users access to a single instance of an operating system, in accordance with the techniques described in this disclosure. In the example of FIG, 2, PAN stack 228A may represent one example of PAN stack 128A and client computing device 210A may be substantially similar to client computing device 110A of FIG. 1. FIG. 2 further illustrates a second client computing device 210B and second PAN stack 228B.
[0037] With respect to first client computing device 210A, to establish a PAN link, OS 226 invokes PAN stack 228A of PAN stacks 228A-228N (not all shown in the example of FIG.
2), which includes a discovery process by which PAN stack 228A configures communication unit 242A of communication units 242A-242N to accept incoming connection requests. An operator of the vehicle may interface, e.g., via a presence-sensitive display, with OS 226 to initiate the discovery process in which PAN stack 228A configures communication unit 242A of communication units 242A-242N (which again may implement a PAN interface, and therefore be referred to as PAN interface 2.42A) to accept incoming connection requests. [0038] The operator of the vehicle may next interface with client computing device 210A, e.g., via a presence-sensitive display, to have OS 274A invoke PAN stack 276A in order to configure communication unit 264A (which again may represent a PAN interface, and as such may be referred to as PAN interface 264A) to initiate a pairing process that transmits the connection request in order to bond (or, in other words, pair) client computing device 210A to host computing device 202). Hie operator may next confirm that pairing should occur (generally, via a selection of a user interface element presented via presence-sensitive display 1 12 and/or client computing device presence-sensitive display). Pairing of client computing device 210A (or more specifically, PAN interface 264 A) and host computing device 202 (or more specifically, PAN interface 242A) may include exchange of security keys that are used for encrypting or otherwise securing communications via the PAN link to be established between PAN interface 242A and PAN interface 264A.
[0039] Pairing in this manner results in a semi-permanent bond between a PAN interface 242A and PAN interface 264A, meaning that client computing device 210A is paired to host computing device 202 until the pairing is explicitly, with user authorization, removed, either via host computing device 202 or client computing device 210A. This pairing may also be user account agnostic, where other user accounts may identify this pairing as having occurred even though such user accounts are not associated with client computing device 210A.
[0040] In other words, OS 226 may support multiple different concurrent user accounts, such as a root user account (or, stated differently, an administrator user account), a guest user
account, and one or more dedicated user accounts by providing each user account of the multiple user accounts their own PAN stack. In the example of FIG. 2, OS 226 supports a first user account associated with first client computing device 2.10A and a second user account associated with second client computing device 21 OB.
[0041] In the context of a vehicle (or other shared computing device contexts, such as a laptop, desktop computer, tablet computer, etc.), the presentation by OS 226 of a full list of all client computing devices that have been previously semi-permanently paired to host computing device 202 across the user accounts may be disorienting and burdensome (as it may be difficult to identify the current client computing device - e.g., client computing device 210A - to which you want to pair) to the current user logged into OS 226 under what the user assumed to be a private dedicated user account. The user may understand this foil list of all client computing devices to be a breach of privacy (especially considering that the user may understand that this full list of client computing devices is presented to other dedicated user accounts),
[0042] However, most PAN protocol suites do not provide a mechanism by which to control an extent to which paired client computing devices are shared between user accounts. Tills inability to control the extent to which paired client computing devices are shared between user accounts likely arose due to the nature of PAN protocol development. That is, PAN protocols were developed for local connections in which shared host computing devices, e.g., desktop computers, laptop computers, smart speakers, smart hubs, smart televisions, etc., established connections with input/output client computing devices, such as wireless PAN mice, wireless PAN keyboards, wireless PAN headphones, and other devices, were shared across user accounts to facilitate input and/or output in support of interactions with the shared host client computing device.
[0043] As PAN protocols were implemented to facilitate interactions between the shared host computing devices (e.g., vehicle head unit 202) and dedicated (single user account) client computing devices (e.g., a smartphone as represented by client computing device 210A) users began to notice that client computing devices were being presented across user accounts supported by OS 226. The private nature of dedicated (single user account) client computing devices may then be at odds with the shared nature of these host computing devices, resulting in concerns about privacy that leads the first user of the client computing device to remove paired client computing devices of which the current first user is unfamiliar. Such removal of the paired client computing devices may result in a different second user having to re-pair this client computing device that is unfamiliar to the first user, which may needlessly
consume both time (from the first and second user perspective) and resources (from the perspective of host computing device 202 in terms of processor cycles, memory, memory bandwidth, etc. and the accompanying power).
[0044] If client computing device 210A has not been previously paired to host computing device 202 while the first user has logged into OS 226 under the first user account, the first user may interface with PAN stack 228A via OS 226 system settings to initiate the above noted discovery/pairing (or, in other words, bonding) process. In other words, PAN stack 228 A of host computing device 202 may first determine whether PAN interface 242A has been previously associated with the first dedicated user account operating client computing device 210A. PAN stack 228A may determine whether PAN interface 242A has been previously associated with the first dedicated user account based on PCD 229A. PCD 229A may identify a list of one or more paired client computing devices that have been previously- paired to PAN interface 242A when the first user was logged into OS 226 under the first dedicated user account. The list of the one or more paired client computing devices may identify client computing device 210A by w ay of a client identifier used by PAN interface 264A when establishing a PAN link, such as PAN link 243A. When PAN interface 264A performs the discovery/pairing process, PAN interface 264A may provide this client identifier to uniquely identify PAN interface 264 A , which PAN stack 228 A may store to PCD 229A (assuming the first user is logged into OS 226 under the first dedicated user account).
[0045] Responsive to determining that PAN interface 242A has not been previously- associated with the first user account (e.g., the client identifier provided by PAN interface 264A does not match any of the client identifiers in the list of client identifiers provided by PCD 229A), PAN stack 228A may initiate a pairing process between PAN interface 242A of host computing device 202 and PAN interface 264A of client computing device 210A. Responsive to successfully pairing PAN interface 242A and PAN interface 264A, PAN stack 228A may store, to PCD 229A, an indication that PAN interface 264A of client computing device 210 is bonded to PAN interface 242A.
[0046] Once paired (which again is semi-permanent), PAN stack 228A may indicate, via OS 226 system settings user interfaces, that client computing device 210A is paired (or, in other words, bonded) to host client computing device 202. Moreover, OS 226 may present client computing device 2.10A as bonded to PAN interface 242A under a user account specific ID, without presenting any other client computing devices associated with the remaining user accounts (that is, in the above example, the root user account, the guest user account, or any
other remaining dedicated user accounts). Such separation occurs because PAN stack 228 A maintains PCD 229A only for the first user account, and, as a result, may only present PCD 229 A associated with the first user account, rather than store PCD that is associated with all of the user accounts supported by OS 226.
[0047] In this way, various aspects of the techniques may enable more secure PANs that are user account aware rather than being user account agnostic. OS 226 may invoke one or more of PAN stacks 228A-228N to present only those client computing devices that have been previously paired to OS 226 when a. user is logged in under a given user account. Tire separate presentation may avoid user confusion and provide potentially more assurance that data security is being provided to the user in terms of sharing data among paired client computing devices.
[0048] Although described with respect to host computing device 202, various aspects of the techniques may enable client computing devices 210A-210N (not all of which are shown in the example of FIG. 2) to provide for separate user account bonding. In other words, PAN stacks 276A-276N of client computing devices 210A-210N, respectively, may implement similar techniques to those described above with respect to PAN stack 228A. OS 274A of client computing device 210A may support multiple accounts, which may result in multiple PAN stacks maintaining separate PCD for multiple users accounts. As such, PAN stacks of client computing device 210A may operate similarly to that described above with respect to PAN stacks 228 in order to initiate programming of PAN interfaces of client computing device 210A to use a client identifier when establishing PAN links. In this respect, client computing device 2I0A may operate similarly to host computing device 202 when establishing a PAN link, such as PAN link 243A.
[0049] With respect to PAN stack 228A, PAN stack 2.28A may further include a controller 250A, a host component interface (HCI) 252A, and a PAN controller 254A. Controller 250A may generally control high-level PAN protocol stack operations, where in the example of Bluetooth™, may occur in accordance with link logic control and adaption layer protocol (L2CAP) as well as supporting different PAN profiles, such as a generic attribute (GATT) profile, a generic access protocol (GAP), an attribute (ATT) protocol, and supporting sendees, such as a security manager (SM).
[0050] HCI 252.A may represent a module configured to provide a command interface to the baseband controller (which is another way to refer to PAN controller 254A) that is implemented (as software and hardware, or as a hardware controller) on the underlying PAN interface (such as PAN interface 242 A, which may be substantially similar to PAN interface
142A FIG. 1). HCI 252A may generally represent a module that presents the interface (e.g., an API) to facilitate interactions between high-level protocol PAN protocol operations and low-level protocol PAN operations (in terms of the network stack as defined by the OSI model, where levels may refer to different higher or lower layers of the OSI model).
[0051] PAN controller 254A may represent a module configured to perform low'-level PAN protocol operations in terms of controlling the baseband operations (e.g., L2 and LI operation of PAN interface 242A and/or 264 A), PAN interface 242A may execute or otherwise implement (e.g., in hardware) PAN controller 254A to support low-level PAN protocol operations (such as baseband operations, which may also be referred to as LI - or, in other words, physical layer, operations in terms of the OSI model). PAN controller 254A may manage physical links, such as PAN link 243A, and provide packetization, channel control, and error correction along with other data integrity and flow control operations.
[0052] OS 226, which may be substantially similar to OS 126 of FIG. 1, may invoke, as described above, PAN stack 22.8 A responsive to a user logging into OS 226 under a first dedicated user account, which may refer to a first user account dedicated for use by the first user. OS 226 may pass the first user account ID to PAN stack 228A, which PAN stack 228A may use as a key to identify PCD 229A (which may represent an example of PCD 129A), which defines ID 249A (which may represent an example of ID 149A).
[0053] More specifically, PAN stack 228A may receive the first user account ID, and invoke controller 2.50A, which accesses storage (possibly within PAN interface 242A and may be represented generally by storage devices 284, which may be substantially similar to storage devices 184 of FIG. 1 ) to obtain PCD 229A that is associated -with the first user ID. In some examples, PCD 229A includes at least one first link key that initiates PAN link 243A. For example, controller 250A may be configured to parse PCD 2.29A to obtain ID 249A and associated security keys 251 A that enable encryption and other security features for PAN link 243A. As such, PCD 229A may include ID 249A and security keys 251 A (“keys 251A,” which may also be referred to as “link keys 251A”).
[0054] Controller 250A may next interface, via HCI 252A, with PAN controller 254A to initiate programming of ID 249A within PAN controller 254A. Controller 250A may interface with HCI 252A to issue a write address command (including ID 249A) to PAN controller 254A (or, in other words, PAN interface 242.A) to program PAN controller 254A to use ID 249A, which may, as one example, include a MAC address. PAN controller 2.54A may next initiate or otherwise establish PAN link 243A with client computing device 210A associated with the first user account.
[0055] A second user may interface with OS 226 to login to OS 226 under a second, different dedicated user account. A second, different client computing device, such as client computing device 210B, associated with the second user may be similar to, if not substantially similar to, one of client computing devices 1 10A-110N of FIG. 1 .
[0056] OS 226 may process the login under the second dedicated user account and invoke PAN stack 228B, passing a second user ID associated with the second dedicated user account. Controller 250B of PAN stack 228B may identify, based on the second user ID, PCD 229B and retrieve PCD 229B from storage, where PCD 229B includes at least one second link key that initiates a second PAN link 243B. As shown in FIG. 2, PCD 229B includes ID 249B and keys 25 IB (which may also be referred to as “security keys 25 IB” or “link keys 25 IB”).
[0057] Controller 250B may next interface, via HCI 252B, with PAN controller 254B to initiate or otherwise establish PAN link 243B with the second, different client computing device 210B associated with the second user account.
[0058] In some examples, client computing device 21 OB may be the same as client computing device 210A. That is, because PCD 229A and PCD 229B are unique to the first and second user accounts of OS 226, respectively, the same client computing device may be associated with multiple different user accounts of OS 226, which may require the same client computing device, e.g., client computing device 210A, to separately pair (or, in oilier words, bond) with host computing device 202. In this respect, client computing device 210A may be associated with host computing device 202 under the first user account, and the same client computing device (e.g., client computing device 210A) may be associated with host computing device 202 under the second user account.
[0059] In addition, by separately maintaining PCD for each user account, PCD may be separately transferred between host computing devices (where a first host computing device may be denoted as host computing device 202A and a second host computing device may be denoted as host computing device 202B). Host computing device 202.A and host computing device 202B (not. shown in FIG, 2) may each include similar components to those described above with respect to host computing device 102 of FIG. 1.
[0060] OS 226 of host computing device 202A may initiate a transfer of PCD 229A (for example) to different host computing device 202B. In some examples, OS 226 of host computing device 2.02A may store a copy of PCD 229A to a network server (e.g., in a cloud computing environment) in an online account associated with the user of client computing device 210A and initiate a transfer of PCD 229A to OS 226 of host computing device 202B,
which may pass PCD 229A to PAN stack 228A. In other examples, OS 226 of host computing device 202B may initiate the transfer of PCD 229A via a wired (e.g., via Ethernet, Universal System Bus - USB - such as by w<ay of a thumb drive or other portable storage media, etc.) or wireless (e.g., wireless local area network, cellular, etc.) connection.
[0061] A PAN stack of host computing device 202B may install PCD 229A, associating PCD 229A with a given user account supported by OS 226 of host computing device 202B. When the user logs into the given user account, OS 226 of host computing device 202B may access PCD 229A and establish PAN link 243A via PAN interface 242A without requiring client computing device 210A to perform the pairing process, as ID 249A is already known to client computing device 210A and all keys (e.g., keys 251 A) and other data associated with client computing device 2I0A is already present in the form of PCD 22.9A. In this way, OS 226 of host computing device 202A may initiate a transfer of the PCD 229A to host computing device 202B so as to enable host computing device 202B to establish, without performing a pairing process client computing device 210A, PAN link 243A with client computing device 210A.
[ 80621 In the example of Bluetooth™ protocols, The Bluetooth'™ hardware abstraction layer (HAL) defines several interfaces used for communication with Bluetooth'™ controllers and Bluetooth™ related hardware. In particular, the Bluetooth™ host controller interface (HCI) HAL, which may be represented as HCI 252A or HCI 252B of FIG. 2, abstracts away a single Bluetooth™ PAN stack (or controller/chip), such as PAN stack 228A or PAN stack 228B, using the Bluetooth™ specification defined HCI in Android HAL form. For example, Bluetooth™ Controller level responsibilities are delegated down PAN stack 228A from the Controller 250A layer to the HCI 252A layer (which may include both a HCI Layer and HCI HAL) and PAN controller 254A layer (which may be configured for HCI HAL implementation), HCI HAL child classes own one implementation of a client to an underlying Bluetooth™ HCI HAL implementation. In this example, the en tirety of PAN stack 228A may be packaged as a dynamically loadable shared object.
[0063] In some examples, Bluetooth™ USB dongles and an altered or new HAL implementation may be used to recognize the multiple PAN stacks 228A-228N (not all of which are show n in the example of FIG. 2). In some examples, multiple remote Bluetooth™ HCI HAL instances may be established using other pixel devices configured as Telematics Control Unit (TCU) Clients. As portrayed throughout the figures illustrated herein and described above, a single chip/controller, such as PAN controller 254A or 254B, may be managed per concurrent user, wherein the single chip/controller is managed by a single PAN
stack that exists for each user. In some other examples, a new HAL, or HCI 252A or HCI 252B, may manage multiple possible controllers. A controller/chip object may be created to hold all the controller/chip specific HALs. The controller/chip object may then return a Bluetooth™ HCI instance. To put the HAL in full control of its hardware registry and make die available chips truly dynamic, HCI 252A or HCI 252B may return the list of all controllers/chips by identifier, such as ID 249 A or ID 249B, rather than by object, interface, or MAC address. For example, a consumer may use ID 249A to get the PAN interface corresponding to ID 249A, which in this example, may be PAN interface 242A. The list of identifiers may further be used to determine which chips/controllers are available. Higher level logic may use tire list to pick or assign a chip/controller. In some examples, a null string identifier can correspond to either the "‘only” chip, or the “default” chip.
[0064] In some examples, PAN stack 228A may be configured to take a controller ID or “chip ID” parameter, such as ID 249A or ID 249B. For example, responsive to ID 249A being defined and passed, PAN controller 254 A may be made available at HCI layer 252A start time. In some examples, wherein mul tiple available chips/controllers exist, a parameter may be added to a PAN stack’ s set of initialize functions that will determine which chip’s HAL the PAN stack should ultimately bind to.
[0065] In some examples, to get the desired chip identifier, a new initialize function must be called before any other interface calls can be made, in which the function will store the desired identifier for use on enable. Hie function may further be used in the future to set any other information needed before enabling the adapter, such as MAC address. This will provide the Bluetooth™ manager service (the component that receives user events and manages the high-level process of starting and stopping stacks/hardware in Bluetooth'™ protocols) a means to set the chip ID for a stack that it is starting. The function may be called when a Bluetooth™ connection is made.
[0066] Continuing with the example of a Bluetooth™ protocol, responsive to determining the desired controller/chip and therefore the specific PAN stack, HCI 252A may return the list of all chips/controllers by identifier, including ID 249 A, and this list may be used to make runtime decisions about which controller(s)/chip(s) to start. In some examples, an API surface may allow' system applications to understand available chips and request their starting for particular users. The Bluetooth™ System Service layer may communicate through Java Native Interface (INI) to the Bluetooth™ hardware aggregator HAL. di rectly to get the list of chip IDs. The list of chip IDs may further be used to understand and manage available
Bluetooth™ hardware resources, as well as to implement APIs for requesting/binding and starting/ stopping chips.
[0067] In this way, the techniques in this disclosure provide an architecture for a multi -chip HAL, where Java can address and start stacks individually. Each user from a plurality of concurrent users is associated with one PAN stack from PAN stacks 228A-228N managed by OS 226. As shown in FIG. 2, a first user account operating first client computing device 210A is associated with PAN stack 228A while a second user account operating second client computing device 21 OB is associated with PAN stack 228B. OS 226 may further manage chip/PAN stack lifecycles and user bindings/API call routing. Further, each PAN stack may be associated with a unique set of link keys, such as keys 251A or 25 IB.
[0068] FIG. 3 is a flowchart illustrating example operation of the system shown in the example of FIG. 2 in providing concurrent users access to a single instance of an operating system by providing them their own personal area network stack, m accordance with tire techniques described in this disclosure.
[0069] In the example of FIG. 3, OS 226 of host computing device 202 receives a request from first client computing device 210A associated with a first user account to connect to first PAN interface 242A (300). OS 226 of host computing device 202. may also receive a request from second client computing device 210B associated with a second user account to connect to second PAN interface 242A (302). The first user account and the second user account may be different concurrent user accounts.
[0070} OS 226 determines whether each requesting client computing device was previously connected to the respective requested PAN interface (304). In other words, OS 226 determines whether the first PAN interface 242A was previously associated with the first user account and/or determines whether the second PAN interface 242B was previously associated with the second user account. In the case of the first user account, OS 22.6 may invoke PAN stack 228A, passing a user ID associated with the first user account to PAN stack 228A. In the case of the second user account, OS 226 may invoke PAN stack 228B, passing a user ID associated with the second user account to PAN stack 228B. OS 226 may determine whether there exists any PCD 229A associated with the first user ID, and/or determine whether there exists any PCD 229B associated with the second user ID. In the example that no PCD has yet been created for a user, and therefore the requesting client computing device was not previously connected to the requested PAN interface (NO), OS 226 pairs the requesting device with the requested PAN interface (306). Specifically, in the example that client computing device 210A was not previously connected to PAN interface 242 A, PAN stack
228A may obtain an identifier (e.g., ID 249A) for use by the first user account. PAN stack 228A may interface with OS 226 to obtain ID 249A, which OS 226 may then assign to PAN stack 2.28A . OS 226 may store the pairing configuration data (e.g., PCD 229A) and user account data, in storage devices 284 (308).
[0071] Responsive to OS 226 storing the pairing configuration data and user account data in storage devices 284 or OS 226 determining that each client computing device was previously connected to the respective requested PAN interface (YES), OS 226 then obtains, from storage devices 284, PCD for the user account associated with the requesting device (310). For example, OS 226 may obtain PCD 229A for client computing device 210A and PCD 229B for client computing device 210B. OS 22.6 then initiates a connection between the requesting device and requested PAN interface using the PCD (312). For example, PAN stack 228A initiates, based on PCD 229A, first PAN interface 242A, and PAN stack 228B initiates, based on PCD 229B, second PAN interface 242.B. More specifically, PAN stack 228 A programs P AN interface 242A to use ID 249A for the first user account and PAN stack 228B programs PAN interface 242B to use ID 249B for the second user account (where “program” should be understood to refer to initiation of such programming by issuing a w'rite address command via HCI 252A to PAN controller 254A or HCI 252B to PAN controller
254B, respectively),
[0072] OS 226 connects client computing device 210A to first PAM interface 242 A and/or connects client computing device 21 OB to second PAN interface 242B. More specifically, PAN stack 228 A interfaces with PAN interface 242A to establish PAN link 243A using ID 249 A for the first user account. PAN stack 228B interfaces with PAN interface 242B to establish PAN link 243B using ID 249B for the second user account. The respective OS of the client computing devices, e.g., OS 274A and OS 274B, may then interface with their respective PAN stack (e.g., PAN stack 276A and PAN stack 276B) to initiate transfer of data via the respective PAN link. Specifically, each PAN stack may interface with the respective PAN interface of each client computing device to communicate the data via the respective PAN link. OS 226 of host computing device 202 may present such data via one or more of the various outputs discussed above in more detail.
[0073] Responsive to successfully connecting client computing device 210A to first PAN interface 242.A and/or client computing device 210B to second PAN interface 2.42B, OS 2.26 may also store, to the respective PCD, an indication that the requesting client computing device is connected to the requested PAN interface.
[0074] In the examples above, first PAN interface 242A and second PAN interface 242B may be the same type of PAN interface. Furthermore, first PAN interface 242A and second PAN interface 242B are managed by a single instance of OS 226.
[0075] In this way, various aspects of the techniques described in this disclosure may enable the following examples:
[0076] Example 1. A method comprising: obtaining, by a host computing system and from a memory storing personal area network configuration data for each user account from a plurality of user accounts, first personal area network configuration data for a first user account from the plurality of user accounts, wherein the first user account is associated with a first personal area network from a plurality of personal area networks: obtaining, by the host computing system and from the memory, second personal area network configuration data for a second user account from the plurality of user accounts, w herein the second user account is associated with a second personal area network from the plurality of personal area networks; initiating, by the host computing system and based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiating, by the host computing system and based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area network interface are managed by a single instance of an operating system executing at the host computing system.
[0077] Example 2. The method of example 1, wherein the operating system is configured to: receive a request to connect to the first personal area network interface, wherein the request is associated with the first user account; and responsive to receiving the request: determine whether the first, personal area network interface was previously associated with the first user account; responsive to determining that the first personal area network interface was previously associated with the first user account, connect a first, personal area network device and the first personal area network interface; and responsive to successfully connecting the first personal area network device and the first personal area network interface, store, to the first personal area network configuration data, an indication that the first personal area network device is connected to the first personal area network interface. [0078] Example 3. The method of any combination of examples 1 and 2, w'herein the second personal area network is different from the first personal area network.
[0079] Example 4. Hie method of any combination of examples 1-3, wherein the first personal area network configuration data includes a first link key that initiates a first personal area network link and the second personal area network configuration data includes a second link key that initiates a second personal area network link.
[0080] Example 5. The method of any combination of examples 1-4, wherein the host computing system comprises a vehicle head unit that includes one or more processors configured to execute the single instance of the operating system.
[0081] Example 6. Hie method of any combination of examples 1-5, wherein the plurali ty of personal area network interfaces further comprises a plurality of discrete hardware interfaces, and wherein each discrete hardware interface is configured to connect with a personal area network device.
[0082] Example 7. The method of example 6, wherein each discrete hardw are interface comprises a Bluetooth™ module.
[0083] Example 8. The method of example 6, wherein the single instance of the operating system includes a plurality of software interfaces configured to communicate with the plurality of discrete hardware interfaces.
[0084] Example 9. A host computing system, comprising: a first personal area network from a plurality of personal area networks that is associated with a first user account from a plurality of user accounts; a second personal area network from the plurality of personal area networks that is associated with a second user account from the plurality of user accounts; a memory that stores personal area network configuration data for each user account from the plurality of user accounts; and one or more processors that execute an operating system to: obtain, from the memory, first personal area network configuration data for the first user account: obtain, from the memory, second personal area network configuration data for the second user account; initiate, based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiate, based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area network interface are managed by a single instance of the operating system .
[0085] Example 10. The host computing system of example 9, wherein the one or more processors execute the operating system to: receive a request to connect to the first personal
area network interface, wherein the request is associated with the first user account; and responsive to receiving the request: determine whether the first personal area network interface was previously’ associated with the first user account; responsive to determining that the first personal area network interface was previously associated with the first user account, connect a first personal area network device and the first personal area network interface; and responsive to successfully connecting the first personal area network device and the first personal area network interface, store, to the first personal area network configuration data, an indication that the first personal area network device is connected to the first personal area network interface.
[0086] Example 11. The host computing system of any combination of examples 9 and 10, wherein the second personal area network is different from the first personal area network.
[0087] Example 12. The host computing system of any combination of examples 9-11, wherein the first personal area network configuration data includes a first link key that initiates a first personal area network link and the second personal area network configuration data includes a second link key that initiates a second personal area network link.
[00881 Example 13. The host computing system of any combination of examples 9-12, wherein the host computing system comprises a vehicle head unit that includes the one or more processors executing the single instance of the operating system.
[0089] Example 14. The host computing system of any combination of examples 9-13, wherein the plurality of personal area network interfaces further comprises a plurality of discrete hardware interfaces, and wherein each discrete hardware interface is configured to connect with a personal area network device.
[0090] Example 15. The host computing system of example 14, wherein each discrete hardware interface comprises a Bluetooth™ module.
[0091] Example 16. The host computing system of example 14, wherein the single instance of the operating system includes a plurality of software interfaces configured to communicate with the plurality of discrete hardware interfaces.
[0092] Example 17. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to: obtain, from a memory, first personal area network configuration data for a first user account, wherein the first user account is associated with a first personal network from a plurality of personal area networks; obtain, from the memory', second personal area network configuration data for a second user account, wherein the second user account is associated with a second personal network from the plurality of personal area networks; initiate, based on the first personal area
network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiate, based on the second personal area network configuration data, a second personal area network interface from the plurality’ of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area network interface are managed by a single instance of an operating system executed by the one or more processors.
[0093] Example 18. The non- transitory computer-readable storage medium of example 17, wherein the one or more processors are further configured to: receive a request to connect to the first personal area network interface, wherein the request is associated with the first user account; and responsive to receiving the request: determine whether the first personal area network interface was previously associated with tire first user account; responsive to determining that the first personal area network interface was previously associated with the first user account, connect a first personal area network device and the first personal area network interface; and responsive to successfully connecting the first personal area network device and the first personal area network interface, store, to the first personal area network configuration data, an indication that the first personal area network device is connected to tlie first personal area network interface.
[0094] Example 19. Hie non-transitory computer-readable storage medium of any combination of examples 17 and 18, wherein the second personal area network is different from the first personal area network .
[0095] Example 20. The non- transitory computer-readable storage medium of any combination of examples 17-19, wherein the first personal area network configuration data includes a first link key7 that initiates a first personal area network link and the second personal area network configuration data includes a second link key that initiates a second personal area network link.
[0096] Example 21. A computing system comprising means for performing any- combination of examples 1-9.
[0097] Example 22. A device comprising one or more processors and a storage device encoded with instructions that, when executed by the one or more processors, cause the one or more processors to perform any- combination of examples 1 -9.
[0098] Example 23. A computer-readable storage medium encoded with instructions for causing one or more processors to perform any combination of examples 1-9.
[0099] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over, as one or more instructions or code, a computer- readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another, e.g., according to a communication protocol. In this manner, computer-readable media generally may correspond to (1) tangible computer-readable storage media, which is non-transitoiy or (2) a communication medium such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in tins disclosure. A computer program product may include a computer-readable medium.
[0100] By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead directed to non-transient, tangible storage media. Disk and disc, as used, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, ultra Blu-ray, etc. where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
[0101] Inst ructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or
discrete logic circuitry. Accordingly, the term “processor,” as used may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described. In addition, in some aspects, the functionality described may be provided within dedicated hardware and/or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.
[0102] The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or fi rm ware.
[0103] Various examples have been described. These and other examples are within the scope of the following claims.
Claims
1 . A method comprising: obtaining, by a host computing system and from a memory storing personal area network configuration data for each user account from a plurality of user accounts, first personal area network configuration data for a first user account from the plurality of user accounts, wherein the first user account is associated with a first personal area network from a plurality of personal area networks; obtaining, by the host computing system and from the memory, second personal area network configuration data for a second user account from the plurality of user accounts, wherein the second user account is associated with a second personal area network from the plurality of personal area networks; initiating, by the host computing system and based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiating, by the host computing system and based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area network interface are managed by a single instance of an operating system executing at the host computing system.
The method of claim 1, wherein the operating system is configured to: receive a request to connect to the first personal area network interface, wherein the request is associated with the first user account; and responsive to receiving the request: determine whether the first personal area network interface was previously associated with the first user account; responsive to determining that the first personal area network interface was previously associated with the first user account, connect a first personal area network device and the first personal area network interface; and responsive to successfully connecting the first personal area network device and the first personal area network interface, store, to the first personal area network
configuration data, an indication that the first personal area network device is connected to the first personal area network interface.
3. The method of claim 1 , wherein the second personal area network is different from tlie first personal area network.
4. The method of claim 1, wherein the first personal area network configuration data includes a first link key that initiates a first personal area network link and the second personal area network configuration data includes a second link key that initiates a second personal area network link,
5. The method of claim 1, wherein the host computing system comprises a vehicle head unit that includes one or more processors configured to execute the single instance of the operating system.
6. The method of claim 1, wherein the plurality of personal area network interfaces further comprises a plurality of discrete hardware interfaces, and wherein each discrete hardware interface is configured to connect with a personal area network device.
7. The method of claim 6, wherein each discrete hardware interface comprises a Bluetooth™ module.
8. The method of claim 6, wherein the single instance of the operating system includes a plurality of software interfaces configured to communicate with the plurality of discrete hardware interfaces .
9. A host computing system, comprising: a first personal area network from a plurality of personal area networks that is associated with a first user account from a plurality of user accounts; a second personal area network from the plurality of personal area networks that is associated with a second user account from the plurality of user accounts; a memoi}' that stores personal area network configuration data for each user account from the plurality of user accounts; and one or more processors that execute an operating system to:
obtain, from the memory, first personal area network configuration data for the first user account; obtain, from the memory, second personal area network configuration data for the second user account; initiate, based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area network interfaces; and initiate, based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, wherein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first personal area network interface and the second personal area network interface are managed by a single instance of the operating system.
10. The host computing system of claim 9, wherein the one or more processors execute the operating system to: receive a request to connect to the first personal area network interface, wherein the request is associated with the first user account; and responsive to receiving the request: determine whether the first personal area network interface was previously associated with the first user account; responsive to determining that the first personal area network interface was previously associated with the first user account, connect a first personal area network device and the first personal area network interface; and responsive to successfully connecting the first personal area network device and the first personal area network interface, store, to the first personal area network configuration data, an indication that the first personal area network device is connected to the first personal area network interface.
11. The host computing system of claim 9, wherein the second personal area network is different from the first personal area network.
12. The host computing system of claim 9, wherein the first personal area network configuration data includes a first link key that initiates a first personal area network link and the second personal area network configuration data includes a second link key that initiates a second personal area network link.
13. The host computing system of claim 9, wherein the host computing system comprises a vehicle head unit that includes the one or more processors executing the single instance of the operating system .
14. The host computing system of claim 9, wherein the plurality of personal area network interfaces further comprises a plurality’ of discrete hardware interfaces, and wherein each discrete hardware interface is configured to connect with a personal area network device.
15. The host computing system of claim 14, wherein each discrete hardware interface comprises a Bluetooth™ module.
16. The host computing system of claim 14, wherein the single instance of the operating system includes a plurality of software interfaces configured to communicate with the plurality of discrete hardw are interfaces.
17. A non -transitory’ computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to: obtain, from a memory, first personal area network configuration data for a first user account, wfierein the first user account is associated with a first personal network from a plurality of personal area networks; obtam, from the memory7, second personal area network configuration data for a second user account, wherein the second user account is associated with a second personal network from the plurality of personal area networks; initiate, based on the first personal area network configuration data, a first personal area network interface from a plurality of personal area netw ork interfaces; and initiate, based on the second personal area network configuration data, a second personal area network interface from the plurality of personal area network interfaces, w'herein the first personal area network interface and the second personal area network interface are a same type of personal area network interface, and wherein the first
personal area network interface and the second personal area network interface are managed by a single instance of an operating system executed by the one or more processors.
18. The non-transitory computer-readable storage medium of claim 17, wherein the one or more processors are further configured to: receive a request to connect to the first personal area network interface, wherein the request is associated with the first user account; and responsive to receiving the request: determine whether the first personal area network interface was previously associated with the first user account; responsive to determ ining that the first personal area network interface was previously associated with the first user account, connect a first personal area network device and the first personal area network interface; and responsive to successfully connecting the first personal area network device and the first personal area network interface, store, to the first personal area network configuration data, an indication that the first personal area network device is connected to the first personal area network interface.
19. The non-transitory computer-readable storage medium of claim 17, wherein the second personal area network is different from the first personal area network.
20. The non-transitory computer-readable storage medium of claim 17, wherein the first personal area network configuration data includes a first link key that initiates a first personal area network link and the second personal area network configuration data includes a second link key that initiates a second personal area network link.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2023/025667 WO2024263153A1 (en) | 2023-06-19 | 2023-06-19 | Single-instance concurrent multi-user architecture |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4710570A1 true EP4710570A1 (en) | 2026-03-18 |
Family
ID=87378070
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP23742501.2A Pending EP4710570A1 (en) | 2023-06-19 | 2023-06-19 | Single-instance concurrent multi-user architecture |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4710570A1 (en) |
| CN (1) | CN121359475A (en) |
| WO (1) | WO2024263153A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10055187B2 (en) * | 2016-04-27 | 2018-08-21 | Blackfire Research Corporation | System and method for multiuser interaction with a media computing device with multiple virtual screens and personal area network capability |
| US20190188719A1 (en) * | 2017-12-14 | 2019-06-20 | Visa International Service Association | Computer-Implemented System, Method, and Computer Program Product for Automatically Generating an Account Profile for at Least One User Associated with a Plurality of Account Identifiers |
| US11395356B1 (en) * | 2021-07-02 | 2022-07-19 | Google Llc | User account aware personal area network bonding |
-
2023
- 2023-06-19 CN CN202380099235.8A patent/CN121359475A/en active Pending
- 2023-06-19 EP EP23742501.2A patent/EP4710570A1/en active Pending
- 2023-06-19 WO PCT/US2023/025667 patent/WO2024263153A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| CN121359475A (en) | 2026-01-16 |
| WO2024263153A1 (en) | 2024-12-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10506068B2 (en) | Cloud-based cross-device digital pen pairing | |
| EP3835983B1 (en) | Artificial intelligence (ai) processing method and ai processing device | |
| US10972914B2 (en) | Image sharing method and system, and electronic device | |
| US20180101850A1 (en) | User and device authentication for web applications | |
| EP4102368A1 (en) | Cross-device application calling method and electronic device | |
| US11550484B2 (en) | Techniques for persisting data across instances of a cloud shell | |
| US10439868B2 (en) | Electronic device employing level-based transmission of configuration information | |
| US20160301530A1 (en) | Sensitive operation verification method, apparatus, and system | |
| WO2019047745A1 (en) | Data sharing method, terminal device and storage medium | |
| CN111357255B (en) | Building a trusted application common to multiple applications | |
| KR20160042739A (en) | Method for sharing a display and electronic device thereof | |
| US20150160827A1 (en) | Method of interface control and electronic device thereof | |
| WO2020024929A1 (en) | Method for upgrading service application range of electronic identity card, and terminal device | |
| EP3907930B1 (en) | File processing method and terminal device | |
| CN106815518A (en) | One kind application installation method and electronic equipment | |
| WO2019184631A1 (en) | Information processing method and apparatus, computer-readable storage medium, and terminal | |
| US20150121474A1 (en) | Processor security authentication area | |
| JP2023067798A (en) | Automated wireless connection for operating system projection in vehicles | |
| US11395356B1 (en) | User account aware personal area network bonding | |
| EP4710570A1 (en) | Single-instance concurrent multi-user architecture | |
| US20250384120A1 (en) | Application handoff method and terminal device | |
| US12013795B1 (en) | System and method for managing ports of data processing systems and attached devices | |
| CN114285583A (en) | Method, device, electronic device and storage medium for device to securely access the Internet of Things |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20251212 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |