JP5447030B2 - 電子機器、情報処理方法、及び情報処理プログラム - Google Patents

電子機器、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP5447030B2
JP5447030B2 JP2010056699A JP2010056699A JP5447030B2 JP 5447030 B2 JP5447030 B2 JP 5447030B2 JP 2010056699 A JP2010056699 A JP 2010056699A JP 2010056699 A JP2010056699 A JP 2010056699A JP 5447030 B2 JP5447030 B2 JP 5447030B2
Authority
JP
Japan
Prior art keywords
interface
application
application program
information
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010056699A
Other languages
English (en)
Other versions
JP2011191951A (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 JP2010056699A priority Critical patent/JP5447030B2/ja
Priority to US13/033,934 priority patent/US9218224B2/en
Publication of JP2011191951A publication Critical patent/JP2011191951A/ja
Application granted granted Critical
Publication of JP5447030B2 publication Critical patent/JP5447030B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Description

本発明は、電子機器、情報処理方法、及び情報処理プログラムに関し、特にプログラムをインストール可能な電子機器、情報処理方法、及び情報処理プログラムに関する。
近年、主として複合機又は融合機と呼ばれる画像形成装置においては、公開されたAPI(Application Program Interface)を備えたアプリケーションプラットフォーム(アプリケーション実行環境)が搭載されているものがある。このような画像形成装置では、ユーザが利用を開始した後(すなわち、出荷後)において、新らたなアプリケーションのインストールにより機能拡張を容易に図ることができる。
他方において、アプリケーション間において、一部重複する機能を有する場合がある。一般的に、このような機能は、機能モジュールとして部品化されたプログラムモジュールに抽出される。複数のアプリケーションは、当該機能モジュールを利用することで重複開発を回避することができる。
なお、ここでいうアプリケーションとは、予め他のアプリケーションからの利用が想定されたサーバアプリケーションではなく、当該アプリケーションにおいて完結した処理を実行するアプリケーションである。
しかしながら、どのような機能が複数のアプリケーションによって共用されるかを予め把握するのは困難である。特に、汎用的な機能ではなく、特定のユーザの業務に特化した固有の機能に関しては、当該機能を実現するアプリケーションにおいて実装されるのが一般的である。但し、このような固有の機能に関しても、他のアプリケーションが利用したい場合も有る。このような場合に、既に固有の機能が実装されているアプリケーンから当該機能を機能モジュールとして抜き出すのは、開発作業が煩雑となる。特に、当該機能を含むアプリケーションが他のベンダによって開発された者である場合、機能モジュールの作成は、非常に困難である。
本発明は、上記の点に鑑みてなされたものであって、アプリケーションプログラムの機能を部分的に外部から利用可能とすることができる電子機器、情報処理方法、及び情報処理プログラムの提供を目的とする。
そこで上記課題を解決するため、本発明は、アプリケーションプログラムをインストール可能な電子機器であって、第一のアプリケーションプログラムの中間コードよりメソッドのインタフェース情報を抽出するインタフェース情報抽出手段と、前記インタフェース情報によって示されるメソッドに対するインタフェースを提供するインタフェース提供手段とを有し、前記インタフェース提供手段は、前記メソッドの識別情報を含む要求に応じ、該識別情報に対応するメソッドの呼び出しを前記第一のアプリケーションプログラムに対して実行する。
このような電子機器では、アプリケーションプログラムの機能を部分的に外部から利用可能とすることができる。
本発明によれば、アプリケーションプログラムの機能を部分的に外部から利用可能とすることができる。
本発明の実施の形態におけるシステム構成例を示す図である。 本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。 本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。 SDKアプリのWebサービス化を説明するための図である。 Webサービス化されたSDKアプリのメソッドの呼び出し手順の一例を説明するための図である。 WSDLの形式を示す図である。 メソッドとWSDLの各要素との対応関係を説明するための図である。 SDKアプリの中間コードにおけるメソッドの定義例を示す図である。 WSDLの具体例を示す図である。 SDKアプリのWebサービス化の処理手順及びWebサービス化されたSDKアプリのメソッドの呼び出し手順を説明するためのシーケンス図である。 他の画像形成装置にインストールされているSDKアプリをWebサービス化して利用する際の処理手順の一例を説明するためのシーケンス図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。
同図において、一台以上の画像形成装置10及び一台以上のユーザ端末30等は、例えば、一つのオフィス内においてLAN(Local Area Network)等のネットワーク50(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10は、電子機器の一例である。画像形成装置10は、印刷、スキャン、コピー、及びFAX送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を有する機器を画像形成装置10として用いてもよい。また、本実施の形態は、画像形成装置10以外の各種電子機器(例えば、家電製品等)に適用可能である。
ユーザ端末30は、画像形成装置10に実装(搭載)された機能を遠隔的に利用するための情報処理装置であり、例えば、PC(Personal Computer)、PDA(Personal Digital Assistance)、携帯電話等である。ユーザ端末30は、Webブラウザ31を備える。Webブラウザ31は、いわゆるWebブラウザであり、HTML(HyperText Markup Language)データに代表されるWebコンテンツをユーザ端末30の表示装置に表示させる。なお、Webコンテンツは、単なるHTMLデータに限定されない。Webブラウザに対するプラグインによって表示可能な各種のデータ(動画も含む)もWebコンテンツに含まれる。
図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタは13、印刷データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段(表示領域)を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。但し、例えば、USBメモリ又はCD−ROM等、SDカード80以外の記憶媒体が利用されてもよい。
図3は、本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。同図において、画像形成装置10は、標準アプリ221、SDKアプリ223、SDKプラットフォーム224、コントロールサービス225、及びOS226等を有する。
OS226は、いわゆるOS(Operating System)である。画像形成装置10上の各ソフトウェアは、OS226上においてプロセス又はスレッドとして起動される。
標準アプリ221は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションプログラムの集合である。同図では、スキャンアプリ2211、印刷アプリ2212、コピーアプリ2213、及びFAXアプリ2214が例示されている。スキャンアプリ2211は、スキャンジョブを実行する。印刷アプリ2212は印刷ジョブを実行する。コピーアプリ2213は、コピージョブを実行する。FAXアプリ2214は、FAXの送信ジョブ又は受信ジョブを実行する。
コントロールサービス225は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
SDKアプリ223は、画像形成装置10の出荷後において、画像形成装置10の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションプログラムである。同図では、SDKアプリ223として、SDKアプリ223a、SDKアプリ223b、及びSDKアプリ223cが例示されている。本実施の形態において、SDKアプリ223は、Java(登録商標)言語によって実装され、Java(登録商標)バイトコードとよばれる中間コード(実行コード)の形態で配布される。また、SDKアプリ223は、画像形成装置10の操作パネル15に画面等の表示部品(GUI(Graphical User Interface))を表示させ、表示部品を介して利用されることを本来の用途とするローカル又はクローズなアプリケーションとして実装されていることとする。すなわち、本来的に、SDKアプリ223は、画像形成装置10の内部又は外部の他のプログラム(アプリケーション等)に対して機能を提供することを目的としておらず(すなわち、サーバとして機能することは想定されておらず)、ユーザによって対話的に利用され、完結された一つの機能(ジョブ)を実現するアプリケーションであるとする。なお、このようなローカルなアプリケーションの形態の具体例としては、Java(登録商標)のCDC(Connected Device Configuration)環境で動作するXletが一例として挙げられる。
本実施の形態では、このようなローカルなSDKアプリ223の機能について、部分的に他のプログラムからの利用を可能とした例を説明する。
SDKプラットフォーム224は、SDKアプリ223の実行環境を提供する、SDKアプリ223のアプリケーションプラットフォームである。各SDKアプリ223は、SDKプラットフォーム224が提供するAPI(Application Program Interface)を利用して開発される。SDKプラットフォーム224のAPIは公開されており、サードベンダ等によってもSDKアプリ223は開発されうる。APIとは、具体的には、関数又はメソッド等の集合である。また、広義においては、非同期に発生するイベント等をSDKアプリ223に通知するための仕組み等もAPIに含まれる。
同図において、SDKプラットフォーム224は、仮想マシン2241、Webアプリケーションサーバ部2242、及びアプリ管理部2243等を含む。仮想マシン2241は、SDKアプリ223の中間コード(Java(登録商標)バイトコード)をCPU111に適したコードに変換するプログラムである。本実施の形態では、仮想マシン2241として、Java(登録商標)VM(Virtual Machine)を採用した例について説明する。
Webアプリケーションサーバ部2242は、Webサーバ環境を実現するプログラムである。例えば、Webアプリケーションサーバ部2242は、HTTPリクエスト(SOAP(Simple Object Access Protocol)リクエストも含む)を受信するためのポートを開いており、当該ポートにおいて受信されたリクエストに指定されたURL(Uniform Resource Locator)に対応したプログラムモジュールを呼び出す。
アプリ管理部2243は、SDKアプリ223の管理操作に関するユーザインタフェースを提供し、当該ユーザインタフェースを介して入力される要求に応じた処理を実行する。SDKアプリ223の管理操作としては、例えば、SDKアプリ223のインストール、起動、停止、及びアンインストール等が挙げられる。アプリ管理部2243は、また、SDKアプリ223を、リモートな又はオープンなアプリケーションとするための処理を実行する。当該処理によって、SDKアプリ223は、Webサービス化される。すなわち、SDKアプリ223が有する各メソッドは、Webサービスのインタフェースとして画像形成装置10の内部又は外部の他のプログラムから利用可能となる。
SDKアプリ223のWebサービス化について更に詳しく説明する。図4は、SDKアプリのWebサービス化を説明するための図である。同図では、SDKアプリ223dについてWebサービス化が行われる例が示されている。
例えば、SDKアプリ223dのインストール指示(S1)に応じ、アプリ管理部2243は、SDKアプリ223dを画像形成装置10にインストールする(S2)。SDKアプリ223dは、インストールに伴って、SDKアプリ223dの中間コードを解析し、SDKアプリ223dに対するWSDL(Web Services Description Language)データ60を生成する(S4)。したがって、SDKアプリ223は、Java(登録商標)言語によって実装されたアプリケーションに限定されないが、その中間コードからインタフェース情報が抽出可能である必要がある。
WSDLとは、Webサービスのインタフェース仕様を記述するためのXML(eXtensible Markup Language)をベースとした言語仕様をいう。したがって、WSDLデータ223dLは、SDKアプリ223dが有するメソッドのインタフェース仕様に関するWSDLによる記述が記録されたデータである。なお、上記したように、SDKアプリ223dは、ローカルなアプリケーションである。したがって、SDKアプリ223dが有するメソッドは、他のプログラムに外部から利用させることを前提に実装されたものではない。但し、このことは、当該メソッドが、クラス外からアクセスできないprivateメソッドに限定されることを意味するものではない。
Webアプリケーションサーバ部2242は、WSDLデータ223dLを読み込み、WSDLデータ223dLに記録された定義に係るメソッドに対するインタフェースを提供するWebサービス223dWをデプロイ(配置)する(S5)。Webサービス223dWの実体の一例としてはオブジェクトが挙げられる。この場合、ステップS5では、WSDLデータ223dLに定義されたメソッドとして有するオブジェクトが生成される。 他のアプリケーションは、Webアプリケーションサーバ部2242及びWebサービス223dWを介して透過的にSDKアプリ223dのメソッドを呼び出すことが可能となる。すなわち、SDKアプリ223dの機能を部分的に利用することが可能となる。本実施の形態では、SDLアプリ223dのこの状態をWebサービス化された状態という。
図5は、Webサービス化されたSDKアプリのメソッドの呼び出し手順の一例を説明するための図である。図5中、図4と同一部分には同一符号を付している。
例えば、操作パネル15を介してSDKアプリ223aが利用されているとする(S11)。SDKアプリ223aは、SDKアプリ223dの一部の機能を利用するように実装されている。SDKアプリ223aは、当該一部の機能を利用する場合、画像形成装置10内の内部的な通信によって、当該一部の機能に対する識別情報(すなわち、当該一部の機能を提供する主体に対応するURL及び当該一部の機能に対応するメソッド名)が指定されたSOAPリクエストをWebアプリケーションサーバ部2242に送信する(S12)。Webアプリケーションサーバ部2242は、当該SOAPリクエストに指定されたURL及びメソッド名に対応するメソッドの呼び出しをWebサービス223dWに対して行う(S13)。Webサービス223dWは、呼び出されたメソッドに対応するメソッドの呼び出しをSDKアプリ223dに対して行う(S14)。SDKアプリ223dは、呼び出されたメソッドに実装されている処理を実行し、その結果をWebサービス223dWに返却する。当該結果は、呼び出し順の逆をたどってSDKアプリ223aに対してSOAPレスポンスとして返却される。
なお、Webサービス化されたSDKアプリ223dのメソッドは、画像形成装置10の外部からネットワークを介しても利用可能となる。同図では、Webブラウザ31からのHTTPリクエスト(S16)に応じて、SDKアプリ223dが利用される形態も示されている。Webアプリケーションサーバ部2242は、当該HTTPリクエストを受信すると、当該HTTPリクエストに指定されているURLに対応するメソッドの呼び出しをWebサービス223dWに対して行う(S13)。以降は、上記した通りである。
次に、中間コード(Java(登録商標)のバイトコード)からWSDLへの変換について説明する。WSDLは、一般的に、以下のような形式を有する。
図6は、WSDLの形式を示す図である。同図に示されるように、WSDLは、<definitions>タグで囲まれたdefinitions要素e1をルート要素とする。definitions要素e1は、types要素e2、message要素e3、portType要素e4、binding要素e5、及びservice要素e6等を子要素として含む。
types要素e2は、SOAPメッセージで使用されるデータ型の定義を含む。message要素e3は、SOAPメッセージ(リクエスト、レスポンス等)の定義を含む。portType要素e4は、Webサービスとして公開するメソッドの情報を含む。binding要素e5は、使用する通信プロトコルをメソッドにバインドするための定義を含む。service要素e6は、サービス(メソッド)にアクセルするためのアドレス(URL)の定義を含む。
上記各要素のうち、message要素e3、portType要素e4、binding要素e5、及びservice要素e6は、図7に示されるようにメソッドごとに記述される。
図7は、メソッドとWSDLの各要素との対応関係を説明するための図である。同図には、SDKアプリ223dには、initXlet()、startXlet()、pauseXlet()、destroyXlet()、及びtiffToPdf()等のメソッドが含まれている。これらメソッドごとに、message要素e3、portType要素e4、binding要素e5、及びservice要素e6が記述される。
中間コードからWSDLへの変化の具体例を示す。図8は、SDKアプリの中間コードにおけるメソッドの定義例を示す図である。同図には、Scan2Pdfクラスについて、initXlet()、startXlet()、pauseXlet()、destroyXlet()、及びtiffToPdf()等のインタフェース仕様が定義されている例が示されている。斯かる定義に基づいて、アプリ管理部2243は、図9に示されるような記述を含むWSDLデータを生成する。
図9は、WSDLの具体例を示す図である。同図には、便宜上、tiffToPdf()メソッドに関する定義のみが記載されている。また、同図中、図6において説明した要素と対応する要素には、図6と同一符号を付している。各要素内の詳細な説明については、WSDLの仕様の範囲内であるため省略する。なお、メッセージ要素e3は、二つ含まれている。一方は、リクエストに関するSOAPメッセージ(tiffToPdfRequest)に関するメッセージ要素であり、他方は、レスポンスに関するSOAPメッセージ(tiffToPdfResponse)に関するメッセージ要素である。
また、service要素e6内の記述e61は、Scan2Pdfサービスに対するURLを示す。なお、Scan2Pdfは、本実施の形態において、SDKアプリ223dがWebサービス化された際のWebサービスの名前である。
Java(登録商標)の中間コードからWSDLへの変換は、機械的に可能であり、例えば、Apache AxisのJava2WSDL等の変換ツールも市場において入手可能である。したがって、本実施の形態では、中間コードからWSDLへの変換ロジックについての詳細な説明は省略する。
以下、画像形成装置10の処理手順について説明する。図10は、SDKアプリのWebサービス化の処理手順及びWebサービス化されたSDKアプリのメソッドの呼び出し手順を説明するためのシーケンス図である。すなわち、同図は、図4及び図5において説明した内容をシーケンス図として示したものである。
同図の初期状態では、SDKアプリ223dが記録されたSDカード80が、SDカードスロット17にセットされている。また、アプリ管理部2242によって、インストール画面が操作パネル15に表示されている。
ユーザによって、インストール画面を介してインストール指示が入力されると(S101)、アプリ管理部2242は、SDKアプリ223dを画像形成装置10にインストールする(S102)。アプリ管理部2242は、また、インストールに伴って、SDKアプリ223dの中間コード(クラスファイル)を解析し、WSDLデータ223dLを生成する(S103)。
続いて、アプリ管理部2242は、Webアプリケーションサーバ部2243に対してWSDLデータ223dLを入力し、Webサービスのデプロイを要求する(S104)。また、アプリ管理部2242は、インストールされたSDKアプリ223dを起動させる(S105)。Webサービス化されたとしても、起動されていなければ、SDKアプリ223dの機能を利用させることはできないからである。
Webサービスのデプロイ要求を受けたWebアプリケーションサーバ部2243は、WSDLデータ223dLを解析(解釈)し、WSDLデータ223dLに定義されたメソッドに対するインタフェースを提供するWebサービス223dWをデプロイする(S106)。Webサービス223dWのデプロイにより、SDKアプリ223dのWebサービス化は完了する。
続いて、アプリ管理部2242の操作画面を介してSDKアプリ223aが利用対象とされると、SDKアプリ223aは、自らの操作画面を操作パネル15に表示させる。
当該操作画面を介して、ユーザによってジョブの実行指示がSDKアプリ223aに入力されると(S151)、SDKアプリ223aは、ジョブの実行の過程において、Webサービス223dLに対するURL及びtiffToPdf()メソッドのメソッド名が指定されたSOAPリクエストをWebアプリケーションサーバ部2243に送信する(S152)。
Webアプリケーションサーバ部2243は、SOAPリクエストにおいて指定されたURLに対応するWebサービス223dWに対し、当該SOAPリクエストにメソッド名が指定されたメソッドの呼び出しを実行する(S153)。Webサービス223dWは、呼び出されたメソッドに対応するメソッド(tiffToPdf())の呼び出しをSDKアプリ223dに対して行う(S154)。SDKアプリ223dは、呼び出されたメソッドに実装された処理を実行し、処理結果をWebサービス223dWに返却する(S155)。Webサービス223dWは、当該処理結果をWebアプリケーションサーバ部2243に返却する(S156)。Webアプリケーションサーバ部2243は、当該処理結果を含むSOAPレスポンスをSDKアプリ223aに返信する(S157)。SDKアプリ223aは、例えば、返信された処理結果に応じて、画面の表示状態を変化させる(S158)。
続いて、他の画像形成装置10にインストールされているSDKアプリ223を、Webサービス化する例について説明する。
図11は、他の画像形成装置にインストールされているSDKアプリをWebサービス化して利用する際の処理手順の一例を説明するためのシーケンス図である。
同図には、画像形成装置10a及び10bの2台の画像形成装置10が示されている。画像形成装置10bは、SDKアプリ223dがインストールされる画像形成装置10である。画像形成装置10aは、画像形成装置10bにインストールされたSDKアプリ223dをWebサービス化して利用する画像形成装置10である。なお、各画像形成装置10に含まれるソフトウェアの参照番号には、各画像形成装置10の参照番号の末尾のアルファベット(「a」又は「b」)を付加している。但し、SDKアプリ223a及びSDKアプリ223dについては、当該命名規則の対象外である。
当初においては、画像形成装置10bが操作対象とされる。すなわち、図11の初期状態において、画像形成装置10bは、図10の画像形成装置10の初期状態と同じ状態である。具体的には、画像形成装置10bにおいて、ユーザによってインストール画面を介してインストール指示が入力される(S201)。アプリ管理部2242bは、SDKアプリ223dを画像形成装置10bにインストールする(S202)。なお、アプリ管理部2242bは、インストールされているSDKアプリ223dの属性情報の一覧を管理している。当該属性情報は、例えば、SDKアプリ223dのパッケージファイル(書庫ファイル)に含まれている属性ファイルより取得される。当該属性情報には、SDKアプリ223dの識別情報が含まれている。アプリ管理部2242bは、当該識別情報に基づいて、SDKアプリ223dの実体(クラスファイル等)の配置場所を特定し、当該実体にアクセスすることが可能である。
続いて、ユーザの操作場所は、画像形成装置10aに移る。なお、画像形成装置10bにおける操作と、画像形成装置10aにおける操作との間には、例えば、数日等の時間の経過があってもよい。
ユーザから見た場合、ステップS211は、図10のステップS151と同じ状況である。すなわち、アプリ管理部2242aの操作画面を介してSDKアプリ223aが利用対象とされると、SDKアプリ223aは、自らの操作画面を操作パネル15aに表示させる。当該操作画面を介して、ユーザによってジョブの実行指示がSDKアプリ223aに入力されると(S211)、SDKアプリ223aは、ジョブの実行の過程において、Webサービス223dLに対するURL及びtiffToPdf()メソッドのメソッド名が指定されたSOAPリクエストをWebアプリケーションサーバ部2243aに送信する(S212)。
Webアプリケーションサーバ2243aは、SOAPリクエストに指定されたURLに対応するWebサービス223dWがデプロイされていない場合、アプリ管理部2242aに対してWebサービスの検索を要求する(S213)。当該検索要求には、URLの末尾に含まれているサービス名(「ScanToPdf」)が指定される。
アプリ管理部2242aは、画像形成装置10aにインストールされているSDKアプリ223の中間コードを解析し、「ScanToPdf」クラスを含むSDKアプリ223の有無を判定する。当該クラスを含むSDKアプリ223が画像形成装置10aにインストールされていない場合、アプリ管理部2242aは、画像形成装置10bのアプリ管理部2242bに対して検索要求を転送する(S214)。なお、SDKアプリ223のWebサービス化について連携させる画像形成装置10のIPアドレスは、各画像形成装置10に予め設定され、例えば、HDD114に記録されている。ここでは、画像形成装置10aに対して、画像形成装置10bが連携対象として設定されていることとする。
アプリ管理部2242bは、画像形成装置10bにインストールされているSDKアプリ223の中間コードを解析し、「ScanToPdf」クラスを含むSDKアプリ223の有無を判定する。ここでは、SDKアプリ224dが検索される(S215)。そこで、アプリ管理部2242bは、SDKアプリ224dの中間コードをアプリ管理部2242aに返信する(S216)。なお、各画像形成装置10において、SDKアプリ223がインストールされる際に、当該SDKアプリ223の中間コードが解析され、予めインタフェース情報(クラス名の一覧情報)がSDKアプリ223より抽出されていてもよい。
続いて、アプリ管理部2242aは、受信されたSDKアプリ223dの中間コード(クラスファイル)を解析し、WSDLデータ223dLを生成する(S217)。続いて、アプリ管理部2242aは、Webアプリケーションサーバ部2243aに対してWSDLデータ223dLを入力し、Webサービスのデプロイを要求する(S218)。Webサービスのデプロイ要求を受けたWebアプリケーションサーバ部2243aは、WSDLデータ223dLを解析(解釈)し、WSDLデータ223dLに定義されたインタフェースを提供するWebサービス223dWをデプロイする(S219)。
続いて、Webアプリケーションサーバ2243aは、ステップS213において検索を要求したWebサービスに対応するSDKアプリ223dの起動をアプリ管理部2242aに要求する(S2242a)。当該要求に応じ、アプリ管理部2242aは、ステップS216において中間コードが転送されたSDKアプリ223dの起動要求を画像形成装置10bのアプリ管理部2242bに送信する(S221)。アプリ管理部2242bは、要求に応じ、SDKアプリ223dを画像形成装置10b上において起動させる(S222)。
画像形成装置10bにおいてSDKアプリ223dが起動されると、Webアプリケーションサーバ部2243aは、ステップS212において受信されたSOAPリクエストにおいて指定されたURLに対応するWebサービス223dWに対して、当該SOAPリクエストにメソッド名が指定されたメソッドの呼び出しを実行する(S231)。Webサービス223dWは、呼び出されたメソッドに対応するメソッド(tiffToPdf())の呼び出しをSDKアプリ223dに対して行う(S232)。Webサービス223dWによるSDKアプリ223dのメソッドの呼び出しは、例えば、仮想マシン2241が備える遠隔呼び出し(RPC(Remote Procedure Call))の機構が利用される。
SDKアプリ223dは、呼び出されたメソッドに実装された処理を実行し、処理結果をWebサービス223dWに返信する(S233)。Webサービス223dWは、当該処理結果をWebアプリケーションサーバ部2243aに返却する(S234)。Webアプリケーションサーバ部2243aは、当該処理結果を含むSOAPレスポンスをSDKアプリ223aに返信する(S235)。SDKアプリ223aは、例えば、返信された処理結果に応じて、画面の表示状態を変化させる(S236)。
上述したように、本実施の形態によれば、SDKアプリ223のメソッドを外部から呼び出し可能とすることができる。すなわち、SDKアプリ223の一部の機能を部分的に外部から利用可能とすることができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 画像形成装置
11 コントローラ
12 スキャナ
13 プリンタ
14 モデム
15 操作パネル
16 ネットワークインタフェース
17 SDカードスロット
30 ユーザ端末
31 Webブラウザ
80 SDカード
111 CPU
112 RAM
113 ROM
114 HDD
221 標準アプリ
222 アプリ管理サービス
223 SDKアプリ
224 SDKプラットフォーム
225 コントロールサービス
226 OS
2241 仮想マシン
2242 アプリ管理部
2243 Webアプリケーションサーバ部
特開2007−49677号公報

Claims (9)

  1. アプリケーションプログラムをインストール可能な電子機器であって、
    第一のアプリケーションプログラムからのメソッドの呼び出し要求に応じ、前記メソッドを有する第二のアプリケーションプログラムがインストールされた他の電子機器から、前記第二のアプリケーションプログラムのコードを取得する取得手段と、
    前記取得手段によって取得されたコードよりメソッドのインタフェース情報を抽出するインタフェース情報抽出手段と、
    前記インタフェース情報によって示されるメソッドに対するインタフェースを提供するインタフェース提供手段とを有し、
    前記インタフェース提供手段は、前記メソッドの識別情報を含む要求に応じ、該識別情報に対応するメソッドの呼び出しを前記第のアプリケーションプログラムに対して実行する電子機器。
  2. 前記インタフェース情報抽出手段は、前記インタフェース情報を、所定の言語仕様に基づいて前記メソッドに関する定義が記述された定義データに変換し、
    前記インタフェース提供手段は、前記定義データを解釈して、前記メソッドに対するインタフェースを提供する請求項1記載の電子機器。
  3. 前記所定の言語仕様はWSDLであり、
    前記インタフェース提供手段は、前記メソッドに対するURL及びメソッド名を含む要求に応じ、該URL及びメソッド名に対応するメソッドの呼び出しを前記第のアプリケーションプログラムに対して実行する請求項2記載の電子機器。
  4. アプリケーションプログラムをインストール可能な電子機器が、
    第一のアプリケーションプログラムからのメソッドの呼び出し要求に応じ、前記メソッドを有する第二のアプリケーションプログラムがインストールされた他の電子機器から、前記第二のアプリケーションプログラムのコードを取得する取得手順と、
    前記取得手順において取得されたコードよりメソッドのインタフェース情報を抽出するインタフェース情報抽出手順と、
    前記インタフェース情報によって示されるメソッドに対するインタフェースを提供するインタフェース提供手順とを実行し、
    前記インタフェース提供手順は、前記メソッドの識別情報を含む要求に応じ、該識別情報に対応するメソッドの呼び出しを前記第のアプリケーションプログラムに対して実行する情報処理方法。
  5. 前記インタフェース情報抽出手順は、前記インタフェース情報を、所定の言語仕様に基づいて前記メソッドに関する定義が記述された定義データに変換し、
    前記インタフェース提供手順は、前記定義データを解釈して、前記メソッドに対するインタフェースを提供する請求項4記載の情報処理方法。
  6. 前記所定の言語仕様はWSDLであり、
    前記インタフェース提供手順は、前記メソッドに対するURL及びメソッド名を含む要求に応じ、該URL及びメソッド名に対応するメソッドの呼び出しを前記第のアプリケーションプログラムに対して実行する請求項5記載の情報処理方法。
  7. アプリケーションプログラムをインストール可能な電子機器に、
    第一のアプリケーションプログラムからのメソッドの呼び出し要求に応じ、前記メソッドを有する第二のアプリケーションプログラムがインストールされた他の電子機器から、前記第二のアプリケーションプログラムのコードを取得する取得手順と、
    前記取得手順において取得されたコードよりメソッドのインタフェース情報を抽出するインタフェース情報抽出手順と、
    前記インタフェース情報によって示されるメソッドに対するインタフェースを提供するインタフェース提供手順とを実行させ、
    前記インタフェース提供手順は、前記メソッドの識別情報を含む要求に応じ、該識別情報に対応するメソッドの呼び出しを前記第のアプリケーションプログラムに対して実行する情報処理プログラム。
  8. 前記インタフェース情報抽出手順は、前記インタフェース情報を、所定の言語仕様に基づいて前記メソッドに関する定義が記述された定義データに変換し、
    前記インタフェース提供手順は、前記定義データを解釈して、前記メソッドに対するインタフェースを提供する請求項7記載の情報処理プログラム。
  9. 前記所定の言語仕様はWSDLであり、
    前記インタフェース提供手順は、前記メソッドに対するURL及びメソッド名を含む要求に応じ、該URL及びメソッド名に対応するメソッドの呼び出しを前記第のアプリケーションプログラムに対して実行する請求項8記載の情報処理プログラム。
JP2010056699A 2010-03-12 2010-03-12 電子機器、情報処理方法、及び情報処理プログラム Active JP5447030B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010056699A JP5447030B2 (ja) 2010-03-12 2010-03-12 電子機器、情報処理方法、及び情報処理プログラム
US13/033,934 US9218224B2 (en) 2010-03-12 2011-02-24 Electronic apparatus, information processing method, and recording medium storing information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010056699A JP5447030B2 (ja) 2010-03-12 2010-03-12 電子機器、情報処理方法、及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2011191951A JP2011191951A (ja) 2011-09-29
JP5447030B2 true JP5447030B2 (ja) 2014-03-19

Family

ID=44561170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010056699A Active JP5447030B2 (ja) 2010-03-12 2010-03-12 電子機器、情報処理方法、及び情報処理プログラム

Country Status (2)

Country Link
US (1) US9218224B2 (ja)
JP (1) JP5447030B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5685981B2 (ja) 2011-02-23 2015-03-18 株式会社リコー 画像形成装置、情報処理システム、課金方法、プログラム、及び記録媒体
JP5884542B2 (ja) * 2012-02-17 2016-03-15 株式会社リコー 機器、情報処理システム、情報処理方法、及び情報処理プログラム
CN104428761B (zh) * 2012-07-11 2017-08-15 英派尔科技开发有限公司 网络拥塞的减少
JP6390126B2 (ja) 2014-03-14 2018-09-19 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP6260458B2 (ja) * 2014-05-30 2018-01-17 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成方法、及び制御プログラム
JP2016038614A (ja) 2014-08-05 2016-03-22 株式会社リコー 機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP2016130902A (ja) 2015-01-13 2016-07-21 株式会社リコー 機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP6561501B2 (ja) 2015-03-10 2019-08-21 株式会社リコー 機器、認証システム、認証処理方法、認証処理プログラム、及び記憶媒体
JP6547357B2 (ja) 2015-03-20 2019-07-24 株式会社リコー 機器、認証システム、認証処理方法及び認証処理プログラム
JP2017107307A (ja) 2015-12-08 2017-06-15 株式会社リコー 機器、情報処理システム、情報処理方法、及びプログラム
JP6834234B2 (ja) 2016-08-10 2021-02-24 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP6891563B2 (ja) 2017-03-16 2021-06-18 株式会社リコー 情報処理システム、機器、情報処理装置、情報処理方法及びプログラム
JP6909654B2 (ja) * 2017-07-07 2021-07-28 横河電機株式会社 制御系システム、および共通プラットフォーム
JP6965653B2 (ja) 2017-09-14 2021-11-10 株式会社リコー 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP7077688B2 (ja) 2018-03-15 2022-05-31 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
CN109408256B (zh) * 2018-10-17 2021-03-19 麒麟合盛网络技术股份有限公司 应用调用方法和装置
CN111639350B (zh) * 2020-05-16 2023-01-31 中信银行股份有限公司 密码服务系统及加密方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
KR100463837B1 (ko) * 2002-12-10 2004-12-29 한국전자통신연구원 엔터프라이즈 빈 추출 장치 및 방법
JP4681968B2 (ja) * 2004-08-06 2011-05-11 株式会社リコー サービス要求装置、サービス要求方法、サービス要求プログラム、及び記録媒体
US7827563B2 (en) * 2004-11-03 2010-11-02 Kyocera Mita Corporation Open architecture and interfaces for workflow applications in office document systems
US8264717B2 (en) 2005-07-11 2012-09-11 Ricoh Company, Ltd. Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium
JP4843386B2 (ja) 2005-07-11 2011-12-21 株式会社リコー 機器、情報処理方法、情報処理プログラム、及び記録媒体
US7668836B2 (en) * 2005-09-02 2010-02-23 International Business Machines Corporation IMS SOAP gateway deployment utility
JP5025192B2 (ja) * 2005-09-16 2012-09-12 株式会社リコー 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP4868955B2 (ja) * 2006-06-22 2012-02-01 株式会社リコー 画像処理装置、情報処理装置、サーバ装置、表示制御システム、及び表示制御方法
JP5487792B2 (ja) 2009-08-11 2014-05-07 株式会社リコー 画像形成装置、情報処理システム、情報処理方法、及び情報処理プログラム
JP5482011B2 (ja) 2009-08-11 2014-04-23 株式会社リコー 画像形成装置、プログラム管理システム、プログラム管理方法、及びプログラム管理プログラム

Also Published As

Publication number Publication date
JP2011191951A (ja) 2011-09-29
US9218224B2 (en) 2015-12-22
US20110225600A1 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
JP5447030B2 (ja) 電子機器、情報処理方法、及び情報処理プログラム
US9286141B2 (en) Image forming apparatus, program management system, program management method, and computer-readable storage medium
JP5884542B2 (ja) 機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP5440252B2 (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム
JP5448542B2 (ja) 情報処理装置、制御方法、及びプログラム
JP6295563B2 (ja) 情報処理システム、機器、情報処理方法、及び情報処理プログラム
JP2008047120A (ja) ワークフロー・ユーザ・インターフェイスをカスタム化するシステムおよび方法
JP5732824B2 (ja) 画像形成装置、情報処理システム、及び情報処理方法
US20130219260A1 (en) Instrument, information processing system, and information processing method
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
JP4991820B2 (ja) 拡張可能な画像処理装置ドライバを備えたクライアント装置及びその実施方法
US9225861B2 (en) Image forming apparatus, method of installing OSGi-based service, method of providing OSGi-based service, and computer-readable recording medium
JP5464038B2 (ja) 情報処理装置、画像形成装置、情報処理方法、プログラムおよび記録媒体
JP2009205262A (ja) アプリケーションプログラムインストール装置、アプリケーションプログラムインストール方法、プログラム、および記録媒体
JP5692319B2 (ja) 統合管理装置、制御方法及びプログラム
JP5370029B2 (ja) 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体
US20120188584A1 (en) Document imaging node with internal web server execution environment
JP6273798B2 (ja) アプリケーションシステム、画像形成装置、ウェブサーバ、アプリケーション起動方法、およびコンピュータプログラム
JP6232977B2 (ja) アプリケーションシステム、ウェブサーバ、アプリケーション起動方法、およびインストーラ
JP2008108061A (ja) 画像形成装置、表示データ生成方法及びプログラム
JP4520261B2 (ja) 電子装置、表示データ生成方法、表示データ生成プログラム及び記録媒体
JP2012135907A (ja) 画像形成装置、情報処理方法、及び情報処理プログラム
JP5020046B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2013196370A (ja) 情報処理装置、情報処理システム、Webページ生成方法、及びプログラム
JP2014056608A (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R151 Written notification of patent or utility model registration

Ref document number: 5447030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151