U.S. patent application number 14/025315 was filed with the patent office on 2014-03-06 for server device, communication system, method, and computer-readable storage medium.
The applicant listed for this patent is NINTENDO CO., LTD.. Invention is credited to Masato KUWAHARA, Yutaka MURAKAMI.
Application Number | 20140066102 14/025315 |
Document ID | / |
Family ID | 48572458 |
Filed Date | 2014-03-06 |
United States Patent
Application |
20140066102 |
Kind Code |
A1 |
KUWAHARA; Masato ; et
al. |
March 6, 2014 |
SERVER DEVICE, COMMUNICATION SYSTEM, METHOD, AND COMPUTER-READABLE
STORAGE MEDIUM
Abstract
A server device includes: a receiving unit configured to
receive, from each of a plurality of information-processing
devices, location information showing a respective location of each
information-processing device; a setting unit configured to set a
condition showing that one information-processing device is close
to another information-processing device, based on a predetermined
parameter; a determining unit configured to determine whether a
first information-processing device and a second
information-processing device from among the plurality of
information-processing devices satisfy the condition based on the
location information received by the receiving unit; and a
transmitting unit configured to transmit information determined at
the determining unit to the first information-processing device and
the second information-processing device, in a case that the
determining unit determines that the first information-processing
device and the second information-processing device satisfy the
condition.
Inventors: |
KUWAHARA; Masato; (Kyoto,
JP) ; MURAKAMI; Yutaka; (Kyoto, JP) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
NINTENDO CO., LTD. |
Kyoto |
|
JP |
|
|
Family ID: |
48572458 |
Appl. No.: |
14/025315 |
Filed: |
September 12, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13454135 |
Apr 24, 2012 |
|
|
|
14025315 |
|
|
|
|
Current U.S.
Class: |
455/456.3 |
Current CPC
Class: |
H04L 67/2871 20130101;
H04W 76/11 20180201; H04W 4/029 20180201; A63F 13/35 20140902; A63F
13/79 20140902; H04W 4/80 20180201; H04W 4/023 20130101 |
Class at
Publication: |
455/456.3 |
International
Class: |
H04W 4/02 20060101
H04W004/02; H04W 76/02 20060101 H04W076/02 |
Foreign Application Data
Date |
Code |
Application Number |
Dec 9, 2011 |
JP |
2011-269919 |
Claims
1. A server device comprising: a receiving unit configured to
receive first data from a first information-processing device, the
first data being to be provided from the first
information-processing device to another information-processing
device; a first obtaining unit configured to obtain a first
identification information showing an identification of an access
point to which the first information-processing device connected; a
second obtaining unit configured to obtain a second identification
information showing an identification of an access point to which
the second information-processing device connected; and a
transmitting unit configured to transmit to the second
information-processing device the first data received from the
first information-processing device, if the first identification
information and the second identification information satisfy a
predetermined condition.
2. The server device according to claim 1, wherein the receiving
unit is further configured to receive second data from the second
information-processing device, the second data being to be provided
from the first information-processing device to another
information-processing device, and the transmitting unit is further
configured to transmit to the first information-processing device
the second data received from the second information-processing
device, if the first identification information and the second
identification information satisfy the predetermined condition.
3. The server device according to claim 1, wherein the first data
is used in a game program.
4. A computer-readable non-transitory storage medium storing a
program causing a computer to execute a process, the process
comprising: receiving first data from a first
information-processing device, the first data being to be provided
from the first information-processing device to another
information-processing device; obtaining a first identification
information showing an identification of an access point to which
the first information-processing device connected; obtaining a
second identification information showing an identification of an
access point to which the second information-processing device
connected; and transmitting to the second information-processing
device the first data received from the first
information-processing device, if the first identification
information and the second identification information satisfy a
predetermined condition.
5. A method comprising: receiving first data from a first
information-processing device, the first data being to be provided
from the first information-processing device to another
information-processing device; obtaining a first identification
information showing an identification of an access point to which
the first information-processing device connected; obtaining a
second identification information showing an identification of an
access point to which the second information-processing device
connected; and transmitting to the second information-processing
device the first data received from the first
information-processing device, if the first identification
information and the second identification information satisfy a
predetermined condition.
6. An information-processing system comprising: a receiving unit
configured to receive first data from a first
information-processing device, the first data being to be provided
from the first information-processing device to another
information-processing device; a first obtaining unit configured to
obtain a first identification information showing an identification
of an access point to which the first information-processing device
connected; a second obtaining unit configured to obtain a second
identification information showing an identification of an access
point to which the second information-processing device connected;
and a transmitting unit configured to transmit to the second
information-processing device the first data received from the
first information-processing device, if the first identification
information and the second identification information satisfy a
predetermined condition.
Description
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application is a continuation of U.S. application Ser.
No. 13/454,135, filed on Apr. 24, 2012, and claims priority to
Japanese Patent Application No. 2011-269919, filed Dec. 9, 2011,
the contents of each of which are incorporated herein by
reference.
TECHNICAL FIELD
[0002] The present invention relates to exchanging data between two
information-processing devices.
RELATED ART
[0003] Data exchange between two information-processing devices
(for example, two portable game devices) that are proximate
spatially, is known.
SUMMARY
[0004] In a related art, data exchange is performed when two
information-processing devices are located within a radio-wave
range of each other.
[0005] The present invention provides flexibility in determining a
condition for performing data exchange between two
information-processing devices.
[0006] According to one aspect of the invention, there is provided
a server device including: a receiving unit configured to receive,
from each of a plurality of information-processing devices,
location information showing a respective location of each
information-processing device; a setting unit configured to set a
condition showing that one information-processing device is close
to another information-processing device, based on a predetermined
parameter; a determining unit configured to determine whether a
first information-processing device and a second
information-processing device from among the plurality of
information-processing devices satisfy the condition based on the
location information received by the receiving unit; and a
transmitting unit configured to transmit information determined at
the determining unit to the first information-processing device and
the second information-processing device, in a case that the
determining unit determines that the first information-processing
device and the second information-processing device satisfy the
condition.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Exemplary embodiments will now be described with reference
to the following drawings, wherein:
[0008] FIG. 1 shows a functional configuration of communication
system 1;
[0009] FIG. 2 shows a hardware configuration of
information-processing device 10;
[0010] FIG. 3 shows a hardware configuration of server 40;
[0011] FIG. 4 is a sequence chart outlining an operation of
communication system 1;
[0012] FIG. 5 is a flowchart illustrating an operation for
transmitting location information;
[0013] FIG. 6 shows an example of the location history;
[0014] FIG. 7 is a flowchart illustrating a data exchange process
at server 40;
[0015] FIG. 8 shows an example of data recorded in database
411;
[0016] FIGS. 9A and 9B show an example of data exchange
condition;
[0017] FIG. 10 shows an example of each of a temporal range and a
spatial range in relation to spatial densities of
information-processing devices 10;
[0018] FIG. 11 shows an example of each of a temporal range and
spatial range in relation to a spatial density of
information-processing devices 10;
[0019] FIG. 12 shows an example of data exchange list 412; and
[0020] FIG. 13 is a sequence chart illustrating an operation for
transmitting results of the data exchange.
DETAILED DESCRIPTION
1. Configuration
[0021] FIG. 1 shows a communication system in accordance with an
exemplary embodiment of the present invention. In communication
system 1, two information-processing devices, which are within the
same temporal range and spatial range, exchange data with each
other. Communication system 1 includes information-processing
device 10, communication network 30, and server 40. Although in
FIG. 1 only one information-processing device 10 is shown,
communication system 1 may include plural information-processing
devices 10. In the following description, to distinguish each of
plural information-processing devices 10, subscripts are used, such
as information-processing device 10A and information-processing
device 10B. Information-processing device 10 is a device for
execution of an application program. Communication network 30 is a
communication network for relay of data between
information-processing device 10 and server 40, and can include a
variety of networks such as, for example, the Internet, a mobile
communication network, a wireless LAN (Local Area Network). Server
40 is a device for execution of a process for exchanging data
between two information-processing devices 10, which devices are
within a predetermined temporal and spatial range.
[0022] In the related art, when two information-processing devices
are within a radio-wave range of each other, whereby near field
communication can be performed between them, data is exchanged
automatically. In communication system 1 of the present invention,
data is exchanged via server 40.
[0023] Information-processing device 10 includes location
information-obtaining unit 11, data-transmitting unit 12, storage
unit 13, result-receiving unit 14, display unit 15, time
information-obtaining unit 16, and control unit 17. Storage unit 13
stores various data and programs. In this example, storage unit 13
stores user data set 135. Control unit 17 executes a program, for
example, an application program or other programs, and controls
another elements of information-processing device 10. Location
information-obtaining unit 11 obtains location information showing
a location of information-processing device 10, the location
information being used for determining whether two
information-processing devices 10 satisfy a condition for data
exchange (hereinafter, referred to as "data exchange condition").
Time information-obtaining unit 16 obtains time information
corresponding to the obtained location information, the time
information also being used for determining whether the two
information-processing devices 10 satisfy the data exchange
condition. Data-transmitting unit 12 transmits to server 40 the
location and time information, together with a data set, and at
server 40 it is determined whether data exchange condition is
satisfied and, if affirmative, the data exchange is performed at
server 40. More specifically, data-transmitting unit 12 transmits
to server 40, as information to be used to determine whether data
exchange condition is satisfied, the location information obtained
by location information-obtaining unit 11 and the time information
obtained by time information-obtaining unit 16. Further,
data-transmitting unit 12 transmits user data set 135 to server 40,
which user data set is to be exchanged with user data of another
information-processing device 10 by the data exchange.
Result-receiving unit 14 receives a result of the data exchange
performed at server 40, and the result of the data exchange is
displayed to a user via display unit 15 of the user's
information-processing device 10.
[0024] Server 40 includes data-receiving unit 41, storage unit 42,
condition-setting unit 43, condition-determining unit 44,
result-transmitting unit 45, spatial density-calculating unit 46,
and control unit 47. Data-receiving unit 41 receives from
information-processing device 10 location information and user data
set 135 for the data exchange. Spatial density-calculating unit 46
calculates, as a parameter for setting the data exchange condition,
a spatial density of information-processing devices 10 based on the
location information received by the data-receiving unit 41. The
spatial density of information-processing devices 10 is calculated
for each geographical unit (a predetermined geographic unit is, for
example, a prefecture). Condition-setting unit 43 sets (or
determines) data exchange condition based on the spatial density of
information-processing devices 10 calculated by spatial
density-calculating unit 46, which data exchange condition shows
that a first information-processing device 10 and a second
information-processing device 10 are temporally and spatially
close. The data exchange condition indicates restrictions of
spatial range and temporal range in relation to first
information-processing device 10. More specifically,
condition-setting unit 43 sets spatial range and temporal range in
response to spatial density at a location shown by the location
information received from information-processing device 10A.
Condition-determining unit 44 determines whether
information-processing device 10A and information-processing device
10B satisfy the data exchange condition, based on location
information and time information of information-processing device
10A, and location information and time information of
information-processing device 10B. Result-transmitting unit 45
transmits predetermined information to information-processing
device 10A and information-processing device 10B if it is
determined that information-processing device 10A and
information-processing device 10B satisfy the data exchange
condition.
[0025] FIG. 2 shows a hardware configuration of
information-processing device 10. In this example,
information-processing device 10 is a portable game device.
Information-processing device 10 executes an application program
(for example, a game program) stored in program medium 20.
Information-processing device 10 is a computer device including CPU
(Central Processing Unit) 110, RAM (Random Access Memory) 121, ROM
(Read Only Memory) 122, cartridge IF 131, slot 132, mobile
communication module 140, SIM (Subscriber Identity Module)-IF 141,
and SIM 142, input module 151, display module 152, sound module
153, near field communication module 160, and GPS receiver 170.
[0026] CPU 110 is a control device (or a processing device) that
controls other hardware components of information-processing device
10. RAM 121 is a read/write storage device. ROM 122 is a read-only
storage device. ROM 122 stores, for example, an OS (Operating
System) program, which is system software of information-processing
device 10 and other application programs (not shown in the
figures). In this example, RAM 121 stores user data set 135 of a
user of information-processing device 10. User data set 135
includes, for example, an avatar image of a user, a user name, and
a message.
[0027] Cartridge interface 131 is an interface that relays
writing/reading data to/from program medium 20. Slot 132 has a
predetermined form and size. Program medium 20 includes a housing
(or case) (not shown in the figures) containing ROM 210. The
housing has a form and a size corresponding to slot 132. ROM 210 is
a rewritable non-volatile memory; for example, a semiconductor
memory. In other words, program medium 20 is a ROM cartridge
including a semiconductor memory. ROM 210 stores application
program 211.
[0028] Mobile communication module 140 is a module for
communicating via a mobile communication network. Mobile
communication module 140 includes, for example, an antenna and an
amplifier. SIM IF 141 is an interface that relays writing/reading
data to/from SIM 142. SIM 142 includes a storage device that stores
an identification number to identify a subscriber in the mobile
communication network.
[0029] Input module 151 is a module that inputs data to CPU 110,
and includes, for example, a keypad, a touch screen, or a
microphone. Display module 152 is a module that displays an image
in accordance with instructions output from CPU 110. Display module
152 includes, for example, a liquid crystal display and a driver
circuit. Sound module 153 is a module that outputs sound in
accordance with instructions output from CPU 110, and includes, for
example, a speaker and an amplifier.
[0030] Near field communication module 160 is a module for
performing communication complying with a predetermined standard,
for example, a wireless LAN complying with IEEE 802.11. GPS
receiver 170 receives signals from plural GPS satellites (not shown
in the figures), and calculates global position (for example,
latitude and longitude) by using the received signals.
[0031] CPU 110 executing the OS program is an example of location
information-obtaining unit 11, time-obtaining unit 16, and control
unit 17. CPU 110 used in cooperation with mobile communication
module 140 or near field communication module 160 is an example of
data-transmitting unit 12, and result-receiving unit 14. ROM 122,
external memory 124, and RAM 121 are examples of storage unit
13.
[0032] FIG. 3 shows a hardware configuration of server 40. Server
40 is a computer device including HDD (Hard Disk Drive) 410, CPU
420, ROM 421, RAM 422, and communication module 430. ROM 421 and
RAM 422 are a non-volatile and a volatile storage device,
respectively. HDD 410 is a nonvolatile storage device. HDD 410
stores server program 414, database 411, and data exchange list
412. Server program 414 is a program for causing a computer device
to function as server 40. CPU 420 is a control device that controls
other components of server 40. Communication module 430 is a device
that communicates via the Internet, and includes, for example, a
network interface.
[0033] CPU 420 executing server program 414 implements the
functions shown in FIG. 1. CPU 420 executing server program 414 is
an example of condition-setting unit 43, condition-determining unit
44, spatial density calculating unit 46, and control unit 47. CPU
420 cooperating with communication module 430 is an example of
data-receiving unit 41 and result-transmitting unit 45. ROM 421,
RAM 422, and HDD 410 are examples of storage unit 42.
2. Operation
2-1. Outline of the Operation
[0034] FIG. 4 is a sequence chart illustrating an outline of an
operation of communication system 1. In step S10,
information-processing device 10A and information-processing device
10B respectively transmit to server 40 their own location
information. In step S20, server 40 performs data exchange process
based on the received location information. In step S30, server 40
transmits results of the data exchange process to
information-processing device 10A and information-processing device
10B. These processes are implemented as functions achieved by the
OS program of information-processing device 10 and server program
414 of server 40.
2-2. Transmission of Location Information and Time Information
[0035] FIG. 5 is a flowchart illustrating an operation for
transmitting the location information. The flow shown in FIG. 5
corresponds to step S10 in FIG. 4. The flow shown in FIG. 5 is
triggered by an instruction to initiate the data exchange process.
The instruction is input by, for example, a user.
[0036] In step S101, CPU 110 obtains location information. In this
example, CPU 110 obtains location information from GPS receiver
170. Updated location information is periodically obtained.
Further, CPU 110 obtains time information from a time-measuring
unit such as a timer (not shown in the figures). In this example,
the location information and the time information are transmitted
to server 40 as a location history. The location history includes
plural sets of location information and time information, obtained
at different times. In step S102, CPU 110 records the obtained
location information and time information obtained in step S101
into the location history. The location history is stored in RAM
121.
[0037] FIG. 6 shows an example of the location history. The
location history includes plural sets of data, each set of data
including a time stamp and corresponding location information. For
example, the first row data set indicates that
information-processing device 10 is at north latitude 35.682241 and
east longitude 139.753411 on 9:45:00, Nov. 17, 2011.
[0038] Referring to FIG. 5 again, in step S103, CPU 110 determines
whether transmission of the location history is triggered. If it is
determined that the transmission is triggered (S103: YES), CPU 110
transfers the operation to step S104. If it is not determined that
the transmission is triggered (S103: NO), CPU 110 transfers the
operation to step S101. In this example, information-processing
device 10 can communicate with server 40 via two paths. One is a
path via mobile communication module 140 (in other words, via the
mobile communication network); the other is a path via near field
communication module 160 (in other words, via wireless LAN). Which
path is used is determined, for example, in accordance with an
instruction input by a user. For example, if information-processing
device 10 is communicating via mobile communication module 140, an
event that a predetermined time period has elapsed from a previous
transmission of the location history is used as a trigger for
transmission of the location history. As another example, if
information-processing device 10 is communicating via near field
communication module 160, an event that a connection is established
with a wireless LAN access point is used as a trigger for
transmission of the location history.
[0039] In step S104, CPU 110 transmits to server 40 the location
history stored in RAM 121 and identification data of
information-processing device 10 (hereinafter referred to as
"device ID.") In this example, CPU 110 transmits the location
history along with user data set 135.
[0040] In step S105, CPU 110 resets the location history stored in
RAM 121. In step S106, CPU 110 determines whether termination is
instructed. If it is not determined that termination is instructed
(S106: NO), CPU 110 transfers the operation to step S101. If it is
determined that termination is instructed (S106: YES), CPU 110
terminates the flow shown in FIG. 5.
2-3. Data Exchange Process
[0041] FIG. 7 is a flowchart illustrating the data exchange process
at server 40. The flow shown in FIG. 7 corresponds to step S20 in
FIG. 4.
[0042] In step S201, CPU 420 determines whether CPU 420 receives
location information from information-processing device 10. If it
is determined that the location information is received (S201:
YES), CPU 420 transfers the operation to step S202. If it is not
determined that the location information is received (S201: NO),
CPU 420 transfers the operation to step S203.
[0043] In step S202, CPU 420 records the received location history
into database 411. Further, CPU 420 stores in HDD 410 user data set
135, which is received along with the location history.
[0044] FIG. 8 shows an example of data recorded in database 411.
Database 411 includes plural sets of a device ID and corresponding
location history of information-processing device 10.
[0045] Referring to FIG. 7 again, in step S203, CPU 420 determines
whether determination of the condition for the data exchange is
triggered. The determination is triggered, for example, by an
event, such as a predetermined time period having elapsed since the
previous determination. If it is determined that the determination
is triggered (S203: YES), CPU 420 transfers the operation to step
S204. If it is not determined that the determination is triggered
(S203: NO), CPU 420 transfers the operation to step S201.
[0046] In step S204, CPU 420 calculates spatial density of
information-processing device 10. The spatial density is calculated
for each predetermined geographic unit. More specifically, the
spatial density is calculated as follows. First, CPU 420 identifies
a current location of each of plural information-processing devices
10. A location corresponding to a time stamp, which is the closest
to a predetermined time from among the location histories recorded
in database 411, is used as the current location. In another
example, a location corresponding to the last time stamp from among
the location histories recorded in database 411, is used as the
current location. Then, CPU 420 counts the number of
information-processing devices 10 for each geographic unit, based
on the identified current locations. Then, CPU 420 divides, for
each geographic unit, the number of information-processing devices
10 by an area of the geographic unit. It is to be noted that the
relationship between the location information and the geographic
unit, and the area of the geographic unit are pre-recorded in a
database (not shown in the figures) stored in HDD 410. In other
words, the spatial density of information-processing devices 10 is
a function of the geographic unit. CPU 420 stores the calculated
spatial density in RAM 422.
[0047] In step S205, CPU 420 identifies one information-processing
device 10, which is a subject of the determination (hereinafter
referred to as a "subject device"), from among plural
information-processing devices 10. The subject devices are
identified in a predetermined order, for example, in ascending
numerical order of the device IDs.
[0048] In step S206, CPU 420 sets (determines, or fixes) the data
exchange condition for the subject device. In this example, the
data exchange condition is that another information-processing
device 10 (hereinafter referred to as "another device"), with which
the subject device performs the data exchange, is within temporal
range Rt and spatial range Rs in relation to the subject device.
Temporal range Rt is a parameter defining a temporal range. For
example, temporal range Rt defines duration before and after a
reference time, which is defined as time when the subject device is
located at a certain location. Spatial range Rs is a parameter
defining spatial range. For example, spatial range Rs defines a
radius of a circle whose center is the location of the subject
device. For a detailed example, in a case of Rt=.+-.1 hour and
Rs=50 m, if another device is located in a range within 50 m from
the location of the subject device during a period of 1 hour prior
to and 1 hour subsequent to the reference time, data exchange is
performed.
[0049] FIGS. 9A and 9B show an example of a data exchange
condition. In this example, information-processing device 10A is
the subject device and information-processing device 10B is another
device. Here, only spatial range Rs is shown, for simplicity of
explanation. In this example, spatial range Rs defines an area
within a circle whose center is the location of the subject device.
In an example of FIG. 9A, since another device is outside the
spatial range Rs, the data exchange condition is not satisfied.
Therefore, data exchange is not performed. In an example of FIG.
9B, since another device is inside the spatial range Rs, the data
exchange condition is satisfied.
[0050] FIGS. 10 and 11 show an example of temporal range and
spatial range in relation to spatial density of
information-processing devices 10. CPU 420 determines values of
temporal range Rt and spatial range Rs based on spatial density at
the location of the subject device. Spatial range Rs satisfies Rs
(c1).gtoreq.Rs (c2). Here, Rs (c) shows the spatial range when the
spatial density equals c. Temporal range Rt satisfies Rt
(c1).gtoreq.Rt (c2). Here, Rt (c) shows the spatial range when the
spatial density equals c. The spatial densities c1 and c2 are
selected freely as long as c1<c2. For example, in more detail,
spatial range Rs and temporal range Rt increase together with an
increase in the spatial density as long as the spatial density is
smaller than threshold cth, and are constant as long as the spatial
density is smaller that threshold cth. In other words, at lower
spatial density, spatial range Rs and temporal range Rt are
broader. At higher spatial density, spatial range Rs and temporal
range Rt are narrower. It is to be noted that the profile shown in
FIG. 10 is merely an example. For example, temporal range Rt and
spatial range Rs may not be linear to the spatial density.
[0051] If the data exchange is performed when two devices are
located within radio-wave range of each other as described in
JP-A-2011-000309, a user who lives in an area whose spatial density
is low (for example, a lightly populated area), has less
opportunity for the data exchange, compared with a user who lives
in an area whose spatial density is high (for example, an urban
area). Conversely, communication system 1 provides (especially for
users located in an area whose spatial density is low) a higher
opportunity for data exchange compared with a case that the data
exchange condition is constant and independent from the spatial
density of the information-processing device 10.
[0052] Referring to FIG. 7 again, in step S207, CPU 420 determines
whether there exists another device that satisfies the data
exchange condition, based on the location history recorded in
database 411. If it is determined that no information-processing
device 10 satisfies the data exchange condition (S207: NO), CPU 420
transfers the operation to step S209. If it is determined that
there exists another device that satisfies the data exchange
condition (S207: YES), CPU 420 transfers the operation to step
S208.
[0053] In step S208, CPU 420 records in data exchange list 412
information relating to the subject device, and information
relating to another device that satisfies the data exchange
condition. Data exchange list 412 is stored in HDD 410.
[0054] FIG. 12 shows an example of data exchange list 412. Data
exchange list 412 includes at least one set (record) of information
relating to the subject device and another device, a time stamp
indicating when the data exchange condition is satisfied, and
location information. The information relating to the device
includes a device ID, an identification of a user data set (for
example, a filename and a file directory), and a transmission flag.
For the time stamp indicating when and the location information
indicating where the data exchange condition is satisfied, a time
stamp and location information recorded in the location history of
the subject device are used. The transmission flag indicates
whether a result of the data exchange has been transmitted. In an
example of FIG. 12, for information-processing device 10 having a
device ID "0000001," a result of the data exchange is not
transmitted yet. For information-processing device 10 having a
device ID "0000002," a result of the data exchange has already been
transmitted.
[0055] In this example, once the data exchange is performed between
two information-processing devices 10, subsequent data exchange is
not performed until a predetermined time period has elapsed.
Therefore, even if it is determined that the data exchange
condition is satisfied in step S207 for two information-processing
devices 10, CPU 420 does not record the two information-processing
devices 10 into data exchange list 412 in a case that the two
information-processing devices 10 are already recorded in data
exchange list 412 and the predetermined time period has not elapsed
since the previous data exchange.
[0056] Referring to FIG. 7 again, in step S209, CPU 420 determines
whether all information-processing devices 10 are processed as the
subject device. If it is determined that all information-processing
devices 10 are processed as the subject device (S209: YES), CPU 420
resets database 411. After resetting database 411, CPU 420
transfers the operation to step S201. If it is determined that
there is an information-processing device 10 that is not processed
as the subject device (S209: NO), CPU 420 transfers the operation
to step S205. In this case, CPU 420 updates the subject device, and
executes the processes in step S206 to S208.
2-4. Transmission of results of data exchange
[0057] FIG. 13 is a sequence chart illustrating an operation for
transmitting results of the data exchange. In step S301, CPU 110 of
information-processing device 10A transmits to server 40 a request
for transmitting results of the data exchange (hereinafter referred
to as a "results request.") The results request includes the device
ID of information-processing device 10A. The transmission of the
results request is triggered by a predetermined event. For example,
if information-processing device 10 is communicating via mobile
communication module 140 (in other words, via the mobile
communication network), the transmission of the results request is
triggered by an event that a predetermined time period has elapsed
since the previous reception of the results. In another example, if
information-processing device 10 is communicating via near field
communication module 160 (in other words, via wireless LAN), the
transmission of the results request is triggered by an event that a
connection with a wireless LAN access point has been
established.
[0058] In step S302, CPU 420 of server 40 searches for the results
of the data exchange with information-processing device 10A, from
data exchange list 412. More specifically, CPU 420 searches data
exchange list 412 for a data set that includes the device ID of
information-processing device 10A as the subject device or another
device and that has a transmission flag "not yet." In an example
shown in FIG. 12, the record of the top row is extracted.
[0059] In step S303, CPU 420 transmits a result of the data
exchange in response to the extracted record. In this example, a
result of the data exchange includes a user data set from another
device. For example, if an information-processing device 10 that
transmits the results request is recorded as the subject device,
the results of the data exchange include a user data set of another
device. The user data set is an example of provided data. The
provided data include, for example, an avatar image of a user, a
username, and a message. If an information-processing device 10
that transmits the results request is recorded as another device,
the results of the data exchange include a user data set of the
subject device. More specifically, CPU 420 reads the required user
data set from HDD 410, and generates a result including the read
user data set. CPU 420 transmits the generated result to
information-processing device 10A, which is a source of the results
request.
[0060] On receiving the results of the data exchange, CPU 420
overwrites the corresponding transmission flag with "done" in data
exchange list 412. Further, if transmission flags of the subject
device and another device both indicate "done," CPU 420 deletes the
record from data exchange list 412.
[0061] In step S304, CPU 110 of information processing device 10A
controls display module 152 to show the received results.
[0062] As described above, communication system 1 provides
flexibility in the data exchange condition, compared with a case
that the temporal range and spatial range are constant.
3. Modification
[0063] The present invention is not restricted to the embodiment
described above. Various modifications can be applied to the
exemplary embodiment. Some modifications will be described below.
Two or more modifications from among the following modifications
may be combined.
3-1. First modification
[0064] A parameter used to setting the data exchange condition is
not restricted to an example (spatial density of
information-processing device 10 and the location of the subject
device) described in the exemplary embodiment. Condition-setting
unit 43 may set the data exchange condition based on the following
parameter, instead of or as well as, the spatial density of
information-processing device 10 and the location of the subject
device. Further, condition-setting unit 43 may combine at least two
parameters from among the following parameters, so as to determine
the data exchange condition.
3-1-1. Location of Another Device
[0065] The location of another device may be used as follows. In
step S207, CPU 420 identifies one information-processing device 10
as a candidate of another device (hereinafter referred to as a
"candidate device"). Plural information-processing devices 10, of
which the location history is recorded, are identified as the
candidate device one by one, in a predetermined order. CPU 420
calculates coefficient k by using the spatial density at the
candidate location. Coefficient k is, for example, a monotonically
decreasing function of the spatial density. The maximum value of
coefficient k is greater than 1, and the minimum value of
coefficient k is less than 1. CPU 420 determines whether the
candidate device satisfies the data exchange condition, by using
temporal range Rt and spatial range Rs to which coefficient k is
multiplied, as parameters to determine whether the data exchange
condition is satisfied. In this example, if the subject device and
another device are in an area having lower spatial density, a
possibility of the data exchange can be raised compared with a case
that the spatial density of another device is not considered.
3-1-2. User Attribute
[0066] The user attribute may be used as follows. In this example,
the user attribute includes a "friend list," which shows
association of plural users. The friend list includes device IDs of
information-processing devices 10 owned by other users, who are
friends of the user. CPU 420 changes the value of coefficient k in
response to the candidate device and the friend list. More
specifically, if the candidate device is included in the friend
list, CPU 420 increases coefficient k. If the candidate device is
not included in the friend list, CPU 420 decreases coefficient k.
CPU 420 determines whether the candidate device satisfies the data
exchange condition, by using temporal range Rt and spatial range Rs
to which coefficient k is multiplied, as parameters to determine
whether the data exchange condition is satisfied. In this example,
if users of the subject device and another device are friends, a
possibility of data exchange can be raised compared with a case
that they are not friends. It is to be noted that the user
attribute is not restricted to friendships. Another attribute, for
example, age, sex, or blood type, may be used. In such a case, the
user attribute of the subject device is compared with the user
attribute of the candidate device. If it is determined that these
user attributes are close or analogous, CPU 420 may increase
coefficient k so as to increase the possibility of data
exchange.
3-1-3. Device Attribute
[0067] The device attribute may be used as follows. The device
attribute is an attribute, for example, a model, of
information-processing device 10. If the model of the subject
device or the candidate device is identical with a specific model,
CPU 420 may increase coefficient k so as to increase the
possibility of data exchange.
3-1-4. Environmental Factors
[0068] The environmental factor may be used as follows. The
environmental factor is a factor relating to environment of
communication system 1, for example, time or weather. If it is
night time or if it rains, CPU 420 may increase coefficient k so as
to increase the possibility of data exchange.
3-2. Second Modification
[0069] Parameters used by condition-setting unit 43 to set the data
exchange condition are not restricted to both temporal range Rt and
spatial range Rs. Condition-setting unit 43 may set only one of
temporal range Rt and spatial range Rs. For example, temporal range
Rt may be constant and spatial range Rs may be determined in
response to a parameter.
3-3. Third Modification
[0070] In a case that a parameter other than the spatial density;
for example, the user attribute, is used to determine the data
exchange condition, a timing when server 40 obtains the parameter,
is not restricted to a timing simultaneous with the location
history. For example, information-processing device 10 may transmit
the user attribute to server 40, at a different timing from that of
transmitting the location history. In this case, storage unit 42
stores a database recording the user attributes. Server 40 stores
the received user attribute in the database. When determining the
data exchange condition, condition-setting unit 43 refers to the
database.
3-4. Fourth Modification
[0071] In the data exchange process, provided data, which are
exchanged between the subject device and another device, are not
restricted to an example described in the embodiment. For example,
the provided data may be a data set used by a game program stored
in program medium 20 or a data set generated by the game
program.
3-5. Fifth Modification
[0072] The spatial density used to set the data exchange condition
is not restricted the example described in the embodiment. For
example, the spatial density may be calculated by a resource other
than server 40. In this case, server 40 obtains the spatial density
from the resource. Further, the spatial density is not restricted
to the spatial density of information-processing devices 10. For
example, a spatial density of the users of information-processing
devices 10, or a population density, may be used as the spatial
density.
3-6. Sixth Modification
[0073] The location information obtained by location
information-obtaining unit 11 is not restricted to the location
information calculated by GPS receiver 170.
[0074] For example, an identification of a base station that is
communicating with mobile communication module 140, may be used as
the location information. Alternatively, an identification of a
wireless LAN access point that is communicating with near field
communication module 160, may be used as the location
information.
3-7. Seventh Modification
[0075] The time information used to set the data exchange condition
need not be transmitted from information-processing device 10 to
server 40. In such a case, instead of information-processing device
10, server 40 includes a time-obtaining unit. For example,
information-processing device 10 periodically transmits the
location information to server 40. Server 40 adds to the received
location information the time information obtained by the
time-obtaining unit, and stores a set of the location information
and the time information as the location history in database
41.
3-8. Other Modifications
[0076] The functional configuration and the hardware configuration
of information-processing device 10 are not restricted to examples
shown in FIGS. 1 and 2. At least a part of the functional elements
shown in FIG. 1 and at least a part of the hardware elements may be
omitted.
[0077] The information-processing device 10 and the program medium
20 are not restricted to a game device and a game medium. The
storage unit 21 may store an application program other than a game
program; for example, an application program for editing a
document, an educational application program, or a business
application program. In another example, the information-processing
device 10 may be an information-processing device other than a game
device, for example, a personal computer, a mobile phone, a PDA
(Personal Digital Assistant), or a tablet device.
[0078] A program executed by a processor such as the CPU 101 may be
provided in a non-statutory computer readable storage medium; for
example, a magnetic medium (for example, magnetic tape, magnetic
disk (for example, a hard disk, a flexible disk, etc)), an optical
medium (for example, an optical disk such as CD (Compact Disk) or
DVD (Digital Versatile Disk)), a magnetic optical medium, a
semiconductor memory (for example, a flash memory). Further, the
program may be downloaded via a network; for example, the
Internet.
* * * * *