Selectively exchanging data between p2p-capable client devices via a server
Abstract
In one embodiment, the first client device establishes a P2P connection with the second client device. While the P2P connection is still established, the first client device receives a request to send data to the second client device over the P2P connection, and then the data is being sent to the server. Sends data to the server with instructions for the temporary identifier of the second client device without notifying the operator of the first client device. In another embodiment, the server receives the data, maps a temporary identifier to the unique network address of the second client device, and creates a record of data transmission between each client device. In another embodiment, the server maintains an association with the temporary identifier after the first and second client devices are disconnected from the P2P connection to allow ancillary communication.

Term
Projected expiry 13 March 2035.
- Priority
- Filed
- Published
- Today
- Projected expiry
30 claims: 4 independent, 26 dependent
- 1A method of operating a first client device configured to connect to a servicing network, via a local peer-to-peer (P2P) interface that is independent of the servicing network. A local P2P between the first client device and the second client device via the step of detecting a second client device with which the first client device can communicate and the local P2P interface. A step of establishing a connection and a step of receiving a temporary identifier for the second client device through the local P2P connection, wherein the first client device provides the service. Insufficient to identify a unique network address that can be contacted by the second client device over the provided network, from the step and the operator of the first client device, through said local P2P connection. The step of receiving a request to send data to the second client device, The data is being sent to the server in response to the request while the local P2P connection remains available for communication between the first client device and the second client device. A method including the step of transmitting the data to the server via the network providing the service together with the instruction of the temporary identifier without notifying the operator of the first client device. ..
- 10A method of operating a server, in which a step of registering a unique network address that can be contacted by a first client device via a service providing network, and another client device in the first client device. Is assigned a temporary identifier that is insufficient to identify the registered unique network address, and the first and second client devices are connected via a local peer-to-peer (P2P) connection. While connected, the step of receiving data transmitted from the second client device to the first client device along with instructions of the temporary identifier, and the registered unique network address. A method comprising associating a temporary identifier indication and generating a record of the data transmission between the first client device and the second client device based on the association.
- 16A unique way of operating a server that can (i) be contacted by a first client device over the network providing the service, or (ii) be contacted by an operator of the first client device. The step of registering a contact address, the step of assigning the first client device a temporary identifier that is insufficient for another client device to identify the registered unique contact address, and the step of assigning the first client device. While the first client device and the second client device are connected via a local peer-to-peer (P2P) connection, the first client from the second client device with instructions for the temporary identifier. The step of receiving a request for data sent to the device and / or the operator of the first client device, and while the first and second client devices are connected via the local P2P connection. A step of transmitting the data to the operator of the first client device and / or the first client device using the registered unique contact address. Auxiliary communication between (i) the operator of the second client device and / or the second client device and (ii) the operator of the first client device and / or the first client device. To maintain the association between the temporary identifier and the first client device after the first and second client devices have been disconnected from the local P2P connection. How to include.
- 24Configured to register a unique contact address that can (i) be contacted by a first client device over the network providing the service, or (ii) be contacted by an operator of said first client device. And the logical means configured to assign to the first client device a temporary identifier that is insufficient for other client devices to identify the registered unique contact address. And, while the first client device and the second client device are connected via a local peer-to-peer (P2P) connection, the second client device, along with instructions for the temporary identifier, said the first. A logical means configured to receive a request for data transmitted to said operator of one client device and / or said first client device. While the first and second client devices are connected via the local P2P connection, the first client device and / or the first one using the registered unique contact address. A logical means configured to transmit said data to said operator of said client device, (i) said operator of said second client device and / or said said second client device, and (ii) said said first. After the first and second client devices have been disconnected from the local P2P connection to allow ancillary communication with the client device and / or the operator of the first client device, said A server that includes a temporary identifier and logical means configured to maintain an association between the first client device.
Independent claims4
57 paragraphs, as filed
An embodiment of the present invention relates to the selective exchange of data between peer-to-peer (P2P) capable client devices via a server.
Wireless communication systems include 1st generation analog wireless telephone service (1G), 2nd generation (2G) digital wireless telephone service (including provisional 2.5G and 2.75G networks), 3rd generation (3G) high-speed data, and Internet-enabled wireless. It has evolved through various generations, including services and 4th generation (4G) services (eg Long Term Evolution (LTE) or WiMax). Many different types of wireless communication systems are currently in use, including cellular and personal communications service (PCS) systems. Examples of known cellular systems are the cellular Analog Advanced Mobile Phone System (AMPS), as well as code division multiple access (CDMA), frequency division multiple access (FDMA), and time division multiple access (TDMA). , A digital cellular system based on TDMA's Global System for Mobile Access (GSM®) variant.
Often, one client device and data (such as media, information, or files) with other client devices in a "formal" way (as opposed to, for example, "informal" peer-to-peer (P2P) exchanges). There is a business need for a quick exchange of). However, such exchanges typically involve a unique user address, phone number, Skype username that the client device can contact with personal contact information (eg, email address, etc.). , Facebook ID, LinkedIn ID, or MAC It is necessary to obtain a unique network address (such as an ID, phone number, etc.) that can be contacted by related UEs via the network. For example, suppose at a business luncheon with a small group of people, lunch participants want to take a group photo and share the group photo with each of the other attendees at the group luncheon. In this case, it is probably impractical for luncheon participants to obtain personal contact information for each of the other attendees. In another example, suppose a marketer wants to give a pamphlet of digital information to meeting attendees. In this case, the recipient of the digital information pamphlet may not want to read the digital information pamphlet without revealing personal contact information to the marketer. Also, certain transactions may occur via the P2P protocol, especially to avoid formal recording by their respective operators. For example, a criminal may wish to exchange data files via P2P without recording a formal record of the data transfer.
<p num="0004"> In one embodiment, the first client device establishes a P2P connection with the second client device. While the P2P connection is still established, the first client device receives a request to send data to the second client device over the P2P connection, and then the data is being sent to the server. Sends data to the server with instructions for the temporary identifier of the second client device without notifying the operator of the first client device. In another embodiment, the server receives the data, maps a temporary identifier to the unique network address of the second client device, and creates a record of data transmission between each client device. In another embodiment, the server maintains an association with the temporary identifier after the first and second client devices are disconnected from the P2P connection to allow ancillary communication.</p><p num="0005"> The following detailed description, when considered with respect to the accompanying drawings presented for illustration purposes only, rather than limiting the invention, is a more complete recognition of embodiments of the present invention and many of the benefits associated therewith. By referring to, it will be easily obtained by better understanding it.</p>
<figref num="1">It is a figure which shows the high-level system architecture of the wireless communication system by embodiment of this invention.</figref><figref num="2">It is a figure which shows the example of the user apparatus (UE) by embodiment of this invention.</figref><figref num="3">It is a figure which shows the communication device which contains the logic configured to perform the function by embodiment of this invention.</figref><figref num="4">It is a figure which shows the server by embodiment of this invention.</figref><figref num="5">It is a figure which shows the UE (or client device) which supports a plurality of P2Ps developed in the communication environment by embodiment of this invention.</figref><figref num="6">It is a figure which shows the conventional process of exchanging data between UE1 ... N of the communication environment of FIG.</figref><figref num="7">It is a figure which shows the process which implements the data transfer started by P2P related to the server redirection by embodiment of this invention.</figref><figref num="8">According to an embodiment of the present invention, server redirection is a diagram showing an alternative implementation of the process of FIG. 7 that occurs in addition to P2P-mediated data transfer.</figref><figref num="9">According to an embodiment of the present invention, a process of defining a P2P-connected communication state for two or more UEs in order to implement non-P2P communication between each UE even when the UEs are not already P2P-connected. It is a figure which shows.</figref><figref num="10">It is a figure which shows the continuation of the process of FIG. 9 by embodiment of this invention.</figref>
Aspects of the invention are disclosed in the following description and related figures that lead to a particular embodiment of the invention. Alternative embodiments can be devised without departing from the scope of the invention. Moreover, well-known elements of the invention are not described or omitted in detail so as not to obscure the relevant details of the invention.
As used herein, the terms "exemplary" and / or "example" are used to mean "act as an example, case, or example." As used herein, embodiments described as "exemplary" and / or "example" are to be construed as necessarily preferred or advantageous over other embodiments. Should not be. Similarly, the term "embodiment of the invention" does not require that all embodiments of the invention include the described function, advantage, or mode of operation.
In addition, many embodiments describe, for example, continuous operations performed by elements of a computing device. The various operations described herein can be performed by specific circuits (eg, application specific integrated circuits (ASICs)), by program instructions executed by one or more processors, or by a combination of both. Will be recognized. In addition, these series of operations described herein can be any form of computer-readable storage medium in which the corresponding set of computer instructions that cause the associated processor to perform the functions described herein at run time. Can be thought of as being fully embodied in. Thus, the various aspects of the invention can be embodied in a number of different forms, all of which are believed to be within the scope of the claimed subject matter. Further, for each of the embodiments described herein, the corresponding embodiments of such embodiments are described herein, for example, as "logic configured to perform the described actions". In some cases.
Client devices referred to herein as user devices (UEs) may be mobile or stationary and may be radio access networks (RANs). Can communicate with network). As used herein, the term "UE" is used as "access terminal" or "AT", "wireless device", "subscriber device", "subscriber terminal", "subscriber station", "user terminal". Alternatively, it can be referred to UT, "mobile terminal", "mobile station" and their variants without distinction. In general, the UE can communicate on the core network via the RAN, and the UE can connect to an external network such as the Internet through the core network. Of course, other mechanisms for connecting to the core network and / or the Internet are also possible for the UE, such as through wired access networks, WiFi networks (eg, based on IEEE 802.11). The UE can be embodied by any of many types of devices, including, but not limited to, PC cards, small flash devices, external or internal modems, wireless or wired phones, and so on. Communication links through which the UE can signal to the RAN are called uplink channels (for example, reverse traffic channels, reverse control channels, access channels, etc.). Communication links through which the RAN can signal the UE are called downlink channels or forward link channels (for example, paging channels, control channels, broadcast channels, forward traffic channels, etc.). As used herein, the term traffic channel (TCH) can refer to uplink / reverse or downlink / forward traffic channels.
FIG. 1 is a diagram showing a high-level system architecture of the wireless communication system 100 according to the embodiment of the present invention. The wireless communication system 100 includes UE1 ... N. UE1 ... N can include mobile phones, personal digital assistants (PDAs), pagers, laptop computers, desktop computers and the like. For example, in FIG. 1, UE1 ... 2 is shown as a cellular calling phone, UE3 ... 5 is shown as a cellular touchscreen phone or smartphone, and UE N is shown as a desktop computer or PC. It is shown.
Referring to FIG. 1, UE1 ... N access networks through physical communication interfaces or layers, shown in FIG. 1 as air interfaces 104, 106, 108, and / or direct wired connections. It is configured to communicate with (eg RAN120, access point 125, etc.). Air interfaces 104 and 106 can comply with a given cellular communication protocol (eg, CDMA, EVDO, eHRPD, GSM®, EDGE, W-CDMA, LTE, etc.), while air interface 108 is wireless. It can comply with IP protocols (eg IEEE 802.11). The RAN120 includes multiple access points servicing the UE through air interfaces, such as air interfaces 104 and 106. The access point of RAN120 can be called an access node or AN, an access point or AP, a base station or BS, a node B, an eNodeB, or the like. These access points can be ground access points (or ground stations), or satellite access points. RAN120 performs various functions such as bridging circuit-switched (CS) calls between a UE served by RAN120 and another UE fully serviced by RAN120 or a different RAN. It is configured to connect to a capable core network 140, and can arbitrate the exchange of packet-switched (PS) data with an external network such as the Internet 175. Internet 175 includes a large number of routing and processing agents (not shown in Figure 1 for convenience). In Figure 1, UE N is shown as connecting directly to Internet 175 (ie, WiFi Ethernet® connection or 802. Away from the core network 140, such as through an 11-based network). The Internet 175 can thereby function to bridge packet-switched data communications between UE N and UE 1 ... N over the core network 140. Figure 1 shows the access point 125 away from the RAN 120. The access point 125 can connect to the Internet 175 regardless of the core network 140 (eg, via an optical communication system such as FiOS, cable modem, etc.). Air interface 108 can serve UE4 or UE5 through a local wireless connection, such as IEEE 802.11. UE N is shown as a desktop computer with a wired connection to the Internet 175, such as a direct connection to a modem or router, which may correspond to the access point 125 itself in one example (for example, wired and wireless connections). About WiFi routers with).
With reference to FIG. 1, the server 170 is shown to be connected to the Internet 175, the core network 140, or both. The server 170 can be implemented as multiple structurally separate servers, or can accommodate a single server. Through the core network 140 and / or the Internet 175, the server 170 can connect to the server 170 about UEs (eg, voice over Internet Protocol (VoIP) sessions, push-to-talk (eg, voice over Internet Protocol (VoIP) session, push-to-talk), as described below in more detail. PTT) Sessions, group communication sessions, social networking services, etc.) are configured to support one or more communication services and / or provide content to the UE (eg web page download).
FIG. 2 shows an example of a UE (that is, a client device) according to an embodiment of the present invention. Referring to FIG. 2, the UE200A is shown as a ringing phone and the UE200B is shown as a touch screen device (eg smartphone, tablet computer, etc.). As shown in Figure 2, the UE200A's outer casing, as is known in the art, has an antenna 205A, a display 210A, and at least one button 215A (eg PTT button, power button, volume control button, among other components). Etc.), and consists of a keypad 220A. Also, the outer casing of the UE200B, as is known in the art, among other components, touch screen display 205B, peripheral buttons 210B, 215B, 220B, and 225B (eg power control buttons, volume or vibration control). It consists of a button, an airplane mode toggle button, etc.) and at least one front panel button 230B (for example, the home button). Although not explicitly shown as part of the UE200B, the UE200B is one, including, but not limited to, WiFi antennas, cellular antennas, satellite positioning system (SPS) antennas (eg Global Positioning System (GPS) antennas), etc. Alternatively, it may include multiple external antennas and / or one or more integrated antennas built into the UE200B's external casing.
UE's internal components, such as UE200A and 200B, can be embodied in different hardware configurations, but the basic high-level UE configuration for internal hardware components is shown as Platform 202 in Figure 2. .. Platform 202 is data and / sent from software applications, core networks 140, internet 175, and / or RAN120 that may ultimately come from other remote servers and networks (eg application servers 170, web URLs, etc.). Or you can receive and execute commands. Platform 202 can also independently run locally stored applications without RAN interaction. Platform 202 may include application specific integrated circuits (ASICs) 208, or transmitter / receiver 206 operably coupled to other processors, microprocessors, logic circuits, or other data processing devices. The ASIC 208 or other processor runs the Application Programming Interface (API) 210 layer, which interfaces with any resident program in memory 212 of the wireless device. The memory 212 can consist of read-only memory or random access memory (RAM and ROM), EEPROM, flash card, or any memory common in computer platforms. Platform 202, like any other data, can also include a local database 214 that can store applications that are not actively used in memory 212. The local database 214 is typically a flash memory cell, but may be any auxiliary storage device known in the art, such as magnetic media, EEPROM, optical media, tapes, soft disks or hard disks.
Accordingly, embodiments of the present invention may include UEs (eg, UE 200A, 200B, etc.) that include the ability to perform the functions described herein. As will be appreciated by those skilled in the art, various logical elements may be individual elements, software modules running on a processor, or any combination of software and hardware to achieve the functionality disclosed herein. It can be embodied. For example, the ASIC 208, memory 212, API 210, and local database 214 can all be used collaboratively to load, store, and perform the various features disclosed herein, and thus these. The logic for performing a function can be distributed through various elements. Alternatively, the function can be incorporated into one individual component. Therefore, the functions of UE 200A and 200B in FIG. 2 should be considered merely for illustration purposes, and the present invention is not limited to the functions or components shown.
Wireless communication between UE200A and / or 200B and RAN120 is CDMA, W-CDMA, Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDM), GSM® , Or can be based on different technologies, such as wireless communication networks or other protocols that can be used in data communication networks. As already described and known in the art, voice transmissions and / or data can be transmitted from the RAN to the UE using a variety of networks and configurations. Therefore, the specific examples provided herein are not intended to limit embodiments of the invention, but merely to assist in describing aspects of embodiments of the invention.
FIG. 3 shows a communication device 300 containing logic configured to perform a function. The communication device 300 includes, but is not limited to, UE200A or 200B, any component of RAN120, any component of core network 140, any component coupled to core network 140, and / or Internet 175 (eg, server 170). ) Etc., and any of the above communication devices can be supported. Thus, the communication device 300 can accommodate any electronic device that is configured to communicate (or facilitate communication) with one or more other entities through the wireless communication system 100 of FIG.
Referring to FIG. 3, the communication device 300 includes logic 305 configured to receive and / or transmit information. In one embodiment, logic 305 configured to receive and / or transmit information when the communication device 300 corresponds to a wireless communication device (eg UE200A or 200B, AP125, BS, RAN120 node B or eNodeB). Wireless transceivers and related hardware (eg RF antennas, modems, modulators, and / or demodulators), wireless communication interfaces (eg Bluetooth®, WiFi, 2G, CDMA, W-CDMA, 3G) , 4G, LTE, etc.) can be included. In another example, Logic 305, which is configured to receive and / or send information, is connected to a wired communication interface (for example, a serial connection, a USB or Firewire connection, or an Ethernet® connection with access to Internet 175). Can be handled. Therefore, if the communication device 300 accommodates some types of network-based servers (such as server 170), the logic 305 configured to receive and / or send information will, in one embodiment, be Ethernet (such as server 170). It can accommodate Ethernet cards that connect network-based servers to other communication entities via the Registered Trademarks protocol. In another example, the logic 305 configured to receive and / or transmit information can include sensory or measurement hardware that allows the communication device 300 to monitor its local environment (eg, an accelerometer). , Temperature sensors, light sensors, antennas for monitoring local RF signals, etc.). Logic 305 configured to receive and / or transmit information is also received and / or transmitted by the associated hardware of Logic 305 configured to receive and / or transmit information when executed. / Or of sending It can include software that allows the function to be performed. However, the logic 305 configured to receive and / or transmit information is not software-only, and the logic 305 configured to receive and / or transmit information is to accomplish its function. Is at least partially dependent on the hardware.
Referring to FIG. 3, the communication device 300 further includes a logic 310 configured to process information. In one embodiment, the logic 310 configured to process information can include at least a processor. An exemplary implementation of the types of processing that can be performed by logic 310 configured to process information is, but is not limited to, the steps of making decisions, establishing connections, and choosing between different information options. And the steps to perform data-related evaluations, to interact with sensors coupled to the communication device 300 to perform measurement operations, and to transform information from one format to another (eg. From wmv. Includes (between different protocols such as avi) and so on. For example, the processors contained in a logic 310 configured to process information include general purpose processors, digital signal processors (DSPs), ASICs, field programmable gate arrays (FPGAs) or other programmable logic devices, individual gates or transistors. It can accommodate logic, individual hardware components, or any combination of them designed to perform the functions described herein. The general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. Processors may also be implemented as a combination of computing devices, such as DSPs and microprocessors, multiple microprocessors, one or more microprocessors associated with a DSP core, or a combination of other such configurations. Can be done. Logic 310, which is configured to process information, is also software that, when executed, allows the associated hardware of Logic 310, which is configured to process information, to perform its processing functions. Can be included. However, Logic 310, which is configured to process information, is not software-only, and Logic 310, which is configured to process information, is at least partially in hardware to achieve its functionality. Depends on.
Referring to FIG. 3, the communication device 300 further includes a logic 315 configured to store information. In one embodiment, the logic 315 configured to store information can include at least non-temporary memory and associated hardware (such as a memory controller). For example, the non-temporary memory contained in Logic 315 configured to store information can be RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs, or the like. It can accommodate other forms of storage media known in the art. Logic 315, which is configured to store information, is also software that, when executed, allows the associated hardware of Logic 315, which is configured to store information, to perform its storage function. Can be included. However, Logic 315, which is configured to store information, is not software-only, and Logic 315, which is configured to store information, is at least partially in hardware to achieve its functionality. Depends on.
Referring to FIG. 3, the communication device 300 optionally further includes a logic 320 configured to present information. In one embodiment, the logic 320 configured to present information can include at least an output device and associated hardware. For example, output devices include video output devices (eg display screens, ports that can carry video information such as USB, HDMI®), audio output devices (eg speakers, microphone jacks, USB, HDMI®, etc.) Ports capable of carrying audio information), vibration devices and / or other devices that can be formatted for output or that can actually be output by the user or operator of the communication device 300. For example, if the communication device 300 supports UE200A or UE200B as shown in FIG. 2, the logic 320 configured to present information can include display 210A of UE200A or touch screen display 205B of UE200B. .. In another example, the logic 320 configured to present information can be omitted for a particular communication device, such as a network communication device that does not have a local user (eg, network switch or router, server 170, etc.). Remote server etc.). Logic 320, which is configured to present information, is also software that, when executed, allows the associated hardware of Logic 320, which is configured to present information, to perform its presentation function. Can be included. However, the logic 320 configured to present information is not software-only, and the logic 320 configured to present information is at least partially hardware to achieve its functionality. Depends on.
Referring to FIG. 3, the communication device 300 optionally further includes a logic 325 configured to receive local user input. In one embodiment, the logic 325 configured to receive local user input can include at least a user input device and associated hardware. For example, user input devices are from users or operators of buttons, touch screen displays, keyboards, cameras, audio input devices (eg, microphones or ports that can carry audio information such as microphone terminals), and / or communication device 300. It can include other devices that can receive the information. For example, if the communication device 300 supports UE200A or UE200B as shown in Figure 2, the logic 325 configured to receive local user input is either keypad 220A, button 215A or 210B to 225B. It can include a touch screen display 205B and the like. In another example, logic 325, which is configured to receive local user input, can be omitted for a particular communication device, such as a network communication device that does not have a local user (for example, a network switch or router, server). Remote server such as 170). Logic 325 configured to receive local user input also, when executed, the associated hardware of Logic 325 configured to receive local user input performs its input receiving function. It can include software that allows it. However, Logic 325 configured to receive local user input is not software-only, and Logic 325 configured to receive local user input is hardware to achieve its functionality. It depends at least partially.
Referring to FIG. 3, the configured logics 305 to 325 are shown in Figure 3 as separate or separate blocks, but the hardware and / or software in which each configured logic performs its function. It will be understood that there may be partial overlap. For example, software used to facilitate the functionality of 305-325 configured logic can be stored in the non-temporary memory associated with logic 315 configured to store information, so 305-325 Each of the configured logics performs their function (ie, software execution in this case), based in part on the behavior of the software stored by the logic 315 configured to store the information. Similarly, hardware that is directly related to one of the configured logics can sometimes be borrowed or used by the other configured logic. For example, a processor in Logic 310 that is configured to process information can format the data into the proper format before it is sent by Logic 305 that is configured to receive and / or send information. Logic 305, which is configured to receive and / or send information, is based in part on the behavior of the hardware (ie, processor) associated with Logic 310, which is configured to process information. In this case, send data).
In general, unless explicitly stated, the term "logic configured to" as used throughout this disclosure is intended to describe embodiments implemented in hardware, at least in part. It is intended to be associated with a hardware-independent software-only implementation. Also, the logic configured or "logic configured to" in various blocks is not limited to any particular logic gate or element, but is generally (hardware or a combination of hardware and software). It will be appreciated that it represents the ability to perform the functions described herein). Therefore, the configured logic or "logic configured to" shown in the various blocks share the word "logic", but not necessarily as a logic gate or logic element. Not implemented. Other dialogues or coordination between the logic of the various blocks will become apparent to those skilled in the art by evaluating the embodiments described below in more detail.
Various embodiments can be implemented in any of a variety of commercially available server devices, such as the server 400 shown in FIG. In the example, server 400 can accommodate one exemplary configuration of application server 170 described above. In FIG. 4, the server 400 includes a volatile memory 402 and a processor 401 coupled to a large capacity non-volatile memory such as a disk drive 403. The server 400 can also include a floppy disk drive, compact disc (CD) or DVD disk drive 406 coupled to the processor 401. Server 400 may also include network access port 404 coupled to processor 401 to establish a data connection with network 407, such as computers and servers in other broadcast systems, or local area networks coupled to the Internet. Can be done. In the situation of FIG. 3, the server 400 of FIG. 4 illustrates one exemplary implementation of the communication device 300, and the logic configured to send and / or receive information 305 is to communicate with network 407. The logic configured to handle network access port 304 used by server 400 and process information 310 corresponds to processor 401, and the logic configuration to store information 315 is volatile memory 402, disk. It will be appreciated that it accommodates any combination of drive 403 and / or disk drive 406. Optional logic configured to present information 320 and optional logic configured to receive local user input 325 are not explicitly shown in Figure 4 and may be included therein. It may or may not be included. Therefore, FIG. 4 helps demonstrate that the communication device 300 can be implemented as a server, in addition to the UE implementations such as 205A or 205B in FIG.
Often, one client device and data (such as media, information or files) with other client devices in a "formal" way (as opposed to, for example, "informal" peer-to-peer (P2P) exchanges). There is a business need for quick replacement. However, such exchanges typically involve personal contact information such as email addresses, phone numbers, Skype usernames, Facebook IDs, etc. LinkedIn ID or MAC It is necessary to obtain a unique network address (such as an ID, phone number, etc.) that can be contacted by related UEs via the network. For example, suppose at a business luncheon with a small group of people, lunch participants want to take a group photo and share the group photo with each of the other attendees at the group luncheon. In this case, it is probably impractical for luncheon participants to obtain personal contact information for each of the other attendees. In another example, suppose a marketer wants to give a pamphlet of digital information to meeting attendees. In this case, the recipient of the digital information pamphlet may not want to read the digital information pamphlet without revealing personal contact information to the marketer. Also, certain transactions may occur via the P2P protocol, especially to avoid formal recording by their respective operators. For example, a criminal may wish to exchange data files via P2P without recording a formal record of the data transfer.
FIG. 5 is a diagram showing a plurality of P2P-compatible UEs (or client devices) deployed in the communication environment according to the embodiment of the present invention. In particular, UE1 ... N is given that local wireless P2P communication between any of UE1 ... N is possible via the local P2P communication interface 505 (eg Bluetooth®, WLAN, etc.). It is shown in Figure 5 as being within the P2P communication range of 500. In addition, one or more of UEs 1 ... N are via a first network communication interface 510 (eg, a WLAN communication interface) through which each UE can connect to the Internet 175 and the application server 170. Is configured to connect to AP125. Also, one or more of UE1 ... N (not necessarily the same as AP-enabled UEs), through which each UE can connect to the Internet 175 and the application server 170, a second network communication. It is configured to connect to base station 520 (eg, macro base station, femto base station, etc.) operated by RAN120 via interface 515.
FIG. 6 is a diagram showing a conventional process of exchanging data between UE1 ... N in the communication environment of FIG. Referring to Figure 6, UE1 and UE2 perform local P2P detection steps 600 and 605, respectively. Based on 600 and 605 local P2P detection procedures, UE1 and 2 detect each other and form local P2P connections through which P2P communication can be mediated (610 and 615). For example, a local P2P discovery procedure from 600 to 615 can include UE1 broadcasting an identifier (eg, SSID) through the local P2P communication interface 505 to convey UE1, and UE2 is a local P2P communication. Detects UE1's broadcast SSID by monitoring interface 505 (or vice versa), after which UE1 and 2 set up a local P2P connection. At this point, UE1 and 2 may have established a local P2P connection, but UE1 and / or 2 may determine that the other UE is not a trusted contact (625 and 630). If UEs 1 and 2 are not recognized as mutually trusted contacts, the exchange of certain private information (eg, the operator's unique user address or the UE's unique network address information) is generally pre-execution. Must be manually approved by each UE1 or UE2 operator (ie, neither UE trusts).
UE1 and 2 continue to be connected via a local P2P connection, but the UE1 operator (Operator 1) sends the file to the UE2 and / or UE2 operator (Operator 2) and / or media. Suppose you decide to stream (635). For example, operator 1 may want to stream media to UE2, or operator 1 (eg via email) without paying attention to whether UE2 itself actually receives the file. May want to send the file to operator 2 (for example, operator 1 wants to allow operator 2 to access the file in a way that is simply not device specific). At 640, operator 1 either has a network connection (for example, first network communication interface 510 or second network communication interface 515) or local P2P interface 505 as an interface to carry files and / or media streams. Select.
Reference to 640, if operator 1 selects a network interface, UE1 requests operator 2's unique user address and / or UE2's unique network address (645), after which UE2 requests operator 2. Encourage operator 2 to decide if they are willing to allow. At 650, if Operator 2 decides to reject the request, UE1 does not get the requested address (655). At this point, UE1 can attempt to propagate the file and / or media stream through the local P2P interface 505, or otherwise simply give up and propagate the file and / or media stream. You can stop trying to do it. Otherwise, at 650, if operator 2 decides to allow the request, UE2 sends the requested address to UE1 (660), and UE1 is based on the requested address via the network interface. And / or propagate the file and / or media stream to UE2 and / or operator 2 (665). Returning to 640, if operator 1 chooses local P2P interface 505 instead of network interface, UE1 propagates files and / or media streams to UE2 over the local P2P connections established at 610 and 615. (670).
As described in more detail below with respect to FIG. 7, one or more embodiments of the invention require data transfer mediated by P2P, and ostensibly from the user's or operator's point of view. Leads to the implementation of server-mediated data transfer when is generated via P2P. In other words, P2P-mediated data transfer is "redirected" to and propagated through the server without notifying the sender or target operator of the mode of server redirection. In at least one embodiment, the server redirection feature is based on other criteria that function to disable the operator's P2P-specific data transfer requests via P2P or for transmission through the server. It can be implemented to implement monitoring (eg eavesdropping) functionality to allow law enforcement to track data transfers that would otherwise be performed anonymously.
FIG. 7 is a diagram showing a process of implementing P2P-initiated data transfer related to server redirection according to an embodiment of the present invention. Seeing Figure 7, UE2 ... N registers with a server, such as Application Server 170, over an internet connection (700). In the embodiment of FIG. 7, the server is one or more unique user addresses and / or network addresses for UE2 ... N that the server can contact UE2 ... N and / or their respective operators. To register. UE1 also optionally registers itself with the server at the 705, similar to the 700. The server assigns UE2 ... N and (optionally) a temporary ID to UE1 (710) and then reports UE2 ... N and (optionally) a temporary ID to UE1 (715). In the example, a temporary ID is a temporary ID that involves a P2P-initiated data transfer, as well as an instruction that controls how the temporary ID is exchanged between P2P-connected UEs. Can be sent at 715, with instructions to trigger when redirected to the server with instructions for an ID. Alternatively, the instructions may be pre-installed on one or more of UE1 ... N. After assigning a temporary ID to UE1 ... N, the server has a corresponding unique user address and / or unique network address that can be contacted by the associated UE or associated operator through the network interface. Maintain a table that maps temporary identities (for example, generate or update).
At some point later, assume that UE1 ... N, respectively, fall within the given P2P coverage of 500 shown in Figure 5. While UE1 ... N is within a given P2P coverage of 500, each of UE1 ... N performs a local P2P discovery procedure (eg, 600-605 in Figure 6, respectively). And 730). Based on the local P2P detection procedures of 725 and 730, UE1 ... N detect each other and form one or more local P2P connections through which P2P communication can be mediated (735 and 740). For example, the local P2P discovery procedure for 735 and 740 involves the UE1 broadcasting an identifier (eg, SSID, assigned temporary ID, etc.) through the local P2P communication interface 505 to convey UE1. UE2 can detect the broadcast SSID of UE1 by monitoring the local P2P communication interface 505 (or vice versa), after which UE1 and 2 set up a local P2P connection. This process can then be repeated for an additional P2P capable UE with a given P2P coverage of 500. At this point, UE1 ... N may have established a local P2P connection, but UE1 ... N may determine that one or more other UEs are not trusted contacts. There are (745 and 750). If UE1 ... N does not recognize one or more other UEs as trusted contacts, exchange certain private information (for example, the operator's unique user address or the associated UE's unique network address information). Is generally required to be manually approved by the respective operator of each UE (ie, not trusted by either UE) before execution.
While UE1 ... N remains connected via a local P2P connection, the UE1 operator ("Operator 1") is the UE2 ... N and / or UE2 ... N operator ("Operator 1"), respectively. Suppose you decide to send the file to Operator 2 ... N ") and / or stream the media (755). For example, operator 1 may want to stream media to UE2 ... N. Unlike 635 in Figure 6, in 755, operator 1 on UE1 has his / her files and / or media over a local P2P connection (for example, by selecting P2P as a target interface similar to 640). Suppose you indicate that you want to implement stream forwarding.
In response to the detection of a P2P transfer requested by the operator in 755, UE1 intercepts the P2P transfer and decides whether to redirect the file and / or media stream to the server (760). The 760 decisions can be made in a variety of different ways. For example, UE1 has (i) all P2P transmissions initiated by UE1 (eg, the law enforcement agency has a letter to eavesdrop on UE1 and / or operator 1's phone), (ii) designation. P2P transmission from UE1 destined for targeted UE1 (for example, the law enforcement agency has a decree to eavesdrop on the phone of the specified target UE and / or their associated operator), (iii ) P2P transmissions containing specific media types (eg audio, video, encrypted data files, copyrighted ones, etc.), (iv) P2P transmissions that occur at specific times and / or at specific locations. (For example, in a house where a law enforcement agency has a decree to eavesdrop), (v) Operator (for example, even if the operator later forgets about this rule and asks to P2P transfer the song, the operator Applies to devices operated by one or more corporate users (for example, IT administrators may want to transfer any song through a server to keep records) or some other entity (for example, an IT administrator) P2P transmissions that meet P2P override rules that can be specified by (P2P override rules can be established as part of corporate policy), or (vi) a server that tells UE1 to intercept any combination of them. Redirect instructions (eg, at 715, downloaded in connection with a temporary ID or via some separate supply procedure) may be supplied.
At 760, if UE1 decides not to redirect files and / or media streams to the server, the process proceeds to 670 in Figure 6 and is allowed to proceed with P2P transfers without server redirection. Otherwise, at 760, if UE1 decides to redirect files and / or media streams to the server, at 765 UE1 gets a temporary ID for UE2 ... N. At 765, UE1 can also optionally send its own temporary ID to any of UE2 ... N. Also, the temporary ID exchange shown in 765 established local P2P connections at 735 and 740 (for example, by setting a temporary ID equal to the broadcast SSID that identifies each UE). If and / or during the local P2P detection procedure of 725 and 730, it can be implemented instead at an early point in time.
Referring to Figure 7, after obtaining the temporary ID of UE2 ... N, UE1 files and files to the server with the temporary ID of UE2 ... N without notifying operator 1 about the server redirection. / Or send a media stream (770). In other words, operator 1 has requested a P2P-mediated data transfer, which is unknown to operator 1 and the data transfer is redirected to the server as a server-mediated data transfer. As you can see, this deception can involve exchanging the user interface (UI) (for example, the UE1 "4G" or "3G" indicator can be blocked and instead "P2P". It's not really the case because the identifier can be shown, but it looks to operator 1 as if the data transfer was actually happening via P2P). The server looks up a unique network address and / or unique user address based on the temporary ID received from UE1 (775), and then sends the file and / or media stream to UE2 ... N. Communicate (780). Optionally, if the server-mediated data transfer is group communication (ie, N is greater than 2 so files and / or media streams are sent to multiple target UEs), the server will be UE1 .. The .N can be assigned a temporary group ID, so it was received by the server, including the temporary group ID, without the need to list the individual temporary IDs of each target UE separately. The next data transfer is mapped to UE1 ... N as a communication group (785) (for example, so a data transfer from UE3 connecting a temporary group ID is UE1 ... Mutual transmission from N to UE, etc.). Therefore, the server itself can then map the temporary group ID to the individual temporary IDs that are mapped to the unique user addresses and / or unique network addresses of the various UEs and / or operators. it can.
On the 790, UE2 ... N receives files and / or media streams from the server without notifying each operator about the server redirect. For example, similar to the operator 1 impersonation shown above, UI exchange can also be leveraged to facilitate P2P impersonation in UE2 ... N (eg, UE2 ... N "4G" or "3G". The indicator can be blocked and instead the "P2P" identifier can be shown, which is not really the case, but to operator 2 as if the data transfer was actually occurring via P2P. appear).
At 795, the server produces a record of server-mediated transfers of files and / or media streams. Although not explicitly shown in Figure 7, the records generated by 795 can be archived or stored in a database maintained by the server, and the server (or server administrator) will later record one of the records. Data requests can be received for one or more. For example, a law enforcement agency with an appropriate warrant may be specific from either all video streams resulting from UE4, or all text messages received by UE2 on a particular date range, or UE1 ... N. You can request all emails sent to your email address, etc. In another example, the records generated by the 795 may be transferred to a separate monitoring server in addition to or instead of the records stored locally on the server. The server's decision to forward a particular record to a separate monitoring server is made by one or more record forwarding policies (record forwarding) performed by the server. It may be based on policy). For example, if the FBI has a warrant of eavesdropping related to a particular user's communication, the records associated with that particular user (for example, files and / or media streams sent to and received from that particular user) , Can be transferred in real time to a monitoring server operated by the FBI, where the transferred records are available for inspection by the FBI.
Figure7The server redirect was requestedP2PWhile showing an exemplary implementation that occurs in place of data transfer mediated by8IsP2PIt leads to an alternative implementation where server redirection occurs in addition to data transfer mediated by.
Seeing Figure 8, after getting the temporary ID of UE2 ... N on 765, UE1 goes to the server with the temporary ID of UE2 ... N without notifying operator 1 about the server redirect. Sending files and / or media streams (800) (e.g. similar to 770 in Figure 7), the server has a unique network address and / or unique user based on the temporary ID received from UE1. If the address is looked up (805) (e.g., similar to 775 in Figure 7) and the data transfer mediated by the server is group communication, the server optionally groups temporarily to UE1 ... N. Assign an ID (810) (for example, similar to 785 in Figure 7). In Figure 8, instead of letting the server propagate the file and / or media stream to UE2 ... N as in Figure 7, UE1 sends the file from 735 and 740 to UE2 ... N over a local P2P connection. And / or send a media stream (815). In this case, UE1 should simply hide the fact that the file and / or media stream is also being sent to the server instead of avoiding the P2P data transfer itself, UE2 ... N is simply aware that the file and / or media stream occurred via P2P, without being aware of the server redirect that occurred on the 800. In this case, the server produces a record of server-mediated transfers of files and / or media streams based on a temporary identity lookup operation from 805 (820) (eg, similar to 795 in Figure 7). To do). As shown above for the 795, in other examples, the records generated by the 820 may be transferred to a separate monitoring server in addition to or instead of the records stored locally on the server. The server's decision to transfer a particular record to a separate monitoring server may be based on one or more record transfer policies implemented by the server. For example, if the FBI has a warrant of eavesdropping related to a particular user's communication, the records associated with that particular user (for example, files and / or media streams sent to and received from that particular user) , Can be transferred in real time to a monitoring server operated by the FBI, where the transferred records are available for inspection by the FBI.
7-8 relate to an embodiment of server redirection that occurs in a manner transparent to the operator of the device transmitting and / or receiving for data transfer, while other embodiments of the invention necessarily disguise with respect to server redirection. Regarding data transfer mediated by non-servers. In particular, FIGS. 9-10 define P2P-connected communication states for two or more UEs in order to implement non-P2P communication between each UE, even when the UEs are not P2P-connected. Guided to do.
With respect to Figure 9, it is assumed that 700-750 have already been executed, after which UE1 ... N will continue to be connected via the local P2P connections established at 735 and 740. The UE1 operator (Operator 1) then sends and / or media the file to each UE2 ... N and / or UE2 ... N operator (Operator 2 ... N). Suppose you decide to stream (900). For example, operator 1 may want to stream media to UE2 ... N. At 900, unlike 755 in Figure 7, assume that operator 1 of UE1 indicates that he / she wants to implement the transfer of files and / or media streams through the server (eg 640). By selecting a network interface as a target interface similar to).
In response to the detection of server-mediated data transfer requested by the operator at 900, at 905 UE1 gets a temporary ID for UE2 ... N (for example, similar to 765 in Figure 7). ). Similar to 765 in Figure 7, at 905 UE1 can also optionally send its own temporary ID to any of UE2 ... N. Also, the temporary ID exchange shown in 905 (for example, by setting a temporary ID equal to the broadcast SSID that identifies each UE) established local P2P connections at 735 and 740. If and / or during the local P2P detection procedure of 725 and 730, it can be implemented instead at an early point in time.
Seeing Figure 9, after getting the temporary ID for UE2 ... N, UE1 sends a file and / or media stream to the server along with the temporary ID for UE2 ... N (910). The 910 in FIG. 9 is similar to the 770 in FIG. 7 except that the transmission of the 910 does not necessarily have to occur without notifying operator 1 for the server-mediated implementation of the data transfer. The server looks up a unique network address and / or unique user address based on the temporary ID received from UE1 (915) (e.g., similar to 775 in Figure 7), and then UE2. Propagate files and / or media streams to ..N (920) (for example, similar to 780 in Figure 7). Optionally, if the server-mediated data transfer is group communication (ie, N is greater than 2 so files and / or media streams are sent to multiple target UEs), the server will be UE1 .. You can assign a temporary group ID to the .N, so you don't need to list the individual temporary IDs for each target UE separately, including the temporary group IDs that are received by the server: Data transfers are mapped to UE1 ... N as communication groups (925) (for example, similar to 785 in Figure 7). Therefore, the server itself can then map the temporary group ID to the individual temporary IDs that are mapped to the unique user addresses and / or unique network addresses of the various UEs and / or operators. it can.
At 930, the server produces a record of server-mediated transfers of files and / or media streams (for example, similar to 795 in Figure 7). Although not explicitly shown in Figure 7, records generated at 930 can be archived in a local or remote database, and the server (or server administrator) will later data on one or more of the records. Can receive requests. For example, if not eavesdropping, one or more of UE1 ... N may request a copy of one or more archived records.
At some point later, UE1 is not within a given P2P range of 500, so it is assumed that the local P2P connection established at 735 will be terminated (935) (for example, even if N is greater than 2). , The individual local P2P connections established on the 740 can be maintained, such as between UE2 and UE3). The server expects to maintain the association between the temporary ID and UE2 ... N and / or the temporary group ID and UE1 ... N from 930 after the P2P disconnect. Operator 1 of UE1 then sends additional files and / or additional media to each operator of UE2 ... N and / or UE2 ... N ("Operator 2 ... N"). Decide to stream (940). At this point, P2P transfer of additional files and / or media streams from UE1 to UE2 ... N is not possible. Thereby, instead of attempting a P2P transfer, UE1 will server with (i) the temporary ID of UE2 ... N obtained in 905, or (ii) the temporary group ID obtained in 925. Send additional files and / or media streams to (945). In another example, if operator 1 controls UE1 as shown in Figure 9, or while operator 1 controls some other UE shown in the example, a 940 decision occurs. There is. For example, UE1 can accommodate tablet PCs operated by operator 1 during meetings with operators of UE2 ... N between 900 and 925. Operator 1 then operates a different UE (eg a mobile phone) and wants to send the data determined in 940. In this case, 940-945 can be performed via a mobile phone instead of a tablet PC, so UEs that perform different parts of the above process will be in the same state throughout each process in at least one embodiment. No need to maintain.
The server looks up a unique network address and / or unique user address (950) based on the temporary ID (or temporary group ID) received from UE1 and then UE2 ... N. Propagate additional files and / or media streams to and / or their respective operators (955). In other words, the transmission of 955 does not actually need to be transmitted directly to UE2 ... N, but this is certainly possible. For example, if Operator 2 has a unique user address (eg, email address or Skype username) maintained by the server in relation to its temporary identity, then the server has an email address or Skype username. If you can transfer additional files and / or media streams to, and operator 2 is operating a different UE (eg UE X), then operator 2 is actually UE instead of UE2. Can receive X additional files and / or media streams. At 960, the server produces a record of server-mediated transfers of additional files and / or media streams (similar to, for example, 930). As shown above for 795 in Figure 7 and 820 in Figure 8, in other examples, the records generated at 930 and / or 960 are in addition to or instead of the records stored locally on the server. Can be transferred to a separate monitoring server. The server's decision to transfer a particular record to a separate monitoring server may be based on one or more record transfer policies implemented by the server. For example, if the FBI has a warrant of eavesdropping related to a particular user's communication, the records associated with that particular user (for example, files and / or media streams sent to and received from that particular user) , Can be transferred in real time to a monitoring server operated by the FBI, where the transferred records are available for inspection by the FBI. The server-mediated data transfer between 935 and 960 in Figure 9 is the temporary ID of UE2 ... N (or temporary group ID) and the operator 2 ... N, respectively. It is based on a unique user address and / or a memorized mapping between UE2 ... N's network address after UE1 goes out of P2P range with UE2 ... N. However, as shown in FIG. 10, server-mediated data transfers can also be directed back to UE1.
Referring to FIG. 10, since N is greater than 2, it is assumed that UE1 ... N contains at least UE3. After 960 in Figure 9, UE1 is no longer within the given P2P range of 500, so the local P2P connection established at 735 ends, but Operator 2 is UE1 and 3 ... N and / or Suppose you decide to send a file and / or stream additional media to each operator in UE2 ... N ("Operators 1 and 3 ... N") (1000). At this point, P2P transfer of additional files and / or media streams from UE2 to UE1 is not possible (although in theory UE2 would make a local P2P connection with UE3 ... N depending on the situation. Can be retained). Thereby, instead of attempting a P2P transfer, UE2 will either (i) the temporary IDs of UE1 and 3 ... N obtained in 905, or (ii) the temporary group ID obtained in 925. Send files and / or media streams to the server with (1005). In another example, 1000 transmissions occur if Operator 2 is controlling UE2 as shown in Figure 10, or instead, while Operator 2 is controlling some other UE shown in the example. May be done. For example, UE2 can accommodate tablet PCs operated by operator 2 during meetings with operators UE1 and 3 ... N between 900 and 925. Operator 2 then operates a different UE (eg a mobile phone) and wants to send the data determined by 1000. In this case, 1000-1005 can be performed via a mobile phone instead of a tablet PC, so UEs that perform different parts of the above process will remain the same throughout at least each process in one embodiment. do not have to.
The server looks up a unique network address and / or a unique user address (1010) based on the temporary ID (or temporary group ID) received from UE2, then UE1 and 3. Propagate additional files and / or media streams to .N and / or their respective operators (1015). In other words, the transmission of 1015 does not actually have to be transmitted directly to UE1 and 3 ... N, but this is certainly possible. For example, if Operator 3 has a unique user address (eg, email address or Skype username) maintained by the server in relation to its temporary identity, then the server has an email address or Skype username. If operator 3 is operating a different UE (eg UE X) and can transfer additional files and / or media streams to, operator 3 will actually be the UE instead of UE3. Can receive X additional files and / or media streams. At 1020, the server stores a record of server-mediated transfers of additional files and / or media streams (similar to, for example, 960). In other examples, the records generated by 1020 are stored locally on the server, as shown above for 795 in Figure 7, 820 in Figure 8, 930 in Figure 9, and 960 in Figure 9. In addition to, or instead, it may be transferred to a separate monitoring server. The server's decision to transfer a particular record to a separate monitoring server may be based on one or more record transfer policies implemented by the server. For example, if the FBI has a warrant of eavesdropping related to a particular user's communication, the records associated with that particular user (for example, files and / or media streams sent to and received from that particular user) It can be transferred in real time to a monitoring server operated by the FBI, and the transferred records are available for inspection by the FBI.
Those skilled in the art will appreciate that information and signals are represented using any of a variety of different techniques and techniques. For example, the data, instructions, commands, information, signals, bits, symbols, and chips used throughout the above description may be voltage, current, electromagnetic waves, magnetic fields or electromagnetic particles, optical fields or optical particles, or It can be represented by any combination of them.
Moreover, those skilled in the art will appreciate that the various exemplary logic blocks, modules, circuits, and algorithm steps described with respect to the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. There will be. To articulate this compatibility of hardware and software, various exemplary components, blocks, modules, circuits, and steps have been generally described in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the overall system. An expert may implement features described in various ways for each particular application, but decisions on such implementation should not be construed as departing from the scope of the invention.
The various described logic blocks, modules, and circuits described with respect to the embodiments disclosed herein are general purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), and field programmable gate arrays (FPGAs). Alternatively, it can be implemented or performed in other programmable logic devices, individual gate or transistor logic, individual hardware components, or any combination thereof designed to perform the functions described herein. The general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. Processors may also be implemented as a combination of computing devices, such as DSPs and microprocessors, multiple microprocessors, one or more microprocessors associated with a DSP core, or a combination of other such configurations. Can be done.
The methods, sequences, and / or algorithms described for embodiments disclosed herein can be embodied directly in hardware, software modules executed by a processor, or a combination of the two. Software modules can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs, or other forms of storage media known in the art. A typical storage medium is coupled to the processor so that the processor can read and write information from the storage medium. In the alternative, the storage medium may be integrated with the processor. Processors and storage media can reside in the ASIC. The ASIC can reside on the user terminal (eg UE). In the alternative, the processor and storage medium can exist as separate components of the user terminal.
In one or more representative embodiments, the described functionality can be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, a function can be stored on or transmitted to a computer-readable medium as one or more instructions or codes. Computer-readable media include both computer storage media and communication media, including any medium that facilitates the transfer of computer programs from one location to another. The storage medium may be any available medium accessible by the computer. To give an example without limitation, such computer-readable media are RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage, or instructions or It can be used to carry or store the desired program code in the form of a data structure and can include other media accessible by a computer. Also, any connection is properly called a computer-readable medium. For example, using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, wireless, and microwave, the software is transmitted from a website, server, or other remote source. Where so, wireless technologies such as coaxial cable, fiber optic cable, twisted pair, DSL, or infrared, wireless, and microwave are included in the definition of medium. As used herein, discs and discs are compact discs (CDs), laser discs (registered trademarks), optical discs, digital versatile discs (DVDs), floppy discs, and Blu-ray. Including discs, discs typically reproduce data magnetically, while discs use lasers to optically reproduce data. The above combinations are also included within the scope of computer-readable media.
Although the aforementioned disclosure shows a descriptive embodiment of the invention, various modifications and modifications are made herein without departing from the scope of the invention as defined by the appended claims. Please note that. The functions, steps, and / or operations of the claims of the methods according to the embodiments of the invention described herein need not be performed in any particular order. Furthermore, although elements of the present invention, there may have been described or claimed in the singular, braking the singular unless that limit has not been explicitly stated, in which the plural is contemplated.
100 wireless communication system 104 Air interface 106 air interface 108 Air interface 120 RAN 125 Access Point (AP) 140 core network 170 application server 175 internet 200A UE 200B UE 202 platform 205A antenna 205B touch screen display 206 transmitter / receiver 208 Application Specific Integrated Circuits (ASIC) 210 Application Programming Interface (API) 210A display Buttons around 210B 212 memory 214 local database 215A button Buttons around 215B 220A keypad Buttons around 220B Buttons around 225B 230B Front panel button 300 communication devices 304 network access point 305 Logic configured to receive and / or send information 310 Logic configured to process information 315 Logic configured to store information 320 Logic configured to present information 325 Logic configured to receive local user input 400 servers 401 processor 402 Volatile memory 403 disk drive 404 network access port 406 disk drive 407 network 500 P2P communication range 505 interface 505 Local P2P communication interface 510 First network communication interface 515 Second network communication interface 520 base station
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11582314B1 | Cited by | United States of America | Search report |
| US11582314B1 | Cited by | United States of America | Search report |
| JP2010522472A | Cites | Japan | Search report |
| JP2013504806A | Cites | Japan | Search report |
| US6640241B1 | Cites | United States of America | Search report |
9 members in 7 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 14251265 | United States of America | – | |
| 201414251265 | United States of America | A | |
| 2015020594 | United States of America | W | |
| 14251265 | – | – | – |
| US201414251265 | – | – | – |
| US2015020594 | – | – | – |
| WO2015US20594 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| US2015296004A1 | United States of America | A1 | |
| WO2015156958A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US9392057B2 | United States of America | B2 | |
| CN106134162A | China | A | |
| KR20160142854A | Republic of Korea | A | |
| EP3130124A1 | European Patent Office (EPO) | A1 | |
| JP2017516201AThis record | Japan | A | |
| BR112016023657A2 | Brazil | A2 | |
| EP3130124B1 | European Patent Office (EPO) | B1 |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Written measure of dismissal of application [lapsed due to lack of payment]LapsedJAPANESE INTERMEDIATE CODE: A045A045 | A045 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 |
Numbers
- Publication
- 2017516201
- Publication, DOCDB
- 2017516201
- Publication, EPODOC
- JP2017516201
- Application
- 2016560984
- Application, DOCDB
- 2016560984
- Application, EPODOC
- JP20160560984
Titles3
- Japanese
- サーバを介するP2P対応のクライアントデバイス間でのデータの選択的な交換
- English
- Selective exchange of data between P2P-enabled client devices over the server
- Japanese
- サーバを介するP2P対応のクライアントデバイス間でのデータの選択的な交換
Classification
- CPC, 4
- H04L67/104
- H04L63/30
- H04L67/1093
- H04L67/141
- IPC, 2
- G06F13 00
- H04M11 00
Designated states5
- Regional, 4
- Zimbabwe
- Turkmenistan
- Türkiye
- Togo
- National, 1
- United States of America