JP4265559B2 - Data processing apparatus, data processing server, data processing system, and data processing program - Google Patents
Data processing apparatus, data processing server, data processing system, and data processing program Download PDFInfo
- Publication number
- JP4265559B2 JP4265559B2 JP2005100026A JP2005100026A JP4265559B2 JP 4265559 B2 JP4265559 B2 JP 4265559B2 JP 2005100026 A JP2005100026 A JP 2005100026A JP 2005100026 A JP2005100026 A JP 2005100026A JP 4265559 B2 JP4265559 B2 JP 4265559B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- processing
- reception
- transmission source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、複数の相手から受け取ったデータに対する処理を行うデータ処理装置およびデータ処理サーバとこれらの相手とデータ処理装置あるいはデータ処理サーバからなるデータ処理システムおよびそのデータ処理プログラムに関する。 The present invention relates to a data processing device and a data processing server that perform processing on data received from a plurality of partners, a data processing system including these partners and a data processing device or a data processing server, and a data processing program thereof.
近年、ネットワーク機器とネットワーク接続サービスの高速化および低価格化が進み、ネットワークを用いた通信が多く行われている。これに伴い、ネットワークサーバの処理能力向上が求められている。ネットワークサーバには、たとえば、様々なアプリケーションをネットワークを介して提供するアプリケーションサーバや、金融機関で入出金といったひとまとまりの処理としてのトランザクション処理を行うトランザクションサーバやデータベースサーバなどがある。これらは、ネットワークに接続するクライアントから要求を受け、それに対する処理を行うことでサービスを提供している。このようなネットワークサーバでは、演算処理能力の向上はもちろんのこと、同時に起こり得る複数のクライアントからの処理要求に関するデータ受信およびその処理結果としてのデータ送信といった通信処理を効率よく行うことも重要である。 In recent years, network devices and network connection services have been increased in speed and price, and many communications using networks have been performed. Along with this, there is a demand for improving the processing capacity of network servers. Examples of the network server include an application server that provides various applications via a network, a transaction server that performs transaction processing as a batch process such as deposit and withdrawal at a financial institution, and a database server. These services are provided by receiving a request from a client connected to a network and performing processing on the request. In such a network server, it is important not only to improve the arithmetic processing capability but also to efficiently perform communication processing such as data reception regarding processing requests from a plurality of clients that can occur simultaneously and data transmission as a result of the processing. .
そこで、複数のタスクを生成することにより通信の多重処理を実現する手法が提案されている(たとえば特許文献1参照)。この提案のコンピュータはタスク生成部を備え、たとえば、他のコンピュータにデータの送信を行うときには新規にタスクを生成して、データの送信処理をそのタスクに任せるようになっている。したがって、このコンピュータでは、このデータの送信処理が完了する前でも、別の異なる処理を並列して行うことができる。つまり、ネットワークサーバにおいては複数のタスクを生成することにより、複数のクライアントとの通信処理を同時に行う、通信の多重処理が実現される。これにより、より多くの処理要求を受け、要求に応じたサービスを提供することが可能になる。 In view of this, a method has been proposed in which multiple processes of communication are realized by generating a plurality of tasks (see, for example, Patent Document 1). The proposed computer includes a task generation unit. For example, when data is transmitted to another computer, a new task is generated, and data transmission processing is left to the task. Therefore, in this computer, even before this data transmission process is completed, different processes can be performed in parallel. That is, by generating a plurality of tasks in the network server, a communication multiplex process that simultaneously performs a communication process with a plurality of clients is realized. This makes it possible to receive more processing requests and provide services according to the requests.
このような複数のタスクにより異なる複数の処理を行うマルチタスク処理は、CPU(Central Processing Unit)の処理を時分割して、複数の処理対象に順番に割り当てることで、それぞれが同時に行われているように見せるものである。この時分割される一連の処理が、タスクあるいはプロセスと呼ばれている。マルチタスクで動作するOS(Operating System)は、実際にはこのタスクあるいはプロセスをさらに同時に処理可能な一連の処理として、入力、計算、ファイル操作等の各処理に分割されたスレッドという単位で切り替えて、マルチスレッドとして動作を行っている。このタスクやプロセスおよびスレッドは、コンテキスト(context)と呼ばれている。各コンテキストには、スタック、レジスタ、実行カウンタ等の処理の実行状態を表わすものがそれぞれ固有に割り当てられている。これにより、他のコンテキストで進行する処理からの影響を受けず、独立して処理を行うことができる。また、コンテキストを増やすことによって、複数のCPUを持つコンピュータにおいて同時に処理できる対象を増やし、より多くのCPUにより多くの処理を割り当てることができる。 In such multitask processing that performs different processing by multiple tasks, the processing of the CPU (Central Processing Unit) is time-divided and sequentially assigned to multiple processing targets, and each is performed simultaneously. It looks like this. A series of processes divided at this time is called a task or a process. The OS (Operating System) operating in multitasking is actually switched as a series of processes that can process this task or process at the same time, in units of threads divided into processes such as input, calculation, and file operation. It is operating as a multi-thread. These tasks, processes and threads are called contexts. Each context is uniquely assigned to indicate an execution state of processing such as a stack, a register, and an execution counter. As a result, the processing can be performed independently without being influenced by the processing progressing in another context. Further, by increasing the context, the number of objects that can be processed simultaneously in a computer having a plurality of CPUs can be increased, and more processes can be assigned to more CPUs.
図10は、ネットワークサーバが複数のコネクションを1つのコンテキストで制御する様子を表わしたものである。複数のコンテキストによる処理を説明する前に、まず、1つのコンテキストによる処理について説明を行う。第1〜第3のコネクション1011〜1013は、ネットワークサーバ102にそれぞれデータ1031〜1033を送信し、それに対する処理結果1041〜1043を処理待ち1051〜1053の後に受け取るようになっている。第1のコネクション1011について詳細に説明する。第1のコネクション1011は、ネットワークサーバ102にデータ1031を送信し、それに対する処理結果1041を処理待ち1051の後に受け取るようになっている。データ1031は一旦、バッファメモリ(バッファ)106にバッファリング1071されて、処理手段108のコンテキスト(C)109に受け渡される。コンテキスト109ではデータ処理1111が行われ、その処理結果1041が要求元の第1のコネクション1011に送り返されるようになっている。コンテキスト109では、第1のコネクション1011からデータ1031が到着していなければ、データ待ち1101を行い、到着後にデータ処理1111が完了するまで、他のコネクションに対する処理を行わない。このように1つのコネクションに対するデータ待ちとデータ処理からなる処理に専有された状態をブロックといい、このような受信方式をブロック受信方式という。つまり、第1のコネクションによるブロック1121は、この図に示すようにデータ待ち1101とデータ処理1111を併せたものになる。ここでは、受信方式に着目するため、処理結果1041の送信については説明を簡単にするためにOSによる処理を介さないように説明している。同様に説明を簡単にするために、バッファメモリ106の処理を1つの流れで説明しているが、実際にはマルチタスクのOSにより複数のバッファリングを同時に行うことができるようになっている。第2および第3のコネクション1012、1013についても、同様に処理が行われる。処理手段108はプログラムにより構成されるのが通常で、このようなネットワークサーバ102においてはサーバプログラムとよばれる。
FIG. 10 shows how the network server controls a plurality of connections in one context. Before describing processing by a plurality of contexts, first, processing by one context will be described. The first to
ここでは、サーバプログラムを実行するコンテキスト109は1つで、第1〜第3のコネクション1011〜1013に対する処理がこの順番で行われるよう予め決められている。したがって、この図に示すように、たとえば第3のコネクション1013からのデータ1033がバッファメモリ106によりバッファリング1073され、すぐに処理を始められる状態になっても、コンテキスト109では予め決められた順番どおり第1のコネクション1011に対する処理の次は、第2のコネクション1012に対する処理を行うようになっている。このため、第2のコネクション1012からのデータ1032の到着が遅れると、第3のコネクション1013が処理結果1043を得られる時間も遅れてしまう。つまり、他のコネクションの影響を受け、各コネクションが処理結果を得るまでの処理待ちの時間に不平等が生じてしまう。そこで、ブロック受信方式で複数のコネクションを同時に扱うネットワークサーバは、第1の提案のように複数のコンテキストを生成することで実現される。
Here, there is one
図11は、ネットワークサーバが複数のコネクションを複数のコンテキストで制御する様子を表わしたものである。この図11で図10と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。ネットワークサーバ102Aの処理手段108Aは、第1〜第3のコンテキスト1091〜1093で同時に、第1〜第3のコネクション1011〜1013に対するそれぞれのデータ処理1111〜1113を別々に行わせるようになっている。したがって、処理待ち時間は、それぞれ対応するコネクションに起因するものであって、他のコネクションからの影響を受けない。ブロック受信方式では複数のコンテキストを設けることにより通信の多重処理を実現することができる。
FIG. 11 shows how the network server controls a plurality of connections in a plurality of contexts. In FIG. 11, the same parts as those in FIG. 10 are denoted by the same reference numerals, and description thereof will be omitted as appropriate. Processing means 108A of
このように、ブロック受信方式では複数のコンテキストを設けることにより通信の多重処理が実現され、他のコネクションに影響しない処理を可能としている。しかし、ブロック受信方式で通信の多重処理を行うには、扱う接続先の数に応じた複数のコンテキストが必要とされる。各コンテキストはそれぞれ他のコンテキストの処理に影響を受けず、独自に処理を行っている。このためコンテキストごとに他のプログラムの進行状態により書き換えられることのない専用のメモリ領域を必要とする。したがって、リソースの面から扱うことのできるコネクションの数が限られてしまう。 In this way, in the block reception method, multiple processing of communication is realized by providing a plurality of contexts, and processing that does not affect other connections is possible. However, in order to perform communication multiplex processing by the block reception method, a plurality of contexts corresponding to the number of connection destinations to be handled are required. Each context is independently influenced by the processing of other contexts. For this reason, a dedicated memory area that is not rewritten by the progress state of another program is required for each context. Therefore, the number of connections that can be handled in terms of resources is limited.
そこで、ネットワークサーバでは非ブロック受信方式を用いるのが通常である。この方式では、各接続先から処理可能な受信データがバッファメモリにバッファリング済みかどうかを走査する手段と組み合わせて通信の多重処理を可能にしている。この手段はセレクタと呼ばれOSにより提供されている。セレクタはネットワークサーバのサーバプログラムにより呼び出され、走査の結果が1つ以上の事象を含むまで、繰り返し走査を行い、事象が発生するとその結果をサーバプログラムに返すようになっている。 Therefore, it is usual to use a non-block reception method in the network server. In this method, multiple processing of communication is possible in combination with means for scanning whether received data that can be processed from each connection destination has been buffered in the buffer memory. This means is called a selector and is provided by the OS. The selector is called by the server program of the network server and repeatedly scans until the scan result includes one or more events. When an event occurs, the result is returned to the server program.
図12は、ネットワークサーバが複数のコネクションを1つのコンテキストとセレクタにより非ブロック受信方式で制御する様子を表わしたものである。この図12で図10と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。ネットワークサーバ102Bでは、セレクタ120がバッファメモリ106に第1〜第3のコネクション1011〜1013からのデータ1031〜1033のうちバッファリング済みのものがあるかを走査するようになっている。この図に示すように、処理手段108Bでは、コンテキスト109が新たな処理を行うことができる状態にあるとセレクタ120による走査1211〜1216が行われるようになっている。セレクタ120の最初の走査1211によっては、データが見つからない。そのため、引き続き走査1212が行われる。この段階で第1のコネクション1011のデータ1031が見つかる。処理手段108Bは、セレクタ120のこの走査結果に基づき、コンテキスト109にデータ1031の受信およびそのデータ処理1111を行わせる。その後、処理結果1041が第1のコネクション1011に送り返される。次に行われる走査1213によって、第3のコネクション1013のデータ1033が見つかり、同様に処理される。セレクタ120は再びデータが見つかるまで走査1214〜1216を繰り返す。走査1216によって第2のコネクション1012のデータ1032が見つかると、再び同様に処理が行われる。バッファメモリ106に複数のデータがバッファリングされているとき、セレクタ120はその中で一番早くバッファリングされたものだけを見つけるようにしてもよいし、すべてを見つけるようにしてもよい。後者の場合、処理手段108Bがコンテキスト109の処理状態をみて、1つ処理が完了するたびに、次の処理を行わせるようにする。ブロック受信は受信データが到着するまで待つのに対して、このように非ブロック受信方式は、セレクタを使用することで特定のコネクションで受信の待ち合わせをせずに、すぐに処理可能なデータを得ることができるため、一定の短い時間で処理を行うことが可能である。
ところで、非ブロック受信方式では、複数のコネクションを制御することができるものの、セレクタが走査するコネクションの数がたとえば数千や数万というように膨大な数になると、走査によるオーバーヘッドが問題になってくる。つまり、コネクションから見ると、データを送信しても、それが処理手段に受け渡され処理が行われるのは、走査によりデータが見つけられてからになるため、走査時間のタイムラグができる。したがって、データがOSによりバッファメモリにバッファリングされるとすぐに処理が行われるブロック方式に比べて、処理結果が得られるまでの時間が増すことになってしまう。これは無通信あるいは通信頻度の低いコネクションではあまり問題とならないが、送信するデータ数に伴って処理時間が増すため、通信頻度が高いコネクションでは処理効率の点で問題が大きい。また、走査でバッファメモリにデータが見つかるとその結果を報告する処理が行われるため、頻繁にデータを送信してくるコネクションが1つでも存在すると、走査結果の報告もその都度行われなければならない。したがって、通信頻度の低いコネクションだけに対して、データが見つかるまで走査を繰り返す場合に比べて、負担が大きくなってしまう。 By the way, in the non-block reception method, although a plurality of connections can be controlled, if the number of connections scanned by the selector becomes a large number such as thousands or tens of thousands, scanning overhead becomes a problem. come. In other words, when viewed from the connection, even if data is transmitted, the data is transferred to the processing means and processed after the data is found by scanning, so that there is a time lag in scanning time. Therefore, as compared with the block method in which processing is performed as soon as data is buffered in the buffer memory by the OS, the time until the processing result is obtained increases. This is not a problem for connections with no communication or a low communication frequency, but the processing time increases with the number of data to be transmitted, so a problem is large in terms of processing efficiency for a connection with a high communication frequency. In addition, when data is found in the buffer memory by scanning, processing for reporting the result is performed. Therefore, if there is even one connection that frequently transmits data, the scanning result must be reported each time. . Therefore, the burden is increased compared to the case where scanning is repeated until data is found only for connections with low communication frequency.
以上、ネットワークサーバの通信制御を例に挙げて説明した。これ以外にも、複数の相手に対する処理を行うような装置で、同時に起こり得るこれらの相手からの処理要求およびそれに関するデータを効率的に受け取って処理する必要がある例は多く存在している。いずれの例の場合も、相手の数を制限しないために非ブロック受信方式を用いると、処理を頻繁に要求する相手に対しては処理効率について同様の問題があった。 The network server communication control has been described above as an example. In addition to this, there are many examples in which it is necessary to efficiently receive and process processing requests from these partners and data related to them that can occur at the same time in an apparatus that performs processing for a plurality of partners. In any case, when the non-block reception method is used in order to limit the number of opponents, there is a similar problem with respect to processing efficiency for an opponent who frequently requests processing.
そこで、本発明の目的は、処理を行う対象となる相手の数を制限せず、処理効率の低下を軽減したデータ処理装置、データ処理サーバ、データ処理システムおよびデータ処理方法を提供することにある。 Accordingly, an object of the present invention is to provide a data processing device, a data processing server, a data processing system, and a data processing method that can reduce a decrease in processing efficiency without limiting the number of counterparts to be processed. .
本発明では、(イ)通信ネットワークを介して1処理単位ずつのデータとしての単位データを順次受信する単位データ受信手段と、(ロ)この単位データ受信手段が受信した単位データの送信元を判別する送信元判別手段と、(ハ)前記した送信元ごとに前記した単位データの受信頻度を監視する受信頻度監視手段と、(ニ)前記した単位データ受信手段が受信した単位データを一時格納するデータ格納手段と、(ホ)それぞれ所望の時間にわたって1つずつの送信元が専有する形で、同一送信元から間欠的にあるいは連続して送られてくる任意数の前記した単位データの処理を、その送信元に対するデータ待ちが発生したときその送信元についてのデータが処理されるまで他の送信元に対する処理を行わないことで同一送信元からの単位データの受信頻度が高い場合にスループットの高い通信を可能にする1または複数の第1のデータ処理手段と、(へ)前記した単位データを1単位として各送信元が時分割で専有する形で、前記した単位データを処理する1または複数の第2のデータ処理手段と、(ト)前記した単位データ受信手段が前記した単位データを受信するたびに前記した送信元判別手段の判別結果に応じて前記したデータ格納手段に格納された単位データを、前記した単位データ受信手段の受信した単位データの受信頻度の高い送信元から順に前記した第1のデータ処理手段に割り当てて受け渡す第1のデータ受け渡し手段と、(チ)この第1のデータ受け渡し手段により前記した第1のデータ処理手段に受け渡されず前記したデータ格納手段に格納されている単位データの有無を判別するデータ有無判別手段と、(リ)このデータ有無判別手段の判別結果がデータ有りのとき、前記したデータ格納手段からこの単位データを前記した第2のデータ処理手段に受け渡す第2のデータ受け渡し手段とをデータ処理装置が具備する。 In the present invention, (a) unit data receiving means for sequentially receiving unit data as data for each processing unit via a communication network, and (b) determining the transmission source of unit data received by the unit data receiving means (C) a reception frequency monitoring unit that monitors the reception frequency of the unit data described above for each transmission source; and (d) temporarily storing unit data received by the unit data reception unit. Data storage means, and (e) processing of any number of the unit data described above that are transmitted intermittently or continuously from the same transmission source in a form that one transmission source occupies for a desired time. When the data waiting for the transmission source occurs, the unit data from the same transmission source is not processed until the data for the transmission source is processed. Motor 1 or a plurality of first data processing means for enabling a high throughput communication when the receiving frequency is high, in the form of proprietary by each source is time division as a unit the unit data mentioned above (to) , one or a plurality of second data processing means for processing the unit data described above, according to (g) the result of the determination to the source discriminating means each time the above-mentioned unit data receiving means receives unit data described above First, the unit data stored in the data storage unit is assigned to the first data processing unit in order from the transmission source having the high reception frequency of the unit data received by the unit data receiving unit, and the first data is transferred. Data transfer means; and (h) a unit stored in the data storage means without being transferred to the first data processing means by the first data transfer means. A data presence / absence determining means for determining the presence / absence of data; and (i) when the determination result of the data presence / absence determining means is data, the unit data is transferred from the data storage means to the second data processing means. The data processing device includes second data transfer means.
また、本発明では、(イ)通信ネットワークを介してクライアントから1処理単位ずつのデータとしての単位データを順次受信する単位データ受信手段と、(ロ)この単位データ受信手段が受信した単位データのクライアントを判別するクライアント判別手段と、(ハ)このクライアント判別手段の判別したクライアントごとに前記した単位データの受信頻度を監視する受信頻度監視手段と、(ニ)前記した単位データ受信手段が受信した単位データを一時格納するデータ格納手段と、(ホ)それぞれ所望の時間にわたって1つずつのクライアントが専有する形で、同一クライアントから間欠的にあるいは連続して送られてくる任意数の前記した単位データの処理を、そのクライアントに対するデータ待ちが発生したときそのクライアントについてのデータが処理されるまで他のクライアントに対する処理を行わないことで同一クライアントからの単位データの受信頻度が高い場合にスループットの高い通信を可能にする1または複数の第1のデータ処理手段と、(へ)前記した単位データを1単位として各クライアントが時分割で専有する形で、前記した単位データを処理する1または複数の第2のデータ処理手段と、(ト)前記した単位データ受信手段が前記した単位データを受信するたびに前記したクライアント判別手段の判別結果に応じて前記したデータ格納手段に格納された単位データを、前記した単位データ受信手段の受信した単位データの受信頻度の高いクライアントから順に前記した第1のデータ処理手段に割り当てて受け渡す第1のデータ受け渡し手段と、(チ)この第1のデータ受け渡し手段により前記した第1のデータ処理手段に受け渡されず前記したデータ格納手段に格納されている単位データの有無を判別するデータ有無判別手段と、(リ)このデータ有無判別手段の判別結果がデータ有りのとき、前記したデータ格納手段からこの単位データを前記した第2のデータ処理手段に受け渡す第2のデータ受け渡し手段とをデータ処理サーバが具備する。In the present invention, (a) unit data receiving means for sequentially receiving unit data as data for each processing unit from the client via the communication network; and (b) unit data received by the unit data receiving means. Client discrimination means for discriminating clients, (c) reception frequency monitoring means for monitoring the reception frequency of the unit data for each client determined by the client discrimination means, and (d) received by the unit data reception means Data storage means for temporarily storing unit data; and (e) any number of the above-mentioned units that are intermittently or continuously sent from the same client in a form that each client occupies for a desired time. Data processing to the client when data waiting for that client occurs One or a plurality of first data processing means for enabling high-throughput communication when the frequency of receiving unit data from the same client is high by not performing processing for other clients until the current data is processed (F) One or a plurality of second data processing means for processing the unit data in a form that each client occupies in a time-sharing manner with the unit data as one unit, and (g) reception of the unit data as described above Each time the unit receives the unit data, the unit data stored in the data storage unit according to the determination result of the client determination unit is changed to the reception frequency of the unit data received by the unit data reception unit. First data transfer means for assigning and transferring to the first data processing means in order from the highest client; Data presence / absence determining means for determining presence / absence of unit data stored in the data storage means not transferred to the first data processing means by the first data transfer means; The data processing server includes a second data transfer means for transferring the unit data from the data storage means to the second data processing means when the determination result of the determination means is data.
更に本発明では、(イ)通信ネットワークと、(ロ)請求項1記載のデータ処理装置と、(ハ)前記した通信ネットワークを介してこのデータ処理装置にデータを送信するデータ送信手段を備えた1または複数のデータ処理要求装置とをデータ処理システムが具備する。The present invention further includes (a) a communication network, (b) a data processing device according to claim 1, and (c) a data transmission means for transmitting data to the data processing device via the communication network. The data processing system includes one or more data processing requesting devices.
更にまた、本発明では、コンピュータに、データ処理プログラムとして、(イ)通信ネットワークを介して1処理単位ずつのデータとしての単位データを順次受信する単位データ受信処理と、(ロ)この単位データ受信処理で受信した単位データの送信元を判別する送信元判別処理と、(ハ)前記した送信元ごとに前記した単位データの受信頻度を監視する受信頻度監視処理と、(ニ)前記した単位データ受信処理で受信した単位データを一時格納するデータ格納処理と、(ホ)それぞれ所望の時間にわたって1つずつの送信元が専有する形で、同一送信元から間欠的にあるいは連続して送られてくる任意数の前記した単位データの処理を、その送信元に対するデータ待ちが発生したときその送信元についてのデータが処理されるまで他の送信元に対する処理を行わないことで同一送信元からの単位データの受信頻度が高い場合にスループットの高い通信を可能にする1または複数の第1のデータ処理と、(へ)前記した単位データを1単位として各送信元が時分割で専有する形で、前記した単位データを処理する1または複数の第2のデータ処理と、(ト)前記した単位データ受信処理で前記した単位データを受信するたびに前記した送信元判別処理の判別結果に応じて前記したデータ格納処理で格納された単位データを、前記した単位データ受信処理で受信した単位データの受信頻度の高い送信元から順に前記した第1のデータ処理に割り当てて受け渡す第1のデータ受け渡し処理と、(チ)この第1のデータ受け渡し処理により前記した第1のデータ処理に受け渡されず前記したデータ格納処理で格納されたままの単位データの有無を判別するデータ有無判別処理と、(リ)このデータ有無判別処理の判別結果がデータ有りのとき、前記したデータ格納処理で格納した単位データを前記した第2のデータ処理に受け渡す第2のデータ受け渡し処理とを実行させることを特徴としている。Furthermore, according to the present invention, (b) unit data reception processing for sequentially receiving unit data as data for each processing unit via a communication network as a data processing program; A transmission source determination process for determining the transmission source of the unit data received in the process; (c) a reception frequency monitoring process for monitoring the reception frequency of the unit data for each transmission source; and (d) the unit data described above. Data storage processing for temporarily storing unit data received in the reception processing, and (e) each transmission source occupies a desired time and is sent intermittently or continuously from the same transmission source. The processing of an arbitrary number of the above unit data is performed until other data is processed until the data for the transmission source is processed when the data waiting for the transmission source occurs. One or a plurality of first data processing that enables high-throughput communication when the frequency of receiving unit data from the same transmission source is high by not performing processing on the source; Each transmission source as a unit is dedicated in a time-sharing manner, one or a plurality of second data processes for processing the unit data, and (g) each time the unit data is received in the unit data reception process. First, the unit data stored in the data storage process according to the determination result of the transmission source determination process described above in order from the transmission source having the highest reception frequency of the unit data received in the unit data reception process. And (h) the first data transfer process which is not transferred to the first data process described above. Data presence / absence determination processing for determining the presence / absence of unit data as stored in the data storage processing, and (i) unit data stored in the data storage processing described above when the determination result of the data presence / absence determination processing is data And a second data transfer process for transferring the data to the second data process described above.
以上説明したように本発明では、複数の送信元からデータを受信して処理することができるだけでなく、データを頻繁に送信してくる送信元には、その送信元が専有できる処理手段を割り当て、効率よく処理することも可能となっている。さらに、各送信元との通信頻度を調べ、頻度に応じて割り当てを変更することができるので、例えば、送信元の多くが無通信あるいは送信頻度の低いものであっても、頻繁にデータを送信してくる送信元が1つでも存在すると、データが受信済みかどうかを走査するのにかかるオーバーヘッドが問題になるという状況を回避することができる。 As described above, according to the present invention, not only can data be received and processed from a plurality of transmission sources, but a processing means that can be used exclusively by the transmission source is assigned to a transmission source that frequently transmits data. It is also possible to process efficiently. In addition, since the frequency of communication with each transmission source can be checked and the assignment can be changed according to the frequency, for example, even if many of the transmission sources are not communicating or have low transmission frequency, data is frequently transmitted. If even one transmission source exists, it is possible to avoid a situation in which the overhead for scanning whether data has been received becomes a problem .
以下実施例につき本発明を詳細に説明する。 Hereinafter, the present invention will be described in detail with reference to examples.
図1は、本発明の一実施例のデータ処理システムの構成の概要を表わしたものである。このデータ処理システム200は、サーバ201とLAN(Local Area Network)やインターネット等の通信ネットワーク202を介して接続する第1〜第nのクライアント2031〜203nとからなっている。このように、サーバ201は第1〜第nのクライアント2031〜203nと相互に通信を行っているが、これらの通信を同時に成立させるために、通信の多重処理が行われている。
FIG. 1 shows an outline of the configuration of a data processing system according to an embodiment of the present invention. The
サーバ201の構成について説明する。サーバ201は、第1〜第mのCPU(中央処理装置)2111〜211mを備えている。これら第1〜第mのCPUの2111〜211mは、それぞれ並列に処理を行うことができるようになっている。そこで本明細書では、これらを単に「CPU211」として説明する。CPU211はデータバス等のバス212を通じて通信多重処理方式のサーバ201内の各部と接続されている。このうち、ROM(リード・オンリ・メモリ)213は、不揮発性データあるいは制御プログラムを格納している。RAM(ランダム・アクセス・メモリ)214はCPU211が各種制御を実行する際に必要となるデータを一時的に格納するようになっている。ハード・ディスク・ドライブ(HDD)215は、このサーバ201の制御を行うためのOS(Operating System)やアプリケーションプログラムが格納された磁気記憶装置である。表示部216は液晶あるいは有機パネルを使用したモニタを備え、情報を視覚的に表示するようになっている。操作部217は、キーボード、マウスおよびスイッチボタンを備え各種操作を受け付けるようになっている。時計回路218は時間を計時し、サーバ201の通信した時刻がこれにより分かるようになっている。通信制御部219は、通信ネットワーク202に接続するようになっている。ハード・ディスク・ドライブ215、表示部216および操作部217はそれぞれ通信制御部219を介して、サーバ201の外部に接続された形態であってもよい。
The configuration of the
サーバ201では、複数の独立した通信相手としての第1〜第nのクライアント2031〜203nに対する処理を同時に行う場合に、それぞれの処理の実行内容が、他の処理の実行内容に影響を及ぼさないように、複数のコンテキストで処理を行うようになっている。複数のコンテキストを実現するには、マルチスレッドを利用する方式や、マルチプロセスで共有メモリを使用する方式がある。複数のスレッド間あるいは複数のプロセス間で相互にデータを共有することで、複数のスレッドあるいは複数のプロセスが、それぞれ同じデータを参照して、同じプログラムを実行することができる。このようにして、複数のコンテキストにより通信の多重処理が実現されている。同じプロセスのスレッド同士はメモリを共有しているので、スレッド間でデータを共有するのは比較的容易である。このため、本実施例ではマルチスレッドを使用する方式で説明を行うことにするが、マルチプロセスで共有メモリを使用する方法でも同様の実施が可能である。
In the
図2は、データ処理システムを構成するサーバ上で動作するサーバプログラムで構成されるサーバプログラム部を表わしたものである。図1と共に説明を行う。サーバプログラム部301は、サーバ201に実装されるプログラムで実現する回路部分で、通信の多重処理を行うことができる。サーバ201と第1〜第nのクライアント2031〜203nの通信は、実際にはこのサーバプログラム部301と第1〜第nのクライアント2031〜203nに実装される各クライアントプログラムによって実現される図示しないクライアントプログラム部との通信であり、このようなサーバプログラム部301とクライアントプログラム部によって、データ処理システム200が実現されている。
FIG. 2 shows a server program unit composed of a server program that operates on a server constituting the data processing system. A description will be given with FIG. The
サーバプログラム部301は、事象待ちスレッド311、非ブロック受信スレッド312、ブロック受信スレッド313およびアプリケーションスレッド314という複数のスレッド上でそれぞれ対応する処理を行うようになっている。さらに、サーバ201を運用するのに必要なプログラムとデータを利用者ごとにひとまとまりとしたユーザオブジェクト321およびこのサーバ201が通信中のクライアントごとにそのクライアントとのコネクションに関するプログラムとデータをひとまとまりとしたコネクションオブジェクト322という2種類のオブジェクトを備える。これらはそれぞれデータ部としてユーザオブジェクトのデータ部323、コネクションオブジェクトのデータ部324を保持している。これらのユーザオブジェクトのデータ部323およびコネクションオブジェクトのデータ部324に基づき、ユーザオブジェクトのプログラム部325、コネクションオブジェクトのプログラム部326がそれぞれ動作する。これと共に、通信制御アクセスライブラリ330、実行スレッド制御部331、事象待ち制御部332、非ブロック受信制御部333、ブロック受信制御部334およびユーザプログラムによって実現されるユーザプログラム部335も動作するようになっている。本実施例では、多重通信処理により複数の接続先からデータを受信するという本発明を実施するために必要最小限のオブジェクトだけを挙げて説明を行っている。実際には、これ以外の目的のものについては、個別にオブジェクトを追加して利用することができる。たとえば、金融機関の入出金処理を扱うサーバであれば、クライアントごとにその計算処理や計算処理に必要なデータをまとめたオブジェクトを追加する。
The
それぞれのプログラム部およびスレッドについて説明を行う。 Each program part and thread will be described.
通信制御アクセスライブラリ330は、サーバプログラム部301上で動作するすべてのプログラムから呼び出し可能なプログラム部となっている。通信制御アクセスライブラリ330は、サーバ201上で動作するすべてのプログラムに対して、外部のプログラムとデータの送受信を行うための、インタフェースを提供している。具体的には、サーバ201とクライアント203間の通信路としてのコネクションの接続、切断を行い、データの送受信を行っている。通信制御アクセスライブラリ330は、例えば、BSD SOCKET(Berkeley Software Distribution socket)をベースとしたもので実現することができる。
The communication
実行スレッド制御部331も、サーバプログラム部301上で動作するすべてのプログラムから呼び出し可能なプログラムによって実現されている。実行スレッド制御部331は、それぞれ異なるスレッド上で動作するプログラム部からプログラム部へと処理要求を伝えることができる。また、処理要求されたプログラム部の使用できるスレッドが全て使用中で、新たに処理要求を受け取ることができないとき、実行スレッド制御部331はこの処理要求を図示しないキューに保存するようになっている。
The execution
事象待ち制御部332は、事象待ちスレッド311上で動作するプログラムによって実現されている。事象待ち制御部332は、各クライアントプログラム部から接続の要求を受け、通信制御アクセスライブラリ330によって、そのコネクションの接続を行わせる。また、そのコネクションごとに対応するコネクションオブジェクト322をそれぞれ作成する。そして、ブロック受信スレッド313の空き状況や図示しない各クライアントプログラム部との通信頻度に従って、データ受信を非ブロック受信制御部333またはブロック受信制御部334のどちらで行わせるか決定する。この決定方法については後に具体的に説明を行う。事象待ち制御部332は、また、非ブロック受信制御部333に割り当てたクライアントプログラム部について、データの受信処理が可能なコネクション一覧を作成する多重受信待ちを行う。多重受信待ちについても後に具体的に説明を行う。さらに、事象待ち制御部332は、クライアントプログラム部から通信の切断要求も受け、切断処理を行う。
The event waiting
事象待ち制御部332によってブロック受信方式が選択されているコネクションのコネクションオブジェクト322への参照は、ブロック受信コネクション管理テーブル342に格納されている。このブロック受信コネクション管理テーブル342には、コネクションごとにそのコネクションからデータを受け取った時刻が管理されている。この受信時刻は受信を行うたびに時計回路218の計時する時刻で更新され、常に一番最後に受信を行った時刻の情報となっている。
The reference to the
また、非ブロック受信方式が選択されているコネクションへのコネクションオブジェクト322への参照は、非ブロック受信コネクション管理テーブル341に格納されている。この非ブロック受信コネクション管理テーブル341にも、ブロック受信コネクション管理テーブル342と同様にコネクションごとに最新の受信時刻が管理されている。事象待ち制御部332は、このテーブルに格納されたコネクションについて、受信可能なコネクション一覧を作成する多重受信待ちを行っている。
Further, the reference to the
ブロック受信制御部334は、ブロック受信スレッド313上で動作するプログラムによって実現されており、事象待ち制御部332によって割り当てられたコネクションについて受信処理を行っている。ブロック受信制御部334は、一度割り当てられたコネクションから連続してデータを受信するように動作する。ブロック受信制御部334は、ブロック受信スレッド313において受信したデータを、実行スレッド制御部331を介して、ユーザプログラム部335に受け渡す。これにより、受信処理の後に引き続く他の処理を、ユーザプログラム部335にアプリケーションスレッド314で行わせ、ブロック受信制御部334はブロック受信スレッド313上で直ちに次の受信処理を行うことができる。したがって、連続して通信が行われる場合は少ないオーバーヘッドで通信処理を行うことができる。
The block
非ブロック受信制御部333は、非ブロック受信スレッド312上で動作するプログラムによって実現されている。事象待ち制御部332によって割り当てられたコネクションについて受信データが存在するときにその受信処理を行っている。本実施例では、事象待ち制御部332により、常に受信可能になってから非ブロック受信制御部333が受信動作を行うようになっている。もし受信データが存在しないときに受信を行うと、非ブロック受信方式では受信データが無いという結果が直ちに返却される。ブロック受信制御部334と同様に、非ブロック受信制御部333は非ブロック受信スレッド312において受信したデータをユーザプログラム部335に受け渡し、自らは受信処理以外の処理を行わないようになっている。
The non-block
ユーザプログラム部335は、アプリケーションスレッド314上で動作するプログラムによって実現されており、実行スレッド制御部331を介して、ブロック受信制御部334および非ブロック受信制御部333から受け取ったクライアントプログラム部からの受信データと処理要求に応じた処理を行うようになっている。受信以外の処理時間が極端に長いデータが存在する可能性もあり、データごとに処理時間が不均一な場合でも、このようにユーザプログラム部335が受信とは別のスレッドで処理を行うことで、受信に用いられるスレッドには影響が及ばないようになっている。もちろん、このようなデータ処理は、アプリケーションスレッド314で行わず、そのままブロック受信スレッド313および非ブロック受信スレッド312で行うようにすることもできる。サーバプログラム部301以外にサーバ201上でCPUやメモリなどのリソースを使用して動作しているプログラムが存在する場合、スレッドの数、つまり実行多重度の数は、たとえば、サーバプログラム部301が始動したときのCPU211の使用率に基づいて決定するようにして、サーバ201全体的に処理能力が低下するのを防ぐ。また、ユーザプログラム部335でのデータ処理においても、データ受信と同様、アプリケーションスレッド314を1つのコネクションに専有させ処理を行わせるものと、それ以外とに分離することもできる。
The user program unit 335 is realized by a program operating on the
図3は、サーバプログラム部全体の処理の流れを表わしたものである。図1および図2と共に説明を行う。サーバプログラム部301は、サーバ201のOSからサーバとしてコネクションを制御する処理を開始する要求を受信すると(ステップS401:Y)、まず1つのスレッド上でサーバプログラム部301の動作を開始させる(ステップS402)。このスレッドは説明のために初期スレッドと呼ぶことにする。初期スレッドはOSがサーバプログラム部301の処理を開始するときに生成されるものであってもよいし、あるいは元々OSが行う様々な処理用に確保していたスレッドのうちの1つであってもよい。サーバプログラム部301は事象待ちスレッド311、ブロック受信スレッド313、非ブロック受信スレッド312、およびアプリケーションスレッドといった各スレッドを生成し(ステップS403)、各スレッド上で、それぞれのプログラム部が動作を開始する(ステップS404)。ここから、サーバプログラム部301の処理は各スレッドにまたがって複数のプログラム部により並列で行われるようになり(ステップS405)、OSから停止要求を受信するまで動作し続ける(ステップS406:N)。この並列で行われる各プログラム部の処理については、後で別途説明を行う。初期スレッドは図2には図示しないスレッドとしてそのままサーバプログラム部301の全体を制御するために確保しておいてもよいし、必要なければ他のプログラムの処理を行うために使用するようにしてもよい。サーバプログラム部301はOSから停止要求を受信すると(ステップS406:Y)、各プログラム部を停止させ(ステップS407)、全体的に動作を終了する(エンド)。スレッドの数に応じて同時に行うことができる処理の数は増すが、スレッド数を必要以上に増やすと、CPUの処理能力が分散されることになり、スレッド1つ1つの処理能力が低下してしまう。したがって、サーバプログラム部301は、必要なときにだけスレッドを生成し、不必要なときには削除するような構成にしてもよい。しかし、この場合でも、事象待ちスレッド311は、クライアントからの接続要求を受けるために常に存在している方がのぞましい。ところで、スレッドの生成および削除を行うために必要な処理は一般的に多く、頻繁にこれを行うと結局CPU211の負荷を増すことになってしまう。このため、サーバプログラム部301は、その起動時に全てのスレッドを生成すると、停止するまでそのまま動作させ続けたほうが効率的である。本明細書でも、サーバプログラム部301の動作中にスレッドの生成および削除は行わない場合について説明を行う。
FIG. 3 shows the processing flow of the entire server program unit. The description will be made with reference to FIGS. When the
図4は、サーバプログラム部の行う処理のうちの事象待ち制御部の処理の流れを表わしたものである。図1および図2と共に説明を行う。事象待ち制御部332はサーバプログラム部301により、事象待ちスレッド311上で始動すると、まずクライアント203からの接続要求を受けるための準備を行い、着信待ちの状態を開始する(ステップ451)。着信待ちの開始は、通信制御アクセスライブラリ330を起動することで実行される。実際には、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルを用いる場合は、指定したポート番号でサーバソケットを作成し、クライアント203からの着信を待つ状態を作り出す。TCP/IPでは、1つのIPアドレスは複数のポートから構成され、通信を行うには、IPアドレスとポート番号の指定を行う。例えば、1つのコンピュータでブラウザとメーラのような複数のプログラム部により通信を行う場合がある。このとき、どのプログラム部のための通信データかを指定するために、プログラムにポート番号が割り当てられている。ソケットとはIPアドレスとポート番号の組を指したものである。つまり、ソケットはプログラム部が他の装置のプログラムにより実現されるプログラム部と通信を行うときの、仮想的なインタフェースとして動作している。前述したように、通信制御アクセスライブラリ330は、BSD SOCKETをベースとしたもので実現することができ、これは現在主流のソケットである。この着信を待つものは、サーバソケットを示すファイル記述子やソケットオブジェクトとしても扱われるが、ここでは、これらを総称して着信待ちオブジェクトと呼ぶ。
FIG. 4 shows the flow of processing of the event waiting control unit among the processing performed by the server program unit. The description will be made with reference to FIGS. When the event waiting
事象待ち制御部332は停止要求を受信すると(ステップS452:Y)、その処理を終了する(エンド)。停止要求を受信しないうちは(ステップS452:N)、事象待ちスレッド311上で処理を続行し、まず、非ブロック受信のための多重受信待ちを行う(ステップS453)。多重受信待ちとは、非ブロック受信コネクション管理テーブル341に登録された、非ブロック受信に割り当てられたコネクションを対象にして行われ、データが受信可能になるまで待つ処理である。これは、例えば、UNIX(登録商標)(UNiplexed Information and Computing System) OSでは「select()」や「poll()」という名前のシステムコールやライブラリとして、サンマイクロシステム(Sun Microsystems)社のプログラミング言語であるJAVA(登録商標)ではセレクタという名前のサービスとして提供されている。具体的には、これらの関数やサービスは、サーバプログラム部301により呼び出されると、OSの実行によりバッファリングしたコネクションからのデータが、バッファメモリに存在するかどうかを走査し、1つ以上のデータを見つけた時点で、それをサーバプログラム部301に返却するようにして動作している。データが見つからなければ、見つかるまで走査が繰り返される。ここでは、このセレクタを利用してOSの実行によりバッファメモリにコネクションからの受信データがバッファリングされたかどうかを走査し、多重受信待ちの結果を得るとして説明を行うことにする。
When receiving the stop request (step S452: Y), the event waiting
図5は、多重受信待ちの結果の例を表わしたものである。図2と共に説明を行う。多重受信待ちの結果は、接続中のコネクションそれぞれに対して、バッファメモリにOSの実行によりバッファリングしたデータの有無を表わす情報で構成されている。セレクタによる走査結果が報告されるときは、必ず1つ以上のコネクションからサーバプログラム部301がすぐに受信可能なデータが存在するときである。この図5の例では、クライアントxからのデータがすでにバッファメモリに存在することを表わしている。また、クライアントyからのデータはまだ存在しない。このような情報が接続するクライアントの分、得られるようになっている。
FIG. 5 shows an example of a result of waiting for multiple reception. This will be described with reference to FIG. The result of waiting for multiple reception is composed of information indicating the presence / absence of data buffered by execution of the OS in the buffer memory for each connection being connected. The scanning result by the selector is always reported when there is data that the
図4に戻って、図5の多重受信待ちの結果の例を基にして説明を続ける。ステップS451の着信待ちおよびステップS453の多重受信待ちを開始した結果、新たなクライアントから接続を要求されたか、あるいは多重受信待ちの結果が報告された場合には、それぞれに応じた処理が行われる。そこで、処理対象が発生すると、これが2つのうちのどちらであるかを判断する判断処理が行われる(ステップS454)。これらの処理対象に応じた処理やそれに関するデータをまとめて処理対象オブジェクトとする。処理対象オブジェクトが着信待ちオブジェクトの場合(Y)、接続要求元のクライアントに対するコネクションオブジェクト322を作成し、その参照を非ブロック受信コネクション管理テーブル341に格納する(ステップS455)。一方、処理対象オブジェクトが着信待ちオブジェクトではない場合(ステップS454:N)、つまり、セレクタによる走査結果を受けた場合、図5を例とすると、クライアントxからのデータ受信を非ブロック受信制御部333またはブロック受信制御部334のどちらで行わせるか決定する処理を行う。まず、ブロック受信スレッド313に空きがあるかどうかを調べる(ステップS456)。空きがあれば(Y)、実行スレッド制御部331を介して処理要求をブロック受信制御部334に行い、ブロック受信スレッド313上で処理させるようにして(ステップS457)、このクライアントxとのコネクションをブロック受信コネクション管理テーブル342に登録する。ブロック受信スレッド313に空きがなければ(ステップS456:N)、受信処理を非ブロック受信スレッド312で行うようにする。非ブロック受信制御部333は複数のスレッドで順次受信処理を行うがスレッド数以上のコネクションを扱っている状態のとき、実際の受信処理が開始されるまで待ち時間が発生する。そこで、非ブロック受信制御部334に受信処理要求を送信する前に受信時刻を更新しておく(ステップS458)。その後、実行スレッド制御部331を介し、非ブロック受信スレッド312に対し受信処理の要求を送信する(ステップS459)。
Returning to FIG. 4, the description will be continued based on the example of the result of waiting for multiple reception in FIG. As a result of starting the waiting for incoming call in step S451 and waiting for multiple reception in step S453, when a connection is requested from a new client or a result of waiting for multiple reception is reported, processing corresponding to each is performed. Therefore, when a processing target is generated, a determination process is performed to determine which of the two is to be processed (step S454). The processing according to these processing targets and the data related thereto are collectively set as a processing target object. If the object to be processed is an incoming call waiting object (Y), a
このようにして、コネクションオブジェクトを作成してその参照を非ブロック受信コネクション管理テーブルに格納するか、ブロック受信制御部334または非ブロック受信制御部333に処理を割り当てるかした後(ステップS455、ステップS457、ステップS459)、処理対象オブジェクトを全て処理済みであれば(ステップS460:Y)、スレッドの停止要求を受信しないかぎり(ステップS452:N)、ステップS453の多重受信待ちの再開から処理を繰り返す。また、処理対象オブジェクトが残っていれば(ステップS460:N)、全てなくなるまでステップS454からの処理を繰り返す。ここでは、クライアントから接続要求を受けた場合、ステップS455でコネクションオブジェクト作成後、参照を非ブロック受信コネクション管理テーブル341に格納するとした。しかし、ブロック受信スレッド313に空きがあれば、このコネクションオブジェクト322をブロック受信コネクション管理テーブル342に登録して、ブロック受信制御部334で行うようにしてもよい。しかし、接続だけ事前に行い、通信を行わないケースもあるため、接続の時点では非ブロック受信スレッド312で通信制御を行うことが望ましい。一般に、接続の処理は相手を認識し接続可否を判断する必要があるため通信そのものの処理に比べ処理量が多い。このため、サーバ201としては、事前接続を行いコネクションを維持するという形態をとる方が、より多くのコネクションに対して高いスループット(Throughput)を実現して、効率よい運用が可能になる。したがって、非ブロック受信方式で同時に扱えるコネクション数に対する自由度を維持しながらも、ブロック受信方式を一部のコネクションに適用することで、全体としての性能を向上させる本発明においては、接続時点ではブロック受信方式を選択するのではなく非ブロック受信方式を選択しておき、実際の通信が発生したときにブロック受信制御を選択することが効果的である。
In this way, after creating the connection object and storing the reference in the non-block reception connection management table or assigning the process to the block
図6は、サーバプログラム部の行う処理のうちブロック受信制御部の処理の流れを表わしたものである。図1および図2と共に説明を行う。ブロック受信制御部334はサーバプログラム部301によりブロック受信スレッド313上で始動すると、まず事象待ち制御部332から実行スレッド制御部331を介して処理要求が送られるのを待つ(ステップS501)。ブロック受信制御部334は停止要求を受信すると(ステップS502:Y)、その処理を終了する(エンド)。停止要求を受信しないうちは(ステップS502:N)、ブロック受信スレッド313上で処理を続行し、処理要求を受信するまで待機する(ステップS503:N)。事象待ち制御部332の図4のステップS457の処理により、受信可能データをブロック受信で受信処理するようブロック受信制御部334に処理要求が送られると、この処理要求を受信し(ステップS503:Y)、データ受信を行う(ステップS504)。これは通常のブロック受信方式で行われるため、データを待ち合わせる待ち時間を有する受信処理である。この待ち時間には所定の値(制限時間)が設定されている。
FIG. 6 shows the flow of processing of the block reception control unit among the processing performed by the server program unit. The description will be made with reference to FIGS. When the
事象待ち制御部332は、図4のステップS454で受信可能データが処理対象として存在するとして、ステップS457に至りブロック受信制御部334に処理要求を送信している。したがって、事象待ち制御部332から処理要求を受信した直後のデータ受信は、即座に行われる。しかし、通常のブロック受信制御部334の動作では、データ受信を行うまでに時間が掛かる場合もある。これが所定の値を超えてタイムアウトになると(ステップS505:Y)、このクライアント203からのデータ受信は非ブロック受信方式で行うように、コネクションへの参照をブロック受信コネクション管理テーブル342から非ブロック受信コネクション管理テーブル341へと移動させる(ステップS506)。これにより、このブロック受信スレッド313は空きスレッドとなり、ステップS501の処理に戻って、次のコネクションが割り当てられるのを待つようになる。
The event waiting
一方、タイムアウトすることなく受信が行われると(ステップS505:N)、続いてその受信データが正常なものかどうかの判断処理が行われる(ステップS507)。受信結果が正常でなかった場合(N)、その原因を記録したエラーログを作成し(ステップS508)、そのコネクションへの参照をブロック受信コネクション管理テーブル342から削除する(ステップS509)。これにより、このブロック受信スレッド313は空きスレッドとなり、ステップS501の処理に戻る。受信が異常と判断される原因としては、例えば、データの送信元であるクライアント203側がデータ受信処理が行われる前にコネクションを切断した場合、受信したもののその受信結果が異常である場合が考えられる。このようにして作成されたエラーログは、サーバ201の管理者あるいはクライアント203の利用者に通知するなどして利用することができる。
On the other hand, if reception is performed without time-out (step S505: N), subsequently, a determination process is performed to determine whether the received data is normal (step S507). If the reception result is not normal (N), an error log recording the cause is created (step S508), and the reference to the connection is deleted from the block reception connection management table 342 (step S509). As a result, the
受信が正常に行われれば(ステップS507:Y)、受信時刻を更新する(ステップS510)。続いて受信したデータを処理要求と共に実行スレッド制御部331を介して、アプリケーションスレッド314上のユーザプログラム335に受け渡す(ステップS511)。ここでスレッド停止要求を受信すれば(ステップS512:Y)、処理を終了し(エンド)、受信しなければ(ステップS512:N)、ステップS504に戻って次のデータ受信を行う処理を繰り返す。
If the reception is performed normally (step S507: Y), the reception time is updated (step S510). Subsequently, the received data is transferred together with the processing request to the user program 335 on the
図7は、サーバプログラム部の行う処理のうち非ブロック受信制御部の処理の流れを表わしたものである。図1および図2と共に説明を行う。非ブロック受信制御部333はサーバプログラム部301により非ブロック受信スレッド312上で始動すると、まず事象待ち制御部332から実行スレッド制御部331を介して処理要求が送られるのを待つ(ステップS551)。非ブロック受信制御部333は停止要求を受信すると(ステップS552:Y)、その処理を終了する(エンド)。停止要求を受信しないうちは(ステップS552:N)、非ブロック受信スレッド312上で処理を続行し、処理要求を受信するまで待機する(ステップS553:N)。
FIG. 7 shows the flow of processing of the non-block reception control unit among the processing performed by the server program unit. The description will be made with reference to FIGS. When the non-block
事象待ち制御部332の図4のステップS459の処理により、受信可能データを非ブロック受信で受信処理するよう非ブロック受信制御部333に処理要求が送られると、この処理要求を受信し(ステップS553:Y)、データ受信を行う(ステップS554)。事象待ち制御部332は、図4のステップS454で受信可能データが処理対象として存在するとして、ステップS459に至り非ブロック受信制御部334に処理要求を送信している。したがって、非ブロック受信制御部334でのデータ受信は処理要求を受けるとすぐにそのデータの受信を行うようになっている。
When the processing request is sent to the non-blocking
受信が正常に行われなければ(ステップS555:N)、その原因を記録したエラーログを作成する(ステップS556)。さらに、このコネクションへの参照を非ブロック受信コネクション管理テーブル341から削除し(ステップS557)、ステップS551の事象待ち制御部332からの処理要求を待つ処理に戻って、再び同様に非ブロック受信方式での受信処理を繰り返す。
If the reception is not performed normally (step S555: N), an error log recording the cause is created (step S556). Further, the reference to this connection is deleted from the non-blocking reception connection management table 341 (step S557), and the process returns to the process of waiting for the processing request from the event waiting
一方、受信が正常に行われれば(ステップS555:Y)、受信したデータを処理要求と共に実行スレッド制御部331を介して、アプリケーションスレッド314上のユーザプログラム335に受け渡す(ステップS558)。そして、この受信データがそのコネクションからの最後のデータであるかどうかを判断する処理を行う(ステップS559)。これは、ファイルの終端を表わすEOF(End of File)コードが、受信データとともに受け取った受信結果の概要を表わす情報に含まれているかどうかで分かるようになっている。最後のデータであれば(Y)、ステップS557の非ブロック受信コネクション管理テーブル341からこのコネクションへの参照を削除する処理を行った後に、一方、最後のデータでなければ(ステップS559:N)、そのままステップS551の事象待ち制御部332からの処理要求を待つ処理に戻って、再び同様に非ブロック受信方式での受信処理を繰り返す。
On the other hand, if the reception is normally performed (step S555: Y), the received data is transferred to the user program 335 on the
このように、非ブロック受信制御部333は、1回、処理要求を受信するごとに、そのスレッドで処理するコネクションを切り替えるようになっている。これにより、少ない数のスレッドを、特定のコネクションに専有させることなく、多くのコネクションに開放することが可能である。なお、非ブロック受信制御部333の処理に、受信時刻を更新する処理が含まれないのは、図4の事象待ち制御部332の処理のステップS458によりすでに行われているためである。前述したように、非ブロック受信スレッド312の数は、非ブロック受信方式に割り当てられたコネクションの数より少い可能性があり、このとき、図7のような非ブロック受信制御部333の処理は開始されない。したがって、事象待ち制御部332の処理で、非ブロック受信制御部333に送信された処理要求は、非ブロック受信スレッド312上で実行中の処理が終了し、空きスレッドができるまで、実行スレッド制御部331のキューに保存される。このため、スレッド数以上のコネクションにおいて受信事象が同時に発生したときには待ちが発生するが、これらは順次受信処理されるので、ブロック受信方式のように1つのコネクションに専有されてしまうことはない。つまり、接続相手の数に制限されることがないので、サーバシステムとしてはより広い分野に利用できるという拡張性が備わったものとなる。
As described above, the non-block
以上説明したように、本実施例によれば、多数のコネクションを同時に扱うサーバプログラム部301において、通信頻度に応じてブロック受信制御部334と非ブロック受信制御部333を選択することができるようにした。これにより、通信頻度の高いコネクションにはブロック受信制御部334でスループットの高い通信を行うことを可能にし、非ブロック受信制御部333でこれ以外のコネクションに対して通信の多重処理を行うことを可能にした。また、ブロック受信制御部334で制御するコネクション数を一定数以上にはしないことで、コンテキスト数の増加を抑え、サーバプログラム部301全体としての処理能力低下を防ぐこともできるようにした。さらに、ブロック受信制御部334に割り当てたコネクションからのデータ受信に制限時間を設け、タイムアウトすると非ブロック受信制御部333に割当を変更するようにした。サーバには、ブロック受信方式か非ブロック受信方式のどちらかのサーバプログラムが実装され、接続相手の数を制限しない場合、非ブロック受信方式をセレクタと組み合わせたものとなるのが一般的である。しかし、接続相手の中に1つでも高い頻度で通信を行うものがあると、セレクタの走査によるオーバーヘッドが問題になってしまう。しかし、本実施例によれば、通信頻度の高い接続相手には、ブロック受信方式を用いることができるので、セレクタによる走査は無通信あるいは通信頻度の低い接続相手のみに対して行われる。このため、走査オーバーヘッドを低減させることができる。このように、動的にコネクションの割当を変更することで、本発明のデータ処理サーバは、接続の可能なコネクション数に対して自由度を維持しつつ、同時に高い通信性能を実現することができる。
As described above, according to the present embodiment, the
従来、イベント型のプログラムを利用した非ブロック受信方式が提案されている。イベント型のプログラムでは、ある決まったイベントが発生することにより、プログラムの別の処理が誘発される仕組みになっている。たとえば、OSによりコネクションからのデータがバッファメモリにバッファリングされた、というイベントにより誘発されて、データ受信およびデータ処理が開始される。これによれば、セレクタによりバッファリング済みのデータの有無を走査する必要がない。このため、走査によるオーバーヘッドを省くことができ、通信頻度の高いコネクションに対しても、走査時間に影響される処理効率の悪化の問題を排除することができる。このイベントドリブンの通信プログラムを実現するものとして、たとえば、UNIX(登録商標)互換のOSであるBSD(Berkeley Software Distribution)では「kqueue」、同じくUNIX(登録商標)互換のOSであるLinuxでは「epool」、さらにマイクロソフト(Microsoft)社のOSであるウィンドウズ(登録商標)(Windows(登録商標))では「BeginRecv」や「EndRecv」といった関数が提供されている。このようなイベント型のプログラムは、各処理の呼び出し関係がはっきりしたブロック受信方式および非ブロック受信方式のプログラムとは構造が大きく異なっている。ところが、既存のアプリケーションには、セレクタを用いた非ブロック受信方式により設計されたプログラムで実現されているものが多い。これらを新たに呼び出し関係のはっきりしないイベント型のプログラムに変更するには、多大な労力が必要とされるが、本発明の通信制御方式を使用すれば、より少ない労力でイベント型のプログラムに匹敵する効率のよいデータ受信を行うことができる。また、イベント型のプログラムでは、OSあるいはライブラリが優先的に処理するコネクションを決定してしまう。ライブラリとは複数のプログラムにわたって汎用的に使われるデータや関数をまとめたもので、OSと同様、サーバプログラムとは別に構成されたものであるため、自由にその動作を変更することができない。本発明のデータ処理方法によれば、コネクションの使用頻度の計算をサーバプログラム上に実装でき、イベント型と同様に優先するコネクションを動的に変更することが可能なだけでなく、利用者が任意に優先させるコネクションを変えることもできる。 Conventionally, a non-block reception method using an event type program has been proposed. In an event-type program, when a certain event occurs, another process of the program is induced. For example, data reception and data processing are started by being triggered by an event that data from the connection is buffered in the buffer memory by the OS. According to this, it is not necessary to scan the presence / absence of data buffered by the selector. For this reason, overhead due to scanning can be eliminated, and the problem of deterioration in processing efficiency affected by scanning time can be eliminated even for connections with high communication frequency. As an implementation of the event-driven communication program, for example, “BSD” (Berkeley Software Distribution) compatible with UNIX (registered trademark) is “kqueue”, and Linux (Linux) is also compatible with “epool” (epool). In addition, functions such as “BeginRecv” and “EndRecv” are provided in Windows (registered trademark), which is an OS of Microsoft Corporation. Such an event-type program is significantly different in structure from a block reception type program and a non-block reception type program in which the calling relationship of each process is clear. However, many existing applications are realized by a program designed by a non-block reception method using a selector. It takes a lot of effort to change these to event-type programs with unclear calling relations, but if the communication control method of the present invention is used, it will be comparable to event-type programs with less effort. Efficient data reception. In an event type program, the OS or library preferentially processes connections to be processed. A library is a collection of general-purpose data and functions over a plurality of programs. Like a OS, a library is configured separately from a server program, and thus its operation cannot be freely changed. According to the data processing method of the present invention, the calculation of the connection usage frequency can be implemented on the server program, and not only the priority connection can be dynamically changed in the same manner as the event type, but also the user can arbitrarily You can also change the connection to give priority to.
ここでは、TCP/IPなどの通信プロトコルを使用し、LANやインターネットなどを介し互いに通信を行うプログラムのうち、サーバプログラムについて説明を行った。本発明は、多数のコネクションを同時に処理するプログラムにおいてより効果的であるが、クライアントプログラムにおいて同じ実装を行うことももちろん可能である。 Here, the server program is described among the programs that use a communication protocol such as TCP / IP and communicate with each other via a LAN, the Internet, or the like. The present invention is more effective in a program that processes a large number of connections simultaneously, but it is of course possible to implement the same implementation in a client program.
<本発明の変形例> <Modification of the present invention>
図8は、本発明の変形例のサーバプログラム部の行う処理のうちの事象待ち制御部の処理の流れを表わしたものである。この図8は実施例の図4に対応するものであり、図4と同一の部分は同一のステップ番号を付しており、適宜説明を省略する。またステップS454以前の処理は図示を省略している。実施例の事象待ち制御部332をこの変形例では事象待ち制御部332Aとしている。また、実施例のブロック受信制御部334をこの変形例ではブロック受信制御部334Aとしている。これらは、それぞれ実施例とは異なる処理を行うプログラムにより実現されているためである。図2と共に説明を行う。事象待ち制御部332Aは受信可能なデータがあると、そのデータ受信をブロック受信制御部334Aあるいは非ブロック受信制御部333のいずれかで行わせるかを、それぞれのコネクションの最新の受信時刻を元に判断するようになっている。図8のステップS456で、ブロック受信スレッド313に空きがない場合(N)、受信時刻の比較を行う(ステップS601)。受信時刻の比較には、ブロック受信コネクション管理テーブル342および非ブロック受信コネクション管理テーブル341の受信時刻が利用される。ここでは、受信可能データのある非ブロック受信制御部333に割り当てられたコネクションの受信時刻が、ブロック受信制御部334Aに割り当てられたいずれかのコネクションの受信時刻より新しいものであるかどうかで判断されることになる(ステップS602)。新しければ(Y)、ブロック受信制御部334Aに割り当てられたコネクションのうち、最も受信時刻の古いものと、割り当ての交換が行われ(ステップS603)、ステップS460の処理に進む。古ければ(ステップS602:N)、非ブロック受信制御部333に割り当てたままでその後の処理が行われる(ステップS458〜ステップS460)。
FIG. 8 shows the flow of processing of the event waiting control unit among the processing performed by the server program unit of the modification of the present invention. FIG. 8 corresponds to FIG. 4 of the embodiment, and the same parts as those in FIG. 4 are denoted by the same step numbers, and description thereof will be omitted as appropriate. In addition, the processes before step S454 are not shown. The event waiting
図9は、変形例のサーバプログラム部の行う処理のうちブロック受信制御部の処理の流れを表わしたものである。この図9は実施例の図6に対応するものであり、図6と同一の部分は同一のステップ番号を付しており、適宜説明を省略する。図2と共に説明を行う。ブロック受信制御部334Aはデータ待ちを含むデータ受信処理を行っているときに(ステップS504)、タイムアウトしていなくても(ステップS505:N)、事象待ち制御部332Aにより非ブロック受信スレッド312に割り当ての変更を要求されると(ステップS610:Y)、参照を非ブロック受信コネクション管理テーブル342に参照を移し割り当てを変更する(ステップS506)。変更を要求されなければ(ステップS610:N)、そのままブロック受信方式でデータ受信が行われる。
FIG. 9 shows the flow of processing of the block reception control unit among the processing performed by the server program unit of the modification. FIG. 9 corresponds to FIG. 6 of the embodiment, and the same parts as those in FIG. 6 are denoted by the same step numbers, and description thereof will be omitted as appropriate. This will be described with reference to FIG. When the block reception control unit 334A is performing data reception processing including data waiting (step S504), even if the timeout has not occurred (step S505: N), the event waiting control unit 332A assigns it to the
この変形例のデータ処理サーバによれば、ブロック受信制御部334Aに割り当てられたコネクションがタイムアウトすることなく、頻繁に通信を行っている場合でも、非ブロック受信制御部333に割り当てられたコネクションのうち、より頻繁に通信を行っているものがあれば、割り当ての変更が可能である。しかし、本来、通信が頻繁でなく、たまたま連続でデータを受信した非ブロック受信制御部333に割り当てられたコネクションの場合も、割り当ての変更が行われることが考えられる。したがって、ブロック受信コネクション管理テーブル342および非ブロック受信コネクション管理テーブル341に過去1日、あるいは過去1時間といった期間の通信回数の情報を記録するようにしてもよい。この回数に応じて、受信制御の割り当てを行うことも可能である。
According to the data processing server of this modification, even if the connection assigned to the block reception control unit 334A does not time out and the communication is frequently performed, the connection assigned to the non-block
200 データ処理システム
201 サーバ
203 クライアント
211 CPU
301 サーバプログラム部
311 事象待ちスレッド
312 非ブロック受信スレッド
313 ブロック受信スレッド
314 アプリケーションスレッド
321 ユーザオブジェクト
322 コネクションオブジェクト
330 通信制御アクセスライブラリ
331 実行スレッド制御部
332 事象待ち制御部
333 非ブロック受信制御
334 ブロック受信制御
335 ユーザプログラム部
341 非ブロック受信コネクション管理テーブル
342 ブロック受信コネクション管理テーブル
200
301
Claims (7)
この単位データ受信手段が受信した単位データの送信元を判別する送信元判別手段と、
前記送信元ごとに前記単位データの受信頻度を監視する受信頻度監視手段と、
前記単位データ受信手段が受信した単位データを一時格納するデータ格納手段と、
それぞれ所望の時間にわたって1つずつの送信元が専有する形で、同一送信元から間欠的にあるいは連続して送られてくる任意数の前記単位データの処理を、その送信元に対するデータ待ちが発生したときその送信元についてのデータが処理されるまで他の送信元に対する処理を行わないことで同一送信元からの単位データの受信頻度が高い場合にスループットの高い通信を可能にする1または複数の第1のデータ処理手段と、
前記単位データを1単位として各送信元が時分割で専有する形で、前記単位データを処理する1または複数の第2のデータ処理手段と、
前記単位データ受信手段が前記単位データを受信するたびに前記送信元判別手段の判別結果に応じて前記データ格納手段に格納された単位データを、前記単位データ受信手段の受信した単位データの受信頻度の高い送信元から順に前記第1のデータ処理手段に割り当てて受け渡す第1のデータ受け渡し手段と、
この第1のデータ受け渡し手段により前記第1のデータ処理手段に受け渡されず前記データ格納手段に格納されている単位データの有無を判別するデータ有無判別手段と、
このデータ有無判別手段の判別結果がデータ有りのとき、前記データ格納手段からこの単位データを前記第2のデータ処理手段に受け渡す第2のデータ受け渡し手段
とを具備することを特徴とするデータ処理装置。 Unit data receiving means for sequentially receiving unit data as data for each processing unit via a communication network;
Transmission source determination means for determining the transmission source of the unit data received by the unit data reception means;
Reception frequency monitoring means for monitoring the reception frequency of the unit data for each transmission source;
Data storage means for temporarily storing unit data received by the unit data receiving means;
Processing of an arbitrary number of unit data sent intermittently or continuously from the same transmission source in a form that one transmission source occupies for each desired time causes data waiting for that transmission source. One or a plurality of communications enabling high-throughput communication when the frequency of receiving unit data from the same transmission source is high by not performing processing for other transmission sources until the data for the transmission source is processed . First data processing means;
One or a plurality of second data processing means for processing the unit data in a form that each transmission source occupies in a time-sharing manner with the unit data as one unit;
Reception frequency of the received data unit of the transmission unit data stored in the data storage means according to the determination result of the original determination unit, said unit data receiving means each time the said unit data receiving means receives said unit data First data transfer means for assigning and transferring to the first data processing means in order from the highest transmission source;
Data presence / absence determining means for determining presence / absence of unit data stored in the data storage means without being delivered to the first data processing means by the first data delivery means;
A second data transfer means for transferring the unit data from the data storage means to the second data processing means when the determination result of the data presence / absence determination means is data. A data processing device.
この単位データ受信手段が受信した単位データのクライアントを判別するクライアント判別手段と、
このクライアント判別手段の判別したクライアントごとに前記単位データの受信頻度を監視する受信頻度監視手段と、
前記単位データ受信手段が受信した単位データを一時格納するデータ格納手段と、
それぞれ所望の時間にわたって1つずつのクライアントが専有する形で、同一クライアントから間欠的にあるいは連続して送られてくる任意数の前記単位データの処理を、そのクライアントに対するデータ待ちが発生したときそのクライアントについてのデータが処理されるまで他のクライアントに対する処理を行わないことで同一クライアントからの単位データの受信頻度が高い場合にスループットの高い通信を可能にする1または複数の第1のデータ処理手段と、
前記単位データを1単位として各クライアントが時分割で専有する形で、前記単位データを処理する1または複数の第2のデータ処理手段と、
前記単位データ受信手段が前記単位データを受信するたびに前記クライアント判別手段の判別結果に応じて前記データ格納手段に格納された単位データを、前記単位データ受信手段の受信した単位データの受信頻度の高いクライアントから順に前記第1のデータ処理手段に割り当てて受け渡す第1のデータ受け渡し手段と、
この第1のデータ受け渡し手段により前記第1のデータ処理手段に受け渡されず前記データ格納手段に格納されている単位データの有無を判別するデータ有無判別手段と、
このデータ有無判別手段の判別結果がデータ有りのとき、前記データ格納手段からこの単位データを前記第2のデータ処理手段に受け渡す第2のデータ受け渡し手段
とを具備することを特徴とするデータ処理サーバ。 Unit data receiving means for sequentially receiving unit data as data for each processing unit from a client via a communication network;
Client determination means for determining a client of unit data received by the unit data receiving means;
A reception frequency monitoring means for monitoring the reception frequency of the unit data for each client determined by the client determination means;
Data storage means for temporarily storing unit data received by the unit data receiving means;
When each client waits for data to be processed, any number of the unit data sent intermittently or continuously from the same client in a form that each client occupies for a desired time. One or a plurality of first data processing means for enabling high-throughput communication when the frequency of receiving unit data from the same client is high by not performing processing for other clients until data about the client is processed When,
One or a plurality of second data processing means for processing the unit data in a form that each client occupies in a time-sharing manner with the unit data as one unit;
Each time the unit data receiving unit receives the unit data, the unit data stored in the data storage unit according to the determination result of the client determining unit is changed to the reception frequency of the unit data received by the unit data receiving unit. First data transfer means for assigning and transferring to the first data processing means in order from the highest client;
Data presence / absence determining means for determining presence / absence of unit data stored in the data storage means without being delivered to the first data processing means by the first data delivery means;
Second data transfer means for transferring the unit data from the data storage means to the second data processing means when the determination result of the data presence / absence determination means is data present
And a data processing server .
請求項1記載のデータ処理装置と、
前記通信ネットワークを介してこのデータ処理装置にデータを送信するデータ送信手段を備えた1または複数のデータ処理要求装置
とを具備することを特徴とするデータ処理システム。 A communication network;
A data processing device according to claim 1;
One or more data processing requesting devices provided with data transmitting means for transmitting data to the data processing device via the communication network
And a data processing system .
通信ネットワークを介して1処理単位ずつのデータとしての単位データを順次受信する単位データ受信処理と、
この単位データ受信処理で受信した単位データの送信元を判別する送信元判別処理と、
前記送信元ごとに前記単位データの受信頻度を監視する受信頻度監視処理と、
前記単位データ受信処理で受信した単位データを一時格納するデータ格納処理と、
それぞれ所望の時間にわたって1つずつの送信元が専有する形で、同一送信元から間欠的にあるいは連続して送られてくる任意数の前記単位データの処理を、その送信元に対するデータ待ちが発生したときその送信元についてのデータが処理されるまで他の送信元に対する処理を行わないことで同一送信元からの単位データの受信頻度が高い場合にスループットの高い通信を可能にする1または複数の第1のデータ処理と、
前記単位データを1単位として各送信元が時分割で専有する形で、前記単位データを処理する1または複数の第2のデータ処理と、
前記単位データ受信処理で前記単位データを受信するたびに前記送信元判別処理の判別結果に応じて前記データ格納処理で格納された単位データを、前記単位データ受信処理で受信した単位データの受信頻度の高い送信元から順に前記第1のデータ処理に割り当てて受け渡す第1のデータ受け渡し処理と、
この第1のデータ受け渡し処理により前記第1のデータ処理に受け渡されず前記データ格納処理で格納されたままの単位データの有無を判別するデータ有無判別処理と、
このデータ有無判別処理の判別結果がデータ有りのとき、前記データ格納処理で格納した単位データを前記第2のデータ処理に受け渡す第2のデータ受け渡し処理
とを実行させることを特徴とするデータ処理プログラム。 On the computer,
Unit data reception processing for sequentially receiving unit data as data for each processing unit via a communication network;
A transmission source determination process for determining the transmission source of the unit data received in the unit data reception process;
A reception frequency monitoring process for monitoring the reception frequency of the unit data for each transmission source;
A data storage process for temporarily storing the unit data received in the unit data reception process;
Processing of an arbitrary number of unit data sent intermittently or continuously from the same transmission source in a form that one transmission source occupies for each desired time causes data waiting for that transmission source. One or a plurality of communications enabling high-throughput communication when the frequency of receiving unit data from the same transmission source is high by not performing processing for other transmission sources until the data for the transmission source is processed. First data processing;
One or a plurality of second data processing for processing the unit data in such a manner that each transmission source occupies the unit data as a unit in a time division manner;
The reception frequency of the unit data received in the unit data reception process, the unit data stored in the data storage process according to the determination result of the transmission source determination process every time the unit data is received in the unit data reception process A first data transfer process that assigns and transfers to the first data process in order from the highest transmission source;
A data presence / absence determination process for determining the presence / absence of unit data that is not transferred to the first data process and stored in the data storage process by the first data transfer process;
A second data transfer process for transferring the unit data stored in the data storage process to the second data process when the determination result of the data presence / absence determination process is data present
And a data processing program .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005100026A JP4265559B2 (en) | 2005-03-30 | 2005-03-30 | Data processing apparatus, data processing server, data processing system, and data processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005100026A JP4265559B2 (en) | 2005-03-30 | 2005-03-30 | Data processing apparatus, data processing server, data processing system, and data processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006277675A JP2006277675A (en) | 2006-10-12 |
JP4265559B2 true JP4265559B2 (en) | 2009-05-20 |
Family
ID=37212328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005100026A Expired - Fee Related JP4265559B2 (en) | 2005-03-30 | 2005-03-30 | Data processing apparatus, data processing server, data processing system, and data processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4265559B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008186388A (en) * | 2007-01-31 | 2008-08-14 | Mitsubishi Electric Corp | Interprocessor communication control device |
JP5614138B2 (en) * | 2010-07-08 | 2014-10-29 | 富士通株式会社 | Processor control program and control method thereof |
JP6977650B2 (en) | 2018-03-30 | 2021-12-08 | 富士通株式会社 | Anomaly detection method, anomaly detection program, and anomaly detection device |
-
2005
- 2005-03-30 JP JP2005100026A patent/JP4265559B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006277675A (en) | 2006-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3382953B2 (en) | Client management flow control method and apparatus on finite memory computer system | |
US8826284B1 (en) | Scalable task scheduling | |
CN101211277B (en) | Method of selecting one of execution schedules of guest OS and virtual machine monitor employing the method | |
CA2372092C (en) | A queuing model for a plurality of servers | |
JP4144897B2 (en) | Optimal server in common work queue environment | |
EP2551770B1 (en) | Data share system, data process apparatus, and computer-readable recording medium | |
WO2019144965A1 (en) | Mirror pull method and system therefor | |
CN101242392A (en) | Method, device and system for processing series service message | |
JP2011065645A (en) | Multi-core processor system | |
US20220318071A1 (en) | Load balancing method and related device | |
JP4265559B2 (en) | Data processing apparatus, data processing server, data processing system, and data processing program | |
WO2005116832A1 (en) | Computer system, method, and program for controlling execution of job in distributed processing environment | |
CN112104679B (en) | Method, apparatus, device and medium for processing hypertext transfer protocol request | |
CN111770026B (en) | Network flow control method and device | |
US20150127799A1 (en) | Hierarchical distribution of control information in a massively scalable network server | |
CN115576684A (en) | Task processing method and device, electronic equipment and storage medium | |
JP4620097B2 (en) | Virtual computer system and schedule adjustment method in the same system | |
JP2005309519A (en) | Telegram relay program and device | |
US10877800B2 (en) | Method, apparatus and computer-readable medium for application scheduling | |
JP2002342193A (en) | Method, device and program for selecting data transfer destination server and storage medium with data transfer destination server selection program stored therein | |
JP4336763B2 (en) | Job management system | |
JP2017033234A (en) | Request reception system, request reception method and program | |
JP2015153330A (en) | Virtual machine arrangement system and method | |
JP5488029B2 (en) | Distributed processing system, distributed processing method, and program | |
JPH1196108A (en) | Computer system and bus control device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090127 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4265559 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140227 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |