Abstract:
A information retrieving method of realizing the improvement of retrieval performance without conducting fine-grain processing and allowing a parallelizing operation for sequential retrieval engines to be conducted easily. Accordingly, the information retrieving method according to this invention is made to connect retrieving servers in parallel with respect to a retrieval managing server through the use of a parallel framework which makes the retrieving servers conduct parallel processing by integrating the functions of the retrieving servers in a manner of directly using the functions thereof without changing. The data to be retrieved is distributed or substantially equally to the retrieving servers, while the retrieval requests from clients are successively broadcasted to the retrieving servers without waiting for the retrieval results from the retrieving servers. This invention can be effectively applied for fetching necessary information from a database retaining various kinds of information.

Description:
BACKGROUND OF THE INVENTION 
     1) Field of the Invention 
     The present invention relates to an information retrieving method, information retrieving system and retrieval managing unit for this system which are for retrieving or searching and fetching necessary information from a database retaining various kinds of information. 
     2) Description of the Related Art 
     Recently, the quantity of documents converted into electronic form has rapidly been increasing with the progress of computer networks such as the Internet and the intranet. Accordingly, a service based upon an information retrieving system has developed to derive necessary information from these documents. 
     For instance, a system shown in FIG. 8 has been known as one of prior information retrieving systems. This information retrieving system shown in FIG. 8, designated generally at numeral  100 , is made up of a retrieval managing server  101 , a plurality of ( 4  in FIG. 8) retrieving servers  102  and a database  103 . 
     The retrieval managing server  101  is for managing a retrieving operation in the plurality of retrieving servers  102 , and in response to a retrieval request from a client (not shown), gives an instruction thereto for retrieval from the database  103 . Each of the retrieving servers  102  is constructed to have a sequential or serial retrieval engine (not shown), and is made to conduct the retrieval from the database  103  in accordance with the instruction from the retrieval managing server  101 , before forwarding or returning the retrieval result to the retrieval managing server  101 . In the actual arrangement, the database  103  is held in a storage unit such as a disk unit. 
     In the information retrieving system  100  thus arranged, for the retrieval, the plurality of retrieving servers  102  gain access to the database  103  existing in one large area in parallel relation to each other (in a simultaneous access way). Usually, as compared with an operating speed of a CPU of a processor or a memory constituting each of the retrieving servers  102 , the operating speed of the storage unit retaining the database  103  is considerably lower. For this reason, in the case that the plurality of retrieving servers  102  conduct the retrieval from one database  103  as mentioned above, each of the retrieving servers  102  frequently goes into a wait condition for the status of the storage unit, which results in lowering the retrieval efficiency. 
     Therefore, for eliminating this problem, there has hitherto been proposed an information retrieving system  200  shown in FIG.  9 . This information retrieving system  200  is, as well as the above-described information retrieving system  100 , composed of a retrieval managing server  201  and a plurality of ( 4  in FIG. 9) retrieving servers  202 A to  202 D. In addition, in this information retrieving system  200 , the database undergoing the retrieval is divided into four partial aggregations corresponding to the number of retrieving servers  202 A to  202 D, with the four sections being coupled as databases  203 A to  203 D with the retrieving servers  202 A to  202 D, respectively. 
     In this case, the retrieval managing server  201  is for managing the retrieval operations in the retrieving servers  202 A to  202 D, and in response to a retrieval request from a client (not shown), gives an instruction to each of the retrieving servers  202 A to  202 D for the retrieval from the corresponding one of the databases  203 A to  203 D. In addition, the retrieving servers  202 A to  202 D independently accomplish the retrieval from the divided databases  203 A to  203 D in accordance with the instruction from the retrieval managing server  201 , respectively. In the actual arrangement, the databases  203 A to  203 D are held in a storage unit such as a disk unit. 
     With this arrangement, in this information retrieving system  200 , the plurality of retrieving servers  202 A to  202 D conduct the retrieval from the divided databases  203 A to  203 D in an independent/parallel manner, respectively, which reduces the occurrence of the storage unit wait condition so that the retrieval efficiency is improvable. 
     Meanwhile, in recent years, the need for the improvement of the information retrieving performance has increasingly been occurring with the enlargement of the above-mentioned networks, and therefore, it is strongly desired that an information retrieving system which can meet the need for the improvement of the information retrieval performance appears successfully. 
     The aforesaid information retrieving system  200  can enhance the retrieval performance by conducting the processing called fine-grain processing. 
     Like the information retrieving system  200 , in the case that the parallel processing is done through the use of a plurality of retrieving servers (processors)  202 A to  202 D, for enhancing the processing performance, it is preferable to equalize the load balances among the plurality of retrieving servers  202 A to  202 D. That is, the condition that all the retrieving servers  202 A to  202 D always takes charge of the same quantity of retrieval processing contributes to the highest retrieval efficiency. However, usually, there is almost no case that the quantity of retrieval processing is equally distributed to the retrieving servers  202 A to  202 D. 
     Accordingly, in a manner of conducting the fine-grain processing to more finely set the unit of the retrieval processing by the retrieving servers  202 A to  202 D, the load balances are equalized among the retrieving servers  202 A to  202 D, so that the retrieval performance is improvable. 
     More specifically, when receiving a retrieval request from a client, the retrieval managing server  201  finely divides, in a predetermined unit, the data to be retrieved (which will be referred hereinafter to as retrieval data) within each of the databases  203 A to  203 D respectively coupled with the retrieving servers  202 A to  202 D, and successively allocates non-processed retrieval data to the retrieving servers  202 A to  202 D which complete the retrieval processing of the retrieval data in the predetermined unit. Whereupon, the load balances among the retrieving servers  202 A to  202 D are made equal, thereby sharply heightening the retrieval efficiency. 
     However, the above-mentioned fine-grain processing must require the communications among the retrieving servers  202 A to  202 D as indicated by two-dot chain lines in FIG. 9 because there frequently occurs a case that the retrieving server (processor) the retrieval data belongs to differs from the retrieving server (processor) which conducts the retrieval processing of that retrieval data, thus causing a large amount of overhead. 
     In addition, if conducting the fine-grain processing, the retrieval managing server  201  is required to always grasp the internal processing status of a sequential retrieval engine body constituting each of the retrieving servers  202 A to  202 D which form the base of the information retrieving system  200 . Thus, difficulty is experienced to directly use the sequential retrieval engines without modifying or changing them, that is, the internal arrangement of each of the sequential retrieval engines needs to be modified in parallelizing the sequential retrieval engines. 
     Accordingly, for constructing an information retrieving system, a detailed knowledge about the sequential retrieval engine body becomes necessary and a large number of steps must be performed for the sequential retrieval engine parallelizing processing and the fine-grain processing, so that it takes very much time to develop the information retrieving system. 
     Moreover, for this reason, even if a sequential retrieval engine is newly developed as the base of an information retrieving system, difficulty is encountered to directly or immediately introduce the new sequential retrieval engine into the information retrieving system, with the result that the information retrieving system can not catch up with the improvement of the performance of the sequential retrieval engine. 
     SUMMARY OF THE INVENTION 
     The present invention has been developed with a view to eliminating these problems, and it is therefore an object of this invention to provide an information retrieving method, information retrieving system and retrieval managing unit for the same system which are capable of realizing the improvement of the retrieval performance without conducting the fine-grain processing, and further, which is capable of simplifying the parallelizing operation on or for sequential retrieval engines to certainly meet the requirement for the improvement of the retrieval performance for a short period of developing time. 
     For this purpose, in accordance with the present invention, there is provided an information retrieving method of, when receiving a retrieval request from a client, controlling an operation of each of a plurality of retrieving servers through the use of a retrieval managing server to accomplish retrieval to (in accordance with) the retrieval request therefrom, wherein the plurality of retrieving servers are connected in parallel with respect to the retrieval managing server through the use of a parallel framework which makes the plurality of retrieving servers conduct parallel processing by integrating functions of the retrieving servers in a manner of directly utilizing the functions thereof without changing, and data to be retrieved is equally or substantially equally distributed to the plurality of retrieving servers to be put therein while retrieval requests from clients are successively broadcasted to the plurality of retrieving servers through the use of the parallel framework without waiting for the retrieval results from the plurality of retrieving servers. 
     In this case, it is also appropriate that the retrieval managing server constitutes a portion of the parallel framework, and broadcasts the retrieval requests from the clients in sequence to the plurality of retrieving servers through the use of a multithread feature or facility. In addition, it is also acceptable to successively broadcast the retrieval requests from the clients to the plurality of retrieving servers according to an asynchronous communication method. 
     Furthermore, an information retrieving system according to this invention comprises a plurality of retrieving servers for conducting retrieval processing and a retrieval managing server for receiving a retrieval request from a client and for controlling a retrieval operation of each of the plurality of retrieving servers, and further, includes a parallel framework which makes the plurality of retrieving servers conduct parallel processing by integrating functions of the retrieving servers in a manner of directly utilizing the functions thereof without changing, and which connects the plurality of retrieving servers in parallel with respect to the retrieval managing server, with data to be retrieved being equally or substantially equally distributed to the plurality of retrieving servers to be put therein, the parallel framework being equipped with a retrieval request outputting feature which successively broadcasts the retrieval requests from the clients to the plurality of retrieving servers without waiting for the retrieval results from the plurality of retrieving servers. 
     Still further, a retrieval managing unit for an information retrieving system according to this invention, which, when receiving a retrieval request from a client, controls an operation of each of a plurality of retrieving servers to make each of the plurality of retrieving servers conduct a retrieval operation in answer to the retrieval request therefrom, uses a parallel framework which makes the plurality of retrieving servers conduct parallel processing by integrating functions of the retrieving servers in a manner of directly utilizing the functions thereof without changing, with data to be retrieved being equally or substantially equally distributed to the plurality of retrieving servers to be put therein, the parallel framework establishing parallel connections among the plurality of retrieving servers, and the parallel framework being equipped with a retrieval request outputting feature for successively broadcasting the retrieval requests from the clients to the plurality of retrieving servers without waiting for the retrieval results from the plurality of retrieving servers. 
     In the information retrieving system and retrieval managing unit mentioned above, it is also appropriate that the retrieval request outputting feature is constructed with a multithread feature comprising a plurality of threads, and each of the retrieval requests from clients are allocated to one of the threads, and the thread broadcasts the retrieval request to the plurality of retrieving servers, and the thread, conducts processing of the retrieval result sent from the plurality of retrieving servers in answer to the retrieval request. 
     Moreover, in the above-mentioned information retrieving system and retrieval managing unit, it is also possible that the retrieval request outputting feature is constructed with an asynchronous communication facility for making communications with the plurality of retrieving servers in an asynchronous condition, and this asynchronous communication feature asynchronously broadcasts the retrieval requests from the clients in sequence to the plurality of retrieving servers and asynchronously receives the retrieval results coming from the plurality of retrieving servers in conjunction with the retrieval request. 
     Furthermore, in the above-mentioned information retrieving system, it is also acceptable that each of the retrieving server sides is provided with a retrieval result retaining section for preserving the retrieval result obtained within each of the retrieving servers in accordance with a retrieval request from the retrieval managing server, or that the retrieval managing server side is equipped with an aggregated result retaining section for preserving a result of aggregating or tabulating processing done on the basis of the retrieval results from the plurality of retrieving servers. An aggregated result retaining section similar thereto can also be provided in the above-mentioned retrieval managing unit. 
     Still further, in the above-mentioned information retrieving system, it is also acceptable that the retrieval managing server and at least one of the plurality of retrieving servers are constructed as the same processing unit. 
     In the information retrieving method, information retrieving system and retrieval managing unit mentioned above, through the use of the parallel framework, in addition to parallelizing the plurality of retrieving servers without modifying the respective retrieving servers (sequential retrieval engines), it is possible to easily incorporate a new retrieving server into the system without altering it. Moreover, along with parallelizing data in a manner of equally or substantially equally scattering or distributing the data undergoing the retrieval into the respective retrieving servers, by employing a way to parallelize control to successively broadcast the retrieval requests from the retrieval managing server to the respective retrieving servers, the enhancement of the operational efficiency of each of the retrieving servers is possible. 
     What&#39;s more, in the aforesaid information retrieving system, since the result of the retrieval performed within each of the retrieving servers in accordance with the retrieval request from the retrieval managing server is preserved in the retrieval result retaining section on each retrieving server side while the result of the aggregating processing conducted on the basis of the retrieval results is held in the aggregated result retaining section on the retrieval managing server side (retrieval managing unit), not only the useless communications between the retrieval managing server and the respective retrieving servers becomes unnecessary, but also the need for the preservation and management of the retrieval result forming a huge amount of data on the retrieval managing server side (retrieval managing unit) is eliminated. 
     Thus, the information retrieving method, information retrieving system and retrieval managing unit for the system according to this invention can offer the following effects and advantages. 
     (1) The use of the parallel framework extremely simplifies the parallelizing work of the sequential retrieval engines respectively contained in the retrieving servers, which allows answering the request for the enhancement of the retrieval performance within a short period of developing time. 
     (2) The simplification of the parallelizing work can sharply reduce the working quantity to be required when parallelized, and can realize the parallelizing operation or parallelized condition (which will sometimes be referred hereinafter to as parallelization) on the retrieving servers at a low development cost, so that a sequential retrieval engine developed by spending a lot of money can properly be incorporated into the system, and the parallelization of the retrieving servers becomes easily possible even in a distributed memory type parallel computer, with the result that a high scalability is realized and a necessary retrieval ability is certainly attained. 
     (3) Along with the data parallelization to equally or substantially equally distribute the retrieval data (data undergoing retrieval) to the respective retrieving servers, by employing the control parallelization to successively broadcast the retrieval requests from the retrieval managing server to the respective retrieving servers, the operational efficiency of each of the retrieving servers can improve, and therefore, a higher throughput performance is obtained and the considerable enhancement of the retrieval performance becomes feasible without conducting the fine-grain processing. 
     (4) The employment of the parallel framework allows the retrieval result or the aggregated result to be preserved in each of the retrieving servers or the retrieval managing server in a high independent condition, which can eliminate the need for the useless communications between the retrieval managing server and each of the retrieving servers, and which can eliminate the need for the preservation and management of a huge amount of retrieval result on the retrieval managing server side. Particularly, because the aggregated result made by the sort processing or the like is retained on the retrieval managing server side (the retrieval managing unit), there is no need to conduct the heavy processing such as the sort processing many times, thus further improving the performance of the information retrieving system. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing the whole arrangement of an information retrieving system according to an embodiment of the present invention; 
     FIG. 2 is a block diagram showing a detailed arrangement of the information retrieving system according to this embodiment; 
     FIG. 3 is a block diagram showing a detailed arrangement of a master (a retrieval managing server, a retrieval managing unit for an information retrieving system) in the information retrieving system according to this embodiment; 
     FIG. 4 is a block diagram useful for explaining an operation of the master in the information retrieving system according to this embodiment; 
     FIGS. 5A and 5B are illustrations available for describing an operation of the information retrieving system according to this embodiment; 
     FIGS. 6 and 7 are illustrations available for describing an operation of the information retrieving system according to this embodiment; 
     FIG. 8 is a block diagram showing the whole arrangement of a prior information retrieving system; and 
     FIG. 9 is a block diagram showing the whole arrangement of another prior information retrieving system. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     An embodiment of the present invention will be described hereinbelow with reference to the drawings. 
     FIGS. 1 to  3  are illustrations of an arrangement of an information retrieving system according to an embodiment of this invention. Of these drawings, FIG. 1 is a block diagram showing the whole system arrangement, FIG. 2 is a block diagram showing a detailed system arrangement, and FIG. 3 is a block diagram showing a detailed arrangement of a master (a retrieval managing server, a retrieval managing unit for the system) employed for the system. 
     As shown in FIG. 1, the information retrieving system according to this embodiment, generally designated at numeral  1 , comprises a master  10 , a plurality of ( 4  in this embodiment) slaves  20 A to  20 D, and a network  30 . 
     The master  10  serves as a retrieval managing server (a retrieval managing unit for an information retrieving system) to receive a retrieval request from a client  50  (see FIG. 2) such as a CGI (Common Gateway Interface) for controlling a retrieval operation of each of the slaves  20 A to  20 D, and is also called master server or search manager. Its detailed arrangement will be described hereinafter with reference to FIGS. 2 and 3. 
     Furthermore, the master  10  has a function to conduct aggregating or tabulating processing such as sorting on the basis of the retrieval results from the slaves  20 A to  20 D, and an external storage unit (aggregated result retaining section)  11  is coupled with the master  10  to preserve the aggregated result (the entity of the retained aggregation). That is, the aggregated result falls under control on the master  10  side. 
     The slaves (retrieving servers)  20 A to  20 D contain sequential retrieval engines  20   a  to  20   d  (see FIG.  2 ), respectively, and independently take charge of the actual retrieval processing on databases  21 A to  21 D in accordance with an instruction (retrieval request) from the master  10 , and forward the retrieval results to the master  10 . These slaves  20 A to  20 D are also called search servers. 
     Each of the sequential retrieval engines  20   a  to  20   d  has a memory  22  serving as a retrieval result retaining section to preserve the retrieval result accomplished in each of the slaves  20 A to  20 D in accordance with the retrieval request from the master  10 , and the entity of the retrieval result preservation aggregation comes under the management on the slaves  20 A to  20 D side. 
     Moreover, in the information retrieving system  1  according to this embodiment, the retrieval data (a group of documents) is equally or substantially equally divided into four partial aggregations corresponding to the number of slaves  20 A to  20 D, which in turn, are scatteringly located with respect to (or distributed to) the slaves  20 A to  20 D, respectively. Incidentally, in fact, each of the databases  21 A to  21 D is constructed as being a storage unit such as a disk unit. 
     A network  30  is interposed between the master  10  and the slaves  20 A to  20 D to allow the mutual communications between the master  10  and the slaves  20 A to  20 D. The network  30  is not shown in the illustration of FIG.  2 . 
     Furthermore, in the information retrieving system  1  according to this embodiment, the plurality of slaves  20 A to  20 D (sequential retrieval engines  20   a  to  20   d ) are connected through the parallel framework  40  in parallel with respect to the master  10 . This parallel framework  40  is software or a feature to integrate the functions of the engines  20   a  to  20   d  in a manner of directly utilizing them with no modification or alteration, and conceptually, as shown in FIG. 1, it is constructed to include the master  10 , the network  30  and a portion of the slaves  20 A to  20 D. 
     A more detailed description will be made hereinbelow of the parallel framework  40 . 
     In many server applications based upon a client-server model, in answer to each of large quantities of processing requests occurring from clients, a server returns the processing result to the client. On the other hand, in an application dealing with a large volume of data, there has generally been known a way in which a plurality of processors divisionally take charge of the object or candidate data to gain a response speed, or a way in which, contrary to this, a plurality of processors share the object data to achieve a processing throughput. 
     The parallel framework signifies a module produced such that a for-client section (1), for-processing-engine section (2) and parallel control section (3), which will be described herein later, are combined to make processing engines (the sequential retrieval engines  20   a  to  20   d ), originally designed to conduct sequential operations, accomplish parallel processing as a whole without greatly modifying the processing engines. 
     The for-client section (1) receives a processing request from a client (see numeral  50  in FIG. 2) and returns the processing result to that client, while the for-processing-engine section (2) is for making the processing engines (sequential retrieval engines  20   a  to  20   d ) fulfill the processing request. 
     That is, in the parallel framework, the basic operation of the server application that receives a processing request from a client and returns the results of the processing done in the processing engines to the client is divided into two which in turn, are accomplished in the for-client section (1) and the for-processing-engine section (2). 
     Furthermore, the parallel control section (3) provided between the for-client section (1) and the for-processing-engine section (2) distributes each processing request to a plurality of processing engines operating in a plurality of processors [slaves (retrieving servers)  20 A to  20 D] in a processing unit, and collects the processing results therefrom. 
     In the embodiment of this invention, the extraction of two kinds of parallel configurations or characteristics, that is, the employment of the data parallelization and the control parallelization, realizes the parallel framework  40  whereby a high performance is achievable. 
     The parallel framework  40  in this embodiment comprises the master  10  taking charge of the reception and distribution of a processing request from the client  50  and the slaves (retrieving servers)  20 A to  20 D causing the processing by the sequential retrieval engines  20   a  to  20   d , and in this case, the master  10  functions as the above-mentioned for-client section (1) and parallel control section (3), while each of the slaves  20 A to  20 D serves as the for-processing-engine section (2). 
     A brief description will be given hereinbelow of one example of realization of the foregoing parallel framework. In this example, the parallel framework  40  employs a construction in which a connection type communication line is used for the client-server communications and threads respectively corresponding to the clients are produced in the master  10  so that the threads and the clients assume the one-by-one relation. 
     The for-client section (1) establishes the client-server connection in response to a connection request from a client, and at the same time, produces threads (see numerals  14 A to  14 C in FIG. 3) corresponding thereto. Each of the threads receives a processing request from the client through the connection therebetween, and writes that processing request as a processing unit in a processing request cue (see numeral  16  in FIG.  3 ), and informs the parallel control section (3) of the fact of the arrival of a new request. After the completion of the processing to the request written in the processing request cue, each of the threads receives the notice about that completion from the parallel control section (3) and communicates the processing result to the client, and subsequently, deletes the corresponding request from processing request cue. 
     The parallel control section (3) transfers a new request to the slaves (see numerals  20 A to  20 D in FIG. 2) needed for the processing of the new request, and at this time, adds a tag in units of request. In addition, the parallel control section (3) transfers the retrieval processing result each of the slaves accomplishes to the master, and finds the threads needing that result by reference to the aforesaid tag, and further, gives that result to the corresponding thread in the for-client section (1). 
     Each of the processing engines (sequential retrieval engines; see numerals  20   a  to  20   d  in FIG. 2) in the slaves conducts processing one by one with respect to the processing requests successively coming from the master, and returns the processing result with a tag to the parallel control section (3). The for-processing-engine section (2) makes each of the processing engines conduct the aforesaid processing. Incidentally, it is also possible that the processing engines (2) are made to operate sequentially. 
     In this embodiment, the master  10  has a retrieval request outputting feature [equivalent to the aforesaid parallel control section (3)] which successively broadcasts a retrieval request from each of clients to the slaves  20 A to  20 D without waiting for the retrieval results from the slaves  20 A to  20 D. Particularly, the master  10  in this embodiment is, as shown in FIGS. 2 and 3, constructed as a multithread feature comprising a plurality of threads, and the aforesaid retrieval request outputting feature is made with that multithread feature. That is, the master  10  is composed of a thread manager  12 , a connection manager  13 , an application server  14  ( 14 A to  14 C), a request manager  15 , and a cue  16 . 
     The thread manager  12  is for managing the whole multithread feature (threads  13  to  15 ), and particularly, is for controlling an operating condition of the application server  14  ( 14 A to  14 C) which will be mentioned herein later. In FIG. 3, the thread manager  12  is omitted from the illustration. 
     The connection manager [main thread; equivalent to the aforesaid for-client section (1)]  13  receives a retrieval request from a client  50  (not shown in FIG.  3 ), and further, returns the retrieval results or the aggregated result to the client  50  issuing the retrieval request. 
     The application server [application thread; equivalent to the foregoing for-client section (1)]  14  actually comprises a plurality of threads  14 A to  14 C as shown in FIG. 3, and undertakes retrieval processing allocated at every retrieval request the connection manager  13  receives. Each of the threads  14  ( 14 A to  14 C) to which the retrieval processing is allocated starts due to the aforesaid thread manager  12 , and after outputting the retrieval request to the slaves  20 A to  20 D, its operation goes into stop by the thread manager  12  until the slaves  20 A to  20 D return the retrieval results to the retrieval request. In addition, each of the threads  14  ( 14 A to  14 C) works to conduct the aggregating processing such as sort processing on the basis of the retrieval results. 
     The cue  16  works to temporarily hold retrieval requests outputted from the threads  14  ( 14 A to  14 C) in the outputting order, although not shown in FIG.  2 . 
     The request manager [master thread; equivalent to the above-mentioned parallel control section (3), that is, the retrieval request outputting feature]  15  successively reads out the retrieval requests retained in the cue  16  to broadcast them to the slaves  20 A to  20 D, and further, receives the retrieval results returning from the slaves  20 A to  20 D to hand over the retrieval results to the given threads  14  ( 14 A to  14 C) made to deal with them. 
     That is, in this embodiment, the retrieval requests from the respective clients are successively allocated to the threads  14  ( 14 A to  14 C) which in turn, successively broadcast the retrieval requests through the master thread  15  to the plurality of slaves  20 A to  20 D, while conducting the processing on the retrieval results returning from these slaves  20 A to  20 D in accordance with the retrieval requests. 
     Secondly, referring suitably to FIGS. 4 to  7 , a description will be taken hereinbelow of an operation of the information retrieving system according to this embodiment. 
     As described above, in this embodiment, the sequential retrieval engines  20   a  to  20   d  are parallelized through the parallel framework  40 . By the use of this parallel framework  40 , the master  10  taking charge of the reception and distribution of a retrieval request is coupled through the network  30  to the salves  20 A to  20 D respectively containing the bodies of the sequential retrieval engines  20   a  to  20   d , so that the parallelization of these engines  20   a  to  20   d  becomes feasible without any modification (alteration). In addition, a new sequential retrieval engine (retrieving server) can readily be built into the information retrieving system  1 . 
     Furthermore, in this embodiment, as shown in FIG. 4, the master  10  receives a retrieval request from the client(s)  50  and distributes (broadcasts) that request to the slaves  20  ( 20 A to  20 D), and further, collects and aggregates the retrieval results from these slaves  20  ( 20 A to  20 D) to return the collection and aggregation to the client  50 . This portion exists only within the parallel framework  40 , and therefore, there is no need to modify the bodies of the sequential retrieval engines  20   a  to  20   d . In FIG. 4, the plurality of slaves respectively containing the sequential retrieval engines are marked with the numeral  20 , and the entire arrangement of the information retrieving system  1  is schematically shown in a state of improving no limitation in the number of slaves. The following description will sometimes be made with the numeral  20  being given to the slaves. 
     The slaves  20 A to  20 D actually effecting the retrieval have the sequential retrieval engines  20   a  to  20   d  forming the bases therein, respectively, and respectively call the sequential retrieval engines  20   a  to  20   d  for the retrieval execution in accordance with a retrieval request from the master (master server)  10 . In this arrangement, the portion for making the communications between the bodies of the sequential retrieval engines  20   a  to  20   d  and the master  10  to call the engines  20   a  to  20   d  in accordance with the retrieval request is clearly separated from the engines  20   a  to  20   d  and is included in the parallel framework  40  side. 
     Still further, in this embodiment, the entity of the retained aggregation of the retrieval results achieved by the respective slaves  20 A to  20 D is managed in the memories  22  on the slaves  20 A to  20 D sides, whereupon there is no need to make the useless communications between the master  10  and the slaves  20 A to  20 D. On the other hand, since the entity of the retained aggregation based upon the aggregating processing such as sort in the master  10  is preserved and managed in the external storage unit  11  on the master  10  side, there is no need to conduct the heavy processing such as the sort many times, which contributes to the improvement of the system performance. 
     Moreover, in this embodiment, through the employment of the data parallelization that the retrieval data is equally or substantially equally distributed to the slaves  20  ( 20 A to  20 D) and the control parallelization that retrieval requests are successively sent from the master  10  to the slaves  20 , the operational efficiency of each of the slaves  20  is improvable. That is, the achievement of a high performance is made by the extraction of the two kinds of parallelizations: the data parallelization and the control parallelization. 
     In general, in retrieving the information, most of the time taken for the retrieval execution is consumed for the access to the database and for the retrieval processing. This time has a property of lengthening depending upon the scale of the database undergoing the retrieval. However, there is no dependent relation among these document groups (retrieval data), and the whole retrieval result is attainable by dividing the document groups into a plurality of partial document groups and, further, by independently retrieving these partial document groups to aggregate the retrieval results. In this embodiment, by making the use of this property, the retrieval data is simply divided equally or substantially equally and the sequential retrieval engines  20   a  to  20   d  are placed which respectively take charge of the retrieval of the divided data, thereby extracting or providing the data parallel configuration. 
     However, as shown in FIGS. 5A and 6, in the case that, after outputting a retrieval request, the master  10  waits for the return of the retrieval results corresponding to the retrieval request from all the slaves  20  ( 20 A to  20 D), the slaves  20  which complete the retrieval at an earlier stage must wait for the next retrieval request. Accordingly, if only the data parallelization takes place, the rate of operation of the slaves  20  actually taking charge of the retrieval does not considerably increase. 
     For this reason, in this embodiment, in addition to the data parallelization, the control parallel parallelization among the retrieval requests is taken on the master  10  side, and as shown in FIGS. 5B and 7, the retrieval request is successively forwarded from the master  10  to the slaves  20  ( 20 A to  20 D), thereby accomplishing a high throughput. 
     In more detail, when the main thread  13  of the master  10  receives a retrieval request from the client  50 , the thread manager  12  selects a proper application thread  14  and starts it, and further, performs the allocation of the retrieval requests. The threads  14  ( 14 A to  14 C), receiving the allocation of the retrieval requests, output the retrieval requests to the slaves  20 A to  20 D. 
     The retrieval requests are temporarily held in the cue  16  in the outputting order, and then, are successively read out by the master thread  15  to be broadcasted through the network  30  to the slaves  20 A to  20 D. 
     The threads  20 A to  20 D sides temporarily put the retrieval requests in a cue (not shown), and the retrieval processing are successively conducted in the respective sequential retrieval engines  20   a  to  20   d  in accordance with the retrieval request held in the cue, with the retrieval results being brought back through the network  30  to the master  10 . In the case that the master  10  side does not immediately require the retrieval results, the retrieval results are held in the memories  22  of the engines  20   a  to  20   d.    
     Furthermore, the retrieval results returning from the slaves  20 A to  20 D are received by the master thread  15  and handed over to the given threads  14  ( 14 A to  14 C) which treat the retrieval results. Due to the thread manager  12 , the threads  14  ( 14 A to  14 D) assume the stopping condition until all the slaves  20 A to  20 D return the retrieval results, and when receiving the retrieval results from all the slaves  20 A to  20 D, they conduct the aggregating processing such as sort on the basis of the retrieval results, and send back the retrieval results or the aggregated result to the client  50 . 
     Although the two control systems (application threads  14 ) dealing with the retrieval request in a parallel condition are illustrated in FIG. 7, this invention is not limited to this number, it is also acceptable to employ three or more control systems as shown in FIG.  3 . 
     Still further, an ID for identifying the threads  14  handling the retrieval request is given to the same retrieval request to be transmitted from the master  10  to each of the slaves  20 , and the same ID is added to the retrieval result from each of the slaves  20  to the master  10  in order to specify the retrieval request fulfilled, and hence, the master thread  15  hands over the retrieval results to the given threads  14  ( 14 A to  14 C) by referring to that ID. 
     As described above, according to the information retrieving system  1  constituting the embodiment of this invention, the use of the parallel framework  40  permits the extreme simplification of the parallelizing work of the sequential retrieval engines  20   a  to  20   d  respectively contained in the slaves  20  ( 20 A to  20 D), thus surely meeting the requirement for the enhancement of the retrieval performance for a short developing time period. 
     In addition, owing to the simplification of the parallelizing work, the working quantity for the parallelization is sharply reduced and the parallelization of the sequential retrieval engines  20   a  to  20   d  (slaves  20 ) is realized at less developing expenses, so that high-performance sequential retrieval engines  20   a  to  20   d , which are developed at an enormous cost, can properly be incorporated into the system  1 , and further, the parallelization of the sequential retrieval engines  20   a  to  20   d  (slaves  20 ) becomes easily possible even in a distributed memory type parallel computer, with the result that a high scalability is realized and a necessary retrieval ability is certainly attained. 
     Furthermore, along with the data parallelization that the retrieval data is equally or substantially equally distributed to the slaves  20  ( 20 A to  20 D), the employment of the control parallelization that retrieval requests are successively broadcasted from the master  10  to the slaves  20  can enhance the operational efficiency of each of the slaves  20 , with the result that a higher throughput performance is attained and the retrieval performance is sharply improvable without conducting the fine-grain processing. 
     Still further, the employment of the parallel framework  40  allows the retrieval results or the aggregated result to be retained in the slaves  20  or the master  10  in a high dependency condition, which can eliminate the useless communications among the master  10  and the slaves  20 , and which does not require the preservation and management of a great deal of retrieval results on the master  10  side. Particularly, because the aggregated result made by the sort processing or the like is retained on the master  10  side, there is no need to conduct the heavy processing such as the sort processing many times, thus further improving the performance of the information retrieving system  1 . 
     Although, in the above-described embodiment, the retrieval request outputting feature in the master  10  is constructed with a multithread feature, this invention is not limited to this feature, but it is also possible that the retrieval request outputting feature is constructed with an asynchronous communication facility for making communications with the plurality of retrieving servers in an asynchronous condition, and this asynchronous communication feature asynchronously broadcasts the retrieval requests from the clients in sequence to the plurality of slaves  20  and asynchronously receives the retrieval results coming from the plurality of slaves  20  in conjunction with the retrieval request. Even in this case, the same effects as those of the above-described embodiment are also obtained. 
     In this case, an ID for identifying the origin of the retrieval request is given to the same retrieval request to be transmitted from the master  10  to each of the slaves  20 , and the same ID is added to the retrieval result from each of the slaves  20  to the master  10  in order to specify the retrieval request fulfilled, and hence, the master  10  side decides, by referring to that ID, whether or not to return all retrieval results originating from a given retrieval request. 
     In the above-described information retrieving system  1 , the master  10  and at least one of the plurality of slaves  20  can also be made with the same processing unit (processor element). 
     It should be understood that the present invention is not limited to the above-described embodiment, and that it is intended to cover all changes and modifications of the embodiments of the invention herein which do not constitute departures from the spirit and scope of the invention.