JP5984552B2 - 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム - Google Patents

負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP5984552B2
JP5984552B2 JP2012161931A JP2012161931A JP5984552B2 JP 5984552 B2 JP5984552 B2 JP 5984552B2 JP 2012161931 A JP2012161931 A JP 2012161931A JP 2012161931 A JP2012161931 A JP 2012161931A JP 5984552 B2 JP5984552 B2 JP 5984552B2
Authority
JP
Japan
Prior art keywords
data
transfer
server
file
unit
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
Application number
JP2012161931A
Other languages
English (en)
Other versions
JP2014021854A (ja
Inventor
武司 高橋
武司 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012161931A priority Critical patent/JP5984552B2/ja
Priority to US13/926,033 priority patent/US9432448B2/en
Publication of JP2014021854A publication Critical patent/JP2014021854A/ja
Application granted granted Critical
Publication of JP5984552B2 publication Critical patent/JP5984552B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32502Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
    • H04N1/32507Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices
    • H04N1/32512Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices of different type, e.g. internal and external devices
    • H04N1/32518Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices of different type, e.g. internal and external devices details of interfacing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32502Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
    • H04N1/32523Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of output devices
    • H04N1/32529Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of output devices of different type, e.g. internal and external devices
    • H04N1/32534Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of output devices of different type, e.g. internal and external devices details of interfacing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32502Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
    • H04N1/32545Distributing a job or task among a plurality of input devices or a plurality of output devices
    • H04N1/3255Hybrid jobs, i.e. performing different parts of the same job on different devices, e.g. colour and B/W pages on different devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3212Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to a job, e.g. communication, capture or filing of an image

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Facsimiles In General (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラムに関する。
コンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやSaaS(Software as a Service)という技術が提案されている。クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能となる。また、クラウドコンピューティングの特徴を活用するため、サーバが一連の処理をリクエストにより実現し、それらを同時並行で処理することで多数のジョブをスケーラブルに処理するシステムが提案されている。以下では、このようなシステムをクラウドシステムと称する。
クラウドシステムを構築するにあたり、複数のサーバがリクエストを負荷分散する構成が必要になる。例えば、特許文献1が開示する情報処理システムは、ウェブサービスを利用するユーザからリクエストを受けて複数のウェブサーバの1つを決定し、それによりサーバに対する負荷を分散させる負荷分散装置を備えるシステムである。負荷分散装置は、SLB(Software Load Balancer)とも呼称される。SLBは、通信元と通信先のサーバ群の通信を仲介するように設置され、通信アプリケーションの(TCP/UDP)ポート番号をもとに、通信元からの通信を複数台のサーバに分散する。
特開2007−164527号公報
特許文献1が開示するシステムでは、ユーザのリクエストが負荷分散装置を介してサーバに送信されるが、SLBを通すとネットワーク帯域がSLBの処理性能を上限として制限されてしまう。場合によっては、SLBを通した場合、SLBを通さない場合に比べ、処理速度がネットワーク帯域の半分以下になることがある。従って、ドキュメントやイメージといった比較的大きなバイナリデータをやり取りするシステムでは、SLBがパフォーマンスボトルネックとなってしまう。結果、ユーザからのリクエストを処理するための時間を余分に要することになる。本発明は、一定量以上の大きなデータを送受信する際はSLBを介さず送信元からサーバに直接データを送信することにより、SLBによりサーバの負荷分散を実現しつつ処理速度を向上させる負荷分散システムを提供することを目的とする。
本発明の一実施形態の負荷分散システムは、データを転送する転送装置と、転送された前記データを保存する複数の保存装置と、前記転送装置からの転送要求を受信したことに応じて、前記保存装置の中から処理状況に応じて前記データの転送を受ける保存装置を決定する分散装置とを備える。前記転送装置は、転送するデータに応じて、前記分散装置にデータを転送するか、前記分散装置を経由せず前記分散装置により決定される保存装置にデータを転送するか、転送方法を決定する決定手段と、前記決定された転送方法に従い、データを転送する転送手段とを備える。
本発明の負荷分散システムによれば、一定量以上の大きなデータを送受信する際はSLBを介さず送信元からサーバに直接データを送信することにより、SLBによりサーバの負荷分散を実現しつつ処理速度を向上させることが可能となる。
本実施形態の情報処理システムの全体構成を示す図である。 クライアント端末、スキャンサーバ、フローサーバ、タスクサーバを実現するサーバコンピュータのハードウェア構成図の例である。 クライアント端末と画像形成装置の構成例を示す図である。 スキャンサーバの構成例を示す図である。 スキャンチケット作成画面の例を示す図である。 チケット一覧画面の一例を示す図である。 チケット管理DBとテンプレート管理DBの一例を示す図である。 タスクサーバの構成例を示す図である。 フローサーバ群のシステム構成図の概要である。 SLBのシステム構成とSLBが管理する管理テーブルを示す図である。 中央管理サーバのシステム構成図である。 データベースサーバのシステム構成図である。 データベースサーバが管理するサーバ情報、ファイルパス情報を示す。 ファイルサーバが保存するエンティティの階層構造を示す図である。 データベースサーバが管理するジョブ情報を示す。 データベースサーバが管理するルート情報を示す。 本実施形態の負荷分散システムの動作処理の例を説明するシーケンス図である。 スキャンサーバが中央管理サーバに対して通信を行う際の動作を表すフローチャートである。 中央管理サーバがスキャンサーバからの通信を受けて行う動作を表すフローチャートである。 実施例2における中央管理サーバ削減処理のフローチャートである。 実施例3におけるスキャンサーバが中央管理サーバに対して通信を行う際の動作を表すフローチャートである。 中央管理サーバがスキャンサーバからの通信を受けて行う動作を表すフローチャートである。
図1は、本発明の実施形態の情報処理システムの全体構成を示す図である。本実施形態の情報処理システムは、クラウドシステムであって、クライアント端末106のユーザに画像処理サービスを提供する。図1中の情報処理システムは、スキャンサーバ101、フローサーバ102、タスクサーバ103、104、クライアント端末106、画像形成装置107、クラウドサービスサーバ108を備える。
スキャンサーバ101乃至タスクサーバ104は、ネットワーク110を介して通信可能に接続されている。クライアント端末106および画像形成装置107と、スキャンサーバ101乃至タスクサーバ104とは、ネットワーク111およびネットワーク110を介して通信可能に接続されている。また、クラウドサービスサーバ群108とスキャンサーバ101乃至タスクサーバ104とは、ネットワーク112およびネットワーク110を介して通信可能に接続されている。タスクサーバ103、104、クライアント端末106、画像形成装置107、クラウドサービスサーバ108は、複数台接続されている。ネットワーク110乃至112は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等である。LANは、Local Area Networkの略称である。WANは、Wide Area Networkの略称である。ATMは、Asynchronous Transfer Modeの略称である。
ネットワーク110乃至112が、上述したLAN乃至データ放送用無線回線の組み合わせにより実現される通信ネットワークであってもよい。すなわち、ネットワーク110乃至112は、データの送受信が可能であればよい。この例では、本実施形態の情報処理システムは、クラウドシステムであるので、ネットワーク110、112は、インターネット、ネットワーク111は、企業内ネットワークやサービスプロバイダーのネットワークである。
スキャンサーバ101、フローサーバ102、タスクサーバ103、104は、複数のサーバコンピュータを有する。これらサーバコンピュータ群がクラウドシステムを構成しており、ユーザに対してクラウドサービスを提供する。この例では、クライアント端末106からの要求に応じて、画像形成装置107がスキャン実行を行って画像データを取得し、取得した画像データをスキャンサーバ101に投入する。スキャンサービスサーバ101は、当該画像データに対応するジョブをフローサーバ102に投入する。フローサーバ102は、投入されたジョブを管理する。タスクサーバ103、104は、フローサーバ102が管理するジョブを非同期で取得要求する。この例では、ジョブは、複数のタスクから構成される。例えば、ユーザからの要求に従い発行されるジョブがスキャンジョブであった場合、スキャン画像に対し画像処理を行う工程と、画像処理が施されたスキャン画像を保存する工程とが実行されるケースが考えられる。本願発明は、夫々の工程をタスクという単位で区切ることで、1つのジョブを複数のタスクで構成する。この形態のメリットは、複数のタスクを組み合わせることで、多様なジョブ処理を行うことができるという点である。フローサーバ102は、管理しているジョブに含まれる複数のタスクのうち、取得要求元のタスクサーバに対応するタスクを取得要求元のタスクサーバに渡す。タスクを受け取ったタスクサーバは、特定のジョブ処理を施す。タスクサーバは、例えば、処理対象の画像データに対して画像処理を行ったり、ファイル共有機能を提供する他のクラウドサービスサーバ群に対して、画像データを送信する処理を行う。
様々な企業などにより、スキャンサーバ101乃至クラウドサービスサーバ108がインターネット上に公開されており、これらも複数のサーバコンピュータ上にて実行されている。クライアント端末106は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、PDA(パーソナルデータアシスタント)等である。クライアント端末106が、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末106では、Webブラウザ(インターネットブラウザ、WWWブラウザ、World Wide Webの利用に供するブラウザ)等のプログラムを実行する環境が内蔵されている。
図2は、クライアント端末106、スキャンサーバ、フローサーバ、タスクサーバ、図9を参照して後述するSLB、中央管理サーバ、ファイルサーバを実現するサーバコンピュータのハードウェア構成図の例である。クライアント端末106、サーバコンピュータは、CPU202、RAM203、ROM204、HDD205を備える。CPUは、Central Processing Unitの略称である。RAMは、Random Access Memoryの略称である。ROMは、Read Only Memoryの略称である。HDDは、Hard Disk Driveの略称である。また、クライアント端末106、サーバコンピュータは、NIC209、キーボード207、ディスプレイ206、インタフェース208を備える。NICは、Network Interface Cardの略称である。CPU202は、装置全体の制御を行う。CPU202は、HDD205に格納されているアプリケーションプログラム、OS等を実行し、RAM203にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。OSは、Operating Sustemの略称である。ROM204は、記憶手段であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM203は一時記憶手段であり、CPU202の主メモリ、ワークエリア等として機能する。HDD205は外部記憶手段の一つであり、大容量メモリとして機能し、Webブラウザ等のアプリケーションプログラム、サービス群のプログラム、OS、関連プログラム等を格納している。
ディスプレイ206は、表示手段であり、キーボード207から入力したコマンド等を表示したりする。インタフェース208は、外部装置I/Fであり、プリンタ、USB機器、周辺機器を接続する。キーボード207は指示入力手段である。システムバス201は、装置内におけるデータの流れを司る。CPU202乃至インタフェース208は、システムバス201に接続されている。ネットワークインタフェースNIC209は、インタフェース208およびネットワーク110乃至112を介して外部装置とのデータのやり取りを行う。なお、図2中に示す装置構成の一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM204、RAM203、HDD205のいずれであってもよい。
図3は、クライアント端末と画像形成装置の構成例を示す図である。図3(A)は、クライアント端末106の構成例を示す。クライアント端末106は、Webブラウザ301を備える。このシステムの実態はROM204に格納されたプログラムであり、これをCPU202がRAM203に読み出して実行することで実現する。図3(A)において、Webブラウザ301を利用し、スキャンサーバ101(図1)が提供するWebアプリケーションへのリクエストの送信と、レスポンスの表示等を行う。クラウドサービスを利用するユーザは本クライアント端末106のWebブラウザ301を利用して、クラウドサービスを利用する。
図3(B)は、画像形成装置107の構成例を示す。この例では、画像形成装置107は、スキャン機能とプリント機能を併せ持つ装置である。なお、スキャンサービスを実現するためには、画像形成装置107が、プリント機能のない、スキャン専用装置であってもよい。画像形成装置107は、画像処理ユニット401、印刷ユニット402、読み込みユニット403を備える。画像処理ユニット401は、画像処理を実行する。画像処理ユニット401は、例えば、印刷設定に応じたプリントデータを生成する。印刷ユニット402は、画像処理ユニット401によって生成されたプリントデータを媒体(例えば、紙媒体)に印刷出力する。読み込みユニット402は、例えば、不図示のスキャン装置を用いて、画像データを読み込む。画像処理ユニット401は、CPU404、直接記憶部405、間接記憶部406、ユーザインタフェース407、外部インタフェース408を備える。
CPU404は、所定のプログラムを実行し、画像形成装置107の各種制御を指示する。CPU404は、CPUCentral Processing Unitの略称である。直接記憶部405は、CPU404がプログラムを実行する際に使用するワークメモリである。CPU404が実行するプログラムは、直接記憶部405にロードされる。なお、CPU404は、マルチプロセッサでもよい。
直接記憶部405は、RAM(Random Access Memory)により実現される。間接記憶部406には、アプリケーションプログラムおよびプラットフォームプログラムを含む各種プログラムが記憶されている。CPU404が間接記憶部406に記憶されている各種プログラムの実行時に、この各種プログラムを直接記憶部405へ移動する。間接記憶部406は、SSD(Solid State Drive)、または、HDD(Hard Disc Drive)により実現される。
この例では、ユーザが独自に開発した新しいアプリケーションを画像形成装置107上で実行できるプラットフォームを実現するプラットフォームプログラムが、間接記憶部406に記憶されている。プラットフォームによれば、ユーザ画像形成装置107の操作画面をカスタマイズすることも可能になる。
以下に、プラットフォームの実現方法について説明する。CPU404は、間接記憶部406に記憶されたプラットフォームプログラムを直接記憶部405に移動する。移動が完了するとCPU404は、プラットフォームプログラム(例えば、Java(登録商標))を実行することができる状態になる。この例では、CPU404が、プラットフォームプログラムを実行することを、プラットフォームが起動すると称する。なお、プラットフォームは、画像形成装置107のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供する。
次に、プラットフォーム上でアプリケーションプログラムを実行する方法について詳細に説明する。この例では、プラットフォーム上では、スキャンした画像をクラウドサービスに送信するスキャンソフトウェアが動作している。スキャンソフトウェアは、ネットワークを介して接続されているスキャンサーバ101から、例えば、HTTP(Hyper Text Transfer Protocol)などの通信プロトコルによってスキャンチケットの一覧の受信を行う。スキャンチケットにはスキャン時に画像データをどのように取り込むかに関する設定や、その後の処理フローといった情報が記録されている。以降、スキャンソフトウェアを実行することで実現するソフトウェア部をスキャンソフトウェア部と呼ぶ。
ユーザは、スキャンソフトウェア部にて表示されたスキャンチケット一覧からスキャンチケットを選択し、原稿を読み込ませることでスキャンを完了できる。スキャンソフトウェア部はユーザが選択したスキャンチケットの情報とスキャンした画像データを合わせてスキャンサーバ101に送信する。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置107の制御を実現することができる。
次に、アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部406に記憶されたアプリケーションプログラムを直接記憶部405に移動する。移動が完了すると、プラットフォームは、アプリケーションプログラムを実行することができる状態になる。そして、プラットフォームは、アプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、この例ではプラットフォームアプリケーションと呼ぶ。さらに、プラットフォームは、本実施形態で開示するフローチャートの各処理の一部を行うことが可能である。
ユーザインタフェース407は、ユーザからの処理依頼を受け付ける。ユーザインタフェース407は、例えば、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。外部インタフェース408は、外部装置からのデータ受信や外部装置へのデータ送信が可能である。上記外部装置は、例えば、外付けHDDや外付けUSBメモリ等の外付け記憶装置、またはネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置である。画像形成装置107は、ネットワーク110、111を介して、クライアント端末106、スキャンサーバ101と通信可能である。
次に、クラウドサービスを提供するスキャンサーバ101、タスクサーバ103、104の各サーバに関して説明する。さらには、各サーバの説明とともに、スキャン処理の流れを合わせて説明する。
図4は、スキャンサーバ101の構成例を示す図である。スキャンサーバ101はクラウドサービスにおけるスキャン機能の提供を行うサーバである。このサービスの実態はROM204に格納されたプログラムであり、これをCPU202がRAM203に読み出して実行することで実現する。スキャンサーバ101は、Webアプリケーション部501、チケット管理DB部502、テンプレート管理DB部503を備える。これら構成要素により各種処理が実行されることでスキャンサーバ101がユーザに提供される。
Webアプリケーション部501は、スキャン機能を提供するアプリケーションプログラムを提供する。Webアプリケーション部501は、チケット作成部511、チケット一覧部512、スキャン受信部513、外部I/F514、チケット管理部515、テンプレート管理部516、通信部517を備える。チケット作成部511はユーザがスキャンチケットを作成するための一連の機能を実現する。スキャンチケットは、画像形成装置107で原稿をスキャンする際の設定や、その後の処理フローの定義、各処理フローで実施されるタスクの為のパラメータ等を含む定義情報である。
以下に、スキャンチケットの作成処理について説明する。クライアント端末106のWebブラウザ301が、ユーザ操作にしたがって、チケット作成画面リクエスト(この例では、スキャンチケット作成画面リクエスト)をスキャンサーバ101に対して行う。チケット作成部511が、チケット作成画面リクエストにしたがって、チケット作成画面(この例では、スキャンチケット作成画面)をクライアント端末106に提供する。クライアント端末106のWebブラウザ301が、スキャンチケット作成画面を表示する。
図5は、スキャンチケット作成画面の例を示す図である。スキャンチケット作成画面601には、テンプレート602乃至604が表示される。テンプレートは、画像処理(例えばスキャン処理)の設定を行うための定義情報である。例えば、テンプレート602は、スキャンして得られる画像データをスキャンサーバ101に送信する処理を定義している。テンプレート管理部516が、テンプレート管理DB503内に記憶されているテンプレートを管理している。
チケット作成部511は、テンプレートをテンプレート管理DB503から取得し、取得したテンプレートを含むスキャンチケット作成画面をWebブラウザ301に対して提供する。ユーザが、スキャンチケット作成画面601上に表示されたテンプレートの中から、実行するテンプレートを選択すると、Webブラウザ301が、詳細設定画面605を表示する。詳細設定画面605は、詳細なチケット設定を行うための画面である。
図5に示す例では、同一画面内にテンプレートと詳細設定画面605とが表示されているが、Webブラウザ301が、詳細設定画面605を、テンプレートが表示されている画面とは異なる画面(別ウィンドウ)で開くようにしてもよい。ユーザは、詳細設定画面605上で、選択したテンプレートに応じたスキャンの設定を行うことができる。例えば、スキャン設定の例としては、図5中に示すように、サイズや、カラー、白黒といった色調、またスキャンデータのフォーマット等の設定がある。ユーザが、詳細な設定を行った後、チケット発行ボタン606を押下すると、Webブラウザ301からスキャンサーバ101に対して、スキャンチケット作成リクエストが発行される。スキャンチケット作成リクエストは、スキャンチケットの作成を求める要求であり、スキャンチケット作成画面上で行われたチケット設定の情報を含む。
チケット作成部511は、スキャンチケット作成リクエストに含まれるチケット設定の情報に基づいて、スキャンチケットを作成し、チケット管理部515に指示してスキャンチケットに関する情報(チケット情報)を保存させる。チケット管理部515は、チケット作成部511からの指示にしたがって、チケット管理DB部502にチケット情報を保存する。外部I/F514は、画像形成装置107上で動作するスキャンソフトウェア部との通信を行う。具体的には、外部I/F514は、スキャンソフトウェア部から、チケット一覧部512の機能や、スキャン受信部513の機能へのアクセスを受け付ける。チケット一覧部512は、画像形成装置107からの要求にしたがい、チケット管理部515に保存されているチケット情報に基づいて、チケットの一覧を生成して画像形成装置107に返す。画像形成装置107は、取得したチケット一覧をチケット一覧画面上に表示する。
図6は、チケット一覧画面の一例を示す図である。この例では、チケット一覧画面407上には、チケット901乃至906(この例ではスキャンチケット)が表示される。ユーザが、チケット一覧画面407上に表示されたスキャンチケットのいずれかを選択し、画像形成装置107に備え付けられたスキャン装置に紙を設置し、スキャンボタン907を押し下げすると、スキャン実行される。そして、画像形成装置107が、チケット一覧画面上で選択されたスキャンチケットと、スキャン実行により得られた画像データとをスキャンサーバ101に対して送信する。スキャンサーバ101が備えるスキャン受信部513は、画像形成装置107からスキャンチケットと画像データとを受信する。そして、スキャン受信部513は、受信した画像データをフローサーバ102に投入する。
図7は、チケット管理DBとテンプレート管理DBの一例を示す図である。図7(A)は、チケット管理DB502の一例を示す。チケット管理DB502が保存しているチケットの情報は、ユーザID701、チケットID702、ルートID703、パラメータ704といったデータ項目を有する。ユーザID701は、チケットを作成したユーザを一意に識別する識別情報である。チケットID702は、チケットを一意に識別する識別情報である。チケットID702は、図5に示すスキャンチケット作成画面上でチケット発行606が押下げられたときにチケット作成部511によって生成され、チケット管理DB502に保存される。
ルートID703は、ルート情報を一意に識別する識別情報である。ルート情報は、スキャンチケット作成画面601上で選択されたテンプレートに対応する処理(例えばスキャン処理)を示す情報である。具体的には、ルート情報は、テンプレートに対応する処理を実現するジョブに含まれる各々のタスクを連結させたルートの情報であって、そのジョブにおける処理順序を示す処理順情報を含む。すなわち、ルート情報は、タスクの連結をルートという単位で定義するための情報である。
ユーザが、テンプレートを選択し、スキャンを実行した場合には、スキャンデータは、ルートID703に対応付けて定義されたタスクの順番で処理される。ここでいう「タスク」とは、ジョブを構成する各処理を表し、タスクサーバはこの「タスク」を処理する機能を有するサーバである。換言すれば、ジョブ処理は少なくとも1つ以上のタスクを処理することであり、例えば、複数のタスクサーバが連携して夫々のタスクを実行することでジョブ処理が行われる。パラメータ704は、図5中に示す詳細設定画面605上で設定されたスキャンの設定情報である。
図7(B)は、テンプレート管理DBの一例を示す図である。テンプレート管理DB503には、テンプレート情報が設定されている。テンプレート情報は、図12を参照して後述するルート情報管理DB1605で管理されるルート情報と、チケット作成画面上に表示されるテンプレートとを紐づける情報である。テンプレート情報は、テンプレートID801、テンプレート名802、ルートID803といったデータ項目を有する。テンプレートID801は、テンプレートを一意に識別する識別情報である。テンプレート名802は、テンプレートの名称である。テンプレート名は、図5中のチケット作成画面601上に表示される。ルートID803は、ルート情報管理DB1605が管理するルート情報に含まれるルートID1401(図13)への外部キーである。
図8は、タスクサーバの構成例を示す図である。この例では、タスクサーバ103の構成を説明する。このシステムの実態はROM204に格納されたプログラムであり、これをCPU202がRAM203に読み出して実行することで実現する。各タスクサーバは、クラウドスキャンサーバを実現するための要素機能を実現するサービスである。タスクサーバ104の構成は、タスクサーバ103の構成と同様である。タスクサーバ103は、画像データに対してOCR処理を行い、OCR結果のテキストデータを画像データに埋め込む処理を行う。また、タスクサーバ103は転送装置としても機能し、クラウドサービスサーバ群108の中のストレージ機能を提供する特定のサーバに対して、画像データを転送し、アップロードして保管するリクエストを行う。各タスクサーバは、与えられたタスクに対応する処理を行い、各サービスを提供する機能を有している。
図8に示すように、タスクサーバ103は、タスク取得部1011、データ取得部1012、データ保存部1013、タスクステータス通知部1014、タスク処理部1015、通信部1016を備える。タスク取得部1011は、通信部1016を介して定期的にフローサーバ102に問い合わせを行い、タスクサーバ103にて処理可能なタスクを取得する。データ取得部1012は、タスク取得部1011が取得したタスクの情報に基づいて、フローサーバ102から、処理すべき画像データを取得する。タスク処理部1015は、データ取得部1012が取得した画像データに対して各種処理を行う。また、タスク処理部1015は、タスク処理部1015による処理結果をデータ保存部1013に渡す。データ保存部1013は、タスク処理部1015から受け取った処理結果をフローサーバ102に保存する。タスクステータス通知部1014は、定期的にフローサーバ102に状態通知を行う。
図9は、本実施形態の負荷分散システムを示す。負荷分散システムは、スキャンサーバ101、タスクサーバ103、104、フローサーバ102を備える。以下、図9を参照し、フローサーバ102の詳細な説明を行う。フローサーバ102は本願発明における中心的なサーバであり、ルート管理、ジョブ管理、ファイル管理を行うサーバである。フローサーバ102は、中央管理サーバ1200、1201、ファイルサーバA1202、ファイルサーバB1203、ファイルサーバC1204、データベースサーバ1205、SLB1206を備える。フローサーバ102は、ネットワーク110を介してスキャンサーバ101およびタスクサーバ103,104と通信可能に接続される。また、フローサーバ102が備える各サーバは、ネットワーク1210を介して通信可能に接続される。また、ネットワーク1210はネットワーク110と接続されており、ネットワーク1210はネットワーク110と同様のデータの送受信が可能な通信ネットワークである。
中央管理サーバ1200、1201は一般的にサーバコンピュータ上にて実行されており、その機能の詳細については図11にて説明する。ファイルサーバ1202乃至1204は、一般にサーバコンピュータ上にて実行されており、必要に応じてファイルデータを保存、削除、取得する機能を有している。本実施形態では、ファイルデータは画像データなどのバイナリデータであり、単にファイルと呼称する場合もある。データベースサーバ1205は、一般にサーバコンピュータ上にて実行されており、その詳細機能については、図12を参照して説明を行う。図9では、中央管理サーバ1201、1202、ファイルサーバA1202、B1203、C1204が示されるが、この数に限定されるものではない。通信データの量に応じて、中央管理サーバやファイルサーバの数は増減されてよい。
SLB1206には、中央管理サーバ1200と1201のアドレスが登録されており、SLB1206にリクエストが送られると、SLB1206は中央管理サーバ1200もしくは1201のどちらかへとリクエストを振り分け・転送する機能を有する。このリクエスト振り分けの目的は、一つの中央管理サーバにアクセスが集中して負荷が偏らないようにするためである。すなわち、SLB1206は、スキャンサーバ103、104から転送要求を受信したことに応じて、中央管理サーバ1200、1201の処理状況に応じて中央管理サーバを決定する分散装置として機能する。リクエスト振り分けの方法については、様々な方法がありうる。例えば、中央管理サーバ1200と1201へ順番にリクエストを振り分けるラウンドロビン方式やSLB1206からアクセスしている各中央管理サーバへの接続数を見て、最も少ない中央管理サーバへと振り分ける、最少コネクション方式などがある。本実施例においては、SLB1206の振り分け方式については特に言及せず、一般的にSLB1206が提供する振り分け方式であれば特に限定しない。
図10は、SLB1206のシステム構成とSLBが管理する管理テーブルの一例を示す。図3(A)はSLB1206のシステム構成図である。このシステムの実態はROM204に格納されたプログラムであり、これをCPU202がRAM203に読み出して実行することで実現する。図10(A)に示すように、通信受信部301は、通信元となるスキャンサーバ101、タスクサーバ103、104からの通信を受信する機能を有する。通信管理部303は、通信を分散すべき複数の中央管理サーバ1200、1201を保存・管理する機能を有する。通信管理部303が管理する管理テーブルの一例を図10(B)に示す。サーバID311は、登録した中央管理サーバを一意に識別するIDである。サーバIP312は、通信を分散すべき中央管理サーバのIPアドレスである。最終転送日時313は、該当サーバに対して前回通信が転送された日時である。通信先判断部302は、通信受信部301が受信した通信を何処へ転送するかを判断する機能を有する。例えば、ラウンドロビン方式で振り分けを行う場合、通信先判断部302は、通信管理部303の最終転送日時313が一番古い日時になっているサーバIPに対して通信を転送する。
図11は、中央管理サーバのシステム構成である。このシステム実態はROM204に格納されたプログラムであり、これをCPU202がRAM203に読み出して実行することで実現する。中央管理サーバ1200、1201はWebアプリケーション部1300を実装するサーバである。Webアプリケーション部1300は、ジョブ情報更新部1301、ジョブ追加部1302、ジョブ情報取得部1303、ファイル保存部1304、ファイル取得部1305、ファイル削除部1306、バックエンド部1310、外部I/F1320を備える。
本実施形態の中央管理サーバ1200、1201は、スキャンサーバ101またはタスクサーバ103、104から転送されたファイルデータを保存する保存装置として機能する。Webアプリケーション部1300のファイル保存部1304は保存手段として機能し、スキャンサーバ101やタスクサーバ103、104からの要求に応じてファイルデータを受信すると、受信したファイルをファイル保存部1304に格納する。また、ファイル保存部1304は、格納先のパスを管理する機能を有する。タスクサーバ103、104からファイル取得要求があった際には、ファイル取得部1305はファイル保存部1304から保存したファイルデータを取得し、タスクサーバ103、104に返却する。ファイル削除部1306は、スキャンサーバ101、タスクサーバ103、104からファイル削除の要求があった際には、保存したファイルを削除する。Webアプリケーション部1300を利用することで、スキャンサーバ101やタスクサーバ103、104はファイルの格納先のパスやファイルサーバの状態を気にすることなく、ファイルの保存、取得、削除を行うことができる。
また、ジョブ情報取得部1303は、スキャンサーバ101からジョブ情報を受信すると、受信したジョブ情報をジョブ追加部1302に格納する。ジョブ追加部1302は、スキャンサーバ101から発行されるジョブ投入リクエストを受け、図12に示すデータベースサーバ1205にジョブ情報を格納する。ジョブ情報更新部1301は、タスクサーバ103、104からの要求に応じて、ジョブ情報の取り出し・更新を行う機能を有する。外部I/F1320は、中央管理サーバに対する外部からの問い合わせを受け付けるI/Fであり、ジョブの追加・情報取得・更新、ファイルの保存、取得、削除などの要求をスキャンサーバ101、タスクサーバ103、104から受け付ける。
図12は、データベースサーバ1205のシステム構成である。このシステムの実態はROM204に格納されたプログラムであり、これをCPU202がRAM203に読み出して実行することで実現する。データベースサーバ1205は、外部I/F1601、ジョブ情報管理DB1602、ファイルサーバ管理DB1603、パス管理DB1604、ルート情報管理DB1605、タスク情報管理DB1606、スケール調整部1607を備える。
外部I/F1601は、中央管理サーバ1200、1201からのリクエストに応えて、データベースサーバ1205が備える各DBに対するアクセスを行うためのI/Fである。ジョブ情報管理DB部1602は、作成された各ジョブのステータスや各ジョブが扱うデータのIDを管理する。ジョブ情報管理DB部1602の管理する詳細な内容は、図15に記載されており、ジョブ情報管理DB部1602の内容に関する説明は後述する。
ファイルサーバ管理DB部1603は、ファイルを格納するファイルサーバ1202〜1204に関する情報(図13(A))を管理する。パス管理DB部1604は、中央管理サーバ1200のWebアプリケーション部1300がファイル管理を実現するためのデータ情報を管理する。具体的には、パス管理DB部1604は、Webアプリケーション部1300が管理している、ファイルサーバ1202〜1204に保存されたファイルデータとフォルダに関する情報を管理する。本発明では、Webアプリケーション部1300が管理するファイルデータとフォルダをあわせてエンティティと呼ぶ。
ルート情報管理DB部1605は、タスクの連結をルートという単位で定義するための情報を保持している。タスク情報管理DB部1606は、各処理をタスクという単位で定義し、タスクに関する情報を保持している。スケール調整部1607は、中央管理サーバの増設、削減を行う機能を有する。増設する場合には、新たな中央管理サーバを起動してネットワーク1210につなげる処理を行う。削減する場合の処理は、実施例2で詳細を説明する。
以下、中央管理サーバ1200とデータベースサーバ1205が行うファイル管理の詳細を説明する。中央管理サーバ1200のファイル保存部1304は、スキャンサーバ101やタスクサーバ103、104からファイル保存リクエストを受けて、ファイルサーバ1202〜1204にファイルを多重化して保存する機能を実現する。多重度は呼び出し元であるスキャンサーバ101、タスクサーバ103、104が1以上の整数を指定でき、多重度1の場合は多重化せずに保存する場合と同義である。また多重度の最大値は、ファイルサーバ1202〜1204に存在する共有フォルダ数(図13)であり、それ以上は無視される。
まず、ファイル保存処理を説明する。ファイル保存部1304は、スキャンサーバ101から初期データ保存のリクエストを受信すると、まず現在稼働中のファイルサーバの中から保存先のファイルサーバを選択する。この際、ファイル保存部1304は、保存しているフォルダ数またはデータ量が少ないファイルサーバから順に指定された多重度分だけ選択する。これは、各ファイルサーバ1202〜1204の容量を均一化するためである。例えば、多重度3であった場合、ファイル保存部1304は、自サーバに初期データを保存するとともに、ファイルサーバA,B,Cそれぞれに該初期データを保存する。従って、ユーザがフラグ設定等により、初期データの重要度を高く設定した場合には、3つのファイルサーバに初期データが保存されるため、より強固にデータを保護することが可能となる。スキャンサーバ101からの初期データ保存のリクエストには、多重度、タスクID、ファイルデータのNoが含まれる。ファイル保存部1304は、ファイルグループIDを生成し、ファイルグループID、タスクID、Noに基づいて保存先であるファイルサーバのファイルパスを生成する。なお、初期データを保存した場合は、呼び出し元のスキャンサーバ101に対して生成したファイルグループIDを返却する。
また、ファイル保存部1304がタスク処理を行ったタスクサーバ103、104からファイル保存のリクエストを受信した場合は、そのリクエストには、多重度、ファイルグループID、タスクID、ファイルデータのNoが含まれる。ファイル保存部1304は、受信したリクエストに含まれるファイルグループIDと同一のファイルグループIDを持つ初期データが保存されているファイルサーバをパス管理DB部1604から取得する。ファイル保存部1304は、初期データが保存されているファイルサーバに対して、タスク処理が行われたファイルを保存する。
ファイルサーバにファイルを保存するために、ファイル保存部1304は、バックエンド部1310に対して保存先ファイルパスとファイルデータを送信する。バックエンド部1310は保存先のファイルサーバとの通信の可否を確認し、通信可能であった場合はファイルを保存先ファイルサーバに保存する。多重保存する場合は上記の処理を多重度分繰り返す。バックエンド部1310は、全てのファイルの保存が完了したらファイル保存部1304に結果を返す。ファイル保存部1304は、パス管理DB部1604に保存先ファイルパスに関するエントリを多重度分追加する(図13(B))。
図13(A)は、ファイルサーバ管理DB部1603が管理する管理テーブルの例を示す。ID2001は、ファイルサーバをWebアプリケーション部1300内で一意に識別するための情報である。ホスト名2002は、ネットワーク1810上におけるファイルサーバの一意のアドレスを示し、Webアプリケーション部1901がバックエンド部1310を通じてファイルサーバ1202〜1204にアクセスする際に使用する。ステータス2003は、Webアプリケーション部1901がバックエンド部1310を通じてホスト名2002に存在するファイルサーバとの通信の可否を示す値であり、正常通信可能な場合は1、新規書き込み不可能な場合は−1を取る。共有フォルダ名2004はファイルサーバ1202〜1204上に作成した共有フォルダ名である。ホスト名2002と共有フォルダ名2004から、ファイルサーバ1202〜1204上に作成した共有フォルダのフルパスが得られる。また、後述するように中央管理サーバ1200、1201もファイルデータを保存するサーバとしてふるまうため、本DBにファイルサーバと同等の情報が追加される。
図13(B)は、パス管理DB部1604で管理する管理テーブルの例を示す。ファイルID2010は、ファイルサーバ1202〜1204でエンティティを一意に識別するための情報である。ファイルグループID2011は、各エンティティを関連するジョブでグループ化するための情報である。従って、同一ジョブによって生成されたエンティティは同一のファイルグループID2011を持つ。タスクID2012は各エンティティに関連するタスクのタスクID、フォルダを表す「Folder」、またはスキャンサーバ101からの要求により格納されたファイルを表す「init」のいずれかの値が入る。本発明では、スキャンサーバ101からの要求により格納されたファイルを初期データと呼ぶ。No2013は、各タスクによって生成されたファイルのファイル番号を示す。パス2014はエンティティの格納先のフルパスを示し、Webアプリケーション部1901がバックエンド部1310を通じてエンティティにアクセスする際に使用する。ホスト名2015は、各エンティティの格納先のファイルサーバのホスト名を示す。作成日2016及び有効期限2017は、各エンティティの作成日及び有効期限を示す。
ファイルサーバ1202〜1204は、Webアプリケーション部1300で管理するファイルを格納する格納装置として機能する。図14は、ファイルサーバ1202〜1204のフォルダの階層構造を示す。フォルダ2101は共有フォルダであり、Webアプリケーション部1901がバックエンド部1310を通じてアクセス可能とする。共有フォルダ2101は、各サーバに少なくとも1つ存在し、ファイルサーバ管理DB部1603の共有フォルダ名2004と一致する。本発明では共有フォルダ2101の深さを0とする。共有フォルダ2101の直下にある、深さ1のフォルダ群2131の各フォルダ2111、2121のフォルダ名はファイルグループID2011に対応する。また、2111および2121の直下にある深さ2のフォルダ群2132の各フォルダ2112、2113、2122、2124、2127のフォルダ名はタスクID2012に対応する。ファイル管理で管理されるファイルは、深さ3のフォルダ群2133に保存される。具体的には、「Init」2112の直下のファイル2114は、スキャンサーバ101から送信された初期データである。Task12113の直下のファイル2115、2116は、タスクサーバ103がタスク処理を行った結果データである。なお、このときのファイル名はNo2013に対応する。
次に、ファイル取得処理を説明する。ファイル取得部1305は、タスクサーバ103、104のファイル取得要求に応じてファイルサーバ1202〜1204に保存されたファイルをタスクサーバ103、104に返す。具体的には、ファイル取得部1305は、タスクサーバ103、104のファイル取得要求に応じて、タスクIDに基づいてパス管理DB部1604に問い合わせ、タスクIDに紐付けられた格納先のファイルパスを取得する。ファイル取得部1305は、バックエンド部1310に対して格納先のファイパスを送信する。バックエンド部1310は、格納先のファイルサーバとの通信の可否を確認し、通信可能であった場合はファイルデータをファイル取得部1305に返す。ファイル取得部1305は、バックエンド部1310から返却されたファイルデータをタスクサーバ103、104に返す。
なお、中央管理サーバ1200のファイル保存部1304がファイルデータを保存している場合は、中央管理サーバ1200からファイルデータをタスクサーバ103、104に返せばよい。例えば、ファイル保存処理において、中央管理サーバ1200とファイルサーバA1202にファイルが保存されている場合に、中央管理サーバ1201が該ファイルの取得要求をタスクサーバ103、104から受ける状況が想定される。この状況下では、中央管理サーバ1201のファイル取得部1305は、ファイル保存部1304がファイルを保存していない。そのため、中央管理サーバ1201のファイル取得部1305は、タスクサーバ103、104から要求されたファイルを保存しているファイルサーバA1202をデータベースサーバを介して特定する。そしてファイルサーバA1202からファイルを取得してタスクサーバ103、104に返す。
次に、ファイル削除処理を説明する。ファイル削除部306は、スキャンサーバ101、タスクサーバ103、104からの削除要求に応じて、ファイル保存部1304、ファイルサーバ1202〜1204に格納されたエンティティを削除する。ファイル削除部1306は、スキャンサーバ101、タスクサーバ103、104からリクエストを受信すると、リクエストに含まれるファイルグループID、タスクID、Noに基づいてパス管理DB1604に問い合わせる。ファイル削除部1306は、取得した格納先のエンティティに関する全てのファイルパスをバックエンド部1310に送信する。バックエンド部1310は、格納先のファイルサーバとの通信の可否を確認し、通信可能であった場合はエンティティを削除する。バックエンド部1310は、エンティティの削除が完了したら、ファイル削除部1306に結果を返す。エンティティの削除に成功したら、ファイル削除部1306は、パス管理DB部1604から削除したエンティティに関するエントリを削除する。
次に、ジョブ情報更新処理を説明する。ジョブ情報更新部1301は、タスクサーバ103、104から、外部I/F1320を通じて結果通知とともにジョブ情報更新リクエストを受信する。ジョブ情報更新部1301は、受信したジョブ情報を用いてデータベースサーバ1205のジョブ情報管理DB部1602が管理するジョブ情報を更新する。図15は、データベースサーバ1205のジョブ情報管理DB1602が格納するジョブ情報の管理テーブルを示す。図15に示すように、更新される情報は、カレントタスクID1704、ステータス1705、および最終更新時刻1706が挙げられる。カレントタスクID1704を更新する前に、ジョブ情報更新部1301は、データベースサーバ1205のルート情報管理DB部1605から、該ルートIDにおける次のタスクIDを取得する。取得したタスクIDを以て、カレントタスクID1704を更新する。また、ステータス1705は0、最終更新時刻1706は現在時刻で更新する。
図16は、ルート情報管理DB部1605で管理されている情報の一例を示す。ルートID1401がルートを一意に識別するIDである。シーケンス番号1402はそのルートの何番目に実行するタスクであるかを保持する。タスクID1403はどのタスクを実行するかを保持する。例えば、データ1413、1414、1415、1416で、ルートID1401が002のルートを定義している。1413が1番目に実行するタスクであり、タスクID1403がTask1のタスクを実行する。同様に、1414が2番目に実行するタスクであり、Task3のタスクを、1415は3番目に実行するタスクでTask5のタスクを実行するという定義となる。
図15に戻り、ジョブ情報管理DB部1602に保持されるファイルデータについて説明する。ジョブID1701は、各ジョブ情報に一意に割り当てられるIDである。ルートID1702には、図6に示すチケット作成画面601にて選択したテンプレートに対応するルートIDが格納される。ファイルグループID1703は、Webアプリケーション部1300から発行されるIDである。カレントタスクID1704は、そのジョブにおいて処理を行うべきタスクを示すタスクIDである。タスクサーバ103、104は、このカレントタスクID1704を確認し、自タスクサーバに割り当てられたタスクIDと等しい行を選択し処理を行う。本IDは、該タスクの処理が完了した際には、ジョブ情報更新部1301が、該ルートIDの次のタスクのタスクIDに更新する。
ステータス1705には、処理待ち(0)、実行中(1)、エラー発生(2)を表す値が設定される。タスクサーバ103、104がジョブを選択する際には、ステータスが0となっている行を選択する。これにより、複数のタスクサーバが同一のタスクを処理するといった事態を防ぐことができる。タスクサーバ103、104が、ジョブを選択した後に、タスクサーバ103、104は、外部I/F1320を通じて、ジョブステータス変更部1605より、ステータス1705を1に変更する。最終更新時刻1706は、タスクサーバ103、104が該ジョブに対して、何らかの処理を実行した際に、更新される。ここで、何らかの処理とは、ステータスの更新処理や、ジョブの取得処理である。タスクサーバ103、104がジョブを取得する際に、自タスクIDと等しいジョブ情報が複数存在していた場合には、最終更新時刻1706が最も古いジョブを選択する。これにより、全てのジョブを平均的に処理することが可能となる。パラメータ1707には、詳細設定画面605にて設定した設定情報や、タスクサーバ103、104が、他のタスクサーバ103、104に渡す設定情報などを記載する。
図17は、本実施形態の負荷分散システムの動作処理の例を説明するシーケンス図である。まず、クライアント端末106が備えるWebブラウザ301が、スキャンサービスサービスサーバ群101に対して、スキャンチケット作成画面リクエストを送信する(ステップS1101)。続いて、スキャンサービスサービスサーバ群101が備えるチケット作成部511は、スキャンチケット作成画面リクエストにしたがって、スキャンチケット作成画面を生成し、Webブラウザ301にレスポンスとして返す(ステップS1102)。具体的には、チケット作成部511は、テンプレート管理部516から、テンプレート管理DB503に登録されているスキャンチケットのテンプレートを取得する。そして、チケット作成部511は、取得したテンプレートに含まれるテンプレート名を含むスキャンチケット作成画面を作成し、Webブラウザ301に対して送信する。Webブラウザは、受信したスキャンチケット作成画面を表示する(図5)。
次に、スキャンチケット作成画面上でのユーザの操作にしたがって、Webブラウザ301が、スキャンサーバ101に対して、スキャンチケット作成リクエストを送信する(ステップS1103)。スキャンサーバ101が備えるチケット作成部511が、スキャンチケット作成リクエストにしたがってスキャンチケットを作成する。また、チケット管理部515が、作成されたスキャンチケットをチケット管理DB502に保存し、Webブラウザ301に対してレスポンスを返す。
次に、画像形成装置107のスキャンソフトウェア部が、外部I/F514を介し、チケット一覧部512に対して、チケット一覧取得リクエストを送信する(ステップS1105)。チケット一覧取得リクエストは、チケットの一覧の送信を求める要求である。チケット一覧部512は、チケット一覧取得リクエストにしたがって、チケットの一覧を生成してWebブラウザ301に返す(ステップS1106)。Webブラウザ301は、返されたチケット一覧をチケット一覧画面(図6)上に表示する。
次に、チケット一覧画面上でのユーザの操作にしたがって、画像形成装置107のスキャンソフトウェア部が、スキャン処理を実行して画像データを取得する(ステップS1107)。そして、スキャンソフトウェア部が、上記スキャン処理によって取得した画像データと、チケット一覧画面上でのユーザの操作により選択されたスキャンチケットとをスキャンサーバ101のスキャン受信部513に送信する(ステップS1108)。
次に、スキャン受信部513が、受信した画像データをフローサーバ102に投入する(ステップS1109)。フローサーバ102が画像データを正しく受信できた場合には、フローサーバ102は、スキャンサーバ101に対して、受信した画像データに対応するファイルグループを応答する(ステップS110)。続いて、スキャンサーバ101のスキャン受信部513が、フローサーバ102に対して、ファイルグループIDとスキャンチケットとを送信する。これにより、フローサーバ102にジョブが投入される(S1111)。
次に、フローサーバ102がタスクサーバからのタスク取得リクエストに応じてタスクを渡す処理について説明する。各々のタスクサーバ(103,104)のタスク取得部1011が、定期的にフローサーバ102に問い合わせ(タスク取得リクエスト)を行う。そして、タスク取得部1011が、タスクサーバにて処理可能なタスクを取得する(ステップS1112、S1113、S1119、S1120)。
タスクサーバのデータ取得部1012が、タスク取得部1011によって取得したタスクに対応する、処理すべき画像データをフローサーバ102から取得する(ステップS1114、S1115、S1121、S1122)。タスクサーバのタスク処理部1015が、フローサーバ102から取得した画像データに対して各種処理(タスク処理)を実行する(ステップS1116、S1123)。
図15に示す例では、タスクサーバ103のタスク処理部1015は、ステップS1116におけるタスク処理の結果を、データ保存部1013を介してフローサーバ102に保存する(ステップS1117)。また、タスクサーバ104のタスク処理部1015は、ステップS1123におけるタスク処理の結果を、クラウドサービスサーバ群108にデータ送信する(ステップS1124)。また、タスクサーバ(103、104)のタスクステータス通知部1014は、一連のタスク処理の終了結果をフローサーバ102に通知する(ステップS1118、S1125)。
次に、図18と図19を用いて、スキャンサーバ101とフローサーバ102が通信する詳細な仕組みを説明する。図18は、スキャンサーバ101の通信部517がWebアプリケーション部1300に対して通信を行う際の動作を表すフローチャートである。図19は、フローサーバ102のWebアプリケーション部1300がスキャンサーバ101からの通信を受けて行う動作を表すフローチャートである。
まず、図18のS1801において、スキャンサーバ101の通信部517は、まずWebアプリケーション部1300に送信するリクエストに含まれるメソッドのタイプを確認する。S1802で、通信部517は、ファイル転送以外のメソッド、つまりバイナリ転送を伴わないメソッドの場合、SLB1206に対してメソッドの呼び出しを実行する。ここで、SLB1206は、メソッドリクエストを中央管理サーバ1200か1201へ適切に振り分けを行い、どちらかの中央管理サーバの外部I/F1320に対してメソッドリクエストを送信する。この時、中央管理サーバのファイル保存部1304は、図19のS1901にてメソッドリクエストからメソッドのタイプを判定する。今回はファイル転送以外のメソッドなので、S1902にて、ファイル保存部1304から要求されたメソッドを実行し、S1903にてその結果をレスポンスとしてSLB1206経由でスキャンサーバ101へ返信する。
一方、S1801で通信部517は、ファイル転送メソッドであると判定した場合、S1803にて転送するファイルデータのサイズ確認を行う。この時、ファイルのサイズがある一定以下の大きさの場合、S1804で通信部517は、データを転送する転送手段として機能し、SLB1206に対してメソッドの実行、すなわちファイル転送を行う。ここで、SLB1206は、転送されたファイルデータを中央管理サーバ1200か1201へ適切に振り分けを行い、中央管理サーバの外部I/F1320に対して送信する。この時、ファイル保存部1304は、S1901にてメソッドタイプを確認するが、ファイル転送メソッドのため、S1904にて外部I/F1320を介してファイルを受信する。
次に、ファイル保存部1304は、受信したファイルを保存する処理を実行する。このとき、ファイル保存部1304が特定のファイルサーバに保存しただけでは、該当サーバがクラッシュした場合、ファイルデータも取得できなくなり、それを必要とするタスクサーバ103がタスク/ジョブが実行できなくなるリスクがある。そこで、本実施形態においては、ファイル保存部1304は、受信したファイルデータを異なる2つのサーバに保存することで、上記リスクを回避する仕組みを組み込んでいる。ファイル保存部1304は、ファイル保存スレッドとしてS1905とS1906の2重書き込みを実行する。この時書き込み先として2つともネットワーク上のファイルサーバを指定すると、ネットワーク帯域を2倍使ってしまう。そこで、S1905では、Webアプリケーション部1300のファイル保存部1304は、ネットワーク上のファイルサーバA/B/Cから任意のサーバを選択して、ファイルを保存する。一方、S1906ではメソッドを実行している中央管理サーバ1200か1201のローカルディスク、つまりファイル保存部1304にファイルを保存する。またS1905、S1906では、Webアプリケーション部1300がパス管理DB1604に対して管理対象として保存したファイルの情報を追加する(図13(A))。これによってネットワーク帯域を余計に使用することなく、ファイルの多重度を上げることができる。
また、S1803で、通信部517が、ファイルのサイズがある一定以上の大きさだと判定した場合に、S1805でファイル保存部1304は、SLB1206に対してアドレス情報リクエストを送信する。ここで、SLB1206は、アドレス情報リクエストを中央管理サーバ1200か1201へ適切に振り分けを行い、Webアプリケーション部1300のファイル保存部1304に対してアドレス情報を要求する。ここでアドレス情報とは、IPアドレスやホスト名など、サーバ間の通信を実行する際、通信先サーバを一意に特定できる情報を意味する。
この時ファイル保存部1304は、S1901でファイル転送以外のメソッドであってアドレス情報リクエストと判定する。S1902でファイル保存部1304は、Webアプリケーション部1300がホストされているサーバのアドレス情報を取得し、S1903でレスポンスとしてアドレス情報をSLB1206経由で通信部517に返信する。すなわち、ファイル保存部1304は、位置情報の取得要求を受付けてSLB1206に位置情報を送信する送信手段として機能する。S1806で、通信部517はアドレス情報を受信し、S1807にてそのアドレスに向けてファイル転送を実行する。すなわち、通信部517は、転送するファイルデータに応じてSLB1206にファイルデータを転送するか、SLB1206を介さずSLB1206が決定した中央管理サーバにファイルデータを転送するか転送方法を決定する決定手段として機能する。この転送方法により、通信部517は、SLB1206を経由せずに指定の中央管理サーバにファイルを直接転送するので、SLB1206の性能制限を受けず、ネットワーク1210の帯域を十分に使った転送処理が可能となる。Webアプリケーション部1300は、S1901でメソッドタイプをファイル転送メソッドと判定し、S1904にて転送されるファイルデータを受信する。受信したファイルに関しては、ファイル保存部1304は前述のとおりS1905、S1906にて2つの異なるサーバに保存する。
なお、S1803で「一定のサイズ」の判定基準は、動的に決定してもよい。例えば、同時期に存在するジョブの量から同時アクセス数は割り出せるので、SLB1206の処理性能(一定時間に転送できるファイルサイズ)を同時アクセス数で割った値がSLB1206の転送可能な平均ファイルサイズになる。そこでこのサイズを前記「一定のサイズ」としてS1803の判定に利用するようにしてもよい。
以上により、SLB1206によるサーバの負荷分散を行いつつも、SLB1206の性能限界による帯域制約をうけないよう効率的な通信を行うことが可能となる。また、転送データがSLB1206の性能限界に影響をあたえないほど小さなデータの場合には無駄に呼び出し回数を増加させないようメソッドタイプと転送データの大きさによって動的にSLB1206経由で効率的な通信を行うことが可能となる。また、転送されたファイルデータを異なる2つのサーバに保持するに当たり、片方をローカルディスクに保存させることで、ファイルを2重保持しつつも、ネットワーク帯域を節約した効率的な通信を行うことができる。
(実施例2)
実施例1において、中央管理サーバは2つに限定する必要はなく、ジョブの流量が多い場合には、中央管理サーバをネットワークに新たに接続してスケールアウトさせることができる。もちろん、ジョブの流量が少ないときには、多くのサーバを立ち上げておくのは無駄なため、中央管理サーバを減らしてスケールインさせる仕組みも必要である。
しかし、スケールイン時に削減する中央管理サーバのローカルディスクにもファイルデータが存在する可能性があり、別のファイルサーバに退避させる必要がある。この時、特定のファイルサーバに全てのファイルを移動させてしまうと、同一ファイルサーバに同じファイルが複数存在するケースができてしまう。この場合、そのファイルサーバがクラッシュすると、2重保持した両方のファイルが同時に失われてしまい、2重保持した意味がない。そこで、中央管理サーバをスケールインする際には、削減する中央管理サーバが保持するファイルごとに、同一のファイルを保持しないファイルサーバを宛先に選んで退避させることが必要となる。
中央管理サーバの削減処理において、図12に示すデータベースサーバ1205が管理装置として機能し、スケール調整部1607が、例えば、通信データの転送処理量が閾値以下である場合にネットワーク1210を通じて削減処理を実行する。図20は、スケール調整部1607が実行する中央管理サーバ削減処理のフローチャートである。まずスケール調整部1607は禁止手段として機能し、S2401にて削減対象となる中央管理サーバを新規書き込みを禁止する状態にする。具体的には、ファイルサーバ管理DB1603にアクセスし、削減対象となる中央管理サーバのステータス2003(図20 A参照)の値を−1に変更する。次にS2402にて、スケール調整部1607は、削減対象となる中央管理サーバに保存されているファイルデータが存在するかどうかをチェックする。ファイルデータが存在する場合、スケール調整部1607は、同一データを格納している格納装置以外の格納装置を抽出する抽出手段として機能する。つまり、スケール調整部1607は、S2403にて削減対象の中央管理サーバ上にある任意のファイルに関して、パス管理DB1604とファイルサーバ管理DB1603を参照して同一のファイルが存在しないファイルサーバを抽出する。これにより、削除対象の中央管理サーバにファイルデータが残っていた場合に、ファイルデータが削除されることを防止する。
具体的には、スケール調整部1607は、図13(B)に示すファイルグループID2011、タスクID2012、No2013の3つが同一のファイルが存在するホスト名を抽出する。そして、スケール調整部1607は、そのホスト名以外のファイルサーバ1つ、図13(A)を参照して任意に選択する。S2404にてスケール調整部1607は、選択したファイルサーバに対して、前記ファイルのコピーを実行する。スケール調整部1607は、S2405にて管理パス変更を実施する。具体的には、対象のファイルに対して、図13(B)のパス2014とホスト名2015をS2404でコピーした宛先へと変更を実施する。S2406では、スケール調整部1607は移動元のファイルを削除する。
その後、再度S2402に戻り、スケール調整部1607は、削減対象の中央管理サーバにファイルデータが存在するかどうかを再度確認する。以降、ファイルデータが存在する限り、このS2402〜S2406を繰り返す。S2402にて、削減対象の中央管理サーバにファイルが存在しないことが確認されると、S2407にてスケール調整部1607が管理手段として機能し、削減対象の中央管理サーバをシャットダウンし、本システムより削除する。同様の処理により、スケール調整部1607はファイルサーバを作成・削除することも可能である。
以上により、中央管理サーバをスケールインする際にも、同一ファイルを複数のファイルサーバで多重保持する構成を維持することが可能となる。
(実施例3)
実施例1では、スキャンサーバからのジョブ投入する構成において、SLB1206経由でのメソッド実行か宛先サーバのアドレスに対する直接実行かを切り替えることで、SLB1206による帯域制約を回避するか、呼び出し回数を減らすかを動的に切り替えた。しかし、前記実施例1では、ファイルデータの読み出しのシナリオが含まれていなかった。
図21、図22は、ファイルデータの読み出しも存在するシステムにおいてそれぞれ図18、図19を拡張したフローチャートである。具体的には、図21はタスクサーバ103、104の通信部1016がWebアプリケーション部1300に対して通信を行う際の動作を表すフローチャートである。図22は、フローサーバ102のWebアプリケーション部1300がタスクサーバ103、104からの通信を受けて行う動作を表すフローチャートである。
図21のS1801からS1802は、図18と同様で、実行主体がスキャンサーバ101からタスクサーバ103、104に変わっただけである。S1801にてメソッドタイプがファイル転送メソッドと判定された場合、通信部1016はS2201でファイル転送メソッドが書き込みメソッドなのか読み込みメソッドなのかを判定する。書き込みメソッドの場合、通信部1016は図18と同様、S1803〜S1807を実行する。
一方、S2201でファイル読み込みメソッドだと判定された場合、S2202にて通信部1016は、SLB1206宛てにメソッドの実行を指示する。これによりSLB1206を通じて適切な中央管理サーバにあるWebアプリケーション部1300のAPIの読み込みメソッドが呼び出される。
この時、Webアプリケーション部1300のファイル取得部1305は、図22のS1901でファイル転送メソッド、S2301で読み込みメソッドと判定する。すなわち、ファイル取得部1305は、ファイルデータを取得することを求める取得要求か、またはタスクサーバにより処理されたデータを中央管理サーバに転送することを求める転送要求かを特定する特定手段として機能する。またファイル取得部1305は、S2302にて対象ファイルが保存されているファイルサーバもしくは中央管理サーバにアクセスし、読み込み対象となるファイルのサイズ確認を行う。この時ファイルサイズがある一定の閾値よりも大きい場合、S2303にてファイル取得部1305は自サーバのアドレス情報を転送先として取得する。そしてファイル取得部1305は、例外を発生させた上で、その例外の属性としてアドレス情報を組み込み、通信部1016にSLB1206経由で返信する。通信をうけた通信部1016は、図21のS2203で受信データがファイルデータか、アドレス情報を含む例外なのかを判定する。例外情報と判定した場合、S2204で通信部1016は取得したアドレス宛に再度読み込みメソッドを実行する。このとき、通信部1016は取得手段として機能し、ファイルデータが予め定められたデータ量を超える場合に、SLB1206により決定される中央管理サーバからデータを直接取得する。ファイル取得部1305は、S2304にて目的のファイルをファイルサーバから取得し、S2305にて取得したファイルを通信部1016に転送する。Webアプリケーション部1300では通信部1016が転送されてきたファイルデータを受信する。
一方、図22のS2302で対象ファイルサイズがある一定の閾値よりも小さい場合、Webアプリケーション部1300はS2304、S2305を実行し、前記同様ファイルを取得転送する。ただし、この場合は、SLB1206経由で通信部1016へ転送される。さらにこの場合、通信部1016はS2203にて受信データを判定するが、ファイルデータであると判定し、そのままS2205でファイル受信を行う。
以上により、ファイル書き込み時だけでなくファイル読み込み時においても、転送ファイルサイズによってSLB経由の通信を回避するか、呼び出し回数を増加させないSLB経由の通信を実施するかを動的に切り替えて効率的な通信を行うことが可能となる。
上記のように、実施例1で明示した以外のシステムでも適用可能である。
また、本システムはWindows Azure(商標)のような別システム上に構築されたシステムにおいても適用可能である。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
101 スキャンサーバ
102 フローサーバ
103タスクサーバ
1206 SLB
1200,1201 中央管理サーバ
1205 データベースサーバ

Claims (8)

  1. データを転送する転送装置と、転送された前記データを保存する複数の保存装置と、前記転送装置からの転送要求を受信したことに応じて、前記保存装置の中から処理状況に応じて前記データの転送を受ける保存装置を決定する分散装置とを備える負荷分散システムであって、
    前記転送装置は、
    転送するデータに応じて、前記分散装置にデータを転送するか、前記分散装置を経由せず前記分散装置により決定される保存装置にデータを転送するか、転送方法を決定する決定手段と、
    前記決定された転送方法に従い、データを転送する転送手段とを備える
    ことを特徴とする負荷分散システム。
  2. 前記決定手段は、前記データが予め定められたデータ量を超える場合に、前記分散装置を経由せず前記分散装置により決定される保存装置にデータを転送することを決定し、前記分散装置から前記保存装置の位置情報を取得し、前記データが予め定められたデータ量を超えない場合は、前記分散装置にデータを転送することを決定し、
    前記転送手段は、前記決定手段が前記分散装置を経由せず前記分散装置により決定される保存装置にデータを転送することを決定した場合に、前記取得された前記位置情報に基づいて前記データを前記保存装置に直接転送する
    ことを特徴とする請求項1に記載の負荷分散システム。
  3. 前記保存装置は、
    前記分散装置から前記位置情報の取得要求を受付けて前記分散装置に前記位置情報を送信する送信手段と、
    前記分散装置または前記転送装置から前記データを受信し、受信された前記データを保存する保存手段とを備え、
    前記保存手段は、保存された前記データと同じデータをネットワークを介して格納装置に転送し、前記転送されるデータを保存することを指示する
    ことを特徴とする請求項2に記載の負荷分散システム。
  4. 前記保存装置は、
    前記転送装置から前記分散装置を介して要求を受信し、前記要求がデータを取得することを求める取得要求か、または前記転送装置により処理されたデータを前記保存手段に転送することを求める転送要求かのいずれであるかを特定する特定手段をさらに備え、
    前記要求が前記取得要求である場合であって、前記データが予め定められたデータ量を超えるときは、前記送信手段が、前記保存装置の位置情報を前記分散装置を介して前記転送装置に送信し、前記転送装置が備える取得手段が、受信した前記位置情報に基づいて前記保存装置から前記データを直接取得し、前記データが予め定められたデータ量を超えないときは、前記取得手段が、前記分散装置を介して前記保存装置が備える前記送信手段から前記データを取得し、
    前記要求が前記転送要求である場合であって、前記処理されたデータが予め定められたデータ量を超えるときは、前記転送装置が備える前記決定手段が、前記処理されたデータの転送先の保存装置の位置情報を前記分散装置を介して取得し、取得した位置情報に基づいて前記保存装置に前記処理されたデータを直接転送し、前記処理されたデータが予め定められたデータ量を超えないときは、前記決定手段が、前記分散装置に前記処理されたデータを転送することを決定する
    ことを特徴とする請求項3に記載の負荷分散システム。
  5. 前記保存手段は、複数の前記格納装置のうち保存しているデータ量が閾値以下である格納装置を抽出し、抽出された前記格納装置に対し前記保存手段が保存したデータと同じデータを保存することを指示し、
    前記送信手段は、前記取得要求された前記データを前記転送装置に送信する場合に、前記保存手段が該データを保存しているか否かを特定し、前記保存手段が前記データを保存していない場合に、前記データと同じデータを保存している格納装置から該データを取得して、前記転送装置に送信する
    ことを特徴とする請求項4に記載の負荷分散システム。
  6. 前記保存装置および前記格納装置を管理する管理装置をさらに備え、
    前記管理装置は、
    前記データの転送処理の状況に応じて前記保存装置を作成または削除する管理手段と、
    前記データの転送処理量が閾値以下である場合に前記保存装置を削除することを決定し、削除対象の保存装置への前記データの転送を禁止する禁止手段と、
    前記削除対象の保存装置に前記データが保存されているか否かを確認し、該データが保存されている場合は、該データと同じデータを格納している格納装置以外の格納装置を抽出する抽出手段とを備え、
    前記管理手段は、抽出された格納装置に前記削除対象の保存装置に保存されている前記データを転送して該データの保存を指示するとともに、前記削除対象の保存装置を削除する
    ことを特徴とする請求項乃至請求項5のいずれか一項に記載の負荷分散システム。
  7. データを転送する転送装置と、転送された前記データを保存する複数の保存装置と、前記転送装置からの転送要求を受信したことに応じて、前記保存装置の中から処理状況に応じて前記データの転送を受ける保存装置を決定する分散装置とを備える負荷分散システムの制御方法であって、
    前記転送装置が、転送するデータに応じて、前記分散装置にデータを転送するか、前記分散装置を経由せず前記分散装置により決定される保存装置にデータを転送するか、転送方法を決定する決定工程と、
    前記決定された転送方法に従い、データを転送する転送工程とを含む
    ことを特徴とする制御方法。
  8. 請求項7に記載の制御方法をコンピュータにより実行させることを特徴とするコンピュータプログラム。
JP2012161931A 2012-07-20 2012-07-20 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム Expired - Fee Related JP5984552B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012161931A JP5984552B2 (ja) 2012-07-20 2012-07-20 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム
US13/926,033 US9432448B2 (en) 2012-07-20 2013-06-25 Load dispersion system, control method for load dispersion system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012161931A JP5984552B2 (ja) 2012-07-20 2012-07-20 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2014021854A JP2014021854A (ja) 2014-02-03
JP5984552B2 true JP5984552B2 (ja) 2016-09-06

Family

ID=49947514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012161931A Expired - Fee Related JP5984552B2 (ja) 2012-07-20 2012-07-20 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム

Country Status (2)

Country Link
US (1) US9432448B2 (ja)
JP (1) JP5984552B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6525761B2 (ja) 2015-06-19 2019-06-05 キヤノン株式会社 ウェブサーバ、管理システム、およびその制御方法
JP6147299B2 (ja) * 2015-07-13 2017-06-14 Keepdata株式会社 リレーサーバシステム及びリレーサーバを用いた通信方法
EP3148125A1 (en) 2015-09-25 2017-03-29 Fujitsu Limited Setting method, server device and service chain system
CN109299112B (zh) * 2018-11-15 2020-01-17 北京百度网讯科技有限公司 用于处理数据的方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US7304665B2 (en) 2001-03-21 2007-12-04 Canon Kabushiki Kaisha Image transfer system and display method in which a stored image is transferred to an image display device
US7835363B2 (en) * 2003-02-12 2010-11-16 Broadcom Corporation Method and system to provide blade server load balancing using spare link bandwidth
KR100603576B1 (ko) * 2004-12-06 2006-07-24 삼성전자주식회사 이종 단말간 영상 신호 전송 시스템 및 그 방법
JP5100004B2 (ja) * 2005-12-14 2012-12-19 キヤノン株式会社 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法
US8812579B2 (en) * 2006-12-21 2014-08-19 Verizon Patent And Licensing Inc. Apparatus for transferring data via a proxy server and an associated method and computer program product
JP4729549B2 (ja) * 2007-09-26 2011-07-20 日本電信電話株式会社 負荷制御方法及び装置及びプログラム
JP4803266B2 (ja) * 2009-02-12 2011-10-26 ソニー株式会社 通信装置、サーバ、プログラム及び通信システム
JP5368837B2 (ja) 2009-03-16 2013-12-18 キヤノン株式会社 サーバ、サーバを含む情報処理システム、サーバの制御方法、及びプログラム
WO2011061742A2 (en) * 2009-11-18 2011-05-26 Yissum Research Development Company Of The Hebrew University Of Jerusalem, Ltd. Communication system and method for managing data transfer through a communication network
US9674379B2 (en) * 2010-11-04 2017-06-06 Brother Kogyo Kabushiki Kaisha Relay apparatus, communication apparatus, and control methods of relay apparatus
US9386114B2 (en) * 2011-12-28 2016-07-05 Google Inc. Systems and methods for accessing an update server
US9736260B2 (en) * 2012-06-21 2017-08-15 Cisco Technology, Inc. Redirecting from a cloud service to a third party website to save costs without sacrificing security

Also Published As

Publication number Publication date
US20140025824A1 (en) 2014-01-23
US9432448B2 (en) 2016-08-30
JP2014021854A (ja) 2014-02-03

Similar Documents

Publication Publication Date Title
US10042905B2 (en) Information processing apparatus, information processing system, and data conversion method
JP5882837B2 (ja) 情報処理システム、画像形成装置、制御方法およびコンピュータプログラム
JP6364738B2 (ja) 情報処理システム、情報処理装置、プログラム及び処理実行方法
US8570574B2 (en) Processing system, control method, and storage medium therefor
US9507789B2 (en) System, relay server apparatus, information processing method and computer-readable medium
US9064122B2 (en) Job processing system, job processing method, and non-transitory computer-readable medium
JP5984552B2 (ja) 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム
CN105516334A (zh) Cdn文件分发系统
JP4333763B2 (ja) 画像処理装置、記憶領域の管理方法、およびコンピュータプログラム
US10437919B2 (en) Information processing system, information processing method, document processing system, and storage medium, for deleting a conversion process when a request to generate document data in a first format has been canceled
US20140365430A1 (en) Information processing apparatus, system, and control method
JP6123293B2 (ja) 情報処理システム、データ変換処理方法、プログラム及び記録媒体
JP2012079171A (ja) ジョブ実行システム、ジョブ実行装置及びプログラム
US11960782B1 (en) Information processing system, image forming system, and information processing method for restoring old version of task file via image forming workflow
JP2013106193A (ja) システム、およびその制御方法。
US12008282B1 (en) Information processing system, image forming system, and information processing method that combine and automate cloud and local tasks
JP2020071539A (ja) 管理サーバ、文書ファイル管理方法、および文書ファイル管理プログラム
JP6676098B2 (ja) 情報処理システム、情報処理装置、制御方法、及びプログラム
JP2015127878A (ja) 文書管理サーバー装置、情報処理方法及びプログラム
JP6305078B2 (ja) システムおよび制御方法
JP2016085732A (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2017027273A (ja) 情報処理装置、情報処理方法、及びプログラム
JP6337532B2 (ja) 情報処理システム、及び情報処理方法
JP4483633B2 (ja) ハードウェアリソースの状態を管理するための情報処理装置、方法及びプログラム
JP6012409B2 (ja) 画像管理装置、画像管理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160608

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: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160802

R151 Written notification of patent or utility model registration

Ref document number: 5984552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees