JP5927930B2 - Information processing apparatus and program - Google Patents
Information processing apparatus and program Download PDFInfo
- Publication number
- JP5927930B2 JP5927930B2 JP2012008596A JP2012008596A JP5927930B2 JP 5927930 B2 JP5927930 B2 JP 5927930B2 JP 2012008596 A JP2012008596 A JP 2012008596A JP 2012008596 A JP2012008596 A JP 2012008596A JP 5927930 B2 JP5927930 B2 JP 5927930B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- module
- identification information
- program module
- request
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 17
- 230000006870 function Effects 0.000 claims description 218
- 230000004044 response Effects 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 16
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 18
- 230000004913 activation Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000001404 mediated effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、情報処理装置及びプログラムに関する。 The present invention relates to an information processing apparatus and a program.
従来、ウィジェット(Widget)若しくはデスクトップウィジェット、又はガジェット(Gadget)等と呼ばれる、簡易なアプリケーションがインターネット等を介して提供されている。以下、このようなアプリケーションの呼称を「ウィジェット」として統一する。 Conventionally, simple applications called widgets, desktop widgets, gadgets, and the like are provided via the Internet or the like. Hereinafter, such application names will be unified as “widgets”.
一般的なウィジェットは、Webページと同様に、HTML(HyperText Markup Language)若しくはXML(eXtensible Markup Language)、及びJavaScript(登録商標)若しくはVBScript等(以下、単に「スクリプト」として総称する。)を利用して実装されており、Webブラウザベースのプラットフォーム上で実行される。したがって、ウィジェットのみによって提供される機能は、HTTP通信を介した情報の取得や、GUI(Graphical User Interface)の提供等に限られている。なお、Webブラウザベースのプラットフォームとは、Webブラウザの基盤機能を有するプラットフォーム(以下、「ウィジェットランタイム」という。)をいう。Webブラウザの基盤機能とは、クライアントとしてHTTP通信を実行する機能、HTML又はXML等を解釈して画面を描画する機能、及びスクリプトを解釈して実行する機能等をいう。 Similar to Web pages, general widgets use HTML (HyperText Markup Language) or XML (eXtensible Markup Language), JavaScript (registered trademark), VBSscript, and the like (hereinafter, simply referred to as “script”). And is executed on a web browser-based platform. Therefore, the functions provided only by the widget are limited to acquisition of information through HTTP communication, provision of GUI (Graphical User Interface), and the like. The web browser-based platform refers to a platform having a web browser basic function (hereinafter referred to as “widget runtime”). The basic function of the Web browser refers to a function for executing HTTP communication as a client, a function for drawing a screen by interpreting HTML or XML, a function for interpreting and executing a script, and the like.
ウィジェットランタイムの中には、より高度な機能を提供可能なウィジェットを実装可能とするために、エージェントの備える機能をウィジェットに利用可能としている。 In the widget runtime, in order to be able to implement a widget that can provide more advanced functions, the functions of the agent can be used for the widget.
ここでいうエージェントとは、WebAPIを介して機能を提供するプログラムをいう。具体的には、エージェントは、HTTPリクエストに応じ、当該HTTPリクエストにおいて指定されたURL(Uniform Resource Locator)に対応する機能を提供するプログラムをいう。すなわち、WebAPIとは、URLの指定によって機能の実行要求を受け付けるAPI(Application Program Interface)をいう。 As used herein, an agent refers to a program that provides a function via a Web API. Specifically, the agent refers to a program that provides a function corresponding to a URL (Uniform Resource Locator) specified in the HTTP request in response to the HTTP request. That is, the Web API is an API (Application Program Interface) that accepts a function execution request by specifying a URL.
図1は、ウィジェット、ウィジェットランタイム、及びエージェントの関係を説明するための図である。 FIG. 1 is a diagram for explaining the relationship between a widget, a widget runtime, and an agent.
図1において、ウィジェット501aは、ウィジェットランタイム502に対してURL(A)を指定して、機能Aの実行要求を行っている。ウィジェット501bは、ウィジェットランタイム502に対してURL(B)を指定して、機能Bの実行要求を行っている。ウィジェットランタイム502は、URL(A)の指定に応じ、URL(A)が指定されたHTTPリクエストをエージェント503に送信する。ウィジェットランタイム502は、また、URL(B)の指定に応じ、URL(B)が指定されたHTTPリクエストをエージェント503に送信する。
In FIG. 1, the
エージェント503は、URL(A)が指定されたHTTPリクエストを受信すると、機能Aを実行する。エージェント503は、また、URL(B)が指定されたHTTPリクエストを受信すると、機能Bを実行する。
When the
なお、エージェント503は、ウィジェット及びウィジェットランタイムと同じPC(Personal Computer)等にインストールされる。また、エージェント503は、例えば、Java(登録商標)等、高度な処理が可能なプログラミング言語によって実装される。したがって、図1に示されるような構成によれば、ウィジェット501a又は502aは、HTML又はXML、及びスクリプト等では実装できない高度な機能A又は機能Bをユーザに提供することができる。
The
しかしながら、従来、エージェントの機能は、エージェントの内部に固定的に実装されていた。従って、ウィジェットに固有な新たな機能を提供したい場合、エージェントに関して機能強化を行い、エージェントの再インストール等が必要とされた。また、新たな機能を提供するウィジェットの配布時には、機能強化が行われたエージェントの配布も必要とされ、ユーザにとって、当該ウィジェットの導入の難易度が高くなってしまう。その結果、当該ウィジェットの導入が敬遠され、開発者にとっては、せっかく開発したウィジェットがあまり利用されないという状況が発生する可能性が有る。 However, conventionally, the agent function has been fixedly installed inside the agent. Therefore, in order to provide a new function unique to the widget, it has been necessary to enhance the function of the agent and to reinstall the agent. In addition, when distributing a widget that provides a new function, it is also necessary to distribute an agent whose function has been enhanced, which makes it difficult for users to introduce the widget. As a result, the introduction of the widget is avoided, and there is a possibility that the developer may not use the developed widget very much.
また、機能強化に伴うバグ等により、これまで安定して動作していたエージェントの動作が不安定になる可能性もある。その結果、機能強化とは無関係なウィジェットまで、当該バグの影響を受け、動作が不安定となってしまう可能性がある。 In addition, there is a possibility that the operation of an agent that has been operating stably until now will become unstable due to a bug accompanying the enhancement of functions. As a result, even widgets that are unrelated to the function enhancement may be affected by the bug and become unstable.
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに機能を提供するプログラムに関して機能拡張の簡便性及び安全性を向上させることを目的とする。 The present invention has been made in view of the above points, and it is an object of the present invention to improve the convenience and safety of function expansion with respect to programs that provide functions to other programs.
そこで上記課題を解決するため、情報処理装置は、機能の識別情報が指定された機能の実行要求の受信に応じ、当該識別情報に係る機能を実行する第一の機能実行手段と、前記第一の機能実行手段とは異なるプロセスにおいて機能し、前記識別情報に基づいて前記第一の機能実行手段より転送された実行要求に指定されている前記識別情報に係る機能を実行する第二の機能実行手段とを有し、前記第一の機能実行手段は、受信された機能の実行要求に指定されている前記識別情報がプログラムモジュールの追加機能を示す場合は、当該実行要求に指定されている前記プログラムモジュールを前記第二の機能実行手段に追加し、前記第二の機能実行手段は、前記第一の機能実行手段より転送された前記実行要求に指定された前記識別情報に係る機能を、当該第二の機能実行手段に追加された前記プログラムモジュールに実行させる。 Accordingly, in order to solve the above-described problem, the information processing apparatus includes: a first function execution unit that executes a function related to the identification information in response to reception of a function execution request for which the function identification information is specified; A second function execution that functions in a process different from the function execution means of the first and executes the function related to the identification information specified in the execution request transferred from the first function execution means based on the identification information And when the identification information specified in the received function execution request indicates an additional function of the program module, the first function executing means is specified in the execution request. A program module is added to the second function execution means, and the second function execution means relates to the identification information specified in the execution request transferred from the first function execution means. The ability to execute the program module that is added to the second function executing unit.
他のプログラムに機能を提供するプログラムに関して機能拡張の簡便性及び安全性を向上させることができる。 The convenience and safety of function expansion can be improved with respect to programs that provide functions to other programs.
以下、図面に基づいて本発明の実施の形態を説明する。図2は、本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。図2の情報処理装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 2 is a diagram illustrating a hardware configuration example of the information processing apparatus according to the embodiment of the present invention. The
情報処理装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
A program for realizing processing in the
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って情報処理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
The
図3は、情報処理装置の基本機能に関するソフトウェア構成例を示す図である。図3において、情報処理装置10は、ウィジェット11、ウィジェットランタイム12、及びエージェント13等を含む。
FIG. 3 is a diagram illustrating a software configuration example related to the basic functions of the information processing apparatus. In FIG. 3, the
ウィジェット11は、一般的に、ウィジェット(Widget)若しくはデスクトップウィジェット、又はガジェット(Gadget)等と呼ばれる、簡易なアプリケーションプログラムである。ウィジェット11は、例えば、HTML(HyperText Markup Language)若しくはXML(eXtensible Markup Language)、及びJavaScript(登録商標)若しくはVBScript(以下、単に「スクリプト」として総称する。)等を利用して実装される。 The widget 11 is a simple application program generally called a widget, a desktop widget, or a gadget. The widget 11 is implemented using, for example, HTML (HyperText Markup Language) or XML (eXtensible Markup Language), JavaScript (registered trademark) or VBSscript (hereinafter simply referred to as “script”) and the like.
ウィジェットランタイム12は、ウィジェット11の実行環境を実現するソフトウェアプログラムである。ウィジェットランタイム12は、クライアントとしてHTTP通信を実行する機能、HTML又はXML等を解釈して画面を描画する機能、及びスクリプトを解釈して実行する機能等、一般的なWebブラウザが有している機能を備える。ウィジェットランタイム12は、斯かる機能によって、ウィジェット11の画面の表示、ウィジェット11に定義されたスクリプトの実行等を行う。
The
エージェント13は、WebAPIを介して機能を提供するプログラム群である。具体的には、エージェント13は、クライアントからのHTTPリクエストに応じ、当該HTTPリクエストにおいて指定されたURL(Uniform Resource Locator)に対応する機能を提供する。すなわち、WebAPIとは、URLを機能の識別情報として、機能の実行要求を受け付けるAPI(Application Program Interface)をいう。
The
本実施の形態では、ウィジェット11よりURLの指定を受け付けるウィジェットランタイム12が、エージェント13に対するクライアントに相当する。
In the present embodiment, the
図3において、エージェント13は、一以上のプログラムモジュール131、モジュールプラットフォーム132、及びモジュールランタイム133等を含む。
In FIG. 3, the
各プログラムモジュール131は、それぞれに固有の機能を実行するプログラムモジュールである。同図には、プログラムモジュール131の一例として、Aモジュール131a、Bモジュール131b、WebAPIモジュール131w、及び拡張モジュール131e等が例示されている。このうち、WebAPIモジュール131w及び拡張モジュール131eは、特別な機能及び役割を有するプログラムモジュール131である。
Each
WebAPIモジュール131wは、他のプログラムモジュール131の機能に対するインタフェースを、WebAPIとして公開する役割を担う。具体的には、WebAPIモジュール131wは、所定のポート番号のポートを開設し、当該ポート宛のHTTPリクエストに指定されたURLに対応するプログラムモジュール131を呼び出す。すなわち、各プログラムモジュール131には、URLが割り当てられ、WebAPIモジュール131wは、各プログラムモジュール131のURLを、各プログラムモジュール131に対応付けて管理する。
The
拡張モジュール131eは、エージェント13には実装されていない機能を実現するプログラムモジュール131の追加機能を実現するプログラムモジュール131である。プログラムモジュール131の追加の意味については、後述される。拡張モジュール131eによって、エージェント13の機能拡張が簡便かつ安全に行われる。
The
モジュールランタイム133は、モジュールの実行環境を提供する。モジュールランタイム133の一例として、Java(登録商標)VM(Virtual Machine)が挙げられる。
The
モジュールプラットフォーム132は、モジュールランタイム133が提供する実行環境におけるプログラムのモジュール化又は部品化を容易にするためのプラットフォームである。モジュールプラットフォーム132の一例として、OSGi(Open Services Gateway Initiative)プラットフォームが挙げられる。OSGiプラットフォームとは、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術に基づいて作成されたプログラムモジュール131の実行環境を提供するソフトウェアプラットフォームである。OSGiプラットフォーム上において、Java(登録商標)言語のプログラムモジュールは「バンドル」と呼ばれるソフトウェア部品の形で実装される。一つのバンドルは、それぞれ独立して動的に(情報処理装置10の再起動を要することなく)インストール可能である。したがって、モジュールプラットフォーム132として、OSGiプラットフォームが採用される場合、本実施の形態における各プログラムモジュール131は、バンドルとして実装される。
The
なお、図3において、ウィジェットランタイム12及びエージェント13は、相互に異なるプロセスとして動作する。ウィジェット11は、ウィジェットランタイム12のプロセス上で起動される。各プログラムモジュール131は、エージェント13上のプロセス上で、スレッドとして起動される。
In FIG. 3, the
以下、情報処理装置10において実行される処理手順について説明する。図4は、プログラムモジュールの機能に対するインタフェースをWebAPIとして公開するための処理手順の第一の例を説明するためのシーケンス図である。例えば、図4の処理は、エージェント13のプロセスの起動時に実行される。
Hereinafter, a processing procedure executed in the
ステップS101において、モジュールプラットフォーム132は、モジュールプラットフォーム132に登録されている各プログラムモジュール131に対して、起動指示を行う。起動とは、例えば、各プログラムモジュール131をスレッドとして起動させることである。
In step S <b> 101, the
各プログラムモジュール131は、起動指示に応じ、当該プログラムモジュール131の機能を識別するURLと、当該機能に関するアドレス情報(例えば、ポインタ等)とをWebAPIモジュール131wに通知する(S102)。当該通知は、例えば、WebAPIモジュール131wが有する所定のメソッドを呼び出すことにより行われる。なお、URLは、当該プログラムモジュール131の機能に対するインタフェースをエージェント13の外部に公開するために利用される識別情報である。
Each
アドレス情報(ポインタ等)は、エージェント13の内部において、プログラムモジュール131の呼び出し機構の実装上の都合により、必要となる識別情報である。URLは、静的な情報であり、アドレス情報は、動的な識別情報であるともいえる。アドレス情報は、プログラムモジュール131が起動されるたびに変化する可能性が有るからである。
The address information (pointer or the like) is identification information that is necessary inside the
例えば、拡張モジュール131eからは、「/exmodule」といったURLが通知される。すなわち、ここで通知されるURLは、WebAPIモジュール131wが規定するルートのURLに対する相対パスである。本実施の形態において、WebAPIモジュール131wが規定するルートのURLは、「<host>:<port>/platform」であるとする。<host>は、実際には、具体的なホスト名又はIPアドレスによって置換される。<port>は、実際には、具体的なポート番号によって置換される。
For example, the
続いて、WebAPIモジュール131wは、通知されたURLとアドレス情報とを対応付けて、メモリ装置103に記憶しておく(S103)。その結果、当該URLに係るプログラムモジュール131のインタフェースは、WebAPIとして公開されたことになる。WebAPIモジュール131wは、当該URLが指定されたHTTPリクエストの受信に応じ、当該URLに対応するアドレス情報に基づいて、当該URLに対応するプログラムモジュール131を呼び出すことができるからである。
Subsequently, the
なお、例えば、拡張モジュール131eのWebAPIに対するURLは、エージェント13の外部に対しては、「<host>:<port>/platform/exmodule」として公開される。換言すれば、ウィジェット11が、拡張モジュール131eの機能を利用したい場合、URLとして「<host>:<port>/platform/exmodule」が指定されたHTTPリクエストを、WebAPIモジュール131wに対して送信すればよい。
For example, the URL for the Web API of the
続いて、WebAPIモジュール131wは、各プログラムモジュール131に対して応答を返却する(S104)。各プログラムモジュール131は、モジュールプラットフォーム132に応答を返却する(S105)。
Subsequently, the
続いて、図4に対する変形例について説明する。図5は、プログラムモジュールの機能に対するインタフェースをWebAPIとして公開するための処理手順の第二の例を説明するためのシーケンス図である。図5中、図4と同一又は対応するステップには、図4と同じステップ番号又は図4のステップ番号に対して枝番が付与されたステップ番号を付し、その説明は適宜省略する。 Subsequently, a modified example with respect to FIG. 4 will be described. FIG. 5 is a sequence diagram for explaining a second example of a processing procedure for publishing an interface for a function of a program module as a Web API. In FIG. 5, steps that are the same as or correspond to those in FIG. 4 are given the same step numbers as those in FIG. 4 or step numbers given branch numbers with respect to the step numbers in FIG.
図5では、ステップS102及びS104におけるWebAPIモジュール131wと各プログラムモジュール131とのやり取りが、モジュールプラットフォーム132によって仲介される例が示されている。
FIG. 5 shows an example in which the exchange between the
すなわち、各プログラムモジュール131の機能に対するURLと、当該機能に関するアドレス情報とは、モジュールプラットフォーム132を介して、各プログラムモジュール131からWebAPIモジュール131wに通知される(S102−1、S102−2)。
That is, the URL for the function of each
また、WebAPIモジュール131wからの応答は、モジュールプラットフォーム132を介して、各プログラムモジュール131へ返却される(S104−1、S104−2)。
Also, the response from the
図5に示される処理手順によれば、各プログラムモジュール131について、WebAPIモジュール131wへの依存度を低減させることができる。すなわち、各プログラムモジュール131は、WebAPIモジュール131wの存在を意識することなく、自らの機能に対するインタフェースをWebAPIとして公開することができる。
According to the processing procedure shown in FIG. 5, the dependency of each
なお、新たなプログラムモジュール131がモジュールプラットフォーム132上に追加された場合、追加されたタイミングで当該プログラムモジュール131に関して、図4又は図5において説明した処理が実行される。その結果、当該プログラムモジュール131のインタフェースは、自動的にWebAPIとして公開される。
When a
続いて、拡張モジュール131eの機能について説明する。上記したように、拡張モジュール131eは、プログラムモジュール131の追加機能を有する。当該追加機能は、例えば、次のように利用される。
Next, functions of the
図6は、拡張モジュールが有するプログラムモジュールの追加機能の利用形態の一例を示す図である。 FIG. 6 is a diagram illustrating an example of a usage form of the additional function of the program module included in the extension module.
図6において、ウィジェット11aは、エージェント13が有していない機能を実現するプログラムモジュール131であるCモジュール131cの機能を必要とするウィジェット11である。この場合、例えば、ウィジェット11aの配布時には、ウィジェット11aと共にCモジュール131cが配布されることが考えられる。ウィジェット11の配布形態の一例として、例えば、所定のサイトからのウィジェット11のダウンロードが挙げられる。
In FIG. 6, the
ウィジェット11aは、起動されると、プログラムモジュール131の追加機能に対応するURL(すなわち、拡張モジュール131eに対するURL)と、Cモジュール131cの保存先のファイルパス名とを指定して、ウィジェットランタイム12にWebAPIの呼び出しを要求する(S201)。なお、Cモジュール131cの保存先のファイルパス名の代わりに、Cモジュール131cを特定可能なURLが指定されてもよい。
When the
ウィジェットランタイム12は、プログラムモジュール131の追加機能に対応するURL及び当該ファイルパス名が指定されたHTTPリクエストを、WebAPIモジュール131w宛に送信する(S202)。WebAPIモジュール131wは、当該URLに対応するプログラムモジュール131を呼び出す。上述したように、プログラムモジュール131の追加機能を示すURLに対応するプログラムモジュール131は、拡張モジュール131eである。したがって、ここでは、拡張モジュール131eが呼び出される(S203)。
The
拡張モジュール131eは、呼び出しに応じ、拡張エージェント13aを起動させる(S204)。拡張エージェント13aは、モジュールプラットフォーム132及びモジュールランタイム133に関して、エージェント13と同じプログラムを用いて、エージェント13とは異なるプロセスとして起動される。したがって、拡張エージェント13aは、エージェント13と同様に、モジュールプラットフォーム132a及びモジュールランタイム133aを含む。
In response to the call, the
但し、図6に示されるように、拡張モジュール131eが基本構成として有するプログラムモジュール131は、プロキシモジュール131pである。プロキシモジュール131pは、拡張モジュール131eと協調して(S205)、Cモジュール131cを、拡張エージェント13aのモジュールプラットフォーム132aに登録する(S206)。プロキシモジュール131pは、また、拡張モジュール131eと協調して、Cモジュール131cの機能に対するインタフェースをWebAPIとして公開するための処理を行う。
However, as illustrated in FIG. 6, the
このように、Cモジュール131cは、エージェント13ではなく、拡張エージェント13aに登録される。ウィジェット11の都合でプログラムモジュール131を拡張エージェント13aに追加可能となることで、ウィジェット11の実装上の制限を超えた機能の実現が可能となる。ここで、Cモジュール131cがエージェント13ではなく、拡張エージェント13aに登録されるのは、次のような理由による。
Thus, the
すなわち、プログラムモジュール131の自由な追加が許容されると、テストが不十分なプログラムモジュール131等、動作の安定性が保証されていないプログラムモジュール131も、エージェント13に登録される可能性がある。このようなプログラムモジュール131がエージェント13に登録されると、当該プログラムモジュール131の不具合やメモリの消費等によって、エージェント13内の他のプログラムモジュール131の動作にも悪影響が及ぶ可能性がある。エージェント13に含まれる各プログラムモジュール131は、同一のプロセス上で動作するため、いずれかのプログラムモジュール131による不正動作によって当該プロセスが終了してしまうと、他のプログラムモジュール131も動作不能となってしまうからである。
That is, if free addition of the
そこで、本実施の形態では、ウィジェット11から追加が要求されたプログラムモジュール131に関しては、エージェント13とは別プロセスの拡張エージェント13aに登録されるのである。そうすることで、エージェント13のプロセスの安定性又は安全性を確保することができる。
Therefore, in the present embodiment, the
図6において説明した、ウィジェット11によるプログラムモジュール131の追加要求に応じて実行される処理について、シーケンス図を用いて説明する。
The process executed in response to the request for adding the
図7は、ウィジェットからのプログラムモジュールの追加要求に応じて実行される処理概要を説明するためのシーケンス図である。括弧内のステップ番号は、図6において対応するステップのステップ番号を示す。図7においても、新たなプログラムモジュール131の追加を要求するウィジェット11は、ウィジェット11aであるとする。また、新たなプログラムモジュール131は、Cモジュール131cであるとする。なお、図7においては、WebAPIモジュール131w、拡張モジュール131e、及びプロキシモジュール131pは、エージェント13又は拡張エージェント13aとして抽象化されて示されている。
FIG. 7 is a sequence diagram for explaining an outline of processing executed in response to a program module addition request from a widget. The step number in parentheses indicates the step number of the corresponding step in FIG. Also in FIG. 7, it is assumed that the widget 11 that requests addition of a
ウィジェット11aは、起動されると、プログラムモジュール131の追加機能に対応するURLと、Cモジュール131cの保存先のファイルパス名とを指定して、ウィジェットランタイム12にWebAPIの呼び出しを要求する(S301)。ここでは、当該URLとして、「<host>:<port>/platoform/exmodule」が指定される。なお、Cモジュール131cは、必ずしもウィジェット11aと共に配布されなくてもよい。図6は、Cモジュール131cの配布形態の一例を示したものに過ぎない。
When the
続いて、ウィジェットランタイム12は、当該URL及び当該ファイルパス名が指定されたHTTPリクエストを、エージェント13に送信する(S302)。当該HTTPリクエストに応じ、エージェント13は、拡張エージェント13aをプロセスとして起動させる(S303)。
Subsequently, the
続いて、エージェント13は、Cモジュール131cのファイルパス名を指定して、Cモジュール131cの追加要求を拡張エージェント13aに対して送信する(S304)。当該追加要求に応じ、拡張エージェント13aは、Cモジュール131cを拡張エージェント13a上のプログラムモジュール131として登録する。続いて、拡張エージェント13aは、Cモジュール131cの追加の完了を示す応答を返信する(S305)。
Subsequently, the
続いて、エージェント13は、Cモジュール131cの起動要求を拡張エージェント13aに送信する(S306)。当該起動要求に応じ、拡張エージェント13aは、Cモジュール131cをスレッドとして起動させる。Cモジュール131cの起動に応じて、拡張エージェント13a上では、図4又は図5において説明したような処理が、Cモジュール131cに関して実行される。すなわち、Cモジュール131cより、Cモジュール131cの機能に対するURLと、当該機能に関するアドレス情報とが拡張エージェント13aに対して通知される。当該URLと当該アドレス情報との対応関係は、拡張エージェント13aにおいて管理される。
Subsequently, the
続いて、拡張エージェント13aは、当該URLを指定して、Cモジュール131cの機能に関して、WebAPIの登録要求をエージェント13に送信する(S307)。エージェント13は、当該URLと当該拡張エージェント13aに関する識別情報とを対応付けてメモリ装置103に記憶する(S308)。その結果、Cモジュール131cのインタフェースは、WebAPIとして公開されたことになる。すなわち、エージェント13は、当該URLが指定されたHTTPリクエストの受信に応じ、当該URLに対応する識別情報に係る拡張エージェント13aを呼び出すことができる。この際、拡張エージェント13aには、当該URLが通知される。拡張エージェント13aは、当該URLとアドレス情報とを対応付けて管理している。したがって、拡張エージェント13aは、当該URLに対応するアドレス情報に基づいて、Cモジュール131cを呼び出すことができる。
Subsequently, the
続いて、エージェント13は、Cモジュール131cのインタフェースがWebAPIとして登録されたことを示す応答を、拡張エージェント13aに返信する(S308)。当該応答に応じ、拡張エージェント13aは、Cモジュール131cの起動が完了したことを示す応答を、エージェント13に返信する(S309)。
Subsequently, the
続いて、エージェント13は、Cモジュール131cの追加の完了を示すHTTPレスポンスをウィジェットランタイム12に返信する(S310)。ウィジェットランタイム12は、Cモジュール131cの追加の完了を示す応答をウィジェット11aに返却する(S311)。
Subsequently, the
続いて、図7の処理内容をエージェント13内又は拡張エージェント13a内のプログラムモジュール131のレベルに細分化して説明する。
Next, the processing content of FIG. 7 will be described by subdividing it into the level of the
図8は、ウィジェットからのプログラムモジュールの追加要求に応じて実行される処理手順の第一の例を説明するためのシーケンス図である。括弧内のステップ番号は、図7において対応するステップのステップ番号を示す。なお、図8では、便宜上、ウィジェットランタイム12は省略されている。すなわち、図8において、ウィジェット11aと、WebAPIモジュール131wとの通信は、厳密には、ウィジェットランタイム12を経由して行われる。
FIG. 8 is a sequence diagram for explaining a first example of a processing procedure executed in response to a program module addition request from a widget. The step number in parentheses indicates the step number of the corresponding step in FIG. In FIG. 8, the
ステップS401において、WebAPIモジュール131wは、起動されたウィジェット11aからの要求に基づいて送信された、プログラムモジュール131の追加機能に対応するURLと、Cモジュール131cの保存先のファイルパス名とが指定されたHTTPリクエストを受信する(S401)。WebAPIモジュール131wは、プログラムモジュール131の追加機能に対応するURLに対応付けられているアドレス情報に基づいて、拡張モジュール131eを呼び出す(S402)。この際、拡張モジュール131eには、Cモジュール131cのファイルパス名が通知される。
In step S401, the
続いて、拡張モジュール131eは、モジュールプラットフォーム132aを含む拡張エージェント13aをプロセスとして起動させる(S403)。続いて、拡張モジュール131eは、Cモジュール131cのファイルパス名を指定して、Cモジュール131cの追加要求をモジュールプラットフォーム132aに対して送信する(S404)。当該追加要求に応じ、モジュールプラットフォーム132aは、Cモジュール131cをモジュールプラットフォーム132a上のプログラムモジュール131として登録する。登録に応じて、Cモジュール131cに対してIDが割り当てられる。当該IDを、以下「登録ID」という。ここでは、登録IDとして、「001」が割り当てられたこととする。モジュールプラットフォーム132aは、登録ID(「001」)を含む応答を、拡張モジュール131eに返信する(S405)。
Subsequently, the
拡張モジュール131eは、当該登録IDに基づいて、Cモジュール131cのルートURLを生成する。例えば、「/exmodule/001」が、当該ルートURLとして生成される。すなわち、拡張モジュール131eのURLの相対パス(「/exmodule」)に対して、Cモジュール131cの登録IDが追加された文字列が、Cモジュール131cのルートURLとされる。なお、Cモジュール131cのルートURLとは、Cモジュール131cの機能ではなく、Cモジュール131c自体を示すURLである。ルートURLは、例えば、Cモジュール131cの削除が行われる場合に、削除対象のCモジュール131cを特定するために用いられる。
The
拡張モジュール131eは、当該ルートURLをWebAPIとして登録することを、当該ルートURLと、拡張モジュール131eが有するプログラムモジュール131の追加機能に関するアドレス情報(例えば、ポインタ等)とを指定して、WebAPIモジュール131aに要求する(S406)。
The
続いて、WebAPIモジュール131wは、Cモジュール131cのルートURLと、拡張モジュール131eが有するプログラムモジュール131の追加機能に関するアドレス情報とを対応付けて、例えば、メモリ装置103に記憶する(S407)。これによって、ルートURLは、WebAPIとして公開される。なお、エージェント13の外部に対しては、Cモジュール131cのルートURLの絶対パスは、「<host>:<port>/platform/exmodule/001」となる。
Subsequently, the
続いて、WebAPIモジュール131wは、ルートURLがWebAPIとして登録されたことを示す応答を拡張モジュール131eに返信する(S408)。
Subsequently, the
なお、ここまででWebAPIとして登録又は公開されたのは、Cモジュール131cのルートURLであって、Cモジュール131cの機能に対するURLではない。したがって、例えば、ウィジェット11aは、この段階では、Cモジュール131cの機能を呼び出すことはできない。
Note that what has been registered or published as a Web API so far is the root URL of the
続いて、拡張モジュール131eは、Cモジュール131cの登録ID(「001」)を指定して、Cモジュール131cの起動要求をモジュールプラットフォーム132aに送信する(S409)。当該起動要求に応じ、モジュールプラットフォーム132aは、当該登録IDに基づいて特定されるCモジュール131cをスレッドとして起動させる(S410)。
Subsequently, the
Cモジュール131cは、起動されると、図4のステップS102と同様に、当該Cモジュール131cの機能に対するURLと、当該機能に関するアドレス情報(例えば、ポインタ等)とをプロキシモジュール131pに通知する(S411)。プロキシモジュール131pは、当該URLと、当該アドレス情報とを対応付けて、例えば、メモリ装置103に記憶する。ここでは、Cモジュール131cの機能に対するURLの相対パスは、「/001/functionC」であるとする。当該URLは、Cモジュール131cの登録IDに対して、「functionC」が付加されたものである。Cモジュール131cの機能に対する本来的な識別子は、「functionC」である。登録IDが付加されることにより、Cモジュール131cと他のモジュールとのURLの重複が回避される可能性を高めることができる。基本的に登録IDは、重複しないからである。
When activated, the
但し、当該URLに対して、登録IDが付加されなくてもよい。この場合、プロキシモジュール131pによって、URLの重複の有無がチェックされてもよい。URLの重複が検出された場合、プロキシモジュール131pは、別のURLの指定をCモジュール131cに対して要求してもよいし、プロキシモジュール131pが、別のURLを自動的に生成してもよい。
However, the registration ID may not be added to the URL. In this case, the
なお、プロキシモジュール131pは、拡張エージェント13a内のプログラムモジュール131からは、WebAPIモジュール131wと同様に見える。すなわち、プロキシモジュール131pは、拡張エージェント13a内のプログラムモジュール131に対して、WebAPIモジュール131wと同じインタフェース(メソッド)を公開する。したがって、Cモジュール131cも含めて各プログラムモジュール131は、自らが起動された環境が、モジュールプラットフォーム132であるのか又はモジュールプラットフォーム131aであるのかを意識することなく、所定のメソッドを呼び出せばよい。そうすることで、各プログラムモジュール131は、WebAPIモジュール131w又はプロキシモジュール131pに、当該プログラムモジュール131の機能に対するURLと、当該機能に関するアドレス情報とを通知することができる。
Note that the
続いて、プロキシモジュール131pは、Cモジュール131cの機能に対するURL(「/001/functionC」)を指定して、Cモジュール131cの機能に関して、WebAPIとしての登録要求を拡張モジュール131eに送信する(S412)。この際、プロキシモジュール131pに対する通信用の識別子が、当該URLと共にプロキシモジュール131pに通知されてもよい。プロキシモジュール131pに対する通信用の識別子とは、プロキシモジュール131pと、拡張モジュール131eとの通信において、拡張モジュール131eが、プロキシモジュール131pを識別するための識別子である。当該識別子の実体は、当該通信のプロトコルに依存する。但し、拡張モジュール131eにとって、当該識別子が既知である場合、当該識別子は通知されなくてもよい。なお、プロキシモジュール131pと拡張モジュール131eとの通信は、例えば、RMI(Remote Method Invocation)に基づいて行われてもよい。または、HTTPやSOAP(Simple Object Access Protocol)等、プログラム言語に非依存な通信プロトコルに基づいて行われてもよい。
Subsequently, the
なお、ステップS412において、Cモジュール131cのアドレス情報が通知されないのは、当該アドレス情報は、拡張エージェント13aのプロセス内において有効な値であり、エージェント13内においては、無効な値であるからである。
In step S412, the address information of the
続いて、拡張モジュール131eは、Cモジュール131cの機能に関して、WebAPIとしての登録をWebAPIモジュール131wに要求する(S413)。当該要求には、ステップS412において通知されたCモジュール131cの機能に対するURLに対して拡張モジュール131eのURLが付加されたURLと、拡張モジュール131eの仲介機能に関するアドレス情報とが指定される。本実施の形態において、Cモジュール131cの機能に対するURLに対して拡張モジュール131eのURLを付加したURLとは、「exmodule/001/functionC」である。以下、当該URLを、Cモジュール131cの機能に対するURLという。
Subsequently, the
WebAPIモジュール131wは、Cモジュール131cの機能に対するURLと、拡張モジュール131eの仲介機能に関するアドレス情報とを対応付けて、例えば、メモリ装置103に記憶する。なお、拡張モジュール131eの仲介機能とは、WebAPIモジュール131wが受け付けたHTTPリクエストを、拡張エージェント13a内のプログラムモジュール131に仲介又は転送する機能をいう。上記したように、拡張モジュール131eは、当該仲介機能とは別に、プログラムモジュール131の追加機能を有する。当該追加機能のアドレス情報は、WebAPIモジュール131wによって、当該追加機能に対するURLに対応付けられて記憶されている。ステップS413では、当該追加機能と、当該仲介機能とを区別可能するために、当該仲介機能のアドレス情報として、当該追加機能とは異なるアドレス情報が、WebAPIモジュール131wに通知される。
The
なお、例えば、Cモジュール131cのWebAPIに対するURLは、エージェント13の外部に対しては、「<host>:<port>/platform/exmodule/001/functionC」として公開される。当該URLは、Cモジュール131cのルートURLに対して、「/functionC」が付加されたものである。
For example, the URL for the Web API of the
続いて、WebAPIモジュール131wは、通知されたURLに係る機能に対するインタフェースがWebAPIとして登録されたことを示す応答を、拡張モジュール131eに返却する(S415)。
Subsequently, the
拡張モジュール131eは、Cモジュール131cの機能に対するインタフェースがWebAPIとして登録されたことを示す応答を、プロキシモジュール131pに返信する(S416)。続いて、プロキシモジュール131pは、Cモジュール131cの機能に対するインタフェースがWebAPIとして登録されたことを示す応答を、Cモジュール131cに対して返却する(S417)。Cモジュール131cは、ステップS410における起動指示に対する応答を、モジュールプラットフォーム132aに対して行う(S418)。モジュールプラットフォーム132aは、ステップS409における、Cモジュール131cの起動要求に対する応答を、拡張モジュール131eに対して返信する(S419)。
The
拡張モジュール131eは、ステップS402における、Cモジュール131cの追加要求に対する応答を、WebAPIモジュール131wに返却する(S420)。WebAPIモジュール131wは、Cモジュール131cのルートURLを含む応答を、ウィジェットランタイム12経由で、ウィジェット11aに返信する(S421)。その後、ウィジェット11aは、当該ルートURLに基づいて、Cモジュール131cの削除や、Cモジュール131cの機能の呼び出しを行うことができる。
The
続いて、図8に対する変形例について説明する。図9は、ウィジェットからのプログラムモジュールの追加要求に応じて実行される処理手順の第二の例を説明するためのシーケンス図である。図9中、図8と同一又は対応するステップには、図8と同じステップ番号又は図8のステップ番号に対して枝番が付与されたステップ番号を付し、その説明は適宜省略する。 Next, a modified example with respect to FIG. 8 will be described. FIG. 9 is a sequence diagram for explaining a second example of a processing procedure executed in response to a program module addition request from a widget. 9, steps that are the same as or correspond to those in FIG. 8 are denoted by the same step numbers as those in FIG. 8 or step numbers given branch numbers with respect to the step numbers in FIG.
図8と図9との関係は、図4と図5との関係と同様である。すなわち、図9では、各プログラムモジュール131間のやり取りが、モジュールプラットフォーム132又はモジュールプラットフォーム132aによって仲介されている。
The relationship between FIG. 8 and FIG. 9 is the same as the relationship between FIG. 4 and FIG. That is, in FIG. 9, the exchange between the
具体的には、ステップS406、S408、S413、及びS415に関して、WebAPIモジュール131wと拡張モジュール131eとのやり取りは、モジュールプラットフォーム132によって仲介されている。
Specifically, regarding the steps S406, S408, S413, and S415, the exchange between the
また、ステップS411及びS417に関して、Cモジュール131cとプロキシモジュール131pとのやり取りは、モジュールプラットフォーム132aによって仲介されている。
Regarding steps S411 and S417, the exchange between the
その他の点は、図8と同様である。 The other points are the same as in FIG.
続いて、ウィジェット11aが、Cモジュール131cの機能を呼び出す際に実行される処理について説明する。
Next, processing executed when the
図10は、拡張エージェントにおけるプログラムモジュールの実行要求に応じて実行される処理手順の一例を説明するためのシーケンス図である。 FIG. 10 is a sequence diagram for explaining an example of a processing procedure executed in response to a program module execution request in the extended agent.
ステップS501において、ウィジェット11aは、Cモジュール131cの実行要求をウィジェットランタイム12に入力する。当該実行要求には、Cモジュール131cの機能に対するURL(「<host>:<port>/platform/exmodule/001/functionC」)が指定される。
In step S501, the
なお、図8又は図9のステップS421において、ウィジェット11aには、Cモジュール131cのルートURLしか返信されていない。すなわち、Cモジュール131cの機能に対するURLは返信されていない。それにも拘わらず、ウィジェット11aがCモジュール131cの機能に対するURLを指定できるのは、ウィジェット11aは、当初よりCモジュール131cの利用を予定して実装されているからである。すなわち、ウィジェット11aは、Cモジュール131cの機能の識別子が「functionC」であることを知っており、当該識別子を、Cモジュール131cのルートURLに付加されたものが、Cモジュール131cの機能に対するURLになるという規則又は約束事を知っているからである。なお、ステップS421において、Cモジュール131cの機能に対するURLが返信されてもよい。
In step S421 of FIG. 8 or FIG. 9, only the root URL of the
続いて、ウィジェットランタイム12は、当該URL宛にHTTPリクエストを送信する(S502)。当該HTTPリクエストは、WebAPIモジュール131wによって受信される。
Subsequently, the
WebAPIモジュール131wは、当該URLに対応づけられてメモリ装置103に記憶されているアドレス情報に係る拡張モジュール131eに対して、Cモジュール131cの実行を要求する(S503)。当該実行要求には、当該URLが指定される。但し、当該URLの全てが指定されなくてもよい。例えば、「/001/functionC」のみが指定されてもよい。
The
続いて、拡張モジュール131eは、指定されたURLを含む、Cモジュール131cの実行要求を、プロキシモジュール131pに送信(転送)する(S504)。続いて、プロキシモジュール131pは、当該URLに対応付けられてメモリ装置103に記憶されているアドレス情報に基づいて、Cモジュール131cを呼び出す(S505)。Cモジュール131cは、呼び出しに応じ、自らに実装されている機能を実現するための処理を実行する(S506)。続いて、Cモジュール131cは、機能の実行結果(成果物)をプロキシモジュール131pに返却する(S507)。
Subsequently, the
プロキシモジュール131pは、当該実行結果を含む応答を機能モジュールに返信する(S508)。機能モジュールは、当該実行結果を含む応答をWebAPIモジュール131wに返却する(S509)。WebAPIモジュール131wは、当該実行結果を含むHTTPレスポンスを、ウィジェットランタイム12に返信する(S510)。ウィジェットランタイム12は、当該実行結果を含む応答を、ウィジェット11aに返却する(S511)。
The
続いて、Cモジュール131cの削除について説明する。Cモジュール131cの削除命令は、例えば、Cモジュール131cのルートURLに対して、削除命令を示す所定の文字列(例えば、「DELETE」等)が指定されることによって表現される。本実施の形態では、「<host>:<port>/platform/exmodule/001/DELETE」によって、Cモジュール131cの削除命令が表現される。
Next, deletion of the
ウィジェット11aは、Cモジュール131cの削除を希望する際、URLとして、「<host>:<port>/platform/exmodule/001/DELETE」が指定されたHTTPリクエストを、ウィジェットランタイム12を介して送信する。
When the
WebAPIモジュール131wは、当該HTTPリクエストを受信すると、当該URLに含まれている「DELETE」に基づいて、当該HTTPリクエストが、「/exmodule/001」によって識別されるプログラムモジュール131の削除命令であることを解釈する。そこで、WebAPIモジュール131wは、「/exmodule/001」に対応付けられてメモリ装置103に記憶されているアドレス情報に係る拡張モジュール131eに対して、登録IDが「001」であるプログラムモジュール131の削除を要求する。拡張モジュール131eは、モジュールプラットフォーム132aに対して、登録IDが「001」であるプログラムモジュール131の削除を要求する。モジュールプラットフォーム132aは、登録IDが「001」であるCモジュール131cを削除する。すなわち、Cモジュール131cに関して、モジュールプラットフォーム132aに対する登録が解除される。
When the
なお、Cモジュール131c以外であって、拡張エージェント13aに追加された他のプログラムモジュール131についても、同様の手順で削除することができる。
上述したように、本実施の形態によれば、エージェント13は、機能拡張用のインタフェース(プログラムモジュール131の追加機能に対するインタフェース)を備え、当該インタフェースの呼び出しに応じて、機能を拡張することができる。したがって、ウィジェット11に機能を提供するエージェント13に関して、機能拡張の簡便性を向上させることができる。
As described above, according to the present embodiment, the
また、機能拡張に係るプログラムモジュール131は、エージェント13とは別プロセスにおいて機能する拡張エージェント13aに追加される。したがって、複数のウィジェット11から同時に利用される可能性の高いエージェント13が、当該プログラムモジュール131の動作不正やメモリの消費等の影響を受ける可能性は低い。よって、ウィジェット11に機能を提供するエージェント13に関して、機能拡張の安全性を向上させることができる。
Further, the
また、プログラムモジュール131の機能に対するURLは、当該プログラムモジュール131より通知される(取得される)。換言すれば、プログラムモジュール131の機能に対するURLは、ランダムに割り当てられるものではなく、プログラムモジュール131より取得される識別子に基づいて、所定の規則に則して生成される。したがって、プログラムモジュール131を利用するウィジェット11にとって、プログラムモジュール131の機能に対するURLがどのような値であるかについて、予測性を高めることができる。
The URL for the function of the
なお、WebAPIモジュール131wは、メモリ装置103に記憶しているURLの一覧を、ウィジェット11に対して提供するインタフェースを有していてもよい。具体的には、当該一覧の提供機能に対するURLがWebAPIモジュール131wに対して割り当てられてもよい。WebAPIモジュール131wは、当該URLが指定されたHTTPリクエストが受信された場合は、メモリ装置103に記憶しているURLの一覧を返信する。ウィジェット11は、当該一覧の中から、例えばキーワード検索によって所望の機能に対するURLを特定することができる。その結果、ウィジェット11と機能(プログラムモジュール131)との関係を、疎又は動的なものとすることができる。
The
なお、本実施の形態において、エージェント13は、第一の機能実行手段の一例である。拡張エージェント13aは、第二の機能実行手段の一例である。プログラムモジュール131の機能に対するURLは、機能毎に割り当てられた識別情報の一例である。
In the present embodiment, the
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.
10 情報処理装置
11 ウィジェット
12 ウィジェットランタイム
13 エージェント
13a 拡張エージェント
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
131 プログラムモジュール
132 モジュールプラットフォーム
133 モジュールランタイム
131a Aモジュール
131b Bモジュール
131c Cモジュール
131e 拡張モジュール
131p プロキシモジュール
131w WebAPIモジュール
B バス
DESCRIPTION OF
105
Claims (5)
前記第一の機能実行手段とは異なるプロセスにおいて機能し、前記第一の識別情報に基づいて前記第一の機能実行手段より転送された実行要求に指定されている前記第一の識別情報に係る機能を実行する第二の機能実行手段とを有し、
前記第一の機能実行手段は、受信された機能の実行要求に指定されている前記第一の識別情報がプログラムモジュールの追加機能を示す場合は、当該実行要求に指定されている前記プログラムモジュールを前記第二の機能実行手段に追加して、当該プログラムモジュールに係る前記第一の識別情報に前記第二の機能実行手段に関する第二の識別情報を対応付けて保持し、受信された機能の実行要求に指定されている前記第一の識別情報に前記第二の機能実行手段に関する前記第二の識別情報が対応付けられている場合は、当該実行要求に指定されている前記第一の識別情報に係る機能を実行せずに当該実行要求を当該第二の機能実行手段に転送し、
前記第二の機能実行手段は、前記第一の機能実行手段より転送された前記実行要求に指定された前記第一の識別情報に係る機能を、当該第二の機能実行手段に追加された前記プログラムモジュールに実行させる情報処理装置。 First function execution means for executing a function related to the first identification information in response to reception of a function execution request in which the first identification information that is the function identification information is designated;
It functions in a process different from the first function execution means, and relates to the first identification information specified in the execution request transferred from the first function execution means based on the first identification information. Second function executing means for executing the function,
When the first identification information specified in the received execution request for the function indicates an additional function of the program module, the first function execution means determines the program module specified in the execution request. In addition to the second function execution means, the second identification information related to the second function execution means is held in association with the first identification information related to the program module, and the received function is executed. When the second identification information related to the second function execution means is associated with the first identification information specified in the request, the first identification information specified in the execution request The execution request is transferred to the second function execution means without executing the function according to
The second function execution unit is configured to add the function related to the first identification information specified in the execution request transferred from the first function execution unit to the second function execution unit. An information processing apparatus to be executed by a program module.
前記第一の機能実行手段は、前記第二の機能実行手段より通知された前記第一の識別情報を、前記第二の機能実行手段に対応付けて記憶部に記憶し、受信された機能の実行要求に指定された前記第一の識別情報が、前記第二の機能実行手段に対応付けられている場合に、当該実行要求を前記第二の機能実行手段に転送する請求項2記載の情報処理装置。 The second function executing unit notifies the first identification information acquired from the program module in accordance with the additional of the program module to the first function executing means,
The first function execution unit stores the first identification information notified from the second function execution unit in a storage unit in association with the second function execution unit, and receives the received function. The information according to claim 2, wherein when the first identification information specified in the execution request is associated with the second function execution unit, the execution request is transferred to the second function execution unit. Processing equipment.
前記第二の機能実行手段は、前記第一の機能実行手段より転送された前記削除要求に指定された前記第一の識別情報に含まれている第三の識別情報に係る前記プログラムモジュールの登録を解除し、 The second function execution unit registers the program module according to the third identification information included in the first identification information specified in the deletion request transferred from the first function execution unit. And
前記第三の識別情報は、前記第一の識別情報に含まれる請求項1乃至3いずれか一項記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the third identification information is included in the first identification information.
機能の識別情報である第一の識別情報が指定された機能の実行要求の受信に応じ、当該第一の識別情報に係る機能を実行する第一の機能実行手段と、
前記第一の機能実行手段とは異なるプロセスにおいて機能し、前記第一の識別情報に基づいて前記第一の機能実行手段より転送された実行要求に指定されている前記第一の識別情報に係る機能を実行する第二の機能実行手段として機能させ、
前記第一の機能実行手段は、受信された機能の実行要求に指定されている前記第一の識別情報がプログラムモジュールの追加機能を示す場合は、当該実行要求に指定されている前記プログラムモジュールを前記第二の機能実行手段に追加して、当該プログラムモジュールに係る前記第一の識別情報に前記第二の機能実行手段に関する第二の識別情報を対応付けて保持し、受信された機能の実行要求に指定されている前記第一の識別情報に前記第二の機能実行手段に関する前記第二の識別情報が対応付けられている場合は、当該実行要求に指定されている前記第一の識別情報に係る機能を実行せずに当該実行要求を当該第二の機能実行手段に転送し、
前記第二の機能実行手段は、前記第一の機能実行手段より転送された前記実行要求に指定された前記第一の識別情報に係る機能を、当該第二の機能実行手段に追加された前記プログラムモジュールに実行させるプログラム。 Computer
First function execution means for executing a function related to the first identification information in response to reception of a function execution request in which the first identification information that is the function identification information is designated;
It functions in a process different from the first function execution means, and relates to the first identification information specified in the execution request transferred from the first function execution means based on the first identification information. Function as a second function execution means for executing functions,
When the first identification information specified in the received execution request for the function indicates an additional function of the program module, the first function execution means determines the program module specified in the execution request. In addition to the second function execution means, the second identification information related to the second function execution means is held in association with the first identification information related to the program module, and the received function is executed. When the second identification information related to the second function execution means is associated with the first identification information specified in the request, the first identification information specified in the execution request The execution request is transferred to the second function execution means without executing the function according to
The second function execution unit is configured to add the function related to the first identification information specified in the execution request transferred from the first function execution unit to the second function execution unit. A program to be executed by a program module.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012008596A JP5927930B2 (en) | 2012-01-19 | 2012-01-19 | Information processing apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012008596A JP5927930B2 (en) | 2012-01-19 | 2012-01-19 | Information processing apparatus and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016089776A Division JP6128259B2 (en) | 2016-04-27 | 2016-04-27 | Information processing system and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013149051A JP2013149051A (en) | 2013-08-01 |
JP5927930B2 true JP5927930B2 (en) | 2016-06-01 |
Family
ID=49046504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012008596A Expired - Fee Related JP5927930B2 (en) | 2012-01-19 | 2012-01-19 | Information processing apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5927930B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6759812B2 (en) * | 2016-07-29 | 2020-09-23 | オムロン株式会社 | Defect inspection equipment and defect inspection method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004139487A (en) * | 2002-10-21 | 2004-05-13 | Yokogawa Electric Corp | Method for adding software function |
US7574709B2 (en) * | 2004-04-30 | 2009-08-11 | Microsoft Corporation | VEX-virtual extension framework |
JP2010134574A (en) * | 2008-12-03 | 2010-06-17 | Hitachi Ltd | Method of changing business process definition, execution system thereof and program |
JP2011107834A (en) * | 2009-11-13 | 2011-06-02 | Ricoh Co Ltd | Image processing apparatus, method and program for controlling operation module execution between virtual machines |
-
2012
- 2012-01-19 JP JP2012008596A patent/JP5927930B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013149051A (en) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101505234B1 (en) | Xml-based web feed for web access of remote resources | |
US8332520B2 (en) | Web server for managing session and method thereof | |
JP4748819B2 (en) | Client program, terminal, method, server system, and server program | |
US10318318B2 (en) | Extending user interface of a web console | |
US9507653B2 (en) | Inter-process communication channel | |
CN108416021B (en) | Browser webpage content processing method and device, electronic equipment and readable medium | |
JP5209016B2 (en) | WebAPI creation support apparatus and WebAPI creation support method | |
JP2011107752A (en) | Information-processing device, communication system and program | |
KR101907837B1 (en) | Application activation framework | |
WO2008029773A1 (en) | Add-in program for upload, auxiliary program for upload and upload method | |
CN100481002C (en) | Web interface extending method and device | |
US11537367B1 (en) | Source code conversion from application program interface to policy document | |
JP2012048391A (en) | Web api server program and web api disclosure method | |
KR20130068564A (en) | Terminal apparatus having operating system based on web and method for providing service using thereof | |
JP6993577B2 (en) | Interface conversion program, interface conversion method and information processing equipment | |
JP6128259B2 (en) | Information processing system and information processing method | |
JP5927930B2 (en) | Information processing apparatus and program | |
JP5541160B2 (en) | Program acquisition / execution client, program acquisition / execution method and program | |
WO2012063282A1 (en) | Operating method and system for mashup application | |
EP3289451A1 (en) | Cross-platform command extensibility | |
JP2006276939A (en) | Program starting method for virtual machine, and client server system | |
JP2014229114A (en) | OSGi SERVICE REGISTRATION DEVICE, REGISTRATION METHOD AND REGISTRATION PROGRAM | |
JP5901267B2 (en) | Information processing apparatus, control method therefor, and program | |
JP2018014603A (en) | Information processing apparatus, control method and program of information processing apparatus | |
JP2009146352A (en) | Program component invocation system, program component invocation method, and user terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150806 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150825 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151022 |
|
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: 20160329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160411 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5927930 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |