IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

<>
  • 特許-印刷装置の構成 図1
  • 特許-印刷装置の構成 図2
  • 特許-印刷装置の構成 図3A
  • 特許-印刷装置の構成 図3B
  • 特許-印刷装置の構成 図3C
  • 特許-印刷装置の構成 図3D
  • 特許-印刷装置の構成 図4A
  • 特許-印刷装置の構成 図4B
  • 特許-印刷装置の構成 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】印刷装置の構成
(51)【国際特許分類】
   G06F 11/30 20060101AFI20240611BHJP
   G06F 21/57 20130101ALI20240611BHJP
【FI】
G06F11/30 151
G06F11/30 140D
G06F21/57
【請求項の数】 20
(21)【出願番号】P 2022550196
(86)(22)【出願日】2021-01-12
(65)【公表番号】
(43)【公表日】2023-04-11
(86)【国際出願番号】 JP2021000689
(87)【国際公開番号】W WO2021171804
(87)【国際公開日】2021-09-02
【審査請求日】2022-09-05
(31)【優先権主張番号】16/805,651
(32)【優先日】2020-02-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】ハーパネン トム
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2016-016579(JP,A)
【文献】特開2018-156461(JP,A)
【文献】特開2014-191120(JP,A)
【文献】特開2008-199178(JP,A)
【文献】特開2017-167971(JP,A)
【文献】特開2004-078392(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28-11/36
G06F 3/09- 3/12
H04N 1/00
G06F 21/12-21/16
G06F 21/50-21/57
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して接続された構成マネジャから取得した設定を適用して所定の処理が実行される印刷装置であって、
前記印刷装置の設定に対応する構成識別データを格納したメモリと、
前記印刷装置上で実行する構成エージェントと、
を含み、
前記構成エージェントは、
所定の基準を満たすと、前記印刷装置に適用されている現在の設定に対応する現在構成識別データを生成し、生成した現在構成識別データと、前記メモリに格納されている構成識別データとが異なることに応答して、前記構成マネジャに設定のためのデータを要求する
よう構成される、印刷装置。
【請求項2】
前記所定の基準は、前記構成エージェントの起動、指定時間量の満了、又は現在時間が指定時間と等しくなること、のうちの1つ以上を含む、請求項1に記載の印刷装置。
【請求項3】
前記現在構成識別データは、前記設定に基づき生成される署名データ又はハッシュ結果データのうちの1つ以上である、請求項1に記載の印刷装置。
【請求項4】
前記構成エージェントは、
前記メモリに構成識別データが格納されていないことに応答して、前記構成マネジャに設定のためのデータを要求する、
よう更に構成される、請求項1に記載の印刷装置。
【請求項5】
前記設定は、セキュリティ設定を含む、請求項1に記載の印刷装置。
【請求項6】
前記構成エージェントは、前記構成マネジャに設定のためのデータを要求する際、前記印刷装置を識別する装置識別データも送信する、請求項1に記載の印刷装置。
【請求項7】
前記設定は、前記印刷装置が印刷プロセスを実行するための設定を含む、請求項1に記載の印刷装置。
【請求項8】
命令を格納している1つ以上の非一時的コンピュータ可読媒体であって、前記命令は、ネットワークを介して接続された構成マネジャから取得した設定を適用して所定の処理が実行される印刷装置の1つ以上のプロセッサにより処理されると、
前記印刷装置上で実行する構成エージェントに、
所定の基準を満たすと、前記印刷装置に適用されている現在の設定に対応する現在構成識別データを生成させ、生成した現在構成識別データと、前記印刷装置のメモリに格納されている構成識別データとが異なることに応答して、前記構成マネジャに設定のためのデータを要求させる、
1つ以上の非一時的コンピュータ可読媒体。
【請求項9】
前記所定の基準は、前記構成エージェントの起動、指定時間量の満了、又は現在時間が指定時間と等しくなること、のうちの1つ以上を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項10】
前記現在構成識別データは、前記設定に基づき生成される署名データ又はハッシュ結果データのうちの1つ以上である、請求項8に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項11】
前記1つ以上のプロセッサによる前記命令の処理は、前記構成エージェントに、更に、
前記メモリに構成識別データが格納されていないことに応答して、前記構成マネジャに設定のためのデータを要求させる、
請求項8に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項12】
前記設定は、セキュリティ設定を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項13】
前記1つ以上のプロセッサによる前記命令の処理は、前記構成エージェントに、更に、前記構成マネジャに設定のためのデータを要求する際、前記印刷装置を識別する印刷装置識別データも送信させる、請求項8に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項14】
前記設定は、前記印刷装置が印刷プロセスを実行するための設定を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項15】
コンピュータにより実施される方法であって、
ネットワークを介して接続された構成マネジャから取得した設定を適用して所定の処理が実行される印刷装置上で実行する構成エージェントが、
所定の基準を満たすと、前記印刷装置に適用されている現在の設定に対応する現在構成識別データを生成するステップと、
生成した現在構成識別データと、前記印刷装置のメモリに格納されている構成識別データとが異なることに応答して、前記構成マネジャに設定のためのデータを要求するステップと、
を含むコンピュータにより実施される方法。
【請求項16】
前記所定の基準は、前記構成エージェントの起動、指定時間量の満了、又は現在時間が指定時間と等しくなること、のうちの1つ以上を含む、請求項15に記載のコンピュータにより実施される方法。
【請求項17】
前記現在構成識別データは、前記設定に基づき生成される署名データ又はハッシュ結果データのうちの1つ以上である、請求項15に記載のコンピュータにより実施される方法。
【請求項18】
前記構成エージェントが、
前記メモリに構成識別データが格納されていないことに応答して、前記構成マネジャに設定のためのデータを要求するステップと、
を更に含む請求項15に記載のコンピュータにより実施される方法。
【請求項19】
前記設定は、セキュリティ設定を含む、請求項15に記載のコンピュータにより実施される方法。
【請求項20】
前記設定は、前記印刷装置が印刷プロセスを実行するための設定を含む、請求項15に記載のコンピュータにより実施される方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の技術分野は、印刷装置を構成することに関連する。
【背景技術】
【0002】
本章に記載されるアプローチは、追求される可能性のあるアプローチであるが、必ずしも以前に考案された又は追求されアプローチであるとは限らない。従って、特に断りの無い限り、本章に記載されるアプローチのいずれも、それらが本章に含まれるというだけで従来技術と認められるものと考えられるべきではない。更に、本章に記載されるアプローチのいずれも、それらが本章に含まれるというだけでよく理解された、日常的な、又は慣習的なものと考えられるべきではない。
【発明の概要】
【0003】
印刷装置は、構成されずに、又は有効化されたセキュリティ設定を有しない基本構成を有して、販売されることが多い。更に、有効化されたセキュリティ設定を有して販売される印刷装置は、エンドユーザにより再構成されることがあり、それらを非セキュア状態にしてしまう。システム管理者が印刷装置の構成をセキュアにし、制御し、及び維持できるように、装置管理システムが利用可能である。これらのシステムは、しかしながら、熟練した情報技術(Information Technology (IT))スタッフを必要とする。これにより、専門のITスタッフを有しない組織は、第三者攻撃に対して脆弱な印刷装置を使用することになる。
【0004】
コンピューティング装置は、1つ以上のプロセッサと、1つ以上のメモリと、印刷装置において印刷ジョブを印刷するための、前記コンピューティング装置上で実行する印刷プロセスと、前記印刷装置上で実行する構成エージェントと、を含む。前記構成エージェントは、構成マネジャから1つ以上のコンピュータネットワークを介して、前記印刷装置のための構成データを受信し、前記構成データは前記印刷装置のための複数の設定を指定し、前記構成データからの前記複数の設定を前記印刷装置に適用するよう構成され、前記印刷装置が前記複数の設定に従い動作する。前記構成エージェントは、前記構成データにより指定された前記複数の設定にユニークに対応する構成識別データを生成し、前記構成データにより指定された前記複数の設定をユニークに識別する前記構成識別データを、前記印刷装置の前記1つ以上のメモリに格納するよう更に構成される。
【0005】
前述のアプローチは、1つ以上のコンピュータにより実装されるプロセス、及び1つ以上のプロセスにより処理されると該アプローチを実施する命令を格納する非一時的コンピュータ可読媒体により実施されてもよい。
【図面の簡単な説明】
【0006】
実施形態は、添付の図面のうちの図に、例として示され、限定ではない。図中の同様の参照符号は同様の要素を表す。
【0007】
図1】印刷装置構成配置100を示すブロック図である。
図2】印刷装置の例示的な実装を示すブロック図である。
図3A】印刷装置の構成を管理する構成マネジャにより使用される、構成選択データ、構成データ、及び印刷装置データを示すブロック図である。
図3B】構成マネジャにより管理される例示的な構成選択データを示すブロック図である。
図3C】構成マネジャにより管理される例示的な印刷装置データを示すブロック図である。
図3D】構成マネジャにより更新された後の例示的な印刷装置データを示すブロック図である。
図4A】印刷装置の初期構成中の構成内の要素間で交換されるメッセージを示すメッセージラダー図である。
図4B】再構成チェック及び再構成中に、印刷装置と構成マネジャとの間で交換されるメッセージを示すメッセージラダー図である。
図5】実施形態が実装され得る例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0008】
以下の説明では、例示を目的として、実施形態の完全な理解を提供するために、多数の特定の詳細が説明される。しかしながら、当業者には、本形態がこれらの特定の詳細のうちを有しないで実行されてよいことが明らかである。他の例では、実施形態を不必要に不明瞭にすることを回避するために、よく知られた構造及び装置がブロック図の形式で示される。
【0009】
I.概要
II.印刷装置アーキテクチャ
A.印刷装置
B.ERPシステム
C.構成マネジャ
III.印刷装置の構成
A.初期構成
B.構成チェック及び再構成
IV.実装例
【0010】
I.概要
印刷装置を構成するアプローチが提供される。構成マネジャは、印刷装置のための構成データを維持し、構成データを印刷装置上で実行する構成エージェントに提供する。構成エージェントは、構成データにより指定された設定を印刷装置に適用し、設定をユニークに識別する構成識別データを生成する。構成エージェントは、構成識別データを用いて、印刷装置の現在構成が変更されているかどうかを決定する。変更されている場合、構成エージェントは、構成マネジャから構成データを取得し、適用する。
【0011】
本願明細書で使用されるとき、用語「構成データ」は、印刷装置のための設定を指定するデータを表す。例示的な設定は、限定ではなく、用紙/品質設定、効果設定、仕上げ設定、高度な設定、及びセキュリティ設定を含む。例示的なセキュリティ設定は、限定ではなく、HTTP設定、IPP設定、TLS設定、暗号化設定、FTP設定、WSD設定、RHPP設定、SNMP設定、等を含む。例えば、セキュリティ設定は、印刷装置にアクセスするためのユーザ認証、印刷装置の記憶装置上のデータの上書き及び暗号化、あまりセキュアでないと考えられる特定の通信プロトコルの無効化、等に関連してよい。本願明細書で使用されるとき、用語「構成」は、印刷装置のための設定を表し、用語「現在構成」は、印刷装置に現在適用されている設定を表す。
【0012】
本願明細書に記載される、印刷装置を構成するためのアプローチは、印刷装置が正しい設定により動作することを保証するために、どのように印刷装置の構成を管理するかの技術的問題に対する技術的ソリューションを提供する。技術的ソリューションは、専用のITスタッフを必要としないで、印刷装置が一貫したセキュアな構成を適用し維持することを可能にする。
【0013】
II.印刷装置構成アーキテクチャ
図1は、印刷装置構成配置100を示すブロック図である。配置100は、倉庫110、顧客サイト120、印刷装置130、企業資源計画(Enterprise Resource Planning (ERP))システム140、及び構成マネジャ150を含む。図1に示されるように、倉庫110は、印刷装置130が顧客サイト120に再配置される前に最初に構成される任意の物理的な位置である。用語「倉庫」は、本願明細書では、単に説明目的で使用される。倉庫110は、倉庫自体に限定されず、製造者、分配者、等のような他の物理的位置を含んでよい。顧客サイト120は、印刷装置130が使用される任意の物理的な位置である。用語「顧客サイト」は、本願明細書では、単に説明目的で使用される。顧客サイト120は、顧客サイ自体に限定されず、印刷装置130が使用される他の物理的位置を含んでよい。
【0014】
配置100の要素は、任意のタイプの1つ以上の無線及び/又は有線コンピュータネットワーク、及び/又は説明の目的で図1に図示されない直接通信リンクを介して通信可能に結合されてよい。配置100は、特定の実装に依存して、追加の又はより少ない要素を含んでよい。印刷装置を構成するアプローチは、説明の目的で単一の印刷装置130を構成する文脈で説明されるが、実施形態は、任意の数の印刷装置を構成することに適用可能である。
【0015】
A.印刷装置
印刷装置130は、電子文書のような印刷ジョブを印刷する装置である。実施形態は、任意のタイプの印刷装置に適用可能であり、例示的な印刷装置は、限定ではなく、プリンタ、コピー機、ファックス機、多機能周辺機器(Multi-Function Peripheral (MFP))を含む。図2は、印刷装置200の例示的な実装を示すブロック図である。印刷装置200は、ユーザインタフェース210、通信インタフェース220、構成エージェント230、印刷アーキテクチャ240、及びコンピューティングアーキテクチャ250を含む。
【0016】
ユーザインタフェース210は、ユーザが入力情報を印刷装置200に入力することを可能にし、及び/又は情報をユーザに表示する。例えば、ユーザインタフェース210は、ディスプレイスクリーン、制御パネル、キーボード、マウスのようなポインティングデバイス、又はそれらの任意の組合せにより実装されてよい。ユーザインタフェース210は、印刷装置の機能及び状態に関する情報をユーザに伝達し並びにユーザが機能を選択し及び印刷装置200に情報を入力することを可能にもする、タッチスクリーン上に表示されるグラフィカルユーザインタフェース制御を含んでよい。
【0017】
通信インタフェース220は、有線、無線、又は直接接続を介して、印刷装置200と他のコンピューティング要素との間のデータの交換を提供する。構成エージェント230は、以下に更に詳述されるように、構成データにより印刷装置130を構成する(及び再構成する)。構成エージェント230は、構成マネジャ150によりサポートされる1つ以上のアプリケーションプログラムインタフェース(Application Program Interface (API))を実施し、HTTP又はHTTPS接続を介して構成マネジャ150と通信してよい。構成エージェント230は、任意のタイプの1つ以上のコンピュータにより実施されるプロセスにより実施されてよい。更に、構成エージェント230は議論の目的で別個の要素として示されるが、構成エージェント230により提供される機能は、印刷装置200上の他のプロセス及び/又は要素に統合されてよい。
【0018】
印刷アーキテクチャ240は、印刷ジョブのような電子データを印刷するための、ハードウェア要素、ソフトウェア要素、又はハードウェア要素とソフトウェア要素との任意の組合せを含む。これは、例えば、用紙搬送、論理回路、トナーカートリッジ、感光ドラム、レーザ、1つ以上のコロナ、フューザ、消去ランプ、電源、等を含んでよい。
【0019】
コンピューティングアーキテクチャ250は、プロセッサ252、メモリ254、及びOS256を含む。プロセッサ252は、1つ以上のマイクロプロセッサにより実装され、コンピュータハードウェア及び/又はコンピュータソフトウェアに関連付けられてよい。メモリ254は、揮発性メモリ、不揮発性メモリ、又は揮発性と不揮発性メモリの任意の組合せにより実装されてよい。OS256は、特定の実装に依存して変化してよい任意のタイプのオペレーティングシステムにより実装されてよい。
【0020】
B.ERPシステム
ERPシステム140は、印刷装置を顧客にマッピングするデータを含む。ERPシステム140は、販売情報、出荷データ、等のような他の情報を含んでよい。ERPシステム140は、この情報を維持するデータベース、及びユーザがマッピングデータにアクセスし及び更新することを可能にするユーザインタフェースを含んでよい。ERPシステム140は、マッピングデータが構成マネジャ150へとプッシュされるように、又は構成マネジャ150により取得できるようにする、インタフェースも含んでよい。
【0021】
C.構成マネジャ
構成マネジャ150は、本願明細書に記載のように印刷装置を構成する。構成マネジャ150は、クラウドアプリケーション、サーバプロセス、等のような1つ以上のプロセスにより実装されてよい。例えば、構成マネジャ150は、ビジネス組織のサーバ上にホスティングされる、インターネットを介してアクセス可能なクラウドサービスとしてホスティングされる、等のプロセスであってよい。構成マネジャ150は、構成マネジャ150の機能及びデータを開示するためのアプリケーションプログラムインタフェース(API)を提供してよい。
【0022】
実施形態によると、構成マネジャ150は、印刷装置の構成を管理するために異なるタイプのデータを使用する。データは、構成マネジャ150が実行しているコンピューティング装置上にローカルに、又は構成マネジャ150からリモートに、例えばデータベース管理システム、データレポジトリ、等に、格納されてよい。図3Aは、印刷装置の構成を管理する構成マネジャ150により使用される、構成選択データ300、構成データ330、及び印刷装置データ350を示すブロック図である。構成選択データ300、構成データ330、及び印刷装置データ350は、特定の実装に依存して任意の形式又は構造で維持されてよく、別個のものとして図示され本願明細書に記載されるが、任意の方法で結合されてよい。
【0023】
構成選択データ300は、印刷装置のタイプ毎に使用されるべき構成を、顧客毎に指定する。図3Bは、構成マネジャ150により管理される例示的な構成選択データ300を示すブロック図である。本例では、3人の顧客(Customer A、Customer B、Customer C)及び3種類の印刷装置(Type 1、Type 2、Type 3)が存在する。各々3つのタイプの印刷装置(Type 1、Type 2、Type 3)に対応する3つの標準的な構成(C1、C2、C3)がある。標準的な構成(C1、C2、C3)は、対応するタイプ(Type 1、Type 2、Type 3)の印刷装置に適する設定を含む。例えば、標準的な構成は、対応するタイプの印刷装置で安定していると分かっている設定を含んでよい。カスタム構成は、特定の顧客及び印刷装置の種類のために指定される。これらは、顧客BのType 1の印刷装置のためのカスタム構成(Custom B-C1)、及び顧客CのType 2の印刷装置のためのカスタム構成(Custom C-C2)を含む。カスタム構成の中の設定は、顧客により、彼らの動作環境、ユーザ選好、ポリシ、等に基づき確立されてよい。例えば、特定の顧客は、標準的な構成よりも高いセキュリティを提供するためにセキュリティ設定を使用する構成を実施してよい。構成選択データ300は、特定の実装に依存して変化してよい他のデータを含んでよく、実施形態は図示された及び本願明細書に記載された例示的なデータに限定されない。
【0024】
以下により詳細に記載されるように、構成マネジャ150は、構成選択データ300を使用して、印刷装置のための構成を決定する。例えば、標準的な構成C1は、Customer A及びCustomer CのType 1の印刷装置のために使用される。別の例として、標準的な構成C2は、Customer A及びCustomer BのType 2の印刷装置のために使用される。更なる例として、カスタム構成Custom B-C1はCustomer BのType 1の印刷装置のために使用され、カスタム構成Custom C-C2はCustomer CのType 2の印刷装置のために使用される。本願明細書では、3人の顧客及び3種類の印刷装置の文脈で例が記載されるが、実施形態はこれらの例に限定されず、任意の数の顧客及びタイプの印刷装置に適用可能である。構成選択データ300は、例えばアプリケーション又は構成マネジャ150のウェブブラウザ及びAPIを用いて、管理者ユーザにより生成され維持されてよい。
【0025】
構成データ330は、任意の数及びタイプの構成のための構成データを含み、構成データの各インスタンスは、印刷装置のための複数の設定を含む。図3Bの例示的な構成選択データ300では、構成選択データ300は、構成C1、C2、C3、Custom B-C1、及びCustom C-C2のための構成データを含む。構成データ330は、特定の実装に依存して任意の形式又はフォーマットで格納されてよく、ユーザにより構成管理マネジャ150のユーザインタフェースを介して定義されてよい。
【0026】
印刷装置データ350は、各印刷装置が構成されるかどうか、構成される場合にどの構成により構成されるか、を含む、印刷装置のためのデータを指定する。図3Cは、構成マネジャ150により管理される例示的な印刷装置データ350を示すブロック図である。本例では、印刷装置データ350は、テーブルとして示される。テーブルの各行は、特定の印刷装置に対応し、シリアル番号、タイプ、顧客ID、及び構成を指定する。シリアル番号は、印刷装置をユニークに識別する番号である。シリアル番号は本願明細書では説明のために使用されるが、実施形態はシリアル番号自体を使用することに限定されず、印刷装置をユニークに識別する任意のデータが使用されてよい。一例は、媒体アクセス制御(Media Access Control (MAC))アドレスである。
【0027】
タイプは、印刷装置のタイプであり、本例では、Type1、Type2、又はType3を有してよい。顧客IDは、印刷装置を制御し又は所有するエンティティを識別するデータである。本願明細書では説明の目的で使用されるが、実施形態では、顧客ID自体に限定されず、印刷装置を制御し又は所有するエンティティをユニークに識別する任意のデータが使用されてよい。
【0028】
構成は、印刷装置のための構成を識別するデータであり、本例では、C1、C2、C3、Customer C-C2、又はCustomer B-C1の値を有してよい。セル内のブランク又はヌルは、構成が印刷装置に未だ割り当てられていないことを意味する。これは、例えば、印刷装置が特定の顧客に販売され、対応するエントリが印刷装置データ350内に生成されるが、それらの印刷装置が本願明細書に記載されるアプローチを用いて未だ構成されていないときに生じることがある。
【0029】
構成マネジャ150は、構成選択データ300、構成データ330、及び印刷装置データ350を生成し管理する、ウェブに基づくユーザインタフェースを提供してよい。ウェブに基づくユーザインタフェースは、管理者ユーザが、印刷装置の現在構成状態を閲覧し、印刷装置データ350により表される印刷装置を追加し、編集し、及び削除することを可能にする。例えば、ユーザインタフェースは、クライアント装置のユーザが、新しい印刷装置を追加し、印刷装置が既に構成されている場合には、シリアル番号、タイプ、顧客ID、及び構成を指定することを可能にする。これは、いつでも、例えば印刷装置が顧客に販売されるとき、倉庫110において構成されるとき、又は顧客サイト120に配備されとき、行われてよい。新しい印刷装置が未だ構成されていない場合、管理者は、構成を指定する必要はなく、印刷装置は本願明細書に記載されたように自動的に構成される。管理者ユーザは、シリアル番号、タイプ、及び顧客IDを含むパラメータのいずれかを変更してもよい。
【0030】
代替として、構成選択データ300、構成データ330、及び印刷装置データ350は、企業資源計画(ERP)システム又はRicohによるStreamline NXのような装置管理システムのような第三者システムから受信したデータに基づき入力されてよい。ユーザインタフェースは、ユーザがシリアル番号(又は他の識別情報)、顧客ID、印刷装置タイプ、構成ID等により印刷装置を検索することを可能にする制御も含んでよい。実施形態によると、構成マネジャ150は、構成選択データ300、構成データ330、及び印刷装置データ350に関して実行される全部のアクションを追跡する。
【0031】
III.印刷装置の構成
本願明細書に記載される、印刷装置を構成するためのアプローチは、印刷装置の初期構成、及び印刷装置の後の構成チェック及び再構成の両方を提供する。実施形態は、初期構成が倉庫110において実行され、構成チェック及び再構成が顧客サイト120において実行される文脈で図示され本願明細書に記載されるが、実施形態は本例に限定されず、初期構成及び後の構成チェック及び再構成は任意の位置で実行されてよい。
【0032】
A.初期構成
印刷装置の初期構成は、構成エージェント230が印刷装置130上で開始されるときに実行される。これは、例えば、印刷装置130が電源をオンにされた後、又は構成エージェント230が開始される任意の他のときに、生じ得る。例えば、倉庫110において、印刷装置130は、電源をオンにされてよく、構成エージェント230は管理者ユーザによりインストールされ、次に印刷装置130が電源をオフにされ再びオンにされる。代替として、インストール後、構成エージェント230は直ちに実行されてよい。実施形態は、初期構成が倉庫110において実行される例に限定されず、初期構成は顧客サイト120を含む任意の場所で実行されてよい。
【0033】
図4Aは、印刷装置130の初期構成中の構成100内の要素間で交換されるメッセージを示すメッセージラダー図400である。ステップ402で開始し、構成エージェント230が起動する。これは、印刷装置130が電源をオンにされた後、又は構成エージェント230が印刷装置130上で開始された後であってよい。
【0034】
ステップ404で、構成要求が構成マネジャ150へ送信される。構成エージェント230は、HTTPS(又は類似のプロトコル)要求を生成し、構成マネジャ150へ送信してよい。実施形態によると、要求は、印刷装置130のシリアル番号を指定する。本例では、印刷装置130のシリアル番号は、SN15である。実施形態によると、ステップ404で、構成要求を構成マネジャ150へ送信する前に、構成エージェント230は、メモリ254内の構成IDデータ260が格納された構成IDを有するかどうかを決定する。有する場合、印刷装置130は前に構成されており、以下に図4Bを参照して説明される構成チェックプロセスが、図4Aの初期構成プロセスに代わりに実行される。本例では、メモリ254内の構成IDデータ260は、格納された構成IDを有しないので、前に構成されていないと推定される。
【0035】
ステップ406で、印刷装置130が現在構成されているかどうかの決定が行われる。例えば、構成マネジャ150は、要求に含まれる印刷装置130のシリアル番号を用いて、シリアル番号に対応する、印刷装置データ350内の行を識別する。構成マネジャ150は、次に、識別した行の構成フィールドを調べ、印刷装置130が現在構成されているかどうかを決定する。構成フィールド内の値の存在は、印刷装置130がその構成により現在構成されていることを示す。ブランク値は、印刷装置130が、少なくとも構成マネジャ150により、未だ構成されていないことを示す。印刷装置130は、例えば工場でインストールされた基本又は標準的な構成により、構成され動作してよい。
【0036】
構成フィールドがブランク値を含み、印刷装置130が未だ構成されていないことを示す場合、構成マネジャ150は、印刷装置データ350及び構成選択データ300からの他の情報を使用して、印刷装置130のための構成を決定する。
【0037】
本例では、印刷装置130のシリアル番号は、SN15である。シリアル番号SN15に対応する印刷装置データ350内の行は、構成フィールド内の値を有しない。これは、印刷装置130が構成マネジャ150により未だ構成されていないことを意味する。実施形態によると、構成マネジャ150は、タイプフィールド内の「Type 3」の値、及び顧客フィールド内の「Customer C」の値を使用して、構成選択データ300から印刷装置130のための構成を決定する。より具体的には、構成選択データ300は、構成C3がCustomer C及びType 3の印刷装置のために使用されるべきであると指定する。特定の印刷装置が顧客フィールド内に値を有しない状況では、構成マネジャ150は、構成選択データ300の「No Assigned Customer(顧客が割り当てられていない)」で指定されたタイプの印刷装置のための構成を使用してよい。タイプフィールド内に値がない、又は顧客及びタイプフィールドの両方に値がない状況では、構成マネジャ150は、例えば基本設定のセットを含んでよいデフォルト構成を割り当ててよい。実施形態によると、構成マネジャ150は、モデル番号から装置タイプへのマッピングデータを維持し、構成マネジャ150が印刷装置のモデル番号を用いて装置タイプを決定し、次に構成選択データ310を用いて装置タイプに基づき構成を選択することを可能にする。
【0038】
ステップ408で、構成応答が生成され印刷装置130へ送信される。例えば、構成マネジャ150は、C3構成データ又はC3構成データへの参照を含む構成応答を生成し、構成エージェント230へ送信する。構成データは、特定の実装に依存して変化する任意の形式又はフォーマットであってよい。実施形態によると、構成エージェント230は、メモリ254内の構成データ258として構成データを格納する。
【0039】
ステップ410で、印刷装置130は、構成のための設定を適用する。例えば、構成エージェント230は、C3構成データ内の設定を適用する。これは、構成エージェント230が、C3構成データから設定を抽出し、設定を適用するために、印刷装置130の制御部への1つ以上のOS256呼び出しを生成することを含んでよい。呼び出しが完了すると、印刷装置130は、C3構成データにより指定された設定により動作する。
【0040】
ステップ412で、印刷装置130は、構成のための構成IDを生成する。構成IDは、C3構成データ内の設定にユニークに対応するデータである。構成IDデータの例は、限定ではなく、署名及びハッシュ値を含む。構成エージェント230は、設定を処理して署名、ハッシュ、チェックサム、等を生成することにより、構成IDを生成してよい。例えば、構成エージェント230は、設定(又はその部分集合)を、設定にユニークに対応するハッシュ結果を生成する一方向ハッシュ関数への入力として提供してよい。一方向ハッシュ関数は、構成エージェント230に実装されてよく、又は構成エージェント230の外部にあり構成エージェント230により呼び出されてよい。この方法では、結果として生じる構成IDは、印刷装置130の現在の構成にユニークに対応する。構成エージェント230は、構成IDを、メモリ254内の構成IDデータ260に格納する。実施形態によると、構成エージェント230は、メモリ254のセキュア部分、例えば構成データ258が格納されている場所とは別のメモリ254の部分の中の構成IDデータ260に構成IDを格納する。
【0041】
ステップ414で、構成確認が構成マネジャ150へ送信される。例えば、構成エージェント230は、印刷装置130が今やC3構成データにより構成されていることを確認する確認メッセージを生成し、構成マネジャ150へ送信する。代替として、構成エージェント230が印刷装置130を構成することを妨げるエラーが生じた場合には、構成確認は、エラーが生じたこと、及び利用可能な場合にはエラーに関する追加の詳細事項も示す。エラーが生じた場合、構成エージェント230は、印刷装置130のユーザインタフェース210上でエラーメッセージを表示させてよい。構成エージェント230は、1つ以上のエラーメッセージを、例えば電子メール、メッセージングサービス、等により生成させ管理者ユーザへ送信させて、彼らに、印刷装置130が構成されることを妨げるエラーが生じていることを通知してもよい。
【0042】
ステップ416で、構成マネジャ150は、印刷装置130が構成されたことを記録する。例えば、構成マネジャ150は、印刷装置130(SN15)に対応する印刷装置データ350内の行の構成フィールドを、値「C3」により更新して、印刷装置130が今やC3構成データにより構成されていることを示す。図3Dは、構成マネジャ150により更新された後の例示的な印刷装置データ350を示すブロック図である。シリアル番号SN15を有する印刷装置130の構成フィールド352は、C3の値により更新されている。構成マネジャ150は、1つ以上のメッセージを生成し、顧客、分配者、管理者、等に送信して、印刷装置130が成功裏に構成されたことを示してもよい。構成確認がエラーが生じたことを示す場合、構成マネジャ150は、印刷装置データ350を更新せず、代わりに、通知を生成し、管理者ユーザ、顧客、分配者、等へ送信してよい。例えば、顧客マネジャ150は、構成マネジャ150が存在するコンピューティング装置のユーザインタフェース上に通知を表示させる。別の例として、構成マネジャ150は、1つ以上のエラーメッセージを、例えば電子メール、メッセージングサービス、等により生成し、管理者ユーザへ送信して、彼らに、印刷装置130が構成されることを妨げるエラーが生じていることを通知してよい。
【0043】
B.構成チェック及び再構成
実施形態によると、構成エージェント230は、構成が変更されたかどうかを決定し、変更された場合には印刷装置130を再構成するよう構成される。本願明細書に記載される構成チェック及び再構成は、種々の基準の充足により実行されてよい。例示的な基準は、特定の実装に依存して、指定時間に、周期的に、又は構成エージェント230が開始される任意の時間に、を含む。
【0044】
図4Bは、再構成チェック及び再構成中に、印刷装置130と構成マネジャ150との間で交換されるメッセージを示すメッセージラダー図450である。ステップ452で開始し、現在設定が読み出され、現在構成IDが生成される。例えば、構成エージェント230は、印刷装置130の制御部への1つ以上のOS256呼び出しを生成して、印刷装置130により使用されている現在設定を読み出してよい。構成エージェント230は、本願明細書で前述したように、現在設定を用いて現在構成IDを生成する。
【0045】
ステップ454で、現在構成IDは、印刷装置130の構成が変更されたかどうかを決定するために、格納された構成IDと比較される。これは、構成エージェント230が格納された構成IDをメモリ254内の構成IDデータ260から読み出し、次にそれを現在構成IDと比較することを含んでよい。構成は、例えば、エンドユーザ、第三者攻撃者、ウイルス又はマルウェア等が印刷装置130により使用されている設定を変更した場合に、変更してよい。
【0046】
現在構成ID及び格納された構成IDの両方が、印刷装置130の設定に基づき生成されるので、現在構成IDが格納された構成IDと同じであれば、印刷装置130の設定構成は変更されおらず、図4Bの処理は完了する。現在構成IDが格納された構成IDと同じではない場合、印刷装置130の構成は変更されており、ステップ456で、構成要求が生成され、構成マネジャ150へ送信される。ステップ404で前に行われたように、構成要求は、印刷装置130のシリアル番号を指定する。図4Aの例を続けると、印刷装置130のシリアル番号は、SN15である。構成エージェント230は、構成が危険に晒されてる可能性があるという警告のような通知を、印刷装置130のユーザインタフェース210上に表示させ、印刷装置130を使用させないようにしてもよい。構成エージェント230は、1つ以上のメッセージを生成し、構成マネジャ150のような他の場所へ送信して、印刷装置130の状態を管理者ユーザに警告してもよい。
【0047】
実施形態によると、構成エージェント230が、メモリ254内の構成IDデータ260の中に格納された構成IDがないと決定した場合、構成エージェント230は、ステップ456へ進み、構成要求を生成し、構成マネジャ150へ送信する。これは、例えば、印刷装置130が顧客サイト120に配備される前に、倉庫110において構成されない場合に生じてよい。
【0048】
ステップ458で、印刷装置130が現在構成されているかどうかの決定が行われる。ステップ406で、構成マネジャ150は、要求に含まれる印刷装置130のシリアル番号を用いて、印刷装置130に対応する、印刷装置データ350内の行を識別する。
【0049】
行が識別されると、構成マネジャ150は、構成フィールドを検査して、印刷装置130が現在構成されているどうかを決定する。構成フィールド内の値の存在は、印刷装置130がその構成により現在構成されていることを示す。ブランク値は、印刷装置130が、少なくとも各々の構成マネジャ150から、未だ構成されていないことを示す。構成フィールドがブランク値を含む場合、構成マネジャ150は、本願明細書で前述したように、印刷装置データ350からの顧客ID及び印刷装置タイプ値を使用して、印刷装置130のための指定された構成を識別する。本例では、構成フィールド352(図3D)は、印刷装置130が最初に構成されたとき、C3に更新された。
【0050】
ステップ460で、構成応答が生成され印刷装置130へ送信される。例えば、構成マネジャ150は、C3構成データ又はC3構成データへの参照を含む構成応答を生成し、構成エージェント230へ送信する。実施形態によると、構成エージェント230は、メモリ254内の構成データ258として構成データを格納する。
【0051】
ステップ456~460の代替として、構成エージェント230は、メモリ254からの構成データ258に格納された構成を再適用してよい。これは、全ての場合に、又は構成エージェント230が構成マネジャ150との接続を確立できない状況で、使用されてよい。
【0052】
ステップ462で、印刷装置130は、C3構成データから設定を抽出し、設定を適用するために、印刷装置130の制御部への1つ以上のOS256呼び出しを生成することにより、構成のための設定を適用する。呼び出しが完了すると、印刷装置130は、C3構成データにより指定された設定により動作する。
【0053】
ステップ464で、印刷装置130は、上述したように、構成IDを生成し、メモリ254内の構成データ260に格納する。この構成IDは、前に格納された構成IDを上書きしてよく、又は、元の構成IDは法律上の目的で維持されてよい。
【0054】
ステップ466で、構成が成功したかどうかを指定する構成確認が、構成マネジャ150へ送信される。構成エージェント230が印刷装置130を構成することを妨げるエラーが生じた場合には、構成確認は、エラーが生じたこと、及び利用可能な場合にはエラーに関する追加の詳細事項も示してよい。
【0055】
ステップ468で、構成マネジャ150は、印刷装置130が構成されたことを記録する。例えば、構成マネジャ150は、印刷装置130(SN15)に対応する印刷装置データ350内の行の構成フィールドを、値「C3」により更新して、印刷装置130が今やC3構成データにより構成されていることを示す。
【0056】
本願明細書に記載される構成チェック及び再構成を実行するためのアプローチは、幾つかの利益を提供する。例えば、それは、印刷装置が、一貫した、セキュアな構成をIT職員の最小限の関与により自動的に維持することを可能にする。それは、膨大な数の印刷装置の場合でも、印刷装置の構成が容易に変更されることも可能にする。例えば、顧客は、例えばより良いセキュリティを提供するために、特定タイプの印刷装置のための構成を変更することを決定してよい。これは、顧客が構成マネジャ150にアクセスし、顧客の印刷装置のための印刷装置データ350を更新することにより容易に達成できる。構成エージェントは、次に、ITスタッフに更新を実行することを要求せずに、印刷装置の全部を自動的に更新する。
【0057】
IV.実装例
一実施形態によると、本願明細書に記載される技術は、少なくとも1つのコンピューティング装置により実施される。技術は、パケットデータネットワークのようなネットワークを用いて接続される少なくとも1つのサーバコンピュータ及び/又は他のコンピューティング装置の組合せを用いて、全体的に又は部分的に実施されてよい。コンピューティング装置は、技術を実行するためにハード結線されてよく、又は技術を実行するために永久的にプログラムされる少なくとも1つの特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)のようなデジタル電子装置を含んでよく、又はファームウェア、メモリ、他の記憶装置、若しくは組合せ内のプログラム命令に従って技術を実行するためにプログラムされる少なくとも1つの汎用ハードウェアプロセッサを含んでよい。そのようなコンピューティング装置は、記載の技術を達成するためのカスタムプログラムを有するハード結線ロジック、ASIC、又はFPGAを結合してもよい。コンピューティング装置は、サーバコンピュータ、ワークステーション、パーソナルコンピュータ、ポータブルコンピュータシステム、ハンドヘルド装置、モバイルコンピューティング装置、ウェアラブル装置、身体装着又は埋め込み型装置、スマートフォン、スマート家電、インターネットワーキング装置、ロボット若しくは無人地上若しくは空中車両のような自律若しくは準自律装置、記載された技術を実施するためにハード結線及び/又はプログラムロジックを組み込む任意の他の電子装置、データセンタ内の1つ以上の仮想コンピューティングマシン若しくはインスタンス、及び/又はサーバコンピュータ及び/又はパーソナルコンピュータのネットワーク、であってよい。
【0058】
図5は、実施形態が実装され得る例示的なコンピュータシステムを示すブロック図である。図5の例では、コンピュータシステム500及びハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組合せで開示の技術を実施するための命令は、概略的に、例えばボックス及び円として、コンピュータアーキテクチャ及びコンピュータシステム実装に関する通信について、本開示の関連する当業者により一般的に使用される同じ詳細レベルで示される。
【0059】
コンピュータシステム500は、電子信号パスを介してコンピュータシステム500のコンポーネントの間で情報及び/又は命令を通信するためのバス及び/又は他の通信メカニズムを含んでよい入力/出力(I/O)サブシステム502を含む。I/Oサブシステム502は、I/O制御部、メモリ制御部、及び少なくとも1つのI/Oポートを含んでよい。電子信号パスは、図中に、例えば線、一方向矢印、又は両方向矢印として概略的に示される。
【0060】
少なくとも1つのハードウェアプロセッサ504は、情報及び命令を処理するためにI/Oサブシステム502に接続される。ハードウェアプロセッサ504は、例えば、汎用マイクロプロセッサ又はマイクロコントローラ及び/又は埋め込み型システム又はグラフィック処理ユニット(GPU)又はデジタル信号プロセッサ又はARMプロセッサのような専用マイクロプロセッサを含んでよい。プロセッサ504は、統合算術論理演算ユニット(arithmetic logic unit (ALU))を含んでよく、又は別個のALUに結合されてよい。
【0061】
コンピュータシステム500は、メインメモリのようなメモリ506の1つ以上のユニットを含み、これは、プロセッサ504により実行されるべきデータ及び命令を電子的にデジタル方式で格納するために、I/Oサブシステム502に接続される。メモリ506は、様々な形式のランダムアクセスメモリ(RAM)又は他の動的記憶装置のような揮発性メモリを含んでよい。メモリ506は、プロセッサ504により実行されるべき命令の実行中に一時的変数又は他の中間的情報を格納するために使用されてもよい。そのような命令は、プロセッサ504にアクセス可能な非一時的コンピュータ可読記録媒体に格納されるとき、コンピュータシステム500を、命令の中で指定された動作を実行するようカスタマイズされた専用の機械にすることができる。
【0062】
コンピュータシステム500は、プロセッサ504のための情報及び命令を格納するためにI/Oサブシステム502に接続された読み出し専用メモリ(ROM)508又は他の静的記憶装置のような不揮発性メモリを更に含む。ROM508は、消去可能PROM(EPROM)又は電気的消去可能PROM(EEPROM)のような様々な形式のプログラマブルROM(PROM)を含んでよい。永久記憶装置510のユニットは、FLASH(登録商標)メモリ又は固体記憶のような様々な形式の不揮発性RAM(NVRAM)、磁気ディスク、又はCD-ROM又はDVD-ROMのような光ディスクを含んでよく、情報及び命令を格納するためにI/Oサブシステム502に接続されてよい。記憶装置510は、プロセッサ504により実行されるとコンピュータにより実施される方法を実行させて本願明細書の技術を実行させる命令及びデータを格納するために使用されてよい不揮発性コンピュータ可読媒体の例である。
【0063】
メモリ506、ROM508、又は記憶装置510内の命令は、モジュール、メソッド、オブジェクト、関数、ルーチン、又は呼び出しとして組織化される1つ以上の命令セットを含んでよい。命令は、1つ以上のコンピュータプログラム、オペレーティングシステムサービス、又はモバイルアプリを含むアプリケーションプログラムとして組織化されてよい。命令は、オペレーティングシステム及び/又はシステムソフトウェア;マルチメディア、プログラミング、又は他の機能をサポートする1つ以上のライブラリ;TCP/IP、HTTP、又は他の通信プロトコルを実装するためのデータプロトコル命令又はスタック;HTML、XML、JPEG、MPEG、又はPNGを用いてコーディングされたファイルをパース又はレンダリングするためのファイルフォーマット処理命令;グラフィックユーザインタフェース(GUI)、コマンドラインインタフェース、又はテキストユーザインタフェースのためにコマンドをレンダリング又はインタープリットするためのユーザインタフェース命令;オフィススーツ、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックアプリケーション、オーディオアプリケーション、ソフトウェア工学アプリケーション、教育アプリケーション、ゲーム又は種々のアプリケーションのようなアプリケーションソフトウェアを含んでよい。命令は、ウェブサーバ、ウェブアプリケーションサーバ、又はウェブクライアントを実装してよい。命令は、プレゼンテーション層、アプリケーション層、及び構造化クエリ言語(SQL)又は非SQL、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータ記憶を用いる関係型データベースシステムのようなデータ記憶層として組織化されてよい。
【0064】
コンピュータシステム500は、I/Oサブシステム502を介して、少なくとも1つの出力装置512に接続されてよい。一実施形態では、出力装置512は、デジタルコンピュータディスプレイである。種々の実施形態で使用され得るディスプレイの例は、タッチスクリーンディスプレイ又は発光ダイオード(LED)ディスプレイ又は液晶ディスプレイ(LCD)又は電子ペーパディスプレイを含む。コンピュータシステム500は、ディスプレイ装置の代替として又は追加で他の種類の出力装置512を含んでよい。他の種類の出力装置512の例は、プリンタ、チケットプリンタ、プロッタ、プロジェクタ、音声カード又はビデオカード、スピーカ、ブザー、又は圧電素子又は他の可聴装置、ランプ又はLED又はLCDインジケータ、ハプティック装置、アクチュエータ又はサーボを含む。
【0065】
少なくとも1つの入力装置514は、信号、データ、コマンド選択、又はジェスチャをプロセッサ504に通信するためにI/Oサブシステム502に接続される。入力装置514の例は、タッチスクリーン、マイクロフォン、静止画又は動画デジタルカメラ、英数字及び他のキー、キーパッド、キーボード、グラフィックタブレット、画像スキャナ、ジョイスティック、クロック、スイッチ、ボタン、ダイヤル、スライド、及び/又は力センサ、動きセンサ、熱センサ、加速度計、ジャイロスコープ、慣性測定ユニット(IMU)センサのような種々の種類のセンサ、及び/又はセルラ若しくはWi-Fi、無線周波数(RF)若しくは赤外線(IR)トランシーバ及び全地球測位システム(GPS)トランシーバのような無線のような種々の種類のトランシーバを含む。
【0066】
別の種類の入力装置は、入力機能の代替として又は追加で、ディスプレイスクリーン上のグラフィカルインタフェース内のナビゲーションのようなカーソル制御又は他の児童制御機能を実行し得る制御装置516である。制御装置516は、プロセッサ504に方向情報及びコマンド選択を通信するための、及びディスプレイ512上でカーソルの動きを制御するための、タッチパッド、マウス、トラックボール、又はカーソル方向キーであってよい。入力装置は装置が平面内の位置を指定できるようにする、2軸、つまり第1軸(例えば、x)と第2軸(例えば、y)における少なくとも2つの自由度を有してよい。別の種類の入力装置は、ジョイスティック、ワンド、コンソール、ステアリングウィール、ペダル、ギアシフト機構、又は他の種類の制御装置のような有線、無線、又は光制御装置である。入力装置514は、ビデオカメラ及び深さセンサのような複数の異なる入力装置の組合せを含んでよい。
【0067】
別の実施形態では、コンピュータシステム500は、出力装置512、入力装置514、及び制御装置516のうちの1つ以上が省略される、モノのインターネット(IoT)装置を含んでよい。或いは、そのような実施形態では、入力装置514は、1つ以上のカメラ、動き検出器、サーモメータ、マイクロフォン、地震検出器、他のセンサ若しくは検出器、測定装置又はエンコーダを含んでよく、出力装置512は、シングルラインLED若しくはLCDディスプレイのような専用ディスプレイ、1つ以上のインジケータ、ディスプレイパネル、メータ、バルブ、ソレノイド、アクチュエータ又はサーボを含んでよい。
【0068】
コンピュータシステム500がモバイルコンピューティング装置であるとき、入力装置514は、複数のGPS衛星に対して三角測量し、地理的位置又はコンピュータシステム500の地球物理学上の位置の緯度経度値のような位置データを決定し生成できるGPSモジュールに接続される全地球測位システム(GPS)受信機を含んでよい。出力装置512は、位置報告パケット、通知、パルス若しくはハートビート信号、又はホスト524若しくはサーバ530に向けられる単独で若しくは他の特定用途向けデータと組合せてコンピュータシステム500の位置を指定する他の循環データ送信を生成するための、ハードウェア、ソフトウェア、ファームウェア、及びインタフェースを含んでよい。
【0069】
コンピュータシステム500は、カスタマイズされたハード結線ロジック、少なくとも1つのASIC若しくはFPGA、ロードされコンピュータシステムと組み合わせて使用され若しくは実行されると、コンピュータシステムを専用機械として動作させる又はそうするようプログラムするファームウェア及び/又はプログラム命令若しくはロジックを用いて、本願明細書に記載された技術を実施してよい。一実施形態によると、本願明細書に記載の技術は、プロセッサ504がメインメモリ506に含まれる少なくとも1つの命令の少なくとも1つのシーケンスを実行することに応答して、コンピュータシステム500により実行されてよい。そのような命令は、記憶装置510のような別の記憶媒体からメインメモリ506に読み込まれてよい。メインメモリ506に含まれる命令シーケンスの実行は、プロセッサ504に、本願明細書に記載の処理ステップを実行させる。代替の実施形態では、ハード結線回路が、ソフトウェア命令の代わりに又はそれと組合せて使用されてよい。
【0070】
用語「記憶媒体」は、本願明細書で使用されるとき、機械を特定の方式で動作させるデータ及び/又は命令を格納する任意の非一時的媒体を表す。そのような記憶媒体は、不揮発性媒体及び/又は揮発性媒体を含んでよい。不揮発性媒体は、例えば、記憶装置510のような光又は磁気ディスクを含む。揮発性媒体は、メモリ506のような動的メモリを含む。一般的形式の記憶媒体は、例えば、ハードディスク、固体ドライブ、フラッシュドライブ、磁気データ記憶媒体、任意の光又は物理データ記憶媒体、メモリチップ、等を含んでよい。
【0071】
記憶媒体は、伝送媒体とは異なるが、それと関連して使用されてよい。伝送媒体は、記憶媒体の間で情報を転送する際に関与する。例えば、伝送媒体は、同軸ケーブル、銅線、及び光ファイバ、を含み、I/Oサブシステム502のバスを含むワイヤを含む。伝送媒体は、無線波及び赤外線データ通信の間に生成されるような音響又は光波の形式も取ることができる。
【0072】
種々の形式の媒体は、少なくとも1つの命令の少なくとも1つのシーケンスを実行のためにプロセッサ504に伝達する際に関連し得る。例えば、命令は、最初に、リモートコンピュータの磁気ディスク又は固体ドライブ上で伝達されてよい。リモートコンピュータは、命令を自身の動的メモリにロードし、命令を光ファイバ又は同軸ケーブル又は電話線のような通信リンクを介してモデムを用いて送信できる。コンピュータシステム500のローカルにあるモデム又はルータは、通信リンク上でデータを受信し、該データをコンピュータシステム500により読み出すことができるフォーマットに変換できる。例えば、無線周波数アンテナ又は赤外線検出器のような受信機は、無線又は光信号の中で伝達されるデータを受信でき、適切な回路が、データをI/Oサブシステム502に提供でき、例えばデータをバスに置く。I/Oサブシステム502は、データをメモリ506に伝達し、メモリ506から、プロセッサ504は命令を読み出し実行する。メモリ506により受信された命令は、任意で、プロセッサ504による実行の前又は後に記憶装置510に格納されてよい。
【0073】
コンピュータシステム500は、バス502に接続された通信インタフェース518も含む。通信インタフェース518は、ネットワーク522又はインターネット上の公衆若しくは私設クラウドのような少なくとも1つの通信ネットワークに直接若しくは間接に接続されるネットワークリンク520に結合する2方向データ通信を提供する。例えば、通信インタフェース518は、イーサネットネットワークインタフェース、統合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、又は対応するタイプの通信回線、例えばイーサネットケーブル又は任意の種類の金属ケーブル又は光ファイバ回線又は電話回線へのデータ通信接続を提供するモデムであってよい。ネットワーク522は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、キャンパスネットワーク、インターネットワーク、又はそれらの任意の組み合わせを広く表す。通信インタフェース518は、互換性のあるLAN、又はセルラ無線電話無線ネットワーキング標準に従いセルラデータを送信又は受信するために結線されたセルラ無線電話インタフェース、又は衛星無線ネットワーキング標準に従いデジタルデータを送信し又は受信するために結線された衛星無線インタフェースへのデータ通信接続を提供するためにLANカードを含んでよい。任意のそのような実装では、通信インタフェース518は、様々なタイプの情報を表すデジタルデータストリームを伝達する信号経路を介して電気、電磁気、又は光信号を送受信する。
【0074】
ネットワークリンク520は、標準的に、例えば、衛星、セルラ、Wi-Fi、又はBLUETOOTH(登録商標)技術を用いて直接に又は少なくとも1つのネットワークを通じて他のデータ装置に、電気、電磁気、又は光データ通信を提供する。例えば、ネットワークリンク520は、ネットワーク522を通じてホストコンピュータ524へ接続を提供してよい。
【0075】
更に、ネットワークリンク520は、ネットワーク522を通じて又はインターネットサービスプロバイダ(ISP)526により運営される他のコンピュータ装置へインターネットワーキング装置及び/又はコンピュータを介して接続を提供してよい。ISP526は、インターネット528として表されるワールドワイドパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。サーバコンピュータ530は、インターネット528に接続されてよい。サーバ530は、任意のコンピュータ、データセンタ、ハイパーバイザを有する若しくは有しない仮想マシン若しくは仮想コピューティングインスタンス、又はDOCKER若しくはKUBERNETESのようなコンテナ化されたプログラムシステムを実行するコンピュータを広く表す。サーバ530は、複数のコンピュータ又はインスタンスを使用して実装され、Webサービス要求、HTTPペイロードのパラメータを含むURL(Uniform Resource Locator)文字列、API呼び出し、アプリサービス呼び出し又は他のサービス呼び出しを送信することによってアクセス及び使用される電子デジタルサービスを表してよい。コンピュータシステム500及びサーバ530は、他のコンピュータ、処理クラスタ、サーバファーム、又はタスクを実行するか若しくはアプリケーション若しくはサービスを実行するために協力するコンピュータの他の組織を含む分散コンピューティングシステムの要素を形成し得る。サーバ530は、モジュール、メソッド、オブジェクト、関数、ルーチン、又は呼び出しとして組織化される1つ以上の命令セットを含んでよい。命令は、1つ以上のコンピュータプログラム、オペレーティングシステムサービス、又はモバイルアプリを含むアプリケーションプログラムとして組織化されてよい。命令は、オペレーティングシステム及び/又はシステムソフトウェア;マルチメディア、プログラミング、又は他の機能をサポートする1つ以上のライブラリ;TCP/IP、HTTP、又は他の通信プロトコルを実装するためのデータプロトコル命令又はスタック;HTML、XML、JPEG、MPEG、又はPNGを用いてコーディングされたファイルをパース又はレンダリングするたえのファイルフォーマット処理命令;グラフィックユーザインタフェース(GUI)、コマンドラインインタフェース、又はテキストユーザインタフェースのためにコマンドをレンダリング又はインタープリットするためのユーザインタフェース命令;オフィススーツ、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックアプリケーション、オーディオアプリケーション、ソフトウェア工学アプリケーション、教育アプリケーション、ゲーム又は種々のアプリケーションのようなアプリケーションソフトウェアを含んでよい。サーバ530は、プレゼンテーション層、アプリケーション層、及び構造化クエリ言語(SQL)又は非SQL、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータ記憶を用いる関係型データベースシステムのようなデータ記憶層をホスティングするウェブアプリケーションサーバを含んでよい。
【0076】
コンピュータシステム500は、ネットワーク、ネットワークリンク520、及び通信インタフェース518を通じて、プログラムコードを含む、メッセージを送信しデータ及び命令を受信できる。インターネットの例では、サーバ530は、インターネット528、ISP526、ローカルネットワーク522、及び通信インタフェース518を通じて、アプリケーションプログラムのために必要なコードを送信し得る。受信したコードは、受信され及び/又は記憶装置510若しくは後の実行のために他の不揮発性記憶装置に格納されると、プロセッサ504により実行されてよい。
【0077】
本章に記載される命令の実行は、実行中のコンピュータプログラムのインスタンスの形式でプロセスを実装し、プログラムコードとその現在のアクティビティで構成することができる。オペレーティングシステム(OS)によっては、プロセスは、命令を同時に実行する複数の実行スレッドで構成されている場合がある。この文脈では、コンピュータプログラムは命令の受動的な集合であるが、プロセスはそれらの命令の実際の実行である場合がある。複数のプロセスが同じプログラムに関連付けられている場合があり、例えば、同じプログラムの複数のインスタンスを開くことは、多くの場合、複数のプロセスが実行されていることを意味する。マルチタスクは、複数のプロセスがプロセッサ504を共有できるようにするために実装され得る。各プロセッサ504又はプロセッサのコアが一度に単一のタスクを実行する間、コンピュータシステム500は、各タスクが終了するのを待たずに実行中のタスクを各プロセッサが切り換えることができるように、マルチタスクを実装するようにプログラムされ得る。実施形態では、切り換えは、タスクが入力/出力動作を実行するとき、タスクが切り換え可能であることを示すとき、又はハードウェア割り込みにより、実行されてよい。タイムシェアリングを実装して、コンテキスト切り換えを迅速に実行し、複数のプロセスを同時に実行しているように見せることで、インタラクティブなユーザアプリケーションの応答を高速化できる。実施形態では、セキュリティ及び信頼性のために、オペレーティングシステムは、独立プロセス間の直接通信を防ぎ、厳格に仲介され制御されたプロセス間通信機能を提供する。
【0078】
本願は、参照により全体がここに組み込まれる米国特許出願番号第16/805651号、2020年2月28日出願、の利益を請求する。
図1
図2
図3A
図3B
図3C
図3D
図4A
図4B
図5