説明

情報処理装置、プラグイン連携方法、プラグイン連携プログラム、及びそのプログラムを記録した記録媒体

【課題】プラグインが有するUI部とロジック部との独立性を保ち、プラグイン間の連携動作が可能な情報処理装置、プラグイン連携方法、プラグイン連携プログラム、及びそのプログラムを記録した記録媒体を提供する。
【解決手段】情報処理装置100は、複数のプラグインPを有するアプリケーションAPが動作する装置であって、プラグインPが、プラグインPの表示画面を生成するUI(User Interface)部20と、プラグインPの機能を実現するための処理を行うロジック部10と、を有し、プラグイン間において、連携元のプラグインP1が、UI部20により、連携先のプラグインP2のUI部20に対して、ロジック部10による処理結果を通知し、連携先のプラグインP2が、UI部20により、通知手段211が通知した処理結果を受信し、受信した処理結果に基づき、同プラグインの表示画面を生成することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関し、特に、複数のプラグインを有するアプリケーションにおいて、プラグインが画面遷移し、連携動作する技術に関するものである。
【背景技術】
【0002】
例えば、特許文献1には、プラグインごとの操作画面のカスタマイズ効率を高めることを目的とした表示画面カスタマイズプログラムに関する技術が開示されている。その中で、表示画面カスタマイズプログラムは、各プラグイン共通の画面構成情報と画面カスタマイズ情報を有し、これらの情報に基づき、各プラグインの表示画面を生成する。つまり、特許文献1に開示される技術では、表示画面の生成機能を複数のプラグインに対して共通化することで、プラグインごとの表示画面を統一し、カスタマイズ効率の向上を実現している。しかし、本来であれば、このようなプラグインの表示画面は、提供機能の利便性や利用者の操作性を考慮し、プラグインごとでカスタマイズしたい。
【0003】
また、近年のプラグインは、迅速な機能提供や優れた拡張性を実現するために、他の開発部署や他のソフトウェアベンダーと言った複数の異なる組織により開発・提供される場合が多い。このような環境下では、開発を行った組織単位で、プラグインの表示画面をカスタマイズした方が、利便性や操作性を考慮したUI(User Interface)の提供を実現するだけでなく、開発効率の面でも効果的である。
【0004】
そこで、プラグインのソフトウェア構成には、プラグインの開発効率や表示画面のカスタマイズ性を考慮し、表示画面を生成するUI部と、機能を実現するための処理を実行するロジック部と、を有する構成が考えられる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のプラグインには、他のプラグインと連携する際に次のような問題がある。従来のプラグインでは、ロジック部によりUI部の画面表示を制御している。そのため、プラグイン連携時の画面遷移が、連携プラグインの各ロジック部により制御される。例えば、プラグインAとプラグインBとが連携動作し、プラグインAの表示画面からプラグインBの表示画面へと遷移する場合を例に説明する。まず、プラグインAのロジック部がプラグインAのUI部から受け付けた利用者からの動作指示に従って所定の処理を実行する。その処理結果は、プラグインAのロジック部からプラグインBのロジック部へと通知され、画面遷移が指示される。プラグインBのロジック部は、通知された処理結果を基にプラグインBのUI部へ画面表示を指示する。これにより、プラグインAの表示画面からプラグインBの表示画面へと遷移する。
【0006】
上記動作例からも分かるように、従来のプラグインでは、動作連携時の画面遷移制御をロジック部が行っているため、ロジック部とUI部との独立性が保たれない構成となってしまう。また、従来のプラグインでは、ロジック部が実現する機能をプラグイン間で共通化したい場合であっても、画面遷移制御までは共通化できないため、異なるロジック部に同一機能が重複して存在することになる。
【0007】
このように、従来のプラグインでは、ソフトウェアの開発・保守を困難なものとし、リソースを無駄に消費してしまう可能性があった。
【0008】
本発明は上記従来技術の問題点を鑑み提案されたものであり、その目的とするところは、プラグインが有するUI部とロジック部との独立性を保ち、プラグイン間の連携動作が可能な情報処理装置、プラグイン連携方法、プラグイン連携プログラム、及びそのプログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明に係る情報処理装置は、複数のプラグインを有するアプリケーションが動作する情報処理装置であって、前記プラグインが、プラグインの表示画面を生成するUI部と、プラグインの機能を実現するための処理を行うロジック部と、を有し、前記UI部が、同プラグインのロジック部による処理結果を他のプラグインに通知する通知手段、及び/又は前記処理結果を他のプラグインから受信する受信手段、を有し、プラグイン間において、連携元のプラグインが、前記通知手段により、連携先のプラグインのUI部に対して、同プラグインのロジック部による処理結果を通知し、前記連携先のプラグインが、前記受信手段により、前記通知手段が通知した処理結果を受信し、受信した処理結果に基づき、同プラグインのUI部により表示画面を生成することを特徴とする。
【0010】
このような構成によって、本発明に係る情報処理装置は、連携元のプラグインのUI部から連携先のプラグインのUI部に対してロジック部の処理結果を通知し、遷移後の画面表示を指示する。
【0011】
これによって、本発明に係る情報処理装置では、ロジック部でなくUI部により、プラグイン連携時の画面遷移が制御され、ロジック部による処理結果がUI部を介して連携先へと伝達される。その結果、プラグインが有するロジック部とUI部との独立性が保たれた構成でプラグイン間の連携動作が行える。
【0012】
上記目的を達成するため、本発明に係るプラグイン連携方法は、プラグインの表示画面を生成するUI部と、プラグインの機能を実現するための処理を行うロジック部と、を有する複数のプラグインで構成されるアプリケーションが動作する情報処理装置におけるプラグイン連携方法であって、プラグイン間において、連携元のプラグインが、同プラグインのUI部により、連携先のプラグインのUI部に対して、同プラグインのロジック部による処理結果を通知し、前記連携先のプラグインが、同プラグインのUI部により、前記連携元のプラグインが通知した処理結果を受信し、受信した処理結果に基づき、同プラグインの表示画面を生成することを特徴とする。
【0013】
このような手順によって、本発明に係るプラグイン連携方法では、連携元のプラグインのUI部から連携先のプラグインのUI部に対してロジック部の処理結果を通知し、遷移後の画面表示を指示すると言う動作を実現する。
【0014】
これによって、本発明に係るプラグイン連携方法は、プラグインが有するUI部とロジック部との独立性を保ち、プラグイン間の連携動作が可能な環境を提供できる。
【発明の効果】
【0015】
本発明によれば、プラグインが有するUI部により、プラグイン連携時の画面遷移を制御し、ロジック部による処理結果をUI部が連携先へと伝達することで、ロジック部とUI部との独立性を保ち、プラグイン間の連携動作が可能な情報処理装置、プラグイン連携方法、プラグイン連携プログラム、及びそのプログラムを記録した記録媒体を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の第1の実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【図2】アプリケーションのソフトウェア構成例を示す図である。
【図3】従来のプラグイン連携の処理手順例を示すシーケンス図である。
【図4】従来のプラグイン連携を行うソフトウェア構成例を示す図である。
【図5】本発明の第1の実施形態に係るプラグイン連携を行うソフトウェア構成例を示す図である。
【図6】本発明の第1の実施形態に係るプラグイン連携の処理手順例を示すシーケンス図である。
【図7】本発明の第1の実施形態に係る情報処理装置が有する機能構成例を示す図である。
【図8】本発明の第1の実施形態に係るプラグイン連携の詳細な処理手順例を示すシーケンス図である。
【図9】本発明の変形例に係るプラグイン連携の動作例を示す図である。
【図10】本発明の変形例に係る情報処理装置が有する機能構成例を示す図である。
【図11】本発明の変形例に係るプラグイン連携の詳細な処理手順例を示すシーケンス図である。
【発明を実施するための形態】
【0017】
以下、本発明の好適な実施の形態(以下「実施形態」と言う)について、図面を用いて詳細に説明する。
【0018】
[第1の実施形態]
<ハードウェア構成>
本実施形態に係る情報処理装置のハードウェア構成について説明する。
図1は、本実施形態に係る情報処理装置100のハードウェア構成例を示す図である。
図1に示すように、情報処理装置100は、入力装置101、表示装置102、ドライブ装置103、RAM(Random Access Memory)104、ROM(Read Only Memory)105、CPU(Central Processing Unit)106、インタフェース装置107、及びHDD(Hard Disk Drive)108などを備え、それぞれがバスBで相互に接続されている。
【0019】
入力装置101は、キーボード及びマウスなどを含み、情報処理装置100に各操作信号を入力するのに用いられる。表示装置102は、ディスプレイなどを含み、情報処理装置100による処理結果を表示する。
【0020】
インタフェース装置107は、情報処理装置100を所定のデータ伝送路(例えば「LAN:Local Area Network」)に接続するインタフェースである。よって、情報処理装置100は、インタフェース装置107を介して、接続される周辺機器200(例えば「プリンタ」や「PC:Personal Computer」)とデータ通信を行うことができる。
【0021】
HDD108は、各種プログラム及びデータを格納している不揮発性の記憶装置である。格納されるプログラム及びデータには、例えば、情報処理装置100全体を制御する情報処理システム(「Windows(登録商標)」や「UNIX(登録商標)」などの基本ソフトウェアであるOS:Operating System)、及び情報処理システム上において各種機能を提供するアプリケーションなどがある。また、HDD108は、格納している上記プログラム及びデータを、所定のファイルシステム及び/又はDB(Data Base)により管理している。
【0022】
ドライブ装置103は、着脱可能な記録媒体103aとのインタフェースである。これにより、情報処理装置100は、ドライブ装置103を介して、記録媒体103aの読み取り及び/又は書き込みを行うことができる。
【0023】
ROM105は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105には、情報処理装置100が起動されるときに実行されるBIOS(Basic Input/Output System)や、情報処理装置100のシステム設定及びネットワーク関連設定などのデータが格納されている。
【0024】
RAM104は、上記各種記憶装置から読み出されたプログラム及びデータを一時保持する揮発性の半導体メモリ(記憶装置)である。CPU106は、ROM105やHDD108からRAM104上に読み出したプログラムを実行することにより、情報処理装置100の全体制御及び各種搭載機能の動作を実現する。
【0025】
情報処理装置100では、上記ハードウェア構成により、情報処理サービス(情報処理機能)を提供することができる。
【0026】
また、情報処理装置100は、上記ハードウェア構成からも分かるようにPC(Personal Computer)などと略同一の構成をしている。
【0027】
<ソフトウェア構成>
次に、上記情報処理装置100に搭載される(インストールされる)アプリケーションのソフトウェア構成について説明する。
図2は、アプリケーションAPのソフトウェア構成例を示す図である。
図2に示すように、アプリケーションAPは、複数のプラグインP1〜Pn(以下総称する場合は「プラグインP」と言う)と、プラグインPの動作環境であるプラットフォームPFとを有する構成となっている。つまり、アプリケーションAPの機能は、各プラグインP1〜PnがプラットフォームPF上で連携動作することで実現・提供される。このようなソフトウェア構成とするメリットには、開発効率の向上や独立した開発部品(ソフトウェア部品)による迅速な機能提供、また優れた拡張性の実現などが挙げられる。
【0028】
さらに、各プラグインP1〜Pnは、各機能を実現するための処理を行うプラグインロジック(以下単に「ロジック部」と言う)10〜10(以下総称する場合は「ロジック部10」と言う)と、各表示画面を生成するプラグインUI(以下単に「UI部」と言う)20〜20(以下総称する場合は「UI部20」と言う)とを有する構成となっている。このようなソフトウェア構成とするメリットには、プラグインPの開発効率や表示画面のカスタマイズ性の向上がなど挙げられる。
【0029】
また、ロジック部10とUI部20との関係は、次の通りである。例えば、ロジック部10とUI部20とは、同じプラグイン(同プラグイン)に属するソフトウェア部品である。一方、ロジック部10とUI部20とは、異なるプラグインに属するソフトウェア部品である。つまり、UI部20から見たロジック部10は、他のプラグインに属するソフトウェア部品と言うことになる。この点については、ロジック部同士であってもUI部同士であっても同じことが言える。よって、上記ソフトウェア構成におけるプラグイン連携とは、異なるプラグインPに属するソフトウェア部品同士が連携することを意味する。
【0030】
このようなソフトウェア構成において、従来のアプリケーションAPでは、画面遷移制御部11〜11(以下総称する場合は「画面遷移制御部11」と言う)を、プラグインPのロジック部10が有している。
【0031】
<プラグイン連携機能>
まず、従来のアプリケーションAPにおけるプラグイン連携動作について説明する。
図3は、従来のプラグイン連携の処理手順例を示すシーケンス図である。図3には、4つのプラグインP1〜P4を有するアプリケーションAPにおけるプラグイン連携の処理手順例が示されている。また、このアプリケーションAPでは、プラグインP1からプラグインP2への画面遷移、プラグインP3からプラグインP4への画面遷移において、利用者認証が必要となる。このようなアプリケーションAPを搭載した情報処理装置100では、アプリケーションAP内のプラグイン連携が次のように行われる。
【0032】
図3に示すように、まず、情報処理装置100では、プラグインP1のロジック部10からUI部20に対して、画面表示が指示される(ステップS11)。その結果、表示装置102には、プラグインP1の操作画面(認証画面:画面1)が表示される。情報処理装置100では、利用者入力で受け付けた認証情報(例えば「ユーザID」や「パスワード」)がUI部20からロジック部10へと渡される。
【0033】
情報処理装置100では、ロジック部10により、認証情報に基づく利用者認証処理が行われ(ステップS12)、その認証結果が、連携先であるプラグインP2のロジック部10へと通知され、プラグインP1からプラグインP2へと画面遷移(画面1→2)が指示される(ステップS13)。
【0034】
続いて、情報処理装置100では、プラグインP2のロジック部10からUI部20に対して、画面表示が指示される(ステップS14)。その結果、表示装置102には、認証結果が反映されたプラグインP2の操作画面(画面2)が表示される。情報処理装置100では、利用者入力で受け付けた操作情報(例えば「次処理指定」)がUI部20からロジック部10へと渡される。
【0035】
情報処理装置100では、ロジック部10により、必要に応じて所定の処理が行われ、その処理結果が、連携先であるプラグインP3のロジック部10へと通知され、プラグインP2からプラグインP3へと画面遷移(画面2→3)が指示される(ステップS15)。
【0036】
続いて、情報処理装置100では、プラグインP3のロジック部10からUI部20に対して、画面表示が指示される(ステップS16)。その結果、表示装置102には、プラグインP3の操作画面(認証画面:画面3)が表示される。情報処理装置100では、利用者入力で受け付けた認証情報がUI部20からロジック部10へと渡される。
【0037】
情報処理装置100では、ロジック部10により、認証情報に基づく利用者認証処理が行われ(ステップS17)、その認証結果が、連携先であるプラグインP4のロジック部10へと通知され、プラグインP3からプラグインP4へと画面遷移(画面3→4)が指示される(ステップS18)。
【0038】
続いて、情報処理装置100では、プラグインP4のロジック部10からUI部20に対して、画面表示が指示される(ステップS19)。その結果、表示装置102には、認証結果が反映されたプラグインP4の操作画面(画面4)が表示される。
【0039】
このように、従来のアプリケーションAPでは、プラグイン連携処理を行う場合、図4に示すようなソフトウェア構成となってしまう。
【0040】
図4は、従来のプラグイン連携を行うソフトウェア構成例を示す図である。
図4に示すように、各プラグインP1〜P4が有するロジック部10〜10は、連携先への画面遷移を制御する画面遷移制御部11〜11を個々に有している。そのため、プラグインPでは、UI部20とロジック部10との独立性が保たれず、連携先の変更を行う場合、ロジック部担当の開発者に必要以上の技術を要求することになる。つまり、ロジック部担当の開発者には、機能実現処理以外の画面処理に関する技術の理解も必要とされる。これは、開発者にとって煩雑であり、作業分担による高い開発効率を実現する上で弊害となる。
【0041】
また、プラグインP1及びP3が有するロジック部10及び10は、利用者認証を行う同一の機能(認証部12及び12)を有している。これは、ロジック部10及び10が画面遷移制御部11及び11を有しているため、画面遷移制御部11及び11の動作時に利用者認証を行わなければならないからである。そのため、プラグインPのロジック部10では、共通化可能な機能が重複してしまい、無駄なリソースを消費することになる。また、ロジック部担当の開発者には、煩雑なソフトウェア開発・保守を強いることになる。
【0042】
このように、従来のプラグインPでは、ソフトウェアの開発・保守を困難なものとし、リソースを無駄に消費してしまう可能性があった。
【0043】
そこで、本実施形態に係る情報処理装置100では、連携元のプラグインP1のUI部20から連携先のプラグインP2のUI部20に対してロジック部10の処理結果を通知し、遷移後の画面表示を指示する。情報処理装置100は、このようなプラグイン連携機能を有している。
【0044】
図5は、本実施形態に係るプラグイン連携を行うソフトウェア構成例を示すである。図5には、上記に説明を行った図3と同じプラグイン連携を行う本実施形態に係るアプリケーションAPのソフトウェア構成例が示されている。
【0045】
本実施形態に係るアプリケーションAPは、図4に示した従来のソフトウェア構成と次の点で異なる。本実施形態に係るアプリケーションAPでは、プラグインP1〜P4のロジック部10〜10ではなく、UI部20〜20が、連携時の画面遷移を制御する機能部(画面遷移制御部21〜21)を有している点である。これにより、プラグインPでは、ロジック部10とUI部20との独立性が保たれ、画面処理に関する技術に精通したUI部担当の開発者による対応が可能となり、開発・保守作業の分担が明確となる。
【0046】
また、プラグインP1及びP3のロジック部10及び10が有していた重複機能(認証部12及び12)を、1つの機能に共通化(プラグイン化)している点である。この機能の共通化は、上記構成(UI部が画面遷移機能を有する構成)としたことで、ロジック部10の独立性が確保されたことによるものである。
【0047】
以下に、本実施形態に係るアプリケーションAPにおけるプラグイン連携の処理手順例を示す。
【0048】
図6は、本実施形態に係るプラグイン連携の処理手順例を示すシーケンス図である。
図6に示すように、情報処理装置100では、プラグインP1のUI部20により、表示画面が生成される(ステップS21)。その結果、表示装置102には、プラグインP1の操作画面(認証画面:画面1)が表示される。情報処理装置100では、利用者入力で受け付けた認証情報が、UI部20から共通化された認証プラグインPaのロジック部10へと渡される(ステップS22)。
【0049】
情報処理装置100では、認証プラグインPaのロジック部10により、認証情報に基づく利用者認証処理が行われ(ステップS23)、その認証結果が、プラグインP1のUI部20へと通知される。情報処理装置100では、認証結果が、プラグインP1のUI部20から連携先であるプラグインP2のUI部20へと渡され、プラグインP1からプラグインP2へと画面遷移(画面1→2)が指示される(ステップS24)。
【0050】
続いて、情報処理装置100では、プラグインP2のUI部20により、表示画面が生成される(ステップS25)。その結果、表示装置102には、認証結果が反映されたプラグインP2の操作画面(画面2)が表示される。情報処理装置100では、利用者入力で受け付けた操作情報が、プラグインP2のUI部20から連携先であるプラグインP3のUI部20へと渡され、プラグインP2からプラグインP3へと画面遷移(画面2→3)が指示される(ステップS26)。
【0051】
続いて、情報処理装置100では、プラグインP3のUI部20により、表示画面が生成される(ステップS27)。その結果、表示装置102には、プラグインP3の操作画面(認証画面:画面3)が表示される。情報処理装置100では、利用者入力で受け付けた認証情報が、UI部20から再び認証プラグインPaのロジック部10へと渡される(ステップS28)。
【0052】
情報処理装置100では、認証プラグインPaのロジック部10により、認証情報に基づく利用者認証処理が行われ(ステップS29)、その認証結果が、プラグインP3のUI部20へと通知される。情報処理装置100では、認証結果が、プラグインP3のUI部20から連携先であるプラグインP4のUI部20へと渡され、プラグインP3からプラグインP4へと画面遷移(画面3→4)が指示される(ステップS30)。
【0053】
続いて、情報処理装置100では、プラグインP4のUI部20により、表示画面が生成される(ステップS31)。その結果、表示装置102には、認証結果が反映されたプラグインP4の操作画面(画面4)が表示される。
【0054】
このように、本実施形態に係る情報処理装置100では、プラグインPのロジック部10でなくUI部20により、プラグイン連携時の画面遷移が制御され、ロジック部10による処理結果がUI部20を介して連携先へと伝達される。これによって、本実施形態に係る情報処理装置100では、ロジック部10とUI部20との独立性が保たれた構成でプラグイン間の連携動作が行える。
【0055】
以下に、本実施形態に係るプラグイン連携機能の構成とその動作について説明する。
図7は、本実施形態に係る情報処理装置100が有する機能構成例を示す図である。図7には、情報処理装置100に、プラグインP1及びプラグインP2を有するアプリケーションAPが搭載(インストール)されている場合の機能構成例が示されている。また、図7に示す機能構成例は、アプリケーションAPにおいて、プラグインP1の処理結果をプラグインP2に通知する連携動作を想定している。
【0056】
図7に示すように、まず、プラグインP1及びプラグインP2は、処理部13,13(以下総称する場合「処理部13」と言う)と入出力部22,22(以下総称する場合「入出力部22」と言う)とを、プラグインPに共通する機能部として有している。
【0057】
処理部13は、ロジック部10が有し、プラグインPの提供機能を実現するための処理を行う機能部である。また、入出力部22は、UI部20が有し、利用者からの操作入力受け付けや利用者への情報表示出力を行う機能部である。
【0058】
ここで、上記機能部の具体的な動作について、プラグインPが認証機能を提供する場合を例に簡単に説明する。まず、入出力部22は、利用者に対して認証情報(「ユーザID」や「パスワード」)の入力を促す認証画面(ログイン画面)を表示する。続いて、入出力部22は、利用者により入力された認証情報を受け付け、処理部13に認証情報を渡す。処理部13は、認証情報に基づき利用者認証を行い、入出力部22に認証結果を渡す。入出力部22は、認証結果を反映した画面を表示する。
【0059】
一方、プラグインP1は通知部211を、プラグインP2は受信部212を、プラグイン連携時の画面遷移を制御する機能部(画面遷移制御部)として有している。
【0060】
通知部211は、プラグインP1のUI部20が有する画面遷移制御部21の一機能部ある。通知部211は、入出力部22及び/又は処理部13からの情報をイベントとしてプラグインP2へと通知し、連携先のプラグインP2に対して画面遷移を指示する。このとき、通知部211は、連携先のプラグインP2に渡す情報を基に、プラグインP2(受信部)が参照可能なイベントクラスを生成することで、イベントを通知する。なお、入出力部221からの情報には、例えば、利用者からの処理要求指示や入力値などがある。また、処理部131からの情報には、例えば、処理結果などがある。
【0061】
受信部212は、プラグインP2のUI部20が有する画面遷移制御部21の一機能部である。受信部212は、プラグインP1から通知されたイベントを受信する。このとき、受信部212は、通知部22により生成されたイベントクラスを参照することで、イベントを受信する。受信部212は、受信イベントから得た情報を、入出力部22及び/又は処理部13に渡し、連携後の処理を指示する。なお、連携後の処理には、画面遷移処理が含まれる。
【0062】
ここで、上記機能部の具体的な動作について、プラグイン連携(プラグインP1からプラグインP2への連携)において利用者認証が必要な場合を例に簡単に説明する。まず、プラグインP1の通知部211は、利用者により入力された認証情報を基に、プラグインP2が参照可能なイベントクラスを生成し、イベントを通知する。プラグインP2の受信部212は、受信イベントから認証情報を得て、プラグインP2の処理部13に認証情報を渡す。処理部13は、認証情報に基づき利用者認証を行い、入出力部22に認証結果を渡す。入出力部22は、認証結果を反映したプラグインP2の画面を表示する。その結果、表示装置102の表示画面が、プラグインP1の表示画面からプラグインP2の表示画面へと遷移する。
【0063】
このように、本実施形態に係る情報処理装置100では、連携元のプラグインP1のUI部20から連携先のプラグインP2のUI部20に対してロジック部10の処理結果を通知し、遷移後の画面表示を指示する。
【0064】
次に、本実施形態に係るプラグイン連携機能の詳細な動作(機能部群の連係動作)について、処理手順を示すシーケンス図を用いて説明する。
【0065】
プラグイン連携機能は、情報処理装置100に搭載(インストール)されるプログラム(プラグイン連携機能を実現するソフトウェア部品)が、CPU106により、格納先(例えば「ROM」や「HDD」)からRAM104上に読み出され、以下の処理が実行されることで実現される。
【0066】
図8は、本実施形態に係るプラグイン連携の詳細な処理手順例を示すシーケンス図である。図8には、図6で示した利用者認証を伴うプラグインP1からプラグインP2へのプラグイン連携(ステップS21〜S25)の詳細な処理手順例が示されている。
【0067】
図8に示すように、情報処理装置100では、プラグインP1のUI部20が有する入出力部22より、表示画面から入力された利用者の認証情報(「ユーザID」や「パスワード」)を付け付ける(ステップS101)。入出力部22は、受け付けた認証情報を認証プラグインPaのロジック部10が有する処理部13(認証部に該当)へと渡し、利用者の認証許可判定を指示する(ステップS102)。
【0068】
情報処理装置100では、認証プラグインPaのロジック部10が有する処理部13により、認証情報に基づき、利用者の認証許可判定が行われる(ステップS201)。処理部13は、認証結果をプラグインP1のUI部20が有する通知部211へと渡す(ステップS202)。通知部211は、dispatchEventメソッドにより、認証結果をイベントとして通知する(ステップS203)。
【0069】
通知部211は、具体的に次のような処理を行う。通知部211は、dispatchEventメソッドにイベントオブジェクト(loginEvent)を指定し呼び出す。その結果、dispatchEventメソッドは、イベントを受信するためにaddEventListenerメソッドを介して登録されたリスナー(イベント受信先)に対して、指定イベントオブジェクトをブロードキャストする。このとき、メモリ上には、イベントを受信するためにaddEventListenerメソッドを介して登録されたプラグインP2(連携先)が参照可能なライブラリ形式で、認証結果が定義されたイベントクラス(loginEvent{認証OK})が生成される。
【0070】
なお、addEventListenerメソッドでは、ブロードキャスト時の受信イベントに対応するイベントオブジェクト(eventObj)と、イベント受信時の実行処理(action)とを指定することで、リスナーを登録できる。よって、addEventListenerメソッドにより、連携先のプラグインP2を、プラグインP1の指定イベントオブジェクト(loginEvent)と、プラグインP1からのイベント受信時の実行処理(dispaly)とを指定して登録しておけば、プラグイン連携時の画面遷移が可能となる。具体的には、次のように処理され画面遷移する。
【0071】
情報処理装置100では、プラグインP2のUI部20が有する受信部212により、プラグインP1からの認証結果通知を受信する(ステップS301)。このとき、受信部212は、イベントクラスから定義された認証結果を取得する。
【0072】
続いて、受信部212は、イベント受信時の実行処理(display)に従って、同UI部20が有する入出力部22に認証結果を渡し、認証結果を反映した画面表示を指示する(ステップS302)。これにより、プラグインP1からプラグインP2へと画面遷移(画面1→2)が指示される。
【0073】
情報処理装置100では、プラグインP2のUI部20が有する入出力部22により、表示画面が生成される(ステップS303)。その結果、表示装置102には、認証結果が反映されたプラグインP2の操作画面(画面2)が表示される。
【0074】
以上のように、本実施形態に係る情報処理装置100では、プラグインPのロジック部10でなくUI部20により、プラグイン連携時の画面遷移が制御され、ロジック部10による処理結果がUI部20を介して連携先へと伝達されることで、画面遷移を伴うプラグイン連携が実現される。
【0075】
《変形例》
図7に示した機能構成では、連携元のプラグインP1が有するUI部20から連携先のプラグインP2が有するUI部20に対して情報を通知する(一方向に情報伝達を行う)ことでプラグイン連携を実現している。
【0076】
しかし、プラグイン連携機能には、プラグイン間において双方向に情報伝達を行うことで連携動作する構成も考えられる。つまり、連携先と連携元とが入れ替わる構成も考えられる。
【0077】
以下には、変形例として、プラグイン間において双方向の情報伝達を行うプラグイン連携機能について説明する。
【0078】
図9は、本変形例に係るプラグイン連携の動作例を示す図である。
本変形例に示すプラグイン連携機能では、例えば、図9に示すような、プラグイン間において双方向に情報伝達を行う連携動作を実現することができる。
【0079】
まず、プラグインP1の画面W1には、プラグインP1のUI部20により、識別子(ID)によりグループ化された3つの設定値(値1,値2,値3)が一覧表示されている。プラグインP1は、利用者による画面W1上の[追加]ボタン押下を受けて、新たな設定値を保存領域(データエリア)に追加する追加イベントを、UI部20からプラグインP2のUI部20に通知する(図中の(1))。
【0080】
プラグインP2は、追加イベントの通知を受けて、設定値を入力する画面W2を表示し、プラグインP1からプラグインP2へと画面が遷移する。プラグインP2は、利用者による画面W2上の識別子及び設定値(ID:003,値1:G,値2:H,値3:I)入力と、[保存]ボタン押下とを受けて、UI部20から保存処理の指示を受け付けたロジック部10により、設定値を保存領域に追加・保存する(図中の(2))。その保存結果[成功/失敗]は、ロジック部10からUI部20へと渡される(図中の(3))。その結果、UI部20は、保存結果[成功/失敗]及び保存内容[003,G,H,I]を、保存結果イベントとして、プラグインP1のUI部20に通知する(図中の(4))。
【0081】
プラグインP1は、保存結果イベントの通知を受けて、追加された設定値を含む一覧画面W3を表示し、プラグインP2からプラグインP1へと画面が遷移する。これにより、プラグインP1の表示画面が更新される(画面W1→画面W3)。
【0082】
図10は、本変形例に係る情報処理装置100が有する機能構成例を示す図である。
本変形例に係るプラグイン連携機能は、図7と図10との比較からも分かるように、UI部20の画面遷移制御部21が、通知部211及び受信部212の両方を有している。本変形では、このような機能構成により、プラグイン間において双方向に情報伝達を行うことができる。
【0083】
本変形例に係るプラグイン連携機能の処理手順は、次の通りである。
図11は、本変形例に係るプラグイン連携の詳細な処理手順例を示すシーケンス図である。なお、図11には、図9に示した連携動作時の処理手順例が示されている。
【0084】
図11に示すように、情報処理装置100では、プラグインP1のUI部20が有する入出力部22より、新たな設定値(データ)の追加命令([追加]ボタン押下)を受け付ける(ステップS401)。入出力部22は、受け付けたデータ追加の通知をUI部20が有する通知部211に指示する(ステップS402)。通知部211は、dispatchEventメソッドにより、データ追加イベントを通知する(ステップS403)。
【0085】
通知部211は、具体的に次のような処理を行う。通知部211は、dispatchEventメソッドにイベントオブジェクト(addEvent)を指定し呼び出す。その結果、dispatchEventメソッドは、イベントを受信するためにaddEventListenerメソッドを介して登録されたリスナー(プラグイン2)に対して、指定イベントオブジェクトをブロードキャストする。このとき、メモリ上には、イベントを受信するためにaddEventListenerメソッドを介して登録されたプラグインP2(連携先)が参照可能なライブラリ形式で、データ追加命令が定義されたイベントクラス(addEvent{x})が生成される。
【0086】
情報処理装置100では、プラグインP2のUI部20が有する受信部212により、プラグインP1からのデータ追加通知を受信する(ステップS501)。このとき、受信部212は、イベントクラスから定義されたデータ追加命令を取得する。
【0087】
続いて、受信部212は、イベント受信時の実行処理(input)に従って、同UI部20が有する入出力部22に、識別子及び設定値の入力を受け付ける画面表示を指示する(ステップS502)。これにより、プラグインP1からプラグインP2へと画面遷移(画面1→2)が指示される。
【0088】
入出力部22は、表示画面を介して入力された識別子及び設定値(入力情報)を受け付け(ステップS503)、受け付けた入力情報[003,G,H,I]をプラグインP2のロジック部10が有する処理部13に渡し、保存処理の実行を指示する(ステップS504)。
【0089】
処理部13は、受け取った入力情報を保存領域に保存し(ステップS505)、保存結果[成功]及び保存内容[ID:003,値1:G,値2:H,値3:I]を、UI部20が有する通知部211に渡し、実行結果の通知を指示する(ステップS506)。通知部211は、dispatchEventメソッドにより、実行結果イベントを通知する(ステップS507)。
【0090】
通知部211は、具体的に次のような処理を行う。通知部211は、dispatchEventメソッドにイベントオブジェクト(saveEvent)を指定し呼び出す。その結果、dispatchEventメソッドは、イベントを受信するためにaddEventListenerメソッドを介して登録されたリスナー(プラグイン1)に対して、指定イベントオブジェクトをブロードキャストする。このとき、メモリ上には、イベントを受信するためにaddEventListenerメソッドを介して登録されたプラグインP1(連携先)が参照可能なライブラリ形式で、実行結果(結果[成功]の場合は保存内容)が定義されたイベントクラス(saveEvent{003,G,H,I})が生成される。
【0091】
情報処理装置100では、プラグインP1のUI部20が有する受信部212により、プラグインP2からの実行結果通知を受信する(ステップS601)。このとき、受信部212は、イベントクラスから定義された実行結果を取得する。
【0092】
続いて、受信部212は、イベント受信時の実行処理(display)に従って、同UI部20が有する入出力部22に実行結果を渡し、実行結果を反映した画面表示を指示する(ステップS602)。これにより、プラグインP2からプラグインP1へと画面遷移(画面2→1)が指示される。
【0093】
情報処理装置100では、プラグインP1のUI部20が有する入出力部22により、表示画面(設定値の一覧画面)が生成される(ステップS603)。その結果、表示装置102には、新たに追加された設定値を含む実行結果が反映されたプラグインP1の操作画面(画面1)が表示される。
【0094】
<まとめ>
以上のように、本実施形態に係る情報処理装置100によれば、連携元のプラグインP1のUI部20から連携先のプラグインP2のUI部20に対してロジック部10の処理結果を通知し、遷移後の画面表示を指示する。
【0095】
これによって、本実施形態に係る情報処理装置100では、ロジック部10でなくUI部20により、プラグイン連携時の画面遷移が制御され、ロジック部10による処理結果がUI部20を介して連携先へと伝達される。また、プラグイン連携時の情報伝達は、プラグイン間において、連携元から連携先への一方向だけでなく双方向でも行われる。
【0096】
このように、本実施形態に係る情報処理装置100では、プラグインPが有するロジック部10とUI部20との独立性が保たれた構成でプラグイン間の連携動作が行える。
【0097】
ここまで、上記実施形態の説明を行ってきたが、上記実施形態に係る情報処理装置100が有する「プラグイン連携機能」は、図を用いて説明を行った各処理手順を、動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムが、CPU106により実行されることで実現される。
【0098】
上記プログラムは、コンピュータが読み取り可能な記録媒体103aに格納することができる。上記記録媒体103aには、例えば、フロッピー(登録商標)ディスク、CD(Compact Disk)、及びDVD(Digital Versatile Disk)、ならびにSDメモリカード(SD Memory Card)及びUSB(Universal Serial Bus)メモリなどがある。
【0099】
よって、上記プログラムは、上記記録媒体103aに記憶させることで、記録媒体103aを読み取り可能なドライブ装置103などを介して情報処理装置100にインストールすることができる。また、情報処理装置100は、インタフェース装置107を備えていることから、インターネットなどの電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。
【0100】
また、上記実施形態では、プラグインPが有するUI部20の間で行うプラグイン連携時のイベント処理に、ActionScript(Flashに使用されるプログラミング言語)のEventDispatcherクラスに属するメソッドを用いた場合について説明を行ったが、この限りでない。
【0101】
最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0102】
10 ロジック部(プラグインロジック)
11 画面遷移制御部(ロジック部側)
12 認証部
13 処理部
20 UI部(プラグインUI)
21 画面遷移制御部(UI部側)
211 通知部(:プラグイン1,:プラグイン2)
212 受信部(:プラグイン1,:プラグイン2)
22 入出力部(:プラグイン1,:プラグイン2)
100 情報処理装置
101 入力装置
102 表示装置
103 ドライブ装置(a:記録媒体)
104 RAM(揮発性の半導体メモリ)
105 ROM(不揮発性の半導体メモリ)
106 CPU(中央処理装置)
107 インタフェース装置(NIC:Network I/F Card)
108 HDD(不揮発性の記憶装置)
AP アプリケーション
Pn プラグイン
PF プラットフォーム
【先行技術文献】
【特許文献】
【0103】
【特許文献1】特開2009−54027号公報

【特許請求の範囲】
【請求項1】
複数のプラグインを有するアプリケーションが動作する情報処理装置であって、
前記プラグインが、プラグインの表示画面を生成するUI(User Interface)部と、プラグインの機能を実現するための処理を行うロジック部と、を有し、
前記UI部が、同プラグインのロジック部による処理結果を他のプラグインに通知する通知手段、及び/又は前記処理結果を他のプラグインから受信する受信手段、を有し、
プラグイン間において、
連携元のプラグインが、
前記通知手段により、連携先のプラグインのUI部に対して、同プラグインのロジック部による処理結果を通知し、
前記連携先のプラグインが、
前記受信手段により、前記通知手段が通知した処理結果を受信し、受信した処理結果に基づき、同プラグインのUI部により表示画面を生成することを特徴とする情報処理装置。
【請求項2】
前記通知手段は、
受信先として登録された連携先のプラグインが前記処理結果を取得可能な通知イベントを生成し、前記連携先のプラグインに対してブロードキャストすることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記受信手段は、
前記通知手段によるブロードキャストにより受信した通知イベントから、連携元のプラグインのロジック部による処理結果を取得することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記連携先のプラグインは、
前記通知手段により、前記連携元のプラグインに対して、同プラグインのロジック部による処理結果を通知し、
前記連携元のプラグインは、
前記受信手段により、前記通知手段が通知した処理結果を受信し、受信した処理結果に基づき、同プラグインのUI部により表示画面を生成することを特徴とする請求項1ないし3のいずれか一項に記載の情報処理装置。
【請求項5】
プラグインの表示画面を生成するUI部と、プラグインの機能を実現するための処理を行うロジック部と、を有する複数のプラグインで構成されるアプリケーションが動作する情報処理装置におけるプラグイン連携方法であって、
プラグイン間において、
連携元のプラグインが、
同プラグインのUI部により、連携先のプラグインのUI部に対して、同プラグインのロジック部による処理結果を通知し、
前記連携先のプラグインが、
同プラグインのUI部により、前記連携元のプラグインが通知した処理結果を受信し、受信した処理結果に基づき、同プラグインの表示画面を生成することを特徴とするプラグイン連携方法。
【請求項6】
プラグインの表示画面を生成するUI部と、プラグインの機能を実現するための処理を行うロジック部と、を有する複数のプラグインで構成されるアプリケーションが動作する情報処理装置におけるプラグイン連携プログラムであって、
コンピュータを、
プラグイン間において、
連携元のプラグインが、
同プラグインのUI部により、連携先のプラグインのUI部に対して、同プラグインのロジック部による処理結果を通知し、
前記連携先のプラグインが、
同プラグインのUI部により、前記連携元のプラグインが通知した処理結果を受信し、受信した処理結果に基づき、同プラグインの表示画面を生成するように動作させるためのプラグイン連携プログラム。
【請求項7】
請求項6に記載のプログラムを記憶した、コンピュータが読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−154472(P2011−154472A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−14654(P2010−14654)
【出願日】平成22年1月26日(2010.1.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】