1. A computer-implemented method for coordinating distributed electronic discovery processing, comprising:
receiving electronic discovery data for each of a plurality of discovery processing sessions, the electronic discovery data comprising a plurality of electronic files, wherein each session is associated with a priority;
determining, with at least one processor, a plurality of discrete tasks for processing the electronic discovery data for each session of the plurality of discovery processing sessions;
determining, with at least one processor, a coordinated distribution of the plurality of discrete tasks to a plurality of available worker machines based at least partially on the priority of each session of the plurality of discovery processing sessions, wherein the plurality of available worker machines comprise a plurality of virtual machines hosted by at least one physical host computer;
assigning the plurality of discrete tasks to the plurality of available worker machines based on the coordinated distribution; and
recording, in at least one database, processed data resulting from a performance of each discrete task by a worker machine.
2. The method of claim 1, wherein the electronic discovery data comprises compressed email archive files andor compressed hard-drive images.
3. The method of claim 1, wherein the processed data is the result of at least one of the following: extracting at least a portion of a file from the electronic discovery data, extracting metadata from at least one file from the electronic discovery data, optically recognizing characters in at least one image, or any combination thereof.
4. The method of claim 1, wherein the processed data comprises at least one of the following: a file, an image rendition, metadata, or any combination thereof.
5. The method of claim 1, wherein assigning the plurality of discrete tasks to the plurality of available worker machines comprises assigning at least one discrete task to each available worker machine.
6. The method of claim 1, further comprising generating at least one user interface, the at least one user interface comprising selectable options configured to facilitate user selection of a data source and initiation of an electronic discovery processing session.
7. The method of claim 1, further comprising generating at least one user interface, the at least one user interface comprising selectable options configured to facilitate user input of the priority factor for each discovery processing session.
8. The method of claim 7, wherein the priority factor comprises at least one of the following: a low priority, a normal priority, a high priority, a configurable priority, or any combination thereof.
9. The method of claim 1, further comprising generating at least one user interface, the at least one user interface comprising selectable options configured to facilitate user input of a bias for the electronic discovery processing session, wherein the coordinated distribution of tasks is determined based at least partially on the bias.
10. The method of claim 1, further comprising:
determining that a file in the plurality of electronic files is duplicative of a previously processed file;
creating a new record for the file;
generating a clone of the previously processed file; and
storing the clone in the new record.
11. A system for distributed electronic discovery processing, comprising:
(a) at least one data storage device comprising electronic discovery data;
(b) a plurality of worker machines, wherein each worker machine comprises at least one of a virtual machine and a physical computer programmed or configured to:
(i) receive a discrete processing task to process data from the electronic discovery data;
(ii) perform the discrete processing task, resulting in processed data; and
(iii) record the processed data to at least one data storage device;
(c) an electronic discovery distribution engine executing on at least one computer and in communication with the at least one data storage device and the plurality of worker machines, the electronic discovery distribution engine configured to:
(i) determine a plurality of discrete processing tasks for processing the electronic discovery data; and
(ii) automatically coordinate a distribution of the plurality of discrete processing tasks to available worker machines of the plurality of worker machines.
12. The system of claim 11, wherein at least one discrete processing task is assigned to a single worker machine at a given time or during any given time period.
13. The system of claim 11, wherein each worker machine is further programmed or configured to:
(iv) transmit an indication that the at least one discrete processing task is completed, and
wherein the electronic discovery distribution engine is further programmed or configured to:
(iii) receive the indication from a worker machine; and
(iv) distribute a next task to the worker machine after receiving the indication.
14. The system of claim 11, wherein the electronic discovery data comprises compressed email archive files andor compressed hard-drive images, and wherein the compressed hard-drive images comprise multiple different file types.
15. The system of claim 11, wherein the plurality of discrete processing tasks comprise at least one of the following: extracting at least a portion of an electronic file from the electronic discovery data, extracting metadata from at least one file from the electronic discovery data, optically recognizing characters in at least one image, or any combination thereof.
16. The system of claim 11, wherein the plurality of worker machines comprise a plurality of virtual machines executing on at least one physical host computer.
17. The system of claim 11, further comprising at least one user interface comprising selectable options configured to facilitate user selection of a data source and initiation of an electronic discovery processing session.
18. The system of claim 17, wherein the at least one user interface further comprises at least one selectable option configured to facilitate user input of a priority factor for the electronic discovery processing session, and wherein the coordinated distribution of tasks is determined based at least partially on the priority factor.
19. The system of claim 17, wherein the at least one user interface further comprises at least one selectable option configured to facilitate user input of a bias for the electronic discovery processing session, wherein the coordinated distribution of tasks is based at least partially on an allocation of available worker machines, and wherein the allocation of available worker machines is based at least partially on the bias for the electronic discovery processing session.
20. The system of claim 19, wherein the allocation of available worker machines is based at least partially on biases for a plurality of electronic discovery sessions having a same priority.
21. A computer program product for coordinating distributed electronic discovery processing for a plurality of discovery processing sessions, comprising at least one non-transitory computer-readable medium including program instructions that, when executed by at least one processor, cause the at least one processor to:
receive electronic discovery data for each of a plurality of discovery processing sessions, the electronic discovery data comprising a plurality of electronic files, wherein each session is associated with a priority;
determine a plurality of discrete tasks for processing the electronic discovery data for each session of the plurality of discovery processing sessions;
determine a coordinated distribution of the plurality of discrete tasks to a plurality of available worker machines based at least partially on the priority of each session of the plurality of discovery processing sessions, wherein the plurality of available worker machines comprise a plurality of virtual machines hosted by at least one physical host computer;
assign the plurality of discrete tasks to the plurality of worker machines based on the coordinated distribution; and
record processed data resulting from a performance of each discrete task by a worker machine.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An information processing apparatus that is connected, via a network, to an image processing apparatus capable of displaying an operation screen, and a server having a function of outputting an operation screen in response to a request from an external apparatus, and is capable of displaying an operation screen, comprising:
an analysis unit configured to perform analysis of a first operation screen request transmitted from the image processing apparatus;
a determination unit configured to determine, according to a result of the analysis by said analysis unit, whether or not it is required to update an operation screen displayed on the information processing apparatus;
a generation unit configured to be operable when said determination unit determines that it is required to update the operation screen displayed on the information processing apparatus, to generate a second operation screen request for requesting an updated operation screen which is to be displayed on the information processing apparatus;
a transmission unit configured to transmit the second operation screen request generated by said generation unit; and
a transfer unit configured to transfer the first operation screen request from the image processing apparatus to the server.
2. The information processing apparatus according to claim 1, wherein the server is configured as a web server, and
wherein said analysis unit analyzes a header of a HTTP request received from the image processing apparatus as the first operation screen request, and determines an application software program use of which is requested by a user.
3. The information processing apparatus according to claim 1, wherein said analysis unit analyzes FORM data of a HTTP request received from the image processing apparatus as the first operation screen request, to thereby acquire information on a model and an operation status of the image processing apparatus.
4. The information processing apparatus according to claim 1, wherein said transmission unit sends the second operation screen request to the server.
5. The information processing apparatus according to claim 1, wherein said transmission unit sends the second operation screen request to a server functional section provided in the information processing apparatus.
6. A method of controlling an information processing apparatus that is connected, via a network, to an image processing apparatus capable of displaying an operation screen, and a server having a function of outputting an operation screen in response to a request from an external apparatus, and is capable of displaying an operation screen, comprising:
performing analysis of a first operation screen request transmitted from the image processing apparatus;
determining, according to a result of the analysis, whether or not it is required to update an operation screen displayed on the information processing apparatus;
generating, when it is determined that it is required to update the operation screen displayed on the information processing apparatus, a second operation screen request for requesting an updated operation screen which is to be displayed on the information processing apparatus;
transmitting the generated second operation screen request; and
transferring the first operation screen request from the image processing apparatus to the server.
7. A non-transitory computer-readable storage medium storing a computer-executable program for causing a computer to execute a method of controlling an information processing apparatus that is connected, via a network, to an image processing apparatus capable of displaying an operation screen, and a server having a function of outputting an operation screen in response to a request from an external apparatus, and is capable of displaying an operation screen,
wherein the method comprises:
performing analysis of a first operation screen request transmitted from the image processing apparatus;
determining, according to a result of the analysis, whether or not it is required to update an operation screen displayed on the information processing apparatus;
generating, when it is determined that it is required to update the operation screen displayed on the information processing apparatus, a second operation screen request for requesting an updated operation screen which is to be displayed on the information processing apparatus;
transmitting the generated second operation screen request; and
transferring the first operation screen request from the image processing apparatus to the server.