JP6157181B2 - サーバーシステム、その制御方法、およびそのプログラム - Google Patents

サーバーシステム、その制御方法、およびそのプログラム Download PDF

Info

Publication number
JP6157181B2
JP6157181B2 JP2013077128A JP2013077128A JP6157181B2 JP 6157181 B2 JP6157181 B2 JP 6157181B2 JP 2013077128 A JP2013077128 A JP 2013077128A JP 2013077128 A JP2013077128 A JP 2013077128A JP 6157181 B2 JP6157181 B2 JP 6157181B2
Authority
JP
Japan
Prior art keywords
job
task
processing
trials
attempts
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.)
Active
Application number
JP2013077128A
Other languages
English (en)
Other versions
JP2014203170A (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 JP2013077128A priority Critical patent/JP6157181B2/ja
Priority to US14/231,037 priority patent/US9720776B2/en
Publication of JP2014203170A publication Critical patent/JP2014203170A/ja
Application granted granted Critical
Publication of JP6157181B2 publication Critical patent/JP6157181B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Description

本発明は、並列分散処理を実行するサーバーシステム、その制御方法、およびそのプログラムに関する。
近年、サーバーコンピューター側で各種処理を行う形態として、クラウドコンピューティングシステムやSaaS(Software as a Service)という技術が利用され始めている。クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ処理を並列に分散して実行することで、多くのクライアントからの要求を同時に処理することが可能となる。また、サーバーで実行されるジョブの一連の処理をタスク処理という単位に分解し、各タスク処理を実行するタスクを連結させて並行で処理することで多数のジョブをスケーラブルに処理することが可能なことも特徴である。本明細書ではこのようなシステムをクラウドシステムと称する。
クラウドシステムにおいて、コンピューターリソースのスケーラビリティ向上や、クライアントからの要求のピーク時にシステムダウンを防ぐために、バックエンドプロセスが能動的に非同期でジョブを取得して実行する形態が特許文献1に開示されている。このような形態において、バックエンドプロセスに異常などが発生し処理が完了しない場合、その処理をもう一度実行させるリトライの機能が必要になる。リトライが行われると、異常が発生したバックエンドプロセスとは別のバックエンドプロセスであってもジョブの処理が可能になる。ここでいう「バックエンドプロセス」とは、OSからは別のプロセスとして認識・管理されるが、異常が発生したバックエンドプロセスと同じ処理を実行するプログラムを表している。バックエンドプロセスの異常は、コンピューターにおいてハードウェア故障が発生した場合、またはバックエンドプロセスに実装したソフトウェアのバグなどによって発生する。
特開2011−095835号公報
バックエンドプロセスに規定処理を実装しタスクを実現した場合、ジョブ処理が正常に実行されるようにするため、タスクに後処理を実行する仕組みを取り入れることが考えられる。後処理とは、ジョブ処理が失敗したことをメールで通知する処理、エラーログを出力する処理、およびステータスを変更する処理等が挙げられる。何れもユーザーにジョブ処理が正常に実行されなかったことを伝達することで、ジョブ処理が再度行われ正常に実行されることを期待するための処理である。
しかしながら、クラウドシステムのリトライの機構は非同期で並列処理を行うため、同一のタスクが同一ジョブを繰り返し実行するとは限らない。そのため、タスクは取得したジョブのジョブ処理が何回目の実行なのかは判断できず、後処理を適切なタイミングで実行することができない。
そこで本願発明では、タスクの試行回数が最大試行回数を超えていない場合は通常ジョブを送信しタスクに特定の処理を実行させ、タスクの試行回数が最大試行回数を超えている場合は失敗ジョブを送信し特定の処理に対応する後処理を実行させるサーバーシステムを提供することを目的の1つとする。
規定処理を実行する複数のタスクと通信可能であり、発生したジョブを前記規定処理が夫々異なる複数の前記タスクに順次処理を実行させることによりジョブ処理を実現するサーバーシステムであって、前記タスクにより実行された前記規定処理が失敗したことに応じて前記タスクの試行回数をカウントし、カウントした前記タスクの試行回数が該試行回数に制限を設けるための最大試行回数を超えたことに応じて前記ジョブの試行回数をカウントするカウント手段と、前記タスクが前記ジョブの取得を要求した際に、前記カウント手段によりカウントされたタスクの試行回数が前記最大試行回数を超えていない場合は通常ジョブを送信し、前記カウント手段によりカウントされたタスクの試行回数が前記最大試行回数を超えているが前記ジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えていない場合は、失敗ジョブを送信せずに前記ジョブ処理を始めからやり直すように制御するジョブ管理手段と、前記タスクは、前記ジョブ管理手段から前記通常ジョブが送信された場合、前記規定処理を実行し、前記ジョブ管理手段から前記失敗ジョブが送信された場合、前記規定処理に対応する後処理を実行するジョブ実行手段と、を有することを特徴とする。
本発明によると、ジョブ処理が何回目の実行なのか判断できないタスクであっても、後処理を適切なタイミングで実行することができる。
本発明の実施例1におけるクラウドシステムの全体構成を示す図である。 本発明の実施例1におけるクライアント端末、サーバーコンピューターのハードウェア構成図である。 本発明の実施例1におけるクライアント端末のシステム構成図である。 本発明の実施例1における画像形成装置の内部構成の詳細を示す図である。 本発明の実施例1におけるスキャンサービスサーバー群のシステム構成図である。 本発明の実施例1におけるスキャンサービスサーバー群のユーザーインターフェースの一例である。 本発明の実施例1におけるスキャンサービスサーバー群にて保持するスキャンチケットの一例である。 本発明の実施例1におけるスキャンサービスサーバー群にて保持するテンプレートの一例である。 本発明の実施例1における画像形成装置のユーザーインターフェースの一例である。 本発明の実施例1におけるタスクサーバーのシステム構成図である。 本発明の実施例1におけるスキャン処理の一連の流れを示すシーケンス図である。 本発明の実施例1におけるフローサービスサーバー群のシステム構成図の概要である。 本発明の実施例1におけるルート管理サービスサーバー群のシステム構成図である。 本発明の実施例1におけるルート管理サービスサーバー群にて保持するルート情報の一例である。 本発明の実施例1におけるルート管理サービスサーバー群にて保持するタスク情報の一例である。 本発明の実施例1におけるジョブ管理サービスサーバー群のシステム構成図である。 本発明の実施例1におけるジョブ管理サービスサーバー群にて保持するジョブ情報の一例である。 本発明の実施例2における一時ファイル管理サービスサーバー群のシステム構成図である。 本発明の実施例2における一時ファイル管理サービスサーバー群にて保持する一時ファイル情報の一例である。 本発明の実施例2におけるルート管理サービスサーバー群にて保持するルート最大試行回数定義の一例である。 本発明の実施例2におけるジョブ管理サービスサーバー群にて保持するジョブ情報の一例である。 本発明の実施例1におけるジョブ管理サービスサーバー群が実施する、タスクサーバーへのタスク応答に関するフローチャートである。 本発明の実施例1におけるタスクサーバーが実施する処理に関するフローチャートである。 本発明の実施例1におけるジョブ管理サービスサーバー群が実施する、タスクサーバーへのタスク応答に関するフローチャートである。 本発明の実施例3におけるクラウドシステムの全体構成を示す図である。 本発明の実施例3における管理者端末のシステム構成図である。 本発明の実施例3における再実行ツールのユーザーインターフェースの一例である。 本発明の実施例3における再実行ツール2601が実施する処理に関するフローチャートである。
クラウドシステムのリトライの機構は非同期で並列処理を行うため、同一のタスクが同一ジョブを繰り返し実行するとは限らない。そのため、タスクは取得したジョブのジョブ処理が何回目の実行なのかは判断できず、後処理を適切なタイミングで実行することができない。タスクはジョブ処理が何回目の実行なのかを判断することができないので、例えば、処理が失敗する度にメールを通知する実装にしたとする。しかし、3回リトライすると失敗の度にメールが送信されることになるので、実際失敗したジョブは一つであるにも関わらず3通失敗通知が送られてしまいユーザーを混乱させることがある。ここでは、この課題を解決するためのクラウドシステムについて詳細に説明する。以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1は、本発明の実施の形態に係るクラウドシステムを含むシステムの全体構成を示す図である。図1で、スキャンサービスサーバー群101、フローサービスサーバー群102、タスクサーバー103、104、クライアント端末106、画像形成装置107、インターネットサービスサーバー108は、ネットワーク110〜112を介して接続されている。図1において、タスクサーバー103、104、クライアント端末106、画像形成装置107、クラウドサービスサーバー群108は、夫々複数存在することを仮定している。
ネットワーク110〜112は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれである。また、これらの組み合わせにより実現される、いわゆる通信ネットワークである。ネットワーク110〜112は、データの送受信が可能であればよい。クラウドサービスでは、通常、ネットワーク110、112はインターネット、ネットワーク111は企業内ネットワークやサービスプロバイダーのネットワークとなる。スキャンサービスサーバー群101、フローサービスサーバー群102、タスクサーバー103、104は、一般的に複数のサーバーコンピューター群で構成されており、これらサーバー群がユーザーに対してクラウドサービスを提供する。しかし、サーバーコンピューター群は1台で構成されていても良く、例えば、フローサービスサーバー群102は夫々が異なる機能を持つサーバー群で構成されているがプロセスとして実装しても良い。このように、本願発明を達成するためのサーバーの数に制限はないため、サーバーシステムと称した場合は1台のサーバー、またはサーバー群で構成されるサーバーを指すものとする。
実施例1におけるスキャンサービスサーバー群101が提供するサービスとは、ユーザーが画像形成装置でスキャンしたことで得られる画像データに対して画像処理を施し、外部のクラウドサービスに保存するサービスである。また、夫々の処理は、タスクサーバー103、および104により実現され、各タスクサーバーが順次処理することでスキャンサービスが提供される。
また、様々な企業などにより外部サーバーシステムであるクラウドサービスサーバー群108がインターネット上に公開されており、これらも一般的に複数のサーバーコンピューター上にて実現される。クライアント端末106は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、PDA(パーソナルデータシスタント)等から成るが、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末106では、Webブラウザ(インターネットブラウザ、WWWブラウザ、World Wide Webの利用に供するブラウザ)等のプログラムを実行する環境が内蔵されている。
図2は、実施例1に係るクライアント端末106、サービス群101〜104を実行するサーバーコンピューターのハードウェア構成図である。図2において、Central Processing Unit(CPU)202は装置全体の制御を行う。CPU202はハードディスク(HDD)205に格納されているアプリケーションプログラム、OS等を実行し、Randam Access Memory(RAM)203にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。Read Only Memory(ROM)204は記憶手段であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM203は一時記憶手段であり、CPU202の主メモリ、ワークエリア等として機能する。HDD205は外部記憶手段の一つであり、大容量メモリとして機能し、Webブラウザ等のアプリケーションプログラム、サービス群のプログラム、OS、関連プログラム等を格納している。ディスプレイ206は表示手段であり、キーボード207から入力したコマンド等を表示したりするものである。インターフェース208は外部装置I/Fであり、プリンター、USB機器、周辺機器を接続する。キーボード207は指示入力手段である。システムバス201は、装置内におけるデータの流れを司るものである。ネットワークインターフェースカード(NIC)209は、該インターフェース209、ネットワーク110〜112を介して外部装置とのデータのやり取りを行う。なお、上記コンピューターの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM204、RAM203、HDD205などで変更することも可能である。
図3は、実施例1に係るクライアント端末106のシステム構成図である。図3において、Webブラウザ301を利用し、スキャンサービスサーバー群101が提供するWebアプリケーションへのリクエストの送信と、レスポンスの表示等を行う。クラウドサービスを利用するユーザーは本クライアント端末106のWebブラウザ301を利用して、クラウドシステムのサービスを利用する。Webブラウザ301は、CPU202がHDD205に保存されたWebブラウザのプログラムを実行することにより実現される。
図4は、実施例1に係る画像形成装置107の内部構成を例示するブロック図である。実施例1ではスキャン・プリントの両機能を併せ持つ画像形成装置を例に説明するが、スキャンサービスを実現するに当たっては、プリント機能のない、スキャン専用装置でも良い。図4において、画像形成装置107は、画像処理ユニット401、印刷ユニット402、および読み込みユニット403から構成される。画像処理ユニット401は、CPU404、直接記憶部405、間接記憶部406、ユーザーインターフェース407、外部インターフェース408から構成されている。
CPU404は、所定のプログラムを実行し、画像形成装置107の各種制御を指示するユニットである。CPU404は、CPU(Central Processing Unit)により実現される。直接記憶部405は、CPU404がプログラムを実行する際に使用するワークメモリであり、CPU404が実行するプログラムは直接記憶部405にロードされる。直接記憶部405は、RAM(Random Access Memory)により実現される。間接記憶部406は、アプリケーションプログラム、およびプラットフォームプログラムを含む各種プログラムが記憶されている。間接記憶部406に記憶されている各種プログラムは、CPU404がプログラムを実行する際に直接記憶部405へ移動する。間接記憶部406は、SSD(Solid State Drive)、または、HDD(Hard Disc Drive)により実現される。なお、CPU404はマルチプロセッサでも良い。
ここで、プラットフォームについて詳細に説明する。プラットフォームの実現により、ユーザーが独自に開発した新しいアプリケーションを画像形成装置107上で実行できる他、画像形成装置107の操作画面をカスタマイズすることが可能になる。
プラットフォームの実現方法について説明する。CPU404は、間接記憶部406に記憶されたプラットフォームプログラムを直接記憶部405に移動する。移動が完了するとCPU404は、プラットフォームプログラム(例えば、Java(登録商標))を実行することができる状態になる。本発明の実施例では、CPU404がプラットフォームプログラムを実行することを、プラットフォームが起動すると称する。なお、プラットフォームは、画像形成装置107のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。
プラットフォーム上でアプリケーションプログラムを実行する方法について詳細に説明する。実施例1において、プラットフォーム上には、スキャンした画像をクラウドサービスに送信するスキャンソフトウェアが動作している。スキャンソフトウェアは、ネットワークを介して接続されているスキャンサービスサーバー群101より、例えば、HTTP(Hyper Text Transfer Protocol)と言った通信プロトコルによってスキャンチケットの一覧の受信を行う。スキャンチケットにはスキャンの為の設定や、その後の処理フローといった情報が記録されている。以降、スキャンソフトウェアを実行することで実現するソフトウェア部をスキャンソフトウェア部と呼ぶ。ユーザーはスキャンソフトウェア部にて表示されたスキャンチケット一覧からスキャンチケットを選択し、原稿を読み込ませることでスキャンサービスを受けることができる。スキャンソフトウェア部はユーザーが選択したスキャンチケットの情報と、画像データを合わせてスキャンサービスサーバー群101に送信する。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置107の制御を実現することができる。
アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部406に記憶されたアプリケーションプログラムを直接記憶部405に移動する。移動が完了すると、プラットフォームはアプリケーションプログラムを実行することができる状態になる。そして、プラットフォームはアプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本発明の実施例ではプラットフォームアプリケーションと呼ぶ。さらに、プラットフォームは、本発明の実施例で開示するフローチャートの各処理の一部を行うことが可能である。
ユーザーインターフェース407は、ユーザーからの処理依頼を受け付けるために必要なユニットである。例えば、キーボード、マウス等を通してユーザーが入力した指示に応じた信号を受け付ける。外部インターフェース408は、外部装置からのデータ受信や外部装置へのデータ送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリ等の外付け記憶装置、またはネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。画像形成装置107は、ネットワーク110、111を介して、クライアント端末106、スキャンサービスサーバー群101と通信可能である。
続いて、クラウドサービスを提供するスキャンサービスサーバー群101、タスクサーバー103、104の各サービスサーバー群に関して説明する。また、各サービスサーバー群の説明とともに、図11のスキャン処理のシーケンス図を用いてクラウドスキャンサービスの処理の流れを合わせて説明する。
図5を用いて、スキャンサービスサーバー群101に関して説明する。スキャンサービスサーバー群101はクラウドサービスにおけるスキャン機能の提供を行うサービスサーバー群である。図5は、実施例1に係るスキャンサービスサーバー群101のシステム構成図である。スキャンサービスサーバー群101は、Webアプリケーション部501、チケット管理DB部502、テンプレート管理DB部503からなる。これら構成要素により各種処理が実行されることでスキャンサービスサーバー群101がユーザーに提供される。これら構成要素は、CPU202がHDD205に保存された各種プログラムを実行することにより実現される。
Webアプリケーション部501はスキャン機能を提供するアプリケーションプログラムである。チケット作成部511はユーザーがスキャンチケットを作成するための一連の機能を実現する。スキャンチケットには、画像形成装置107で原稿をスキャンする際のスキャン設定や、その後の処理フローの定義、各処理フローで実施されるタスクの為のパラメーター等が記録されている。
図11にて、チケット作成部511は、クライアント端末106のWebブラウザ301からのスキャンチケット作成画面リクエストS1101を受け取り、スキャンチケット作成画面を生成しレスポンスS1102を行う。この際、チケット作成部511はテンプレート管理部516より、テンプレート管理DB部503に登録されているスキャンチケットのテンプレートを取得し、テンプレートに含まれるテンプレート名をWebブラウザ301に表示させる。テンプレート管理DB部503の詳細な内容は、図8を用いて後で説明する。また、テンプレート名を表示する画面は図6に示す通りであり、表示画面についても後述する。
ユーザーがWebブラウザ301を操作しスキャンチケット作成リクエストS1103を行うことで、スキャンチケット作成、およびチケット管理部515への保存が依頼される。チケット管理部515は、チケット保存のリクエストを受け、チケット管理DB部502にスキャンチケットを保存する。チケット管理DB部502の詳細な内容は図7に記載されている。チケット管理DB部502の詳細は後述する。チケット管理部515は、スキャンチケットを保存した後、レスポンスS1104を行う。
外部I/F514は画像形成装置107上で動作するスキャンソフトウェア部との通信を行う。スキャンソフトウェア部より、外部I/F514を通じて、チケット一覧部512の機能や、スキャン受信部513の機能へのアクセスを行う。図11にて、画像形成装置107のスキャンソフトウェア部は外部I/F514を通じてチケット一覧部512に対して、チケット一覧取得S1105を行う。チケット一覧512では、スキャンチケットの一覧をチケット管理部515より生成し、スキャンソフトウェア部にレスポンスS1106を返す。レスポンスを受け取った画像形成装置107は、取得したチケット一覧を図4におけるユーザーインターフェース407上に表示する。表示画面例は、図9に記載されている。表示画面例の説明は後述する。
図11のスキャン処理S1107にて、ユーザーは、ユーザーインターフェース407上に表示されたチケットのいずれかを選択し、画像形成装置に備え付けられたスキャン装置に紙を設置し、スキャン実行する。これにより、スキャンソフトウェア部は、スキャン送信S1108にて、外部I/F514を通じてスキャン受信513に対し、スキャンした画像データとスキャンチケットの送信を行う。
スキャン受信部513は、送信されたスキャンチケット、および画像データを受信する。スキャン受信部513はステップS1109にて、受信した画像データを、フローサービスサーバー群102に投入する。フローサービスサーバー群102は、画像データを正しく受信できた場合には、スキャンサービスサーバー群101に画像データを一意に識別するID(ファイルグループID)を応答する。その後、スキャン受信部513は、ジョブ投入S1111にて、ファイルグループID、およびスキャンチケットをフローサービスサーバー群102に送信する。以上がスキャンサービスサーバー群101のシステム構成と、スキャンジョブの投入までの流れである。
図6にて、チケット作成画面601の説明を行う。チケット作成画面601は、図5のテンプレート管理DB503から取得したテンプレート(図中602、603、604)を表示する。ユーザーは、表示されたテンプレートの中から、実行するテンプレートを選択する。テンプレートを選択すると、詳細なチケット設定を行う画面605が表示される。図6において、同一画面に詳細設定画面605が表示されているが、別ウィンドウで詳細設定画面605を開くようにしても構わない。詳細設定画面605中では、選択したテンプレートに応じたスキャンの設定を行うことが出来る。例えば、スキャン設定の例としては、図中に示す様にサイズや、カラー、白黒といった色調、またスキャンデータのフォーマット等の設定がある。ユーザーは、詳細な設定を行った後、チケット発行ボタン606を押下すると、図5のチケット管理DB部502に、チケットの情報が新規作成される。チケット管理DB部502に保存されるスキャンチケットは、後述する。スキャンチケットが、チケット管理DB部502に正しく作成された場合には、チケット番号607に、チケットに固有に割り当てられたIDが表示される。このIDは、図7におけるチケットID702と同じ値となる。ユーザーは、チケット番号607に表示されたIDを記憶し、画像形成装置107に移動する。
図7にて、チケット管理DB部502で管理されている情報の一例を示す。ユーザーID701は、チケットを作成したユーザーを一意に表すIDである。チケットID702は、チケットを一意に定義するIDである。このチケットIDは、図6のチケット発行606を押下した際にチケット作成部511にて生成され、チケット管理DB502に保存される。ルートID703は、チケット作成画面601にてユーザーが選択したテンプレートに対応するルートIDである。ユーザーがチケットを選択し、スキャンを実行した場合には、そのスキャンデータは、ルートID703に定義されたタスクの順番で処理される。パラメーター704は、詳細設定画面605にて設定したスキャンの設定が記録されている。
図8にて、テンプレート管理DB503で管理されているテンプレートの一例を示す。テンプレート管理DB503は、図13のルート情報管理DB部1301にて管理されるルート情報と、チケット作成画面上に表示されるテンプレートを紐づけるためのデータベースである。ここで、テンプレートは、テンプレートID801、テンプレート名802、およびルートID803から構成される。テンプレートID801は、各テンプレートを一意に表すIDである。テンプレート名802は、図6のチケット作成画面601に表示される名前である。ルートID803は、図14における、ルート情報管理DB部1301にて管理されるルートID1401への外部キーを表す。
図9にて、図11のチケット一覧取得S1105にて、取得したスキャンチケットが表示される画面例を説明する。本画面は、画像形成装置107のユーザーインターフェース407上に表示される。画面上には、チケット管理502から取得したチケットID702が表示されている(901〜906)。ユーザーは、実行するチケットを選択し、画像形成装置107にスキャン対象の原稿を設置し、スキャンボタン907を押下する。これにより、図11におけるスキャン送信S1108が実行される。スキャン送信S1108が実行されると、スキャンサービスサーバー群101のスキャン受信513に対して、スキャンしたデータと、チケットが送信される。
引き続き、図10にて、実施例1に係るタスクサーバー103、104のシステム構成図を説明する。各タスクサーバーは、スキャンサービスを実現するための要素機能を実行するサーバーである。なお、実施例1ではタスクサーバーの例を説明するが、例えば、フローサービスサーバー群102のプロセスとして実現させても良い。そこで、プロセス、およびサーバーの両方に対応するため実施例1では単にタスクと称する。例えば、画像データ対して画像処理を行うタスクサーバーや、ファイル共有機能を提供するような他のクラウドサービスサーバー群108に対して、画像データを送信する処理を行うタスクサーバーが存在する。実施例1においては、タスクサーバー103は、画像データに対してOCR処理を行いOCR結果のテキストデータを画像データに埋め込む処理を行う。また、タスクサーバー104は、クラウドサービスサーバー群108の中のストレージ機能を提供する特定のサービスに対して、画像データを送信し保管する処理を行う。何れも後述する通常処理部1013により実現される機能である。
このように、異なる規定処理を実行する複数のタスクサーバーが存在し、発生したジョブを規定処理が夫々異なる複数のタスクサーバーが順次処理を実行することによりジョブ処理を行う。例えば、画像形成装置にてスキャンされたことにより生成された画像データに対し画像処理を施し、当該画像処理が施された画像データを外部サーバーシステムに送信する送信処理を実行する形態が考えられる。なお、タスクサーバーの機能は画像処理、送信処理に限らずその他の処理も実現可能である。
また、タスクサーバー103、104は前述の要素機能(OCR結果を画像データに埋め込む処理、またはクラウドサービスサーバー群108へ画像データを保管する処理)が失敗した場合に、後処理を実行する機能を有する。後処理の具体的な内容としては、タスクサーバー103、104がエラーの内容を示すエラーログを出力する出力処理、エラーの内容を示すエラーメールをスキャン実行者に通知する通知処理、ステータスを表示する画面をエラーステータスに変更しエラーステータスを表示するステータス表示処理、などといったことが例として考えられる。
なお、タスクサーバー103、104はそれぞれ複数存在する。これはタスクサーバーの目的が、可用性と、大量処理を同時並行で実施するスケーラビリティと1つのサーバーがクラッシュしても他のサーバーが代替する可用性をもって要素機能を実現するプラットフォーム的位置づけだからである。プラットフォーム的な位置づけであるため、各タスクサーバーの通常処理部1013、後処理部1014は、サービスの開発者がプログラム・組み込み可能な構成を想定している。これにより、取得したジョブに対してどのような機能を実行するか、および機能実行に失敗した場合にどのような処理を実行させるかを、クラウドシステムを利用してサービス開発者が自由に決定できる。また、もちろん無制限にジョブを他のサーバーが代替してジョブ処理の再試行を繰り返すわけではなく、一定回数の再試行を行っても失敗する場合にはそのジョブを失敗状態にし、後処理を行う必要がある。
しかし、別のタスクサーバー、もしくはタスクプロセスが再試行処理を代替する構成のため、タスクは失敗回数を数えることはできない。また、後処理をタスクサーバー、もしくはタスクプロセスが処理を失敗する度に後処理を実行すると好ましくない。例えば、試行回数の1、2回目は失敗し3回目で成功した場合、1、2回目の後処理で失敗メールをスキャン実行者に送信すると成功したにも関わらず、スキャン実行者が失敗メールを受け取るという矛盾が発生する。また、ある人がジョブを2つ投入して、うち一つのジョブは成功しもう一つが再試行3回全てに失敗した場合、失敗メールが3通送られる。この場合、メールを受け取った人は、一体いくつのジョブが失敗したのかわかりにくく混乱を招くことになる。
タスクサーバー103、104の構成要素であるタスク制御部1011、ジョブ通信部1012、通常処理部1013、後処理部1014は一つのサーバーにつき1セットである必要はなく、OS上のプロセスとして複数セット存在してもよい。以下、図11のスキャン処理のシーケンス図の流れとともに各構成要素の説明を行う。ステップS1112、S1113、S1119、S1120にて、定期的にフローサービスサーバー群102に問い合わせを行い、各タスクサーバー103、104にて処理可能なタスクを取得する。フローサービスサーバー群102の各タスクサーバー103、104への応答に関する詳細なフローは、図22を用いて後述する。
タスクサーバー103、104のタスク制御部1011は、ジョブ通信部1012を使用し、ステップS1112、S1120にて、定期的にフローサービスサーバー群102に問い合わせを行う。換言すると、ジョブ処理を行っていない待機中のタスク制御部1011は、ジョブ取得の為にフローサービスサーバー群102に対しポーリングを行うと言える。各タスクサーバー103、104にて処理可能なジョブが存在する場合には、ステップS1113、S1121にてその応答としてジョブ通信部1012は処理可能なジョブを取得する。フローサービスサーバー群102の各タスクサーバー103、104への応答に関する詳細なフローは、図22を用いて後述する。
また、タスクサーバー103、104のジョブ通信部1012は、取得したジョブの情報を元に、ステップS1114、S1115、S1122、S1123にてフローサービスサーバー群102より処理すべき画像データの取得も行う。タスクサーバー103、104の通常処理部1013は、ジョブ通信部1012が取得した前記画像データに対し、ステップS1116、S1124にて各種処理を行うようタスク制御部1011から呼び出される。タスクサーバー103、104の後処理部1014は、ジョブ通信部1012が取得したジョブが失敗ジョブだった場合に、タスク制御部1011から呼び出されるが、詳細なフローに関しては図23を用いて後述する。
タスクサーバー103、104のジョブ通信部1012は、S1117、S1125にて定期的にフローサービスサーバー群102に状態通知を行う。タスクサーバー103の通常処理部1013は、ステップS1116での処理結果をステップS1118にてタスク制御部1011、ジョブ通信部1012を通して、フローサービスサーバー群103に保存する。タスクサーバー104の通常処理部1013は、ステップS1124での処理結果をステップS1126にてクラウドサービスサーバー群108にデータ送信する。さらに、タスクサーバー103、104のジョブ通信部1012は、タスク制御部1011の指示に基づいて通常処理部1013の処理結果をフローサービスサーバー群102へ、ステップS1119、S1127にて結果リクエストとして通知する。フローサービスサーバー群102の各タスクサーバー103、104への結果リクエストの応答に関する詳細なフローは、図22を用いて後述する。
続いて、フローサービスサーバー群102の詳細な説明を行う。フローサービスサーバー群102は本願発明における中心的なサービスサーバー群であり、ルート管理、ジョブ管理、一時ファイル管理を行うサービスサーバー群である。図12は、フローサービスサーバー群102のシステム構成の概要である。
フローサービスサーバー群102は、ルート管理サービスサーバー群1201、ジョブ管理サービスサーバー群1202、一時ファイル管理サービスサーバー群1203の各サーバー群からなる。これらサーバー上において各種処理を実行するサービスが提供され、それらのサービスが連携することで、フローサービスサーバー群102がユーザーに提供される。ルート管理サービスサーバー群1201はタスクとタスクを連結させたルートの情報を管理する。ジョブ管理サービスサーバー群1202はルートの情報に基づきジョブの処理を管理する。
一時ファイル管理サービスサーバー群1203はジョブ投入時のデータや各タスクの処理結果データの保存を管理する。引き続きフローサービスサーバー群102を構成するルート管理サービスサーバー群1201、ジョブ管理サービスサーバー群1202、一時ファイル管理サービスサーバー群1203の詳細な説明を行う。
図13は、ルート管理サービスサーバー群1201のシステム構成である。ルート管理サービスサーバー群1201は、ルート情報管理DB部1301、タスク情報管理DB部1302、外部I/F1303からなる。ルート情報管理DB部1301はタスクが順次処理を実行する順番、即ちタスクとタスクの連結をルートという単位で定義するための情報を保持している。タスク情報管理DB部1302は各規定処理をタスクという単位で定義し、タスクに関する情報を保持している。外部I/F1303はルート管理サービスサーバー群1201への問い合わせのためのI/Fであり、ジョブ管理サービスサーバー群1202等からルート情報管理DB部1301やタスク情報管理DB部1302を参照するためのI/Fである。
図14にて、ルート情報管理DB部1301で管理されている情報を示す。ルートID1401がルートを一意に識別するIDである。シーケンス番号1402はそのルートの何番目に実行するタスクであるかを保持する。タスクID1403はどのタスクを実行するかを保持する。最大試行回数1404は、タスクが失敗した場合、そのタスクがジョブを何回処理可能にするかを定めている。ジョブ管理サービスサーバー群1202からタスクがジョブの取得要求を送信してきた際、この最大試行回数に至っていない場合には同じ規定処理を実行する他のタスクが同一のジョブを取得可能である。
例えば、データ1413、1414、1415で、ルートID1401が002のルートを定義している。1413が1番目に実行するタスクであり、タスクID1403によればタスク1が処理を始めに実行する。同様に、シーケンス番号1402の値が2であるタスク3が2番目に処理を実行するタスクであり、最後にタスク5が処理を実行するという定義となる。即ち、タスク1、タスク3、タスク5の順番で順次処理が実行されることによりジョブ処理が行われる。
図15にて、タスク情報管理DB部1302で管理されている情報の一例を示す。タスクID1501がタスクを一意に識別するIDである。タスク名1502はそのタスクの名前である。中止時間1503はジョブ管理サービスサーバー群1202がタスクサーバー103、104の処理を中止するまでの時間である。中止時間1503で示される時間以上の時間、タスクサーバー103、104が実行状態だった場合、ジョブ管理サービスサーバー群1202はタスクサーバーに異常が発生したと判断し、同じ規定処理を実行する他のタスクサーバー103、または104へジョブを委譲する。タスクサーバー103、104は、ハードウェア故障やソフトウェアバグなどが発生する場合、ネットワーク切断などにより通信できない場合など、様々な異常が発生する。さらに、例えば画像処理や外部クラウドへの保存処理など、処理対象のデータが巨大な場合にもタスクサーバー103、104は長時間実行状態となる。このような場合も、異常が発生したと判断される。状態通知時間1504はジョブ管理サービスサーバー群1202がタスクサーバー103、104に対して状態通知させる時間を示す。ジョブ管理サービスサーバー群は、状態通知時間1504で示される時間からさらに数秒の猶予時間以上状態通知が行われなかった場合に、他のタスクサーバー103、104へジョブを委譲する。これらの中止処理により、タスクサーバー103、104に異常が発生した場合でも、委譲されたタスクサーバー103、104によってジョブの実行を完了させることができる。
図16を用いてジョブ管理サービスサーバー群1202に関して説明する。ジョブ管理サービスサーバー群1202は、タスクサーバー103、104からのリクエストに対してタスク情報の授受や、各ジョブの状態を管理するためのサービスサーバー群である。
外部I/F1601は、タスクサーバー103、104、および画像形成装置107との通信を行う。外部I/F1601を通じて、ジョブ管理サービスサーバー群1202の各機能へのアクセスを行う。ジョブ情報管理DB部1602は、作成された各ジョブのステータスや、各ジョブが扱うデータのIDを管理する。ジョブ情報管理DB部1602の詳細な内容は、図17に記載されており、ジョブ情報管理DB部1602の内容に関する説明は後述する。ジョブ追加部1603は、スキャンサービスサーバー群101が、図11において、外部I/F1601を通じて発行されるジョブ投入リクエストS1111を受け、ジョブ情報管理DB部1602に、ジョブ情報を格納する。
ここで、ジョブ情報とは、図17に示されるジョブ情報管理DB部1602に存在する各カラム(1701〜1707)から構成される。ジョブ情報取得部1604は、タスクサーバー103、104から外部I/F1601を通じて発行されるタスク取得リクエストS1110を受け、ジョブ情報管理DB部1602から、ジョブ情報を取得する。ここで取得したジョブ情報は、タスク取得S1112にてタスクサーバー103、104に渡される。ジョブ情報の受け渡しに関わる詳細な説明は、図22を用いて後述する。ジョブ情報更新部1605は、結果通知S1119にて、タスクサーバー103、104から、外部I/F1601を通じて発行されるジョブ情報更新リクエストを受け、ジョブ情報管理DB部1602の該ジョブの情報を更新する。ここで、更新される情報として、カレントタスクID1704、およびステータス1705、最終更新時刻1706がある。カレントタスクID1704を更新する前には、ルート管理サービスサーバー群1201の外部I/F1303を通じて、ルート情報管理DB部1301から、該ルートIDにおける次のタスクIDを取得する。取得したタスクIDを以て、カレントタスクID1704を更新する。また、ステータス1705は処理待ち(0)、最終更新時刻1706は現在時刻で更新する。ジョブ状態通知部1606は、状態通知S1117、1125にて、タスクサーバー103、104から外部I/F1601を通じて発行される状態通知リクエストを受け付ける。
続いて、図17を用いて、ジョブ情報管理DB部1602に保持されるデータについて説明する。ジョブID1701は、各ジョブ情報に一意に割り当てられるIDである。ルートID1702には、図6のチケット作成画面601にて選択したテンプレートに対応するルートIDが格納される。ファイルグループID1703は、一時ファイル管理サービスサーバー群1203から発行されるIDである。カレントタスクID1704は、そのジョブにおいて処理を行うべきタスクを示すタスクIDである。タスクサーバー103、104は、このカレントタスクID1704を確認し、自タスクサーバーに割り当てられたタスクIDと等しい行を選択し処理を行う。本IDは、該タスクの処理が完了した際には、ジョブ情報更新1605が、該ルートIDの次のタスクのタスクIDに更新する。ステータス1705には、処理待ち(0)、実行中(1)、エラー発生(2)、完了(3)を表す値が設定される。タスクサーバー103、104がジョブを選択する際には、基本的にステータスが処理待ち(0)となっている行を選択する。これにより、複数のタスクサーバーが同一のタスクを処理するといった事態を防ぐことができる。
タスクサーバー103、104が、ジョブを選択した後に、タスクサーバー103、104は、外部I/F1601を通じて、ジョブステータス変更部1605より、ステータス1705を実行中(1)に変更する。最終更新時刻1706は、タスクサーバー103,104が該ジョブに対して、何らかの処理を実行した際に、更新される。ここで、何らかの処理とは、ステータスの更新処理や、ジョブの取得処理である。タスクサーバー103、104がジョブを取得する際に、自タスクIDと等しいジョブ情報が複数存在していた場合には、最終更新時刻1706が最も古いジョブを選択する。これにより、全てのジョブを平均的に処理することが可能となる。パラメーター1707には、詳細設定画面605にて設定した設定情報や、タスクサーバー103、104が、他のタスクサーバー103、104に渡す設定情報などを記載する。タイムスタンプ1708は、ジョブ情報が更新されるたびに自動的に更新される値である。
タスクサーバー103、104の、ジョブ情報更新1605や、ジョブ状態通知1606への通信の際に、タイムスタンプを受け渡すことで、他のタスクサーバー103、104にジョブが委譲されていないことを保証できる。最終状態通知時刻1709は、ジョブ情報取得1604において、一定時間実行されたままになっているジョブを他のタスクサーバー103、104へ委譲するために保存している時刻である。最終状態通知時刻1709から、中止時間1503経過した場合に、他のタスクサーバー103、104へジョブを委譲する。タスクの試行回数1710は、該ジョブをタスクが試行した回数を表すものであり、タスクが規定処理に失敗する毎にカウントされる。
一時ファイル管理サービスサーバー群1203は、スキャンサービスサーバー群101やタスクサーバー103、104からの要求に応じて、ファイルを格納し、その格納先のパスを管理するサービスサーバー群である。タスクサーバー103、104からファイル取得要求があった際には保存したファイルのバイナリデータをタスクサーバー103、104に返却する。また、タスクサーバー103、104やジョブ管理サービスサーバー群1202からファイル削除の要求があった際には、保存したファイルを削除する。スキャンサービスサーバー群101やタスクサーバー103、104は一時ファイル管理サービスサーバー群1203によって、ファイルの格納先のパスやファイルサーバーの状態を気にすることなく、ファイルの保存、取得、削除を行うことができる。
ここで、ジョブ管理サービスサーバー群1202がタスクサーバー103、104からジョブに関するリクエストを受けたときの応答フローについて、図22を用いて説明する。ステップ2201でジョブ管理サービスサーバー群1202は、タスクサーバー103、104からジョブに関するリクエストを受信する。ステップ2202でジョブ管理サービスサーバー群1202は、リクエストの種類を判別し、ジョブ取得のリクエストの場合にはステップ2203を、結果報告リクエストの場合には2209を実行する。ジョブ取得リクエストにはタスクIDが含まれているが、ジョブ管理サービスサーバー群1202はステップ2203でそのタスクIDに紐づくジョブで処理対象のジョブを一つだけ取得する。この際、ジョブ管理サービスサーバー群1202は、ジョブ情報管理DB1602から次の条件に合致するジョブレコードを取得対象とする。カレントタスクID1704が取得リクエストに含まれるタスクIDに合致するもので、ステータス1705が処理待ち(0)、もしくは実行中(1)でも最終状態通知時刻1709から中止時間1503経過しているものが取得対象条件である。ステップ2203で、取得ジョブがあればステップ2204へ分岐するが、取得ジョブがなければステップ2212へと分岐する。
ステップ2212では、ジョブ管理サービスサーバー群1202はリクエスト元タスクに対してnullを返し、本フローを終了する。タスクサーバー103、104は、nullを受信すると処理対象のジョブが存在しないと判断して、一定時間後に再度問い合わせを行うポーリング処理を実施する。ステップ2204では、ジョブ管理サービスサーバー群1202は取得ジョブの確認を行い、正常ジョブであればステップ2205を、タイムアウトジョブであればステップ2206をそれぞれ実行する。正常ジョブとはステータス1705が処理待ち(0)となっているものであり、タイムアウトジョブとはステータス1705が実行中(1)のものである。これはステップ2203の取得条件で示したようにステータス1705が実行中(1)で取得条件に合致する場合には最終状態通知時刻1709から中止時間1503経過しているジョブのみが対象となっているからである。
ステップ2205でジョブ管理サービスサーバー群1202は、取得ジョブのタスクの試行回数1710を確認し、タスクの最大試行回数1404未満であればステップ2207を、タスクの最大試行回数1404以上であればステップ2208を実行する。ステップ2207では、ジョブ管理サービスサーバー群1202はステータス1705を実行中(1)に最終状態通知時刻を現在時刻に変更した後、リクエスト元タスクに通常ジョブを返す。ステップ2208では、ジョブ管理サービスサーバー群1202はステータス1705をエラー発生(2)に変更し、リクエスト元タスクに失敗ジョブとして返す。
一方ステップ2202でリクエストの種類が結果報告と判定された場合には、ステップ2209が実行されるが、リクエストに処理結果と処理対象のジョブIDが含まれる。ステップ2209では、ジョブ管理サービスサーバー群1202はリクエストに含まれる処理結果が成功か失敗かを確認し、確認の結果、成功の場合にはステップ2210へ、失敗の場合にはステップ2211へと分岐する。ステップ2210では、ジョブ管理サービスサーバー群1202は、リクエストに含まれるジョブIDと合致するレコードをジョブ情報管理DB1602から探し、そのジョブの正常更新を実行する。ここでいう正常更新とは、カレントタスクIDを、ルート情報管理DB部1301を参照して次のタスクIDに、ステータス1705を処理待ち(0)に、そしてタスクの試行回数1710を0に、最終更新日時1706を現在時刻にそれぞれ変更する処理である。ただし、次のタスクIDが存在しない場合には、ステータス1705は完了(3)にし、最終更新日時1706を現在時刻にそれぞれ変更する処理となる。ステップ2111では、ジョブ管理サービスサーバー群1202は、タスクの失敗回数をカウントするために、タスクの試行回数1710に1を加えた値に更新する。以上、図22に示された処理フローにより、ジョブ管理サービスサーバー群1202は最大試行回数までは通常ジョブを配信でき、最大試行回数に達した場合には失敗ジョブを配信できる。
図22では、ジョブ管理サービスサーバー群1202が最大試行回数までは通常ジョブを配信でき、最大試行回数に達した場合には失敗ジョブを配信するフローを説明した。ここではさらに図23を用いて、ジョブ管理サービスサーバー群1202からタスクサーバー103、104がジョブを取得して処理を実行するフローについて説明する。
ステップ2301で、タスクサーバー103、104はジョブ管理サービスサーバー群1202からジョブを取得する。ステップ2302で、タスクサーバー103、104は取得ジョブの確認を行うが、nullを取得した場合には処理対象のジョブが存在しないと判断してそのまま本フローを一旦終了し、一定時間後にジョブ取得を再度試みる。取得ジョブが通常ジョブだった場合にはステップ2303へ、失敗ジョブだった場合にはステップ2307へと分岐する。ステップ2303では、タスクサーバー103、104内でタスク制御部1011が通常処理部1013を呼び出し実行する。ステップ2304では、タスク制御部1011が通常処理部1013の実行結果を判定し、成功だった場合にはステップ2305へ失敗だった場合にはステップ2306へ分岐する。
ステップ2305では、タスク制御部1011はジョブ通信部1012を利用して成功したジョブIDと成功結果をジョブ管理サービスサーバー群1202へ結果報告リクエストとして通知する。ステップ2306では、タスク制御部1011はジョブ通信部1012を利用して失敗したジョブIDと失敗結果をジョブ管理サービスサーバー群1202へ結果報告リクエストとして通知する。つまり、結果報告リクエストは、成功か失敗かの「処理結果」を含んでいることになる。一方、ステップ2302で取得ジョブが失敗ジョブだった場合にはステップ2307において、タスク制御部1011は後処理部1014を呼び出し実行する。ステップ2305、2306、2307実行後については、タスクサーバー103、104は本フローを一旦終了し、一定時間後にジョブ取得を再度試みる。以上、図23に示された処理フローにより、タスクサーバー103、104は取得したジョブの種類に応じて通常処理と後処理を呼び分けることができる。
以上のように実施例1では、タスクの試行回数が最大試行回数を超えていない場合は通常ジョブを送信しタスクに特定の処理を実行させ、タスクの試行回数が最大試行回数を超えている場合は失敗ジョブを送信し特定の処理に対応する後処理を実行させるサーバーシステムについて説明した。結果、ジョブ処理が何回目の実行なのか判断できないタスクであっても、後処理を適切なタイミングで実行することができる。
実施例1において、ジョブ管理サービスサーバー群1202は、タスクの最大試行回数分だけ処理に失敗した際に、後処理用に失敗ジョブを配信する構成とした。実施例2では、ジョブの再試行まで含めて全ての再試行が失敗した時に初めて失敗ジョブを配信する形態について説明する。ジョブの再試行を実施することで、タスクの処理結果ファイルを一時ファイル管理サービスサーバーから取り出せなくなった場合でも処理が継続できるという処理継続性の向上が見込める。よって実施例2で示すジョブが失敗してからエラー通知を行う形態は、タスクが失敗してからエラー通知を行う実施例1の形態に比べ、処理継続性を向上させつつ時後処理も1度に限定することができる。
一時ファイル管理サービスサーバー群1203は複数の一時ファイル管理サービスから構成され、スキャンサービスサーバー群101から投入された画像データは初期データとして複数の一時ファイル管理サービスで多重保持する。例えば、サーバーA、Bという2台の一時ファイル管理サービスサーバーが存在する場合を考える。スキャンサービスサーバー群101からサーバーAへの保存要求が行われると、サーバーAからサーバーBにも保存要求が行われ、双方に保存が完了した後にスキャンサービスサーバー群101へ応答を返すことで初期データが複製される。
一方で、タスクの処理結果を一時ファイル管理サービスサーバー群1203へ保存する場合には多重保持されない。つまり、タスクサーバー103の処理結果ファイルはサーバーAもしくはサーバーBのどちらか一方にのみ格納される。これはタスクの結果ファイルはタスクサーバー103の処理を再実行すれば生成可能なので、ディスク容量節約のため多重保持しない構成になっている。一方、スキャンしたことで得られる画像データは再度ユーザーに要求しないと手に入れることができないデータであり、その取得は難しい。よって、スキャンしたことで得られる画像データのような初期データ、または取得が難しいデータは一時ファイル管理サービスサーバー群1203により多重保持される。
図18を用いて、一時ファイル管理サービスサーバー群1203に関して説明する。図18は一時ファイル管理サービスサーバーのシステム構成を表す図である。外部I/F1801は、タスクサーバー103、104、および画像形成装置107との通信を行う。外部I/F1801を通じて、一時ファイル管理サービスサーバー群1203の各機能へのアクセスを行う。ファイル管理部1802は保存要求を受けたファイルを保存する領域である。一時ファイル管理DB部1803は、ファイル管理部1802の位置情報を管理するデータベースであり、一時ファイル管理サービスサーバー群1203でミラーリング同期されており、どの一時ファイル管理サービスサーバーでも同じデータを読み取れる。
外部I/F1801は、保存要求を受けるとファイル管理部1802にファイルを保存し、一時ファイル管理DB1803にその情報を書き込む。初期ファイルの場合には、他の一時ファイル管理サーバーにファイル保存要求を出す。逆に外部I/F1801がファイル読み出し要求を受けると、要求に含まれるファイルグループIDを元に一時ファイル管理DBを検索し、ファイルの保存場所を特定する。特定したファイル保存場所を元に外部I/F1801はファイル管理部1802にアクセスし、ファイル取得を行う。
図19は、一時ファイル管理DB1803で管理される一時管理情報の一例である。ファイルID1910は一つのジョブ内で一意に識別するためのIDであり、初期ファイルと結果ファイルで同一のファイルグループIDが割り振られる。ファイルグループIDは初期ファイル保存要求時に外部I/F1801が生成する。No1911は何番目のタスクによって生成されたかを示しており、0番は初期ファイルであることを示す。パス1912はファイル管理部1802内に保存されているファイルパスを表す。ホスト名1913はファイルが保存されているホストを表す。 以上、図18、19の構成により、一時ファイル管理サービスサーバーが1台クラッシュしても、初期ファイルはタスクサーバー103、104から読み出し可能である。
図19の状態で、ServerAがクラッシュするとファイルグループIDがFG1のファイルはNo.1のファイル、つまり最初のタスク(タスクサーバー103)が生成する結果ファイルへ次のタスク(タスクサーバー104)がアクセスできない状態になる。そこで、実施例2におけるクラウドプラットフォーム、ジョブ実行方法、およびプログラムは、ジョブに対して最初のタスクから処理を再試行する仕組みを提供することで結果ファイルを再生成し、ジョブを完結させることができる。これを実施例1における「タスクの再試行」と区別し、「ジョブの再試行」と呼ぶ。実施例1によるとタスクサーバー104の処理は結果ファイルがないためタスクの再試行は全て失敗し、その後、タスクサーバー104の後処理部1014が実行されてしまう。しかし、実施例2においては、タスクの再試行が全て失敗した後ジョブの再試行が実行されたことでジョブの処理が成功する可能性がある。この場合、後処理部1014は実行されない。ジョブの再試行まで含めて全て失敗した後、初めて失敗ジョブを配信するフローをジョブ管理サービスサーバー群1202が実行すること後処理の実行を抑えることができ、余分な後処理の実行を抑えることができる。
図20を用いて、実施例2におけるルート情報管理DB部1301で図14のテーブルと共に管理されるルート最大試行回数定義テーブルの一例を示す。ルートID2001はルートID1401と同じくルートを一意に識別するIDであり、図14と図20のデータを紐づけるキーになっている。ジョブの最大試行回数2002は、対応するルートIDで投入されたジョブの再試行を何回実施するかを定義した値である。
図21を用いて、実施例2におけるジョブ情報管理DB部1602に保持されるデータについて説明する。図21は図17に加え、ジョブの試行回数2101を管理する列が増えたテーブルである。ジョブの試行回数2101は対象のジョブがジョブの再試行を何回実施したかを示す値であり、タスクの試行回数が最大試行回数を超える毎にカウントされる値である。
以下、実施例2におけるジョブ管理サービスサーバー群1202がタスクサーバー103、104からジョブの問い合わせを受けたときの応答フローについて、図20、21、24を用いて説明する。図24のステップ2401からステップ2412は、図22のステップ2201からステップ2212と同様である。ステップ2405にてジョブ管理サービスサーバー群1202は、取得ジョブのタスクの試行回数1710を確認し、タスクの最大試行回数1404未満であればステップ2407を、タスクの最大試行回数1404以上であればステップ2413を実行する。ステップ2413では、ジョブ管理サービスサーバー群1202は、ジョブの試行回数2101を確認し、ジョブの最大試行回数2002未満であればステップ2414を、ジョブの最大試行回数2002以上であればステップ2408を実行するよう分岐する。
ステップ2414では、ジョブ管理サービスサーバー群1202はルート管理サービスサーバー群1201にリクエストを出して、該ルートIDの最初のタスクIDを取得し、該ジョブのカレントタスクID1704を更新する。ステップ2415では、ジョブ管理サービスサーバー群1202は、ジョブ処理の失敗回数をカウントするために、ジョブにおけるジョブの試行回数2101に1を加算した値に更新する。ステップ2416では、ジョブ管理サービスサーバー群1202は該ジョブのタスクの試行回数1710を0にリセットし、最終状態通知時刻を現在時刻に更新する。そして、リクエスト元のタスクにnullを返却し、始めからジョブ処理がやり直される。結果、エラーが発生したタスクに原因はなくその手前のタスクの処理が失敗したことが要因でエラーとなっていたジョブが正常にジョブ処理され、かつエラー通知が行われることもなくなる。以上、図24に示された処理フローにより、ジョブ管理サービスサーバー群1202は、タスクの再試行に加えジョブの再試行まで全て失敗、もしくはタイムアウトが発生した場合に限って失敗ジョブを配信することができる。
実施例2では、再試行機能によりジョブを別のタスクプロセスに移譲するクラウドシステムにおいて、タスクの再試行に加えジョブの再試行まで全て失敗、もしくはタイムアウトが発生した場合にのみ後処理を実行することができる。つまり実施例2で示すジョブが失敗してからエラー通知を行う形態は、タスクが失敗してからエラー通知を行う実施例1の形態に比べ、ジョブの再試行という処理継続性を向上させつつ時後処理も1度に限定することができる。
実施例2において、タスクの再試行やジョブの再試行を行い、失敗したジョブに対して、タスクサーバー103、104で定義した後処理を実行するようにした。しかし、失敗したジョブの種類によっては、メール通知やエラーログで画像形成装置の管理者やクラウドシステムの管理者などに通知しても再実行してもらうのが困難な場合がある。例えば、画像形成装置の日々の初回起動イベントやエラーイベントなどのマシンイベントや、特定日時でのスケジュール実行処理など、ユーザー操作ではないイベントを契機に実行されるジョブがこれに該当する。
実施例3では、カウントされたタスクの試行回数が最大試行回数を超え、かつジョブの試行回数も最大試行回数を超えたことによりジョブ処理が中断されているジョブに対し再試行が指定された場合、指定ジョブのステータス、ジョブの試行回数、およびタスクの試行回数をリセットする手段を提供する。
図25は、本実施例に係るクラウドシステムの全体構成を示す図である。図25は、フローサービスサーバー群102の管理者が利用する管理者端末105と、管理者端末105がフローサービスサーバー群102と通信するための通信ネットワーク113を図1に追加したものである。管理者端末105を実行するサーバーコンピューターのハードウェア構成図は図2で示される通りである。
図26は、前記管理者端末105のシステム構成図である。再実行ツール2601は、フローサービスサーバー群102と通信を行って指定ジョブを再実行させるツールである。図27は再実行ツール2601の画面であり、クラウドサービスの管理者によってジョブID指定部2701にジョブIDが指定され、再処理実行ボタン2702を管理者に押下されることで図28に示すフローが実行される。
図28は、再実行ツール2601の処理フローを表す図である。ステップ2801で、再実行ツール2601はジョブID指定部2701に指定されたジョブIDを読み込む。ステップ2802で、再実行ツール2601はジョブ管理サービスサーバー群1202に対して、ステップ2801で読み込んだジョブIDに対応するジョブのステータス1705の確認を実施する。ステップ2802で確認したステータス1705が「エラー発生(2)」の場合には、ステップ2803が実行され、「エラー発生(2)」以外の場合にはフローを終了する。
ステップ2803では、ステップ2801で読み込んだジョブIDに対応するジョブの状態をリセットする。すなわち再実行ツール2601は該ジョブに関して、タスクの試行回数1710を0にリセットし、最終状態通知時刻1709を現在時刻に、ステータス1705を処理待ち(0)に、それぞれ変更する。これら図28の一連の流れにより、再実行ツール2601は、図21のテーブルにおける指定されたジョブIDに対応するレコードのステータス1705を処理待ち(0)に、タスクの試行回数1710とジョブの試行回数2101を0にする。図21のテーブルがリセットされた状態になると、タスクサーバー104は図11のフローチャートにおいて、S1122から中断されていたジョブのジョブ処理が再開される。
以上のように実施例3では、システム管理者が失敗したジョブIDを通知されれば、再実行ツール2601が、対象ジョブの発生イベントを再度発生させることなく、失敗ジョブを再度実行する状態にすることができる。
[その他の実施例]
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
101 スキャンサービスサーバー群
102 フローサービスサーバー群
103 104 タスクサーバー
106 クライアント端末
107 画像形成装置
108 クラウドサービスサーバー群

Claims (13)

  1. 規定処理を実行する複数のタスクと通信可能であり、発生したジョブを前記規定処理が夫々異なる複数の前記タスクに順次処理を実行させることによりジョブ処理を実現するサーバーシステムであって、
    前記タスクにより実行された前記規定処理が失敗したことに応じて前記タスクの試行回数をカウントし、カウントした前記タスクの試行回数が該試行回数に制限を設けるための最大試行回数を超えたことに応じて前記ジョブの試行回数をカウントするカウント手段と、
    前記タスクが前記ジョブの取得を要求した際に、前記カウント手段によりカウントされたタスクの試行回数が前記最大試行回数を超えていない場合は通常ジョブを送信し、前記カウント手段によりカウントされたタスクの試行回数が前記最大試行回数を超えているが前記ジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えていない場合は、失敗ジョブを送信せずに前記ジョブ処理を始めからやり直すように制御するジョブ管理手段と、
    前記タスクは、前記ジョブ管理手段から前記通常ジョブが送信された場合、前記規定処理を実行し、前記ジョブ管理手段から前記失敗ジョブが送信された場合、前記規定処理に対応する後処理を実行するジョブ実行手段と、
    を有することを特徴とするサーバーシステム。
  2. 前記ジョブ管理手段は、
    前記カウント手段によりカウントされたタスクの試行回数が該試行回数に制限を設けるための最大試行回数を超え、かつ前記ジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えた場合に前記失敗ジョブを送信することを特徴とする請求項1に記載のサーバーシステム。
  3. 前記ジョブ管理手段は、
    前記カウント手段によりカウントされたタスクの試行回数が該試行回数に制限を設けるための最大試行回数を超え、かつ前記ジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えたことにより中断されたジョブ処理に対し再試行が指定された場合、該ジョブの試行回数、および該タスクの試行回数をリセットし前記ジョブ処理を始めからやり直すように制御することを特徴とする請求項1または2に記載のサーバーシステム。
  4. 前記後処理とは、
    エラーログの出力処理、およびエラーメールの通知処理、およびエラーステータスを表示するステータス表示処理の内の少なくとも1つの処理であることを特徴とする請求項1乃至3の何れか1項に記載のサーバーシステム。
  5. 前記ジョブとは、
    画像形成装置にてスキャンされたことにより生成された画像データに対し画像処理を施し、該画像処理が施された画像データを外部サーバーシステムに送信する送信処理を実行するためのジョブであることを特徴とする請求項1乃至4の何れか1項に記載のサーバーシステム。
  6. 前記規定処理とは、
    前記画像データに対し画像処理、および該画像処理が施された画像データを前記外部サーバーシステムに送信する送信処理を含む処理の内の少なくとも1つの処理であることを特徴とする請求項5に記載のサーバーシステム。
  7. 規定処理を実行する複数のタスクと通信可能であり、発生したジョブを前記規定処理が夫々異なる複数の前記タスクに順次処理を実行させることによりジョブ処理を実現するサーバーシステムを制御する制御方法であって、
    前記タスクにより実行された前記規定処理が失敗したことに応じて前記タスクの試行回数をカウントし、カウントした前記タスクの試行回数が該試行回数に制限を設けるための最大試行回数を超えたことに応じて前記ジョブの試行回数をカウントするカウントステップと、
    前記タスクが前記ジョブの取得を要求した際に、前記カウントステップによりカウントされたタスクの試行回数が前記最大試行回数を超えていない場合は通常ジョブを送信し、前記カウントステップによりカウントされたタスクの試行回数が前記最大試行回数を超えているがジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えていない場合は、失敗ジョブを送信せずに前記ジョブ処理を始めからやり直すように制御するジョブ管理ステップと、
    前記タスクは、前記ジョブ管理ステップから前記通常ジョブが送信された場合、前記規定処理を実行し、前記ジョブ管理ステップから前記失敗ジョブが送信された場合、前記規定処理に対応する後処理を実行するジョブ実行ステップと、
    を有することを特徴とする制御方法。
  8. 前記ジョブ管理ステップは、
    前記カウントステップによりカウントされたタスクの試行回数が該試行回数に制限を設けるための最大試行回数を超え、かつ前記ジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えた場合に前記失敗ジョブを送信することを特徴とする請求項7に記載の制御方法。
  9. 前記ジョブ管理ステップは、
    前記カウントステップによりカウントされたタスクの試行回数が該試行回数に制限を設けるための最大試行回数を超え、かつ前記ジョブの試行回数が該試行回数に制限を設けるための最大試行回数を超えたことにより中断されたジョブ処理に対し再試行が指定された場合、該ジョブの試行回数、および該タスクの試行回数をリセットし前記ジョブ処理を始めからやり直すように制御することを特徴とする請求項7または8に記載の制御方法。
  10. 前記後処理とは、
    エラーログの出力処理、およびエラーメールの通知処理、およびエラーステータスを表示するステータス表示処理の内の少なくとも1つの処理であることを特徴とする請求項7乃至9の何れか1項に記載の制御方法。
  11. 前記ジョブとは、
    画像形成装置にてスキャンされたことにより生成された画像データに対し画像処理を施し、該画像処理が施された画像データを外部サーバーシステムに送信する送信処理を実行するためのジョブであることを特徴とする請求項7乃至10の何れか1項に記載の制御方法。
  12. 前記規定処理とは、
    前記画像データに対し画像処理、および該画像処理が施された画像データを前記外部サーバーシステムに送信する送信処理を含む処理の内の少なくとも1つの処理であることを特徴とする請求項11に記載の制御方法。
  13. 請求項7乃至12の何れか1項に記載の制御方法をサーバーシステムに実行させるためのプログラム。
JP2013077128A 2013-04-02 2013-04-02 サーバーシステム、その制御方法、およびそのプログラム Active JP6157181B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013077128A JP6157181B2 (ja) 2013-04-02 2013-04-02 サーバーシステム、その制御方法、およびそのプログラム
US14/231,037 US9720776B2 (en) 2013-04-02 2014-03-31 Server system, method for controlling the same, and program for executing parallel distributed processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013077128A JP6157181B2 (ja) 2013-04-02 2013-04-02 サーバーシステム、その制御方法、およびそのプログラム

Publications (2)

Publication Number Publication Date
JP2014203170A JP2014203170A (ja) 2014-10-27
JP6157181B2 true JP6157181B2 (ja) 2017-07-05

Family

ID=51790469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013077128A Active JP6157181B2 (ja) 2013-04-02 2013-04-02 サーバーシステム、その制御方法、およびそのプログラム

Country Status (2)

Country Link
US (1) US9720776B2 (ja)
JP (1) JP6157181B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870295B2 (en) * 2014-07-18 2018-01-16 General Electric Company Automation of workflow creation and failure recovery
JP6399915B2 (ja) * 2014-12-08 2018-10-03 キヤノン株式会社 画像読取装置、情報処理方法及びプログラム
US10091288B2 (en) * 2015-03-25 2018-10-02 Comcast Cable Communications, Llc Ordered execution of tasks
US10541730B2 (en) * 2015-04-22 2020-01-21 Westinghouse Electric Company Llc Nuclear power plant containment real-time remote operations management employing server and client
JP6610082B2 (ja) * 2015-08-24 2019-11-27 富士ゼロックス株式会社 中継装置及び中継処理プログラム
JP2018129714A (ja) 2017-02-09 2018-08-16 株式会社東芝 プログラム及び情報処理装置
JP7118833B2 (ja) * 2018-09-19 2022-08-16 キヤノン株式会社 システム及び方法
JP7360086B2 (ja) * 2019-09-27 2023-10-12 京セラドキュメントソリューションズ株式会社 遠隔操作システム、管理クライアントおよび管理クライアントプログラム
CN111309485A (zh) * 2020-02-25 2020-06-19 北京奇艺世纪科技有限公司 服务调用方法、装置、电子设备和计算机可读存储介质
US20220036233A1 (en) * 2020-07-30 2022-02-03 Dell Products L.P. Machine learning orchestrator

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555100A (en) * 1993-10-07 1996-09-10 Audiofax, Inc. Facsimile store and forward system with local interface translating DTMF signals into store and forward system commands
US6549951B1 (en) * 1998-08-25 2003-04-15 Stmicroelectronics, Inc. Method and device for controlling communications with a serial bus
US6243778B1 (en) * 1998-10-13 2001-06-05 Stmicroelectronics, Inc. Transaction interface for a data communication system
US7386586B1 (en) * 1998-12-22 2008-06-10 Computer Associates Think, Inc. System for scheduling and monitoring computer processes
JP4124903B2 (ja) * 1999-03-19 2008-07-23 キヤノン株式会社 画像処理装置およびその通信方法
JP3711789B2 (ja) * 1999-06-08 2005-11-02 日立オムロンターミナルソリューションズ株式会社 システム自動再立ち上げ制御方法およびシステム自動再立ち上げ制御システム
JP2001077961A (ja) * 1999-09-08 2001-03-23 Toshiba Tec Corp 画像形成装置
US6643661B2 (en) * 2000-04-27 2003-11-04 Brio Software, Inc. Method and apparatus for implementing search and channel features in an enterprise-wide computer system
US20030154284A1 (en) * 2000-05-31 2003-08-14 James Bernardin Distributed data propagator
US6785748B2 (en) * 2000-07-18 2004-08-31 Canon Kabushiki Kaisha Image communication apparatus wirelessly connectable to other apparatuses, system having the image communication apparatus, and method for controlling the same
US20020194245A1 (en) * 2001-06-05 2002-12-19 Simpson Shell S. Job ticket service
US20030145103A1 (en) * 2002-01-30 2003-07-31 Jim Pruyne Method and system for providing exactly-once semantics for web-based transaction processing
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US7301658B2 (en) * 2002-04-19 2007-11-27 Hewlett-Packard Development Company, L.P. Device transmission tracking
JP4218384B2 (ja) * 2003-03-24 2009-02-04 富士ゼロックス株式会社 サービス処理装置、サービス処理方法及びプログラム、並びに画像形成装置
US7773248B2 (en) * 2003-09-30 2010-08-10 Brother Kogyo Kabushiki Kaisha Device information management system
US8108878B1 (en) * 2004-12-08 2012-01-31 Cadence Design Systems, Inc. Method and apparatus for detecting indeterminate dependencies in a distributed computing environment
US8065680B2 (en) * 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table
JP2007193405A (ja) * 2006-01-17 2007-08-02 Fuji Xerox Co Ltd タスク分析システム
US8081332B2 (en) * 2006-07-10 2011-12-20 Xerox Corporation Systems and methods for secure fax and scan transmission status notification
US8171475B2 (en) * 2007-08-29 2012-05-01 International Business Machines Corporation Intelligent retry method using remote shell
JP4935595B2 (ja) * 2007-09-21 2012-05-23 富士通株式会社 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US8495126B2 (en) * 2008-02-29 2013-07-23 Dell Products L.P. System and method for managing the deployment of an information handling system
JP5100463B2 (ja) * 2008-03-18 2012-12-19 キヤノン株式会社 データ処理装置、その制御方法、プログラム
JP2009271793A (ja) * 2008-05-08 2009-11-19 Canon Inc 印刷制御装置及び印刷制御方法及びプログラム
JP5414305B2 (ja) * 2009-02-25 2014-02-12 キヤノン株式会社 情報処理装置、仮想記憶管理方法及びプログラム
JP2010226283A (ja) * 2009-03-23 2010-10-07 Konica Minolta Business Technologies Inc 情報処理装置
US8281309B2 (en) * 2009-08-31 2012-10-02 Accenture Global Services Limited Optimization system for controlling batch job processing traffic transmitted to a mainframe computer
JP5361659B2 (ja) 2009-10-27 2013-12-04 キヤノン株式会社 情報処理システム、情報処理システム制御方法、およびそのプログラム
JP2011192250A (ja) * 2010-02-22 2011-09-29 Canon Inc クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法
JP2011170804A (ja) * 2010-02-22 2011-09-01 Canon Inc ネットワークプリントシステム、ネットワークプリントシステム制御方法、およびそのプログラム
US8793691B2 (en) * 2010-04-15 2014-07-29 Salesforce.Com, Inc. Managing and forwarding tasks to handler for processing using a message queue
US9158610B2 (en) * 2011-08-04 2015-10-13 Microsoft Technology Licensing, Llc. Fault tolerance for tasks using stages to manage dependencies
IN2011CH02818A (ja) * 2011-08-18 2015-05-29 Infosys Ltd
JP5822668B2 (ja) * 2011-11-16 2015-11-24 キヤノン株式会社 システム、および制御方法。
US20130179894A1 (en) * 2012-01-09 2013-07-11 Microsoft Corporation Platform as a service job scheduling
US9170849B2 (en) * 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US9372735B2 (en) * 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
JP6102264B2 (ja) * 2013-01-08 2017-03-29 株式会社リコー 処理実行システム、情報処理装置、プログラム

Also Published As

Publication number Publication date
JP2014203170A (ja) 2014-10-27
US9720776B2 (en) 2017-08-01
US20140325517A1 (en) 2014-10-30

Similar Documents

Publication Publication Date Title
JP6157181B2 (ja) サーバーシステム、その制御方法、およびそのプログラム
US9160621B2 (en) Network system, server, information processing apparatus, log registration method, and program
US8836974B2 (en) Image processing system and control method for managing a job related to image processing in a distributed environment
US9064122B2 (en) Job processing system, job processing method, and non-transitory computer-readable medium
JP5586985B2 (ja) ネットワークシステム、ネットワークシステムの制御方法、及び、プログラム
JP2019139591A (ja) システムおよびそれを用いる方法
US20110299130A1 (en) Cloud computing system, document processing method, and storage medium
JP6315899B2 (ja) 情報処理装置、システム、プログラム及び制御方法
JP2004102453A (ja) コンテキストラウンチ管理方法およびシステム、ならびにプログラム、記録媒体
JP2012043119A (ja) 文書管理システム、情報処理装置、文書管理方法、監視プログラム及び記録媒体
JP2015153117A (ja) 文書生成システム
JP2013258481A (ja) ネットワーク機器管理システム、ネットワーク機器管理方法
JP7159016B2 (ja) ネットワーククライアント及びその制御方法
JP5693095B2 (ja) 複合機、システム、情報処理方法及びプログラム
JP2015204524A (ja) システムおよびその制御方法、情報処理装置およびその制御方法、ジョブ処理装置およびその制御方法、並びにプログラム
JP2016042338A (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法、及びプログラム
JP2015005203A (ja) 情報処理装置及びプログラム、制御方法、システム
CN110928872B (zh) 处理系统和方法
JP2013106193A (ja) システム、およびその制御方法。
JP6305078B2 (ja) システムおよび制御方法
JP5135750B2 (ja) グリッドシステム、グリッドスケジューリングプログラム及び方法
JP5403446B2 (ja) 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム
JP7119582B2 (ja) 情報処理システム、及び管理サーバ
JP2018060420A (ja) 情報処理システム、情報処理装置およびプログラム
JP2017175414A (ja) 画像処理サーバ、データ送信プログラム及び振分装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170606

R151 Written notification of patent or utility model registration

Ref document number: 6157181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151