Patent ID: 12219396

The disclosure is described with reference to the accompanying drawings. In the drawings, generally, like reference numbers indicate identical or functionally similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.

DETAILED DESCRIPTION

Overview

Systems, methods, and apparatuses disclosed herein can mitigate transmitting latency to improve the quality of a voice or the video call. These systems, methods, and apparatuses reset a transmitting latency timer upon retrieving a packet from a transmitting buffer. Thereafter, these systems, methods, and apparatuses start the count of the transmitting latency timer as the packet is being processed. And these systems, methods, and apparatuses compare the transmitting latency timer e with a transmitting latency threshold as these systems, methods, and apparatuses are processing a packet for transmission. These systems, methods, and apparatuses can drop the packet and/or can select another packet for processing in response to the transmitting latency timer exceeding the transmitting latency threshold to mitigate the transmitting latency.

In some embodiments, the aspects of this disclosure can be performed by a network and/or a user equipment (UE) that operates according to 5thgeneration (5G) wireless technology for digital cellular networks as defined by 3rd Generation Partnership Project (3GPP). Additionally, or alternatively, the aspects of this disclosure can be performed by a network and/or a UE that operates according to the Release 15 (Rel-15), Release 16 (Rel-16), Release 17 (Rel-17), Rel-17 new radio (NR), or others. However, the aspects of this disclosure are not limited to these examples, and one or more mechanisms of this disclosure can be implemented by other network(s) and/or UE(s).

Exemplary Wireless Network for Mitigating for Transmitting Latency

FIG.1graphically illustrates an exemplary wireless network for mitigating for transmitting latency in accordance with various embodiments of the present disclosure. A wireless network100as illustrated inFIG.1is provided for the purpose of illustration only and does not limit the disclosed aspects. As illustrated inFIG.1, the wireless network100may include, but is not limited to, network nodes102.1and102.2, for example, base stations (BSs). The BSs can include one or more Next Generation Node BSs (gNBs), one or more radio access nodes (RANs), one or more evolved NodeBs (eNBs), one or more NodeBs, one or more Road Side Units (RSUs), one or more Transmission Reception Points (TRxPs or TRPs), and/or the like. As illustrated inFIG.1, the wireless network100may also include, but is not limited to, electronic devices104.1and104.2, for example, user equipments (UEs). The UEs can include one or more consumer electronics devices, one or more cellular phones, one or more smartphones, one or more feature phones, one or more tablet computers, one or more wearable computer devices, one or more personal digital assistants (PDAs), one or more pagers, one or more wireless handsets, one or more desktop computers, one or more laptop computers, one or more in-vehicle infotainments (IVIs), one or more in-car entertainment (ICEs) devices, one or more Instrument Clusters (ICs), one or more head-up display (HUD) devices, one or more onboard diagnostic (OBD) devices, one or more dashtop mobile equipments (DMEs), one or more mobile data terminals (MOTs), one or more Electronic Engine Management Systems (EEMSs), one or more electronic/engine control units (ECUs), one or more electronic/engine control modules (ECMs), one or more embedded systems, one or more microcontrollers, one or more control modules, one or more engine management systems (EMSs), one or more networked or “smart” appliances, one or more Machine-Type-Communication (MTC) devices, one or more Machine-to-Machine (M2M) devices, one or more Internet of Things (IoT) devices, and the like. The electronic devices104.1and104.2, hereinafter referred to as UEs104.1and104.2, can be configured to operate based on a wide variety of wireless communication techniques. These techniques can include, but are not limited to, techniques based on 3rd Generation Partnership Project (3GPP) standards. For example, the UEs104.1and104.2can be configured to operate using Rel-15, Rel-16, Rel-17, or others. The network nodes102.1and102.2, herein referred to as a base station102or a cell102, can include one or more nodes configured to operate based on a wide variety of wireless communication techniques such as, but not limited to, techniques based on 3GPP standards. For example, the base station102can include one or more nodes configured to operate using Rel-15, Rel-16, Rel-17, or others.

As illustrated inFIG.1, UE104.1and the UE104.2can be connected to and can communicate with the base station102.1over a radio link150.1and the base station102.2over a radio link150.2, respectively. The radio link150.1and the radio link150.2can include one or more downlink communication channels, for example, a Physical Downlink Control Channel (PDCCH) and/or a Physical Downlink Shared Channel (PDSCH), and/or one or more uplink communication channels, for example, a Physical Uplink Control Channel (PUCCH) and/or a Physical Uplink Shared Channel (PUSCH). The PDCCH and the PUCCH represent downlink and uplink control channels, respectively, that carry control information between the UE104.1and the UE104.2and the base station102.1and the base station102.2, respectively. And the PDSCH and the PUSCH represent downlink and uplink channels, respectively, that carry data information between the UE104.1and the UE104.2and the base station102.1and the base station102.2, respectively. As used herein, the terms downlink, DL, or the like refer to the direction from the base station102.1and the base station102.2to the UE104.1and the UE104.2, respectively. The term uplink, UL, or the like refer to the direction from the UE104.1and the UE104.2to the base station102.1and the base station102.2, respectively

Voice over New Radio (VoNR) represents a voice and video communications service that packetizes voice over the Internet Protocol (VoIP) and transports Real-time Transport Protocol (RTP) packets between a calling UE and a called UE, such as the UE104.1and the UE104.2, respectively, to provide an example. The RTP defines a standard packet format for delivering voice and video in real-time. For example, the RTP can be used to insert time markers and sequence numbers into the RTP packets, to control the destination arrival of the RTP packets, and/or to identify the type of information transported by the RTP packets to provide some examples. When the calling UE initiates a voice or video call, a first Radio Resource Control (RRC) connection is established between the calling UE and the base station102.1. Thereafter, the 5G core network (5GC)106establishes a first quality of service (QoS) flow for the calling UE to carry Session Initiation Protocol (SIP) signaling. And the base station102.1establishes a first data radio bearer (DRB) between the calling UE and the base station102.1. When the calling UE initiates a voice or video call, a second RRC connection is established between the called UE and the base station102.2. Thereafter, the 5GC106establishes a second QoS flow for the called UE to carry SIP signaling. And the base station102.2establishes a second DRB between the called UE and the base station102.2. Once the first DRB and the second DRB have been established, the calling UE, the called UE, and an IP Multimedia System (IMS) core associated with the 5GC106perform SIP negotiation on various parameters for the voice or video call, such as the codec scheme, IP address, port number, information of the calling UE and/or the called UE, and/or other voice service information for the voice or the video call to provide some examples. After SIP negotiation is successful, the 5GC106establishes a third QoS flow and a fourth QoS flow for the calling UE and the called UE, respectively, to transport the RTP packets between the calling UE and the called UE. And the base stations102.1and102.2establish a third DRB between the called UE and the base station102.2and a fourth DRB between the called UE and the base station102.2, respectively, for the RTP packets.

In the exemplary embodiment illustrated inFIG.1, the calling UE can transmit the RTP packets to the called UE to provide a single direction of a bi-directional voice or video call between one or more users at the calling UE and one or more users at the called UE. Similarly, the called UE can transmit RTP packets to the calling UE to provide the bi-directional voice or video call. The discussion to follow is to be described in terms of the calling UE transmitting the RTP packets to the called UE to provide the single direction of the bi-directional voice or video call for simplicity. However, those skilled in the relevant art(s) will recognize that the teachings therein are equally applicable to the called UE transmitting the RTP packets to the calling UE to provide the bi-directional voice or video call without departing from the spirt and scope of the present disclosure.

The calling UE can provide the RTP packets at predetermined, regular intervals, for example, every twenty (20) milliseconds (ms), every thirty (30) ms, every forty (40) ms, every sixty (60) ms, and the like, to the called UE. In some embodiments, the called UE can receive the RTP packets in a different order than were sent by the calling UE, also referred to as out-of-order delivery. This out-of-order delivery can be caused by, for example, channel latency, such as the RTP packets following multiple paths through the wireless network100. To compensate for the out-of-order delivery, the called UE can include a jitter buffer to reconstruct an ordering of the RTP packets provided by the calling UE. The jitter buffer can include a static jitter buffer that maintains a receiving latency timer within the called UE. The receiving latency timer can count up to a predetermined, fixed amount of time, for example, ninety (90) ms, to measure a time elapsed between adjacent RTP packets from among the RTP packets arriving at the called UE. The called UE can reset the receiving latency timer upon a first RTP packet from among the RTP packets arriving at the called UE. Upon resetting the receiving latency timer, the called UE can measure the time elapsed between the first RTP packet arriving at the called UE and a second RTP packet from among the RTP packets arriving at the called UE. The called UE can recover the second RTP packet when the second RTP packet arrives at the called UE prior to expiration of the receiving latency timer. Alternatively, or in addition to, the called UE can consider the second RTP packet to be lost when the RTP packet has not yet arrived at the called UE upon expiration of the receiving latency timer.

Undesirable latency within the calling UE, herein referred to as transmitting latency, can cause the RTP packets to arrive at the called UE after expiration of the receiving latency timer. Because these packets arrive at the called UE after expiration of the receiving latency timer, the called UE can consider these RTP packets to be lost. The transmitting latency can be caused by, for example, and/or by lower-layer transmission procedures, such as Packet Data Convergence Protocol (PDCP), radio link control (RLC), multiple access control (MAC), and/or physical (PHY) layer to provide some examples. In some embodiments, the PDCP, and the RLC, the MAC represents layer 2 processing that can be performed by a processor, such as the processor210as to be described in further detail below inFIG.2. And the PHY layer represents layer 1 processing that can be performed by a transceiver, such as the transceiver220as to be described in further detail below inFIG.2.

As to be described in further detail below, the calling UE can mitigate this transmitting latency to improve the quality of the voice or the video call. During operation, the calling UE can store the RTP packets that are pending transmission to the called UE in a transmission buffer. The calling UE can process these RTP packets in accordance with the lower-layer transmission procedures to prepare these packets for transmission to the called UE. The calling UE can maintain a transmitting latency timer that measures the time elapsed between adjacent RTP packets from among the RTP packets that are retrieved from the transmission buffer and transmitted to the called UE. In some embodiments, the transmitting latency timer measures the time consumed by the lower-layer transmission procedures to prepare a RTP packet from among the RTP packets that is retrieved from the transmission buffer for transmission to the called UE. For example, the transmitting latency timer measures the time elapsed between completing a transmission of a first RTP packet from among the adjacent RTP packets and the time consumed by the lower-layer transmission procedures to prepare a second RTP packet from among the adjacent RTP packets for transmission to the called UE. In this example, the transmitting latency timer can be reset upon completing the transmission of the first RTP packet to measure the time consumed by the lower-layer transmission procedures to prepare the second RTP packet to the called UE. In some embodiments, the first RTP packet can be segmented into multiple RTP packet segments. In these embodiments, the transmitting latency timer can be reset upon completing the transmission of the multiple RTP packet segments.

The calling UE can compare the count of the transmitting latency timer with a transmitting latency threshold as the calling UE is preparing the RTP packet for transmission to the called UE. The calling UE can compare the count of the transmitting latency timer with the transmitting latency threshold as the calling UE is processing the RTP packet in accordance with the lower-layer transmission procedures. Generally, the transmitting latency threshold can be selected such that the a combination of the channel latency and the transmitting latency does not exceed the receiving latency timer at the called UE. The transmitting latency threshold can represent a predetermined static threshold that can be based on analysis of the channel latency and/or the transmitting latency or a dynamic configurable threshold that can reflect changes in the channel latency and/or the transmitting latency. In these embodiments, the transmitting latency threshold can be inversely related to the channel latency. For example, the transmitting latency threshold can be decreased to allow for less time to process the RTP packet in accordance with the lower-layer transmission procedures in response to the channel latency increasing. As another example, the transmitting latency threshold can be increased to allow for more time to process the RTP packet in accordance with the lower-layer transmission procedures in response to the channel latency decreasing.

The calling UE can complete processing of the RTP packet in accordance with the lower-layer transmission procedures before the count of the transmitting latency timer exceeds the transmitting latency threshold. After processing of the RTP packet before the count of the transmitting latency timer exceeds the transmitting latency threshold, the calling UE can transmit the RTP packet to the called UE. Alternatively, or in addition to, the calling UE can cease processing of the RTP packet in response to the count of the transmitting latency timer exceeding the transmitting latency threshold. In some embodiments, the calling UE can drop the RTP packet being processed in response to the count of the transmitting latency timer exceeding the transmitting latency threshold and can reserve resources allocated to the transmission of the RTP packet for another RTP packet stored in the transmission buffer. In these embodiments, the calling UE can select the other RTP packet from the transmission buffer to be processed in accordance with the lower-layer transmission procedures in response to the count of the transmitting latency timer exceeding the transmitting latency threshold. Additionally, the calling UE can reset the transmitting latency timer upon selecting the other RTP packet from the transmission buffer. In some embodiments, the calling UE can select a newest RTP packet that is stored in the transmission buffer, namely, Last In, First Out, as the other RTP packet. In some embodiments, the transmitting latency timer can be extended to multiple RTP packets stored within the transmission buffer such that:
Tlat[X+n]=Tlat[X]−20*nms,  (1)
where Tlat[X+n] represents the count of the transmitting latency timer for an RTP packet [X+n] that is stored within the transmission buffer and Tlat[X] represents the count of the transmitting latency timer for an RTP packet [X] that is stored within the transmission buffer. In these embodiments, the calling UE can select the other RTP packet as being a packet that is stored within the transmission buffer having the count of the transmitting latency timer that does not exceed the transmitting latency threshold.
Exemplary Electronic Device that can be Implemented within the Exemplary Wireless Network

FIG.2illustrates a block diagram of an electronic device for mitigating for the transmitting latency according to some aspects of the disclosure. In the exemplary embodiment illustrated inFIG.2, an electronic device200may be any of the electronic devices, for example, the UEs104.1and104.2of the wireless network100as described above inFIG.1. As illustrated inFIG.2, the electronic device includes one or more processors210, one or more transceivers220, a communication infrastructure240, a memory250, an operating system252, an application254, a transmission buffer256, a transmitting latency timer258, and an antenna260. The various systems illustrated inFIG.2are provided as exemplary parts of the electronic device200, and the electronic device200can include other circuit(s) and subsystem(s). Also, although the systems of the electronic device200are illustrated as separate components, the aspects of this disclosure can include any combination of these, less, or more components. Also, the electronic device200can include any number of processors, transceivers, communication infrastructures, memories, operating systems, applications, and antennas.

The memory250may include random access memory (RAM) and/or cache, and may include control logic (e.g., computer software) and/or data. The memory250may include other storage devices or memory such as, but not limited to, a hard disk drive and/or a removable storage device/unit. According to some examples, the operating system252can be stored in the memory250. The operating system252can manage transfer of data between the memory250, the application254, the processor210, and/or the transceiver220. In some examples, the operating system252maintains one or more network protocol stacks (e.g., Internet protocol stack, cellular protocol stack, and the like) that can include a number of logical layers. At corresponding layers of the protocol stack, the operating system252includes control mechanism and data structures to perform the functions associated with that layer. In some embodiments, the application254can be stored in the memory250. The application254can include applications (e.g., user applications) used by a wireless electronic device and/or a user of the wireless electronic device. The application254can include applications such as, but not limited to, radio streaming, video streaming, remote control, and/or other user applications. In some embodiments, the transmission buffer256can store the RTP packets for transmission to the UEs104.1and104.2to provide an example as described above inFIG.1.

The electronic device200can also include the communication infrastructure240. The communication infrastructure240provides communication between, for example, the processor210, the transceiver220, and the memory250. In some implementations, the communication infrastructure240may be a bus. The processor210together with instructions stored in memory250can performs operations enabling the electronic device200to mitigate for transmitting latency within the UEs104.1and104.2to provide an example to improve the quality of a voice or the video call between the UEs104.1and104.2as described herein. Alternatively, the processor210can be “hard-coded” to perform operations enabling the electronic device200to mitigate for transmitting latency within the UEs104.1and104.2to provide an example to improve the quality of a voice or the video call between the UEs104.1and104.2as described herein.

The transceiver220can transmit and receive communications signals that support the operations of electronic device including, but not limited to, mitigation for transmitting latency, according to some aspects, and may be coupled to the antenna260. The antenna260may include one or more antennas that may be the same or different types. The transceiver220allows the electronic device200to communicate with other devices that may be wired and/or wireless. In some examples, the transceiver220can include processors, controllers, radios, sockets, plugs, buffers, and like circuits/devices used for connecting to and communication on networks. According to some examples, the transceiver220include one or more circuits to connect to and communicate on wired and/or wireless networks. In some embodiments, the transceiver220can include a cellular subsystem, a WLAN subsystem, and/or a Bluetooth™ subsystem, each including its own radio transceiver and protocol(s) as will be understood by those skilled arts based on the discussion provided herein. In some implementations, the transceiver220can include more or fewer systems for communicating with other devices. In some embodiments, the transceiver220can include one or more circuits (including a WLAN transceiver) to enable connection(s) and communication over WLAN networks such as, but not limited to, networks based on standards described in IEEE 802.11. Additionally, or alternatively, the transceiver220can include one or more circuits (including a Bluetooth™ transceiver) to enable connection(s) and communication based on, for example, Bluetooth™ protocol, the Bluetooth™ Low Energy protocol, or the Bluetooth™ Low Energy Long Range protocol. For example, transceiver220ncan include a Bluetooth™ transceiver. In some embodiments, the transceiver220can include one or more circuits (including a cellular transceiver) for connecting to and communicating on cellular networks. The cellular networks can include, but are not limited to, 3G/4G/5G networks such as Universal Mobile Telecommunications System (UMTS), Long-Term Evolution (LTE), and the like. For example, the transceiver220a-220ncan be configured to operate according to one or more of Rel-15, Rel-16, Rel-17, or other of the 3GPP standards.

In some embodiments, the processor210, alone or in combination with computer instructions stored within the memory250, and/or the transceiver220can mitigate for transmitting latency within the UEs104.1and104.2to provide an example to improve the quality of a voice or the video call between the UEs104.1and104.2as described herein.

Exemplary Operation of the Exemplary UE

FIG.3illustrates a flowchart of an exemplary operation for mitigating for transmitting latency in accordance with various embodiments of the present disclosure. The disclosure is not limited to this operational description. Rather, it will be apparent to ordinary persons skilled in the relevant art(s) that other operational control flows are within the scope and spirit of the present disclosure. The following discussion describes an exemplary operational control flow300for mitigating for the transmitting latency within an electronic device, such as the UE104.1and/or the UE104.2to provide an example, to improve the quality of a voice or the video call between the electronic device and another electronic device. The operational control flow300can be executed by a computing system, such as the UEs104.1and104.2as described above inFIG.1, the electronic device200as described above inFIG.2(e.g. processor210), and/or the computer system500as to be described in further detail below inFIG.5. In the discussion ofFIG.3, the first UE can be the “calling UE” and the second UE can be the “called UE” consistent with the discussion above. Alternatively, the second UE can be the “calling UE” and the first UE can be the “called UE.”

At operation302, a first UE compares an uplink (UL) grant with packets that are stored within a transmission buffer (e.g. buffer256) of the electronic device. In some embodiments, the packets are Real-time Transport Protocol (RTP) packets that are associated with a voice or video call. In some embodiments, the operational control flow300can undergo a handshaking process to schedule the UL grant. As part of this handshaking process, the operational control flow300can request the UL grant by sending a scheduling request message over the PUCCH to a base station, such as the base station102.1or the base station102.2. And the base station, in response to the scheduling request message, can reply to the operational control flow300with the UL grant using, for example, Downlink Control Information (DCI) format 0_0 messages or DCI format 0_1 messages that are sent over the PDCCH. Alternatively, or in addition to, the operational control flow300can perform a grant-free access to schedule the UL grant without the handshaking process. In this alternative, or addition, the UL grant can be pre-configured and assigned to the operational control flow300without waiting for the operational control flow300to specifically request the UL grant.

At operation304, the first UE determines whether the UL grant is capable of accommodating the packet stored in the transmission buffer. If so, the first UE proceeds to operation314when the UL grant from operation302is capable of accommodating the packets from operation302. In this situation, the UL grant from operation302is sufficient to transmit the packets that are stored within the transmission buffer from operation304. Otherwise, the first UE proceeds to operation306when the UL grant from operation302is not capable of accommodating the packets from operation302. In this situation, the UL grant from operation302is insufficient to transmit all the packets that are stored within the transmission buffer from operation304. As a result, the first UE can piecewise transmit the packets that are stored within the transmission buffer from operation304using multiple UL grants.

At operation306, the first UE starts a transmitting latency timer, for example, transmitting latency timer258as described above inFIG.2. The first UE can select a packet from among the packets from operation302that are stored within the transmission buffer. In some embodiments, the operational control flow300can start the transmitting latency timer upon retrieving the packet from the transmission buffer. Thereafter, the operational control flow300can process the RTP packet in accordance with the lower-layer transmission procedures to prepare this packet for transmission to a second UE. Herein, the count of the transmitting latency timer is a measure of the time consumed by the first UE to prepare the packet for transmission to the second UE.

At operation308, the first UE compares a count of the transmitting latency timer from operation306with a transmitting latency threshold. The operational control flow300can compare the count of the transmitting latency timer from operation306with the transmitting latency threshold as the first UE is preparing the RTP packet for transmission to the second UE. The operational control flow300can compare the count of the transmitting latency timer from operation306with the transmitting latency threshold as the operational control flow300is processing the RTP packet in accordance with the lower-layer transmission procedures.

At operation310, the first UE determines whether the transmitting latency timer from operation306is less than the transmitting latency timer threshold from operation308. The first UE proceeds to operation314when the transmitting latency timer from operation306from operation308is less than the transmitting latency threshold from operation314. In this situation, the operational control flow300can complete processing of the packet from operation308in accordance with the lower-layer transmission procedures before the count of the transmitting latency timer from operation306exceeds the transmitting latency threshold. After processing of the packet from operation308before the count of the transmitting latency timer from operation306exceeds the transmitting latency threshold, the operational control flow300proceeds to operation314to transmit the RTP packet to the other electronic device. Otherwise, the operational control flow300proceeds to operation312when the transmitting latency timer from operation306from operation314is greater than or equal to the transmitting latency threshold from operation308. In this situation, the operational control flow300cannot complete processing of the packet from operation308in accordance with the lower-layer transmission procedures before the count of the transmitting latency timer from operation306exceeds the transmitting latency threshold. As such, the operation control flow300proceeds to operation312to mitigate the transmitting latency within the electronic device.

At operation312, the first UE mitigates for the transmitting latency. In some embodiments, the first UE can cease processing of the packet from operation308in response to the count of the transmitting latency timer from operation306exceeding the transmitting latency threshold at operation308. In some embodiments, the first UE can drop the packet from operation308being processed in response to the count of the transmitting latency timer from operation306exceeding the transmitting latency threshold at operation310. In some embodiments, the first UE can reserve resources allocated to the transmission of the packet from operation308for another packet from among the packets from operation302that are stored within the transmission buffer. In these embodiments, the first UE can select the other packet from the transmission buffer to be processed in accordance with the lower-layer transmission procedures in response to the count of the transmitting latency timer from operation306exceeding the transmitting latency threshold at operation308.

At operation314, the first UE transmits the packets from operation302, the packet from operation308, and/or the packet from operation310to the second UE. In some embodiments, the operational control flow300transmits the packets from operation302, the packet from operation308, and/or the packet from operation310over the PUSCH the other electronic device in accordance with the UL grant from operation302.

At operation316, the first UE resets the transmitting latency timer from operation306from operation306. The first UE transmitting latency timer can be reset upon completing the transmission of the packets from operation302. In some embodiments, the packets from operation302can be segmented into multiple packet segments. In these embodiments, the transmitting latency timer can be reset upon completing the transmission of the multiple packet segments.

Exemplary Computer System that can be Implemented within the Exemplary Wireless Network

FIG.4illustrates a block diagram of an exemplary computer system that can be implemented within the exemplary wireless network according to some exemplary embodiments of the present disclosure. Computer system400can be any well-known computer capable of performing the functions described herein such as devices102.1and102.2ofFIG.1, and/or200ofFIG.2. Computer system400includes one or more processors (also called central processing units, or CPUs), such as a processor404. Processor404is connected to a communication infrastructure406(e.g., a bus). Computer system400also includes user input/output device(s)403, such as monitors, keyboards, pointing devices, etc., that communicate with communication infrastructure406through user input/output interface(s)402. Computer system400also includes a main or primary memory408, such as random access memory (RAM). Main memory408may include one or more levels of cache. Main memory408has stored therein control logic (e.g., computer software) and/or data.

Computer system400may also include one or more secondary storage devices or memory410. Secondary memory410may include, for example, a hard disk drive412and/or a removable storage device or drive414. Removable storage drive414may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive414may interact with a removable storage unit418. Removable storage unit418includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit418may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device. Removable storage drive414reads from and/or writes to removable storage unit418in a well-known manner.

According to some aspects, secondary memory410may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system400. Such means, instrumentalities or other approaches may include, for example, a removable storage unit422and an interface420. Examples of the removable storage unit422and the interface420may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system400may further include a communication or network interface424. Communication interface424enables computer system400to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number428). For example, communication interface424may allow computer system400to communicate with remote devices428over communications path426, which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system400via communication path426.

The operations in the preceding aspects can be implemented in a wide variety of configurations and architectures. Therefore, some or all of the operations in the preceding aspects may be performed in hardware, in software or both. In some aspects, a tangible, non-transitory apparatus or article of manufacture includes a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system400, main memory408, secondary memory410and removable storage units418and422, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system400), causes such data processing devices to operate as described herein.

Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use aspects of the disclosure using data processing devices, computer systems and/or computer architectures other than that shown inFIG.4. In particular, aspects may operate with software, hardware, and/or operating system implementations other than those described herein.

CONCLUSION

Embodiments of the disclosure can be implemented in hardware, firmware, software application, or any combination thereof. Embodiments of the disclosure can also be implemented as instructions stored on one or more computer-readable mediums, which can be read and executed by one or more processors. A computer-readable medium can include any mechanism for storing or transmitting information in a form readable by a computer (e.g., a computing circuitry). For example, a computer-readable medium can include non-transitory computer-readable mediums such as read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; and others. As another example, the computer-readable medium can include transitory computer-readable medium such as electrical, optical, acoustical, or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). Further, firmware, software application, routines, instructions have been described as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software application, routines, instructions, etc.

It is to be appreciated that the Detailed Description section, and not the Summary and Abstract sections, is intended to be used to interpret the claims. The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the disclosure as contemplated by the inventor(s), and thus, are not intended to limit the disclosure and the appended claims in any way.

The disclosure has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.

The foregoing description of the specific embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan considering the teachings and guidance.

The breadth and scope of the disclosure should not be limited by any of the above-described exemplary embodiments but should be defined only in accordance with the following claims and their equivalents.

The present disclosure contemplates that the entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining personal information data private and secure. Such policies should be easily accessible by users, and should be updated as the collection and/or use of data changes. Personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Further, such collection/sharing should only occur after receiving the informed consent of the users. Additionally, such entities should consider taking any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices. In addition, policies and practices should be adapted for the particular types of personal information data being collected and/or accessed and adapted to applicable laws and standards, including jurisdiction-specific considerations. For instance, in the United States, collection of, or access to, certain health data may be governed by federal and/or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); whereas health data in other countries may be subject to other regulations and policies and should be handled accordingly. Hence different privacy practices should be maintained for different personal data types in each country.