U.S. patent application number 15/587655 was filed with the patent office on 2017-08-17 for system and method for efficient software replication.
The applicant listed for this patent is AVAYA INC.. Invention is credited to Nishant Krishna.
Application Number | 20170235566 15/587655 |
Document ID | / |
Family ID | 50189338 |
Filed Date | 2017-08-17 |
United States Patent
Application |
20170235566 |
Kind Code |
A1 |
Krishna; Nishant |
August 17, 2017 |
SYSTEM AND METHOD FOR EFFICIENT SOFTWARE REPLICATION
Abstract
Systems and methods of efficient software replication are
provided. This is accomplished by a first communication device that
determines if a second communication device needs to have a
software upgrade. In response to determining that the second
communication device needs to have the software upgrade, the
software upgrade is downloaded onto the second communication
device. In response to downloading the software upgrade onto the
second communication device, the second communication device
determines if a third communication device needs to have the
software upgrade. In response to determining that the third
communication device needs to have the software upgrade, the second
communication device downloads the software upgrade to the third
communication device. This process can be repeated for any number
of communication devices or the process may be completed in
different orders.
Inventors: |
Krishna; Nishant; (Gaya,
IN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
AVAYA INC. |
Santa Clara |
CA |
US |
|
|
Family ID: |
50189338 |
Appl. No.: |
15/587655 |
Filed: |
May 5, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13599177 |
Aug 30, 2012 |
9658841 |
|
|
15587655 |
|
|
|
|
Current U.S.
Class: |
717/173 |
Current CPC
Class: |
G06F 11/1433 20130101;
G06F 8/65 20130101 |
International
Class: |
G06F 9/445 20060101
G06F009/445 |
Claims
1-19. (canceled)
20. A communication device comprising: a microprocessor; and a
computer readable medium, coupled with the microprocessor and
comprising microprocessor readable and executable instructions that
cause the microprocessor to execute: a device identification module
that identifies one or more network devices that meet a first set
of defined criteria and determines if a user is not using the
identified one or more network devices; a document searching module
that searches the identified one or more network devices for one or
more documents that meet a second set of defined criteria in
response to determining that the user is not using the identified
one or more network devices; and a document retrieving module that
retrieves the identified one or more documents; and a memory
configured to store the identified one or documents.
21. The communication device of claim 20, wherein the first set of
defined criteria comprises a specific date that the identified one
or more network devices were downloaded.
22. The communication device of claim 20, wherein the first set of
defined criteria comprises a specific time that the identified one
or more network devices were used by a specific user.
23. The communication device of claim 20, wherein the first set of
defined criteria comprises a physical location of the identified
one or more network devices.
24. The communication device of claim 20, wherein the first set of
defined criteria comprises a specific Internet Protocol (IP)
address of the one or more identified network devices.
25. The communication device of claim 20, wherein the identified
one or more network devices are identified based on a type of
network device.
26. The communication device of claim 20, wherein the second set of
defined criteria comprises an owner of a modification of the
identified one or more documents.
27. The communication device of claim 20, wherein the second set of
defined criteria comprises a date that the identified one or more
documents were modified.
28. The communication device of claim 20, wherein the second set of
defined criteria comprises a size of the identified one or more
documents.
29. The communication device of claim 20, wherein the second set of
defined criteria comprises a creation date of the identified one or
more documents.
30. A communication device comprising: identifying, by a
microprocessor, one or more network devices that meet a first set
of defined criteria; determining, by the microprocessor, if a user
is not using the identified one or more network devices; in
response to determining that the user is not using the identified
one or more network devices, searching, by the microprocessor, the
identified one or more network devices for one or more documents
that meet a second set of defined criteria; retrieving, by the
microprocessor, the identified one or more documents; and storing,
by the microprocessor, the identified one or documents.
31. The method of claim 30, wherein the first set of defined
criteria comprises a specific date that the identified one or more
network devices were downloaded.
32. The method of claim 30, wherein the first set of defined
criteria comprises a specific time that the identified one or more
network devices were used by a specific user.
33. The method of claim 30, wherein the first set of defined
criteria comprises a physical location of the identified one or
more network devices.
34. The method of claim 30, wherein the first set of defined
criteria comprises a specific Internet Protocol (IP) address of the
one or more identified network devices.
35. The method of claim 30, wherein the identified one or more
network devices are identified based on a type of network
device.
36. The method of claim 30, wherein the second set of defined
criteria comprises an owner of a modification of the identified one
or more documents.
37. The method of claim 30, wherein the second set of defined
criteria comprises a date that the identified one or more documents
were modified.
38. The method of claim 30, wherein the second set of defined
criteria comprises a size of the identified one or more
documents.
39. The method of claim 30, wherein the second set of defined
criteria comprises a creation date of the identified one or more
documents.
Description
CROSS REFERENCE TO RELATED APPLICATION
[0001] The present application is a divisional of U.S. patent
application Ser. No. 13/599,177, filed Aug. 30, 2012, entitled
"SYSTEM AND METHOD FOR EFFICIENT SOFTWARE REPLICATION", which is
incorporated herein by this reference in its entirety.
TECHNICAL FIELD
[0002] Systems and methods that relate to software download systems
and in particular to software download systems that replicate
software are provided.
BACKGROUND
[0003] Using current processes, it can be very time consuming and
inefficient for a company or manufacturing organization to create a
large number of communication devices that have the same software
and/or software configuration. Current processes typically download
software from a single communication device to another
communication device. Downloading a single communication device at
a time can be slow and time consuming or require additional
communication devices that are used for downloading the
software.
[0004] This process can be even more difficult in an enterprise
network where communication devices may be geographically
distributed between locations. In this environment, downloading
typically takes place from a centralized location. Like the above
process, each communication device is individually downloaded from
the central location. What is needed is a process that efficiently
utilizes the communication devices that have already been
downloaded.
SUMMARY
[0005] Systems and methods are provided to solve these and other
problems and disadvantages of the prior art. In an embodiment, a
first communication device determines if a second communication
device needs to have a software upgrade. In response to determining
that the second communication device needs to have the software
upgrade, the software upgrade is downloaded from the first
communication device to the second communication device.
[0006] In response to downloading the software upgrade onto the
second communication device, the second communication device
determines if a third communication device needs to have the
software upgrade. In response to determining that the third
communication device needs to have the software upgrade, the second
communication device downloads the software upgrade onto the third
communication device.
[0007] This process can be repeated for any number of communication
devices or the process may be completed in different orders. For
example if there are 4 communication devices, communication device
1 could download communication devices 1 and 3, and communication
device 2 could download communication device 4.
[0008] In an embodiment, the software upgrade comprises a version
of software upgrade and a version of upgrade patch software. A
version of software for the communication device and a version of
patch software for the communication device are determined. In
response to determining the version of software for the
communication device and the version of patch software for the
communication device, the version of software upgrade is compared
with the version of software for the communication device.
Likewise, the version of upgrade patch software is compared with
the version of patch software for the communication device. If the
version of the software or patch software is less than the
corresponding upgrade, the communication device is provided with
the corresponding upgrade.
[0009] In an embodiment, the version of software upgrade matches
the version of software for the communication device and the
version of upgrade patch software is newer than the version of
patch software for the communication device. The upgrade patch
software is downloaded and the version of software upgrade is not
downloaded.
[0010] In an embodiment, the version of software upgrade is newer
than the version of software for the communication device. A
licensing module determines if each communication device is
licensed to download the version of software upgrade. If a
communication device is determined to not be licensed, the software
upgrade is not downloaded to the device.
[0011] In an embodiment, it is determined if a user is using the
communication device to which the software upgrade is to be
downloaded. In response to determining that the user is using the
communication device, the download of the software upgrade is
delayed for a period of time.
[0012] In an embodiment, an identifier that indicates whether to
download the software upgrade to a communication device is
determined. The identifier can be at least one of an Internet
Protocol address, a Global Positioning Satellite location, a
network address, a physical distance from the communication device,
a wireless radio range of a communication device, a digital
certificate, an address range, a list of communication devices, a
list of Local Area Network addresses, a factory setting, and
communication device number.
[0013] In an embodiment, the system confirms if the download is
successful. If the download was not successful, the system attempts
to re-download the software upgrade.
[0014] In an embodiment, the downloading is only done once per
communication device. Alternatively, each communication device can
download a plurality of software upgrades.
[0015] In an embodiment a system comprises a robot, which includes
a movement mechanism, the movement mechanism is configured to
physically move the robot into a physical proximity with a
plurality of communication devices.
[0016] The robot includes a wireless interface; the wireless
interface is configured to detect a first communication device of
the plurality of communication devices. The robot includes a
replication module; the replication module determines if a first
communication device needs to have a software upgrade in response
to detecting the first communication device is in physical
proximity to the robot. The replication module is also configured
to download the software upgrade onto the first communication
device in response to determining that the first communication
device needs to have the software upgrade. The replication module
is configured to download the plurality of communication devices
each time one of the plurality of communication devices is detected
in the physical proximity of the robot.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] FIG. 1 is a block diagram of a first illustrative system for
replicating software.
[0018] FIG. 2 is a block diagram of a second illustrative system
for replicating software.
[0019] FIG. 3 is a block diagram of an illustrative system for
replicating software using a robot.
[0020] FIG. 4 is a flow diagram of a method for replicating
software.
[0021] FIG. 5 is an enhanced flow diagram of a method for
replicating software.
[0022] FIG. 6 is a flow diagram of a method for replicating
software.
[0023] FIG. 7 is a flow diagram of a method for verifying
replication of software.
[0024] FIG. 8 is a block diagram of a third illustrative system for
retrieving documents on a network.
DETAILED DESCRIPTION
[0025] FIG. 1 is a block diagram of a first illustrative system 100
for replicating software. The first illustrative system 100
comprises communication devices 101A-101C and network 110.
[0026] Communication devices 101A-101C can be any communication
device 101 that can communicate on network 110. For example,
communication device 101 can be a telephone, a Personal Digital
Assistant (PDA), a server, a router, a Personal Computer (PC), a
lap-top computer, a tablet device, a Private Branch Exchange (PBX),
a communication system, and/or the like. Although only three
communication devices 101A-101C are shown, the first illustrative
system may comprise any number of communication devices 101.
[0027] Communication device 101A comprises processor 102A, software
upgrade 103A, and replication module 104A. Processor 102 can be any
device that can process software such as a microprocessor, a
Digital Signaling Processor (DSP), a multi-core processor, a
computer, and/or the like. Software upgrade 103A can be any type of
software that can be downloaded onto communication device 101. For
example, software upgrade 103A can include software to upgrade an
operating system, software to patch an operating system, a software
application, a configuration file, a user profile, a document, a
spreadsheet, and/or the like.
[0028] Replication module 104 can be any hardware/software that can
replicate software upgrade 103 to another communication device 101.
Although replication module 104 is shown in communication devices
101B and 101C, communication devices 101B and 101C may not contain
replication module 104. In other embodiments, only a subset of
replication module 104 is included in communication devices 101B
and 101C. For example, replication module 104C may only contain a
download portion of replication module 104. In one embodiment, part
or all of replication module 104 may be downloaded onto a
communication device 101 to allow communication device 101 to
replicate software upgrade 103 to another communication device
101.
[0029] Communication devices 101B-101C further comprise software
105. Software 105 can be any software like described above with
software upgrade 103. Software 105 can be the same as software
upgrade 103. Software 105 can be a different version of software
upgrade 103. Software 105 can contain a patch version of software
that is different from a patch version of software in software
upgrade 103. Communication devices 101B-101C are shown to comprise
software 105. However, in an embodiment, a communication device
101B-101C does not contain software 105.
[0030] Network 110 can be any network that can send and receive
information, such as the Internet, a Wide Area Network (WAN), a
Local Area Network (LAN), the Public Switched Telephone Network
(PSTN), a packet switched network, a circuit switched network, a
cellular network, a combination of these, and the like. Network 120
can use a variety of protocols, such as Ethernet, Internet Protocol
(IP), Session Initiation Protocol (SIP), Integrated Services
Digital Network (ISDN), and the like.
[0031] Communication device 101A determines if communication device
101B needs to have software upgrade 103A. Communication device 101A
can determine that communication device 101B needs to have software
upgrade 103A in various ways. For example, communication device
101A can send a message to communication device 101B. Communication
device 101B can then send a response indicating that communication
device 101B needs software upgrade 103. Alternatively,
communication device 101B may periodically send out a message
indicating that communication device needs software upgrade 103. In
addition, communication device 101A can determine that
communication device 101B needs software upgrade 103A based on
different versions of software upgrade 103A, different versions of
patch software, dates of software upgrade 103, sizes of software
upgrade 103, and/or the like.
[0032] In response to determining that communication device 101B
needs software upgrade 103A, replication module 104A downloads
software upgrade 103A onto communication device 101B. When software
upgrade 103A is downloaded onto communication device 101B,
communication device 101B may replace software 105B with software
upgrade 103A. Alternatively, communication device 101B may keep
software 105B as a back-up version.
[0033] Software upgrade 103A, in addition to containing upgrade
software, can also include part or all of replication module 104A.
Alternatively, software upgrade 103A may only include replication
module 104A. For example, software upgrade 103A may be a new
version of replication module 104A.
[0034] In response to downloading software upgrade 103A onto
communication device 101B, communication device 101B determines if
communication device 101C needs to have software upgrade 103A. This
can be accomplished using the same processes described above for
the download between communication devices 101A and 101B. In
response to determining that communication device 101C needs to
have software upgrade 103A, communication device 101B downloads
software upgrade 103A to communication device 101C. This process
can be repeated for any number of additional communication devices
101. In one embodiment, once communication device 101 has
downloaded another communication device 101 that communication
device 101 will no longer download another communication device 101
with the same version of software upgrade 103. Alternatively, once
communication device 101 has downloaded another communication
device 101, communication device 101 can repeat the process for any
number of additional communication devices 101.
[0035] FIG. 2 is a block diagram of a second illustrative system
200 for replicating software. Second illustrative system 200
comprises communication devices 101A-101C and network 110. In FIG.
2, communication device 101A further comprises licensing module
206A and authentication module 207A. Software upgrade 103A also
comprises a version of software upgrade 220 and a version of
upgrade patch software 221. Typically a software upgrade 220 is a
completely new download or a significant download of the previously
software. A version of upgrade patch software typically is an
update that only modifies a small portion of the files that are in
a software load. Likewise, software 105B and 105C also comprise a
version of software 230 and a version of patch software 231 for
each device respectively.
[0036] Replication module 104A determines a version of software
230B and a version of patch software 231B for communication device
101B. Replication module 104A can determine the version of software
230B by querying communication device 101B, receiving a message
from communication device 101B, and/or the like. Replication module
104A compares the version of software upgrade 220 to the version of
software 230B for communication device 101B. Replication module
104A can also compare the version of upgrade patch software 221
with the version of patch software 231B for communication device
101B.
[0037] If the version of software upgrade 220 matches the version
of software 230 for communication device 101B and the version of
upgrade patch software 221 is newer than the version of patch
software 231B for communication device 101B, replication module
104A can download the version of upgrade patch software 221 to
communication device 101B.
[0038] If the version of software upgrade 220 is newer than the
version of software 230B for communication device 101B, licensing
module 206A determines if communication device 101B is licensed to
download the version of software upgrade 220. Licensing module 206
can determine if communication device 101B is licensed to download
the version of software upgrade 220 by working with authentication
module 207. For example, authentication module 207A can confirm
that communication device 101B is a valid communication device 101
for downloading based on credentials provided by communication
device 101. For example, the credentials may be a digital
certificate, a password, a license identifier, and/or the like.
[0039] If communication device 101B is licensed to download the
version of software upgrade 220, replication module 104A downloads
the version of software upgrade 220 to communication device 101B.
Otherwise, if communication device 101B is not licensed to download
the version of software upgrade 220, the version of software
upgrade 220 is not downloaded onto communication device 101B.
Licensing module 206A can also be downloaded as part of software
upgrade 103A. In addition to licensing module 206A, any associated
licenses/configuration information can also be downloaded to
communication device 101B as part of the replication process.
[0040] Replication module 104A, before downloading the version of
software upgrade 220 or the version of upgrade patch software 221,
can determine if a user is using communication device 101B. This
can be done in various ways such as communication device 101A
querying communication device 101B. Communication device 101B can
determine if a user is using communication device 101B in various
ways, such as detecting a login at communication device 101B,
identifying a user at communication device 101B (e.g., via a video
camera, audio detection, key presses, etc.), an event in the user's
calendar, an email, a posting on a blog site, and/or the like. If
it is determined that the user is using communication device 101B,
replication module 104A can delay downloading communication device
101B for a period of time. Delaying the download can be based on
various factors such as the calendar event, no longer detecting the
presence of the user, no longer detecting an action of the user, a
defined time period, no longer detecting movement of the user,
detecting a logout by the user, and/or the like.
[0041] Replication module 104 can also determine an identifier that
indicates whether to download the software to communication device
101. The identifier can be based on various attributes such as an
Internet Protocol (IP) address, a Global Positioning Satellite
(GPS) location, a network address, a physical distance from
communication device 101, a wireless radio range of communication
device 101, a digital certificate, an address range, a list of
communication devices, a list of Local Area Network addresses, a
factory setting, and communication device number. For example,
communication device 101A will only download communication devices
101 that are within a specific set of GPS coordinates or based on
communication device 101 having a specific IP address.
[0042] In the above processes, if the software download is not
successful, replication module 104A can attempt to re-download
software upgrade 103A. If this continues to fail, the process can
end. For example, if the attempt to re-download communication 101B
fails 3 times, the process will end.
[0043] FIG. 3 is a block diagram of an illustrative system 300 for
replicating software using robot 301. Illustrative system 300
includes robot 301 and communication devices 310A-310B. Robot 301
comprises processor 302, software upgrade 303 replication module
304, wireless interface 305, and movement mechanism 306.
[0044] Software upgrade 303 may also include version and patch
information such as described above. Replication module 304 can
include any hardware/software that can replicate software. Wireless
interface 305 can be any wireless interface that can communicate
with communication device 310A-310B. For example, wireless
interface 305 can comprise a cellular interface, a WiFi interface,
an 802.11 interface, a Bluetooth interface, an RFID detector, a
broadband wireless interface, an optical scanner and/or the like.
Although shown using wireless interface 305 and 314, illustrative
system 300 can use wired, optical, or other types of interfaces.
Movement mechanism 306 and be any mechanism that can move robot 301
such as a set of wheels, a track, a hydraulic system, a mechanical
apparatus, and/or the like.
[0045] Communication devices 310A-310B comprise processor 311,
software 312, download module 313, and wireless interface 314.
Software 312, like software 105 can comprise a software version and
patch version. Download module 313 can be any hardware/software
that can download software. Download module 313 can be replication
module 304. Wireless interface 314 can be any wireless interface
described above in regard to wireless interface 305. Although robot
301 is shown directly communicating with communication devices
310A-310B, a network, such as network 110 may be used to connect
robot 301 with communication devices 310A-310B.
[0046] Wireless interface 305 is configured to detect communication
devices 310A-310B. In response to detecting communication device
310A is in a physical proximity to robot 301, replication module
304 determines if communication device 310A needs to have a
software upgrade. Determining that communication device 310A is in
physical proximity to robot 301 can be accomplished in various
ways, such as detecting a radio frequency from communication device
101A, detecting communication device 310A via a video camera,
reading a bar code, and/or the like. Determining that communication
device 310A needs to have a software upgrade can be accomplished in
similar ways as described previously.
[0047] Replication module 304 is configured to download
communication devices 310A-310B each time one of the communication
devices 310A-301B is detected in the physical proximity of the
robot (that is if communication devices 310A-310B have not been
downloaded previously). In addition, the process of using a robot
301 can be implemented using previously described processes. For
example, the robotic system can use the previously described
processes of attempting to re-download, complying with licenses,
downloading based on license version and patch version, and/or the
like.
[0048] FIG. 4 is a flow diagram of a method for replicating
software. Illustratively, communication device 101, communication
device 310, robot 301, and the elements contained in each are
stored-program-controlled entities, such as a computer or
processor, which performs the method of FIGS. 4-6 and the processes
described herein by executing program instructions stored in a
non-transient computer readable storage medium, such as a memory or
disk. Although the methods described in FIGS. 4-6 are shown in a
specific order, one of skill in the art would recognize that the
steps in FIGS. 4-6 may be implemented in different orders and/or be
implemented in a multi-threaded environment. Moreover, various
steps may be omitted or added based on implementation
[0049] Communication device 101A determines 402 if communication
device 101B needs to have the software upgrade by sending a query
to communication device 101B. For example, communication device
101A can send out a broadcast message on network 110. Communication
device 101B responds 404 by sending a response indicating whether
communication device 101B needs to be upgraded. In addition,
communication device 101A can determine if communication device
101B needs have the software upgrade based on other factors such as
a physical proximity of communication devices 101A and 101B, a
number of hops between communication devices 101A and 101B, if
communication device 101A and communication device 101B are on the
same network or sub-network, based on a subnet mask, based on a MAC
address, and/or the like.
[0050] In response to determining that communication device 101B
needs the software upgrade, communication device 101A downloads 406
the software upgrade onto communication device 101B. In response to
downloading the software upgrade onto communication device 101B,
communication device 101B determines 408 if communication device
101C needs to have the software upgrade by sending a query to
communication device 101C. Communication device 101C responds 410
by sending a response indicating whether communication device 101C
needs to be upgraded. In response to determining that communication
device 101C needs to have the software upgrade, communication
device 101B downloads 412 the software upgrade to communication
device 101C. This process can be repeated for any number of
additional communication devices 101.
[0051] FIG. 5 is an enhanced flow diagram of a method for
replicating software. The process described in FIG. 5 can be used
for downloading software upgrade 103 onto a communication device
101. The process starts in step 500. Communication device 101A
determines 502 a version of upgrade software and a version of
upgrade patch software. Communication device 101A determines 504 a
version of software and a version of patch software for
communication device 101B.
[0052] In step 506, communication device 101A compares the version
of upgrade software to version of software for communication device
101B. If the versions do not match in step 506 (i.e., the version
of upgrade software is newer), communication device 101A determines
508 if communication device 101B is licensed to download the
version of upgrade software. If communication device 101B is not
licensed to download the version of upgrade software in step 508,
the process is done 522.
[0053] Otherwise, if communication device 101B is licensed to
download the version of upgrade software in step 508, communication
device 101A determines 510 if a user is using communication device
101B. If the user is using communication device 101B in step 510,
the process waits for a period of time until the user is no longer
using communication device 101B. Instead of waiting for a period of
time, communication device 101B can alternatively go into a quiet
mode after giving the user a warning. Communication device 101B can
give the user a final warning before proceeding with the upgrade.
Each of these can be configurable. Otherwise, if the user is not
using communication device 101B in step 510, communication device
101A downloads 512 the version of software upgrade and any
necessary patches.
[0054] Communication device 101A confirms 520 if the download was
successful. If the download was successful in step 520, the process
is done 522. If the download was not successful in step 520, the
process goes to step 512 (if that was the previous download step).
If the download fails for a defined number of times, the process
can be done 522.
[0055] If the versions match in step 506, communication device 101A
determines 514 if the version of upgrade patch software is newer
that the patch software for communication device 101B. If the
version of upgrade patch software is not newer in step 514, the
process is done 522. Otherwise, if the version of upgrade patch
software is newer in step 514, communication device 101A determines
516 if the user is using communication device 101B. If the user is
using communication device 101B in step 516, the process waits for
a period of time until the user is no longer using communication
device 101B. Instead of waiting for a period of time, communication
device 101B can alternatively go into a quiet mode after giving the
user a warning. Communication device 101B can give the user a final
warning before proceeding with downloading the patch. Each of these
can be configurable.
[0056] Otherwise, if the user is not using communication device
101B in step 516, communication device 101A downloads 518 the
upgrade patch software onto communication device 101B. If the
upgrade patch software was downloaded successfully in step 520, the
process is done 522. Otherwise, if the upgrade patch software was
not downloaded successfully in step 520, the process goes to step
518.
[0057] FIG. 6 is a flow diagram of a method for replicating
software. The process starts in step 600. Robot 301 is moved 602
into physical proximity to communication device 310A. Robot 301
detects 604 if communication device 310A-310B is in physical
proximity to robot 301 in step 604. If none of communication
devices 310A-310B are in physical proximity (or cannot be
detected), the process repeats step 604.
[0058] Otherwise, if robot 301 detects communication device 310A
(or 310B) in physical proximity to robot 301 in step 604, robot 301
determines if communication device 310A needs a software upgrade.
If communication device 310A does not need a software upgrade, the
process goes to step 610. Otherwise, if communication device 310A
needs a software upgrade in step 606, robot 301 downloads 608 the
software upgrade onto the communication device 310A and the process
goes to step 310.
[0059] Robot 301 in step 610 determines if there are more
communication devices 310 that need to be downloaded. If there are
additional communication devices 310 that need to be downloaded in
step 610, the process goes to step 602. Otherwise, the process is
done 612.
[0060] Robot 301 can move in relation to communication devices 310
based on various information. For example, robot 301 can use a
predefined map of where communication devices 310 are located on a
factory floor. Alternatively, robot 301 may be stationary and
communication devices 310 may be moved to robot 310 (i.e., via an
assembly line).
[0061] FIG. 7 is a flow diagram of a method for verifying
replication of software. FIG. 7 is an expanded view of an exemplary
embodiment for any of steps 512, 518, or 608. After detecting that
communication device 101B that the user in not using communication
device 101B in step 510 or 516 (or from step 604 yes branch), the
software upgrade/patch is downloaded 702 onto communication device
101B. If the download is successful in step 704, the process goes
to step 520 (or step 610).
[0062] Otherwise, if the download is not successful in step 704,
the process determines in step 706 if the software upgrade/patch
should be downloaded again. If the software upgrade/patch is to be
downloaded again, the process goes to step 702. In step 706, the
number of times and reasons why to download software upgrade/patch
can be accomplished based on various reasons, such as how the
download failed, a defined number of tries, a quality of service in
a network, a network status, a network failure, and/or the
like.
[0063] Otherwise, if it is determined in step 706 to not try again,
communication device 101B backs the software to the previous
version and patch. This can be accomplished by keeping the previous
copy until it is determined that the download was successful. The
process then goes to step 520 (or step 610).
[0064] FIG. 8 is a block diagram of a third illustrative system 800
for retrieving documents or other information (e.g., software,
updates, tools, accessories) on a network. The third illustrative
system 800 comprises communication device 801, network 810, and
network devices 820A-820N. Communication device 801 can be any
communication device 801 that can communicate on network 810. For
example, communication device 801 can be a server, a telephone, a
robot, a Personal Digital Assistant (PDA), a server, a router, a
Personal Computer (PC), a lap-top computer, a tablet device, a
Private Branch Exchange (PBX), a communication system, and/or the
like.
[0065] Communication device 801 comprises processor 802, device
identification module 803, document searching module 804, document
retrieving module 805, and memory 806. In another embodiment,
document searching module 804 can search for other information,
such as software, updates, tools, accessories; and document
retrieving module 805 can retrieve other information, such as
software, updates, tools, and accessories. Processor 802 can be any
device that can process software such as a microprocessor, a
Digital Signaling Processor (DSP), a multi-core processor, a
computer, and/or the like. Device identification module 803 can be
any hardware/software that can identify a network device 820.
Document searching module 804 can be any hardware/software that can
identify a document or other information, such as software,
updates, tools, and accessories, on a network device 820. Document
retrieving module 805 can be any hardware/software that can
retrieve documents or other information, such as software, updates,
tools, and accessories, from a network device 820. Memory 806 can
be any memory that can store documents, such as a read write
memory, a storage disk, a flash memory, a memory stick, and the
like.
[0066] Network 810 can be any network that can send and receive
information, such as the Internet, a Wide Area Network (WAN), a
Local Area Network (LAN), the Public Switched Telephone Network
(PSTN), a packet switched network, a circuit switched network, a
cellular network, a combination of these, and the like. Network 120
can use a variety of protocols, such as Ethernet, Internet Protocol
(IP), Session Initiation Protocol (SIP), Integrated Services
Digital Network (ISDN), and the like.
[0067] Network device 820 can be any device that can communicate on
network 810. For example, network device 820 can be a telephone, a
Personal Digital Assistant (PDA), a server, a router, a Personal
Computer (PC), a lap-top computer, a tablet device, a Private
Branch Exchange (PBX), a communication system, and/or the like.
Although only three network devices 820A-820N are shown, the first
illustrative system may comprise any number of network devices
820.
[0068] The third illustrative system 800 can be used to search
network 810 for various documents or other information or other
information, such as software, updates, tools, and accessories, and
devices that meet defined criteria. For example, in support of
litigation, communication device 801 can be used to search network
devices 801A-801N for various documents that meet specific criteria
involved with the litigation.
[0069] Device identification module 803 is configured to identify
one or more network devices 820 that meet a first set of defined
criteria. For example, the first set of defined criteria can be
based on specific users of network devices 820A-820N, specific
Internet Protocol (IP) addresses, specific dates that network
devices 820A-820N were downloaded, specific times that network
devices 820A-820N were used by a specific user, a physical location
of network devices 820A-820N, a type of network device, and the
like.
[0070] Device identification module 803 determines if a user is
using the identified one or more network devices 820. If the user
is not using the one or more identified network devices, document
searching module 804 searches the identified one or more network
devices 820 for one or more documents or other information that
meet a second set of defined criteria. A document can be anything
that stores a group of information, such as a file, an email, a
spreadsheet, a text message, a recorded message, a recorded video
communication, and/or the like. The second set of defined criteria
can be any criteria that can identify a document or other
information. For example, the second set of defined criteria can be
based on a document date, a document size, a document type, a date
a document was created, a date a document was modified, an owner of
a document, an owner of a modification to the document, and/or the
like.
[0071] Document retrieving module 805 retrieves the one or more
identified documents on network devices 820A-820N. The retrieved
documents are stored in memory 806. A user can then view the stored
documents.
[0072] Of course, various changes and modifications to the
illustrative embodiment described above will be apparent to those
skilled in the art. These changes and modifications can be made
without departing from the spirit and the scope of the system and
method and without diminishing its attendant advantages. The
following claims specify the scope of the invention. Those skilled
in the art will appreciate that the features described above can be
combined in various ways to form multiple variations of the
invention. As a result, the invention is not limited to the
specific embodiments described above, but only by the following
claims and their equivalents.
* * * * *