JP2022032145A - 情報処理システム、処理実行システム、処理実行方法、プログラム - Google Patents

情報処理システム、処理実行システム、処理実行方法、プログラム Download PDF

Info

Publication number
JP2022032145A
JP2022032145A JP2020135661A JP2020135661A JP2022032145A JP 2022032145 A JP2022032145 A JP 2022032145A JP 2020135661 A JP2020135661 A JP 2020135661A JP 2020135661 A JP2020135661 A JP 2020135661A JP 2022032145 A JP2022032145 A JP 2022032145A
Authority
JP
Japan
Prior art keywords
external
external server
component
program
information 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.)
Pending
Application number
JP2020135661A
Other languages
English (en)
Inventor
慶一 井上
Keiichi Inoue
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 JP2020135661A priority Critical patent/JP2022032145A/ja
Priority to US17/444,486 priority patent/US20220053050A1/en
Publication of JP2022032145A publication Critical patent/JP2022032145A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1432Metric aspects
    • H04L12/1439Metric aspects time-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/51Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP for resellers, retailers or service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/60Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP based on actual use of network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/61Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP based on the service used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/82Criteria or parameters used for performing billing operations
    • H04M15/8214Data or packet based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】処理フローに含まれるプログラムに応じて外部サーバの稼働状態を制御すること。【解決手段】機器20及び外部サーバと通信し、機器から指定された一連の処理を実行する情報処理システム50であって、前記機器が指定した前記一連の処理に基づいて外部サーバで実行されるプログラムを特定するプログラム管理部72と、前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態の制御を外部に要求する外部サービス制御部57と、を有することを特徴とする。【選択図】図1

Description

本発明は、情報処理システム、処理実行システム、処理実行方法、及び、プログラムに関する。
ユーザが複数の処理から任意の処理を選択し、それらを順番に接続した一連の処理を処理フローとして登録し、登録されている複数の処理フローから任意の処理フローを選択して実行できる情報処理システムが知られている。情報処理システムでは処理フローをユーザが生成するためのグラフィカルなWebアプリ等が提供されており、ユーザはWebブラウザ等から処理フローを作成できるようになっている。処理フローはクラウドサーバ等を利用して実行されるため、クラウドサーバの使用料などのコストが生じる場合がある。
複数の処理を実行するシステムのコストを低減する技術が考案されている(例えば、特許文献1参照。)。特許文献1には、ホスト計算機を停止状態へ移行させることで計算機システム全体の消費電力を抑制しながら、停止状態となったホスト計算機が利用可能になるまでの待ち時間を抑制して計算機システム全体の性能向上を図るホスト計算機について開示されている。
しかしながら、従来の技術では、処理フローに含まれるプログラムに応じて外部サーバの稼働状態を制御できないという問題があった。まず、ユーザはWebアプリ等でコンポーネントを組み合わせて処理フローを作る。コンポーネントは処理フロー内の処理を受け持つプログラムである。このプログラムを外部のベンダー(協力会社)が開発することもある。
自社又は外部のベンダーが開発していたプログラムの実行により他のプログラムの処理に影響が生じること、及び、サービス全体の品質低下を防ぐため、処理フロー内の処理を実行するプログラムが外部サーバに保存され、実行される場合がある。しかし、外部サーバは従量課金制で、外部サーバの稼働時間に比例してコストが増大してしまうため、サービス提供側としては外部サーバを利用したい場合に外部サーバを起動させ、外部サーバを利用していない場合は外部サーバの稼働を停止したい。しかし、サービス提供側は、外部サーバ内にあるどのプログラムをだれが利用したいかを事前に知ることができないため、常に稼働状態にしておく必要があり、無駄なコストがかかってしまう。
本発明は、上記課題に鑑み、処理フローに含まれるプログラムに応じて外部サーバの稼働状態を制御することができる情報処理システムを提供することを目的とする。
上記課題に鑑み、本発明は、機器及び外部サーバと通信し、機器から指定された一連の処理を実行する情報処理システムであって、前記機器が指定した前記一連の処理に基づいて外部サーバで実行されるプログラムを特定するプログラム管理部と、前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態の制御を外部に要求する外部サービス制御部と、を有することを特徴とする。
処理フローに含まれるプログラムに応じて外部サーバの稼働状態を制御することができる情報処理システムを提供できる。
一実施形態に係る処理実行システムのシステム構成の例を示す図である。 コンピュータシステムのハードウェア構成図の一例である。 画像形成装置のハードウェア構成図の一例である。 処理実行システムの機能をブロックに分けて説明する機能ブロック図の一例である。 実行予定のコンポーネント情報を模式的に示す図の一例である。 アプリ情報を模式的に示す図の一例である。 I/Oロジック処理部が有する機能をブロックに分けて説明する機能ブロック図の一例である。 外部コンポーネントサービスが有するコンポーネント処理部の機能をブロックに分けて説明する機能ブロック図の一例である。 共通I/Fと固有I/Fの一例を示す図である。 情報処理システムが処理フローを実行する手順を示すシーケンス図の一例である。 コンポーネント処理部が処理フローを実行する手順を示すシーケンス図の一例である。 I/Oロジック処理部が外部コンポーネントサービス上のコンポーネントと情報処理システムのコンポーネントを含む処理フローを実行する手順を説明するシーケンス図の一例である。 情報処理システムが処理フローを実行し、外部サーバの稼働状態を制御する手順を示すシーケンス図の一例である(その1)。 情報処理システムが処理フローを実行し、外部サーバの稼働状態を制御する手順を示すシーケンス図の一例である(その2)。 複数のコンポーネントを有する処理フローが実行される場合を説明する図である。 複数のコンポーネントを有する処理フローが複数のユーザにより並行に実行される場合を説明する図である。 情報処理システムが冗長構成を有する場合に、情報処理システムが有する外部コンポーネントサービス管理データベースを示す図の一例である。 外部コンポーネントサービス管理データベースの構造を説明する図である。 情報処理システムが冗長構成の場合に処理フローを実行する処理を示すシーケンス図の一例である(その1)。 情報処理システムが冗長構成の場合に処理フローを実行する処理を示すシーケンス図の一例である(その2)。
以下、本発明を実施するための形態の一例として、処理実行システム及び処理実行システムが行う処理実行方法について図面を参照しながら説明する。
<本実施形態における処理フローの実行方法の概略>
処理フローは、コンポーネントが実行順に組み合わされている。ユーザが処理フローを選択し、処理実行システムが該処理フローを実行すると、実行順にコンポーネントを実行していく。処理フローに含まれる各コンポーネントの一部が外部サーバにて管理及び保存される場合がある。どの外部サーバがどのコンポーネントを管理及び保存するかは予め決まっている。
そこで、本実施形態では、コンポーネントごとに、そのコンポーネントを実行する外部サーバの稼働を継続すべきか否か情報処理システムが判断し、外部サーバの実行が必要のない間は外部サーバの稼働を停止させる。これにより、コンポーネントが外部サーバで管理及び保存されることによる無駄なコストを抑制することができる。
<用語について>
コンポーネントとは、一連の処理に含まれる処理を実行するプログラムである。コンポーネントは、モジュール、プラグイン、アドインなどと呼ばれてもよい。
外部サーバとは、情報処理システムから見て外部に存在するサーバである。外部とは利用に支払いが生じることをいう。
一連の処理とは予め決まった流れで実行される1つ以上の処理をいう。このような処理はワークフローと呼ばれる場合もある。
稼働状態とは、生産に供する状態かそうでない状態かをいう。サーバの場合はユーザが利用可能な状態かどうかである。本実施形態では課金される状態か否かをいう場合がある。
<システム構成例>
図1は、一実施形態に係る処理実行システム100のシステム構成の例を示す図である。処理実行システム100は、外部サーバシステム40、ユーザ環境E2にある機器20、外部ストレージシステム30、及び、サービス提供環境E1にある情報処理システム50がネットワークを介して通信することができる。
サービス提供環境E1は、ネットワークN1を介してクラウドサービス等のサービスを提供するシステム環境である。なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して本実施の形態が適用されてもよい。
サービス提供環境E1は、一台以上の情報処理装置で実現される情報処理システム50を有する。情報処理システム50は、ネットワークN1を介して種々のサービスを提供する。例えば、情報処理システム50は、ユーザ環境E2の機器20において原稿をスキャンして生成された電子ファイルを、OCR(Optical Character Reader)処理して、外部ストレージシステム30に保存するサービス(スキャン配信サービス)を提供する。また、例えば、情報処理システム50は、外部ストレージシステム30に保存されている電子ファイルを、ユーザ環境E2の機器20で印刷するサービス(クラウドプリントサービス)を提供する。本実施形態では、情報処理システム50は、このようなスキャン配信サービス及びクラウドプリントサービスを提供するものとして説明する。
ただし、情報処理システム50により提供されるサービスは、これらに限られず、例えば、外部ストレージシステム30に保存されている電子ファイルを、ユーザ環境E2のプロジェクタで投影するサービス等であってもよい。また、機器20において原稿をスキャンして生成された電子ファイルを、OCR処理した後、所定の言語に翻訳(例えば、英語から日本語に翻訳)して、外部ストレージシステム30に保存するサービス等であってもよい。
なお、情報処理システム50の全部又は一部は、ユーザ環境E2に設置されていてもよい。すなわち、情報処理システム50を構成する情報処理装置の全部又は一部は、ユーザ環境E2(オンプレミス)に包含されていてもよい。
ユーザ環境E2は、例えば機器20を使用するユーザである企業等におけるシステム環境である。ユーザ環境E2では、一台以上の機器20が例えばLAN(Local Area Network)等のネットワークを介して接続されている。
本実施形態に係る機器20は、プリント機能及びスキャナ機能を有する画像形成装置を一例とする。なお、画像形成装置は、プリント機能及びスキャナ機能以外に、コピー機能やファックス(FAX)通信機能等を備える複合機やMFP(Multifunction Peripheral/Printer/Product)。等でもよい。
外部ストレージシステム30は、ネットワークを介してストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供する1つ以上の情報処理装置である。ストレージサービスとは、外部ストレージシステム30のストレージの記憶領域を貸し出すサービスである。例えば、BOX(登録商標)、One Drive(登録商標)、などの商用サービスがある。
本実施形態では、スキャン配信サービスにおいて、外部ストレージシステム30によって貸し出される記憶領域に、OCR処理された電子ファイルを保存(アップロード)する。また、本実施形態では、クラウドプリントサービスにおいて、外部ストレージシステム30によって貸し出される記憶領域から印刷対象となる電子ファイルを取得(ダウンロード)する。なお、以降では、複数の外部ストレージシステム30について、各々を区別するときは、「外部ストレージシステム30」、「外部ストレージシステム30」等と添え字を用いて記載する。また、外部ストレージシステム30によって提供されるサービスの名称を「ストレージサービスA」、外部ストレージシステム30によって提供されるサービスの名称を「ストレージサービスB」等とする。
なお、外部ストレージシステム30は、複数台の情報処理装置によって実現されるシステムであってもよい。また、図1に示される情報処理システム50の構成は一例であって、他の構成であってもよい。例えば、上記したように、ユーザ環境E2は、画像形成装置に加えて又は画像形成装置に代えて、プロジェクタ、電子黒板等の各種機器を有していてもよい。
外部サーバシステム40は、主に外部ベンダーが作成したコンポーネントを管理及び実行する1台以上の情報処理装置である。ただし、情報処理システム50の運営元が開発したコンポーネントが管理及び実行されてもよく、コンポーネントの開発元は問わない。外部サーバシステム40は、オンデマンドに情報処理装置の機能の利用を許可するクラウドサービスである。利用に対して外部サーバシステム40は、時間、容量、及び、機能(CPUの数)などに対して課金する。利用の契約をした顧客は外部サーバシステム40が提供するリソースを自分専用の外部サーバとして使用できる。本実施形態ではベンダーごとに専用の外部サーバを構築できる。ただし、外部サーバの粒度はベンダーごとに限らず、複数のベンダーが開発した複数のコンポーネントを1つの外部サーバで稼働させてもよい。
このようなクラウドサービスとしては、IaaS(Infrastructure as a Service)やPaaS(Platform as a Service)がある。また、商用サービスとしては、Google Compute Engine、Amazon Elastic Compute Cloud(登録商標)などが知られている。数の外部サーバシステム40について、各々を区別するときは、「外部サーバシステム40」、「外部サーバシステム40」等と添え字を用いて記載する。
<ハードウェア構成>
<<コンピュータシステム>>
図2は、コンピュータシステムのハードウェア構成図である。外部サーバシステム40,外部ストレージシステム30、及び、情報処理システム50は図2に示されているハードウェア構成を有している。
コンピュータシステムは、図2に示されているように、CPU501、ROM502、RAM503、HD504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、バスライン510、キーボード511、ポインティングデバイス512、DVD-RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。
これらのうち、CPU501は、コンピュータシステム全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。ディスプレイ506は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F509は、通信ネットワークを利用してデータ通信をするためのインターフェースである。バスライン510は、図2に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
また、キーボード511は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ514は、着脱可能な記録媒体の一例としてのDVD-RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。
<<画像形成装置>>
図3は、画像形成装置のハードウェア構成図である。図3に示されているように、画像形成装置は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。
これらのうち、コントローラ910は、コンピュータの主要部であるCPU901、システムメモリ(MEM-P)902、ノースブリッジ(NB)903、サウスブリッジ(SB)904、ASIC(Application Specific Integrated Circuit)906、記憶部であるローカルメモリ(MEM-C)907、HDDコントローラ908、及び、記憶部であるHD909を有し、NB903とASIC906との間をAGP(Accelerated Graphics Port)バス921で接続した構成となっている。
これらのうち、CPU901は、画像形成装置の全体制御を行う制御部である。NB903は、CPU901と、MEM-P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM-P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
MEM-P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
SB904は、NB903とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC906は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス921、PCIバス922、HDDコントローラ908及びMEM-C907をそれぞれ接続するブリッジの役割を有する。このASIC906は、PCIターゲット及びAGPマスタ、ASIC906の中核をなすアービタ(ARB)、MEM-C907を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部931及びプリンタ部932との間でPCIバス922を介したデータ転送を行うPCIユニットとからなる。なお、ASIC906には、USB(Universal Serial Bus)のインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしてもよい。
MEM-C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
また、近距離通信回路920には、近距離通信回路のアンテナ920aが備わっている。近距離通信回路920は、NFC、Bluetooth(登録商標)等の通信回路である。
更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなるキーボード940bを備えている。コントローラ910は、画像形成装置全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
なお、画像形成装置は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリント機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリント機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
また、ネットワークI/F950は、通信ネットワークを利用してデータ通信をするためのインターフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。
<情報処理システムが有する機能について>
図4は、処理実行システムの機能をブロックに分けて説明する機能ブロック図の一例である。
<<情報処理システム>>
まず、情報処理システム50は、ドキュメントサービス51、外部サービス連携部54、入出力サービス55、及び、通信部61を有している。情報処理システム50が有するこれら機能は、図2に示されている各構成要素のいずれかが、HD504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって動作することで実現される機能又は手段である。
また、情報処理システム50は、実行予定のコンポーネント情報52、及び、アプリ情報53を記憶している。これらは、図2に示されているHD504やRAM503上に形成される記憶部に記憶される情報である。
通信部61は、機器20と各種の情報を送受信する。本実施形態では、機器20が表示する画面情報等を機器20に送信し、機器20が読み取った画像データやファイル等を機器20から受信する。なお、図が煩雑になるので省略しているが、通信部61は、外部サーバシステム40及び外部ストレージシステム30とも通信する。
入出力サービス55は、外部コンポーネントサービス管理部56、外部サービス制御部57、アプリ管理部58、I/Oロジック処理部59、及び、データAPI部60を有している。
アプリ管理部58は、アプリ情報53を管理し、アプリ情報53を使って、機器20のWebブラウザがアプリに関して表示する画面情報を生成する。このアプリとは1つの処理フローのことである。画面情報は、HTML、XML、CSS(Cascade Style Sheet)、及びJavaScript(登録商標)等により記述されていてよい。アプリ情報53には、「アプリ1」のような識別情報が付与されている。1つのアプリのアプリ情報53は、データ定義、レイアウト、及び、処理内容を有している。詳細は図6において後述される。
I/Oロジック処理部59は、アプリ情報53が有する「処理内容」を解析し、ドキュメントサービス51、外部サービス連携部54、又は、外部コンポーネントサービス42に処理の実行を要求する。また、I/Oロジック処理部59は、外部サーバの稼働状態を制御するため、外部コンポーネントサービス管理部56、及び、外部サービス制御部57を制御する。
データAPI部60は、外部サービス連携部54(ファイル処理部54a又はデータ処理部54b)を経由して、外部ストレージシステムのフォルダ一覧やファイル一覧といった情報を取得する。
外部サービス制御部57は、外部コンポーネントサービス管理部56が持つ「実行予定のコンポーネント情報」(符号は52)を元に、外部サーバを起動又は停止させる必要があるか否かを判断し、稼働状態を制御する。起動した外部サーバでは外部コンポーネントサービス42が動作する。
外部コンポーネントサービス管理部56は、実行予定のコンポーネント情報52を管理する。すなわち、外部サーバごとに実行予定のコンポーネントの数を登録し、実行が終了すると実行が終了するごとに1つ減らす。実行予定のコンポーネント情報52の一例を図5に示す。
外部サービス連携部54はファイル処理部54aとデータ処理部54bを有している。ファイル処理部54aは、外部ストレージシステム30に対してファイルの入出力に関する処理を行う。データ処理部54bは、外部ストレージシステム30に対してデータの取得や書き込みといった処理を行う。ファイル処理部54aとデータ処理部54bは外部ストレージシステム30ごとに用意されるため、外部サービス連携部54を増やしていくことで、連携先の外部ストレージシステム30を増やしていくことができる。
ドキュメントサービス51は、ドキュメントを処理するサービス群である。図4では、OCRを行うサービス51a、及び、ファイルのフォーマットを変換するサービス51b、がある。この他、画像のサイズ変換、翻訳、などのサービスが含まれてよい。これらもコンポーネントの1つである。
図5は、実行予定のコンポーネント情報52を模式的に示す。実行予定のコンポーネント情報52は、主に、Host(外部サーバ情報)と実行予定のコンポーネント数とが対応付けられた情報である。Hostは例えば「Server1.com」などであり、実行予定のコンポーネントがある外部サーバを識別又は特定する情報(例えばURL、ドメイン名など)である。実行予定のコンポーネント数は、各外部サーバにある実行予定のコンポーネントの数である。実行予定のコンポーネント数はコンポーネントが実行されるごとに1つずつ小さくなる。したがって、外部サービス制御部57は残数を参照することで、外部サーバを起動するか停止するかを判断できる。
図6は、アプリ情報53を模式的に示す。アプリ情報53は画面定義(データ定義とレイアウト)及び処理内容を有する。
図6(a)はデータ定義の一例を示す。データ定義は送受信されるデータの定義(UIの各項目の項目名、各項目に保存されるデータ名など)である。
・data_id…データの識別情報である。
・data_key…扱う対象のデータ名称であり(処理に対するパラメータ)、例えばデータが格納されるファイル名などである。
・format…ファイルの形式である。例えば、HTMLのフォーム要素と同じ、input_text,textarea,select,radio などである。
・data_source…データを保持するURLが設定される。固定のデータであれば、直接データが記述されていてもよい。
図6(b)はレイアウトの一例である。レイアウトは画面のデザイン(ユーザが利用する画面をWebブラウザが表示するための情報)である。
・data_id…データの識別情報である。データ定義のdata_idと対応している。
・display_name…ファイル名である。
・layout…項目名の位置情報である。図6(b)では項目を上から指定する順番が設定されている。位置情報は、座標を指定するといった形式でもよい。また、クライアント(機器)側がWebブラウザではなくクライアントアプリケーションである場合や機器が複雑な画面を表示する場合にはこのレイアウト情報は存在せず、機器側や画面の生成過程でデータ定義を解釈して表示してもよい。
図6(c)は処理内容の一例である。処理内容は、各処理フローを有している。処理フローのリストは機器20に提供され、機器20がユーザの選択を受け付けることで、実行される処理フローが情報処理システム50に対して指定される。1つの処理フローには、外部サーバにある処理、ドキュメントサービス51、及び、外部ストレージシステム30を使用する処理等をどのように利用するかが記載されている。
各処理は,以下の要素を有している。
・コンポーネント名称
・処理
・オプションパラメータ
要素を使った記載構成例は以下のようになる。
"<コンポーネント名称> : <処理> ? <オプションパラメータ>"
この処理は、「ストレージサービスAのフォルダsamplefolderへファイル名test.pdfでファイルを送信する。」を意味している。具体的には以下のように記載される。
"storage : send_to_folder ? type=service-a & targetfolder=samplefolder & filename=test.pdf"
例えば、処理フローが下記の処理を含む場合、図6(c)のように記述される。
1: OCR
2: サービスA:配信
なお、処理フローの開始はファイルのインプット「From('file:input')である。
<<外部サーバシステム>>
図4に戻って説明する。外部サーバシステム40は外部コンポーネントサービス42、及び、稼働状態制御部41を有している。外部サーバシステム40が有するこれらブロックは、図2に示されている各構成要素のいずれかが、HD504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって動作することで実現される機能又は手段である。
外部コンポーネントサービス42は、主に外部のベンダーが開発したコンポーネントを動作させる。外部コンポーネントサービス42は、コンポーネント処理部43を有している。コンポーネント処理部43は、各種のコンポーネントを有しており、ドキュメントサービス51や外部サービス連携部54と同等の処理を実行する。
稼働状態制御部41は、外部サーバを起動又は停止させる。外部サーバが起動した場合は外部コンポーネントサービス42も起動させる。しかし、外部コンポーネントサービス42は、外部サーバの起動に連動して自動的に起動することも可能である。
稼働状態制御部41は、外部サーバシステム40が用意したAPI(Application Interface)である。外部サービス制御部57が起動の旨と共に稼働状態制御部41を呼び出すと、稼働状態制御部41は指示されたリソース(CPU、RAM、HDD/SSD等)を有する外部サーバを起動させ、次いで、外部コンポーネントサービス42を起動させる。
外部サーバシステム40では、稼働状態制御部41の起動により外部サーバが用意される。つまり、クラウドサービスなどが提供するリソースから契約や外部サービス制御部57からの要求に応じてリソースが確保される。稼働状態制御部41はこのリソースにOSをインストールし、外部コンポーネントサービス42を動作させ、処理フローに含まれるコンポーネントを実行する。したがって、外部サーバを確保したり開放したりすることには外部コンポーネントサービス42を起動又は停止させることが含まれる。稼働状態制御部41が行う処理が具体的にどのような処理かは外部サーバシステム40のサービス形態によって変わりうるが、本実施形態では起動とは課金される状態にすることをいい、停止とは課金されない状態にすることをいう。
外部サービス制御部57が停止の旨と共に稼働状態制御部41を呼び出すと、稼働状態制御部41は外部サーバを停止する。外部コンポーネントサービス42は外部サーバの停止の前に内部的に終了するか、又は、外部サーバの停止と共に終了する。外部コンポーネントサービス42がどのような手順で終了するかは外部サーバシステム40の仕様に基づくものとする。
<<外部ストレージシステム>>
外部ストレージシステム30は1つ以上のストレージサービス31を有している。そのうちの1つのストレージサービスAは、クラウドストレージサービスなど、連携先のサービスであればよい。
<<機器>>
機器20ではWebブラウザ29が動作する。Webブラウザ29は通信部21、表示制御部22、操作受付部23、及び、機器機能部24を有している。機器20が有するこれら各機能部は、機器20にインストールされた1以上のプログラムに含まれる命令をCPU901が実行することで実現される機能又は手段である。例えば、通信部21、表示制御部22及び操作受付部23はWebブラウザにより実現され、機器機能部24は個別のアプリケーション(ネイティブアプリ)により実現される。
通信部21は、情報処理システム50との間で各種の情報を送受信する。本実施形態では画面情報等を情報処理システム50から受信し、機器20が読み取った画像データやファイル等を情報処理システム50に送信する。
表示制御部22は各種の画面の画面情報を解釈してパネル表示部940aに表示する。操作受付部23は、パネル表示部940aに表示された各種画面におけるユーザの各種操作を受け付ける。機器機能部24は、原稿を読み取って画像データを作成するスキャナ機能、FAXや電子メールを送信する機能、など、機器20が有する各種の機能である。
<I/Oロジック処理部の機能>
図7は、I/Oロジック処理部59が有する機能をブロックに分けて説明する機能ブロック図の一例である。I/Oロジック処理部59は、フロー実行部71、プログラム管理部72、型変換管理部73、型変換定義/処理部74、及び、コンポーネント群79を有している。
フロー実行部71は、アプリ管理部58から取得した「処理内容」で示された処理を解釈し、実行する。実行する際には、処理内容に記載された内容にしたがって、コンポーネントを呼び出す。
プログラム管理部72には、コンポーネント群79が有するコンポーネントの種類が設定されている。プログラム管理部72は、フロー実行部71から要求されたコンポーネントを生成する。また、プログラム管理部72は、表1に示す判断テーブルを参照して、コンポーネントが外部サーバにあるか情報処理システム50にあるかを判断する。
コンポーネント群79は、プログラム管理部72が管理する1つ以上のコンポーネントである。各コンポーネントはコンポーネント共通I/F79aを有している。コンポーネント共通I/F79aは、フロー実行部71がコンポーネントを呼び出すためのAPI(Application Interface)である。コンポーネント共通I/F79aはコンポーネントが異なっても共通であるため、コンポーネントが異なってもフロー実行部71の変更は全く必要ないか又はほとんど必要がない。コンポーネント共通I/F79aは以下のI/Fを備える。
- 生成
- コンポーネント処理実行(データ)
図7のコンポーネント群79は、配信コンポーネント75、変換コンポーネント76、及び、外部コンポーネント連携コンポーネント77を有している。これらはコンポーネントである。すなわち、処理フローの実際の処理を受け持つ部分である。
外部コンポーネント連携コンポーネント77は、外部サーバで起動している外部コンポーネントサービス42のコンポーネントに処理を要求するコンポーネントである。
型変換管理部73は、型変換テーブルを参照して(表2参照)、機器から送信されたデータ又は処理フローで処理中のデータを、コンポーネントが処理できるデータ形式に変換するため、異なるデータの型への変換処理を管理している。
型変換定義/処理部74は、型変換で、特定のデータ型から他のデータ型への変換処理を行う。型変換共通I/F78は型変換管理部73から型変換に対して共通で利用できるI/Fである。型変換共通I/F78は以下のI/Fを備える。
- 生成
- 型変換処理実行(データ)
Figure 2022032145000002
表1は、コンポーネントが外部サーバにあるかどうかをプログラム管理部72が判断するための判断テーブルの一例である。プログラム管理部72はこの判断テーブルを保持しているか又はストレージ上の判断テーブルにアクセスできる。判断テーブルはレコードを識別するID(識別情報)に対応付けて、「Name」「Description」「Host」の各項目を有している。
「Name」…処理フローが有する処理の処理名である。
「Description」…処理の説明文である。
「Host」…コンポーネントがどのサーバにあるかを示す。localhostとなっているコンポーネントは自サーバにあると判断し、それ以外は外部サーバにあると判断する。
Figure 2022032145000003
表2は、型変換管理部73が管理する型変換テーブルの一例を示す。型変換テーブルはデータの変換規則がリストとして登録されたテーブルである。各コンポーネントは扱えるデータの形式が決まっているため、型変換定義/処理部74がコンポーネントからの要求と型変換テーブルに基づいてデータの型を変換する。型変換テーブルでは、ID(識別情報)に変換前のデータ型と変換後のデータ型が対応づけられている。この定義と処理を追加していくことで、開発者側がコンポーネント自体を修正することなく、各コンポーネントに接続可能な別のコンポーネントを増やしていくことが可能になる。
<外部コンポーネントサービス>
図8は、外部コンポーネントサービス42が有するコンポーネント処理部43の機能をブロックに分けて説明する機能ブロック図の一例である。コンポーネント処理部43の構成は基本的にI/Oロジック処理部59と同じ構成だが、外部コンポーネントサービス42はI/Oロジック処理部59が制御する処理フローの一部として動作するのみであるため、アプリ管理部58から「処理内容」を取得して実行するコンポーネントを判断する機能を持たない。すなわち、コンポーネント処理部43は、コンポーネントに対する処理の要求を受け付け、処理を実行し、その結果をI/Oロジック処理部59に返却する。
I/Oロジック処理部59のコンポーネントとコンポーネント処理部43のコンポーネントは同じ構造であるため、コンポーネントはどちらに配置されても問題なく動作する。そのため、サービス提供者は、品質が確認できたコンポーネント処理部43のコンポーネントをI/Oロジック処理部59に移して動作させたり、I/Oロジック処理部59のコンポーネントを外部コンポーネントサービス42に配置してコンポーネント処理部43で動作させたりすることができる。したがって、コンポーネントの配置に自由度が生まれる。
要求受付け部81は、I/Oロジック処理部59から要求されたコンポーネントの実行要求を受け付ける。要求受付け部81は実行要求されたコンポーネントを実行する。複数のコンポーネントに対する連続した処理要求を受け付けることもできる。
プログラム管理部82にはコンポーネントの種類が設定されている。プログラム管理部82は要求受付け部81から要求されたコンポーネントを生成する。
型変換管理部83、型変換定義/処理部84、配信コンポーネント85、及び、変換コンポーネント86は実際の処理を受け持つ。コンポーネント共通I/F89a、及び、型変換共通I/F88についてはI/Oロジック処理部59と同じである。
<<外部サービス連携部>>
外部サービス連携部54について補足する。
上記のように、外部サービス連携部54は以下の2つの機能を有している。
・ファイル処理部
外部ストレージシステム30に対してファイル関連の処理を行う(ファイルを送る,ファイルを取得する,等)
・データ処理部
外部ストレージシステム30に対してファイル以外のテキストで表現できるデータ処理を行う(フォルダ一覧を取得する,等)
また、ファイル処理部とデータ処理部はそれぞれ共通I/F541、543と、固有I/F542,544とを有する。このようにインターフェースが分けられることで、「ファイルを配信するのみというようなシンプルな処理を様々な外部ストレージシステム30へ配信する」というアプリケーションが必要な場合、入出力サービス55がそれぞれの共通I/Fを利用することで、すべてにおいて同じ処理で実現可能となる。また、特定の外部ストレージシステム30の機能を広く活用する、外部ストレージシステム30に特化したアプリケーションが必要な場合,入出力サービス55が固有I/Fを含めて活用すると実現することができる。
・共通I/F
ファイルを扱うサービスにおいて共通に利用できるものが共通I/Fである。ファイル処理部54aは、フォルダにファイルを送る、ファイルを取得する、ことができる。データ処理部54bはファイル一覧取得、フォルダ一覧取得が可能である。
・固有I/F
外部ストレージシステム30のサービスの機能だが、ファイルを扱うサービスにとって共通ではないものが固有I/Fである。ファイル処理部54aは保存されているドキュメントにファイルを付加することができる。データ処理部54bは、顧客一覧情報取得、画像ファイル一覧取得などが可能である。
図9は、共通I/Fと固有I/Fの一例である。共通I/Fの場合は、「/」で区切ってフォルダやファイルが指定される。固有I/Fの場合は「/extension」が固有I/Fである旨を示す。
<処理フローの実行手順>
続いて、図10を参照して、I/Oロジック処理部59が制御する処理フローの実行手順について説明する。図10は、情報処理システム50が処理フローを実行する手順を示すシーケンス図の一例である。図10では、I/Oロジック処理部59が情報処理システム50内のコンポーネントを実行する場合を説明する。
S1:ユーザが機器20を操作して、処理フローの実行を機器20に入力する。機器20の操作受付部23は操作を受け付ける。これにより、ファイル(処理フロー1、ストリームデータ)が生成される。ストリームデータは処理フローの対象となるデータであり、ストリームの他にはファイル等がある。ストリームデータはファイルサイズが大きいデータを少量ずつ機器20が送信する場合のデータ形式である。通信部21はファイルを情報処理システム50に送信する。
S2:情報処理システム50の通信部61はファイルを受信する。フロー実行部71は処理フロー1の処理内容をアプリ管理部58から取得する。なお、処理フロー1は「変換」→「配信」の処理内容とする。この変換と配信の処理を情報処理システム50内のコンポーネントが担っているとする。
S3:フロー実行部71は、最初の処理である「変換」のため、変換コンポーネント76をプログラム管理部72に要求する。
S4:プログラム管理部72は変換コンポーネント76を生成してフロー実行部71に返却する。
S5:フロー実行部71は返却された変換コンポーネント76に、コンポーネント処理実行を要求する。このとき、「データ」を渡すが、実体はクライアントからの入力のストリームデータである。
S6:変換コンポーネント76は、要求を受けると、型変換管理部73に型変換要求を行う。変換コンポーネント76は自分の受け取った「データ」と、自分の扱いたいデータの型を指定する。ここでは、ローカルファイルパス(型変換が行われたデータが保存されたファイルパス)を要求していたとする。
変換コンポーネント76は、自分に入力されたデータの実際の形式を意識しないまま、自分の扱える形式への変換要求を実行する。ここでは「データ」としてストリームを受け取ったが、変換コンポーネント76は「データ」という共通概念のI/Fで受信し、該データが何であろうと、再利用可能なファイルを保存したパスを渡すように要求する。これにより、「コンポーネントが共通のI/Fを有すること」「コンポーネントは自分の扱える形式以外の形式を意識しないこと」が実現する。
S7:型変換管理部73は、表2の型変換テーブルを参照して、渡された「データ」の型をチェックする。このデータはストリームなので、変換コンポーネント76が扱える形式に変換すると判断する。
S8:型変換管理部73は、要求されたデータ型へ変換する型変換定義/処理部74を生成する。この型変換の処理の実装を増やすことで、ユーザは処理フローのパターンを増やすことができる。
S9:型変換管理部73は、生成した型変換定義/処理部74に、型変換処理実行を要求する。
S10:型変換定義/処理部74は型変換を実行し、得られた結果(型が変換されたデータ)を型変換管理部73に返却する。
S11:型変換管理部73はローカルファイルパスに型が変換されたデータを保存し、該ローカルファイルパスを変換コンポーネント76に返却する。
S12:変換コンポーネント76は、ローカルファイルパスで得られたデータに自身の処理を実行する。変換コンポーネント76が行う変換とは、OCRや翻訳などデータに何らかの加工を行う処理である。変換コンポーネント76は、変換した「データ」をフロー実行部71に返却する。
「データ」の実際の型は変換コンポーネント76が生成した任意の型でよい。次のコンポーネントが同様に、型変換を実行するためである。また、変換コンポーネント76はどのような情報でも「データ」として返却する。実態はローカルファイルパスとする。
S13:次に、フロー実行部71が同様に次の処理である「配信」を実行する。処理の流れは基本的に「変換」の場合と同じである。フロー実行部71は、2番目の処理である「配信」のため、配信コンポーネント75をプログラム管理部72に要求する。
S14:プログラム管理部72は配信コンポーネント75を生成してフロー実行部71に返却する。
S15:フロー実行部71は返却された配信コンポーネント75に、処理実行を要求する。このとき、「データ」を渡すが、実体はローカルファイルパスである。
S16:配信コンポーネント75は、要求を受けると、型変換管理部73に型変換要求を実行する。変換コンポーネント76は自分の受け取った「データ」と、自分の扱いたいデータの型を指定する。ここでは、ローカルファイルパス(要するにローカルに保存されたファイルデータ)を要求していたとする。前の変換処理で「データ」として、「ローカルファイルパス」が返却されているため、コンポーネント処理実行で渡される「データ」の実体は「ローカルファイルパス」であり、実際にはデータ変換要求は不要である。
S17:型変換管理部73は、表2の型変換テーブルを参照して、渡された「データ」の型をチェックする。このデータはローカルファイルパスであるため、変換処理は実行されない。
S18:型変換管理部73は、ローカルファイルパスを配信コンポーネント75に返却する。
S19:配信コンポーネント75は、ローカルファイルパスで得られたデータに自身の処理を実行する。すなわち、配信する。したがって、例えば、外部ストレージシステム30にデータを送信する。
S20:配信コンポーネント75は処理で得られたデータをフロー実行部71に送信する。処理で得られたデータとは、コンポーネントによって様々である。例えば、配信の場合は、送信されたファイル名や日時などであり。翻訳などの場合は翻訳されたデータである。
S21:フロー実行部71は通信部61を介して、データ(実行結果)を機器20に送信する。機器20の通信部21はデータを受信する。
このようにして、情報処理システム50は、処理フローに含まれるコンポーネントを順番に実行する。
<コンポーネント処理部の動作手順>
次に、比較のため、外部サーバのコンポーネント処理部43の動作手順について説明する。
図11は、本実施形態のコンポーネント処理部43が処理フローを実行する手順を示すシーケンス図の一例である。なお、図11の説明では、図10との相違を説明する。
外部コンポーネントサービス42はI/Oロジック処理部59が制御する処理フローの一部として動作するのみであるため、アプリ管理部58に処理フローの処理内容を問い合わせる処理がない。その他のステップS31~S42の処理は図10のステップS1、S3~S12と同様になる。なお、図11では配信コンポーネントの処理については省略されている。
<外部コンポーネントサービス上のコンポーネントを含めた、I/Oロジック処理部の動作手順>
次に、外部コンポーネントサービス42上のコンポーネントと情報処理システム50のコンポーネントが処理内容に含まれる処理フローの実行について説明する。
図12は、情報処理システム50が外部コンポーネントサービス42上のコンポーネントと情報処理システム50のコンポーネントを含む処理フローを実行する手順を説明するシーケンス図の一例である。なお、図12の処理フロー1は「変換」「配信」であるとする。図12の説明では、主に図10との相違を説明する。
図12のステップS51、S52は図10のステップS1、S2と同様でよい。次に、フロー実行部71は変換コンポーネントをプログラム管理部72に要求する(S53)。
コンポーネントの実行要求を受けたプログラム管理部72は、表1の判断テーブルを参照して、次に実行する処理に対応するコンポーネントが自サーバ(情報処理システム50)にあるか、外部サーバにあるかを判断する(S54)。「変換」のコンポーネントは情報処理システム50にあると判断されたものとする。
S55~S63の処理は、図10のS4~S12と同様でよい。
S64:次に、フロー実行部71は、「配信」のコンポーネントをプログラム管理部72に要求する。
S65:プログラム管理部72は、表1の判断テーブルを参照して、生成を依頼されたコンポーネントが外部サーバにあると判断する。
S66:プログラム管理部72は外部コンポーネント連携コンポーネント77を生成し、フロー実行部71に返却する。このとき、「データ」を渡すが、実体はローカルファイルパスである。
S67:フロー実行部71は外部コンポーネント連携コンポーネント77に対し、データ(ローカルファイルパス)を指定してコンポーネントの実行を要求する。
S68:外部コンポーネント連携コンポーネント77は、要求を受けると、型変換管理部73に型変換要求を実行する。変換コンポーネント76は自分の受け取った「データ」と、自分の扱いたいデータの型を指定する。ここでは、ローカルファイルパスを要求していたとする。前の変換処理で「データ」として、「ローカルファイルパス」が返却されているため、コンポーネント処理実行で渡される「データ」の実体は「ローカルファイルパス」であり、実際にはデータ返還要求は不要である。
S69:型変換管理部73は、渡された「データ」の型をチェックする。このデータはローカルファイルパスであるため、変換処理は実行されない。
S70:型変換管理部73は、ローカルファイルパスを外部コンポーネント連携コンポーネント77に返却する。
S71:外部コンポーネント連携コンポーネント77は、ローカルファイルパスで得られたデータに自身の処理を実行する。外部コンポーネント連携コンポーネント77は外部サーバシステム40と連携するものであるため、外部サービス制御部57に処理を要求する。
S72:外部サービス制御部57は処理実行を外部コンポーネントサービス42に要求する。これにより、図11のシーケンス図が実行される。
S73~S76:図10と同様に、データ(実行結果)が機器20まで送信される。
<外部サーバの稼働状態の制御>
図12の処理では、外部サーバが常に稼働状態である。このため、無駄なコストが生じていた。そこで、次に、図13を参照して、情報処理システム50が外部サーバの稼働状態を制御する動作又は処理について説明する。図13は情報処理システム50が処理フローを実行し、外部サーバの稼働状態を制御する手順を示すシーケンス図の一例である。
図13の処理フローの実行に関する流れは図12と同様で、更に、外部サーバの稼働状態を制御する処理が組み合わされた流れとなっている。
S81:ユーザが処理フローの実行を機器20に入力する。機器20の操作受付部23は操作を受け付ける。これにより、ファイル(処理フロー1、ストリームデータ)が生成される。ストリームデータは処理フローの対象となるデータである。通信部21はファイルを情報処理システム50に送信する。
S82:情報処理システム50の通信部61はファイルを受信する。フロー実行部71は処理フロー1の処理内容をアプリ管理部58から取得する。なお、処理フロー1は「変換」→「配信」の処理内容とする。この配信する処理を外部サーバのコンポーネントが担っているとする。アプリ管理部58は処理内容をフロー実行部71に返却する。
S83:処理フローの処理内容には実行処理するコンポーネントの情報が含まれる。フロー実行部71は、処理フロー1の処理内容をプログラム管理部72に渡して、処理内容に外部サーバで実行されるコンポーネントがあるかどうかの確認を要求する。
S84:プログラム管理部72は渡された処理内容と表1の判断テーブルを参照して、処理フローに含まれる(情報処理システム50が実行する)全てのコンポーネントについて自サーバ(情報処理システム50)に存在するか、外部サーバに存在するかを判断する。
S85:プログラム管理部72は処理フローに含まれる外部コンポーネントの数を数えて、それを外部サービス制御部57に登録する。登録する情報は、図5に示した実行予定のコンポーネント情報52である。実行予定のコンポーネント情報52は、外部サーバを表す外部サーバ情報(Host名)と、その外部サーバで実行するコンポーネントの残数を有する。
S86:外部サービス制御部57は、処理フローに含まれるコンポーネントの数(外部サーバで実行される)を記録する。このように、一連の処理の最初の処理が実行される前に外部サーバで実行されるコンポーネントの数が保存される。なお、処理フローに含まれる外部コンポーネントの数は処理フローごとに合計される。例えば、処理フロー1が二人のユーザで並行に実行された場合、外部サーバで実行されるコンポーネントの残数は「2」になる。
S87~S97:登録完了後、フロー実行部71は、処理内容に沿って、コンポーネントを生成して、処理フローの処理を順番に実行する。処理の手順は図12のステップS53~S63と同様でよい。
S98:1つの処理が実行されると、フロー実行部71は次の処理(配信)の実行をプログラム管理部72に要求する。
S99:プログラム管理部72は、表1の判断テーブルを参照して、コンポーネントが自サーバ(情報処理システム50)にあるのか外部サーバにあるのか確認する。
S100:外部サーバにある場合は、プログラム管理部72は外部コンポーネント連携コンポーネント77を生成する。
S101:フロー実行部71がコンポーネントの処理実行をプログラム管理部72に要求する。
S102:プログラム管理部72は、外部サービス制御部57に実行要求されたコンポーネントがある外部サーバの稼働状態の確認を要求する。
S103:外部サービス制御部57は、稼働状態の確認が要求された外部サーバの稼働状態の情報を稼働状態制御部41から取得する。このように一連の処理に含まれる処理を実行するプログラムが実行されるタイミングで稼働状態が取得される。
実行要求されたコンポーネントがある外部サーバが起動していない場合(起動していない旨の稼働状態)、ステップS104、S105が実行される。
S104:外部サーバが起動していない場合、外部サービス制御部57は稼働状態制御部41に当該外部サーバの起動を要求する。
S105:稼働状態制御部41は、実行要求されたコンポーネントがある外部サーバを起動する。また、外部サーバの起動に伴って自動的に外部コンポーネントサービス42が生成される。稼働状態制御部41の明示的な要求で外部コンポーネントサービス42が生成されてもよい。
S106:外部サービス制御部57は、外部サーバが起動すると起動通知をプログラム管理部72に通知する。
S107~S112:外部サービス制御部57からの起動通知があり次第、プログラム管理部72は外部コンポーネント連携コンポーネント77に外部コンポーネントの処理実行を要求する。外部コンポーネントサービス42上でコンポーネントは処理を実行する。この流れは図12のステップS67~S72と同様でよい。
S113:処理実行後、外部コンポーネント連携コンポーネント77はコンポーネントの実行が終了したことを外部サービス制御部57に通知する。
S114:外部サービス制御部57は、図5のコンポーネント情報の当該Host上にある実行予定のコンポーネントの残数を一つ減らす。
S115:その後、外部サービス制御部57は、図5の実行予定のコンポーネント情報52にある実行予定のコンポーネントの残数がゼロ("0")のHostがあるか否かを確認する。外部サーバを停止するためである。
S116:実行予定のコンポーネントの残数がゼロのHostがある場合、外部サービス制御部57は稼働状態制御部41へ外部サーバの停止を要求する。このように、実行予定のコンポーネントの残数がゼロになったタイミングで、外部サーバが停止される。
なお、図13の処理では、実行予定のコンポーネントの残数がゼロになったことを外部サービス制御部が確認しているが、外部サービス制御部は、一連の処理に含まれる処理の実行が終了したタイミングで、外部サーバの稼働状態を取得し、外部サーバが起動している場合(起動している旨の稼働状態)、外部サーバの停止を外部に要求してもよい。
S117:稼働状態制御部41は、外部コンポーネントサービス42に対し外部サーバの停止(終了)を要求する。
S118:外部コンポーネントサービス42は外部サーバの仕様にしたがって、実行を停止する。すなわち、クラウドサービスのうち外部コンポーネントサービス42のために確保されていたリソースが開放される。これにより、課金されない状態となる。課金されない状態であればよく、リソースの開放まで行われなくてもよい。
S119、S120:停止通知が外部サービス制御部57に通知される。
S121:外部サービス制御部57は通知完了を外部コンポーネント連携コンポーネント77に通知する。
S122、S123:データ(実行結果)が機器20に送信される。
このように、本実施形態の情報処理システム50は、外部サーバの実行が必要な時間帯だけ外部サーバを起動させるので、コンポーネントが外部サーバで管理及び保存されることによる無駄なコストを抑制することができる。
<処理フロー内に複数の外部コンポーネントがある場合>
図13の説明では処理フローの処理内容に、外部コンポーネントが1つしかなかった。そこで、1つの処理フローに外部サーバで実行される複数のコンポーネントが含まれる場合について補足する。
図14は、外部サーバで実行される複数のコンポーネントを有する処理フローの一例である。
A.I/Oロジック処理部59が図13のような処理フローを実行する場合、プログラム管理部72は生成するコンポーネントの情報を確認して当該の外部サーバが起動していなければ、起動させる(図13のステップS105の処理に相当する)。
B.外部サーバの1つめのコンポーネントが実行された場合、プログラム管理部72は当該の外部サーバで実行する予定のコンポーネントがあるか確認し、実行予定のコンポーネントがあるので、外部サーバは稼働状態のままにしておく(図13のステップS115で実行予定のコンポーネントがあると判断される)。
C.外部サーバの2つめのコンポーネントが実行された場合、プログラム管理部72は当該の外部サーバで実行する予定のコンポーネントがあるか確認し、実行する予定の外部コンポーネントがないので、外部サーバの稼働を停止する(図13のステップS118の処理に相当する)。
1つの処理フローが複数のコンポーネントを含む場合に限らず、複数の処理フローが同じコンポーネントを含む場合も同様になる。
図15は、外部サーバで実行される複数のコンポーネントを有する処理フローが複数のユーザにより並行に実行される場合を説明する図である。図15(a)はユーザAが実行する処理フローを示し、図15(b)はユーザBが実行する処理フローを示す。この外部サーバは複数のコンポーネントを有している。複数の処理フローが並行に実行されることで、同一の外部サーバ内で複数のコンポーネントが実行される場合、全てのコンポーネントが実行終了すると、外部サーバの稼働も停止される。
A-1.プログラム管理部72は外部サーバの稼働状態を確認し、起動していないので起動する。
B-1.プログラム管理部72は外部サーバの稼働状態を確認し、起動しているのでそのまま外部サーバを利用する。
A-2.ユーザAの外部サーバのコンポーネントの処理が終了したが、ユーザBが実行している処理フローにまだ実行していないコンポーネントがあるので(この外部サーバのコンポーネントの残数がゼロでない)、プログラム管理部72は外部サーバを稼働状態にしておく。
B-2.ユーザBの外部サーバのコンポーネントの処理が終了し、該当する外部サーバでは実行予定のコンポーネントがないので(この外部サーバのコンポーネントの残数がゼロになった)、プログラム管理部72は外部サーバの稼働を停止する。
このように、図5の実行予定のコンポーネント情報52は、全ユーザで合計されるので、複数のユーザが並行に処理フローを実行しても、情報処理システム50は、当該外部サーバで実行されるコンポーネントがあるかどうかに応じて外部サーバの稼働状態を制御できる。
<情報処理システムの冗長構成>
情報処理システム50の可用性を向上させるため、情報処理システム50の一部の機能が冗長性を有する場合がある。
図16は、情報処理システム50が冗長構成を有する場合に、情報処理システム50が有する外部コンポーネントサービス管理データベース62を示す。図16の冗長構成では、情報処理システム50が複数の入出力サービス55A,55Bを有する。入出力サービス55A,55Bの機能は図4と同様でよい。
外部コンポーネントサービス管理データベース62は、実行予定のコンポーネント情報52を管理するデータベースである。実行予定のコンポーネント情報52は、Host情報に対応づけて、フロー実行部71から要求のあった処理内容にある実行予定のコンポーネントの残数を有する。
処理フローを実行する情報処理システム50が冗長構成の場合、各外部コンポーネントサービス42の情報を複数のモジュール間で統一する必要がある。そのため、図4のように外部サービス制御部57がその情報を保持するのではなく、図17のようなデータベースを構成に追加することで、共通の情報を共有できるようにする。
図17は、外部コンポーネントサービス管理データベース62の構造を説明する図である。外部コンポーネントサービス管理データベース62は外部コンポーネントサービス42の利用状況を表すデータベースである。Hostごとに実行予定の外部コンポーネント残数が対応づけられている。「Host」は、外部サーバを表す(例えばドメイン名)。「実行予定の外部コンポーネント残数」は、処理内容にあるコンポーネント(外部サーバで実行される)のうち、まだ実行されていないコンポーネントの数である。
<冗長構成の場合の動作手順>
図18は、情報処理システム50が冗長構成の場合に処理フローを実行する処理を示すシーケンス図の一例である。実行予定の外部コンポーネント情報を外部サービス制御部57で保持しているのでなく、外部コンポーネント管理データベースが保持しているため、図18は情報を更新するシーケンスの部分のみ図13と異なる。それ以外の流れは同じであるため、図18の説明では主に図13との相違を説明する。
S86-2:外部サービス制御部57は、処理フロー内にある外部コンポーネントの数を外部コンポーネントサービス管理データベース62に登録する。ホスト名ごとに外部コンポーネントの数を合計する。
S114-2:外部サービス制御部57は、実行予定の外部コンポーネント情報から残数を1つ下げる更新を外部コンポーネントサービス管理データベース62に要求する。
S114-3:外部サービス制御部57は、実行予定のコンポーネント数がゼロであるHostがあるかないか確認するため、実行予定のコンポーネントがないHostの情報を要求する。
このように、各外部コンポーネントサービス42の情報を複数のモジュール間で統一することで、入出力サービス55が冗長構成であっても、外部サービス制御部57が実行予定の外部コンポーネント情報から残数を参照したり更新したりできる。
<主な効果>
以上説明したように、本実施形態の情報処理システム50は、コンポーネントごとに、そのコンポーネントを実行する外部サーバの稼働を継続すべきか否か情報処理システム50が判断し、外部サーバの実行が必要のない間は稼働を停止させる。これにより、コンポーネントが外部サーバで管理及び保存されることによる無駄なコストを抑制することができる。
<補足>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、情報処理システム50が備える各機能構成のうち、少なくとも一部は、画像形成装置等の機器が有していても良い。例えば、情報処理システム50は、処理フローに定義された複数の処理のうち、少なくとも一部(例えば、印刷処理、読取処理、ファックス送信処理等)を、画像形成装置に実行させても良い。
なお、上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
また、実施例に記載された装置群は、本明細書に開示された実施形態を実施するための
複数のコンピューティング環境のうちの1つを示すものに過ぎない。
ある実施形態では、情報処理システム50は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。同様に、機器20は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
また、情報処理システム50の各要素は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。
20 機器
30 外部ストレージシステム
40 外部サーバシステム
50 情報処理システム
100 処理実行システム
特開2008-225639号公報

Claims (11)

  1. 機器及び外部サーバと通信し、機器から指定された一連の処理を実行する情報処理システムであって、
    前記機器が指定した前記一連の処理に基づいて外部サーバで実行されるプログラムを特定するプログラム管理部と、
    前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態の制御を外部に要求する外部サービス制御部と、
    を有することを特徴とする情報処理システム。
  2. 前記外部サービス制御部は、前記一連の処理に含まれる処理を実行する前記プログラムが実行されるタイミングで、前記プログラム管理部が特定した前記外部サーバの稼働状態を取得し、
    前記外部サーバが起動していない旨の前記稼働状態を前記外部サービス制御部が取得した場合、
    前記外部サービス制御部は、前記プログラム管理部が特定した前記外部サーバの起動を外部に要求することを特徴とする請求項1に記載の情報処理システム。
  3. 前記外部サービス制御部は、前記一連の処理に含まれる処理の実行が終了したタイミングで、前記プログラム管理部が特定した前記外部サーバの稼働状態を取得し、
    前記外部サーバが起動している旨の前記稼働状態を前記外部サービス制御部が取得した場合、
    前記外部サービス制御部は、前記プログラム管理部が特定した前記外部サーバの停止を外部に要求することを特徴とする請求項2に記載の情報処理システム。
  4. 前記外部サービス制御部は、前記一連の処理の最初の処理が実行される前に、前記一連の処理のうち前記外部サーバで実行される予定のプログラムの数を保持しておき、
    前記外部サーバで前記プログラムの実行が終了した場合、前記外部サービス制御部は、保持している前記プログラムの数を1つ減らすことを特徴とする請求項1~3のいずれか1項に記載の情報処理システム。
  5. 前記外部サービス制御部が保持している前記プログラムの数がゼロになった場合、ゼロになったタイミングで、
    前記外部サービス制御部は、該プログラムを実行する前記外部サーバの稼働の停止を外部に要求することを特徴とする請求項4に記載の情報処理システム。
  6. 複数の前記機器が並行してそれぞれ前記一連の処理を指定した場合、
    前記外部サービス制御部は、それぞれの前記一連の処理に含まれる前記処理のうち前記外部サーバで実行される前記プログラムの数を合計して保持することを特徴とする請求項4又は5に記載の情報処理システム。
  7. 前記外部サービス制御部は、複数のサーバでそれぞれ動作する冗長構成を有しており、
    前記一連の処理のうち前記外部サーバで実行される予定のプログラムの数を保持するデータベースを有し、
    複数の前記外部サービス制御部は前記データベースを参照することを特徴とする請求項4~6のいずれか1項に記載の情報処理システム。
  8. 前記外部サーバは起動している時間に応じて課金され、
    前記外部サービス制御部は、前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態を、課金される状態又は課金されない状態への制御を外部に要求することを特徴とする請求項1~7のいずれか1項に記載の情報処理システム。
  9. 機器及び外部サーバと通信し、機器から指定された一連の処理を実行する情報処理システムと、前記機器とを有する処理実行システムであって、
    前記機器は、
    前記一連の処理の選択を受け付ける操作受付部と、
    前記操作受付部が受け付けた前記一連の処理の実行を前記情報処理システムに要求する通信部と、を有し、
    前記情報処理システムは、
    前記機器から要求された前記一連の処理に基づいて外部サーバで実行されるプログラムを特定するプログラム管理部と、
    前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態の制御を外部に要求する外部サービス制御部と、
    を有することを特徴とする処理実行システム。
  10. 機器及び外部サーバと通信し、機器から指定された一連の処理を実行する情報処理システムが行う処理実行方法であって、
    プログラム管理部が、前記機器が指定した前記一連の処理に基づいて外部サーバで実行されるプログラムを特定するステップと、
    稼働状態制御部が、前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態の制御を外部に要求するステップと、
    を有することを特徴とする処理実行方法。
  11. 機器及び外部サーバと通信し、機器から指定された一連の処理を実行する情報処理システムを、
    前記機器が指定した前記一連の処理に基づいて外部サーバで実行されるプログラムを特定するプログラム管理部と、
    前記プログラム管理部が特定した前記プログラムを実行する前記外部サーバの稼働状態の制御を外部に要求する外部サービス制御部、
    として実行されるためのプログラム。
JP2020135661A 2020-08-11 2020-08-11 情報処理システム、処理実行システム、処理実行方法、プログラム Pending JP2022032145A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020135661A JP2022032145A (ja) 2020-08-11 2020-08-11 情報処理システム、処理実行システム、処理実行方法、プログラム
US17/444,486 US20220053050A1 (en) 2020-08-11 2021-08-05 Information processing system, process executing system, process executing method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020135661A JP2022032145A (ja) 2020-08-11 2020-08-11 情報処理システム、処理実行システム、処理実行方法、プログラム

Publications (1)

Publication Number Publication Date
JP2022032145A true JP2022032145A (ja) 2022-02-25

Family

ID=80223354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020135661A Pending JP2022032145A (ja) 2020-08-11 2020-08-11 情報処理システム、処理実行システム、処理実行方法、プログラム

Country Status (2)

Country Link
US (1) US20220053050A1 (ja)
JP (1) JP2022032145A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11399319B1 (en) 2020-12-10 2022-07-26 Sprint Spectrum L.P. Controlling secondary-node addition based on cooperative consideration of coverage comparison and predicted data split

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4689453B2 (ja) * 2005-12-02 2011-05-25 キヤノン株式会社 情報処理装置、データ処理方法、及びプログラム
US8228522B2 (en) * 2007-01-29 2012-07-24 Kabushiki Kaisha Toshiba Document data management apparatus to manage document data read and digitized by an image reading apparatus and a technique to improve reliability of various processing using document data
US20110261405A1 (en) * 2010-04-23 2011-10-27 Konica Minolta Business Technologies, Inc. Information processing terminal and power state management apparatus

Also Published As

Publication number Publication date
US20220053050A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
US20050015711A1 (en) Workflow management apparatus and method
US9794447B2 (en) Service providing system, cooperation processing method, and information processing system
JP2007034846A (ja) 印刷システム、情報処理装置、印刷装置及びそれらの制御方法、プログラム
US20050206913A1 (en) Image forming apparatus, job managing method, electronic device, job displaying method, and job displaying program
JP2012252539A (ja) 印刷システム、サービス処理方法、及びプログラム
JP2022032145A (ja) 情報処理システム、処理実行システム、処理実行方法、プログラム
JP2005050018A (ja) 文書ファイル管理装置及びデータ構造
US11748173B2 (en) Information processing system, information processing method, and storage medium for controlling virtual server that executes program
JP2007336077A (ja) 画像形成装置、設定変更通知方法および設定変更通知プログラム
JP2010214725A (ja) 印刷装置及び印刷システムと、印刷装置の制御方法
JP2005050017A (ja) 文書ファイル管理装置、文書ファイル管理方法及びデータ構造
JP7444208B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP7314594B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7434840B2 (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
JP6753489B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
US11474760B2 (en) Information processing system, server, and information processing method which prints using guest account information
US11307729B2 (en) Information processing system, information processing apparatus, and method of processing information
JP2007082012A (ja) アドレス管理装置、アドレス管理方法及びアドレス管理プログラム
JP2006087028A (ja) アドレス帳管理プログラムおよび画像形成装置
JP2023046901A (ja) システム、情報処理方法
JP2024054723A (ja) 情報処理システム、設定方法、プログラム、サービス提供システム
JP2005173764A (ja) サービス処理装置
JP6536308B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2023066237A (ja) 情報処理システム、サービス提供システム、アプリ実行方法
JP2023010224A (ja) 端末装置、情報処理装置、情報処理システム、及び情報処理方法