JP2014153804A - 情報処理装置、情報処理システム、停止方法及びプログラム - Google Patents

情報処理装置、情報処理システム、停止方法及びプログラム Download PDF

Info

Publication number
JP2014153804A
JP2014153804A JP2013021263A JP2013021263A JP2014153804A JP 2014153804 A JP2014153804 A JP 2014153804A JP 2013021263 A JP2013021263 A JP 2013021263A JP 2013021263 A JP2013021263 A JP 2013021263A JP 2014153804 A JP2014153804 A JP 2014153804A
Authority
JP
Japan
Prior art keywords
execution
information processing
worker
information
holding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013021263A
Other languages
English (en)
Inventor
Tadashi Honda
正 本田
Tetsuji Kokaki
哲治 幸加木
Kenta Yamano
健太 山野
Tomoya Amikura
智哉 網倉
Masateru Kumagai
政輝 熊谷
Yuichiro Hayashi
雄一郎 林
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013021263A priority Critical patent/JP2014153804A/ja
Priority to US14/162,870 priority patent/US9317396B2/en
Publication of JP2014153804A publication Critical patent/JP2014153804A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/0044Display of information to the user, e.g. menus for image preview or review, e.g. to help the user position a sheet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Facsimiles In General (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】稼働中の情報処理システムに含まれるプログラムを容易に更新できる情報処理装置、情報処理システム、停止方法及びプログラムを提供することを課題とする。
【解決手段】情報処理の実行要求情報を保持する第1保持手段と、一種類以上の情報処理を実行する実行手段と、実行要求情報の情報処理の種類に応じて、その種類の情報処理を実行できる実行手段に第1保持手段が保持する実行要求情報の情報処理を実行させる実行制御手段と、実行手段の停止指示を保持する第2保持手段と、を有し、実行制御手段は実行手段が情報処理を実行していないときに、第2保持手段を確認し、第2保持手段に停止指示が保持されている実行手段に停止処理を行わせることにより、上記課題を解決する。
【選択図】 図8

Description

本発明は、情報処理装置、情報処理システム、停止方法及びプログラムに関する。
クライアントからサーバに対して印刷指示を送信し、印刷指示を受信したサーバが印刷対象のコンテンツを印刷データに変換する技術は従来から知られている。このような技術において、サーバは印刷データを生成するサービスをクライアントに提供している。
近年、注目を集めているクラウドコンピューティングは、上記のようにサーバがクライアントにサービスを提供する一形態である。クラウドコンピューティングは、多くのコンピューティング・リソースを用いてデータ変換やデータ処理を分散実行し、多くのクライアントからの要求を処理する。このようなクラウドコンピューティングを実現するクラウドコンピューティング環境上にWebサービスを実装し、多種多様なサービスを提供するベンダーも乱立しつつある(例えば特許文献1参照)。
例えばデータ変換を実行するサーバはプログラムの独立性やメンテナンス性を高めるために、データ変換を行うデータ変換エンジン(データ変換プログラム、データ変換ライブラリなど)を用いる場合がある。
また、データ変換に限らず、何らかのデータ処理を実行するサーバはプログラムの独立性やメンテナンス性を高めるために、データ処理を行うデータ処理エンジン(データ処理プログラム、データ処理ライブラリなど)を用いる場合がある。
データ変換の種類やデータ処理の種類が複数の場合には、多数のデータ変換エンジンやデータ処理エンジンが必要となる。このようなデータ変換エンジンやデータ処理エンジンを用いる稼働中の情報処理システムにおいてデータ変換エンジンやデータ処理エンジンの更新を行う場合は、情報処理システムを停止して行うことが一般的であった。
データ変換エンジンやデータ処理エンジンを用いる従来の情報処理システムは、情報処理システム全体を停止して行っていたため、データ変換エンジンやデータ処理エンジンを容易に更新できないことが課題である。
本発明の実施の形態は、上記の点に鑑みなされたもので、稼働中の情報処理システムに含まれるプログラムを容易に更新できる情報処理装置、情報処理システム、停止方法及びプログラムを提供することを目的とする。
上記目的を達成するために本願請求項1の情報処理装置は、情報処理の実行要求情報を保持する第1保持手段と、一種類以上の情報処理を実行する実行手段と、前記第1保持手段が保持する前記実行要求情報の情報処理の種類に応じて、その種類の前記情報処理を実行できる前記実行手段に、前記第1保持手段が保持する前記実行要求情報の情報処理を実行させる実行制御手段と、前記実行手段の停止指示を保持する第2保持手段と、を有し、前記実行制御手段は前記実行手段が前記情報処理を実行していないときに、前記第2保持手段を確認し、前記第2保持手段に停止指示が保持されている前記実行手段に停止処理を行わせることを特徴とする。
本発明の実施の形態によれば、稼働中の情報処理システムに含まれるプログラムを容易に更新できる。
第1の実施形態に係る情報処理システムの一例の構成図である。 サービス提供システムの他の例の構成図である。 コンピュータシステムの一例のハードウェア構成図である。 第1の実施形態に係るサービス提供システムの一例の処理ブロック図である。 組織情報の一例の構成図である。 ユーザ情報の一例の構成図である。 機器情報の一例の構成図である。 ワーカーを更新する処理の一例のシーケンス図である。 ワーカーの停止処理の一例のフローチャートである。 ワーカーをテスト及び起動する処理の一例のシーケンス図である。 ジョブ情報の一例の構成図である。 ジョブ完了の通知の一例の構成図(1/2)である。 ジョブ完了の通知の一例の構成図(2/2)である。 ジョブ情報の他の例の構成図である。 ワーカーによるジョブ結果の評価に利用する対応表の一例について説明するための図である。 ワーカーの更新、テスト及び起動時における開発者の操作手順を表した一例のフローチャートである。 サービス提供システムによる非同期処理の一例について説明する図である。 キューとワーカーとワーカーフレームワークとの関係について説明するための図である。 ワーカーの更新、テスト及び起動時におけるキューとワーカーとワーカーフレームワークとの関係について説明するための図である。
以下、本発明の実施形態について図面を参照しながら説明する。
[第1の実施形態]
<システム構成>
図1は第1の実施形態に係る情報処理システムの一例の構成図である。図1の情報処理システム1000は例えばオフィス内ネットワーク等のネットワークN1と、クラウドサービスに代表されるサービス提供システムのネットワークN2と、インターネットなどのネットワークN3とを有する。
ネットワークN1は、ファイヤウォールFWの内側にあるプライベートなネットワークである。ファイヤウォールFWはネットワークN1とネットワークN3との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークN1にはクライアント端末1011、携帯端末1012、複合機などの画像形成装置1013が接続されている。
クライアント端末1011は端末装置の一例である。クライアント端末1011は一般的なOSなどが搭載された情報処理装置によって実現できる。クライアント端末1011は無線による通信の手段または有線による通信の手段を有する。クライアント端末1011は、タブレットPC、ノートPCなど、ユーザが操作可能な端末である。
携帯端末1012は端末装置の一例である。携帯端末1012は、無線による通信の手段または有線による通信の手段を有している。携帯端末1012は、スマートフォンや携帯電話、タブレットPC、ノートPCなど、ユーザが携帯可能な端末である。
画像形成装置1013は複合機などの画像形成機能を有する装置である。画像形成装置1013は無線による通信の手段または有線による通信の手段を有する。画像形成装置1013は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成に係る処理を行う装置である。図1では、一例としてクライアント端末1011、携帯端末1012、画像形成装置1013がそれぞれ一台である例を示しているが複数台であってもよい。
ネットワークN2はアクセス制御装置1021によってネットワークN3に接続されている。ネットワークN2はアクセス制御装置1021によってセキュリティが保護されている。ネットワークN2にはプリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024が接続されている。
図1の情報処理システム1000は、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024がサービス提供システムを実現している。プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024はプリントサービス、スキャンサービスや他サービスを提供する。
アクセス制御装置1021はプリントサービス提供装置1022が提供するプリントサービスやスキャンサービス提供装置1023が提供するスキャンサービスなどへのログインを制御する。
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、一台以上の情報処理装置によって実現される。
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は一台の情報処理装置に統合して実現してもよいし、複数の情報処理装置に分散して実現してもよい。
ネットワークN2側のサービスの一部はネットワークN2以外にあってもよい。携帯端末1012は、オフィス内ネットワーク等のネットワークN1以外にあってもよい。図1の情報処理システム1000では携帯端末1012がネットワークN1と、ネットワークN3とにある例を示している。
ネットワークN3に接続されているオンラインストレージ1031は、ファイルを保存する装置である。オンラインストレージ1031は、ベンダーにより提供されるファイル保存用の装置であってもよい。
図1のサービス提供システムの構成は一例であって、図2に示すような構成によっても実現できる。図2はサービス提供システムの他の例の構成図である。図2のサービス提供システムはネットワークN2がファイヤウォールFWによってネットワークN3に接続されている。
ネットワークN2にはSaaS(Software as a Service)系のサービス提供装置、共通サービス(Network Service Platform)系のサービス提供装置、ストレージ(Storage)系の記憶装置が接続されている。なお、共通サービス系のサービス提供装置はSaaS系のサービス提供装置が共通で使えるサービスを提供する。
SaaS系のサービス提供装置は、例えばポータルサービス提供装置1051、プリントサービス提供装置1052、スキャンサービス提供装置1053など、提供するサービスに応じたサービス提供装置が含まれる。また、共通サービス系のサービス提供装置は、例えば認証サービス提供装置1061、データ処理サービス提供装置1062、一時データ保存サービス提供装置1063など、提供する共通サービスに応じたサービス提供装置が含まれる。ストレージ系の記憶装置は、例えば認証情報記憶装置1071、ジョブ情報記憶装置1072、一時データ記憶装置1073など、記憶する情報(データ)に応じた記憶装置が含まれる。
図2のサービス提供システムでは、例えばファイヤウォールFW、認証サービス提供装置1061が提供する認証サービスによってセキュリティが保護されている。なお、図2のサービス提供システムの構成も一例であって、他の構成であってもよい。
<ハードウェア構成>
図1のクライアント端末1011、携帯端末1012、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、例えば図3に示すようなハードウェア構成のコンピュータシステムにより実現される。
図2のSaaS系のサービス提供装置、共通サービス系のサービス提供装置、ストレージ系の記憶装置も、例えば図3に示すようなハードウェア構成のコンピュータシステムにより実現される。
図3はコンピュータシステムの一例のハードウェア構成図である。図3のコンピュータシステム1500は、入力装置1501、表示装置1502、外部I/F1503、RAM(Random Access Memory)1504、ROM(Read Only Memory)1505、CPU(Central Processing Unit)1506、通信I/F1507、及びHDD(Hard Disk Drive)1508などを備え、それぞれがバスBで相互に接続されている。
入力装置1501はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置1502はディスプレイ等を含み、コンピュータシステム1500による処理結果を表示する。
通信I/F1507はコンピュータシステム1500をネットワークN1〜N3に接続するインタフェースである。これにより、コンピュータシステム1500は通信I/F1507を介してデータ通信を行うことができる。
HDD1508はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム1500全体を制御する基本ソフトウェアであるOS(Operating System)や、OS上において各種機能を提供するアプリケーションソフトウェアなどがある。
HDD1508は格納しているプログラムやデータを所定のファイルシステム及び/又はDB(データベース)により管理している。外部I/F1503は、外部装置とのインタフェースである。外部装置には、記録媒体1503aなどがある。これにより、コンピュータシステム1500は外部I/F1503を介して記録媒体1503aの読み取り及び/又は書き込みを行うことができる。記録媒体1503aにはフレキシブルディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory card)、USBメモリ(Universal Serial Bus memory)などがある。
ROM1505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM1505には、コンピュータシステム1500の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM1504は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU1506は、ROM1505やHDD1508などの記憶装置からプログラムやデータをRAM1504上に読み出し、処理を実行することで、コンピュータシステム1500全体の制御や機能を実現する演算装置である。
クライアント端末1011、携帯端末1012、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、コンピュータシステム1500のハードウェア構成により、後述するような各種処理を実現できる。また、図2のSaaS系のサービス提供装置、共通サービス系のサービス提供装置、ストレージ系の記憶装置も、コンピュータシステム1500のハードウェア構成により、後述するような各種処理を実現できる。なお、図1に示した画像形成装置1013、ファイヤウォールFWのハードウェア構成については説明を省略する。
<ソフトウェア構成>
《サービス提供システム》
第1の実施形態に係るサービス提供システムは例えば図4に示す処理ブロックにより実現される。図4は第1の実施形態に係るサービス提供システムの一例の処理ブロック図である。
サービス提供システム1100はプログラムを実行することにより、アプリケーション1101、共通サービス1102、データベース(DB)1103及びプラットフォームAPI(Application Programming Interface)1104を実現している。
アプリケーション1101は、ポータルサービスアプリ1111、スキャンサービスアプリ1112、プリントサービスアプリ1113を一例として有する。
ポータルサービスアプリ1111は、ポータルサービスを提供するアプリケーションである。ポータルサービスは、サービス提供システム1100を利用するための入り口となるサービスを提供する。スキャンサービスアプリ1112はスキャンサービスを提供するアプリケーションである。プリントサービスアプリ1113はプリントサービスを提供するアプリケーションである。アプリケーション1101には、その他のサービスアプリが含まれていてもよい。
プラットフォームAPI1104はポータルサービスアプリ1111、スキャンサービスアプリ1112、プリントサービスアプリ1113などのアプリケーション1101が共通サービス1102を利用するためのインタフェースである。プラットフォームAPI1104はアプリケーション1101からの要求を共通サービス1102が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。
プラットフォームAPI1104は、サービス提供システム1100が複数の情報処理装置で構成される場合、ネットワーク経由で利用可能な例えばWeb APIにより実現できる。
共通サービス1102は、認証・認可部1121、組織管理部1122、ユーザ管理部1123、ライセンス管理部1124、機器管理部1125、一時画像保存部1126、画像処理ワークフロー制御部1127、ログ収集部1128を有する。
また、画像処理ワークフロー制御部1127はメッセージキュー1131、1つ以上のワーカー(Worker)1132を有する。ワーカー1132は画像変換や画像送信などの機能を実現する。
認証・認可部1121は、クライアント端末1011や画像形成装置1013などのオフィス機器からのログイン要求に基づいて認証・認可を実行する。オフィス機器はクライアント端末1011、携帯端末1012、画像形成装置1013などの総称である。
認証・認可部1121は、例えば後述するユーザ情報記憶部1143、ライセンス情報記憶部1144などにアクセスしてユーザを認証・認可する。また、認証・認可部1121は例えば後述する組織情報記憶部1142、ライセンス情報記憶部1144、機器情報記憶部1145などにアクセスして画像形成装置1013などを認証する。
組織管理部1122は後述する組織情報記憶部1142に記憶されている組織情報を管理する。ユーザ管理部1123は、後述するユーザ情報記憶部1143に記憶されているユーザ情報を管理する。
ライセンス管理部1124は後述するライセンス情報記憶部1144に記憶されているライセンス情報を管理する。機器管理部1125は後述する機器情報記憶部1145に記憶されている機器情報を管理する。一時画像保存部1126は後述する一時画像記憶部1146への一時画像の保存、一時画像記憶部1146からの一時画像の取得を行う。
画像処理ワークフロー制御部1127はアプリケーション1101からの要求に基づいて画像処理に関するワークフローを制御する。メッセージキュー1131は処理の種類に対応するキューを有する。画像処理ワークフロー制御部1127は処理(ジョブ)に係るリクエストのメッセージを、そのジョブの種類に対応するキューに投入する。
ワーカー1132は対応するキューを監視している。キューにメッセージが投入されるとワーカー1132は、対応するジョブの種類に応じた画像変換や画像送信などの処理を行う。なお、キューに投入されたメッセージはワーカー1132が主体的に読み出す(Pull)ようにしてもよいし、キューからワーカー1132に提供する(Push)ようにしてもよい。画像処理ワークフロー制御部1127の処理の詳細は後述する。
データベース1103は、ログ情報記憶部1141、組織情報記憶部1142、ユーザ情報記憶部1143、ライセンス情報記憶部1144、機器情報記憶部1145、一時画像記憶部1146、ジョブ情報記憶部1147、アプリケーション固有の設定情報記憶部1148を有する。
ログ情報記憶部1141は、ログ情報を記憶する。組織情報記憶部1142は、後述の組織情報を記憶する。ユーザ情報記憶部1143は、後述のユーザ情報を記憶する。ライセンス情報記憶部1144は、ライセンス情報を記憶する。機器情報記憶部1145は後述の機器情報を記憶する。
一時画像記憶部1146は一時画像を記憶する。一時画像は、例えばワーカー1132が処理するスキャン画像などのファイルやデータである。ジョブ情報記憶部1147は処理(ジョブ)に係るリクエストの情報(ジョブ情報)を記憶する。アプリケーション固有の設定情報記憶部1148はアプリケーション1101に固有の設定情報を記憶する。
サービス提供システム1100は、認証・認可や画像処理に関するワークフローなどの共通サービスを提供する統合基盤と、統合基盤の機能を利用してスキャンサービス、プリントサービス等のアプリサービスを提供するサービス群と、して機能する。統合基盤は例えば共通サービス1102、DB1103及びプラットフォームAPI1104によって構成される。サービス群は例えばアプリケーション1101によって構成される。
なお、図4に示したサービス提供システム1100の処理ブロックの分類形態は一例であり、アプリケーション1101、共通サービス1102、DB1103が図4に示されるような階層で分類されていることが必須ではない。第1の実施形態に係るサービス提供システム1100の処理を実施できるのであれば、図4に示される階層関係などは特定のものに限定されない。
図5は組織情報の一例の構成図である。組織情報は、データ項目として組織ID、組織名、国、言語、アドレス情報などを有する。組織IDは企業、部署などのグループを特定する情報である。組織IDは組織という言語に限定されるものではなく、例えば契約を識別する情報であってもよい。なお、組織IDは一意である。
組織名は企業、部署などのグループの名称である。国は企業、部署などのグループの属する国名を表している。言語は企業、部署などのグループの使用言語を表している。アドレス情報は企業、部署などのグループのメールアドレスを表している。
図6はユーザ情報の一例の構成図である。図6のユーザ情報はデータ項目として組織ID、ユーザ名、パスワード、アドレス情報などを有する。ユーザ名、パスワードはユーザを特定する情報である。したがって、ユーザ名はユーザID等であってもよい。また、パスワードは必須でない。また、同じ組織IDで管理されるユーザ名、パスワードは一意であるが、組織IDが異なれば重複していてもよい。アドレス情報は例えばユーザのメールアドレスを表している。
さらに、ユーザ名はユーザが所持する電子媒体(例えばICカード)を識別する情報を用いてもよい。ユーザが所持する電子媒体としてはICカード、携帯電話、タブレット端末、電子書籍端末等を利用できる。電子媒体を識別する情報としては、カードID、シリアルID、携帯電話の電話番号、端末のプロフィール情報などを利用できる。電子媒体を識別する情報は組み合わせて利用してもよい。
図7は機器情報の一例の構成図である。図7の機器情報はデータ項目として組織ID、デバイス認証情報、事業所情報、ケーパビリティなどを有する。デバイス認証情報はオフィス機器が特定の条件を備えたものであることを判別するデバイス認証のための情報である。デバイス認証情報はオフィス機器に特定のアプリケーションが搭載されていることを示すIDや、特定のオフィス機器であることを示す機器番号などであってもよい。事業所情報は例えばオフィス機器が設置されている事業所を表している。ケーパビリティは例えばオフィス機器の能力を表している。
<処理の詳細>
《ワーカー1132の更新》
第1の実施形態に係るサービス提供システム1100は、稼働中のサービス提供システム1100において、サービス提供システム1100に影響を与えずにワーカー1132を更新する。第1の実施形態に係るサービス提供システム1100は、図8に示すようにワーカー1132の更新を行う。
図8はワーカーを更新する処理の一例のシーケンス図である。図8に示したWorkerサーバ(ワーカーサーバ)11は、ワーカー1132Aとワーカー1132Bとが動作している。ワーカーサーバ11は、例えばWindows(登録商標)サーバやLinux(登録商標)サーバにより実現される。
ワーカーサーバ11は、アクターである開発者からの指示を受け取って処理する。アクターはサーバ保守担当者などであってもよい。図8のワーカー1132Aとワーカー1132Bとは後述するワーカーフレームワーク1133を含んでいる。ワーカー1132Aとワーカー1132Bとは起動されたプロセスである。ワーカー1132Aはジョブを処理していないワーカーである。ワーカー1132BはステップS1によりジョブ処理の実行を開始したジョブ処理中のワーカーである。
ステップS2において、アクターである開発者はワーカー1132A及びワーカー1132Bを停止する指示を行う。停止する指示は例えばワーカーサーバ11が動作しているコンピュータシステムや、そのコンピュータシステムとデータ通信可能に接続されているクライアント端末1011又は携帯端末1012等から、コマンドライン等を利用して行うことができる。
ステップS3において、開発者からワーカー1132A及びワーカー1132Bを停止する指示を受け取ったワーカーサーバ11はワーカー1132A及びワーカー1132Bの停止フラグをONにする。停止フラグのONは例えばフォルダなど所定のファイル格納場所に予め決めておいた名称のファイルを作成することで行うことができる。
例えばワーカーサーバ11はWorkerA_exit.fileという名称のファイルを所定のフォルダに作成することで、ワーカー1132Aの停止フラグをONにすることができる。また、ワーカーサーバ11はWorkerB_exit.fileという名称のファイルを所定のフォルダに作成することで、ワーカー1132Bの停止フラグをONにすることができる。
なお、ワーカー1132A及びワーカー1132Bを停止する内容が判別できる名称のファイルを、所定のファイル格納場所に作成することで、停止フラグをONする方法は一例である。ワーカー1132A及びワーカー1132Bを停止する内容が判別できるのであれば、前述のようなファイルの作成に限定されない。
ステップS4において、ワーカーサーバ11は所定間隔(例えば5分間)毎に、所定のファイル格納場所にWorkerA_exit.fileなどのexit.fileが存在しないか(全てのexit.fileが削除されたか)をチェックする。
ワーカーサーバ11は所定のファイル格納場所にexit.fileが存在すれば停止フラグがONされたと判断する。図8では、ワーカーサーバ11はワーカー1132A及びワーカー1132Bの停止フラグがONされたと判断する。
ステップS5において、ジョブを処理していないワーカー1132Aはワーカーサーバ11の停止フラグをチェックする。なお、ワーカーサーバ11の停止フラグをチェックする機能はワーカーフレームワーク1133に実装される。
ジョブを処理していないワーカー1132Aは、所定間隔(例えば1分間)毎に停止フラグをチェックする。ワーカー1132Aは停止フラグがONされたと判断し、ステップS6において、後述するような停止処理を実行する。なお、ワーカー1132を停止する機能はワーカーフレームワーク1133に実装される。ワーカー1132Aは停止フラグがOFFであると判断すると、所定間隔を開けて、再び、ワーカーサーバ11の停止フラグをチェックする。ステップS7において、ワーカー1132Aはワーカーサーバ11の所定のファイル格納場所からWorkerA_exit.fileを削除する。ステップS7のあと、ワーカー1132Aは停止する。
ステップS8において、ジョブ処理中のワーカー1132Bはジョブ処理が完了したタイミングでワーカーサーバ11の停止フラグをチェックする。ワーカー1132Bは停止フラグがONされたと判断し、ステップS9において、後述の停止処理を実行する。
ワーカー1132Bは停止フラグがOFFであると判断すると、ワーカー1132Aと同様、所定間隔を開けて、ワーカーサーバ11の停止フラグをチェックする。ステップS10において、ワーカー1132Bはワーカーサーバ11の所定のファイル格納場所からWorkerB_exit.fileを削除する。ステップS10のあと、ワーカー1132Bは停止する。
所定のファイル格納場所から全てのexit.fileが無くなると、ワーカーサーバ11はステップS11において、更新対象のワーカー1132A及びワーカー1132Bが停止したと判断する。ワーカーサーバ11はアクターである開発者に、更新対象である全てのワーカー1132が停止したことを通知する。アクターである開発者への通知はコマンドラインによる文字列表示やダイアログによる表示などで行えばよい。
ステップS12において、アクターである開発者は更新対象のワーカー1132A及びワーカー1132Bの更新を指示する。ステップS13において、ワーカーサーバ11はワーカー1132A、ワーカー1132B、ワーカーフレームワーク1133のプログラムを書き換えることで、更新対象のワーカー1132A及びワーカー1132Bを更新できる。
なお、ステップS13では、ワーカー1132及びワーカーフレームワーク1133の両方のプログラムを書き換える場合もあるし、何れか一方のプログラムを書き換える場合もある。また、ステップS13では、複数のワーカー1132のうちの一部のワーカー1132のプログラムを書き換える場合もある。複数のワーカー1132のうちの一部のワーカーを更新する場合は、更新対象以外のワーカー1132を停止しなくてもよい。
このように、第1の実施形態に係るサービス提供システム1100は、ジョブ処理中のワーカー1132Aがあってもジョブ完了を待って、ワーカー1132Aを適切に停止させることができる。
したがって、第1の実施形態に係るサービス提供システム1100は、ワーカー1132Aにおいて処理中のジョブがエラーになることがなく、稼働中のサービス提供システム1100に影響を与えずに、ワーカー1132を更新できる。
なお、図8のシーケンス図では所定のファイル格納場所に作成するファイルにより停止フラグを実現しているが、例えばワーカー1132からの問い合わせに応じて停止フラグのON/OFFを通知する機能により実現してもよい。
図9はワーカーの停止処理の一例のフローチャートである。図9に示すワーカー1132の停止処理の機能はワーカーフレームワーク1133に実装される。
ステップS21において、ワーカー1132はメッセージキュー1131に接続を切ることを報告する。メッセージキュー1131はステップS21の処理により、停止されるワーカー1132にジョブ処理を依頼しなくなる。なお、ステップS21の処理を行わない場合、メッセージキュー1131は停止されたワーカー1132にジョブ処理を依頼してしまい、ジョブ処理が行われないことも想定される。
ステップS22において、ワーカー1132は、処理に必要なアプリを起動している場合に、起動しているアプリを開放する。ワーカー1132により起動されているアプリはステップS22の処理を実行しないと、起動されたまま残ってしまうことがある。
ファイルを開いているアプリが起動されたまま残ってしまうと、同一ファイルをアプリで起動できなかったり、アプリを二重起動できなかったりする障害となる。また、ユーザのファイルが開いたままの状態となり、セキュリティ的に問題がある。
ステップS23において、ワーカー1132はファイルを開いている場合に、開いているファイルを閉じる。ワーカー1132により開かれているファイルは、ステップS23の処理を実行しないと、開かれたまま残ってしまうことがある。ファイルが開かれたまま残ってしまうと、同一ファイルを開くことができない障害となる。また、ユーザのファイルが開いたままの状態となり、セキュリティ的に問題がある。
ステップS24において、ワーカー1132はテンポラリフォルダを空にする。テンポラリフォルダにあるファイルは、ステップS24の処理を実行しないと、いつまでも残る障害となる。また、ステップS24の処理を実行しないと、ファイルをテンポラリフォルダから消せない障害となる。さらに、ユーザのファイルがテンポラリフォルダに残った状態となり、セキュリティ的に問題がある。
図9のフローチャートに示したワーカー1132の停止処理によれば、上記したような問題が生じないように適切にワーカー1132を停止できる。なお、図9に示した停止処理は一例であって、例えば図9の処理の少なくとも一部を含む処理であってもよい。
《ワーカー1132のテストと起動》
第1の実施形態に係るサービス提供システム1100は、稼働中のサービス提供システム1100において、サービス提供システム1100に影響を与えずにワーカー1132をテストし、そのワーカー1132を起動する。第1の実施形態に係るサービス提供システム1100は、図10に示すようにワーカー1132のテスト及び起動を行う。
図10はワーカーをテスト及び起動する処理の一例のシーケンス図である。図10に示したワーカーサーバ11は、図8と同様に、例えばWindows(登録商標)サーバやLinux(登録商標)サーバにより実現される。ワーカーサーバ11には後述のテストプログラムが動作している。
なお、ワーカーサーバ11は本稼動前であるため、テストプログラムを動作させることができる。ここで言う本稼動とは、ワーカーサーバ11上で動作するワーカー1132がユーザ用のキュー(以下、ノーマルキューという)からのメッセージを受け付ける本番起動された状態である。テストプログラムはワーカーサーバ11以外のテスト用のサーバを用意して、そのテスト用のサーバで動作させてもよい。
ステップS31において、アクターである開発者はワーカーサーバ11に対し、図8のシーケンス図の処理により更新されたワーカー1132A及びワーカー1132Bをテスト用に起動する指示を行う。なお、テスト用の起動とはワーカーサーバ11上で動作するワーカー1132A及びワーカー1132Bがノーマルキューからのメッセージを受け付けず、テスト用のキュー(以下、ダミーキューという)からのメッセージを受け付ける状態である。アクターである開発者は、ワーカー1132A及びワーカー1132Bを起動する指示を行うとき、例えば引数により本番起動させるのか、テスト用の起動をさせるのかを指定できる。
ステップS32において、ワーカーサーバ11はダミーキューを指定してワーカー1132Aを起動する。ステップS33において、ワーカー1132Aはメッセージキュー1131にダミーキューへの接続を要求する。メッセージキュー1131はダミーキューが無ければ新たに作成する。
メッセージキュー1131はワーカー1132Aをダミーキューに接続する。ステップS33の処理後、ワーカー1132Aはダミーキューに投入されたメッセージのジョブ処理をメッセージキュー1131から依頼されるようになる。なお、ダミーキューにはテスト用のジョブが登録される。
ステップS34において、ワーカーサーバ11はダミーキューを指定してワーカー1132Bを起動する。ステップS35において、ワーカー1132Bはメッセージキュー1131にダミーキューへの接続を要求する。
メッセージキュー1131はワーカー1132Bをダミーキューに接続する。ステップS35の処理後、ワーカー1132Bはダミーキューに投入されたメッセージのジョブ処理をメッセージキュー1131から依頼されるようになる。
ワーカー1132A及びワーカー1132Bが起動した後、アクターである開発者はステップS36において、ワーカーサーバ11のテストプログラムに対し、ワーカー1132A及びワーカー1132Bをテストする指示を行う。なお、後述のステップS40〜S48の処理はテストの数だけ繰り返される。
ステップS39において、ワーカーサーバ11のテストプログラムは画像処理ワークフロー制御部1127に、処理の種類としてテストを表すダミーキューを指定して、ジョブ情報の登録を要求する。なお、テストプログラムから受け付けるジョブ情報は例えば図11に示すようなものである。
図11はジョブ情報の一例の構成図である。図11のジョブ情報は、ジョブの定義に関わる部分1と、タスクの定義に関わる部分2とを含む。ジョブの定義に関わる部分1はジョブID、ユーザID、組織ID、アプリID、コールバックする先のURL、コールバックに必要なクッキー情報などを含む。また、タスクの定義に関わる部分2はタスクID、親ジョブID、タイプ(type)、パラメータ(Params)などを含む。
ジョブIDはジョブを識別する為の情報である。タスクIDはタスクを識別する為の情報である。親ジョブIDはタスクとジョブとを対応付けるものであり、ジョブの定義に関わる部分1のジョブIDと同一となる。なお、画像処理ワークフロー制御部1127が受け付けるジョブ情報はジョブID、タスクID及び親ジョブIDが空である。
タイプ(type)はワーカー1132に行わせる処理の種類を表すものであり、処理の種類(機能)に応じて設定される。なお、図11ではテストを表す「dummy_queue」が設定されている。
パラメータ(Params)は、ワーカー1132が処理を実行するために必要なパラメータである。図11ではオンラインストレージ1031にファイルを保存する処理を実行するために必要なパラメータとして、フォルダID、ファイル名、組織ID、フェデレーションID、ファイルを設定している。
フォルダIDはファイルを保存するフォルダを表している。ファイル名はファイルを保存するときに利用するファイルの名称を表している。組織ID及びフェデレーションIDはオンラインストレージ1031に接続するためのトークンを認証・認可部1121から入手するための情報である。ファイルはオンラインストレージ1031に保存するファイルの元の所在を示す情報である。例えばファイルには、一時画像記憶部1146に保存されているスキャン画像のファイルの保存場所を示すURIが設定される。
なお、パラメータ(Params)はワーカー1132に行わせる処理の種類に応じたパラメータとなる。パラメータ(Params)は、ワーカー1132に行わせる処理の種類に固有のパラメータである。
ユーザIDは、ジョブの実行を要求したユーザを表す情報である。組織IDは、ジョブの実行を要求した組織を表す情報である。アプリIDは、ジョブの実行を要求したアプリケーション1101等の要求元を表す情報である。コールバックする先のURLはコールバックする先を表す情報である。コールバックに必要なクッキー情報は、要求元にコールバックする際に用いられる情報である。
ステップS40において、画像処理ワークフロー制御部1127は登録の要求があったテスト用のジョブのジョブ情報をジョブ情報記憶部1147に登録する。ジョブ情報記憶部1147は登録したジョブのジョブID及びタスクIDを発行する。ジョブ情報記憶部1147は発行したジョブID及びタスクIDを、ジョブ情報のジョブID、タスクID及び親ジョブIDに追加する。そして、ジョブ情報記憶部1147はジョブ情報を登録したテスト用のジョブのジョブIDを画像処理ワークフロー制御部1127に返す。
ステップS41において、画像処理ワークフロー制御部1127は、ジョブ情報に含まれるタイプ(type)からテスト用のジョブであることを解析する。画像処理ワークフロー制御部1127はメッセージキュー1131のダミーキューに、テスト用のジョブに係るリクエストのメッセージを投入(キューイング)する。なお、メッセージにはジョブIDが含まれる。
画像処理ワークフロー制御部1127はテスト用のジョブのジョブIDをジョブ登録結果としてテストプログラムに返す。ステップS42において、ワーカーサーバ11のテストプログラムはテスト用のジョブが終了するまで待機する。
ワーカー1132Aのワーカーフレームワーク1133はメッセージキュー1131のダミーキューを監視している。ワーカー1132Aのワーカーフレームワーク1133はステップS43において、ダミーキューに登録されたメッセージを取得する。
ステップS44において、ワーカーフレームワーク1133は取得したメッセージに含まれるジョブIDのジョブ情報をジョブ情報記憶部1147から取得する。ステップS45において、ワーカーフレームワーク1133はジョブ情報に従い、ワーカー1132Aにテスト用のジョブ実行を指示する。ワーカー1132Aはワーカーフレームワーク1133からのジョブ実行の指示に従い、ジョブを処理する。
また、ステップS46において、ワーカー1132Aのワーカーフレームワーク1133はテスト用のジョブの完了をジョブ情報記憶部1147に通知する。ジョブ情報記憶部1147は例えば完了したテスト用のジョブのステータス(状態)情報を更新する。
ステップS47において、ワーカーフレームワーク1133はジョブ情報からジョブの定義に関わる部分1に含まれるコールバックする先として登録されているワーカーサーバ11のテストプログラムに、ジョブ完了を通知する。なお、ジョブ情報のジョブの定義に関わる部分1に、コールバックに必要なクッキー情報が設定されている場合、ワーカーフレームワーク1133はコールバックにクッキー情報を付加できる。
そしてステップS48において、テストプログラムはワーカー1132Aによるジョブの結果を後述のように評価する。ワーカー1132Bのテストはワーカー1132Aのテストと同様であるため、説明を省略する。
ステップS49において、アクターである開発者はワーカー1132A及びワーカー1132Bを停止する指示を行う。ワーカー1132A及びワーカー1132Bを停止する処理は図8のシーケンス図と同様であるため、説明を省略する。
テスト用のジョブの結果を受け、問題がなければ、アクターである開発者はステップS50において、ワーカーサーバ11に対し、図8のシーケンス図の処理により更新されたワーカー1132A及びワーカー1132Bを本番起動する指示を行う。ステップS51において、ワーカーサーバ11はノーマルキューを指定してワーカー1132Aを起動する。ステップS52において、ワーカー1132Aはメッセージキュー1131にノーマルキューへの接続を要求する。メッセージキュー1131はノーマルキューが無ければ新たに作成する。メッセージキュー1131はワーカー1132Aをノーマルキューに接続する。
ステップS52の処理後、ワーカー1132Aはノーマルキューに投入されたユーザからのジョブをメッセージキュー1131から依頼されるようになる。ワーカー1132Aと同様、ワーカー1132Bもノーマルキューを指定して起動され、ノーマルキューに投入されたユーザからのジョブをメッセージキュー1131から依頼されるようになる。
なお、図10では図8のシーケンス図の処理により更新されたワーカー1132A及びワーカー1132Bをテストしたあとで起動する例を説明したが、追加されたワーカー1132A及びワーカー1132Bをテストしたあとで起動する場合も同様である。
ステップS48においてテストプログラムが行う評価は、例えば図12及び図13に示すようなジョブ完了の通知を用いて行われる。
図12及び図13は、ジョブ完了の通知の一例の構成図である。図12及び図13に示すジョブ完了の通知の元となるジョブ情報は例えば図14に示すようなものである。
図14はジョブ情報の他の例の構成図である。図14のジョブ情報は、スキャン画像に対してOCR(Optical Character Reader)を実行し、生成したファイルをオンラインストレージ1031に保存する処理の例を表している。図14は空であるジョブID、タスクID及び親ジョブIDを省略している。
図14のジョブ情報は図11のジョブ情報と同様、ジョブの定義に関わる部分1と、タスクの定義に関わる部分2とを含む。ジョブの定義に関わる部分1には、図11のジョブ情報と同様であるが、将来的に任意のパラメータを増やしていけるように、予約要素が追加されている。
また、タスクの定義に関わる部分2も、図11のジョブ情報と同様であるが、2つのタスクが定義されている。1つ目のタスクはスキャン画像に対してOCRを実行する処理の例である。2つ目のタスクは生成したファイルをオンラインストレージ1031に保存する処理の例である。
1つ目のタスクの定義に含まれるパラメータ(Params)はスキャン画像に対してOCRを実行する処理に固有のパラメータである。スキャン画像に対してOCRを実行する処理に固有のパラメータには、OCR後のファイルフォーマットの設定、OCRを行う言語の設定、OCR後のファイルの画像(用紙)サイズの設定などが含まれる。
2つ目のタスクの定義に含まれるパラメータ(Params)は生成したファイルをオンラインストレージ1031に保存する処理に固有のパラメータである。生成したファイルをオンラインストレージ1031に保存する処理に固有のパラメータには、オンラインストレージ1031に保存するファイルの保存場所を示すURLが設定される。図14の例ではオンラインストレージ1031に保存するファイルの保存場所を示すURLに$1を設定することで、1つ目のタスクの結果を使うことを表している。
また、生成したファイルをオンラインストレージ1031に保存する処理に固有のパラメータには、ファイルを保存するフォルダの設定、オンラインストレージ1031に接続するためのトークンを認証・認可部1121から入手するための設定などが含まれる。
また、図12及び図13に示したジョブ完了の通知には、ジョブの定義に関わる部分1と、タスクの定義に関わる部分2と、タスクの実行結果の定義に関わる部分3と、が含まれる。
ジョブの定義に関わる部分1は、ジョブID、アプリID、組織ID、ユーザID、ステータス、エラー情報、ジョブの作成日時、ジョブの更新日時、コールバックする先のURL、コールバックに必要なクッキー情報、予約要素などを含む。ステータスはジョブのステータスであり、受理、処理中、完了、エラーなどが設定される。エラー情報はステータスがエラーの場合に、何のエラーかを示す情報が設定される。
タスクの定義に関わる部分2は図14のタスクの定義に関わる部分2に、タスクID及び親ジョブIDが追加されたものである。タスクの実行結果の定義に関わる部分3はタスクの定義に関わる部分2に定義された2つのタスクを実行した結果が列挙されている。
1つ目のタスクの実行結果の定義には図12のタスクの定義に関わる部分2に設定されている1つ目のタスクの定義の他、エラー情報、処理結果の詳細、タスクの処理開始日時及び完了日時が設定されている。
処理結果の詳細としては、例えばスキャン画像に対してOCRを実行する処理に固有の処理結果として、処理後のファイルの所在を示すURL、処理後のファイルのサイズなどが設定される。また、処理結果の詳細としては各機能で共通に提供される情報として、タスク全体(ワーカーフレームワーク1133及びワーカー1132)で掛かった時間、エンジン(ワーカー1132)で掛かった時間などが設定される。
2つ目のタスクの実行結果の定義には図12のタスクの定義に関わる部分2に設定されている2つ目のタスクの定義の他、エラー情報、処理結果の詳細、タスクの処理開始日時及び完了日時が設定されている。処理結果の詳細としては、例えば生成したファイルをオンラインストレージ1031に保存する処理に固有の処理結果として、保存されたファイルの名前、オンラインストレージ1031が発行したファイルID、保存したファイルの所在を示すURLなどが設定される。また、処理結果の詳細としては各機能で共通に提供される情報として、1つ目のタスクと同様に、タスク全体で掛かった時間、エンジンで掛かった時間などが設定される。
ステップS48において、テストプログラムは図12及び図13のジョブ完了の通知と図15に示すような機能、入力値及び期待値の対応表とを用いて、ワーカー1132によるジョブ結果の評価を行う。図15はワーカーによるジョブ結果の評価に利用する対応表の一例について説明するための図である。
図15の対応表は、ワーカー1132の機能と、その機能をワーカー1132に行わせるための入力値と、ジョブ完了の通知に含まれる処理結果の期待値と、が対応付けられている。テストプログラムは、ジョブ完了の通知のタイプ(type)に設定されている機能と、パラメータ(Params)に設定されている入力値と、に基づき、図15の対応表から処理結果の期待値を読み出す。
そして、テストプログラムはジョブ完了の通知に含まれる処理結果と、図15の対応表から読み出した期待値とを比較することで、ワーカー1132によるジョブ結果の評価を行う。例えばジョブ完了の通知に含まれる処理結果と、図15の対応表から読み出した期待値とが一致していれば、テストプログラムはワーカー1132によるジョブ結果が正常であると判断する。
《ワーカー1132の更新、テスト及び起動の自動化》
図16はワーカーの更新、テスト及び起動時における開発者の操作手順を表した一例のフローチャートである。
ステップS61において、開発者はワーカーサーバ11にワーカー1132を停止する指示を行う。ワーカー1132が停止すると、開発者はワーカーサーバ11にワーカー1132の更新を指示する。ステップS63において、開発者はワーカーサーバ11に更新したワーカー1132をテスト用に起動する指示を行う。ワーカー1132がテスト用に起動された後、ステップS64において、開発者はワーカーサーバ11のテストプログラムに対し、テスト用に起動したワーカー1132をテストする指示を行う。
ステップS65において、開発者はテスト用のジョブの結果を判断し、異常があればステップS66において問題を修正して、ステップS61の処理に戻る。テスト用のジョブの結果が正常であれば、開発者はステップS67において、ワーカーサーバ11に対してテスト用に起動したワーカー1132を停止する指示を行う。そして、ステップS68において、開発者はテスト用のジョブの結果により問題がないことが確認できたワーカー1132を本番起動する指示を行う。
例えば図16に示した開発者がワーカー1132の更新、テスト及び起動する操作手順はワーカーサーバ11のテストプログラムがバッチ処理することで自動化することが可能となる。テストプログラムがバッチ処理する場合は、例えばステップS66における問題の修正として、更新前のワーカー1132に戻すことが考えられる。また、テストプログラムがバッチ処理する場合は、ステップS66における問題の修正に代えて、開発者に異常を通知して、図16の処理を終了するようにしてもよい。
《非同期処理》
図4に示すサービス提供システム1100による非同期処理の流れについて詳細に説明する。図17は、サービス提供システムによる非同期処理の一例について説明する図である。
図17は、図4に示したサービス提供システム1100の処理ブロックのうち、アプリケーション1101と、一時画像保存部1126と、画像処理ワークフロー制御部1127と、メッセージキュー1131と、ワーカー1132と、を示している。
アプリケーション1101は、画像形成装置1013からアップロードされたスキャン画像のファイル保存を一時画像保存部1126に要求する。一時画像保存部1126は一時画像記憶部1146にスキャン画像のファイルを保存し、ファイルの保存場所を示すURIをスキャンサービスアプリ1112に返す。アプリケーション1101は、画像処理ワークフロー制御部1127にジョブ情報の登録を要求する。画像処理ワークフロー制御部1127はジョブ情報をジョブ情報記憶部1147に登録する。ジョブ情報記憶部1147はジョブ情報を登録したジョブのジョブIDを発行し、画像処理ワークフロー制御部1127に返す。
画像処理ワークフロー制御部1127は、ジョブ情報に含まれるタイプ(type)から処理の種類(機能)を解析する。画像処理ワークフロー制御部1127は処理の種類に合致するメッセージキュー1131のキューに、ジョブに係るリクエストのメッセージを投入(キューイング)する。画像処理ワークフロー制御部1127は、必要な処理の種類を解析し、非同期処理を実行させる制御を行う。
メッセージキュー1131は複数の処理の種類に対応するキューを有している。図17ではワーカー1132と、そのワーカー1132が担当するキューとを線で結んで表現している。図17に示すように、ワーカー1132は1又は複数のキューを担当することができる。また、図17に示すように、キューは1又は複数のワーカー1132に担当されることができる。
例えば図17では、1つのワーカー1132が担当する処理の種類として「doc2XXX」「pdf2XXX」「XXX2pdf」「storage2XXX」「ocr」「pdf2XXX、ocr」を表している。処理の種類「pdf2XXX、ocr」を担当するワーカー1132は複数の処理の種類を担当するワーカー1132の例である。
メッセージキュー1131のキューを監視しているワーカーフレームワーク1133はキューに投入されたジョブに係るリクエストのメッセージを検知する。ワーカーフレームワーク1133はキューに登録されたメッセージを取得する。ワーカーフレームワーク1133は図17において図示を省略している。
ワーカーフレームワーク1133は取得したメッセージに含まれるジョブIDのジョブ情報をジョブ情報記憶部1147から取得する。ワーカーフレームワーク1133は取得したジョブ情報から、一時画像記憶部1146に保存されているスキャン画像のファイルの保存場所を示すURIを読み出す。
そして、ワーカーフレームワーク1133は一時画像記憶部1146に保存されているスキャン画像のファイルの保存場所を示すURIを指定して、一時画像記憶部1146からスキャン画像のファイルを取得する。
ワーカーフレームワーク1133は取得したジョブ情報から処理の種類を解析し、処理の種類に合致するワーカー1132にジョブ実行を指示する。指示されたジョブを実行したワーカー1132はワーカーフレームワーク1133にジョブの実行結果を返す。
ワーカーフレームワーク1133は、ジョブの完了をジョブ情報記憶部1147に通知して、完了したジョブのステータス(状態)情報を更新させる。また、ワーカーフレームワーク1133はジョブ情報からコールバックする先のURLを読み出し、コールバックする先のURLに、ジョブ完了を通知する。
メッセージキュー1131のキューと、ワーカー1132と、ワーカーフレームワーク1133との関係は、例えば図18のように表すことができる。
図18はキューとワーカーとワーカーフレームワークとの関係について説明するための図である。メッセージキュー1131は、複数のキューを有する。キューは「doc2XXX」などの処理の種類(機能)ごとに分離されている。メッセージキュー1131は例えば1つのサーバ10上で動作する。
また、ワーカー1132及びワーカーフレームワーク1133はワーカーサーバ11A及び11B上で動作する。ワーカーサーバ11A及び11Bは例えばWindows(登録商標)サーバやLinux(登録商標)サーバにより実現される。
例えばワーカーサーバ11A及び11BはWindows(登録商標)サーバである場合に、2つのワーカー1132を動作させる。また、ワーカーサーバ11A及び11BはLinux(登録商標)サーバである場合に、3つのワーカー1132を動作させる。図18に示すようにワーカーサーバ11A及び11Bには、ワーカーフレームワーク1133と複数のワーカー1132とが配置される。
図18に示すように、ワーカーフレームワーク1133は1つの接続で複数のキューをポーリングすることができる。ただし、1つの接続でポーリングすることができる複数のキューの範囲は例えば同一のOSサーバ上で動作するワーカー1132の範囲とする。
メッセージキュー1131のキューと、ワーカー1132と、ワーカーフレームワーク1133とが図18に示すような関係を有することによりサービス提供システム1100は非同期処理を実現できる。なお、上記したワーカー1132の更新、テスト及び起動時におけるメッセージキュー1131のキューと、ワーカー1132と、ワーカーフレームワーク1133との関係は、例えば図19のように表すことができる。
図19は、ワーカーの更新、テスト及び起動時におけるキューとワーカーとワーカーフレームワークとの関係について説明するための図である。メッセージキュー1131は図18のメッセージキュー1131にダミーキューが追加された構成である。
また、ワーカーサーバ11A及び11Bは図18のワーカーサーバ11A及び11Bにテストプログラムが追加された構成である。図19のワーカーサーバ11A及び11Bはワーカー1132をテスト用に起動している。したがって、図19ではワーカー1132がダミーキューを担当することを、ワーカーフレームワーク1133とダミーキューとを線で結んで表現している。
メッセージキュー1131のダミーキューと、ワーカー1132と、ワーカーフレームワーク1133と、テストプログラム1134とが図19に示すような関係を有することにより、サービス提供システム1100は図8及び図10に示したようなシーケンス図の処理が実現できる。
(まとめ)
第1の実施形態に係るサービス提供システム1100によれば、稼働中のサービス提供システム1100において、サービス提供システム1100に影響を与えずにワーカー1132の更新又は追加、テスト及び起動が可能となる。
また、第1の実施形態に係るサービス提供システム1100によれば、ダミーキューを動的に追加できる仕組みと、ワーカー1132が担当するキューを動的に変更できる仕組みとを実現できる。
第1の実施形態に係るサービス提供システム1100では、ダミーキューを利用することにより、稼働中のサービス提供システム1100でワーカー1132の動作を確認することができる。そして、第1の実施形態に係るサービス提供システム1100では動作を確認した後のワーカー1132を本番起動できる。
つまり、第1の実施形態に係るサービス提供システム1100では、冗長構成の複数のワーカー1132から、更新対象のワーカー1132を一つずつ停止して切り離し、更新後のワーカー1132の動作を確認した後で、冗長構成に戻すことも可能である。
さらに、第1の実施形態に係るサービス提供システム1100ではワーカー1132のジョブ完了を待って、更新対象のワーカー1132を適切に停止させることができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した第1保持手段は、メッセージキュー1131に相当する。実行手段はワーカー1132に相当する。実行制御手段はワーカーフレームワーク1133に相当する。第2保持手段は停止フラグを実現する所定のフォルダに相当する。
実行要求情報は、ジョブ情報に相当する。起動手段はワーカーサーバ11のステップS32の処理に相当する。登録手段は、ワーカーサーバ11のステップS39の処理に相当する。評価手段は、ワーカーサーバ11のステップS48の処理に相当する。
10 サーバ
11A、11B ワーカーサーバ
1000 情報処理システム
1011 クライアント端末
1012 携帯端末
1013 画像形成装置
1021 アクセス制御装置
1022 プリントサービス提供装置
1023 スキャンサービス提供装置
1024 他サービス提供装置
1031 オンラインストレージ
1051 ポータルサービス提供装置
1052 プリントサービス提供装置
1053 スキャンサービス提供装置
1061 認証サービス提供装置
1062 データ処理サービス提供装置
1063 一時データ保存サービス提供装置
1071 認証情報記憶装置
1072 ジョブ情報記憶装置
1073 一時データ記憶装置
1100 サービス提供システム
1101 アプリケーション
1102 共通サービス
1103 データベース
1104 プラットフォームAPI(Application Programming Interface)
1111 ポータルサービスアプリ
1112 スキャンサービスアプリ
1113 プリントサービスアプリ
1121 認証・認可部
1122 組織管理部
1123 ユーザ管理部
1124 ライセンス管理部
1125 機器管理部
1126 一時画像保存部
1127 画像処理ワークフロー制御部
1128 ログ収集部
1131 メッセージキュー
1132 ワーカー
1133 ワーカーフレームワーク
1141 ログ情報記憶部
1142 組織情報記憶部
1143 ユーザ情報記憶部
1144 ライセンス情報記憶部
1145 機器情報記憶部
1146 一時画像記憶部
1147 ジョブ情報記憶部
1148 アプリケーション固有の設定情報記憶部
1500 コンピュータシステム
1501 入力装置
1502 表示装置
1503 外部I/F
1503a 記録媒体
1504 RAM
1505 ROM
1506 CPU
1507 通信I/F
1508 HDD
B バス
FW ファイヤウォール
N1〜N3 ネットワーク
特開2012−226700号公報

Claims (11)

  1. 情報処理の実行要求情報を保持する第1保持手段と、
    一種類以上の情報処理を実行する実行手段と、
    前記第1保持手段が保持する前記実行要求情報の情報処理の種類に応じて、その種類の前記情報処理を実行できる前記実行手段に、前記第1保持手段が保持する前記実行要求情報の情報処理を実行させる実行制御手段と、
    前記実行手段の停止指示を保持する第2保持手段と、
    を有し、
    前記実行制御手段は前記実行手段が前記情報処理を実行していないときに、前記第2保持手段を確認し、前記第2保持手段に停止指示が保持されている前記実行手段に停止処理を行わせること
    を特徴とする情報処理装置。
  2. 前記停止処理は、前記実行手段が起動しているプログラムを開放する処理、前記実行手段が開いているファイルを閉じる処理、前記実行手段が一時的に利用しているファイル格納場所のファイルを削除する処理、のうちの少なくとも一つを実行したあと、前記実行手段を停止させること
    を特徴とする請求項1記載の情報処理装置。
  3. 前記実行制御手段は、前記実行手段が前記情報処理を実行していないとき、所定間隔で前記第2保持手段を確認し、前記実行手段が前記情報処理を実行しているとき、前記情報処理が完了したあとで前記第2保持手段を確認すること
    を特徴とする請求項1又は2記載の情報処理装置。
  4. 前記第2保持手段は、ユーザからの前記実行手段の停止指示を保持すること
    を特徴とする請求項1乃至3何れか一項記載の情報処理装置。
  5. テスト用の前記実行手段を起動させる起動手段
    を更に有し、
    前記実行制御手段は、前記第1保持手段に含まれるテスト用の前記実行要求情報を保持するテスト用保持手段からテスト用の前記実行要求情報を取得し、テスト用の前記実行手段にテスト用の前記実行要求情報の情報処理を実行させること
    を特徴とする請求項1乃至4何れか一項記載の情報処理装置。
  6. テスト用の前記実行要求情報を前記テスト用保持手段に登録させる登録手段と、
    前記テスト用の前記実行手段が実行したテスト用の前記実行要求情報の情報処理の結果を評価する評価手段と
    を更に有すること
    を特徴とする請求項5記載の情報処理装置。
  7. 前記実行制御手段は、テスト用の前記実行手段からテスト用の前記実行要求情報の情報処理の結果を取得すると、テスト用の前記実行要求情報に通知先として指定されている前記評価手段に、テスト用の前記実行要求情報の情報処理の結果を通知すること
    を特徴とする請求項6記載の情報処理装置。
  8. ユーザからのテスト用の前記実行手段の起動指示に応じて、前記起動手段、前記登録手段及び前記評価手段が、テスト用の前記実行手段を起動させる処理、テスト用の前記実行要求情報を前記テスト用保持手段に登録させる処理、テスト用の前記実行手段にテスト用の前記実行要求情報の情報処理を実行させる処理、前記テスト用の前記実行手段が実行したテスト用の前記実行要求情報の情報処理の結果を評価する処理を、自動的に実行することを特徴とする請求項7記載の情報処理装置。
  9. コンピュータを、請求項1乃至8何れか一項に記載の情報処理装置として機能させるためのプログラム。
  10. 複数の情報処理装置を含む情報処理システムであって、
    情報処理の実行要求情報を保持する第1保持手段と、
    一種類以上の情報処理を実行する実行手段と、
    前記第1保持手段が保持する前記実行要求情報の情報処理の種類に応じて、その種類の前記情報処理を実行できる前記実行手段に、前記第1保持手段が保持する前記実行要求情報の情報処理を実行させる実行制御手段と、
    前記実行手段の停止指示を保持する第2保持手段と、
    を有し、
    前記実行制御手段は前記実行手段が前記情報処理を実行していないときに、前記第2保持手段を確認し、前記第2保持手段に停止指示が保持されている前記実行手段に停止処理を行わせること
    を特徴とする情報処理システム。
  11. 複数の情報処理装置を含む情報処理システムが実行する停止方法であって、
    第1の保持手段が情報処理の実行要求情報を保持するステップと、
    実行制御手段が、前記第1保持手段に保持されている前記実行要求情報の情報処理の種類に応じて、その種類の前記情報処理を実行できる実行手段に、前記第1保持手段に保持されている前記実行要求情報の情報処理を実行させるステップと、
    前記実行制御手段が、前記実行手段が前記情報処理を実行していないときに、前記実行手段の停止指示を保持する第2保持手段を確認し、前記第2保持手段に停止指示が保持されている前記実行手段に停止処理を行わせるステップと
    を有することを特徴とする停止方法。
JP2013021263A 2013-02-06 2013-02-06 情報処理装置、情報処理システム、停止方法及びプログラム Pending JP2014153804A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013021263A JP2014153804A (ja) 2013-02-06 2013-02-06 情報処理装置、情報処理システム、停止方法及びプログラム
US14/162,870 US9317396B2 (en) 2013-02-06 2014-01-24 Information processing apparatus including an execution control unit, information processing system having the same, and stop method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013021263A JP2014153804A (ja) 2013-02-06 2013-02-06 情報処理装置、情報処理システム、停止方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2014153804A true JP2014153804A (ja) 2014-08-25

Family

ID=51260339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013021263A Pending JP2014153804A (ja) 2013-02-06 2013-02-06 情報処理装置、情報処理システム、停止方法及びプログラム

Country Status (2)

Country Link
US (1) US9317396B2 (ja)
JP (1) JP2014153804A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037616A (ja) * 2015-08-10 2017-02-16 株式会社リコー 情報処理システム、非優先処理方法、情報処理装置及びプログラム
JP2018072948A (ja) * 2016-10-25 2018-05-10 株式会社リコー 情報処理システム、更新方法、情報処理装置及びプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10348926B2 (en) * 2016-01-20 2019-07-09 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
US10715687B2 (en) 2017-05-29 2020-07-14 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method for testing a series of processes of one or more applications
JP6972838B2 (ja) 2017-09-25 2021-11-24 株式会社リコー 情報処理システム、情報処理装置及び情報処理方法
JP7314491B2 (ja) 2018-09-26 2023-07-26 株式会社リコー 情報処理システム、サービス提供システム、フロー設定方法
JP2022147777A (ja) 2021-03-23 2022-10-06 株式会社リコー データ変換処理システム、データ変換処理方法及びデータ変換処理プログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60201980A (ja) * 1984-03-27 1985-10-12 Fuji Xerox Co Ltd プリンタの制御方法
JPH07152689A (ja) * 1993-11-30 1995-06-16 Kobe Nippon Denki Software Kk 一時ファイル管理装置
JPH0981430A (ja) * 1995-09-05 1997-03-28 Internatl Business Mach Corp <Ibm> ファイル・システム
JP2001056799A (ja) * 1999-06-09 2001-02-27 Fuji Photo Film Co Ltd 処理実行方法、及びクライアントサーバシステム
JP2002251290A (ja) * 2000-12-20 2002-09-06 Fujitsu Ltd 業務入替方法、業務入替プログラム、業務入替システムおよび記録媒体
JP2007082078A (ja) * 2005-09-16 2007-03-29 Toshiba Corp データ中継装置
JP2007334471A (ja) * 2006-06-13 2007-12-27 Konica Minolta Business Technologies Inc プログラム更新管理装置
JP2008250427A (ja) * 2007-03-29 2008-10-16 Japan Research Institute Ltd 情報処理システムに用いられるバージョンアップ装置及び該装置を備えた情報処理システム並びに情報処理システムをバージョンアップするためのプログラム
WO2008126221A1 (ja) * 2007-03-29 2008-10-23 Fujitsu Limited ソフトウェア修正管理プログラム、ソフトウェア修正管理装置、およびソフトウェア修正管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471564A (en) * 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
US6976072B2 (en) * 2001-03-30 2005-12-13 Sharp Laboratories Of America, Inc. Method and apparatus for managing job queues
JP2004195972A (ja) * 2002-12-06 2004-07-15 Hitachi Printing Solutions Ltd 印刷装置、プログラム及び記憶媒体
US7312887B2 (en) * 2003-01-03 2007-12-25 Toshiba Corporation Internet print protocol print dispatch server
JP4306367B2 (ja) * 2003-08-11 2009-07-29 富士ゼロックス株式会社 画像処理装置
JP3861868B2 (ja) * 2003-09-22 2006-12-27 ブラザー工業株式会社 ジョブ管理装置、ジョブ管理プログラム、およびそれらを備えた画像形成装置
US7948643B2 (en) * 2004-02-27 2011-05-24 Canon Kabushiki Kaisha Information processing apparatus, method for enhancing print function, computer-readable program for enhancing print function, printer, print method, and print system
JP5004320B2 (ja) * 2006-02-15 2012-08-22 キヤノン株式会社 ジョブ処理装置、ジョブ処理方法及びプログラム
JP4197188B2 (ja) * 2006-12-28 2008-12-17 キヤノンマーケティングジャパン株式会社 印刷管理サーバ、印刷システム、印刷管理サーバの制御方法、印刷システムの制御方法、およびプログラム
US20090249346A1 (en) * 2008-03-27 2009-10-01 Toru Harada Image forming apparatus, information processing apparatus and information processing method
KR101432632B1 (ko) * 2008-07-30 2014-08-25 삼성전자주식회사 워크플로우 재실행 방법 및 워크플로우 재실행이 가능한화상형성장치
JP2010147790A (ja) * 2008-12-18 2010-07-01 Canon Inc 装置、方法、プログラム及び記憶媒体
JP4695202B2 (ja) * 2009-02-24 2011-06-08 シャープ株式会社 制御装置、画像出力装置、画像出力装置の制御方法、プログラム、記録媒体
US8477350B2 (en) * 2010-03-16 2013-07-02 Google Inc. Cloud-based print service
JP2012226700A (ja) 2011-04-22 2012-11-15 Canon Inc 印刷システム、印刷中継サーバー、印刷中継サーバーを制御する制御方法、およびそのプログラム。
JP2013178748A (ja) 2012-02-01 2013-09-09 Ricoh Co Ltd 情報処理装置、プログラム、情報処理システム及びデータ変換処理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60201980A (ja) * 1984-03-27 1985-10-12 Fuji Xerox Co Ltd プリンタの制御方法
JPH07152689A (ja) * 1993-11-30 1995-06-16 Kobe Nippon Denki Software Kk 一時ファイル管理装置
JPH0981430A (ja) * 1995-09-05 1997-03-28 Internatl Business Mach Corp <Ibm> ファイル・システム
JP2001056799A (ja) * 1999-06-09 2001-02-27 Fuji Photo Film Co Ltd 処理実行方法、及びクライアントサーバシステム
JP2002251290A (ja) * 2000-12-20 2002-09-06 Fujitsu Ltd 業務入替方法、業務入替プログラム、業務入替システムおよび記録媒体
JP2007082078A (ja) * 2005-09-16 2007-03-29 Toshiba Corp データ中継装置
JP2007334471A (ja) * 2006-06-13 2007-12-27 Konica Minolta Business Technologies Inc プログラム更新管理装置
JP2008250427A (ja) * 2007-03-29 2008-10-16 Japan Research Institute Ltd 情報処理システムに用いられるバージョンアップ装置及び該装置を備えた情報処理システム並びに情報処理システムをバージョンアップするためのプログラム
WO2008126221A1 (ja) * 2007-03-29 2008-10-23 Fujitsu Limited ソフトウェア修正管理プログラム、ソフトウェア修正管理装置、およびソフトウェア修正管理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037616A (ja) * 2015-08-10 2017-02-16 株式会社リコー 情報処理システム、非優先処理方法、情報処理装置及びプログラム
JP2018072948A (ja) * 2016-10-25 2018-05-10 株式会社リコー 情報処理システム、更新方法、情報処理装置及びプログラム
US10621070B2 (en) 2016-10-25 2020-04-14 Ricoh Company, Ltd. Information processing system and updating method

Also Published As

Publication number Publication date
US9317396B2 (en) 2016-04-19
US20140223150A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
JP2014153804A (ja) 情報処理装置、情報処理システム、停止方法及びプログラム
JP6291826B2 (ja) 情報処理システム及びライセンス管理方法
US9659154B2 (en) Information processing system, information processing apparatus, method of administrating license, and program
CN109983751B (zh) 管理设备的管理服务迁移
JP6357780B2 (ja) ネットワークシステム及び情報通知方法
US9514291B2 (en) Information processing system, information processing device, and authentication information management method
US10291620B2 (en) Information processing apparatus, terminal apparatus, program, and information processing system for collaborative use of authentication information between shared services
JP2016091115A (ja) 情報処理システム、情報処理装置、アカウント登録方法及びプログラム
JP6848340B2 (ja) 情報処理システム、更新方法、情報処理装置及びプログラム
JP2014149809A (ja) 情報処理システム、情報処理装置、プログラム及び処理実行方法
JP6427880B2 (ja) 情報処理システム、情報処理装置及びプログラム
JP6927282B2 (ja) 情報処理装置、端末装置、プログラム及び情報処理システム
JP6582841B2 (ja) サービス提供システム、情報処理装置、プログラム及び情報処理システム
JP6183035B2 (ja) サービス提供システム、サービス提供方法及びプログラム
US20170134615A1 (en) Information processing system, information processing apparatus, and information processing method
US20180270246A1 (en) Information processing system, information processing apparatus, and information processing method
US10243924B2 (en) Service providing system, service providing method, and information processing apparatus
JP5991143B2 (ja) 情報処理装置、システム及び情報登録方法
JP6716899B2 (ja) 情報処理システム、情報処理装置及びプログラム
US20170078509A1 (en) Information processing system and information processing method
JP6773173B2 (ja) 情報処理システム、情報処理装置、アカウント登録方法及びプログラム
JP6747047B2 (ja) 情報処理システム、ログイン方法、情報処理装置及びプログラム
JP2018081572A (ja) サービス提供システム、情報処理装置、プログラム及び情報処理システム
JP2017041221A (ja) サービス提供システム、サービス提供方法、情報処理装置及びプログラム
JP6863128B2 (ja) 情報処理装置、情報処理システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170303

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170808