JP2012104063A - サービス処理装置、サービス処理システム及びプログラム - Google Patents

サービス処理装置、サービス処理システム及びプログラム Download PDF

Info

Publication number
JP2012104063A
JP2012104063A JP2010254223A JP2010254223A JP2012104063A JP 2012104063 A JP2012104063 A JP 2012104063A JP 2010254223 A JP2010254223 A JP 2010254223A JP 2010254223 A JP2010254223 A JP 2010254223A JP 2012104063 A JP2012104063 A JP 2012104063A
Authority
JP
Japan
Prior art keywords
processing
service
module
information
image processing
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.)
Withdrawn
Application number
JP2010254223A
Other languages
English (en)
Inventor
Masanori Onda
昌徳 恩田
Riyouko Usuha
亮子 薄葉
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2010254223A priority Critical patent/JP2012104063A/ja
Priority to US13/103,537 priority patent/US8468232B2/en
Publication of JP2012104063A publication Critical patent/JP2012104063A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】サービスを処理する際に利用するモジュールのうち、自装置及び自装置と連携して動作可能な画像処理装置のいずれにも搭載されていないモジュールを、処理負荷並びに当該サービス以外のサービスの処理まで考慮してサービス処理装置に配置する。
【解決手段】処理要求のあったサービスを処理する際に利用するモジュールのうち画像処理装置1,6のいずれにも搭載されていないモジュールが存在する場合、そのモジュールを利用するサービスについて、当該モジュールを搭載可能な画像処理装置6に搭載したときの処理コストを算出する処理コスト算出部15と、処理コストが最小となる画像処理装置6を、当該モジュールを利用した処理の実行依頼先として決定する依頼先決定部13と、実行依頼先の画像処理装置6に当該モジュールが搭載されていない場合に当該画像処理装置6に当該モジュールを搭載するモジュール配置部16と、を有する。
【選択図】図3

Description

本発明は、サービス処理装置、サービス処理システム及びプログラムに関する。
ネットワークを介して互いに通信可能なデータ処理装置が連携し、データ処理を行う技術が知られている。
例えば、特許文献1には、自コンピュータから他のコンピュータへ処理対象のデータを転送し、他のコンピュータでデータ処理を実施させ、その処理の結果を受け取るか、あるいは他のコンピュータからデータ処理を行うためのプログラムを取得して自コンピュータでデータ処理を行うかを、各コンピュータの稼働状況から決定する技術が開示されている。
また特許文献2には、プログラムのようなサービス資源を、サーバの処理能力や通信網の輻輳を考慮して複数サーバに配置する技術が開示されている。
特開2002−99521号公報 特開平9−244979号公報
本発明は、サービスを処理する際に利用するモジュールのうち、自装置及び自装置と連携して動作可能なサービス処理装置のいずれにも搭載されていないモジュールを、処理負荷並びに当該サービス以外のサービスの処理まで考慮してサービス処理装置に配置することを目的とする。
本発明に係るサービス処理装置は、サービスの処理要求を受け付ける受付手段と、要求されたサービスを処理する際に必要な1又は複数の処理機能を実現する1又は複数のモジュールを識別する情報を少なくとも含むサービス構成情報を取得する手段と、自装置及びサービスを処理する際に自装置と連携して動作可能な1又は複数の他のサービス処理装置それぞれについて、搭載されたモジュールを識別する情報と処理能力を表す情報とを少なくとも含む処理能力管理情報を取得する手段と、搭載されたモジュールを利用してサービスを処理する処理手段と、前記サービス構成情報を参照して、処理要求のあったサービスを処理する際に利用するモジュールのうち自他を含む前記サービス処理装置のいずれにも搭載されていないモジュールが存在する場合、前記処理能力管理情報を参照することによって、自他を含む前記サービス処理装置の中から当該いずれにも搭載されていないモジュールを搭載可能なサービス処理装置を選出する選出手段と、前記サービス構成情報を参照することにより、当該いずれにも搭載されていないモジュールを利用するサービスを選出し、その選出した各サービスを処理する際に利用されるモジュールの前記自他を含む前記サービス処理装置への搭載状況に応じてその抽出したサービスの中から処理負荷の算出対象とするサービスを絞り込み、その絞り込んだサービスを処理する際に前記選出手段により選出されたサービス処理装置それぞれに当該いずれにも搭載されていないモジュールを搭載した場合における処理負荷を算出し、その処理負荷を算出した結果、処理負荷が最小となるサービス処理装置を、当該いずれにも搭載されていないモジュールを利用した処理の依頼先として決定する決定手段と、前記決定手段により決定されたサービス処理装置に当該いずれにも搭載されていないモジュールが搭載されていない場合には当該サービス処理装置に当該モジュールを搭載すると共に、当該サービス処理装置に搭載したモジュールを識別する情報を設定することで前記処理能力管理情報を更新する搭載手段と、を有することを特徴とする。
また、前記決定手段は、自装置に搭載されていないモジュールが前記他のサービス処理装置のいずれかに搭載されている場合、当該モジュールが搭載されている前記他のサービス処理装置を、当該自装置に搭載されていないモジュールを利用した処理の依頼先として決定することを特徴とする。
また、モジュール毎に、当該モジュールの取得先を特定する情報を少なくとも含むモジュール管理情報を取得する手段を有し、前記搭載手段は、前記決定手段により決定されたサービス処理装置に搭載モジュールを、前記モジュール管理情報により特定される取得先から取得することを特徴とする。
本発明に係るサービス処理システムは、複数のサービス処理装置と、サービスを処理する際に必要な1又は複数の処理機能を実現する1又は複数のモジュールを識別する情報を少なくとも含むサービス構成情報を記憶するサービス構成情報記憶装置と、前記サービス処理装置毎に、当該サービス処理装置に搭載されたモジュールを識別する情報と処理能力を表す情報とを少なくとも含む処理能力管理情報を記憶する処理能力管理情報記憶装置と、を有し、前記各サービス処理装置は、サービスの処理要求を受け付ける受付手段と、前記サービス構成情報記憶装置からサービス構成情報を取得する手段と、前記処理能力管理情報記憶装置から処理能力管理情報を取得する手段と、処理要求のあったサービスを実行する際に利用するモジュールが搭載された他の前記サービス処理装置と連携しながら要求されたサービスを処理する処理手段と、前記サービス構成情報を参照して、処理要求のあったサービスを処理する際に利用するモジュールのうち前記サービス処理装置のいずれにも搭載されていないモジュールが存在する場合、前記処理能力管理情報を参照することによって、前記サービス処理装置の中から当該いずれにも搭載されていないモジュールを搭載可能なサービス処理装置を選出する選出手段と、前記サービス構成情報を参照して当該いずれにも搭載されていないモジュールを利用するサービスを選出し、その選出した各サービスを処理する際に利用されるモジュールの前記サービス処理装置への搭載状況に応じてその抽出したサービスの中から処理負荷を算出対象とするサービスを絞り込み、その絞り込んだサービスを処理する際に前記選出手段により選出されたサービス処理装置それぞれに当該いずれにも搭載されていないモジュールを搭載した場合における処理負荷を算出し、その処理負荷を算出した結果、処理負荷が最小となるサービス処理装置を、当該いずれにも搭載されていないモジュールを利用した処理の依頼先として決定する決定手段と、前記決定手段により決定されたサービス処理装置に当該いずれにも搭載されていないモジュールが搭載されていない場合には当該サービス処理装置に当該モジュールを搭載すると共に、当該サービス処理装置に搭載したモジュールを識別する情報を設定することで前記処理能力管理情報を更新する搭載手段と、を有することを特徴とする。
また、前記サービス処理装置からの要求に応じて前記各記憶装置を記憶された各情報の読み出し、及び書き込みを一括して行う管理装置を有することを特徴とする。
本発明に係るプログラムは、サービス処理装置に搭載されるコンピュータを、サービスの処理要求を受け付ける受付手段、要求されたサービスを処理する際に必要な1又は複数の処理機能を実現する1又は複数のモジュールを識別する情報を少なくとも含むサービス構成情報を取得する手段、自装置及びサービスを処理する際に自装置と連携して動作可能な1又は複数の他のサービス処理装置それぞれについて、搭載されたモジュールを識別する情報と処理能力を表す情報とを少なくとも含む処理能力管理情報を取得する手段、搭載されたモジュールを利用してサービスを処理する処理手段、前記サービス構成情報を参照して、処理要求のあったサービスを処理する際に利用するモジュールのうち自他を含む前記サービス処理装置のいずれにも搭載されていないモジュールが存在する場合、前記処理能力管理情報を参照することによって、自他を含む前記サービス処理装置の中から当該いずれにも搭載されていないモジュールを搭載可能なサービス処理装置を選出する選出手段、前記サービス構成情報を参照することにより、当該いずれにも搭載されていないモジュールを利用するサービスを選出し、その選出した各サービスを処理する際に利用されるモジュールの前記自他を含む前記サービス処理装置への搭載状況に応じてその抽出したサービスの中から処理負荷の算出対象とするサービスを絞り込み、その絞り込んだサービスを処理する際に前記選出手段により選出されたサービス処理装置それぞれに当該いずれにも搭載されていないモジュールを搭載した場合における処理負荷を算出し、その処理負荷を算出した結果、処理負荷が最小となるサービス処理装置を、当該いずれにも搭載されていないモジュールを利用した処理の依頼先として決定する決定手段、前記決定手段により決定されたサービス処理装置に当該いずれにも搭載されていないモジュールが搭載されていない場合には当該サービス処理装置に当該モジュールを搭載すると共に、当該サービス処理装置に搭載したモジュールを識別する情報を設定することで前記処理能力管理情報を更新する搭載手段、として機能させるためのものである。
請求項1記載の発明によれば、自装置及び自装置と連携して動作可能なサービス処理装置のいずれにも搭載されていないモジュールを、処理負荷並びに当該サービス以外のサービスの処理まで考慮してサービス処理装置に配置することができる。
請求項2記載の発明によれば、他のサービス処理装置に搭載されているモジュールを有効利用することができる。
請求項3記載の発明によれば、自装置に搭載されていないモジュールを、指定された取得先から取得させることができる。
請求項4記載の発明によれば、自装置及び自装置と連携して動作可能なサービス処理装置のいずれにも搭載されていないモジュールを、処理負荷並びに当該サービス以外のサービスの処理まで考慮してサービス処理装置に配置することができる。
請求項5記載の発明によれば、管理装置を用いてサービス処理システムで用いる情報を集約して管理することができる。
請求項6記載の発明によれば、自装置及び自装置と連携して動作可能なサービス処理装置のいずれにも搭載されていないモジュールを、処理負荷並びに当該サービス以外のサービスの処理まで考慮してサービス処理装置に配置することができる。
本発明に係るサービス処理システムの一実施の形態を示した全体構成図である。 実施の形態1における画像処理装置のハードウェア構成の一例を示した図である。 実施の形態1における画像処理装置のブロック構成図である。 実施の形態1におけるサービス構成情報のデータ構成の一例を示した図である。 実施の形態1における処理能力管理情報のデータ構成の一例を示した図である。 実施の形態1におけるモジュール管理情報のデータ構成の一例を示した図である。 実施の形態1における実行コスト情報のデータ構成の一例を示した図である。 実施の形態1における通信コスト情報のデータ構成の一例を示した図である。 実施の形態1においてサービスを実行する処理を示したフローチャートである。 実施の形態1における処理コストの算出処理を示したフローチャートである。 実施の形態1において画像データの種類ごとに予め用意した実行コスト計算関数を管理する管理テーブルを示した図である。 実施の形態1においてサービスの処理の実行要求を受け付けた時点の各画像処理装置の状態を示した概念図である。 図12に示した状態からサービス依頼を受け付けて処理するために必要なモジュールをダウンロードした時点の各画像処理装置の状態を示した概念図である。 実施の形態2におけるサービス処理システムの全体構成図である。 実施の形態3においてサービスを実行する処理を示したフローチャートである。
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
実施の形態1.
図1は、本発明に係るサービス処理システムの一実施の形態を示した全体構成図である。図1には、画像処理装置1とクラウド2とがファイアウォール(FW)3及びネットワーク4を介して接続された構成が示されている。画像処理装置1は、データ処理装置のうち、主に画像データを取り扱うデータ処理装置の一形態であり、本発明のサービス処理装置の一例として示されている。本実施の形態における画像処理装置1は、スキャナ機能、印刷機能等複数の機能を有する装置であり、受け付けたサービスを提供する際に実行する処理機能の全部又は一部を自ら実行し、あるいは他の画像処理装置1に実行を依頼する。クラウド2は、クラウド・コンピューティングを省略した呼称であり、画像処理装置1からのダウンロード要求に応じてサービスをする際に利用するモジュールを指定された画像処理装置1にダウンロードする。クラウド2には、モジュールを搭載した図示しない複数のサーバ等が含まれている。画像処理装置1は、また他の画像処理装置1とネットワーク5を介して相互に通信可能に接続されている。ネットワーク5は、イントラネットのようにセキュアな通信を行うことができるネットワークであることが望ましいが、これに限られるものではない。また、ネットワーク4は、一般的な商用クラウドサービスとの接続を想定していることから、インターネットを想定しているが、これに限られるものではない。なお、ネットワーク4,5は、便宜的に1つで構成しているが、画像処理装置1がクラウド2にアクセス可能であれば、ネットワーク4の接続形態も図1に示した例に限定されるものではない。
ここで、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールは、コンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。ただ、後述する説明から明らかなように、本実施の形態では、サービスを処理する際に利用するモジュールをクラウド2からダウンロードにより取得する。つまり、本実施の形態では、コンピュータ・プログラムにおけるモジュールを例にして説明している。モジュールは、機能に1対1に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数のモジュールを1プログラムで構成してもよいし、1モジュールを複数のプログラムで構成してもよい。
また、サービスとは、ソフトウェアやハードウェアによって提供される何らかの情報処理機能を意味し、サービスを処理する際に必要な1又は複数の処理機能は1以上のモジュール(ソフトウェア部品であってもハードウェア部品であっても構わない)を用いて実現される。実装においては、1サービスは1又は複数のモジュールで構成される。本実施の形態においては、サービスを処理する際に1又は複数のモジュールにより1又は複数の処理機能を実行することを「サービス処理の実行」と称したりする。
図2は、本実施の形態における画像処理装置1のハードウェア構成の一例を示した図である。画像処理装置1は、上記の通り各種機能を搭載した装置であり、コンピュータを内蔵した装置である。図2において、CPU21は、ROM26に格納されたプログラムにしたがってIIT(Image Input Terminal)23やIOT(Image Output Terminal)24等本装置に搭載された各種機構の動作制御を行う。IIT23は、画像入力装置のことをいい、ユーザがセットした原稿を読み取り、電子データとしてHDD(Hard Disk Drive)28等に蓄積する。IIT23は、例えばスキャナにより実現してもよい。IOT24は、画像出力装置のことをいい、CPU21で実行される制御プログラムからの指示に従い出力用紙上に画像を印字する。IOT24は、例えばプリンタにより実現してもよい。アドレスデータバス30は、CPU21の制御対象となる各種機構と接続してデータの通信を行う。操作パネル22は、ユーザからの指示の受け付け、情報の表示を行う。本実施の形態では、操作パネル22からの入力に応じてサービスの内容が設定され、所定の操作に応じてサービスの処理要求が発せられる。IPS(Image Processing System)25は、画像処理装置のことをいい、受け付けられたサービスに画像処理を含むサービスが含まれていた場合にはその画像処理を実行する。ROM(Read Only Memory)26は、本装置の制御やサービスに関する各種プログラムが格納されている。各種プログラムが実行されることで後述する各構成要素が所定の処理機能を発揮する。RAM(Random Access Memory)27は、プログラム実行時のワークメモリや電子データ送受信時の通信バッファとして利用される。HDD28は、IIT23を使用して読み取った電子文書などを格納する。ネットワークインタフェース(I/F)29は、ネットワーク5を接続し、本装置からのモジュールのダウンロード要求や実行要求の送信、ダウンロードされてきたモジュールの受信、またブラウザ経由による本装置へのアクセスなどに利用される。本実施の形態では、他の画像処理装置1やクラウド2との間で情報交換を行う際に用いられる。
図3は、本実施の形態における画像処理装置1のブロック構成図である。なお、図3において、画像処理装置6は、画像処理装置1と同様の構成を有する装置であるが、画像処理装置1と連携して動作する「他の」画像処理装置であることを明確にするために異なる符号を付けている。また、画像処理装置1と連携して動作する他の画像処理装置6は、1又は複数台存在しうるが、ここでは、1台の画像処理装置6のみを代表させて図示している。
本実施の形態における画像処理装置1は、サービス処理要求受付部11、情報管理部12、処理依頼先決定部13、装置連携動作制御部14、処理コスト算出部15、モジュール配置部16、クラウド連携動作制御部17、サービス処理部18及び情報記憶部19を有している。
サービス処理要求受付部11は、画像処理装置1に対して処理を要求するサービスの実行要求を受け付ける。サービスの実行要求(「サービス処理要求」ともいう)は、操作者が画像処理装置1の操作パネル22から所望のサービスを選択することで発生したり、ネットワーク4またはネットワーク5を介して図示しないクライアントコンピュータから送信されてくる。
情報管理部12は、情報記憶部19に記憶されている各種情報の管理を行う。具体的には、サービス構成情報、処理能力管理情報、モジュール管理情報、実行コスト情報及び通信コスト情報などであるが、これらの情報については追って説明する。また、その他にも画像処理装置間のデータ通信速度等、後述する処理において必要な情報を情報記憶部19を用いて管理する。なお、データ通信速度に関する情報は、予め設定した値でもよいし、特開2004−38972号公報に開示された技術を用いて測定した値でもよい。
処理依頼先決定部13は、情報管理部12が管理する情報を参照することによってサービス処理要求受付部11が受け付けたサービスを処理する際に利用されるモジュールが搭載されている画像処理装置1,6を特定する。また、サービス処理の実行に必要なモジュールのうち、画像処理装置1及び画像処理装置6のいずれにも搭載されていないモジュールが存在する場合、後述するモジュール配置部16によってモジュールをダウンロードし起動可能とした画像処理装置を当該モジュールの処理依頼先として決定する。
装置連携動作制御部14は、ネットワーク5に接続されている他の画像処理装置6への処理依頼やモジュールのダウンロードを実行する。ここでいう処理依頼は、サービス処理要求受付部11が受け付けたサービスそのものの処理依頼であったり、当該受け付けたサービスを処理するために必要なモジュールのうち、画像処理装置1に搭載されていないモジュールを用いた当該受け付けたサービスの一部、つまり当該モジュールに対する処理依頼である。また、装置連携動作制御部14は、画像処理装置6から処理依頼やモジュールのダウンロード依頼を受け付ける。
処理コスト算出部15は、情報管理部12が管理するコストに関する情報を参照して処理コストを算出する。ここでいうコストに関する情報とは、実行コスト情報及び通信コスト情報のことであり、処理コストは、サービス処理要求受付部11が受け付けたサービスを構成する各モジュールの演算量に基づいて算出するモジュールの実行コストと、画像処理装置間(この場合は画像処理装置1と画像処理装置6の間)のデータ通信速度に基づいて算出する通信コストとの和により求められる。なお、本実施の形態では、「コスト」を「負荷」と同義の語として用いている。
ここで、データ通信速度を考慮するのは、複数のモジュールで順次処理を行うことで機能を提供するサービスでは、当該サービスを構成する複数のモジュールを所定の順序で実行する必要があり、当該サービスを構成する複数のモジュールが複数の画像処理装置に分散して搭載されている可能性がある場合には、一のモジュールによる処理結果をネットワーク5を介して他の画像処理装置に送信する必要が生じるからである。したがって、サービスが複数のモジュールから構成され、かつこれら複数のモジュールが複数の画像処理装置に分散して搭載されているときは、モジュール間の通信経路を考慮して通信コストを計算する必要がある。なお、処理コストの具体的な計算については後述する。
モジュール配置部16は、後述する特定の条件を満たし、サービス処理要求受付部11が受け付けたサービスを処理するために必要でありかつ画像処理装置1に搭載されていないモジュールを配置可能な画像処理装置(ここでは画像処理装置1または画像処理装置6、もしくはその両方)に対し、当該必要なモジュールをクラウド2等からダウンロードすることで、当該画像処理装置において当該モジュールを利用可能な状態にする。当該必要なモジュールが配置可能な画像処理装置が複数存在する場合、処理コスト算出部15により算出された処理コストが最小となる画像処理装置に決定する。
クラウド連携動作制御部17は、クラウド2から必要なモジュールをダウンロードする機能を実現する。本実施の形態では、クラウド2は、ファイルサーバとして機能するものとして説明をしているが、クラウド2が計算資源を提供する場合には、連携動作可能な画像処理装置1に搭載されていないモジュールの処理の実行をクラウド2に依頼するようにしてもよい。
サービス処理部18は、画像処理装置1において実行すべきサービス処理を実行する。具体的には、要求されたサービスのうち、画像処理装置1に搭載されているモジュールを利用して実行すべきサービスの全部又は一部分を実行する。
画像処理装置1における各構成要素11〜18は、画像処理装置1に内蔵されているコンピュータと、コンピュータに搭載されたCPU21で動作するプログラムとの協調動作により実現される。また、情報記憶部19は、画像処理装置1に搭載されたHDD28にて実現される。なお、情報記憶部19は、複数台のHDD28で実現してもよい。あるいは、画像処理装置1の内部に持たせずに、ネットワーク経由でアクセス可能なコンピュータに搭載し、これをアクセスするように構成してもよい。
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD−ROMやDVD−ROM等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがインストールプログラムを順次実行することで各種処理が実現される。
図4は、本実施の形態におけるサービス構成情報のデータ構成の一例を示した図である。サービス構成情報は、サービス毎に、当該サービスを識別する情報としてのサービス名と当該サービスを処理する際に利用されるモジュールとを対応して構成される。本実施の形態では、各サービスにおいて、モジュールの実行順も管理可能なようにテーブル形式にて情報が管理されている。なお、管理テーブル上、サービスが利用しないモジュールに対応する位置は“−”にて図示している。図4に示したデータ設定例によると、例えば、サービスSV1を処理するためにはモジュールAが必要であることを示している。また、サービスSV4を処理するためにはモジュールC,E,Fを必要とし、そして、モジュールC→F→Eの順番で実行されることを示している。サービス構成情報は、本実施の形態を動作させる前に予め設定されている。
図5は、本実施の形態における処理能力管理情報のデータ構成の一例を示した図である。処理能力管理情報は、連携して動作可能な画像処理装置群に含まれている画像処理装置毎に、当該画像処理装置を識別する情報(図5では“α”,“β”,“γ”,“δ”)、当該画像処理装置におけるHDD28(RAM27でもよい)の空き容量[MB]、処理能力を表す指標データ及び当該画像処理装置に搭載されているモジュールを識別する情報としてのモジュール名を対応して構成される。なお、画像処理装置にモジュールが何も搭載されていない場合には、“−”にて図示している。なお、画像処理装置には、複数のモジュールが搭載可能である。処理能力管理情報において、空き容量と処理能力は、当該画像処理装置にHDD28及びCPU21の仕様に基づき初期値が予め設定され、搭載モジュールには、予めダウンロードされているモジュールが予め設定される。そして、後述するように、各画像処理装置の利用状況によって、各値が更新される。
図6は、本実施の形態におけるモジュール管理情報のデータ構成の一例を示した図である。モジュール管理情報は、モジュール毎に、当該モジュールを識別する情報としてのモジュール名、当該モジュールの大きさを表すプログラム容量、演算の数量を表す演算量、当該モジュールが搭載されダウンロードの要求先となる画像処理装置を識別するための搭載先画像処理装置及び当該モジュールが格納されている場所を特定する格納先情報を対応して構成される。このうち、搭載先画像処理装置は、当該モジュールが実際に搭載されている画像処理装置の識別情報ではなく、上記の通り当該モジュールのダウンロードの要求先となる画像処理装置を識別するための情報であり、ただ1つの識別情報が設定される。もちろん、ダウンロードの要求先として複数の画像処理装置を用意しておくならば、複数の画像処理装置の識別情報を設定するようにしてもよい。格納先情報は、本実施の形態においてはURL(Uniform Resource Locator)を指定するようにしており、このURLで特定される場所は、搭載先画像処理装置における当該モジュールの格納場所である。なお、搭載先画像処理装置において、ダウンロードの要求先となる画像処理装置が存在しない場合には、“−”にて図示している。従って、搭載先画像処理装置が存在せずに格納先情報に設定されているURLは、クラウド2に含まれているサーバにおける当該モジュールの格納先を特定するための情報である。つまり、当該モジュールのダウンロード先としてクラウド2が指定されていることを意味している。モジュール管理情報において、プログラム容量と演算量は、予め設定される情報であり、搭載先画像処理装置には、モジュールが予めダウンロードされダウンロードの要求先と指定可能であれば、その画像処理装置の識別情報が予め設定される。また、格納先情報には、クラウド2又は画像処理装置における当該モジュールのURLが予め設定される。そして、後述するように、搭載先画像処理装置及び格納先情報は、当該モジュールがダウンロードされることで更新されうる情報である。
図7は、本実施の形態における実行コスト情報のデータ構成の一例を示した図である。実行コスト情報には、連携して動作可能な画像処理装置群に含まれている画像処理装置毎に、当該画像処理装置(図7では“α”,“β”,“γ”,“δ”)で各モジュール(図7では“A”,“B”,“C”)を実行させたときの処理時間の比率が実行コストとして予め設定されている。あるいは、実行コストを、図6に示したモジュール管理情報に含まれるモジュールごとの演算量を参照して、各モジュールの演算量データを取得するとともに、図5に示した処理装置能力管理情報を参照して各モジュールを搭載する画像処理装置の処理能力に関する処理能力データを取得し、演算量データを処理能力データで除することによって求めてもよい。
図8は、本実施の形態における通信コスト情報のデータ構成の一例を示した図である。通信コスト情報には、連携して動作可能な画像処理装置群に含まれている画像処理装置毎に、各画像処理装置(図7では“α”,“β”,“γ”,“δ”)間を接続するネットワークのデータ通信速度の最大値で正規化した値が通信コストとして予め設定されている。データ通信速度は、予め設定した固定値とする必要はなく、データ通信試験を行って得られた実測値としてもよい。
次に、本実施の形態における動作について説明する。まず、本実施の形態においてサービスを実行する処理について図9に示したフローチャートを用いて説明する。
画像処理装置1におけるサービス処理要求受付部11によってサービス処理要求を受け付けると(ステップ101)、処理依頼先決定部13は、受け付けたサービスを処理するために必要なモジュールを認識するために図4に示したサービス構成情報を情報管理部12から取得する(ステップ102)。
続いて、処理依頼先決定部13は、画像処理装置1及び画像処理装置1と連携して動作可能な画像処理装置6に搭載されているモジュールを識別するモジュール識別情報を情報管理部12から取得する。具体的には、図5に示した“搭載モジュール”に設定されているモジュールの識別情報を取得する。そして、サービス構成情報と照らし合わせることにより、当該サービスを受け付けた画像処理装置1において、当該サービスを処理するために不足するモジュール、すなわち受け付けたサービスを処理する際に利用するモジュールのうち画像処理装置1に搭載されていないモジュールがあるかどうかを判定する。
搭載されていないモジュール(以下、「不足モジュール」ともいう)がない場合(ステップS103でN)、受け付けたサービスを処理する際に利用するモジュールの全てが画像処理装置1に搭載されており、画像処理装置1は、クラウド2からモジュールを新たにダウンロードする必要がないので、処理依頼先決定部13は、サービス処理の実行依頼先を画像処理装置1、すなわち自装置と特定する。そして、サービス処理部18は、受け付けたサービス処理を単独で実行する(ステップ111)。
一方、不足モジュールがある場合(ステップS103でY)、モジュール配置部16は、サービス依頼を受け付けている画像処理装置1以外の画像処理装置6に搭載されているモジュールの識別情報(図5に示した“搭載モジュール”に設定されている情報)を参照して特定する(ステップ104)。
画像処理装置6に不足モジュールが搭載されている場合(ステップ105でY)、処理依頼先決定部13は、サービス処理のうち当該モジュールの実行依頼先を画像処理装置6と特定する。この結果、画像処理装置1は、画像処理装置6と連携してサービス処理を実行する(ステップ111)。
不足モジュールが画像処理装置6にも搭載されていない場合(ステップ105でN)、処理コスト算出部15は、モジュール識別情報に示された画像処理装置1と画像処理装置6に搭載されているモジュールと、新たにダウンロードすべき不足モジュールを加えることで対応可能となるサービスを構成する各モジュールとを、順次処理を実行していく場合の処理時間に関する実行コストと、各モジュールの処理結果を次に処理を実行すべきモジュールを搭載した画像処理装置に送信する場合の通信時間に関する通信コストをそれぞれ算出し、実行コストと通信コストとの和を求めることで処理コストを算出する(ステップ106)。なお、処理コストの計算の詳細については後述する。そして、モジュール配置部16は、処理コストが最小となる場合の当該不足モジュール配置先に当たる画像処理装置を、当該不足モジュールの搭載先として決定する(ステップ107)。
続いて、装置連携動作制御部14は、モジュール配置部16からの指示に従い、不足モジュールの搭載先として決定した画像処理装置6に対し、図6に示したモジュール管理情報の格納先情報により特定される格納先に格納されている当該不足モジュールをダウンロードするとともに利用可能とするよう、依頼する(ステップ108)。これにより、処理依頼先決定部13は、当該画像処理装置6を当該モジュールの実行依頼先として特定する。
以上のようにして、画像処理装置6に不足モジュールが搭載されると、モジュール配置部16は、情報管理部12に指示することで、図5に示した処理能力管理情報において画像処理装置6に対応する搭載モジュールに、搭載したモジュールの識別情報を登録すると共に(ステップ109)、図6に示したモジュール管理情報の搭載先画像処理装置に画像処理装置6の識別情報を、格納先情報に不足モジュールが格納された場所を特定するURLを登録する(ステップ110)。
なお、ステップ109と110は逆の順番に実施してもよい。また、ステップ110は、例えば、ライセンスの関係上、画像処理装置に格納されたモジュールプログラムを更に他の画像処理装置にダウンロードできないような場合も想定できるので、このような場合は、当該モジュールをクラウド2から常にダウンロードするためにモジュール管理情報の搭載先画像処理装置及び格納先情報には情報を登録しない。
以上のようにして、受け付けたサービスを処理するモジュールの処理実行先が決定されると、画像処理装置1は、画像処理装置6と連携してサービス処理を実行する(ステップ111)。
ここで、処理コストの計算処理についてさらに詳しく説明する。ここで説明する内容は、図9におけるステップ107の処理の詳細な説明に相当する。
図10は、処理コスト算出部15における処理コストの計算処理を示したフローチャートである。この処理は、図9におけるステップ106の処理の詳細に相当する。
まず、処理コスト算出部15は、サービス依頼を受け付けている画像処理装置1以外の連携動作可能な画像処理装置6について、処理能力管理情報を参照するので、不足モジュールをダウンロードして保存するためのHDD28の空き容量があるかどうかを調べることで、ダウンロード先候補を選択する(ステップ121)。
次に、処理コスト算出部15は、サービス依頼を受け付けている画像処理装置1と画像処理装置1と連携動作可能な画像処理装置6とに搭載されているモジュールと、新たにダウンロードすべき不足モジュールを加えることで、他のモジュールをダウンロードすることなく処理可能となるサービスが他にあるかどうか、図4に例示するサービス構成情報を参照して判定する。
処理可能となるサービスが受け付けたサービスの他にある場合(ステップ122でY)、サービス構成情報をさらに参照し、当該処理可能となるサービスを処理する際に必要となるモジュールの実行順序を特定する。そして図5に示す処理能力管理情報を参照することで、当該処理可能となるサービスを処理する際の、各モジュールの処理結果がどのような順序で画像処理装置間を流れるかを表す実行パスを、不足モジュールのダウンロード候補先ごとに特定する(ステップ123)。
一方、対応可能となるサービスがない場合(ステップ122でN)、サービス処理要求受付部11が受け付けたサービスを処理する際の、各モジュールの処理結果がどのような順序で画像処理装置間を流れるかを表す実行パスを、不足モジュールのダウンロード先候補ごとに特定する(ステップ124)。
ステップ122において、対応可能なサービスが複数存在する場合も想定されるが、各サービスの要求履歴情報を取得することにより、ステップ123においては実行要求の多いサービスについてのみ、実行パスを特定するように絞り込みを行ってもよい。サービスの要求履歴情報を取得することができなくても、例えば、必要とするモジュール数が多いサービスについてのみ、実行パスを特定するようにしてもよい。なお、要求履歴情報に関しては、後述するが、例えば、サービス処理要求受付部11が受け付けて処理されたサービスに関し、実施されたサービスの識別情報、サービス処理要求者、実施開始日時、処理に要した時間等の処理の履歴を保存することで要求履歴情報は生成しうる。
次に、処理コスト算出部15は、連携動作可能な画像処理装置6それぞれに搭載され、サービスを処理するために必要とされるモジュールの実行コストを計算する(ステップ125)。画像データを扱う画像処理装置において、実行コストは、一般に画像データの画素数や大きさ、または1画素当たりの階調数等の画像属性に依存している。一方、通信コストは、画像データのデータ量に依存する。また、モジュールの実行する画像処理の内容によってはデータ量や画像属性が変化することがある。多機能複写機のような画像処理装置では、取り扱う画像データの種類がカラー、グレイ、白黒二値の3種類であるが、これらは1画素当たりのビット数やチャネル数(色成分数)が固定されている。この点に着目すれば、画像属性が変化することによって実行コストが画像データの大きさに対して非線形となり、それぞれユニークな計算が必要な場合にも対応するために、予め画像データの大きさをパラメータとしてコスト計算を実行する関数を、画像処理装置が扱う画像データの種類ごとに用意すればよい。
図11は、画像データの種類ごとに予め用意した実行コスト計算関数を管理する管理テーブルを示す図である。ここで示す実行コスト計算関数は、実験によって求めた近似関数であってもよいし、実験によって求めた離散的な複数の値をテーブルに管理し、中間の値は補間演算によって求めるようにしてもよい。
次に、処理コスト算出部15は、ステップ123若しくはステップ124により特定した実行パスに従って、各モジュールの処理結果を次に処理を実行すべきモジュールを搭載している画像処理装置へ送信する場合のデータ通信時間に関する通信コストをそれぞれ計算する(ステップ126)。通信コストは、ネットワークのデータ通信能力が特定されていれば、画像処理装置間でやり取りされるデータの大きさに比例して増加するといえる。そこで、図8に示すような管理テーブルにて通信コスト情報を予め用意しておいてもよい。
以上のようにして、実行コストと通信コストとを算出すると、処理コスト算出部15は、実行コストと通信コストとを合算して処理コストを求める(ステップ127)。処理コスト算出部15は、処理コストをステップ121で絞り込んだダウンロード先候補全てについて求める(ステップS128)。
本実施の形態においては、以上のようにして、ダウンロード先候補全てに対して処理コストを算出する。そして、ダウンロード先候補全てについて処理コストを算出すると、前述したように、モジュール配置部16は、ダウンロード先候補の中から処理コストが最小となる画像処理装置を、当該不足モジュールの搭載先として決定する。
次に、上記の通り説明した本実施の形態における画像処理装置1の具体的な動作を、図12を参照しつつ説明する。
図12は、サービスの処理の実行要求を受け付けた時点の各画像処理装置の状態を示した概念図である。図12において、画像処理装置群を構成する画像処理装置100a,100b,100c,100d(以下、特に断らない限り、図5乃至図8の各管理テーブルを参照する場合、画像処理装置100aはαと、画像処理装置100bはβと、画像処理装置100cはγと、画像処理装置100dはδと、それぞれ対応しているものとする。)は、それぞれが図3に示した本実施の形態における画像処理装置1の構成要素を有しており、例えばイントラネットのようなネットワーク102に接続され、一連のデータ処理を連携して実行することができる。なお、全ての画像処理装置100a,100b,100c,100dに共通する内容は、「画像処理装置100」と記することにする。他の要素についても同様に表記する。
各画像処理装置100の内部には、外部からサービス処理を実行するためのモジュールを必要に応じてダウンロードして記憶するためのHDD28等から構成される記憶手段101a,101b,101c,101dを備えている。この記憶手段は、図3に示した情報記憶部19に相当する。
各画像処理装置100に搭載されているモジュールの種類、記憶手段の空き容量、内蔵CPU処理能力といった処理能力管理情報104a,104b,104c,104dは、各画像処理装置内で管理することができる情報であるが、図示しない外部の管理サーバに対して各画像処理装置100が処理能力管理情報104を送信することにより、当該管理サーバ上で一元管理するようにしてもよい。図5に示した処理能力管理情報管理テーブルは、このような一元管理された場合の好適な例を示している。
ここで、例えば、画像処理装置100dに対してサービスSV3の処理を要求するサービス要求103が依頼されたとする(ステップ101)。サービスSV3を処理するために必要なモジュールの種類を特定するために、画像処理装置100dは、図示しない外部の管理サーバに対して図4に示したサービス構成情報の照会を要求する。なお、サービス構成情報の送信を要求して取得してもよい(ステップ102)。図4に示した設定例を参照すると、サービスSV3を処理するにはモジュールCが必要であることが判明する。さらに画像処理装置100dは、当該管理サーバに対して図6に示したモジュール管理情報の参照を要求する。なお、モジュール管理情報の送信を要求して取得してもよい。
図6に示したモジュール管理情報の設定例を参照すると、モジュールCのプログラム容量は、40Mバイトで、演算量が「50」単位であることが判明し、さらにモジュールCをダウンロードする場合にアクセスすべきURLは、http://5.6.7.8/optional/であることが判明する。なお、このようなモジュール管理情報は、サービス要求103とともに、サービスを依頼する画像処理装置に対して送信するようにしてもよい。
画像処理装置100dは、処理能力管理情報104dの搭載モジュールを参照することにより、サービスSV3を処理するために必要なモジュールCが自装置に搭載されていないことを確認する(ステップ103)。更に、画像処理装置100dは、他の画像処理装置100a,100b,100cの処理能力管理情報104a,104b,104cの送信を各画像処理装置100a,100b,100cに要求する。なお、図示しない管理サーバが連携動作可能な画像処理装置100全ての処理能力管理情報を一元管理しているのであれば、画像処理装置100dは当該管理サーバに対してモジュールCを搭載している他の画像処理装置100a,100b,100cの処理能力管理情報について問い合わせるようにしてもよい。なお、処理能力管理情報の送信を要求して取得してもよい(ステップ104)。この例の場合、図5に示した処理能力管理テーブル、または各画像処理装置の処理能力管理情報104a,104b,104cのいずれを参照してもモジュールCが搭載されていないことが判明する(ステップ105でN)。
そこで、画像処理装置100dは、モジュールCをどの画像処理装置100に配置すべきかを特定するために、各画像処理装置の処理能力管理情報104a,104b,104cを参照してモジュールCのプログラム容量40Mバイト以上の空き容量がある画像処理装置をダウンロード先候補として特定する。この場合、画像処理装置100b,100cがダウンロード先候補となる。
この例では、ダウンロード先候補が一つに絞り込めないことから、次に画像処理装置100dは、モジュールCを使用する他のサービスがないかどうかを図4に示すサービス構成情報を参照することで特定する。この例の場合、図4を参照すると、モジュールCを利用するサービスとして、サービスSV3以外にサービスSV2とサービスSV4が存在することが判明する。ただ、このうちサービスSV4は、各画像処理装置100a,100b,100c,100dに搭載されていないモジュールEとモジュールFを必要とするので、ここでは考慮すべきサービスから除外してサービスSV2の処理コストについて評価を行う。このように、各画像処理装置100へのモジュールの搭載状況に応じて抽出したサービスSV2,SV3,SV4の中から処理負荷の算出対象とするサービスSV2を絞り込むようにしててもよい。
図4に示したサービス構成情報を参照すると、サービスSV2は、モジュールA→モジュールB→モジュールCの順番で逐次実行していけばよいことがわかる。したがって、画像処理装置100dにサービスSV2の依頼があった場合、画像処理装置100dは、サービスSV2で処理すべきデータをまずモジュールAを搭載する画像処理装置100aへ送り、画像処理装置100aは受け取ったデータをモジュールAを起動して処理した上で、モジュールBを搭載する画像処理装置100bへ送ることになる。このような状況における処理コストを計算してみる(ステップ106)。
ここまでの処理コストは、図7に示す実行コスト情報を参照して次のように求める。ここで、画像処理装置100a,100b,100c,100dに搭載された任意のモジュールmの実行コストを、PC(α,m)、PC(β,m)、PC(γ,m)、PC(δ,m)と表記する。また、任意の画像処理装置sから他の画像処理装置tへ通信を行う際に生じる通信コストを、CC(s,t)と表記する。
(1)モジュールAに係る実行コストおよび通信コスト
最初にサービスSV2で処理すべきデータを画像処理装置100aに送ることで、通信コストCC(δ,α)が発生し、図8の欄81を参照してCC(δ,α)=1を得る。モジュールAに係る実行コストPC(α,A)は、図7において当該モジュールAを搭載する画像処理装置100a(図7においては、画像処理装置αに対応)の欄71を参照し、PC(α,A)=1.0を得る。
モジュールAの処理結果は、画像処理装置100aから画像処理装置100bへ送られることになるので、その際の通信コストCC(α,β)は、図8の欄82を参照してCC(α,β)=1を得る。なお、実行コストPC(α,A)は、画像処理装置100aの処理能力管理情報104aを図5に示すような処理能力管理情報を参照し、処理能力「50」の画像処理装置100aで演算量「50」のデータを処理することから、(演算量=50)/(処理能力=50)=1.0 のように求めてもよい。
(2)モジュールBに係る実行コストおよび通信コスト
モジュールBに係る実行コストPC(β,B)は、図7において当該モジュールBを搭載する画像処理装置100b(図7においては、画像処理装置βに対応)の欄72を参照し、実行コスト=1.0を得る。上記と同様、実行コストPC(β,B)を、(演算量=50)/(画像処理装置100bの処理能力=50)=1.0のように求めてもよい。
次はモジュールCによる処理の実行であるが、モジュールCのダウンロード先候補は画像処理装置100b,100cのいずれかであるから、それぞれにモジュールCをダウンロードした場合について処理コストを計算することになる。
(3)画像処理装置βにモジュールCをダウンロードした場合の実行コストおよび通信コスト
画像処理装置100bにモジュールCをダウンロードすると、モジュールBの処理は同じ画像処理装置100bで行われているため、モジュールBの処理結果をモジュールCを搭載する画像処理装置に送信するのに要する通信コストは発生しない。
モジュールCに係る実行コストPC(β,C)は、図7の欄73を参照し、実行コストPC(β,C)=1.0を得る。図5に示した処理能力管理情報を参照し、処理能力「50」の画像処理装置100bで演算量「50」のデータ処理を行うことから、実行コストPC(β,C)を、(演算量=50)/(処理能力=50)=1.0のように求めてもよい。
更に、モジュールCによる処理結果は、画像処理装置100dに戻す必要があるので、図8の欄83を参照して通信コストCC(β,δ)=1を得る。
(4)画像処理装置γにモジュールCをダウンロードした場合の実行コストおよび通信コスト
画像処理装置100cにモジュールCをダウンロードすると、モジュールBの処理結果を画像処理装置100bから画像処理装置100cへ送る必要があるため、図8の通信コスト情報の欄84を参照し、通信コストCC(β,γ)=1を得る。
画像処理装置100cにおけるモジュールCの実行コストは、図7に示した実行コスト情報の欄74を参照し、実行コストPC(γ,C)=0.7を得る。図5に示した処理能力情報を参照し、処理能力「70」の画像処理装置100cで演算量「50」のデータ処理を行うことから、実行コストPC(γ,C)を、(演算量=50)/(処理能力=70)=0.7のように求めてもよい。
更に、モジュールCによる処理結果は、画像処理装置100dに戻す必要があるので、図8に示した通信コスト情報の欄85を参照して通信コストCC(γ,δ)=1を得る。
モジュールCのダウンロード先ごとに、実行コストと通信コストの和として処理コストを求めると、次のようになる。
(5)画像処理装置βにモジュールCをダウンロードする場合の処理コスト
モジュールCのダウンロード先を画像処理装置100bとしたときの処理コストは、
CC(δ,α)+PC(α,A)+CC(α,β)+PC(β,B)+PC(β,C)+CC(β,δ)=1+1+1+1+1+1=6.0
となる。
(6)画像処理装置γにモジュールCをダウンロードする場合の処理コスト
モジュールCのダウンロード先を画像処理装置100cとしたときの処理コストは、
CC(δ,α)+PC(α,A)+CC(α,β)+PC(β,B)+CC(β,γ)+PC(γ,C)+CC(γ,δ)=1+1+1+1+1+0.7+1=6.7
となる。
以上の結果から、モジュールCは画像処理装置100bに配置したときの処理コストの方が、画像処理装置100cに配置したときよりも小さいことが明らかなので、モジュールCの配置先は画像処理装置100bに決定される。
図13は、図12に示した状態からサービス依頼を受け付けて処理するために必要なモジュールをダウンロードした時点の各画像処理装置の状態を示した概念図である。
前述のように、サービスSV3を処理するために必要なモジュールCは、画像処理装置100bに配置されることになるので、画像処理装置100bの記憶手段111bに記憶されている処理能力管理情報における搭載モジュールには、モジュールBに加えてモジュールCが登録される。また、記憶手段111bにおける空き容量は、当初の50Mバイトから、モジュールCのプログラム容量分を減じた10Mバイトになるので、これに応じて、処理能力管理情報における空き容量は、50Mバイトから10Mバイトに更新される。
以上の処理では、画像処理装置100dがモジュールCを利用するサービスSV3の依頼を受けたことに伴い、今後のサービス処理の依頼、具体的にはモジュールCを利用するサービスSV2の依頼を将来的に受け付ける場合を想定してモジュールCの配置処理が行われるわけである。ただ、ここでは、画像処理装置100dがサービスSV3の処理の実行要求を受け付け付けているので、サービスSV3の依頼を受けた画像処理装置100dは、画像処理装置100bに対してサービスSV3の処理の実行を依頼するとともに、サービスSV3で処理すべきデータを引き渡す(図13における経路115)。そして、画像処理装置100bにおいて、当該引き渡されたデータを用いてサービスSV3を処理し、そしてその処理が終了すると、その処理結果を画像処理装置100dに返す(経路116)。
以上の説明から明らかなように、本実施の形態においては、任意のサービスを処理するのに利用されるモジュールを特定するサービス構成情報(図4)、連携動作可能な画像処理装置それぞれの搭載モジュールやCPU処理能力等を示す処理能力管理情報(図5)、各モジュールのプログラム容量や演算量、格納先情報等を含むモジュール管理情報(図6)を参照しつつ、処理コストを計算する。これらの情報は、各画像処理装置で管理するようにしてもよいが、別途管理サーバを設けて一元管理してもよい。新しいモジュールを追加することで、新しいサービスの処理が可能となる場合も、管理サーバに保持管理されているこれらの情報を更新しさえすれば、各画像処理装置は、新しいサービスがサービス処理システムにおいて追加提供可能となったことを知り得る。また、当該新しいモジュール提供者や新しいサービス提供者は、各画像処理装置にその旨を通知するときの通信コストの削減にもつながる。
実施の形態2.
本実施の形態は、実施の形態1において説明した管理サーバを有するサービス処理システムを提供する。図14は、本実施の形態におけるサービス処理システムの全体構成図であり、また連携動作可能な複数の画像処理装置と管理サーバの関係を説明するために用いる概念図である。
以下、本実施の形態の動作について説明する。なお、画像処理装置の構成は図3に示した構成でよい。あるいは、情報記憶部19にて保持している各種情報は、管理サーバ124に一元管理させてもよい。
ネットワーク122に接続され、互いに連携動作可能な画像処理装置120a,120b,120c,120dの各装置内部に記憶保持されている処理能力管理情報121a,121b,121c,121dは、例えば、搭載モジュールや記憶手段の空き容量に変化があったタイミングで、画像処理装置120a,120b,120c,120dが管理サーバ124に対して送信する。管理サーバ124は、後述する各種情報を管理する情報管理部を有しており、当該処理能力管理情報を受け取ると、管理サーバ124が管理している処理能力管理情報管理テーブル125で画像処理装置120の処理能力管理情報121を集約管理する。管理サーバ124は、一定周期ごとに各画像処理装置120から処理能力管理情報121を受け取るようにしてもよい。
クラウド2が画像処理装置120a,120b,120c,120dにダウンロードすることで利用可能となる複数のモジュールを格納している場合、モジュール管理情報は、クラウド2上に保持されている。管理サーバ124は、クラウド2からモジュール管理情報を受け取って、モジュール管理情報管理テーブル128にて集約管理する。
クラウド2上に格納されたモジュールを利用することで処理可能となるサービスを示すサービス構成情報は、管理サーバ124で管理されているサービス構成情報管理テーブル127に集約管理される。なお、サービス構成情報管理テーブル127上で管理される情報は、管理サーバ124へのアクセス頻度を抑えるために画像処理装置120a,120b,120c,120dに対して管理サーバ124が適宜配信するようにしてもよい。
画像処理装置120a,120b,120c,120dは、それぞれが要求を受け付けたサービスの種類や受付回数などの履歴情報を生成して管理してもよい。これら画像処理装置が管理サーバ124と通信する際に、このようなサービス処理要求の履歴情報を合わせて送信することで、管理サーバ124は、管理するサービス構成情報管理テーブル127上で連携動作可能な画像処理装置全体に対するサービス要求履歴を一元管理するようにしてもよい。管理サーバ124は、各画像処理装置120から実施されたサービスに関する履歴情報が送られてくると、その履歴情報をサービス構成情報管理テーブル127における当該サービスの「要求受付回数」に登録して管理する。
なお、処理能力管理情報管理テーブル125における「再配置可能」については、実施の形態3において説明する。
実施の形態3.
上記実施の形態1においては、依頼を受けたサービスを処理するために必要なモジュールが搭載されていない場合に、当該必要なモジュールをダウンロードして配置した。
しかし、当該必要なモジュールを搭載している画像処理装置が存在する場合であっても、その画像処理装置が既に他のサービス依頼を受け付けていて、これから処理を依頼しようとするサービスを直ちに処理することができない場合がある。また、ライセンス契約の関係などからモジュールの利用が制限されている場合もあり得る。このような場合、1つの当該必要なモジュールが複数の画像処理装置に搭載される結果となっても当該必要なモジュールを別途ダウンロードする必要が生じてくる。
そこで、本実施の形態においては、互いに連携動作可能な複数の画像処理装置のいずれかに、依頼を受け付けたサービスを処理するために必要なモジュールがすでに搭載されていても、当該モジュールを当該依頼を受け付けたサービスの処理に利用することができない場合は、当該モジュールを搭載されている画像処理装置以外の画像処理装置に別途ダウンロードしてサービスを処理するようにしたことを特徴としている。
なお、本実施の形態は、図14に示したシステム構成で実現してよく、また、画像処理装置の構成は図3に示した構成でよい。
以下、本実施の形態の動作について説明するが、本実施の形態におけるサービスを実行するときの処理は、基本的には実施の形態1と同様であり、図9に示したフローチャートの処理手順に従う。ただ、画像処理装置6に不足モジュールが搭載されている場合(ステップ105でY)、以降に実施する処理が実施の形態1とは異なってくる。以下、このステップ105以降の処理について図15に示したフローチャートを用いて説明する。なお、図15において、図9と同じ処理には同じ符号を付け、説明を適宜省略する。
連携動作可能な画像処理装置のいずれかに不足モジュールが搭載されている場合(ステップS105でY)、モジュール配置部16は、当該モジュールを搭載している画像処理装置を特定する(ステップ201)。モジュール配置部16は、続いてその特定した画像処理装置で当該モジュールが利用可能かどうかを判定する。この判定の際には、当該モジュールが他のサービスを処理するために使用されていることで利用ができない状態であるかどうかについて調べる。あるいは当該特定した画像処理装置に対して、当該モジュールが利用可能かどうかを直接問い合わせてもよい。あるいは、管理サーバ124が各画像処理装置が画像処理装置によって利用されているかどうかを示すステータス情報を管理している場合、モジュール配置部16は、管理サーバ124に当該画像処理装置に利用可能性を問い合わせをするようにしてもよい。そして、不足モジュールの利用が可能であれば(ステップ202でY)、処理依頼先決定部13は、不足モジュールの実行依頼先として当該画像処理装置を決定する(ステップ205)。そして、各モジュールが搭載された画像処理装置が連携してサービス処理が実行される(ステップ111)。
一方、不足モジュールの利用ができない場合(ステップ202でN)、モジュール配置部16は、さらに当該モジュールを他の画像処理装置に再配置可能かどうかを確認する。モジュールによっては、ライセンス契約等によってコピーが制限されている場合があったり、あるいは、画像処理装置自体が搭載モジュールを他の画像処理装置の記憶手段にコピーする機能を有していないものがあるからである。これは、当該特定した画像処理装置に対して、当該モジュールが利用可能かどうかを直接問い合わせてもよい。あるいは、管理サーバ124が図14に示した処理能力管理情報管理テーブル125に「再配置可能」の情報、すなわちモジュールの再配置の可能性について管理している場合、モジュール配置部16は、管理サーバ124に問い合わせをするようにしてもよい。
この結果、当該モジュールを他の画像処理装置に再配置可能であると判断した場合(ステップ203でY)、モジュール配置部16は、図6に示したモジュール管理情報に含まれる該モジュールの格納先情報を、当該特定した画像処理装置のURLにて更新することにより、当該特定した画像処理装置を当該モジュールの取得先として決定する(ステップ204)。なお、この場合、ステップ110は、ステップ204と同じ処理を行うことになるので、ステップ110において格納先情報の登録はしなくてもよい。そして、当該モジュールをどの画像装置装置に搭載するかということと、サービス処理を実行するまでの処理(ステップ106〜111)に関しては、説明を省略する。
一方、当該モジュールを他の画像処理装置に再配置することができない場合(ステップS203でN)、当該モジュールを別途ダウンロードする必要があると判断して、ステップ106に移行するが、移行後の処理(ステップ106〜111)に関しては、説明を省略する。
本実施の形態によれば、他の画像処理装置に不足モジュールが搭載されていた場合には、当該他の画像処理装置の状態によって、不足モジュールの実行先として当該他の画像処理装置、あるいは更に他の画像処理装置を選択する。
1,6,100,100a〜100d,120,120a〜120d 画像処理装置、2 クラウド、3 ファイアウォール(FW)、4,5,102,122 ネットワーク、11 サービス処理要求受付部、12 情報管理部、13 処理依頼先決定部、14 装置連携動作制御部、15 処理コスト算出部、16 モジュール配置部、17 クラウド連携動作制御部、18 サービス処理部、19 情報記憶部、21 CPU、22 操作パネル、23 IIT、24 IOT、25 IPS、26 ROM、27 RAM、28 HDD、29 ネットワークインタフェース(I/F)、30 アドレスデータバス、101,101a〜101d 記憶手段、124 管理サーバ、125 処理能力管理情報管理テーブル、127 サービス構成情報管理テーブル、128 モジュール管理情報管理テーブル。

Claims (6)

  1. サービスの処理要求を受け付ける受付手段と、
    要求されたサービスを処理する際に必要な1又は複数の処理機能を実現する1又は複数のモジュールを識別する情報を少なくとも含むサービス構成情報を取得する手段と、
    自装置及びサービスを処理する際に自装置と連携して動作可能な1又は複数の他のサービス処理装置それぞれについて、搭載されたモジュールを識別する情報と処理能力を表す情報とを少なくとも含む処理能力管理情報を取得する手段と、
    搭載されたモジュールを利用してサービスを処理する処理手段と、
    前記サービス構成情報を参照して、処理要求のあったサービスを処理する際に利用するモジュールのうち自他を含む前記サービス処理装置のいずれにも搭載されていないモジュールが存在する場合、前記処理能力管理情報を参照することによって、自他を含む前記サービス処理装置の中から当該いずれにも搭載されていないモジュールを搭載可能なサービス処理装置を選出する選出手段と、
    前記サービス構成情報を参照することにより、当該いずれにも搭載されていないモジュールを利用するサービスを選出し、その選出した各サービスを処理する際に利用されるモジュールの前記自他を含む前記サービス処理装置への搭載状況に応じてその抽出したサービスの中から処理負荷の算出対象とするサービスを絞り込み、その絞り込んだサービスを処理する際に前記選出手段により選出されたサービス処理装置それぞれに当該いずれにも搭載されていないモジュールを搭載した場合における処理負荷を算出し、その処理負荷を算出した結果、処理負荷が最小となるサービス処理装置を、当該いずれにも搭載されていないモジュールを利用した処理の依頼先として決定する決定手段と、
    前記決定手段により決定されたサービス処理装置に当該いずれにも搭載されていないモジュールが搭載されていない場合には当該サービス処理装置に当該モジュールを搭載すると共に、当該サービス処理装置に搭載したモジュールを識別する情報を設定することで前記処理能力管理情報を更新する搭載手段と、
    を有することを特徴とするサービス処理装置。
  2. 前記決定手段は、自装置に搭載されていないモジュールが前記他のサービス処理装置のいずれかに搭載されている場合、当該モジュールが搭載されている前記他のサービス処理装置を、当該自装置に搭載されていないモジュールを利用した処理の依頼先として決定することを特徴とする請求項1に記載のサービス処理装置。
  3. モジュール毎に、当該モジュールの取得先を特定する情報を少なくとも含むモジュール管理情報を取得する手段を有し、
    前記搭載手段は、前記決定手段により決定されたサービス処理装置に搭載モジュールを、前記モジュール管理情報により特定される取得先から取得することを特徴とする請求項1に記載のサービス処理装置。
  4. 複数のサービス処理装置と、
    サービスを処理する際に必要な1又は複数の処理機能を実現する1又は複数のモジュールを識別する情報を少なくとも含むサービス構成情報を記憶するサービス構成情報記憶装置と、
    前記サービス処理装置毎に、当該サービス処理装置に搭載されたモジュールを識別する情報と処理能力を表す情報とを少なくとも含む処理能力管理情報を記憶する処理能力管理情報記憶装置と、
    を有し、
    前記各サービス処理装置は、
    サービスの処理要求を受け付ける受付手段と、
    前記サービス構成情報記憶装置からサービス構成情報を取得する手段と、
    前記処理能力管理情報記憶装置から処理能力管理情報を取得する手段と、
    処理要求のあったサービスを実行する際に利用するモジュールが搭載された他の前記サービス処理装置と連携しながら要求されたサービスを処理する処理手段と、
    前記サービス構成情報を参照して、処理要求のあったサービスを処理する際に利用するモジュールのうち前記サービス処理装置のいずれにも搭載されていないモジュールが存在する場合、前記処理能力管理情報を参照することによって、前記サービス処理装置の中から当該いずれにも搭載されていないモジュールを搭載可能なサービス処理装置を選出する選出手段と、
    前記サービス構成情報を参照して当該いずれにも搭載されていないモジュールを利用するサービスを選出し、その選出した各サービスを処理する際に利用されるモジュールの前記サービス処理装置への搭載状況に応じてその抽出したサービスの中から処理負荷を算出対象とするサービスを絞り込み、その絞り込んだサービスを処理する際に前記選出手段により選出されたサービス処理装置それぞれに当該いずれにも搭載されていないモジュールを搭載した場合における処理負荷を算出し、その処理負荷を算出した結果、処理負荷が最小となるサービス処理装置を、当該いずれにも搭載されていないモジュールを利用した処理の依頼先として決定する決定手段と、
    前記決定手段により決定されたサービス処理装置に当該いずれにも搭載されていないモジュールが搭載されていない場合には当該サービス処理装置に当該モジュールを搭載すると共に、当該サービス処理装置に搭載したモジュールを識別する情報を設定することで前記処理能力管理情報を更新する搭載手段と、
    を有することを特徴とするサービス処理システム。
  5. 前記サービス処理装置からの要求に応じて前記各記憶装置を記憶された各情報の読み出し、及び書き込みを一括して行う管理装置を有することを特徴とするサービス処理システム。
  6. サービス処理装置に搭載されるコンピュータを、
    サービスの処理要求を受け付ける受付手段、
    要求されたサービスを処理する際に必要な1又は複数の処理機能を実現する1又は複数のモジュールを識別する情報を少なくとも含むサービス構成情報を取得する手段、
    自装置及びサービスを処理する際に自装置と連携して動作可能な1又は複数の他のサービス処理装置それぞれについて、搭載されたモジュールを識別する情報と処理能力を表す情報とを少なくとも含む処理能力管理情報を取得する手段、
    搭載されたモジュールを利用してサービスを処理する処理手段、
    前記サービス構成情報を参照して、処理要求のあったサービスを処理する際に利用するモジュールのうち自他を含む前記サービス処理装置のいずれにも搭載されていないモジュールが存在する場合、前記処理能力管理情報を参照することによって、自他を含む前記サービス処理装置の中から当該いずれにも搭載されていないモジュールを搭載可能なサービス処理装置を選出する選出手段、
    前記サービス構成情報を参照することにより、当該いずれにも搭載されていないモジュールを利用するサービスを選出し、その選出した各サービスを処理する際に利用されるモジュールの前記自他を含む前記サービス処理装置への搭載状況に応じてその抽出したサービスの中から処理負荷の算出対象とするサービスを絞り込み、その絞り込んだサービスを処理する際に前記選出手段により選出されたサービス処理装置それぞれに当該いずれにも搭載されていないモジュールを搭載した場合における処理負荷を算出し、その処理負荷を算出した結果、処理負荷が最小となるサービス処理装置を、当該いずれにも搭載されていないモジュールを利用した処理の依頼先として決定する決定手段、
    前記決定手段により決定されたサービス処理装置に当該いずれにも搭載されていないモジュールが搭載されていない場合には当該サービス処理装置に当該モジュールを搭載すると共に、当該サービス処理装置に搭載したモジュールを識別する情報を設定することで前記処理能力管理情報を更新する搭載手段、
    として機能させるためのプログラム。
JP2010254223A 2010-11-12 2010-11-12 サービス処理装置、サービス処理システム及びプログラム Withdrawn JP2012104063A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010254223A JP2012104063A (ja) 2010-11-12 2010-11-12 サービス処理装置、サービス処理システム及びプログラム
US13/103,537 US8468232B2 (en) 2010-11-12 2011-05-09 Service processing apparatus, service processing system and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010254223A JP2012104063A (ja) 2010-11-12 2010-11-12 サービス処理装置、サービス処理システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2012104063A true JP2012104063A (ja) 2012-05-31

Family

ID=46048814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010254223A Withdrawn JP2012104063A (ja) 2010-11-12 2010-11-12 サービス処理装置、サービス処理システム及びプログラム

Country Status (2)

Country Link
US (1) US8468232B2 (ja)
JP (1) JP2012104063A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014059717A (ja) * 2012-09-18 2014-04-03 Ricoh Co Ltd 情報処理システム、情報処理装置、機器、情報処理方法、及び情報処理プログラム
JP2017515244A (ja) * 2014-03-07 2017-06-08 中国科学院声学研究所Institute Of Acoustics, Chinese Academy Of Sciences オンサイトサービスを提供するシステム及び方法
WO2018138832A1 (ja) * 2017-01-26 2018-08-02 株式会社日立製作所 情報処理システム及び業務移行方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104358B2 (en) 2004-12-01 2015-08-11 Xerox Corporation System and method for document production visualization
US8902220B2 (en) 2010-12-27 2014-12-02 Xerox Corporation System architecture for virtual rendering of a print production piece
US20120290678A1 (en) * 2011-05-12 2012-11-15 International Business Machines Corporation Dynamic, user-driven service catalog
US9105116B2 (en) 2011-09-22 2015-08-11 Xerox Corporation System and method employing variable size binding elements in virtual rendering of a print production piece
US9836868B2 (en) 2011-09-22 2017-12-05 Xerox Corporation System and method employing segmented models of binding elements in virtual rendering of a print production piece
US8970885B2 (en) 2013-03-11 2015-03-03 Xerox International Partners Virtual printer interface node
US8913272B2 (en) 2013-03-11 2014-12-16 Xerox International Partners Virtual printer interface node
US8908214B2 (en) 2013-03-11 2014-12-09 Xerox International Partners Virtual printer interface node
US8908213B2 (en) 2013-03-11 2014-12-09 Xerox International Partners Virtual printer interface node
US8970859B2 (en) 2013-03-11 2015-03-03 Xerox International Partners Virtual printer interface node
US9098218B2 (en) 2013-03-11 2015-08-04 Xerox International Partners System for authenticating communications between a non-cloud ready networked printer and a cloud-based servise through a virtual printer interface device
US9122436B2 (en) 2013-03-11 2015-09-01 Xerox International Partners Virtual printer interface node
US8917414B2 (en) 2013-03-11 2014-12-23 Xerox International Partners Virtual printer interface node
US9047027B2 (en) 2013-03-11 2015-06-02 Xerox International Partners System for authenticating communications between a non-cloud ready networked printer and a cloud-based service through a virtual printer interface device
US9396015B2 (en) * 2014-10-27 2016-07-19 Ayla Networks, Inc. Flexible device templates for connected consumer devices
US10152516B2 (en) 2015-05-21 2018-12-11 International Business Machines Corporation Managing staleness latency among application bundles
US10530660B2 (en) * 2015-05-21 2020-01-07 International Business Machines Corporation Application bundle preloading
US10389850B2 (en) 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US9965262B2 (en) 2015-05-21 2018-05-08 International Business Machines Corporation Application bundle pulling
US9888057B2 (en) 2015-05-21 2018-02-06 International Business Machines Corporation Application bundle management across mixed file system types
US10389794B2 (en) 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09244979A (ja) 1996-03-07 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> 双方向サービス資源配置制御方法
JP2002099521A (ja) 2000-09-21 2002-04-05 Hitachi Information Systems Ltd ネットワークコンピューティングシステムとプログラム実行処理方法および負荷分散処理プログラム
US7010596B2 (en) 2002-06-28 2006-03-07 International Business Machines Corporation System and method for the allocation of grid computing to network workstations
JP2007140952A (ja) 2005-11-18 2007-06-07 Canon Inc 分散処理システム及びその処理方法
JP4797636B2 (ja) * 2006-01-16 2011-10-19 株式会社日立製作所 複合型情報プラットフォーム装置とその情報処理装置構成方法
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US20090007097A1 (en) * 2007-06-29 2009-01-01 Hinton Heather M Product install and configuration providing choice of new installation and re-use of existing installation
US8553564B2 (en) * 2010-06-28 2013-10-08 Hitachi, Ltd. Management system and computer system management method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014059717A (ja) * 2012-09-18 2014-04-03 Ricoh Co Ltd 情報処理システム、情報処理装置、機器、情報処理方法、及び情報処理プログラム
JP2017515244A (ja) * 2014-03-07 2017-06-08 中国科学院声学研究所Institute Of Acoustics, Chinese Academy Of Sciences オンサイトサービスを提供するシステム及び方法
WO2018138832A1 (ja) * 2017-01-26 2018-08-02 株式会社日立製作所 情報処理システム及び業務移行方法

Also Published As

Publication number Publication date
US20120124187A1 (en) 2012-05-17
US8468232B2 (en) 2013-06-18

Similar Documents

Publication Publication Date Title
JP2012104063A (ja) サービス処理装置、サービス処理システム及びプログラム
US8832679B2 (en) Registration process for determining compatibility with 32-bit or 64-bit software
CN102067094A (zh) 高速缓存优化
JP4925231B2 (ja) 応答集約サロゲートからの要求フラグメントの送信
US9928013B2 (en) Print control system, method of controlling printing, and recording medium
CN109005232A (zh) 容器镜像文件的下载方法、提供方法及设备
GB2516115A (en) Methods and devices for exchanging data
CA2858081A1 (en) Autonomous network streaming
US20070006221A1 (en) Software install environment constructing apparatus
JP6926746B2 (ja) 情報処理装置、情報処理システム及び情報処理プログラム
US9158527B2 (en) Upgrade system and method having adaptive changeable upgrade process
US9509657B2 (en) Information processing apparatus, relay method, and computer-readable storage medium
JP5678556B2 (ja) ジョブ実行システム、ジョブ実行装置及びプログラム
US8745640B2 (en) Integration and management apparatus, integration and management system and computer readable information recording medium
JP2015049714A (ja) ソフトウェア管理装置、ソフトウェア管理システム、ソフトウェア管理方法、及びプログラム
US20090198723A1 (en) System and method for web-based data mining of document processing information
US8760703B2 (en) Job control system and job control method
US8514434B2 (en) Print control device, print control system, and print control method
JP2005208923A (ja) グリッドシステムにおける決済情報算出方法、グリッド仲介装置、グリッド仲介プログラム
JP5177678B2 (ja) クライアント装置
EP3182688A1 (en) Image forming apparatus, image forming system, and program
US11843659B2 (en) Server system, information processing method, and storage medium
WO2007142478A1 (en) System and method for e-mail filtering using grid computing
JP2017215901A (ja) 情報処理装置、情報処理システム及びプログラム
JP2005346738A (ja) サーバ、プリンタ機器情報作成装置、プリンタ機器情報設定方法、プリンタ機器情報作成方法、プログラム、及び記録媒体

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140204