JP5630556B2 - 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム - Google Patents

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

Info

Publication number
JP5630556B2
JP5630556B2 JP2013261942A JP2013261942A JP5630556B2 JP 5630556 B2 JP5630556 B2 JP 5630556B2 JP 2013261942 A JP2013261942 A JP 2013261942A JP 2013261942 A JP2013261942 A JP 2013261942A JP 5630556 B2 JP5630556 B2 JP 5630556B2
Authority
JP
Japan
Prior art keywords
interface
information processing
external device
application
program
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.)
Expired - Fee Related
Application number
JP2013261942A
Other languages
English (en)
Other versions
JP2014056608A (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.)
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 JP2013261942A priority Critical patent/JP5630556B2/ja
Publication of JP2014056608A publication Critical patent/JP2014056608A/ja
Application granted granted Critical
Publication of JP5630556B2 publication Critical patent/JP5630556B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラムに関し、特に画像形成装置のアプリケーションプラットフォームをエミュレートする情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラムに関する。
近年、特に複合機又は融合機と呼ばれる画像形成装置の中には、API(Application Program Interface)が外部に公開されたアプリケーションプラットフォームを備えたものが存在する。斯かるアプリケーションプラットフォーム上では、サードベンダ等によって多数のアプリケーションが開発され、市場において提供されている。ユーザは、自らの業務等に適したアプリケーションを購入し、画像形成装置にインストールすることで、業務等の効率化を図ることができる。
斯かるアプリケーションプラットフォームについても、一般的な他のソフトウェアプログラムと同様に機能強化等に伴ってバージョンアップが行われる。また、根本的にソフトウェアアーキテクチャが見直され、全く新しいアプリケーションプラットフォームが開発される場合もある。
バージョンアップされた又はアーキテクチャが刷新されたアプリケーションプラットフォーム(以下、いずれについても「新バージョンプラットフォーム」という。)がリリースされる場合、そのタイミング(リリースされるタイミング)において新バージョンプラットフォーム上で動作するアプリケーションが市場において提供可能な状態であることが好ましい。そのためには新バージョンプラットフォームの開発と並行して、新バージョンプラットフォーム上における既存のアプリケーションのテスト(動作検証)や、新たなアプリケーションの開発等がサードベンダ等によって行われる必要がある。
そこで、従来、サードベンダ等には、PC(Personal Computer)上で動作する新バージョンプラットフォームのエミュレータが提供されていた。サードベンダ等は、当該エミュレータを利用して、アプリケーションのテスト又は開発等を行っていた。
しかしながら、エミュレータは表面的に新バージョンプラットフォームとして振る舞うものであるに過ぎず、APIの呼び出しに応じて実行される処理は、いわゆるダミーである。したがって、エミュレータ上におけるアプリケーションのテスト又は開発は、当該アプリケーションの動作を高い精度で保証できるものではなかった。
また、エミュレータを用いたテストは、新バージョンプラットフォームのテストには何ら寄与するものではなく、効率が悪いという問題もあった。すなわち、開発途中の新バージョンプラットフォーム上でアプリケーションのテストを行うことができれば、アプリケーション及び新バージョンプラットフォームの双方のテストを一度に行うことができ、非常に効率的である。
但し、サードベンダに対する新バージョンプラットフォームの提供は、画像形成装置のメーカーにとってはソフトウェア資産の流出の懸念があり、受け入れ難いものがある。特に、新バージョンプラットフォームがJava(登録商標)言語によって実装されている場合、そのバイトコードの解読は容易である。
本発明は、上記の点に鑑みてなされたものであって、画像形成装置のアプリケーションプラットフォームとその上で動作するアプリケーションとの開発作業を適切に効率化することのできる情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラムの提供を目的とする。
そこで上記課題を解決するため、本発明は、画像形成装置のアプリケーションから呼び出されるインタフェースを有する第一のプログラムを有する外部装置とネットワークを介して接続される情報処理装置であって、前記第一のプログラムが前記画像形成装置に実行させる処理をエミュレートするエミュレート手段を有し、前記エミュレート手段は、前記外部装置が有する前記第一のプログラムにおいて実装済みのインタフェースを示す情報を受信す受信手段と、プリケーションによるインタフェースの呼び出しに応じ、前記受信手段によって受信された情報に基づいて当該インタフェースが前記外部装置において実装済みであるか否かを判定する判定手段と、実装済みであると判定された場合、前記インタフェースの実行要求を前記外部装置に送信する外部呼び出し手段と、実装済みでないと判定された場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する実行手段とを有する。
このような情報処理装置によれば、画像形成装置のアプリケーションプラットフォームとその上で動作するアプリケーションとの開発作業を適切に効率化することができる。
本発明によれば、画像形成装置のアプリケーションプラットフォームとその上で動作するアプリケーションとの開発作業を適切に効率化することができる。
第一の実施の形態における情報処理システムの構成例を示す図である。 本発明の実施の形態におけるアプリ開発装置のハードウェア構成例を示す図である。 プラットフォームエミュレータ起動時の処理手順を説明するためのフローチャートである。 実装情報の例を示す図である。 第一の実施の形態においてスキャンエミュレータのAPIの呼び出しに応じて実行される処理の処理手順を説明するためのシーケンス図である。 第二の実施の形態における情報処理システムの構成例を示す図である。 第二の実施の形態においてパネルエミュレータのAPIの呼び出しに応じて実行される処理の処理手順を説明するためのシーケンス図である。 第三の実施の形態における情報処理システムの構成例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における情報処理システムの構成例を示す図である。同図において、プラットフォーム開発装置20とアプリ開発装置10とはインターネット又はLAN(Local Area Network)等のネットワークを介して接続されている。
プラットフォーム開発装置20は、画像形成装置のアプリケーションプラットフォーム(アプリケーションの開発及び実行環境を実現するプログラム)の開発に利用されているPC(Personal Computer)等のコンピュータである。当該アプリケーションプラットフォーム22のAPI(Application Program Interface)は、外部に公開され、サードベンダによる当該APIを利用したアプリケーション11の開発が可能とされている。同図において、プラットフォーム開発装置20は、シミュレータ21、アプリケーションプラットフォーム22、実装情報送信部23、内部呼び出し部24、実装情報記憶部25、及び内部呼び出し情報記憶部26等を有する。
シミュレータ21は、上位のソフトウェアプログラム(本実施の形態ではアプリケーションプラットフォーム22)に対して、プラットフォーム開発装置20が画像形成装置(複合機)であるかのように見せかけるためのプログラムである。例えば、シミュレータ21は、画像形成装置に固有の各種のハードウェア資源(操作パネル、スキャナ、プリンタ等)を制御するためのデバイスドライバと同様のインタフェースを上位のソフトウェアに対して提供する。シミュレータ21は、当該インタフェースの呼び出しに応じ、本来のデバイスドライバを表面的に模倣した処理を実行する。
アプリケーションプラットフォーム22は、開発中のアプリケーションプラットフォームである。同図において、アプリケーションプラットフォーム22は、スキャンサービス221、プリントサービス222、ファクスサービス223、コピーサービス224、及びパネルサービス225等を含む。スキャンサービス221は、スキャンの実行に関するAPI(インタフェース)を提供するプログラムモジュールである。プリントサービス222は、印刷の実行に関するAPIを提供するプログラムモジュールである。コピーサービス224は、コピーの実行に関するAPIを提供するプログラムモジュールである。パネルサービス225は、操作パネルの制御に関するAPIを提供するプログラムモジュールである。
実装情報送信部23は、実装情報記憶部25に記録されている実装情報をアプリ開発装置10に転送する。実装情報とは、アプリケーションプラットフォーム22において実装済みのAPIの一覧を情報である。すなわち、アプリケーションプラットフォーム22は開発中であるため、実装されているAPIは、日々刻々と変化する。その変化に応じて実装情報記憶部25内の実装情報は更新される。実装情報記憶部25は、プラットフォーム開発装置20が有する不揮発性の記憶媒体において実装情報を記憶する記憶領域(例えば、ファイル)である。
内部呼び出し部24は、アプリ開発装置10から転送されるAPIの呼び出し要求に応じ、当該呼び出し要求に指定されたAPI(アプリケーションプラットフォーム22のAPI)を、内部呼び出し情報記憶部26に記録された内部呼び出し情報に基づいて呼び出す。内部呼び出し部24は、呼び出したAPIによる処理結果(戻り値等)を示す情報をアプリ開発装置10に返信する。なお、内部呼び出し情報は、APIごとに、APIの識別情報(例えば、メソッド名)と、アプリケーションプラットフォーム22におけるアドレス情報との対応情報を含む情報である。内部呼び出し情報記憶部26は、プラットフォーム開発装置20が有する不揮発性の記憶媒体において内部呼び出し情報を記憶する記憶領域(例えば、ファイル)である。
アプリ開発装置10は、アプリケーションプラットフォーム22上で(アプリケーションプラットフォーム22を利用して)動作するアプリケーション11の開発に利用されているPC(Personal Computer)等のコンピュータである。同図において、アプリ開発装置10は、アプリケーション11及びプラットフォームエミュレータ12等を有する。
アプリケーション11は、開発対象のアプリケーション11である。同図では、アプリ11a及びアプリ11bが例示されている。
プラットフォームエミュレータ12は、アプリケーションプラットフォーム22のエミュレータである。すなわち、プラットフォームエミュレータ12は、アプリケーションプラットフォーム22と同様のAPIを備え、アプリケーション11による当該APIの呼び出しに応じ、当該APIの本来の動作をエミュレートする(模倣する)。なお、プラットフォームエミュレータ12が有するAPIの種類(品揃え)と、アプリケーションプラットフォーム22が有するAPIの種類とは完全に一致しなくてもよい。例えば、プラットフォームエミュレータ12は、アプリケーションプラットフォーム22にはまだ実装されていないAPIを備えていてもよい。
同図において、プラットフォームエミュレータ12は、スキャンエミュレータ121、プリントエミュレータ122、ファクスエミュレータ123、コピーエミュレータ124、パネルエミュレータ125、実装情報取得部126、判定部127、外部呼び出し部128、及び実装情報保持部129等を有する。
スキャンエミュレータ121、プリントエミュレータ122、ファクスエミュレータ123、コピーエミュレータ124、パネルエミュレータ125は、それぞれ、スキャンサービス221、プリントサービス222、ファクスサービス223、コピーサービス224、パネルサービス225のエミュレータである。すなわち、これら各エミュレータは、アプリケーション11から直接利用される(呼び出される)。
実装情報取得部126は、プラットフォーム開発装置20の実装情報送信部23より転送される実装情報を受信し、受信された実装情報を実装情報保持部129に記録する。実装情報保持部129は、アプリ開発装置10が有する記憶装置において実装情報を記憶するための記憶領域である。
判定部127は、アプリケーション11より呼び出されたAPIが、アプリケーションプラットフォーム22において既に実装済みであるか否かを実装情報に基づいて判定する。
外部呼び出し部128は、プリケーションより呼び出されたAPIがアプリケーションプラットフォーム22において実装済みであることが判定部127によって判定された場合に、当該APIの呼び出し要求(当該APIの実行要求)をプラットフォーム開発装置20の内部呼び出し部24に送信する。なお、当該呼び出し要求には、APIの識別情報(例えば、メソッド名)が指定される。
図2は、本発明の実施の形態におけるアプリ開発装置のハードウェア構成例を示す図である。図2のアプリ開発装置10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、CPU104と、インタフェース装置105と、表示装置106と、入力装置107とを有する。
アプリ開発装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってアプリ開発装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
なお、プラットフォーム開発装置20のハードウェア構成についても図2に示されるものと同様でよい。但し、実機(実際の画像形成装置)をプラットフォーム開発装置20として用いてもよい。この場合のプラットフォーム開発装置20においては、シミュレータ21は不要である。
以下、図1の情報処理システムの処理手順について説明する。図3は、プラットフォームエミュレータ起動時の処理手順を説明するためのフローチャートである。
アプリ開発装置10において、プラットフォームエミュレータ12が起動されると、実装情報取得部126は、リモート呼び出し機能が有効であるか否かを判定する(S101)。リモート呼び出し機能とは、アプリケーションプラットフォーム22のAPIを遠隔呼び出しする機能をいう。リモート呼び出し機能が有効又は無効であるかは、所定の設定ファイルに記録された設定情報に基づいて判定される。すなわち、ユーザは、当該設定ファイルを編集することで、リモート呼び出し機能の有効又は無効を切り替えることができる。
リモート呼び出し機能は有効とすることが設定されている場合(S101でYes)、実装情報取得部126は、実装情報の取得要求をプラットフォーム開発装置20の実装情報送信部23に送信する(S102)。当該取得要求の送信先の識別情報(例えば、IPアドレス又はURL(Uniform Resource Locator)等)は、予め所定の設定ファイル(補助記憶装置102の所定の記憶場所)に記録しておけばよい。当該取得要求を受信した実装情報送信部23は、実装情報保持部129に記録されている実装情報を実装情報取得部126に返信する。実装情報取得部126は、返信された実装情報を受信し、実装情報記憶部25に記録する(S103)。
図4は、実装情報の例を示す図である。同図において、(A)が実装情報の具体例を示す。同図では、実装情報がXML(eXtensible Markup Language)形式によって記述された例が示されている。但し、実装情報の形式は、XML形式に限定されない。CSV(Comma Separated Values)形式や他の形式によって記述されてもよい。
同図の実装情報は、アプリケーションプラットフォーム22において既に実装されているサービス(スキャンサービス221、プリントサービス222等)ごとに<Interface>タグで囲まれたInterface要素を含む。Intaface要素は、name属性を含む。name属性の値によって対応するサービスが識別される。例えば、Intaface要素e1のname属性の値は、「scan」である。したがって、Intaface要素は、スキャンサービス221の実装内容(実装状況)を示すことが分かる。
各Interface要素は、対応するサービスにおいて既に実装されているメソッドごとにMethod要素を子要素として含む。Method要素は、name属性、params属性、及びreturn属性等を有する。name属性の値はメソッド名を示す。param属性の値は、引数のデータ型を示す。return属性の値は、戻り値のデータ型を示す。
なお、図中(B)は、Interface要素e1の定義内容をプログラミング言語によって示している。(B)に示されるように、Intaface要素e1には、scanインタフェース(スキャンサービス221のAPI)としては、bbbメソッド、cccメソッド、dddメソッド、eeeメソッド、及びfffメソッドが実装済みであることが記述されている。「実装済み」であるとは、メソッド内の処理手順が少なくともテスト可能な程度に定義されていることをいう。空のメソッドについては実装済みであるとはいわない。
なお、リモート呼び出し機能は無効とすることが設定されている場合(S101でNo)、実装情報の取得は実行されない。
実装情報取得部126は、プラットフォームエミュレータ12の起動後においても、所定のタイミングで(例えば、定期的に、又はユーザからの指示入力に応じて)図3の処理を実行する。したがって、プラットフォーム開発装置20におけるアプリケーションプラットフォーム22の開発の進行に応じ、実装情報保持部129に保持されている実装情報は更新される。但し、例えば、実装情報記憶部25において実装情報が更新された場合等において、実装情報送信部23から能動的に実装情報が配信されてもよい。
続いて、プラットフォームエミュレータ12のAPIが呼び出された際の処理手順について説明する。ここでは、スキャンエミュレータ122が呼び出された場合について説明する。図5は、第一の実施の形態においてスキャンエミュレータのAPIの呼び出しに応じて実行される処理の処理手順を説明するためのシーケンス図である。
例えば、アプリ11aのテストにおいて、アプリ11aがスキャンエミュレータ121のbbbメソッドを呼び出したとする(S201)。スキャンエミュレータ121のbbbメソッドは、呼び出しに応じ、判定部127に対してスキャンサービス221のbbbメソッド(scan.bbb())の実装の有無を問い合わせる(S202)。判定部127は、実装情報保持部129に保持されている実装情報を参照して、スキャンサービス221のbbbメソッドの実装の有無(bbbメソッドがアプリケーションプラットフォーム22において実装済みであるか否か)を判定する(S203)。具体的には、name属性の値が「bbb」であるMethod要素がname属性の値が「scan」であるInterface要素の子要素として実装情報に含まれているか否かを判定する。含まれていれば、実装済みであると判定し、含まれていなければ実装済みでないと判定する。判定部127は、判定結果をスキャンエミュレータ121に返却する(S204)。
判定部127からの判定結果が実装済みであることを示す場合、スキャンエミュレータ121のbbbメソッドは、外部呼び出し部128に対して、スキャンサービス221のbbbメソッドの呼び出しを要求する(S205)。外部呼び出し部128は、予め設定され、補助記憶装置102に記録されている呼び出し先の識別情報(IPアドレス又はURL)に基づいて、サービス名(インタフェース名)及びメソッド名を指定して、メソッドの呼び出し要求をプラットフォーム開発装置20の内部呼び出し部24に送信する(S206)。
内部呼び出し部24は、受信された呼び出し要求に指定されているサービス名対応するスキャンサービス221に対して、当該呼び出し要求に指定されているメソッド名に対応するbbbメソッドの呼び出しを実行する(S207)。なお、内部呼び出し部24は、スキャンサービス221のbbbメソッドのアドレス情報を内部呼び出し情報記憶部26に記憶されている内部呼び出し情報に基づいて判定する。なお、メソッドの動的な呼び出し(動的なリンク)については、公知の技術を利用すればよい。利用する技術によっては、内部呼び出し情報記憶部26は、必ずしも開発者が直接編集したり、記述したりするものではなく、内部呼び出し部24内に隠蔽又は内蔵されうる。
スキャンサービス221のbbbメソッドは、呼び出しに応じ、実装されている処理を実行し(S208)、その戻り値(処理結果)を内部呼び出し部24に返却する(S209)。内部呼び出し部24は、当該戻り値を含む応答を外部呼び出し部128に返信する(S210)。外部呼び出し部128は、受信された応答に含まれている戻り値をスキャンエミュレータ121に返却する(S211)。スキャンエミュレータ121のbbbメソッドは、当該戻り値をアプリ11aに返却する(S212)。
一方、判定部127からの判定結果が実装済みでないことを示す場合、スキャンエミュレータ121のbbbメソッドは、自らに実装されている処理手順を実行して、スキャンサービス221をエミュレートする(S221)。続いて、スキャンエミュレータ121のbbbメソッドは、エミュレートの結果の戻り値をアプリ11aに返却する(S222)。
なお、スキャンエミュレータ121のbbbメソッドは、外部呼び出し部128を介したbbbメソッドの遠隔呼び出しに対する応答がプラットフォーム開発装置20より受信されない場合(応答待ちがタイムアウトした場合)においても、ステップS221及びS222を実行する。このような場合としては、例えば、ネットワーク障害が発生している場合、プラットフォーム開発装置20が起動していない場合、又はプラットフォーム開発装置20においてアプリケーションプラットフォーム22が正常に動作していない場合等が挙げられる。
上述したように、第一の実施の形態によれば、アプリケーション11の動作確認に際し、アプリケーションプラットフォーム22を利用させることができる。したがって、アプリケーション11の開発者及びアプリケーションプラットフォーム22の開発者の双方は、効率的に開発又はテスト作業を行うことができる。すなわち、アプリケーション11の開発者は、実際のアプリケーションプラットフォーム22上におけるアプリケーション11の動作確認を行うことができる。また、アプリケーションプラットフォーム22の開発者は、アプリケーション11の動作確認に伴って、アプリケーションプラットフォーム22の動作確認を行うことができる。
また、本実施の形態によれば、アプリケーションプラットフォーム22の実体をアプリケーション11の開発者に提供する必要はない。したがって、アプリケーションプラットフォーム22の提供者にとって、ソフトウェア資産の流出を防止することができる。
また、本実施の形態によれば、APIごとに、実装済みであるか否かを判定し、実装済みである場合は、アプリケーションプラットフォーム22が遠隔的に利用され、実装済みでない場合はエミュレーションが実行される。したがって、アプリケーションプラットフォーム22の開発作業とアプリケーション11の開発作業とを円滑に並行させることができる。
次に、第二の実施の形態について説明する。第二の実施の形態では、パネルエミュレータ125の呼び出しに応じ、アプリ開発装置10の表示装置106に表示部品又は表示画面(以下、「表示部品」で統一する。)を表示させるための仕組みについて説明する。パネルエミュレータ125に関して、単純に図5の処理が実行された場合(スキャンエミュレータ121とパネルエミュレータ125とを置き換え、スキャンサービス221とパネルサーバス225とを置き換えて図5の処理が実行された場合)、パネルエミュレータ125に対する表示命令(メソッドの呼び出し)に基づく表示は、プラットフォーム開発装置20側で実現されてしまう。パネルエミュレータ125への表示命令は、パネルサービス225へ伝達されるところ、パネルサービス225は、ローカルな装置の表示装置(画像形成装置の操作パネル)への表示を行うことを責務とするからである。
斯かる課題を解決するため、第二の実施の形態の情報処理システムは、図6に示されるような構成を有する。
図6は、第二の実施の形態における情報処理システムの構成例を示す図である。図6中、図1と同一部分には同一符号を付し、その説明は省略する。
同図において、プラットフォーム開発装置20aのシミュレータ21aは、表示制御部211、表示データ変換部212、及び表示データ提供部213等を含む。
表示制御部211は、パネルサービス225によって生成される表示部品を示すデータ(表示データ)に基づいて、ローカルな画像形成装置の操作パネルへ当該表示部品を表示させるための制御を行うプログラムモジュールのシミュレータである。
表示データ変換部212は、パネルサービス225によって生成される表示データを、ネットワークを介して流通可能なデータ形式に変換する。本実施の形態では、ネットワークを介して流通可能なデータ形式として、HTML(HyperText Markup Language)形式を採用する。但し、JPEG(Joint Photographic Experts Group)、BITMAP、PDF(Portable Document Format)等、HTML形式以外のデータ形式が採用されてもよい。
表示データ提供部213は、表示データ変換部212によって生成されたHTMLデータをネットワークを介してアクセス可能とする。具体的には、表示データ提供部213は、Webサーバとしての機能を有し、当該HTMLデータを所定のURL(Uniform Resource Locator)に対応させて管理する。表示データ提供部213は、当該所定のURLに対するGETリクエストに応じ、当該HTMLデータを含むHTTPレスポンスを返信する。
一方、アプリ開発装置10aのプラットフォームエミュレータ12aは、ブラウザ部131を含む。ブラウザ部131は、表示データ変換部212によって生成されるHTMLデータを、プラットフォーム開発装置20aより取得し、表示装置106に表示させる。
以下、第二の実施の形態の情報処理システムにおける処理手順について説明する。図7は、第二の実施の形態においてパネルエミュレータのAPIの呼び出しに応じて実行される処理の処理手順を説明するためのシーケンス図である。
例えば、アプリ11aのテストにおいて、アプリ11aがパネルエミュレータ125のpppメソッドを呼び出したとする(S301)。pppメソッドは、或る表示部品の表示命令に相当することとする。
以降、ステップS302からS307については、図5のステップS202からS207より自明であるため、その説明は省略する。また、pppメソッドが実装済みでない場合の処理手順は、図5のステップS221及びS222より自明である。したがって、第二の実施の形態では、pppメソッドが実装済みである場合についてのみ説明する。
パネルサービス225のpppメソッドは、呼び出しに応じ、pppメソッドに対応した表示部品の表示データを生成する(S308)。続いて、pppメソッドは、当該表示データを含む表示命令を表示制御部211に入力する(S309)。当該表示命令に応じ、表示制御部211は、当該表示データに基づいて、プラットフォーム開発装置20の表示装置に表示部品を表示させる(S310)。続いて、表示制御部211は、pppメソッドに対して応答を行う(S311)。
続いて、pppメソッドは、生成された表示データを含む表示命令を表示データ変換部212に入力する(S312)。当該表示命令に応じ、表示データ変換部212は、当該表示データをHTMLデータに変換する(S313)。続いて、表示データ変換部212は、変換処理によって生成されたHTMLデータを表示データ提供部213に入力する(314)。表示データ提供部213は、入力されたHTMLデータを所定のURLに関連付けて、プラットフォーム開発装置20の記憶装置に保存する。
続いて、表示制御部211は、ステップS312における表示命令に対する応答をpppメソッドに対して行う(S315)。以降、ステップS316からS319については、図5のステップS209からS212より自明であるため、その説明は省略する。
一方、アプリ開発装置10のブラウザ部131は、上記所定のURLに対して定期的にHTMLデータの取得要求(GETリクエスト)を送信している(S321)。すなわち、ブラウザ部131は、所定のURLに対してポーリングを行っている。当該所定のURLは、例えば、予め補助記憶装置102に記録されている。
ブラウザ部131より送信される取得要求は、表示データ提供部213によって受信される。表示データ提供部213は、当該所定のURLに関連付けられているHTMLデータが存在しない場合は、HTMLデータは無いことを示す応答(HTTPレスポンス)を返信する。当該所定のURLに関連付けられているHTMLデータが存在する場合、表示データ提供部213は、当該HTMLデータを含む応答を返信する(S322)。なお、表示データ提供部213は、返信済みのHTMLデータを記憶装置より削除する。
ブラウザ部131は、HTMLデータを含む応答を受信すると、当該HTMLデータに基づいて表示部品を表示装置106に表示させる(S323)。
なお、ブラウザ部131による所定のURLに対するポーリングの期間は、パネルエミュレータ125のメソッドが呼ばれた後に限定されてもよい。例えば、ステップS303において、判定部127は、実装の有無の問い合わせ対象となったメソッドがパネルサービス225に関するメソッドである場合、その旨を示すデータ(例えばファイル)を補助記憶装置102に生成する。一方、ブラウザ部131は、当該データの生成を待機する。例えば、ブラウザ部131は、当該データが生成されたことを検知するためのポーリングを行っている。ブラウザ部131は、当該データが生成されたことを検知すると、当該データを削除し、所定のURLに対するポーリングを開始する。ポーリングの結果、HTMLデータが取得されると、ブラウザ部131は、所定のURLに対するポーリングを終了させる。所定のURLに対するポーリングの期間が限定されることにより、ネットワークを介した通信量の増加を抑制することができる。
また、ブラウザ部131は、プラットフォームエミュレータ12aに組み込まれた専用のブラウザでなくてもよい。例えば、汎用的なWebブラウザ(以下、単に「Webブラウザ」という。)がブラウザ部131の代わりに用いられてもよい。Webブラウザには、所定のURLに対してポーリングを実行する機能は予め実装されていない。したがって、Webブラウザを用いる場合、まず、所定のURLに対に対するポーリングを実行するスクリプトプログラムが埋め込まれたWebページ(HTMLデータ)を、例えば、表示データ提供部213より予めWebブラウザにダウンロードしておく。当該WebページがWebブラウザにダウンロードされ、当該スクリプトプログラムが実行されることにより、ブラウザ部131と同様の機能が実現される。
また、プラットフォーム開発装置20側における表示の要否について、設定を可能としてもよい。例えば、当該表示の要否を示す情報をプラットフォーム開発装置20の記憶装置に記録しておく。パネルサービス225は、当該情報が、表示が不要であることを示す場合、図7のステップS309における表示命令は行わない。
同様に、アプリ開発装置10側における表示の要否についても設定を可能としてもよい。例えば、当該表示の要否を示す情報をアプリ開発装置10の補助記憶装置102に記録しておく。ブラウザ部131は、当該情報が、表示が不要であることを示す場合、所定のURLに対するポーリングは行わない。なお、ブラウザ部131の代わりにWebブラウザを利用する場合、Webブラウザを起動しなければよい。又は、起動したとしても、所定のURLに対に対するポーリングを実行するスクリプトプログラムが埋め込まれたWebページをダウンロードしなければよい。
上述したように、第二の実施の形態によれば、パネルエミュレータ125のAPIを利用した表示命令に基づいて、アプリ開発装置10側に表示部品を表示させることができる。したがって、GUI(Graphical User Interface)に関する確認もアプリ開発装置10において行うことができる。
次に、第三の実施の形態について説明する。図8は、第三の実施の形態における情報処理システムの構成例を示す図である。図8中、図6と同一部分には同一符号を付し、その説明は省略する。
同図では、実装情報送信部23、内部呼び出し部24、実装情報記憶部25、及び内部呼び出し情報記憶部26等が、プラットフォーム開発装置20bと別のコンピュータである仲介装置30に実装されている。
同図に示される形態は、プラットフォーム開発装置20bが画像形成装置である場合に好適である。すなわち、仲介装置30に実装された各部は、ユーザ先に出荷される画像形成装置には含まれない部分である。当該部分を画像形成装置の外部に出すことにより、出荷時と同様の構成によって、プラットフォーム等の開発を行うことができる。
なお、第三の実施の形態における処理手順については、図5又は図7より自明であるため、その説明は省略する。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10、10a アプリ開発装置
11 アプリケーション
11a アプリ
11b アプリ
12 プラットフォームエミュレータ
20、20a、20b プラットフォーム開発装置
21 シミュレータ
22 アプリケーションプラットフォーム
23 実装情報送信部
24 内部呼び出し部
25 実装情報記憶部
26 内部呼び出し情報記憶部
30 仲介装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
121 スキャンエミュレータ
122 プリントエミュレータ
123 ファクスエミュレータ
124 コピーエミュレータ
125 パネルエミュレータ
126 実装情報取得部
127 判定部
128 外部呼び出し部
129 実装情報保持部
131 ブラウザ部
211 表示制御部
212 表示データ変換部
213 表示データ提供部
221 スキャンサービス
222 プリントサービス
223 ファクスサービス
224 コピーサービス
225 パネルサービス
B バス
特開2004−252585号公報

Claims (20)

  1. 画像形成装置のアプリケーションから呼び出されるインタフェースを有する第一のプログラムを有する外部装置とネットワークを介して接続される情報処理装置であって、
    前記第一のプログラムが前記画像形成装置に実行させる処理をエミュレートするエミュレート手段を有し、
    前記エミュレート手段は、
    前記外部装置が有する前記第一のプログラムにおいて実装済みのインタフェースを示す情報を受信す受信手段と、
    プリケーションによるインタフェースの呼び出しに応じ、前記受信手段によって受信された情報に基づいて当該インタフェースが前記外部装置において実装済みであるか否かを判定する判定手段と、
    実装済みであると判定された場合、前記インタフェースの実行要求を前記外部装置に送信する外部呼び出し手段と
    実装済みでないと判定された場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する実行手段とを有する情報処理装置。
  2. 前記受信手段は、前記情報の受信後、所定のタイミングで新たな前記情報を受信する請求項1記載の情報処理装置。
  3. 前記エミュレート手段は、前記外部呼び出し手段による前記実行要求に対する前記外部装置からの応答が受信されない場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する請求項1又は2記載の情報処理装置。
  4. 前記外部呼び出し手段による前記インタフェースの実行要求の送信に応じ、前記外部装置において生成される表示データを該外部装置より取得し、表示装置に表示させる表示データ取得手段を有する請求項1乃至3いずれか一項記載の情報処理装置。
  5. 請求項1乃至4いずれか一項記載の外部装置であって、
    記憶手段に記憶された前記情報を前記情報処理装置に送信する信手段と、
    前記インタフェースの実行要求の受信に応じ、当該外部装置が有する前記第一のプログラムが備える当該インタフェースを呼び出し、当該インタフェースによる処理結果を含む応答を前記情報処理装置に返信するインタフェース呼び出し手段とを有する外部装置。
  6. 画像形成装置のアプリケーションから呼び出されるインタフェースを有する第一のプログラムを有する外部装置と、該外部装置にネットワークを介して接続される情報処理装置とを有する情報処理システムであって、
    前記情報処理装置は、
    前記第一のプログラムが前記画像形成装置に実行させる処理をエミュレートするエミュレート手段を有し、
    前記エミュレート手段は、
    前記外部装置が有する前記第一のプログラムにおいて実装済みのインタフェースを示す情報を受信す受信手段と、
    プリケーションによるインタフェースの呼び出しに応じ、前記受信手段に受信された情報に基づいて当該インタフェースが前記外部装置において実装済みであるか否かを判定する判定手段と、
    実装済みであると判定された場合、前記インタフェースの実行要求を前記外部装置に送信する外部呼び出し手段と
    実装済みでないと判定された場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する実行手段とを有する情報処理システム。
  7. 前記受信手段は、前記情報の受信後、所定のタイミングで新たな前記情報を受信する請求項6記載の情報処理システム。
  8. 前記エミュレート手段は、前記外部呼び出し手段による前記実行要求に対する前記外部装置からの応答が受信されない場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する請求項6又は7記載の情報処理システム。
  9. 前記外部呼び出し手段による前記インタフェースの実行要求の送信に応じ、前記外部装置において生成される表示データを該外部装置より取得し、表示装置に表示させる表示データ取得手段を有する請求項6乃至8いずれか一項記載の情報処理システム。
  10. 前記外部装置は、
    記憶手段に記憶された前記情報を前記情報処理装置に送信する信手段と、
    前記インタフェースの実行要求の受信に応じ、当該外部装置が有する前記第一のプログラムが備える当該インタフェースを呼び出し、当該インタフェースによる処理結果を含む応答を前記情報処理装置に返信するインタフェース呼び出し手段とを有する請求項6乃至9いずれか一項記載の情報処理システム。
  11. 画像形成装置のアプリケーションのから呼び出されるインタフェースを有する第一のプログラムを有する外部装置とネットワークを介して接続され、前記第一のプログラムが前記画像形成装置に実行させる処理をエミュレートするエミュレート手段を有する情報処理装置における情報処理方法であって、
    前記エミュレート手段が、
    前記外部装置が有する前記第一のプログラムにおいて実装済みのインタフェースを示す情報を受信す受信手順と、
    プリケーションによるインタフェースの呼び出しに応じ、前記受信手順おいて受信された情報に基づいて当該インタフェースが前記外部装置において実装済みであるか否かを判定する判定手順と、
    実装済みであると判定された場合、前記インタフェースの実行要求を前記外部装置に送信する外部呼び出し手順と
    実装済みでないと判定された場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する実行手順とを実行する情報処理方法。
  12. 前記受信手順は、前記情報の受信後、所定のタイミングで新たな前記情報を受信する請求項11記載の情報処理方法。
  13. 前記エミュレート手段は、前記外部呼び出し手順における前記実行要求に対する前記外部装置からの応答が受信されない場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する請求項11又は12記載の情報処理方法。
  14. 前記情報処理装置が、
    前記外部呼び出し手順における前記インタフェースの実行要求の送信に応じ、前記外部装置において生成される表示データを該外部装置より取得し、表示装置に表示させる表示データ取得手順を実行する請求項11乃至13いずれか一項記載の情報処理方法。
  15. 請求項1乃至4いずれか一項記載の外部装置が実行する情報処理方法であって、
    記憶手段に記憶された前記情報を前記情報処理装置に送信する信手順と、
    前記インタフェースの実行要求の受信に応じ、当該外部装置が有する前記第一のプログラムが備える当該インタフェースを呼び出し、当該インタフェースによる処理結果を含む応答を前記情報処理装置に返信するインタフェース呼び出し手順とを有する情報処理方法。
  16. 画像形成装置のアプリケーションから呼び出されるインタフェースを有する第一のプログラムを有する外部装置とネットワークを介して接続される情報処理装置を、
    前記第一のプログラムが前記画像形成装置に実行させる処理をエミュレートするエミュレート手段として機能させ、
    前記エミュレート手段は、
    前記外部装置が有する前記第一のプログラムにおいて実装済みのインタフェースを示す情報を受信す受信手段と、
    プリケーションによるインタフェースの呼び出しに応じ、前記受信手段によって受信れ情報に基づいて当該インタフェースが前記外部装置において実装済みであるか否かを判定する判定手段と、
    実装済みであると判定された場合、前記インタフェースの実行要求を前記外部装置に送信する外部呼び出し手段と
    実装済みでないと判定された場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する実行手段とを有する第二のプログラム。
  17. 前記受信手段は、前記情報の受信後、所定のタイミングで新たな前記情報を受信する請求項16記載の第二のプログラム。
  18. 前記エミュレート手段は、前記外部呼び出し手段による前記実行要求に対する前記外部装置からの応答が受信されない場合、前記アプリケーションによって呼び出された前記インタフェースのエミュレーションを実行する請求項16又は17記載の第二のプログラム。
  19. 前記情報処理装置を、
    前記外部呼び出し手段による前記インタフェースの実行要求の送信に応じ、前記外部装置において生成される表示データを該外部装置より取得し、表示装置に表示させる表示データ取得手段として機能させる請求項16乃至18いずれか一項記載の第二のプログラム。
  20. 請求項1乃至4いずれか一項記載の外部装置を、
    記憶手段に記憶された前記情報を前記情報処理装置に送信する信手段と、
    前記インタフェースの実行要求の受信に応じ、当該外部装置が有する前記第一のプログラムが備える当該インタフェースを呼び出し、当該インタフェースによる処理結果を含む応答を前記情報処理装置に返信するインタフェース呼び出し手段として機能させるための第二のプログラム。
JP2013261942A 2009-07-24 2013-12-19 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム Expired - Fee Related JP5630556B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013261942A JP5630556B2 (ja) 2009-07-24 2013-12-19 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009172966 2009-07-24
JP2009172966 2009-07-24
JP2013261942A JP5630556B2 (ja) 2009-07-24 2013-12-19 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010043284A Division JP5440252B2 (ja) 2009-07-24 2010-02-26 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014056608A JP2014056608A (ja) 2014-03-27
JP5630556B2 true JP5630556B2 (ja) 2014-11-26

Family

ID=50613811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013261942A Expired - Fee Related JP5630556B2 (ja) 2009-07-24 2013-12-19 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5630556B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190038191A (ko) * 2017-09-29 2019-04-08 에이치피프린팅코리아 유한회사 화상 형성 장치 및 화상 형성 장치의 동작 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150405A (ja) * 2001-11-08 2003-05-23 Canon Inc 機器組込みプログラムのデバッグ方法
JP4769515B2 (ja) * 2004-09-07 2011-09-07 株式会社リコー アプリケーション実行方法、情報処理装置、画像形成装置、アプリケーション実行プログラム、記録媒体、及び情報処理システム

Also Published As

Publication number Publication date
JP2014056608A (ja) 2014-03-27

Similar Documents

Publication Publication Date Title
JP5440252B2 (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム
JP5447030B2 (ja) 電子機器、情報処理方法、及び情報処理プログラム
JP5885527B2 (ja) 印刷システム、印刷サーバ、制御方法およびコンピュータプログラム
US8786869B2 (en) Updateable printer driver, information processing apparatus, and computer-readable recording medium recording therein printer driver
JP5047067B2 (ja) 情報処理装置、データ出力システム、データ生成プログラム及びその記録媒体
JP2008047120A (ja) ワークフロー・ユーザ・インターフェイスをカスタム化するシステムおよび方法
JP6295563B2 (ja) 情報処理システム、機器、情報処理方法、及び情報処理プログラム
JP5732824B2 (ja) 画像形成装置、情報処理システム、及び情報処理方法
KR20120102735A (ko) 정보 처리 장치, Web 서버, 제어 방법, 및 저장 매체
US20130219260A1 (en) Instrument, information processing system, and information processing method
JP2011086142A (ja) 画像形成装置及びプログラム操作方法
US9110962B2 (en) Data providing apparatus for implementing script, electronic apparatus for implementing script, data processing system for implementing script, and method of data processing for implementing script
US20180285467A1 (en) Web server
JP6737170B2 (ja) サーバー装置、画像処理ユニット及びプログラム
JP4991820B2 (ja) 拡張可能な画像処理装置ドライバを備えたクライアント装置及びその実施方法
JP5148677B2 (ja) 複合機
WO2011055497A1 (en) Management apparatus and method therefor
JP5464038B2 (ja) 情報処理装置、画像形成装置、情報処理方法、プログラムおよび記録媒体
JP5630556B2 (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム
JP5471277B2 (ja) 画像形成装置及びプログラム操作方法
JP2009205262A (ja) アプリケーションプログラムインストール装置、アプリケーションプログラムインストール方法、プログラム、および記録媒体
JP2014056547A (ja) 障害対応支援装置、障害対応支援システム、障害対応支援方法、及び障害対応支援プログラム
EP2302512A1 (en) Integration and management apparatus, integration and management system and computer readable information recording medium
JP5337686B2 (ja) アプリケーションプログラム生成方法および画像形成装置
JP5359589B2 (ja) 画像処理装置及び機器制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140922

R151 Written notification of patent or utility model registration

Ref document number: 5630556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees