JP2009080587A - Data transfer server - Google Patents
Data transfer server Download PDFInfo
- Publication number
- JP2009080587A JP2009080587A JP2007248240A JP2007248240A JP2009080587A JP 2009080587 A JP2009080587 A JP 2009080587A JP 2007248240 A JP2007248240 A JP 2007248240A JP 2007248240 A JP2007248240 A JP 2007248240A JP 2009080587 A JP2009080587 A JP 2009080587A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- client terminal
- unit
- creation
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は情報処理技術に関し、特にネットワークを介してクライアント端末へデータを転送するデータ転送サーバに関する。 The present invention relates to information processing technology, and more particularly, to a data transfer server that transfers data to a client terminal via a network.
近年の情報処理技術の発展およびネットワーク環境の充実化に伴い、コンピュータや携帯端末を操作するユーザは、サーバに格納された所望のデータを種別やサイズなどを問わずに、容易に取得することが可能となっている。 With the development of information processing technology and the enhancement of network environment in recent years, users operating computers and mobile terminals can easily acquire desired data stored in the server regardless of type or size. It is possible.
それを実現するひとつの形態として、WWW(World Wide Web)システムによるドキュメントの閲覧が広く普及している。WWWシステムでは、ユーザが操作する端末で起動されたウェブブラウザにおいて所望のURL(Uniform Resource Locator)を指定すると、WWWサーバが、当該URLに対応するウェブページのデータをHTML(Hyper Text Markup Language)などの記述言語等で作成し、ユーザの端末(以下、クライアント端末と呼ぶ)に転送する。 As one form for realizing this, browsing of documents by a WWW (World Wide Web) system is widely used. In a WWW system, when a desired URL (Uniform Resource Locator) is specified in a web browser activated on a terminal operated by a user, the WWW server sends data of a web page corresponding to the URL to HTML (Hyper Text Markup Language) or the like. And is transferred to the user terminal (hereinafter referred to as a client terminal).
WWWサーバは膨大な数のクライアント端末からの要求に応じて処理を行う必要がある。そこでクライアント端末とのセッションを管理する機能をWWWサーバに設け、一のクライアント端末に対する継続的な処理を効率よく行う技術が提案されている(例えば特許文献1)。
上記のような技術は主にサーバ側でのリソース利用の効率化を図るためのものであるため、1度のデータ転送要求において発生し得る、クライアント端末側での不便を解消するものではなかった。例えば、サーバが備えたデータベースから大量の文書データをダウンロードしたい場合などにおいて、サーバが当該文書データに対し転送に必要な処理を行っている間、ユーザはクライアント端末側で場合によっては長時間待つことを強いられる。 The technology as described above is mainly for the purpose of improving the efficiency of resource use on the server side, so it has not solved the inconvenience on the client terminal side that may occur in one data transfer request. . For example, when a large amount of document data is to be downloaded from a database provided in the server, the user may wait for a long time on the client terminal side while the server performs processing necessary for transfer of the document data. Forced.
このような不便は、転送対象が文書データの場合のみならず、動画コンテンツやオーディオデータなどであっても、転送を行う前にサーバが形式変換などの処理を施すデータであれば共通して起こり得る。データ転送までの処理に時間を要する比較的大きなサイズのデータをネットワークを介して提供するサービスは増加し続けており、クライアント端末側で生じる転送処理待ちの状態がユーザに与えるストレスも看過できなくなっている。 Such inconvenience occurs not only when the transfer target is document data, but also with video data, audio data, etc., as long as the server performs data conversion such as format conversion before transfer. obtain. Services that provide relatively large data over a network that requires time to process data transfer continue to increase, making it impossible to overlook the stress placed on users due to the waiting state for transfer processing that occurs on the client terminal side Yes.
本発明はこうした状況に鑑みてなされたものであり、その目的は、サーバにおけるリソースを効率的に利用すると同時に、クライアント端末側での転送処理待ちの状態を改善することのできるデータ転送技術を提供することにある。 The present invention has been made in view of such a situation, and an object of the present invention is to provide a data transfer technique that can efficiently use resources in a server and improve a waiting state for transfer processing on the client terminal side. There is to do.
本発明のある態様は、データ転送サーバに関する。このデータ転送サーバは、ネットワークを介して接続したクライアント端末からの要求に従い、転送するデータを作成して前記クライアント端末に転送するサーバにおいて、転送するデータを作成するデータ作成部と、前記クライアント端末から前記サーバへ所定の時間間隔でアクセスを実行するプログラムコードを前記クライアント端末へ送信し、当該プログラムコードを実行したクライアント端末から前記サーバへのアクセスを検知したとき、前記データ作成部におけるデータの作成状況の情報を取得し前記クライアント端末に送信する転送管理部と、を備えたことを特徴とする。 One embodiment of the present invention relates to a data transfer server. In accordance with a request from a client terminal connected via a network, the data transfer server creates a data to be transferred and transfers the data to the client terminal. When the program code for executing access to the server at a predetermined time interval is transmitted to the client terminal and the access from the client terminal executing the program code to the server is detected, the data creation status in the data creation unit And a transfer management unit that acquires the information and transmits the information to the client terminal.
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described constituent elements and a representation of the present invention converted between a method, an apparatus, a system, etc. are also effective as an aspect of the present invention.
本発明によれば、クライアント端末での転送待ちの状態を改善しつつサーバのリソースを有効に活用することができる。 ADVANTAGE OF THE INVENTION According to this invention, the resource of a server can be used effectively, improving the state waiting for transfer in a client terminal.
図1は本実施の形態におけるデータ転送システムの構成を示している。データ転送システム10は、クライアント端末12とサーバ14とがネットワーク40を介して接続する構成を有する。クライアント端末12はサーバ14にデータの転送を依頼する。サーバ14は依頼されたデータに必要な処理を適宜施してクライアント端末12に転送する。WWWシステムを例にとると、クライアント端末12側では起動したウェブブラウザにおいてユーザが所望のURLを指定し、サーバ14がWWWサーバとして指定されたURLに基づきHTML文書などを生成しクライアント端末12に返す。ただし本実施の形態はWWWシステムに限らず、いかなる規模、いかなる種類のデータ転送システムにも適用できる。サーバ14が転送するデータは例えば、クライアント端末12において入力した検索キーワードに合致する特許データの一覧などである。
FIG. 1 shows a configuration of a data transfer system according to the present embodiment. The
クライアント端末12は、転送するデータの指定を含むデータ転送指示の入力を受け付ける入力部16、クライアント端末12における各種処理およびクライアント端末12全体の統括的な管理を行うクライアント演算処理部18、ネットワーク40を介してサーバ14との通信を行うインターフェースであるクライアント通信部20、およびサーバにおけるデータの作成状況の情報および転送されたデータに係る情報を出力する出力部22を含む。
The
サーバ14は、転送するデータの作成や作成状況の監視などを行うサーバ演算処理部24、サーバ演算処理部24における処理に必要なデータを格納する共有メモリ32、ネットワーク40を介してクライアント端末12と通信を行うインターフェースであるサーバ通信部34、および転送するデータを格納するデータベース36を含む。サーバ演算処理部24は、転送するデータの作成状況を監視しクライアント端末12に転送に係る情報を提供する転送管理部28、および転送するデータを作成してデータベース36に格納していくデータ作成部30を含む。
The
図1において様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、ネットワークを介して他の装置との通信を実現するプログラムなどによって実現される。 Each element described as a functional block for performing various processes in FIG. 1 can be configured with a CPU, a memory, and other LSIs in terms of hardware, and other devices via a network in terms of software. This is realized by a program that realizes communication with the computer.
例えばサーバ演算処理部24は単一のプロセッサまたは複数のサブプロセッサを備えたプロセッサユニットとすることができる。転送管理部28とデータ作成部30は、クライアント端末12からのデータ転送要求に従い生成される2つのプロセスであってもよい。サーバ演算処理部24はそれらの2つのプロセスを例えば並列に実行する。
For example, the server
ただし本実施の形態はこれに限らず、例えば転送管理部28、データ作成部30としてそれぞれ専用のプロセッサを備える構成としてもよい。以後の説明では転送管理部28とデータ作成部30は2つのプロセスとする。そして一のデータ転送要求に対して転送管理部28およびデータ作成部30に対応する一組のプロセスが生成されるとする。すなわちクライアント端末12から別のデータ転送要求がなされた場合や、複数のクライアント端末12からそれぞれデータ転送要求がなされた場合は、転送管理部28に対応するプロセスおよびデータ作成部30に対応するプロセスを要求の数に応じて生成する。以後の説明では転送管理部28に対応するプロセス、データ作成部30に対応するプロセスも、それぞれ単に転送管理部28、データ作成部30とも呼ぶ。
However, the present embodiment is not limited to this. For example, the
データ作成部30は、クライアント端末12においてユーザから要求されたデータを、クライアント端末12の種別、通信プロトコル、ユーザからの指定などの情報に応じた形式で作成する。作成するデータはウェブページ、テキストデータ、アーカイブ、圧縮データ、データストリームなど一般的なデータの形態のいずれでもよい。転送管理部28は、データ作成部30におけるデータ作成状況の情報を所定のタイミングで取得し、途中経過としてクライアント端末12に提供する。さらに、転送要求のあったデータの一部を、全データの作成完了を待たずにクライアント端末12に転送する。転送管理部28の詳細な構成については後述する。
The
クライアント端末12における入力部16は、キーボートや方向指示ボタン、マウス、トラックボール、ポインティングデバイスなど、コンピュータや携帯端末に一般的に備えられる、または接続可能なデバイスとすることもできるし、ウェブブラウザなど転送データの指定を行うことのできる画面を表示した表示装置とそれらのデバイスとの組み合わせとすることもできる。
The
クライアント端末12におけるクライアント演算処理部18は、単一のプロセッサまたは複数のサブプロセッサを備えたプロセッサユニットとすることができる。クライアント演算処理部18は、入力部16が受け付けたユーザのデータ転送要求の入力を検知し、サーバ14へ当該転送要求を行うのに必要な情報を生成する。またクライアント通信部20を介してサーバ14との通信のセットアップを行う。さらにサーバ14から送信されるデータの作成状況の情報、転送されたデータに係る情報、およびプログラムを認識し、プログラムを実行することなどにより、転送された情報が出力されるよう出力部22の制御を行う。
The client
出力部22は、表示装置、プリンタ、ハードディスクなどの記憶装置など、サーバ14から送信される情報を可視化、あるいはアクセス可能な形で実体化できるデバイスであってよい。あるいは、ウェブブラウザなど所定のプログラムをクライアント演算処理部18にて実行することにより表示装置に表示される画面とすることもできる。以後、出力部22を表示装置またはそれに表示される画面として説明する。
The
転送管理部28とデータ作成部30はプロセス間通信で情報の送受を行う。具体的には、データ作成部30は、自らが行っているデータの作成状況の情報を共有メモリ32に書き込む。転送管理部28は、共有メモリ32から当該情報を読み出し、クライアント端末12に送信する。作成状況の情報は、転送を要求された全データのうちデータ作成部30によって作成済みのデータの割合でもよいし、作成済みのデータのサイズや文書数などの絶対値であってもよい。
The
本実施の形態において、転送管理部28が共有メモリ32から作成状況の情報の読み出しを行う端緒は、クライアント端末12からのアクセスとする。そのためサーバ14の転送管理部28は、クライアント端末12に初回に作成状況の情報を送信する際、クライアント端末12からサーバ14へ所定の時間間隔で定期的にアクセスを行うプログラムコードを一緒に送信する。以後、このプログラムコードを「自動アクセスコード」と呼ぶ。そしてクライアント端末12のクライアント演算処理部18において自動アクセスコードが実行され、所定の時間間隔、例えば3秒間隔などで定期的にサーバ14へアクセスが行われると、それを検知した転送管理部28が共有メモリ32からその時点での作成状況の情報を読み出し、クライアント端末12に再度送信する。
In the present embodiment, the beginning of the
転送管理部28はさらに、所定量のデータが生成されるごとに当該データをクライアント端末12へ送信する。すなわち本実施の形態では転送を要求された全データが作成されるのを待たずに、作成済みの部分的なデータを逐次クライアント端末12に転送する。以後、クライアント端末12への転送単位である部分的なデータを「転送単位データ」と呼ぶ。たとえばクライアント端末12が10万件の文書データの転送を要求した場合、サーバ14は1000件目のデータが作成された時点で1000件分のデータをクライアント端末12に送信する。この例では結果的に、全データを100回に分割して転送することになる。転送単位はあらかじめ設定しておいてもよいし、ユーザが指定できるようにしてもよい。ユーザが指定した場合は、クライアント端末12からサーバ14へ送信されるデータ転送要求にその情報を含める。
The
一方クライアント端末12では、サーバ14の転送管理部28が送信した作成状況の情報を出力部22に表示する。出力部22には、例えば作成済みのデータのサイズや件数などの絶対値を文字で表示したり、転送を要求した全データに対する作成済みデータの割合をインジケータなどで表現した図形を表示したりする。またサーバ14から転送単位データが転送された場合、出力部22にはデータそのものを表示したり、各データを表すアイコンを表示したりする。または、サーバ14の転送管理部28はまず、転送単位データを格納したデータベース36など、データへのアクセスが可能なハイパーリンクを含むページのデータを先に送信し、クライアント端末12の出力部22へ表示するようにしてもよい。この場合はユーザが当該ハイパーリンクをクリックするなどしたときに、転送単位データがサーバ14からクライアント端末12へ転送される、という2段階の転送処理となる。
On the other hand, in the
以上のような構成とすることにより、クライアント端末12側でデータ転送の要求を行ったユーザは、サーバ14においてどの程度までデータの作成処理が進捗しているかを常時確認することができる。これにより、いつ転送されるかわからないデータをクライアント端末12の前で待ちつづける、といった状況を回避することができる。また、処理の停止、中断、処理速度の低下など、サーバ14で発生している問題をリアルタイムで認識できる。さらに、どの程度の時間で全データの転送が完了するのかを見積もることができ、データ転送の中止や別の処理の開始など、とるべき行動をユーザが検討する拠り所を与えることができる。
With the configuration described above, the user who has requested data transfer on the
ここで、作成状況の情報の送信をクライアント端末12からの定期的なアクセスによって実現することにより、クライアント端末12とサーバ14との接続がタイムアウトによって切断されるのを防止することもできる。クライアント端末12とサーバ14との間に一定期間のアクセスが発生しないと、通信を中継するプロキシサーバなどのアクセス制御用サーバ(図示せず)の設定によってはタイムアウトが発生し得る。するとクライアント端末12とサーバ14との通信が切断されデータの転送が中断してしまうほか、通信の切断と関わりなくサーバ14においてはデータの作成が続行し、サーバ14のリソースを無駄に使用することにもなる。そこで上述のように、クライアント端末12からのアクセスを端緒として作成状況の情報をサーバ14から送信するようにすれば、望まないタイムアウトの発生の防止とユーザによる作成状況の確認とを同時に実現することができる。
Here, by transmitting the creation status information by periodic access from the
さらに所定の転送単位である転送単位データが作成されたら随時、クライアント端末12に転送することにより、ユーザは先に転送された転送単位データを確認したりそれを用いてさらなる処理を行ったりできる。すなわち転送データ取得後の処理を、サーバ14のデータ作成と並列して行うことができる。結果としてユーザ側で処理の効率が向上する。この効果は転送を要求したデータが多いほど顕著になる。
Further, when transfer unit data, which is a predetermined transfer unit, is created, it is transferred to the
上述したように本実施の形態ではデータ転送を要求するユーザにとって、サーバ14におけるデータ作成時間がもたらすストレスを軽減することができるが、その機構を利用して、サーバ14におけるリソース使用の効率化をも実現する。すなわち、クライアント端末12においてユーザがデータ転送を中止した場合に、上記構成を利用してサーバ14における転送管理部28とデータ作成部30の処理、すなわちそれぞれに対応する2つのプロセスを終了する。
As described above, in the present embodiment, for users who request data transfer, the stress caused by the data creation time in the
具体的には、サーバ14の転送管理部28は、作成状況の情報および転送単位データの情報、あるいは転送単位データそのものをクライアント端末12に送信した都度、自らのプロセスを一旦終了する。そしてクライアント端末12からの定期的なアクセスによって当該プロセスを再度生成する。すると、クライアント端末12から所定時間のアクセスがなかった場合、転送管理部28は共有メモリ32に格納した作成状況の情報を読み出さなくなる。データ作成部30は、共有メモリ32に格納した作成状況の情報を転送管理部28が所定時間読み出していないことを検知した際、ユーザが転送を中止したと判断し自らの処理を終了する。より詳細な手順は後述する。
Specifically, each time the
本実施の形態では上述のように、データの作成状況の情報や転送単位データをクライアント端末12に随時送信することにより、ユーザがとるべき行動の選択肢を増やす。このような態様においてユーザは、全データの転送完了までに要する時間の把握や転送単位データの確認が可能となるため、予想外に時間を要する見通しであったりそれ以上のデータを必要としないことが判明した場合などに、データ転送を中止することが考えられる。このとき上述のような構成とすると、転送管理部28やデータ作成部30は、必要のない処理を行うことなくリソースを開放することができる。したがってサーバ14のリソース使用の無駄を発生させずに、データ転送を中止するという選択肢をユーザに与えることができる。
In the present embodiment, as described above, the data creation status information and the transfer unit data are transmitted to the
図2は上述の構成で行われるデータ転送処理の手順の概要を示すフローチャートである。まずユーザはクライアント端末12の入力部16に対し、所望のデータを指定してデータ転送を要求する入力を行う(S10)。するとクライアント端末12のクライアント演算処理部18は、当該要求を行う信号をクライアント通信部20を介してサーバ14へ発行する(S12)。サーバ14のサーバ通信部34が要求信号を受信すると、当該要求に対応するプロセスとして転送管理部28に対応するプロセスおよびデータ作成部30に対応するプロセスが起動する(S13のY、S14)。ここでクライアント端末12からのアクセスが初回でなければ(S13のN)、後述するようにデータ作成部30に対応するプロセスは実行中であるため、転送管理部28に対応するプロセスのみを生成する(S15)。そしてデータ作成部30によってデータ作成処理が行われる(S16)。各プロセスの起動および処理は一般的なOSが提供する機能を利用してよい。
FIG. 2 is a flowchart showing an outline of the procedure of data transfer processing performed in the above-described configuration. First, the user performs input for designating desired data and requesting data transfer to the
このとき前述のとおり、データ作成部30は作成が終了したデータから順にデータベース36に格納していくとともに、共有メモリ32に作成状況の情報を書き込んでいく。
At this time, as described above, the
転送管理部28はデータ作成処理開始後、所定のタイミングで共有メモリ32に書き込まれた作成状況の情報を読み出し、サーバ通信部34を介してクライアント端末12へ送信することにより、クライアント端末12の出力部22に当該情報を表示させる(S18)。例えばHTMLなどのマークアップ言語で、作成状況を表現するインジケータなどを表示させるページを記述し、送信する。この際、上述のとおり、自動アクセスコードも同時に送信する。これは例えば一般的に用いられる「Refresh」などのメソッドに、あらかじめ定めたアクセスを行わせる時間間隔を指定してHTML文書に含めることにより実現できる。
The
これによりクライアント端末12の出力部22に表示させた、作成状況の情報を表すインジケータなどが、所定の時間間隔ごとに、サーバ14にアクセスすることにより送信された新たな作成状況の情報に基づき更新されることになる。S18において転送管理部28により読み出された作成状況の情報において、所定量のデータ、すなわち転送単位データがデータベース36に蓄積されていないことが示されている場合は(S20のN)、転送管理部28に対応するプロセスをそのまま終了する(S24)。
As a result, the indicator indicating the creation status information displayed on the
データ作成部30によって一の転送単位データの作成が完了すると(S20のY)、転送管理部28がその情報をクライアント端末12に送信することにより、最終的にはデータベース36からクライアント端末12に、当該転送単位データがサーバ通信部34を介して転送される(S22)。転送単位データの転送手順、およびクライアント端末12における転送単位データの出力の仕方には上述のとおり様々な手法が考えられ、そのいずれを採用してもよい。
When the creation of one transfer unit data is completed by the data creation unit 30 (Y in S20), the
例えば転送管理部28は、転送単位データを格納したデータベース36へアクセス可能なURLとともにウェブブラウザを起動するプログラムをクライアント端末12に送信してもよい。これにはJAVA(登録商標)アプレットなど既存の技術を利用することができる。この場合、クライアント端末12の出力部22では、ウェブブラウザが自動で起動するとともに、指定されたURLへアクセスを開始することにより、転送単位データがウェブブラウザに表示されることになる。
For example, the
転送単位データの情報をクライアント端末12に転送した時点においても転送管理部28に対応するプロセスを一旦終了する(S24)。このような状態において、クライアント端末12の入力部16は、常時、ユーザからの当該転送の中止を受け付ける。転送を中止する入力があった場合は(S26のY)、上述のとおり、データ作成部30がそれを検知し、自らのプロセスを終了することによりデータ作成処理が停止する(S30)。なお図2のフローチャートでは転送中止の入力の検知をS26のステップで行ったが、同検知はクライアント端末12が転送を中止する旨の入力を受け付けた時点で速やかに行ってよく、それによりS30のプロセス終了のステップへ移行してよい。
The process corresponding to the
そして、ユーザからの転送を中止する入力がない限りは(S26のN)、次の転送単位データが作成されるまでは、転送管理部28のプロセス生成、出力部22に表示されたインジケータなど作成状況の表示の自動更新、転送管理部28のプロセス終了を繰り返し(S13、S15、S16、S18、S20のN、S24)、次の転送単位データが作成されたら新たなウェブブラウザを起動するなどして当該転送単位データを転送する(S20のY、S22)。上記処理を、最初にユーザが要求した全データの転送が完了するまで繰り返す(S28のN、S15〜S26)。そして全データの転送が完了したら(S28のY)、データ作成部30のプロセスを終了することにより、当該要求に対する処理を終える(S30)。S30のプロセス生成部のプロセス終了処理については後述する。
As long as there is no input for canceling the transfer from the user (N in S26), the process generation of the
図3は本実施の形態においてデータの転送処理を行っている際にクライアント端末12の出力部22に表示される画面の構成例を示している。表示画面50に複数表示されるウィンドウはそれぞれウェブブラウザに対応してもよいし、あるブラウザから派生したサブウィンドウなどでもよい。あるいは個別のウィンドウでなくてもよい。表示画面50は作成状況表示欄52と転送単位データ表示欄58a〜58cを含む。作成状況表示欄52は、図2のS20において表示または更新される、作成状況を表すインジケータ54、およびS18においてユーザがデータの転送を中止する際に押下する「キャンセル」ボタン56を含む。
FIG. 3 shows a configuration example of a screen displayed on the
転送単位データ表示欄58a〜58cはそれぞれ、図2のS24でサーバ14から転送された転送単位データを表示する。ここでは転送単位データごとに新たなウェブブラウザが起動する態様において3回の転送単位データを取得した状態を示している。したがって転送回数が増加するに従い転送単位データ表示欄58a〜58cの数は増加する。サーバ14において要求したデータの作成中であっても、ユーザはクライアント端末12において、その作成状況および転送単位データを表示画面50にて確認することができる。
Each of the transfer unit data display
図4および図5は図2で示した処理手順を詳細に表したタイムチャートである。以後、同図に沿って詳細な処理手順の例を説明する。ただし同図は例示であり、本実施の形態を限定するものではない。また図4および図5では、図2で示したユーザによるデータ転送を中止する入力(S26)、および全データの転送完了(S28)に係る分岐については、あるタイミングで順次、次の段階へと進むものとして一部図示を省略している。なお転送管理部28とデータ作成部30はそれぞれのプロセスが動作している期間を矩形で表している。またデータ転送処理を終了する際の手順については図6を参照して詳述する。
4 and 5 are time charts showing in detail the processing procedure shown in FIG. Hereinafter, an example of a detailed processing procedure will be described with reference to FIG. However, this figure is merely an example and does not limit the present embodiment. 4 and FIG. 5, regarding the input relating to the stop of data transfer by the user (S26) and the branch related to the completion of transfer of all data (S28) shown in FIG. A part of the illustration is omitted as it proceeds. The
まず図4に示すように、ユーザからの入力を受け付けたクライアント端末12は、サーバ14にデータ転送要求を示す信号を発行し、それを受けたサーバ14において、転送管理部28およびデータ作成部30が自らのプロセスを起動する(S30、S34)。信号には転送を要求するデータに係る情報と出力形式、通信プロトコルなどを適宜含めてよい。例えばクライアント端末12で起動したウェブブラウザにおいて、サーバ14で転送処理を実現する所定のCGI(Common Gateway Interface)プログラムを起動させるためのURL、例えば「http//A.cgi」などで表されるURLを指定することにより、当該CGIプログラムを起動させるようにしてもよい。あるいはそれ以外の既存の技術を適用してもよい。
First, as shown in FIG. 4, the
するとデータ作成部30は、信号に含まれる転送データに係る情報などに基づき転送するデータを作成し、データベース36に格納する(S36)。データ作成の元となるデータは図示しない別のデータベースなどから読み出してもよい。データベース36へデータを格納する都度、あるいは所定の時間間隔で、データ作成部30は共有メモリ32にその時点の作成状況の情報を書き込む(S37)。
Then, the
共有メモリ32に代わり、データベース36を利用してもよい。共有メモリ32における一の転送要求に対する作成状況の情報は、2つのプロセスのうちいずれかのプロセスIDと、転送要求を受け付けた時刻とで構成される変数などをキーとして他の転送要求の情報と区別する。当該2つのプロセスは、クライアント端末12が発行する転送要求ごとに起動されるため、データ作成部30、転送管理部28、およびクライアント端末12は、以後の処理において、当該キーに基づき必要な情報を識別することができる。
Instead of the shared
S37でデータ作成部30は、共有メモリ32に、当該キーに対応づけて作成状況の情報を書き込む。データ作成部30は、作成したデータのデータベース36への格納および作成状況の情報の書き込みを繰り返すが(S38〜S43)、作成状況の情報は常に同キーに対応づけて書き込んでいく。
In S37, the
一方、転送管理部28は、所定のタイミングでキーに基づき共有メモリ32にアクセスし、最新の作成状況の情報を読み出す(S45)。そして図3の作成状況表示欄52などを含むページを表すHTMLデータなどをクライアント端末12に送信する(S47)。送信するデータには前述のとおり、所定の時間間隔でサーバ14にアクセスを行う自動アクセスコードが組み込まれている。自動アクセスコードには、例えば、先にCGIプログラムを起動させた際のURLと共有メモリ32に記憶したキーとを含むURLを記述しておく。これは例えば、CGIプログラムが「A.cgi」でありキーが「KEY1」であれば、「http://A.cgi?KEY1」といった情報となる。転送管理部28はS47の送信処理を行った時点で自らのプロセスを一旦終了させる。
On the other hand, the
クライアント端末12では、送信されたデータに基づき図3の作成状況表示欄52のようなウィンドウが表示される。そして自動アクセスコードで指定された所定の時間間隔が経過すると、クライアント端末12はサーバ14へアクセスを行う(S49)。上述の例であれば、このときサーバ14に送信される情報は自動アクセスコードに記述されたURL、「http://A.cgi?KEY1」である。サーバ14の転送管理部28は当該アクセスにより自らのプロセスを起動し、URLなどアクセス時に送信された情報に含まれるキーに対応づけて共有メモリ32に格納された作成状況の情報を再度読み出す(S51)。そして当該情報をクライアント端末12へ送信することにより(S53)、クライアント端末12の出力部22に表示されたインジケータ54等の作成状況表示欄52を更新する。転送管理部28はS53の送信処理を行った時点で自らのプロセスを再度終了させる。
The
次に図5に示すように、データ作成部30が引き続き、作成したデータをデータベース36へ格納するとともに、共有メモリ32に作成状況の情報を書き込み続けている状態で(S55、S57)、クライアント端末12がサーバ14へ新たなアクセスを行い(S59)、転送管理部28が共有メモリ32から読み出した作成状況の情報から一の転送単位データの作成完了を検知したとする(S60)。例えば1000件ごとのデータを転送単位データとするときは、12000件まで転送済みであり、13922件のデータ作成が完了している場合には、12001件から13000件までのデータを転送すべき転送単位データとして検知する。
Next, as shown in FIG. 5, the
このとき転送管理部28は、作成状況の情報とともにデータベース36に格納された転送単位データへアクセスするための情報と、ウェブブラウザを起動するプログラムとをクライアント端末12に送信する(S61)。転送単位データへアクセスするための情報とは格納領域へのURLなどでもよく、例えば上述の例のとおりCGIプログラムが「A.cgi」、キーが「KEY1」であり、転送単位データが格納されたデータベース36内の記憶領域を識別する情報を「data=13000」とすると、「http://A.cgi?KEY1&data=13000」といった情報となる。ウェブブラウザを起動するプログラムは前述のとおりJAVA(登録商標)アプレットなどを利用できる。このときクライアント端末12では、送信されたプログラムが起動し、出力部22にウェブブラウザ画面が表示される。転送管理部28はS61の送信処理を行った時点で自らのプロセスを再度終了させる。
At this time, the
クライアント端末12は送信された転送単位データへアクセスするための情報、上述の例では新規ブラウザによって「http://A.cgi?KEY1&data=13000」に基づきサーバ14へアクセスを行うことにより(S62)データベース36に格納された転送単位データを取得する。(S64)。転送単位データの転送処理は、実際には転送管理部28などサーバ14が保持する何らかの機能が仲介するようにしてもよい。このときは同図に示すように、S62でクライアント端末12からアクセスがあった際に、転送管理部28が自らのプロセスを起動し、データベース36に格納された転送単位データを取得して、クライアント端末12へ転送する(S63、S64)。これにより、クライアント端末12の出力部22には、図4のS30において指定した出力形式で、転送単位データ、またはその情報が表示される。これは例えば図3で示した転送単位データ表示欄58aに表示される。転送管理部28はS64の転送処理が行われた時点で自らのプロセスを再度終了させる。
The
そして次なる転送単位データが作成されるまでは、図5のS61で取得した自動アクセスコードなどにより、クライアント端末12はそれ以前と同様の所定の時間間隔でサーバ14へアクセスを行う(S65)。それに応じて転送管理部28は図4のS51およびS53と同様、自らのプロセスを起動し、作成情況の情報を共有メモリ32から読み出し、クライアント端末12へ送信する(S67、S69)。次なる転送単位データが生成されたらS61、S62、S63、S64の処理を再度行う。これにより、クライアント端末12の出力部22には、インジケータ54などを含む作成状況表示欄52が常に表示され、転送単位データが作成された時点でそれを表示する転送単位データ表示欄58a〜58cが表示されていく、という形態の表示がなされることになる。
Until the next transfer unit data is created, the
ここでユーザから、データ転送を中止する入力がクライアント端末12に対してなされた場合、上述のとおりデータ作成部30は、共有メモリ32への転送管理部28のアクセスの有無を確認することによりそれを検知する(S75)。これによりデータ作成処理など、当該要求に係る全ての処理を終了する。
Here, when the user inputs to the
例えばユーザが、クライアント端末12の出力部22において、作成状況表示欄52に示された「キャンセル」ボタン56を押下した際、あるいは作成状況表示欄52を示すブラウザを閉じた際などに、クライアント端末12における自動アクセスコードに対応する処理を終了するようにする。これにより、サーバ14への自動アクセスが行われない状態となる。このようにすることで転送管理部28は自らのプロセスを起動することがなくなる。クライアント端末12が何らかの原因によりフリーズした場合など、自動アクセスコードの実行が異常停止した場合も同様に扱う。
For example, when the user presses the “cancel”
一方、データ作成部30は、転送管理部28が所定時間、共有メモリ32に格納した作成状況の情報の読み出しを行っていないことを検知すると、ユーザがデータ転送を中止したと判断する(S75)。これを実現するために転送管理部28は、共有メモリ32から作成状況の情報を読み出す都度、そのときの時刻を共有メモリ32の所定の領域に記憶させておく。そしてデータ作成部30は、作成状況の情報を共有メモリ32に書き込む都度、最後に転送管理部28が作成状況の情報を読み出した時刻を取得する。そして当該時刻と現在時刻との差が所定時間、例えば自動でアクセスする時間間隔より長ければ、転送管理部28のプロセスが終了したと判断する。
On the other hand, when the
データ転送が中止されたと判断したら、データ作成部30は自らの処理を停止しプロセスを終了させる。割り当てられたメモリ空間の開放など、各プロセスの終了処理は一般的に行われているものと同様でよい。このようにすることにより、ユーザが転送を中止する入力を行った際や、クライアント端末12が異常終了した場合などに、当該転送処理に対応するプロセスそのものが短時間で終了し、サーバ14で無駄にCPU時間などのリソースが使用されることがなくなる。
If it is determined that the data transfer is stopped, the
図6は共有メモリ32に格納される作成状況の情報のデータ構造例を示している。作成状況情報テーブル100はキー欄102、作成状況欄104、転送済みデータ欄106、完了ステータス欄108、および最終アクセス時刻欄110を含む。キー欄102には上述のように一の転送要求の情報を他と識別するために転送要求ごとに一意に定められた値、例えばプロセスIDと転送要求を受け付けた時刻などから構成されるキーを格納する。図6の例では「9999920070823114503」、「9999920070823115806」、「9999920070823122300」、「9999920070823132500」なる4つのキーが格納されており、現在、4つの転送要求が受け付けられていることを示している。
FIG. 6 shows an example of the data structure of creation status information stored in the shared
作成状況欄104にはデータ作成部30がデータベース36に格納したデータの件数を格納する。当該数値は例えば図4のS37などにおいてデータ作成部30自身が書き込みを行う。転送管理部28は図4のS45などにおいて作成状況欄104を参照して作成状況を取得しクライアント端末12へ送信するとともに、所定の転送単位データがデータベース36に格納されたか否かを判断する。
The
転送済みデータ欄106には、それまでにクライアント端末12への転送処理が終了したデータの件数を格納する。転送管理部28は転送済みデータ欄106に格納された数値と作成状況欄104に格納された数値との差分が所定の転送単位に達した際、図5のS61のようにクライアント端末12への転送単位データの転送処理を開始する。このとき転送済みデータ欄106の値の更新も行う。図6の例は、1000件を転送単位とした場合に、キー「9999920070823114503」を有する転送要求に対しては、現在「16258」件のデータがデータベース36に格納されていて、そのうち「16000」件のデータがクライアント端末12へ転送済みであることを示している。その他の転送要求についても同様である。
The transferred
完了ステータス欄108は要求された転送データの作成が完了したか否か、の完了ステータスを示す数値を格納する。図6の例では、同欄に「0」が格納されている、キー「9999920070823114503」、「9999920070823122300」、「9999920070823132500」の要求はデータ作成中であり、「1」が格納されているキー「9999920070823115806」の要求は全データの作成が完了したことを示している。当該数値は、クライアント端末12からデータ作成要求が発行された時点では「0」であり、要求された全データの作成を完了したタイミングで、データ作成部30が「1」に更新する。そしてデータ作成部30は自らのプロセスを終了する。
The
転送管理部28は共有メモリ32から作成状況を読み出す際、完了ステータス欄108を参照し、その値が「1」であれば、その時点でデータベース36に格納されているデータをもって転送要求された全データが作成されたことを検知する。この場合は、その時点でデータベース36に格納されているデータを転送単位データに代わりクライアント端末12へ転送する。その際の処理は図5のS61〜S64と同様である。ただし、クライアント端末12へは当該完了ステータスの数値「1」も同時に送信する。これによりクライアント端末12は全てのデータの転送が完了したことを検知する。このときクライアント端末12において全データの転送が完了したことを示す表示を行うようにしてもよい。一方、転送管理部28は最後のデータの情報、あるいはデータそのものをクライアント端末12へ転送した後、自らのプロセスを終了する。
When the
転送管理部28がクライアント端末12からのアクセスを受け、図6の作成状況の情報のデータを参照したとする。このときキー「9999920070823114503」は「16258」件のデータがデータベース36に格納されていて、そのうち「16000」件のデータがクライアント端末12へ転送済みであり、完了ステータスが「0」であるため、転送管理部28は当該要求を発行したクライアント端末12へ「16258件」の作成状況のみを送信する。キー「9999920070823115806」は「13923」件のデータがデータベース36に格納されていて、そのうち「13000」件のデータがクライアント端末12へ転送済みであり、完了ステータスが「1」であるため、未転送の923件のデータについての情報と完了ステータス「1」を送信する。
Assume that the
キー「9999920070823122300」は「13922」件のデータがデータベース36に格納されていて、そのうち「12000」件のデータがクライアント端末12へ転送済みであり、完了ステータスが「0」であるため、「13922件」の作成状況、12001件〜13000件の転送単位データの情報を送信する。キー「9999920070823132500」は「13921」件のデータがデータベース36に格納されていて、そのうち「11000」件のデータがクライアント端末12へ転送済みであり、完了ステータスが「0」であるため、「13921件」の作成状況、11001件〜12000件の転送単位データの情報を送信する。
The key “9999920070823122300” has “13922” data stored in the
最終アクセス時刻欄110には、図4のS45などにおいて転送管理部28が作成状況を読み出すために作成状況情報テーブル100を参照した直近の時刻を格納する。これは上述のとおり転送管理部28によって書き込まれ、データ作成部30が参照する。図6の例では、キー「9999920070823114503」を有する転送要求に対して直近に作成状況が読み出された時刻が「20070823122108」となっている。そして当該欄に格納された時刻とデータ作成部30が参照した現在時刻との差が所定の時間間隔より長い場合に、転送管理部28のプロセスが終了したと判断してデータ作成部30のプロセスも終了する(図5のS75)。
The last
以上述べた本実施の形態によれば、クライアント端末の一度のデータ転送要求に対し、サーバ側では転送の管理を行うプロセスと転送するデータを作成するプロセスとの2つのプロセスを起動させる。そして転送の管理を行うプロセスは、データを作成するプロセスにおけるデータの作成状況の情報をプロセス間通信により取得し、クライアント端末12へ提供する。これによりユーザは、クライアント端末側で、現在のデータ作成処理の進捗をリアルタイムで把握することができ、その後の見通しを立てることができる。結果的に、いつ終了するか不明確な状況でクライアント端末12の前で待ち続けるといったストレスフルな状況を回避することができる。
According to the present embodiment described above, in response to a single data transfer request from the client terminal, the server side activates two processes, a process for managing transfer and a process for creating data to be transferred. The transfer management process acquires data creation status information in the data creation process through inter-process communication, and provides it to the
また、転送の管理を行うプロセスは、所定量のデータが作成された時点でそれを転送単位データとしてクライアント端末12に転送する。これによりユーザは、作成されたデータの一部を実際に確認することができ、転送単位データを利用したユーザ側での処理を、サーバ14におけるデータの作成と並行して行うことができるため、処理効率が向上する。また、上述したデータの作成状況の把握と、実際に転送された転送単位データの中身とを総合的に判断して、高い確度でそれ以後のデータ転送の有意性を判断することができる。これにより、要求したデータが実際にはあまり必要なかった場合などは特に、サーバから一度にデータを転送する場合と比較して、ユーザやクライアント端末にとって時間やリソースの節約になる。
Further, the process of managing the transfer transfers a predetermined amount of data to the
ここでユーザが作成状況および転送済みの転送単位データの中身から、転送の中止を決定した場合、クライアント端末から転送の管理を行うプロセス、データを作成するプロセス、という経路で当該中止の情報が、これまで述べた機能以外の監視機能や信号の送受を行うことなく伝達される。そしてそれぞれのプロセスは自らCPU時間を開放して終了する。これにより、転送の中止という事態が生じても、サーバ14における特別なリソースを使用することなく速やかにデータ転送に係る処理が終了するため、サーバにとってもリソースの節約となる。
Here, when the user decides to cancel the transfer from the creation status and the contents of the transferred transfer unit data, the information of the cancellation is obtained through the process of managing the transfer from the client terminal and the process of creating the data. It is transmitted without performing a monitoring function or signal transmission / reception other than the functions described so far. Each process releases the CPU time and ends. As a result, even if the transfer is interrupted, the processing related to the data transfer is completed quickly without using any special resource in the
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。 The present invention has been described based on the embodiments. This embodiment is an exemplification, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. is there.
10 データ転送システム、 12 クライアント端末、 14 サーバ、 16 入力部、 18 クライアント演算処理部、 22 出力部、 24 サーバ演算処理部、 28 転送管理部、 30 データ作成部、 32 共有メモリ、 36 データベース、 50 表示画面、 52 作成状況表示欄、 54 インジケータ、 58a 転送単位データ表示欄。 10 data transfer systems, 12 client terminals, 14 servers, 16 input units, 18 client calculation processing units, 22 output units, 24 server calculation processing units, 28 transfer management units, 30 data creation units, 32 shared memories, 36 databases, 50 Display screen, 52 creation status display field, 54 indicator, 58a transfer unit data display field.
Claims (5)
転送するデータを作成するデータ作成部と、
前記データ転送サーバへ所定の時間間隔でアクセスを実行するプログラムコードを前記クライアント端末へ送信し、当該プログラムコードを実行したクライアント端末から前記データ転送サーバへのアクセスを検知したとき、前記データ作成部におけるデータの作成状況の情報を取得し前記クライアント端末に送信する転送管理部と、
を備えたことを特徴とするデータ転送サーバ。 In accordance with a request from a client terminal connected via a network, a data transfer server that creates data to be transferred and transfers the data to the client terminal,
A data creation unit for creating data to be transferred;
When the program code for executing access to the data transfer server at a predetermined time interval is transmitted to the client terminal and access to the data transfer server is detected from the client terminal that has executed the program code, A transfer management unit for acquiring information on the creation status of data and transmitting it to the client terminal;
A data transfer server comprising:
前記データ作成部は、前記転送管理部がデータの作成状況の情報を取得しない状態が所定時間継続したことに基づき前記転送中止の要求を検知し、少なくともデータの作成を中止することを特徴とする請求項1または2に記載のデータ転送サーバ。 The transfer management unit detects a transfer stop request input by a user at the client terminal based on the absence of access from the client terminal for a predetermined time, and acquires at least data creation status information Stop
The data creation unit detects the transfer stop request based on the fact that the state in which the transfer management unit does not acquire data creation status information continues for a predetermined time, and at least stops creating data. The data transfer server according to claim 1 or 2.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007248240A JP2009080587A (en) | 2007-09-25 | 2007-09-25 | Data transfer server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007248240A JP2009080587A (en) | 2007-09-25 | 2007-09-25 | Data transfer server |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009080587A true JP2009080587A (en) | 2009-04-16 |
Family
ID=40655303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007248240A Pending JP2009080587A (en) | 2007-09-25 | 2007-09-25 | Data transfer server |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009080587A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011077842A1 (en) * | 2009-12-22 | 2011-06-30 | Canon Kabushiki Kaisha | Information processing apparatus, information processing system, method for controlling information processing apparatus, and program |
WO2012169037A1 (en) * | 2011-06-09 | 2012-12-13 | 三菱電機株式会社 | Programmable controller system |
JP5737279B2 (en) * | 2010-02-23 | 2015-06-17 | 富士通株式会社 | Program, information management method and information management apparatus |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240876A (en) * | 2003-02-07 | 2004-08-26 | Mitsubishi Electric Corp | Remote monitoring system |
JP2005276004A (en) * | 2004-03-26 | 2005-10-06 | Hitachi Ltd | Image information processing system |
JP2007264890A (en) * | 2006-03-28 | 2007-10-11 | Murata Mach Ltd | Simulation system |
-
2007
- 2007-09-25 JP JP2007248240A patent/JP2009080587A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240876A (en) * | 2003-02-07 | 2004-08-26 | Mitsubishi Electric Corp | Remote monitoring system |
JP2005276004A (en) * | 2004-03-26 | 2005-10-06 | Hitachi Ltd | Image information processing system |
JP2007264890A (en) * | 2006-03-28 | 2007-10-11 | Murata Mach Ltd | Simulation system |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011077842A1 (en) * | 2009-12-22 | 2011-06-30 | Canon Kabushiki Kaisha | Information processing apparatus, information processing system, method for controlling information processing apparatus, and program |
JP2011134018A (en) * | 2009-12-22 | 2011-07-07 | Canon Inc | Information processor, information processing system, control method, and program |
US8478839B2 (en) | 2009-12-22 | 2013-07-02 | Canon Kabushiki Kaisha | Information processing apparatus, information processing system, method for controlling information processing apparatus, and program |
JP5737279B2 (en) * | 2010-02-23 | 2015-06-17 | 富士通株式会社 | Program, information management method and information management apparatus |
WO2012169037A1 (en) * | 2011-06-09 | 2012-12-13 | 三菱電機株式会社 | Programmable controller system |
CN103597416A (en) * | 2011-06-09 | 2014-02-19 | 三菱电机株式会社 | Programmable controller system |
JP5523630B2 (en) * | 2011-06-09 | 2014-06-18 | 三菱電機株式会社 | Programmable controller system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8458727B2 (en) | Asynchronous client to server updates | |
US7467389B2 (en) | System and methodology providing service invocation for occasionally connected computing devices | |
JP4634547B2 (en) | Real-time information distribution method | |
US8239490B2 (en) | Exposing resource capabilities to web applications | |
US20080114773A1 (en) | Apparatus and method for prefetching web page | |
JP2010531488A (en) | System and method for providing desktop remoting or application remoting to a web browser | |
WO2009051880A1 (en) | Method and apparatus for bridging real-world web applications and 3d virtual worlds | |
JP2010044796A (en) | Apparatus and method for managing user interface | |
US20120060079A1 (en) | Discovering alternative user experiences for websites | |
KR20110090772A (en) | Client program,terminal,server apparatus, system, and method | |
JP2001516097A (en) | Method and system for synchronized collection, processing and sharing of measurement data and synchronized control of client-server network | |
US6934761B1 (en) | User level web server cache control of in-kernel http cache | |
JP2006268470A (en) | Asynchronous communication method | |
US20130124971A1 (en) | Real time web script refresh using asynchronous polling without full web page reload | |
EP3869330A1 (en) | Method and apparatus for lazy loading of js script | |
JP2009080587A (en) | Data transfer server | |
CN102004729A (en) | Method and system for showing website webpage and website server | |
US8166400B2 (en) | Notifying blind users of live region updates | |
JP4906870B2 (en) | Method, system, and computer program for execution of server-side dynamic pages | |
JP2007079988A (en) | Www browser, html page sharing system and html page sharing method | |
JPH11328113A (en) | Information retrieval device | |
JP2001249841A (en) | Automatic re-requesting method using proxy server | |
JP2007272443A (en) | Development support device, development support method and development support program | |
JP4805199B2 (en) | Scenario creation program and scenario creation device | |
JP2004234380A (en) | Table display switching method, text data conversion program, and tagging program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120612 |