JP6618280B2 - 画像形成装置、画像形成装置の制御方法、及び記憶媒体 - Google Patents

画像形成装置、画像形成装置の制御方法、及び記憶媒体 Download PDF

Info

Publication number
JP6618280B2
JP6618280B2 JP2015120996A JP2015120996A JP6618280B2 JP 6618280 B2 JP6618280 B2 JP 6618280B2 JP 2015120996 A JP2015120996 A JP 2015120996A JP 2015120996 A JP2015120996 A JP 2015120996A JP 6618280 B2 JP6618280 B2 JP 6618280B2
Authority
JP
Japan
Prior art keywords
program
function
provider
function type
search
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
JP2015120996A
Other languages
English (en)
Other versions
JP2017001368A5 (ja
JP2017001368A (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 JP2015120996A priority Critical patent/JP6618280B2/ja
Priority to US15/175,481 priority patent/US9781287B2/en
Priority to CN201610417229.4A priority patent/CN106257904B/zh
Publication of JP2017001368A publication Critical patent/JP2017001368A/ja
Priority to US15/691,341 priority patent/US10425549B2/en
Publication of JP2017001368A5 publication Critical patent/JP2017001368A5/ja
Application granted granted Critical
Publication of JP6618280B2 publication Critical patent/JP6618280B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/00352Input means
    • H04N1/00384Key input means, e.g. buttons or keypads
    • 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/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00973Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
    • 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/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00244Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server
    • 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/00413Display of information to the user, e.g. menus using menus, i.e. presenting the user with a plurality of selectable options
    • 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/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • 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/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00954Scheduling operations or managing resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Facsimiles In General (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Control Or Security For Electrophotography (AREA)

Description

本発明は、画像形成装置、画像形成装置の制御方法、及び記憶媒体に関する。
近年、オフィスに設置される画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能(以降、拡張機能)は、ソフトウェアプログラム(以降、拡張ソフト)によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしては、キヤノン株式会社のMEAP(登録商標)などがあげられる。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(特許文献1参照)。
特に、ある特定の目的のために作られた拡張ソフトは、アプリケーションソフトウェア(以降、アプリ)と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで目的の処理を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
特許第4039439号公報
従来技術では、アプリは目的の処理を実現するための手順をプログラムで規定している。アプリは、予めプログラムで規定した処理しか実行できないため、それ以外のことを実現しようとすれば、アプリのプログラムを修正するか、別のアプリを用意する必要があり、拡張機能の柔軟な運用ができなかった。
なお、このような問題は、画像形成装置に特有なものではなく、パーソナルコンピュータ等の他の情報処理装置にも共通なものである。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、例えば画像形成装置等の情報処理装置に追加される拡張機能の柔軟な運用を可能にする仕組みを提供することである。
本発明は、画像形成装置であって、複数のプログラムをインストールするインストール手段と、前記複数のインストールされたプログラムのそれぞれについて、プログラムを一意に特定する識別情報とプログラムの機能タイプを示す機能タイプ情報とを含む情報を登録する登録手段と、複数の工程からなる一連の処理を定義するワークフロー定義ファイルに従って複数のプログラムを組み合わせて一連の処理を実行するワークフローの実行指示を受け付ける受付手段と、前記複数の工程を含む処理手順を定義し、前記工程ごとに、プログラムの識別情報またはプログラムの機能タイプのいずれかで指定されている、前記実行指示に対応するワークフロー定義ファイルを取得する取得手段と、前記ワークフロー定義ファイルにおいて、前記工程ごとに、プログラムの指定が、プログラムの識別情報と、プログラムの機能タイプのどちらでなされているかの判定をする判定手段と、前記判定において、プログラムの指定が、プログラムの識別情報で指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている識別情報のプログラムを検索し、前記判定において、プログラムの指定が、プログラムの機能タイプで指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている機能タイプのプログラムを検索する検索手段と、前記ワークフロー定義ファイルにおける複数の工程について、前記工程ごとに、前記検索の結果に基づいて決定したプログラムを順次実行する実行手段と、を有することを特徴とする。
本発明によれば、情報処理装置に追加される拡張機能の柔軟な運用を可能にすることができる。
本実施例の画像処理装置(MFP)を適用可能なシステムの構成図 MFPのハードウェア構成図 サーバのハードウェア構成図 MFPのソフトウェア構成図 画像処理システムにおける処理のシーケンス図 MFPにおける機能プロバイダ情報テーブル更新処理のフローチャート 機能プロバイダ情報テーブルを例示する図 MFPにおける機能プロバイダ設定テーブル設定処理のフローチャート 機能プロバイダ設定テーブルを例示する図 ワークフロー定義ファイルを例示する図 MFPにおけるワークフロー実行処理のフローチャート MFPにおける機能プロバイダ検索処理のフローチャート 機能プロバイダインタフェース定義を例示する図
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本発明の情報処理装置の一実施例を示す画像処理装置を適用可能なシステムの構成を例示する図である。
本実施例のシステムは、LAN110を介して接続されるMFP101と、WAN120を介して接続されるサーバ102を有する。LAN110上の装置とWAN120上の装置とは、お互いのネットワークを通して相互に通信可能である。なお、図1は、典型的なネットワーク構成の例であり、各装置がLAN110またはWAN120のどちらにあっても構わない。
MFP101は、スキャナ、プリンタを有する画像形成装置(MFP;Multifunction Peripheral)である。加えて、MFP101は、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。MFP101は、拡張ソフト(拡張プログラム)により機能の追加拡張が可能な情報処理装置である。
サーバ102は、MFP101と連携して各種処理を行うサーバである。例えば、サーバ102は、MFP101から画像データを受信するファイルサーバであったり、MFP101から処理依頼を受けてOCR(光学文字認識)処理を実行するアプリケーションサーバであったりする。サーバ102は、一台とは限らず、目的に応じて複数のサーバが存在してもよい。
図2は、MFP101の構成を例示するブロック図である。
CPU211を含む制御部210は、MFP101全体の動作を制御する。
CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。ROM212は、各種のプログラムやデータを記憶する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶するハードディスクドライブである。なお、HDDの代わりに又は併用してSSD(ソリッドステートドライブ)等の他の記憶装置を設けてもよい。
操作部I/F215は、操作部219と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
プリンタI/F216は、プリンタ220と制御部210とを接続する。プリンタ220で印刷すべき画像データはプリンタI/F216を介して制御部210からプリンタ220に転送され、プリンタ220において記録媒体上に印刷される。
スキャナI/F217は、スキャナ221と制御部210とを接続する。スキャナ221は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部210に入力する。
ネットワークI/F218は、制御部210(MFP101)をLAN110に接続する。ネットワークI/F218は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
図3は、サーバ102の構成を例示するブロック図である。
CPU311を含む制御部310は、サーバ102全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。ROM312は、各種のプログラムやデータを記憶する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。なお、HDDの代わりに又は併用してSSD等の他の記憶装置を設けてもよい。
表示部I/F315は、表示部318と制御部310とを接続する。キーボードI/F316は、キーボード319やマウス等のポインティングデバイスと制御部310とを接続する。CPU311は、キーボード319等を介したユーザからの指示を認識し、認識した指示に応じて表示部318に表示する画面を遷移させる。
ネットワークI/F317は、制御部310(サーバ102)をWAN120に接続する。ネットワークI/F317は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
図4は、本実施例のMFP101におけるソフトウェア構成図である。図4に示す各部は、MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することで実現される機能部である。
拡張ソフト管理部410は、MFP101上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図4では、拡張ソフトとして411〜416の6つの機能プロバイダがMFP101にインストールされている。
機能プロバイダは、拡張ソフトの一種であるが、アプリ(アプリケーション)ではない。アプリは、単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは、入力なら入力、出力なら出力といった特定の機能に特化したものである。よって、機能プロバイダを用いて入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」、「プレビュー」及び「送信」の3つの機能をひとつのアプリで実現する。一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」及び「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430とワークフロー定義ファイル440が必要になる。
また、アプリは、MFP101が元々備えている機能(例えばコピー機能やファクス送信機能)を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部420に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部420経由でワークフロー処理部430の指示によって呼び出される。
さらに、機能プロバイダは、後述する機能プロバイダ管理部420が規定するルール(以降、機能プロバイダインタフェース)を満たすようにプログラミングされている。機能プロバイダインタフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインタフェースである。機能プロバイダインタフェースは、機能プロバイダが提供する機能の種類(以降、機能タイプ)ごとに定められている。機能プロバイダは、機能プロバイダインタフェースに基づいてワークフロー処理部430から呼び出される。
なお、1つの機能プロバイダは、目的に応じて、複数種類のインタフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためのインタフェースと、「スキャンジョブの実行」の目的のためのインタフェースといったように、目的別に複数種類のインタフェースを用意することができる。
また、複数種類の機能プロバイダを、MFP101にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは、同じソフトウェアインタフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
標準スキャンプロバイダ411と簡単スキャンプロバイダ412は、ともにスキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインタフェース(スキャンプロバイダインタフェース)を実現する。
標準スキャンプロバイダ411は、一般的なユーザ向けのスキャン設定画面を持つ。一方、簡単スキャンプロバイダ412は、MFP101の操作に不慣れな初心者向けのスキャン設定画面を持つ。
組込OCRプロバイダ413とWeb OCRプロバイダ414は、ともにOCR機能を提供する機能プロバイダ(機能タイプ=OCR)である。機能タイプが「OCR」の機能プロバイダを総称してOCRプロバイダと呼ぶ。OCRプロバイダは、機能タイプが「OCR」の機能プロバイダのために定義された機能プロバイダインタフェース(OCRプロバイダインタフェース)を実現する。組込OCRプロバイダ413は、MFP101上で文字認識処理を行うことでOCR機能を提供する。一方、Web OCRプロバイダ414は、外部のWebサーバ(例えばサーバ102)が提供する文字認識処理を呼び出すことでOCR機能を提供する。
FTP送信プロバイダ415は、FTP送信機能を提供する機能プロバイダ(機能タイプ=ファイル送信)である。機能タイプが「ファイル送信」の機能プロバイダを総称してファイル送信プロバイダと呼ぶ。FTP送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインタフェース(ファイル送信プロバイダインタフェース)を実現する。
プレビュープロバイダ416は、画像表示機能を提供する機能プロバイダ(機能タイプ=画像表示)である。機能タイプが「画像表示」の機能プロバイダを総称して画像表示プロバイダと呼ぶ。画像表示プロバイダは、機能タイプが「画像表示」の機能プロバイダのために定義された機能プロバイダインタフェース(画像表示プロバイダインタフェース)を実現する。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した411〜416の6つの機能プロバイダは、ほんの一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
機能プロバイダ管理部420は、MFP101にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部420は、機能プロバイダ登録部421、機能プロバイダ設定部422、機能プロバイダ検索部423、機能プロバイダ情報テーブル424、機能プロバイダ設定テーブル425、機能プロバイダインタフェース定義426を持つ。
機能プロバイダ登録部421は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル424に、各機能プロバイダの機能タイプや設定可能な値などの情報を登録する。また、機能プロバイダ設定部422は、ユーザからの依頼を受けて、機能プロバイダの優先順位やユーザ毎の使用可否といった機能プロバイダに関する設定を、機能プロバイダ設定テーブル425に設定する。なお、機能プロバイダ情報テーブル424の詳細は後述する図7に示す。また、機能プロバイダ設定テーブル425の詳細は、後述する図9に示す。
機能プロバイダ検索部423は、後述するワークフロー処理部430から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル424と機能プロバイダ設定テーブル425の情報を基に条件に一致する機能プロバイダを特定する。機能プロバイダ検索部423は、検索結果として機能プロバイダを一つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
機能プロバイダインタフェース定義426は、機能プロバイダインタフェースを定義している。なお、機能プロバイダインタフェース定義426の詳細は後述する図13に示す。
ワークフロー処理部430は、後述するワークフロー定義ファイル440に従って、複数の機能プロバイダを組み合わせて複数の工程を一連の処理として実行する。本発明では、ワークフローとは、複数の機能プロバイダを組み合わせて実現される複数の工程からなる一連の処理を指すものとする。
ワークフロー定義ファイル440は、ワークフロー処理部430が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。なお、図4ではワークフロー定義ファイルを例として1つ定義しているが、1つに限定するものではなく、MFP101上に複数のワークフロー定義ファイルが存在してもよい。ワークフロー定義ファイル440の詳細は後述する図10に示す。
図5は、本実施例におけるMFP101上の一連の処理の流れを示す図である。図中の各処理は、MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することにより実現される各機能部により実行される。
標準スキャンプロバイダ411は、自身の起動時に機能プロバイダ管理部420に対して、自身を機能プロバイダとして登録するよう指示する(S501)。この指示には、登録に必要な情報が含まれている。
この登録指示を受け取った機能プロバイダ管理部420は、指示に含まれる機能プロバイダの登録情報を機能プロバイダ情報テーブル424に格納する(S502)。
機能プロバイダ412〜416も、標準スキャンプロバイダ411と同様に、自身の起動時に機能プロバイダ管理部420に対して、自身を機能プロバイダとして登録するよう指示する(S503、S505、S507、S509、S511)。
これらの登録指示を受け取った機能プロバイダ管理部420は、指示に含まれる機能プロバイダの登録情報を機能プロバイダ情報テーブル424に格納する(S504、S506、S508、S510、S512)。
次に、機能プロバイダ管理部420は、ユーザから機能プロバイダの設定指示を受け取る(S520)と、該指示内容を機能プロバイダ設定テーブル425に反映して機能プロバイダ設定テーブル425を更新する(S521)。
次に、ワークフロー処理部430は、ユーザからワークフローの実行指示を受け取る(S530)と、該実行指示に対応するワークフロー定義ファイル440を読み込む(S531)。ここでは、ワークフロー定義ファイル440に「機能タイプがスキャンの機能プロバイダ」、「機能タイプがOCRの機能プロバイダ」、「FTP送信プロバイダ」を順に実行するように定義されているものとする。ワークフロー定義ファイルでは、実行する機能プロバイダを機能タイプで指定することもできるし、機能プロバイダを一意に特定する形で指定することもできる。
ワークフロー処理部430は、機能プロバイダ管理部420に対して「機能タイプがスキャンの機能プロバイダ」すなわちスキャンプロバイダを検索するよう指示する(S532)。指示にはワークフロー定義ファイル440に定義された検索条件が含まれる。検索指示を受け取った機能プロバイダ管理部420は、機能プロバイダ情報テーブル424と機能プロバイダ設定テーブル425の情報を基に、検索条件に一致するスキャンプロバイダを抽出する(S533)。検索条件に一致するスキャンプロバイダが複数存在した場合には、機能プロバイダ管理部420は、最も優先順位の高いスキャンプロバイダを検索結果とする。機能プロバイダ管理部420は、スキャンプロバイダの検索結果を、ワークフロー処理部430に通知する(S534)。
この検索結果を受け取ったワークフロー処理部430は、検索結果のスキャンプロバイダに対して、スキャン指示を行う(S535)。ここでワークフロー処理部430は、検索結果が標準スキャンプロバイダ411であるか、簡単スキャンプロバイダ412であるかを識別しない。どちらであってもスキャンプロバイダであることに変わりはなく、ワークフロー処理部430は個別の機能プロバイダを識別することなくスキャンプロバイダインタフェースに従ってスキャン指示を出すことができる。
ワークフロー処理部430からスキャン指示を受け取ったスキャンプロバイダ(図5では標準スキャンプロバイダ411)は、指示に従ってスキャンを実行する(S536)。
次に、ワークフロー処理部430は、機能プロバイダ管理部420に対して「機能タイプがOCRの機能プロバイダ」すなわちOCRプロバイダを検索するよう指示する(S537)。この指示にはワークフロー定義ファイル440に定義された検索条件が含まれる。検索指示を受け取った機能プロバイダ管理部420は、機能プロバイダ情報テーブル424と機能プロバイダ設定テーブル425の情報を基に、検索条件に一致するOCRプロバイダを抽出する(S538)。検索条件に一致するOCRプロバイダが複数存在した場合は、最も優先順位の高いOCRプロバイダを検索結果とする。機能プロバイダ管理部420は、OCRプロバイダの検索結果を、ワークフロー処理部430に通知する(S539)。
検索結果を受け取ったワークフロー処理部430は、検索結果のOCRプロバイダに対して、OCR指示を行う(S540)。
ワークフロー処理部430からOCR指示を受け取ったOCRプロバイダ(図5では組込OCRプロバイダ413)は、指示に従ってOCR処理を実行する(S541)。
次に、ワークフロー処理部430は、機能プロバイダ管理部420に対してFTP送信プロバイダ415を検索するよう指示する(S542)。機能プロバイダ管理部420は、FTP送信プロバイダ415を検索結果として、ワークフロー処理部430に通知する(S543)。
検索結果を受け取ったワークフロー処理部430は、検索結果のFTP送信プロバイダ415に対して、送信指示を行う(S545)。
ワークフロー処理部430から送信指示を受け取ったFTP送信プロバイダ415は、指示に従って送信処理を実行する(S546)。
図6は、図5のS501〜S512における個々の機能プロバイダの起動時の処理を説明するためのフローチャートである。このフローチャートの処理は、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
まず、拡張ソフト管理部410が、MFP101の起動またはユーザの指示といったトリガーをうけて、機能プロバイダを起動させる(S601)。
該起動した機能プロバイダ(例えば、図4の411〜416)は、自身の機能プロバイダとしての情報(機能タイプや設定可能な値などの情報)を、機能プロバイダ登録部421に通知して、自身を機能プロバイダとして登録するよう指示する(S602)。
機能プロバイダ登録部421は、機能プロバイダから登録指示を受信する(S603)と、機能プロバイダ情報テーブル424に受信した情報を格納し、機能プロバイダ情報テーブル424を更新する(S604)。
図7は、機能プロバイダ情報テーブル424の一例を示す図である。
図7に示すように、機能プロバイダ情報テーブル424は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインタフェース、機能プロバイダに設定可能な値など、機能プロバイダに関する情報を保持する。
図8は、図5のS520〜S521の処理を説明するためのフローチャートである。このフローチャートの処理は、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
機能プロバイダ設定部422は、ユーザから機能プロバイダの設定指示を受け取る(S801)と、指示内容を機能プロバイダ設定テーブル425に反映する(S802)。
図9は、機能プロバイダ設定テーブル425の一例を示す図である。なお、機能プロバイダ設定テーブル425は、図9(a)、図9(b)、図9(c)の3つのテーブルを持つ。
図9(a)は、MFP101を使用する全ユーザに共通に適用される機能プロバイダの設定(共通設定テーブル)である。共通設定テーブルは、機能プロバイダの使用条件となる設定を保持するものであり、機能タイプごとに、優先順位と、使用禁止の機能プロバイダ指定を保持する。なお、優先順位には、優先順位の高い順に機能プロバイダIDが記載される。例えば、機能タイプ「SCAN」について、「NORMAL_SCAN」、「EASY_SCAN」の順に優先順位が高くなる設定がされている。なお、使用禁止の欄に、機能プロバイダの指定があった場合には、該指定された機能プロバイダが使用禁止であることを示す。
図9(b)は、ユーザのロールごとに適用される機能プロバイダの設定(ロール設定テーブル)である。ロール設定テーブルは、ロールごとに、機能タイプごとの、優先順位と、使用禁止の機能プロバイダ指定を保持する。例えば、ロール「Guest Users」のユーザに対しては、機能タイプ「OCR」について、「OCR_WEB」が使用禁止に指定されている。
図9(c)は、ユーザごとに適用される機能プロバイダの設定(ユーザ設定テーブル)である。ユーザ設定テーブルは、ユーザごとに、機能タイプごとの、優先順位と、使用禁止の機能プロバイダ指定を保持する。例えば、ユーザ「tanaka」に対しては、機能タイプ「SCAN」について、「EASY_SCAN」、「NORMAL_SCAN」の順に優先順位が高くなる設定がされている。
図13は、本実施例における機能プロバイダインタフェース定義を例示する図である。本実施例では、機能プロバイダインタフェースは、プログラムのソースコード形式で表現されているが、これに限定されるものではなく、他の形式であってもよい。
図13において、1301はスキャンプロバイダインタフェースの定義で、「showSettingUI」、「doScan」、「doScanWithSettingUI」という3つのインタフェースを定義している。スキャンプロバイダは、1301で定義している3つのインタフェースを必ず備えている。
「showSettingUI」は、スキャン設定画面を表示するためのインタフェースで、Parameterを受け取り、結果をboolean(真偽値)で返す。ユーザがスキャン設定を確定すると「true(真)」を返し、ユーザがスキャン設定をキャンセルすると「false(偽)」を返す。Parameterは、インタフェースを呼び出す際の設定値で、ワークフロー定義ファイル440で定義される。
「doScan」はスキャン実行のためのインタフェースで、Parameterを受け取り、結果をDocumentというデータ形式で返す。「doScan」は、「showSettingUI」でユーザが設定した値またはParameterで指定された設定値でスキャンを実行する。
「doScanWithSettingUI」は、スキャン設定画面を表示後、ユーザが設定画面で確定した値でスキャンを実行する。
同様に、1302はOCRプロバイダインタフェースの定義、1303はファイル送信プロバイダインタフェースの定義、1304はプレビュープロバイダインタフェースの定義である。このように、機能プロバイダインタフェース定義では、各機能プロバイダが備えるインタフェース(名称、入力、出力)を定義している。
図10は、本実施例におけるワークフロー定義ファイルの具体的な記述例を示す図である。本実施例では、ワークフロー定義ファイルは、XML形式のファイルとして表現されているが、XML形式に限定されるものではなく、他の形式のファイルであってもよい。
Workflowタグ1010は、以下の記述がワークフローの定義であることを示している。
FP1020タグは、Workflowタグ1010の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。FPタグ1020のno属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「no="1"」は最初に実行する機能プロバイダであることを示している。FPタグ1020のtype属性は、実行する機能プロバイダの機能タイプを定義しており、「type="SCAN"」はスキャンプロバイダであることを示している。
Conditionタグ1021は、FPタグ1020の子要素で、スキャンプロバイダの検索条件を、子要素であるRequiredタグ1022と、Optionalタグ1023で定義している。
Requiredタグ1022は、検索するスキャンプロバイダの「必須条件」を定義しており、「FILE_FORMAT(ファイル形式)」の設定値として「PDF」を設定可能なスキャンプロバイダが必須である旨を示している。
Optionalタグ1023は、検索するスキャンプロバイダの「オプション条件」を定義しており、「ORIGINAL_TYPE(原稿種類)」の設定値として「TEXT」を設定可能なスキャンプロバイダを優先的に使用する旨を示している。
ここで「必須条件」と「オプション条件」の違いを説明する。
機能プロバイダの検索処理において、必須条件は、必ず満たすべき条件であり、必須条件を満たす機能プロバイダが存在しない場合、検索結果は「なし」となる。一方、オプション条件は、オプション条件を満たす機能プロバイダを優先的に使用する条件であり、オプション条件を満たす機能プロバイダが存在しない場合、オプション条件は検索条件から除外される。このように、ワークフロー定義ファイル440では、ワークフローを構成する各工程を実行する機能プロバイダが備えるべき機能の条件として、必須条件とオプション条件のいずれか又は双方を指定可能である。
Actionタグ1024は、FPタグ1020の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Actionタグのno属性と、method属性は、FPタグで定義された機能プロバイダの中での実行順と呼び出すインタフェースを定義している。Actionタグ1024は、スキャンプロバイダの実行において「showSettingUI」を1番目に呼び出す旨を定義している。
Parameterタグ1025は、Actionタグ1024の子要素であり、Actionタグ1024で定義されているインタフェース(showSettingUI)を呼び出す際に渡す設定値を定めている。
Actionタグ1026は、FPタグ1020の子要素であり、スキャンプロバイダの実行において「doScan」を2番目に呼び出す旨を定義している。
Outputタグ1027は、Actionタグ1026の子要素であり、「doScan」を実行した結果の出力を定義している。Outputタグ1027は、type属性で出力形式が「Document」である旨を、id属性で出力データを一意に特定するIDが「foo」である旨を定義している。
FP1030タグは、no属性とtype属性で、2番目に実行する機能プロバイダがOCRプロバイダであることを定義している。Requiredタグ1031は、OCRプロバイダの必須条件を定義しており、「LANG(認識言語)」の設定値として「JA(日本語)」を設定可能なOCRプロバイダが必須である旨を示している。
Actionタグ1032は、FPタグ1030の子要素であり、OCRプロバイダの実行において「doOCR」を1番目に呼び出す旨を定義している。
Inputタグ1033は、「doScan」の入力に関する定義で、「Document」形式のデータをIDが「foo」のデータから受け取ることを示している。IDが「foo」のデータは、Outputタグ1027で定義した「doScan」の出力データである。つまり、OCRプロバイダは、スキャンプロバイダのスキャンデータをDocument形式で受け取るということを定義している。
Outputタグ1034は、「doOCR」の出力に関する定義であり、type属性で出力形式が「String(文字列)」である旨と、id属性で出力データを一意に特定するIDが「bar」である旨を定義している。
FP1040タグは、no属性とid属性で、3番目に実行する機能プロバイダがFTP送信プロバイダであることを定義している。FPタグは機能プロバイダを、FPタグ1020、1030のようにtype属性を使って機能タイプで指定することもできるし、FPタグ1040のようにid属性を使って一意に指定することもできる。
Inputタグ1041は、FTP送信プロバイダの「doSend」呼び出しの入力に関する定義で、「Document」をIDが「foo」のデータ、つまり「doScan」の出力から受け取ることを示している。
Inputタグ1042も、同様にFTP送信プロバイダの「doScan」呼び出しの入力に関する定義で、「String」をIDが「bar」のデータ、つまり「doOCR」の出力から受け取ることを示している。
図11は、図5のS530〜S546の処理を説明するためのフローチャートである。このフローチャートの処理は、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
まず、ワークフロー処理部430は、ユーザからワークフローの実行指示を受け取る(S1101)と、実行指示に対応するワークフロー定義ファイル440を読み込む(S1102)。
次に、ワークフロー処理部430は、ワークフロー定義ファイル440からFPタグで定義された機能プロバイダの定義を実行順に1つ取り出す(S1103)。ここで、実行順とは、FPタグのno要素に定義された数字の若い順を意味する。
S1104において、ワークフロー処理部430は、次に実行すべき機能プロバイダの定義が存在するか否かを判定する。そして、次に実行すべき機能プロバイダの定義が存在すると判定した場合(S1104でYESの場合)、ワークフロー処理部430は、S1105へ処理を進める。
S1105では、ワークフロー処理部430は、FPタグおよびFPタグの子要素であるConditionタグから機能プロバイダの検索条件を取得し、機能プロバイダ検索部423に機能プロバイダの検索を指示する。機能プロバイダ検索部423が行う機能プロバイダの検索処理は、後述する図12のフローチャートで詳細に説明する。
ワークフロー処理部430は、機能プロバイダ検索部423から検索結果を受け取ると、検索結果として検索条件に一致する機能プロバイダが取得できたかどうかを判定する(S1106)。そして、検索結果として検索条件に一致する機能プロバイダが取得できなかったと判定した場合(S1106でNOの場合)、ワークフロー処理部430は、エラーを通知して(S1131)、ワークフローの実行処理を終了する。
一方、検索結果として検索条件に一致する機能プロバイダが取得できたと判定した場合(S1106でYESの場合)、ワークフロー処理部430は、S1107に処理を進める。
S1107では、ワークフロー処理部430は、ワークフロー定義ファイル440から処理対象となっているFPタグの子要素であるActionタグを実行順に1つ取り出す(S1107)。ここで実行順とは、Actionタグのno要素に定義された数字の若い順を意味する。
次に、S1108において、ワークフロー処理部430は、次に処理すべきActionタグが存在するか否かを判定する。そして、次に処理すべきActionタグが存在すると判定した場合(S1108でYESの場合)、ワークフロー処理部430は、S1109へ処理を進める。
S1109では、ワークフロー処理部430は、Actionタグの定義に従って、上記S1105の検索結果として取得した機能プロバイダを呼び出す。その際、ワークフロー処理部430は、Actionタグの子要素としてParameterタグまたはInputタグが定義されていれば、その定義に従って、機能プロバイダに入力を与える。例えば、Inputタグ1033はOCRプロバイダの「doOCR」呼び出しの入力に関する定義で、「Document」をIDが「foo」のデータから受け取ることを示している。IDが「foo」のデータは、Outputタグ1027で定義したスキャンプロバイダの「doScan」の出力データである。ゆえに、ワークフロー処理部430は、自身が保持している「doScan」の出力データを、「doOCR」の呼び出し時に入力データとして与える。
ワークフロー処理部430から呼び出された機能プロバイダは、指示に従って処理を実行する(S1121)。
ワークフロー処理部430は、呼び出した機能プロバイダの実行完了を待ち受ける(S1110)。そして、機能プロバイダの実行が完了したら、ワークフロー処理部430は、機能プロバイダの出力を、別の機能プロバイダの入力として使用できるようHDD214またはRAM213に保存する(S1111)。例えば、Outputタグ1027はスキャンプロバイダの「doScan」呼び出しの出力に関する定義で、「doScan」の出力である「Document」データを、IDを「foo」として保存する。機能プロバイダの出力を保存したら、ワークフロー処理部430は、次に処理すべきActionタグを取得するために、S1107へ処理を移行する。
また、上記S1108において、次に処理すべきActionタグが存在しないと判定した場合(S1108でNOの場合)、ワークフロー処理部430は、最後のActionタグまで取得し終えたと判断し、次の機能プロバイダの定義を取得するために、S1103へ移行する。
また、上記S1104において、次に実行すべき機能プロバイダの定義が存在しないと判定した場合(S1104でNOの場合)、ワークフロー処理部430は、最後の機能プロバイダまで実行し終えたと判断し、ワークフローの実行を終了する。
次に、図12のフローチャートを用いて機能プロバイダ検索部423が行う機能プロバイダの検索処理の説明を行う。
図12は、図11のS1105から呼び出される処理を例示するフローチャートであり、図5のS533、S538、S543で行われる処理に対応する。このフローチャートの処理は、MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで実現される。
まず、機能プロバイダ検索部423は、ワークフロー処理部430から、機能プロバイダの検索指示を受け取る(S1201)。この検索指示には、FPタグおよびFPタグの子要素であるConditionタグに定義された機能プロバイダの検索条件が含まれる。
次に、機能プロバイダ検索部423は、FPタグの属性として定義された機能プロバイダの指定方法をチェックする(S1202)。そして、機能プロバイダがIDで指定されていると判定した場合(S1202で「IDで指定」の場合)、機能プロバイダ検索部423は、S1231へ処理を進める。
S1231では、機能プロバイダ検索部423は、機能プロバイダ情報テーブル424から指定されたIDをもつ(すなわち、「機能プロバイダID」列に指定されたIDが定義された)機能プロバイダを抽出し、検索結果候補とする。
次に、S1232において、機能プロバイダ検索部423は、抽出の結果をチェックする。この場合、機能プロバイダを一意に特定するIDでの指定であるため、検索結果候補は1件または0件となる。
そして、機能プロバイダ検索部423は、検索結果候補が存在しないと判定した場合(S1232でNOの場合)、検索条件に一致する機能プロバイダはない、という検索結果をワークフロー処理部430に返して(S1251)、本フローチャートの処理を終了する。
一方、機能プロバイダ検索部423は、検索結果候補が存在すると判定した場合(S1232でYESの場合)、S1205へ処理を進める。
また、上記S1202において、機能プロバイダが機能タイプで指定されていると判定した場合(S1202で「機能タイプで指定」の場合)、機能プロバイダ検索部423は、S1203へ処理を進める。
S1203では、機能プロバイダ検索部423は、機能プロバイダ情報テーブル424から指定された機能タイプをもつ(すなわち、「機能タイプ」列に指定された機能タイプが定義された)機能プロバイダを抽出し、検索結果候補とする。
S1204において、機能プロバイダ検索部423は、上記S1203の抽出の結果をチェックする。なお、機能タイプでの指定であるため、同じ機能タイプを持つ機能プロバイダがMFP101に複数存在する場合、抽出される機能プロバイダも複数件になる。例えば、機能タイプを「SCAN」と指定した場合、検索結果候補は、機能プロバイダ情報テーブル424に機能タイプが「SCAN」と定義されている標準スキャンプロバイダ411と簡単スキャンプロバイダ412の2件となる。
そして、機能プロバイダ検索部423は、検索結果候補が存在しないと判定した場合(S1204でNOの場合)、検索結果候補を抽出できなかったと判断し、検索条件に一致する機能プロバイダはない、という検索結果をワークフロー処理部430に返して(S1251)、本フローチャートの処理を終了する。
一方、機能プロバイダ検索部423は、検索結果候補が存在すると判定した場合(S1204でYESの場合)、S1205へ処理を進める。
S1205では、機能プロバイダ検索部423は、検索条件として必須条件が指定されているかをチェックする。

そして、機能プロバイダ検索部423は、必須条件の指定がないと判定した場合(S1205でNOの場合)、S1208へ処理を進める。
一方、機能プロバイダ検索部423は、必須条件の指定があると判定した場合(S1205でYESの場合)、1206へ処理を進める。
S1206において、機能プロバイダ検索部423は、検索結果候補から必須条件を満たす機能プロバイダを絞り込んだ結果を新たな検索結果候補とする。必須条件を満たすかどうかは、機能プロバイダ情報テーブル424の「設定可能な値」列に、必須条件に指定された値が存在するかどうかで判別する。
次に、S1207において、機能プロバイダ検索部423は、絞り込んだ結果、検索結果候補が残っているかをチェックする。そして、機能プロバイダ検索部423は、検索結果候補が残っていないと判定した場合(S1207でNOの場合)、検索条件に一致する機能プロバイダはない、という検索結果をワークフロー処理部430に返して(S1251)、本フローチャートの処理を終了する。
一方、機能プロバイダ検索部423は、検索結果候補が残っていると判定した場合(S1207でYESの場合)、S1208へ処理を進める。
S1208では、機能プロバイダ検索部423は、検索条件としてオプション条件が指定されているかをチェックする。そして、オプション条件の指定がないと判定した場合(S1208でNOの場合)、機能プロバイダ検索部423は、S1212へ処理を進める。
一方、機能プロバイダ検索部423は、オプション条件の指定があると判定した場合(S1208でYESの場合)、S1209へ処理を進める。
S1209では、機能プロバイダ検索部423は、検索結果候補からオプション条件を満たす機能プロバイダを絞り込んだ結果を新たな検索結果候補とする。オプション条件を満たすかどうかは、機能プロバイダ情報テーブル424の「設定可能な値」列に、オプション条件に指定された値が存在するかどうかで判別する。
次に、S1210において、機能プロバイダ検索部423は、絞り込んだ結果、検索結果候補が残っているかをチェックする。そして、機能プロバイダ検索部423は、検索結果候補が残っていると判定した場合(S1210でYESの場合)、S1212へ処理を進める。
一方、検索結果候補が残っていないと判定した場合(S1210でNOの場合)、機能プロバイダ検索部423は、S1211に処理を進める。
S1211では、機能プロバイダ検索部423は、上記S1209の絞り込み結果を破棄し、検索結果候補を、上記S1209を処理する直前の内容に戻す(S1211)。つまり、オプション条件を絞り込み条件として使用しないということである。そして、S1212に処理を進める。
S1212では、機能プロバイダ検索部423は、検索結果候補から機能プロバイダ設定テーブル425の共通設定テーブルで使用禁止となっている機能プロバイダを除外する。
次に、S1213において、機能プロバイダ検索部423は、上記S1212の除外の結果、検索結果候補が残っているかをチェックする。そして、機能プロバイダ検索部423は、検索結果候補が残っていないと判定した場合(S1213でNOの場合)、検索条件に一致する機能プロバイダはない、という検索結果をワークフロー処理部430に返して(S1251)、本フローチャートの処理を終了する。
一方、検索結果候補が残っていると判定した場合(S1213でYESの場合)、機能プロバイダ検索部423は、S1214へ処理を進める。
S1214で、機能プロバイダ検索部423は、機能プロバイダ設定テーブル425の共通設定テーブルに設定されている機能タイプごとの優先順位に従って、検索結果候補に優先順位を付ける。
次に、機能プロバイダ検索部423は、ワークフローの実行を指示したユーザの属するロールに対する設定が、機能プロバイダ設定テーブル425のロール設定テーブルに存在するかをチェックする(S1215)。そして、ロールの設定がロール設定テーブルに存在しないと判定した場合(S1215でNOの場合)、機能プロバイダ検索部423は、S1219へ処理を進める。
一方、機能プロバイダ検索部423は、ロールの設定がロール設定テーブルに存在すると判定した場合(S1215でYESの場合)、S1216へ処理を進める。
S1216では、機能プロバイダ検索部423は、検索結果候補から機能プロバイダ設定テーブル425のロール設定テーブルで使用禁止となっている機能プロバイダを除外する。例えば、図9(b)では「Guest Users」ロールは「OCR_WEB」が使用禁止に設定されているため、「Guest Users」ロールに属するユーザの場合、OCRプロバイダの検索結果からWeb OCRプロバイダ414が除外される。すなわち、「Guest Users」ロールに属するユーザは、ワークフローの実行において、Web OCRプロバイダ414が使用できないということになる。
次に、S1217において、機能プロバイダ検索部423は、上記S1216での除外の結果、検索結果候補が残っているかをチェックする。そして、検索結果候補が残っていないと判定した場合(S1217でNOの場合)、機能プロバイダ検索部423は、検索条件に一致する機能プロバイダはない、という検索結果をワークフロー処理部430に返して(S1251)、本フローチャートの処理を終了する。
一方、機能プロバイダ検索部423は、検索結果候補が残っていると判定した場合(S1217でYESの場合)、S1218へ処理を進める。
S1218では、機能プロバイダ検索部423は、機能プロバイダ設定テーブル425のロール設定テーブルに設定されている機能タイプごとの優先順位に従って、上記S1214で付けられた検索結果候補の優先順位を更新する。
次に、機能プロバイダ検索部423は、ワークフローの実行を指示したユーザに対する設定が、機能プロバイダ設定テーブル425のユーザ設定テーブルに存在するかをチェックする(S1219)。そして、ユーザの設定がユーザ設定テーブルに存在しないと判定した場合(S1219でNOの場合)、機能プロバイダ検索部423は、S1223へ処理を進める。
一方、機能プロバイダ検索部423は、ユーザの設定がユーザ設定テーブルに存在すると判定した場合(S1219でYESの場合)、S1220へ処理を進める。
S1220では、機能プロバイダ検索部423は、検索結果候補から機能プロバイダ設定テーブル425のユーザ設定テーブルで使用禁止となっている機能プロバイダを除外する。
次に、S1221において、機能プロバイダ検索部423は、上記S1220での除外の結果、検索結果候補が残っているかをチェックする。そして、検索結果候補が残っていない場合と判定した場合(S1221でNOの場合)、機能プロバイダ検索部423は、検索条件に一致する機能プロバイダはない、という検索結果をワークフロー処理部430に返して(S1251)、本フローチャートの処理を終了する。
一方、機能プロバイダ検索部423は、検索結果候補が残っていると判定した場合(S1221でYESの場合)、S1222へ処理を進める。
S1222では、機能プロバイダ検索部423は、機能プロバイダ設定テーブル425のユーザ設定テーブルに設定されている機能タイプごとの優先順位に従って、検索結果候補の優先順位を更新する。例えば、図9(a)の例では、機能タイプ「SCAN」の優先順位は「NORMAL_SCAN,EASY_SCAN」と設定されているが、図9(c)のユーザ「tanaka」では「EASY_SCAN,NORMAL_SCAN」となっている。また、図9(b)のロール設定テーブルでは機能タイプ「SCAN」の優先順位は設定されていない。そのため、ロール設定テーブルおよびユーザ設定テーブルに「SCAN」の優先順位が設定されていないユーザの場合、優先順位が「標準スキャンプロバイダ411、簡単スキャンプロバイダ412」の順になる。一方、ユーザ「tanaka」の場合、優先順位は「簡単スキャンプロバイダ412、標準スキャンプロバイダ411」の順になる。そして、S1223に処理を進める。
S1223では、機能プロバイダ検索部423は、検索結果候補のうち、最も優先順位が高い機能プロバイダを、検索結果としてワークフロー処理部430に返して、本フローチャートの処理を終了する。
以上の実施例で説明した構成により、複数の機能プロバイダを組み合わせて複数の工程からなる一連の処理として実行するための機能、および、一連の処理のなかで使用する機能プロバイダを実行時に動的に決定するための機能を提供することができる。このような構成により、拡張プログラムとしての機能プロバイダを用いた拡張機能の柔軟な運用が可能になる。
例えば、「スキャンしてOCRを実行後、送信する」という機能を実現するにあたって、使用するOCRエンジンを切り替えたいというケースがある。MFP101上のOCRエンジンを利用していたが、より文字認識性能の良いOCRエンジンに切り替えたい、といった要求が発生したと仮定する。ここでは、外部のWebサーバが提供するOCR機能を1ヶ月間お試し利用して、結果が良ければ継続利用、結果が悪ければMFP101上のOCR機能に戻すか、または、さらに別のOCR機能を試す、という措置を例に説明を行う。
アプリの場合、OCRエンジンを外部Webサーバのものを使用するように切り替えるためには、アプリのプログラムを作り直す必要がある。さらに、1ヶ月後のお試し利用の後、OCR機能をMFP101のものに戻す場合は、お試し利用の前に使っていたアプリに戻す必要がある。もしくは、アプリのプログラムを作り直した際に、OCRエンジンを切り替えるための、スイッチを追加しておく必要がある。また、別のOCR機能を試すのであれば、さらにアプリのプログラムを修正する必要があり、手間であった。
また、本発明を適用しない一般的なワークフロー処理システムの場合、呼び出す処理はワークフロー定義ファイルでのみコントロールしている。そのため、OCRエンジンを使い分けるためには、ワークフロー処理プログラムを外部WebサーバのOCR呼び出しに対応するように改修をしたうえで、複数のワークフロー定義ファイルを用意する必要がある。もともと「スキャンしてMFP101上のOCRを実行後、送信する」というワークフロー定義ファイルが存在しているところに、「スキャンして外部WebサーバのOCRを実行後、送信する」というワークフロー定義ファイルを別途作成する。そのうえで、お試し利用する1ヶ月間と、その後の期間で使用するワークフロー定義ファイルを変更する必要があり、非常に手間であった。なお、OCRエンジンを切り替える複雑な定義ファイルを作成することも考えられるが、このような複雑な定義ファイルをエンドユーザ側で作成するのは非常に困難であった。
一方、本発明のワークフロー処理システムであれば、容易にOCRエンジンの切り替えが可能になる。もともとワークフロー定義ファイルには処理内容として「スキャンプロバイダの実行」、「OCRプロバイダの実行」、「送信プロバイダの実行」のように機能タイプで処理が定義されている。OCRエンジンを切り替える場合、新しいOCRエンジンに対応するOCRプロバイダをMFP101に追加する。その後、機能プロバイダ設定テーブル425の共通設定テーブルで機能タイプがOCRの優先順位を変更する。その場合、既存のOCRプロバイダ、ワークフロー処理部430、ワークフロー定義ファイルは全く変更する必要はない。お試し期間後、MFP101上のOCRを使うように戻したければ、OCRの優先順位を変更するだけで元に戻すことができる。
次に、別の例として、「スキャンしてOCRを実行後、送信する」という機能を実現するにあたって、ユーザによって使用するスキャン設定画面を切り替えたいというケースがある。例えば、MFP101をほとんど使ったことのない初心者には簡易なスキャン設定画面を表示して、一般的なユーザには標準的なスキャン設定画面を表示したいという要求が発生したと仮定する。
アプリの場合、スキャン設定画面以外の機能がまったく同じであっても、簡易なスキャン設定画面を使用するアプリと、標準的なスキャン設定画面を使用するアプリの2つのアプリが必要になる。さらに、2つのアプリを作った場合、ユーザによってどちらのアプリを使用するかの使い分けが必要になり、手間であった。
また、本発明を適用しない一般的なワークフロー処理システムの場合、ユーザによって使用するスキャン設定画面を変えるためには、複数のワークフロー定義ファイルが必要になる。必要になるのは、簡易なスキャン設定画面を使用するワークフロー定義ファイルと、標準的なスキャン設定画面を使用するワークフロー定義ファイルの2つである。さらに、2つのワークフロー定義ファイルを作った場合、ユーザによってどちらのワークフロー定義ファイルを使用するかの使い分けが必要になり、手間であった。また、使用するスキャン設定画面を切り替える複雑な定義ファイルをエンドユーザ側で作成するのは非常に困難であった。
一方、本発明のワークフロー処理システムであれば、容易にユーザによって使用するスキャン設定画面の切り替えが可能になる。もともとワークフロー定義ファイルには処理内容として「スキャンプロバイダの実行」、「OCRプロバイダの実行」、「送信プロバイダの実行」のように機能タイプで処理が定義されている。スキャン設定画面を切り替えたいユーザは、機能プロバイダ設定テーブル425のユーザ設定テーブルの機能タイプがSCANの優先順位を変更する。ユーザ設定テーブルにSCANの優先順位が設定されていないユーザは、共通設定テーブルに定義されたSCANの優先順位が使用される。
このように、ワークフロー定義ファイルにおいて一連の処理を機能プロバイダの機能タイプで指定し、実行時に機能プロバイダ管理部420によって使用する機能プロバイダを動的に決定する構成を設けることにより、拡張機能の柔軟な運用が可能になる。
なお、上記実施例では、本発明の情報処理装置としてMFPを用いて説明したが、本発明を適用可能な装置はMFPのような装置に限定されるものではなく、他の情報処理装置であってもよい。機能の種類ごとに定められたインタフェースを持つ拡張プログラムである機能プロバイダを追加可能であり、複数の機能プロバイダから提供される機能を組み合わせたワークフローを実行可能な装置であれば、本発明を適用可能である。例えば、テレビジョン等の家電や、カーナビゲーション装置などであっても、本発明を適用可能である。

なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
101 MFP
410 拡張ソフト管理部
420 機能プロバイダ管理部
430 ワークフロー処理部
440 ワークフロー定義ファイル

Claims (15)

  1. 画像形成装置であって、
    複数のプログラムをインストールするインストール手段と、
    前記複数のインストールされたプログラムのそれぞれについて、プログラムを一意に特定する識別情報とプログラムの機能タイプを示す機能タイプ情報とを含む情報を登録する登録手段と、
    複数の工程からなる一連の処理を定義するワークフロー定義ファイルに従って複数のプログラムを組み合わせて一連の処理を実行するワークフローの実行指示を受け付ける受付手段と、
    前記複数の工程を含む処理手順を定義し、前記工程ごとに、プログラムの識別情報またはプログラムの機能タイプのいずれかで指定されている、前記実行指示に対応するワークフロー定義ファイルを取得する取得手段と、
    前記ワークフロー定義ファイルにおいて、前記工程ごとに、プログラムの指定が、プログラムの識別情報と、プログラムの機能タイプのどちらでなされているかの判定をする判定手段と、
    前記判定において、プログラムの指定が、プログラムの識別情報で指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている識別情報のプログラムを検索し、前記判定において、プログラムの指定が、プログラムの機能タイプで指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている機能タイプのプログラムを検索する検索手段と、
    前記ワークフロー定義ファイルにおける複数の工程について、前記工程ごとに、前記検索の結果に基づいて決定したプログラムを順次実行する実行手段と、
    を有することを特徴とする画像形成装置。
  2. 前記取得手段で取得されるワークフロー定義ファイルにおいて、プログラムの指定がプログラムの機能タイプで指定されている工程においては、プログラムの機能の条件がさらに指定されている
    ことを特徴とする請求項1に記載の画像形成装置。
  3. 前記プログラムの機能の条件は、必須条件であるか、オプション条件であるかの情報をさらに含む
    ことを特徴とする請求項2に記載の画像形成装置。
  4. 前記検索手段は、前記登録されている情報と前記ワークフロー定義ファイルの前記必須条件であるプログラムの機能の条件に基づいて、前記インストールされている複数のプログラムから、指定されている機能タイプのプログラムを検索し、検索の結果、前記指定されている機能タイプのプログラムが存在する場合に、前記登録されている情報と前記ワークフロー定義ファイルの前記オプション条件であるプログラムの機能の条件に基づいて、前記検索した結果を絞り込む
    ことを特徴とする請求項3に記載の画像形成装置。
  5. 前記登録手段は、前記工程を実行するプログラムの能力を示す能力情報をさらに登録し、
    前記処理手順が前記実行手段により実行され場合に、前記検索手段は、前記登録されたプログラムの能力情報にしたがって指定された機能の条件について、前記処理手順の複数の工程ごとに、前記機能タイプにより指定されたプログラムを動的に決定する
    ことを特徴とする請求項2乃至4の何れか1項に記載の画像形成装置。
  6. 前記工程を実行するプログラムの優先順位を機能タイプごとに設定する設定手段をさらに有し、
    前記処理手順が前記実行手段により実行され場合に、前記検索手段は前記設定手段により設定された前記工程を実行するプログラムの前記優先順位にしたがって、前記処理手順の複数の工程ごとに、前記機能タイプにより指定されたプログラムを動的に決定する
    ことを特徴とする請求項1乃至の何れか1項に記載の画像形成装置。
  7. 前記工程を実行するプログラムは、拡張プログラムである
    ことを特徴とする請求項1乃至の何れか1項に記載の画像形成装置。
  8. 画像形成装置の制御方法を実行させるためのプログラムを記憶したコンピュータで読み取り可能な記憶媒体であって、前記制御方法は、
    複数のプログラムをインストールするインストール・ステップと、
    前記複数のインストールされたプログラムのそれぞれについて、プログラムを一意に特定する識別情報とプログラムの機能タイプを示す機能タイプ情報とを含む情報を登録する登録ステップと、
    複数の工程からなる一連の処理を定義するワークフロー定義ファイルに従って複数のプログラムを組み合わせて一連の処理を実行するワークフローの実行指示を受け付ける受付ステップと、
    前記複数の工程を含む処理手順を定義し、前記工程ごとに、プログラムの識別情報またはプログラムの機能タイプのいずれかで指定されている、前記実行指示に対応するワークフロー定義ファイルを取得する取得ステップと、
    前記ワークフロー定義ファイルにおいて、前記工程ごとに、プログラムの指定が、プログラムの識別情報と、プログラムの機能タイプのどちらでなされているかの判定をする判定ステップと、
    前記判定において、プログラムの指定が、プログラムの識別情報で指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている識別情報のプログラムを検索し、前記判定において、プログラムの指定が、プログラムの機能タイプで指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている機能タイプのプログラムを検索する検索ステップと、
    前記ワークフロー定義ファイルにおける複数の工程について、前記工程ごとに、前記検索の結果に基づいて決定したプログラムを順次実行する実行ステップと、
    を有することを特徴とする記憶媒体。
  9. 前記取得ステップで取得されるワークフロー定義ファイルにおいて、プログラムの指定がプログラムの機能タイプで指定されている工程においては、プログラムの機能の条件がさらに指定されている
    ことを特徴とする請求項に記載の記憶媒体。
  10. 前記プログラムの機能の条件は、必須条件であるか、オプション条件であるかの情報をさらに含む
    ことを特徴とする請求項9に記載の記憶媒体。
  11. 前記検索ステップで、前記登録されている情報と前記ワークフロー定義ファイルの前記必須条件であるプログラムの機能の条件に基づいて、前記インストールされている複数のプログラムから、指定されている機能タイプのプログラムを検索し、検索の結果、前記指定されている機能タイプのプログラムが存在する場合に、前記登録されている情報と前記ワークフロー定義ファイルの前記オプション条件であるプログラムの機能の条件に基づいて、前記検索した結果を絞り込む
    ことを特徴とする請求項10に記載の記憶媒体。
  12. 前記登録ステップで、前記工程を実行するプログラムの能力を示す能力情報をさらに登録し、
    前記処理手順が前記実行ステップで実行される場合に、前記検索ステップで、前記登録されたプログラムの能力情報にしたがって指定された機能の条件について、前記処理手順の複数の工程ごとに、前記機能タイプにより指定されたプログラムを動的に決定する
    ことを特徴とする請求項9乃至11の何れか1項に記載の記憶媒体。
  13. 前記工程を実行するプログラムの優先順位を機能タイプごとに設定する設定ステップをさらに有し、
    前記処理手順が前記実行ステップで実行され場合に、前記検索ステップで前記設定ステップで設定された前記工程を実行するプログラムの前記優先順位にしたがって、前記処理手順の複数の工程ごとに、前記機能タイプにより指定されたプログラムを動的に決定する
    ことを特徴とする請求項乃至12の何れか1項に記載の記憶媒体。
  14. 前記工程を実行するプログラムは、拡張プログラムである
    ことを特徴とする請求項乃至13の何れか1項に記載の記憶媒体。
  15. 画像形成装置の制御方法であって、
    複数のプログラムをインストールするインストール・ステップと、
    前記複数のインストールされたプログラムのそれぞれについて、プログラムを一意に特定する識別情報とプログラムの機能タイプを示す機能タイプ情報とを含む情報を登録する登録ステップと、
    複数の工程からなる一連の処理を定義するワークフロー定義ファイルに従って複数のプログラムを組み合わせて一連の処理を実行するワークフローの実行指示を受け付ける受付ステップと、
    前記複数の工程を含む処理手順を定義し、前記工程ごとに、プログラムの識別情報またはプログラムの機能タイプのいずれかで指定されている、前記実行指示に対応するワークフロー定義ファイルを取得する取得ステップと、
    前記ワークフロー定義ファイルにおいて、前記工程ごとに、プログラムの指定が、プログラムの識別情報と、プログラムの機能タイプのどちらでなされているかの判定をする判定ステップと、
    前記判定において、プログラムの指定が、プログラムの識別情報で指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている識別情報のプログラムを検索し、前記判定において、プログラムの指定が、プログラムの機能タイプで指定されていると判定された場合、前記登録されている情報に基づいて、前記インストールされている複数のプログラムから、指定されている機能タイプのプログラムを検索する検索ステップと、
    前記ワークフロー定義ファイルにおける複数の工程について、前記工程ごとに、前記検索の結果に基づいて決定したプログラムを順次実行する実行ステップと、
    を有することを特徴とする画像形成装置の制御方法。
JP2015120996A 2015-06-16 2015-06-16 画像形成装置、画像形成装置の制御方法、及び記憶媒体 Active JP6618280B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015120996A JP6618280B2 (ja) 2015-06-16 2015-06-16 画像形成装置、画像形成装置の制御方法、及び記憶媒体
US15/175,481 US9781287B2 (en) 2015-06-16 2016-06-07 Information processing apparatus, method of controlling information processing apparatus, and program
CN201610417229.4A CN106257904B (zh) 2015-06-16 2016-06-14 信息处理装置及信息处理装置的控制方法
US15/691,341 US10425549B2 (en) 2015-06-16 2017-08-30 Information processing apparatus, method of controlling information processing apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015120996A JP6618280B2 (ja) 2015-06-16 2015-06-16 画像形成装置、画像形成装置の制御方法、及び記憶媒体

Publications (3)

Publication Number Publication Date
JP2017001368A JP2017001368A (ja) 2017-01-05
JP2017001368A5 JP2017001368A5 (ja) 2018-07-19
JP6618280B2 true JP6618280B2 (ja) 2019-12-11

Family

ID=57588674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015120996A Active JP6618280B2 (ja) 2015-06-16 2015-06-16 画像形成装置、画像形成装置の制御方法、及び記憶媒体

Country Status (3)

Country Link
US (2) US9781287B2 (ja)
JP (1) JP6618280B2 (ja)
CN (1) CN106257904B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6762727B2 (ja) * 2016-01-26 2020-09-30 キヤノン株式会社 情報処理装置、情報処理装置のデータ処理方法、及びプログラム
CN112463728A (zh) * 2020-11-27 2021-03-09 成都材智科技有限公司 一种科技文献的题录数据提取方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63286397A (ja) 1987-05-19 1988-11-24 株式会社リヒトラブ ファイル
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
JP2004259096A (ja) * 2003-02-27 2004-09-16 Fuji Xerox Co Ltd 情報処理装置及び画像処理装置、並びに機能追加方法、そのプログラム及びそのプログラムを記録した記録媒体
JP4478535B2 (ja) * 2004-08-27 2010-06-09 キヤノン株式会社 画像処理装置、並びにその制御方法、プログラム、及び記憶媒体
JP4039439B2 (ja) 2005-07-11 2008-01-30 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置及び画像形成装置の機能追加方法
JP5167897B2 (ja) * 2007-04-27 2013-03-21 株式会社リコー 電子機器、情報処理方法、及び情報処理プログラム
JP5244743B2 (ja) * 2009-08-31 2013-07-24 京セラドキュメントソリューションズ株式会社 画像形成装置およびインストール方法
JP5743724B2 (ja) * 2011-02-15 2015-07-01 キヤノン株式会社 管理装置及び管理方法、管理システムとネットワークデバイス
JP5884542B2 (ja) * 2012-02-17 2016-03-15 株式会社リコー 機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP2014164680A (ja) * 2013-02-27 2014-09-08 Canon Inc 画像処理装置、情報処理方法及びプログラム
US9124752B2 (en) * 2013-09-12 2015-09-01 Ricoh Company, Ltd. Activation of functions in a multi-functional apparatus on demand
JP2016018344A (ja) * 2014-07-07 2016-02-01 キヤノン株式会社 画像形成装置および情報処理装置、自動設置システム、自動設置方法
JP2016035713A (ja) * 2014-08-04 2016-03-17 キヤノン株式会社 情報処理装置、情報処理装置における機能拡張方法、プログラム、およびシステム
JP2016035714A (ja) * 2014-08-04 2016-03-17 キヤノン株式会社 情報処理装置、情報処理装置におけるプログラム管理方法、プログラム、およびシステム
JP2016099813A (ja) * 2014-11-21 2016-05-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6555966B2 (ja) * 2015-07-31 2019-08-07 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
US10425549B2 (en) 2019-09-24
US20160373602A1 (en) 2016-12-22
US20170366695A1 (en) 2017-12-21
US9781287B2 (en) 2017-10-03
CN106257904B (zh) 2019-07-19
CN106257904A (zh) 2016-12-28
JP2017001368A (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
KR100853050B1 (ko) 정보 처리 장치와 그 제어 방법 및 프로그램
JP4565505B2 (ja) 印刷制御装置、印刷制御方法、プログラム及び記録媒体
US7325235B2 (en) Data processing apparatus, data processing method, program, and storage medium
JP2008097574A (ja) 情報処理装置、プログラム及びその記録媒体
JP2020004158A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP7434001B2 (ja) 情報処理装置、プログラム、情報処理方法
US10122882B2 (en) Information processing apparatus, control method for information processing apparatus, and program storage medium, relating to displaying setting screens associated with extension software
JP6456062B2 (ja) 印刷装置、印刷装置の制御方法、およびプログラム
JP2008310495A (ja) 印刷制御装置および印刷制御方法および記憶媒体
JP2018015947A (ja) 画像形成装置、画像形成方法、およびプログラム
JP6618280B2 (ja) 画像形成装置、画像形成装置の制御方法、及び記憶媒体
JP5511483B2 (ja) 情報処理装置、制御方法、およびプログラム
JP6555966B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2019197249A (ja) プログラム
JP2018120348A (ja) 情報処理装置及びその制御方法、並びにプログラム
US20150237226A1 (en) Printing instruction apparatus, image forming system, printing instruction method, and computer readable medium
JP5812769B2 (ja) 文書管理システム、文書管理方法、プログラム
JP5417043B2 (ja) 画像形成装置、画像形成システム及び画像処理方法
JP2022137608A (ja) 情報処理装置、情報処理方法およびプログラム
JP2010224729A (ja) 情報処理装置、ネットワーク設定方法、及びプログラム
JP2018082343A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP7328410B2 (ja) アプリケーション、方法及び記録媒体
JP7292988B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2003050684A (ja) 印刷システム、印刷装置、データ処理装置、それらの環境設定方法、プログラム及び記憶媒体
JP6851897B2 (ja) 情報処理装置、システム、情報処理方法及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191112

R151 Written notification of patent or utility model registration

Ref document number: 6618280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151