JP5927930B2 - Information processing apparatus and program - Google Patents

Information processing apparatus and program Download PDF

Info

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
Application number
JP2012008596A
Other languages
Japanese (ja)
Other versions
JP2013149051A (en
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 JP2012008596A priority Critical patent/JP5927930B2/en
Publication of JP2013149051A publication Critical patent/JP2013149051A/en
Application granted granted Critical
Publication of JP5927930B2 publication Critical patent/JP5927930B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 widget 501 a requests execution of the function A by specifying the URL (A) to the widget runtime 502. The widget 501b makes a request to execute the function B by designating the URL (B) to the widget runtime 502. The widget runtime 502 transmits an HTTP request in which the URL (A) is specified to the agent 503 in response to the specification of the URL (A). The widget runtime 502 also transmits an HTTP request in which the URL (B) is specified to the agent 503 in response to the specification of the URL (B).

エージェント503は、URL(A)が指定されたHTTPリクエストを受信すると、機能Aを実行する。エージェント503は、また、URL(B)が指定されたHTTPリクエストを受信すると、機能Bを実行する。   When the agent 503 receives the HTTP request in which the URL (A) is specified, the agent 503 executes the function A. When the agent 503 receives an HTTP request in which the URL (B) is specified, the agent 503 executes the function B.

なお、エージェント503は、ウィジェット及びウィジェットランタイムと同じPC(Personal Computer)等にインストールされる。また、エージェント503は、例えば、Java(登録商標)等、高度な処理が可能なプログラミング言語によって実装される。したがって、図1に示されるような構成によれば、ウィジェット501a又は502aは、HTML又はXML、及びスクリプト等では実装できない高度な機能A又は機能Bをユーザに提供することができる。   The agent 503 is installed on the same PC (Personal Computer) as the widget and the widget runtime. The agent 503 is implemented by a programming language capable of advanced processing such as Java (registered trademark). Therefore, according to the configuration shown in FIG. 1, the widget 501a or 502a can provide the user with a high-level function A or function B that cannot be implemented by HTML or XML, script, or the like.

しかしながら、従来、エージェントの機能は、エージェントの内部に固定的に実装されていた。従って、ウィジェットに固有な新たな機能を提供したい場合、エージェントに関して機能強化を行い、エージェントの再インストール等が必要とされた。また、新たな機能を提供するウィジェットの配布時には、機能強化が行われたエージェントの配布も必要とされ、ユーザにとって、当該ウィジェットの導入の難易度が高くなってしまう。その結果、当該ウィジェットの導入が敬遠され、開発者にとっては、せっかく開発したウィジェットがあまり利用されないという状況が発生する可能性が有る。   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.

ウィジェット、ウィジェットランタイム、及びエージェントの関係を説明するための図である。It is a figure for demonstrating the relationship between a widget, widget runtime, and an agent. 本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the information processing apparatus in embodiment of this invention. 情報処理装置の基本機能に関するソフトウェア構成例を示す図である。FIG. 3 is a diagram illustrating a software configuration example regarding a basic function of the information processing apparatus. プログラムモジュールの機能に対するインタフェースをWebAPIとして公開するための処理手順の第一の例を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the 1st example of the process sequence for publishing the interface with respect to the function of a program module as WebAPI. プログラムモジュールの機能に対するインタフェースをWebAPIとして公開するための処理手順の第二の例を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the 2nd example of the process sequence for publishing the interface with respect to the function of a program module as WebAPI. 拡張モジュールが有するプログラムモジュールの追加機能の利用形態の一例を示す図である。It is a figure which shows an example of the utilization form of the additional function of the program module which an extension module has. ウィジェットからのプログラムモジュールの追加要求に応じて実行される処理概要を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the process outline | summary performed according to the addition request | requirement of the program module from a widget. ウィジェットからのプログラムモジュールの追加要求に応じて実行される処理手順の第一の例を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the 1st example of the process sequence performed according to the addition request | requirement of the program module from a widget. ウィジェットからのプログラムモジュールの追加要求に応じて実行される処理手順の第二の例を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the 2nd example of the process sequence performed according to the addition request | requirement of the program module from a widget. 拡張エージェントにおけるプログラムモジュールの実行要求に応じて実行される処理手順の一例を説明するためのシーケンス図である。It is a sequence diagram for demonstrating an example of the process sequence performed according to the execution request of the program module in an extended agent.

以下、図面に基づいて本発明の実施の形態を説明する。図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 information processing apparatus 10 in FIG. 2 includes a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, a display device 106, an input device 107, and the like that are mutually connected by a bus B.

情報処理装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。   A program for realizing processing in the information processing apparatus 10 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 storing the program is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100. However, the program need not be installed from the recording medium 101 and may be downloaded from another computer via a network. The auxiliary storage device 102 stores the installed program and also stores necessary files and data.

メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って情報処理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。   The memory device 103 reads the program from the auxiliary storage device 102 and stores it when there is an instruction to start the program. The CPU 104 realizes functions related to the information processing apparatus 10 according to a program stored in the memory device 103. The interface device 105 is used as an interface for connecting to a network. The display device 106 displays a GUI (Graphical User Interface) or the like by a program. The input device 107 includes a keyboard and a mouse, and is used for inputting various operation instructions.

図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 information processing apparatus 10 includes a widget 11, a widget runtime 12, an agent 13, and the like.

ウィジェット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 widget runtime 12 is a software program that implements the execution environment of the widget 11. The widget runtime 12 has functions of a general Web browser such as a function of executing HTTP communication as a client, a function of interpreting HTML or XML and drawing a screen, and a function of interpreting and executing a script. Is provided. The widget runtime 12 displays the screen of the widget 11, executes a script defined in the widget 11, and the like by such functions.

エージェント13は、WebAPIを介して機能を提供するプログラム群である。具体的には、エージェント13は、クライアントからのHTTPリクエストに応じ、当該HTTPリクエストにおいて指定されたURL(Uniform Resource Locator)に対応する機能を提供する。すなわち、WebAPIとは、URLを機能の識別情報として、機能の実行要求を受け付けるAPI(Application Program Interface)をいう。   The agent 13 is a group of programs that provide functions via WebAPI. Specifically, the agent 13 provides a function corresponding to a URL (Uniform Resource Locator) specified in the HTTP request in response to the HTTP request from the client. That is, the Web API is an API (Application Program Interface) that accepts a function execution request using a URL as function identification information.

本実施の形態では、ウィジェット11よりURLの指定を受け付けるウィジェットランタイム12が、エージェント13に対するクライアントに相当する。   In the present embodiment, the widget runtime 12 that receives the URL designation from the widget 11 corresponds to a client for the agent 13.

図3において、エージェント13は、一以上のプログラムモジュール131、モジュールプラットフォーム132、及びモジュールランタイム133等を含む。   In FIG. 3, the agent 13 includes one or more program modules 131, a module platform 132, a module runtime 133, and the like.

各プログラムモジュール131は、それぞれに固有の機能を実行するプログラムモジュールである。同図には、プログラムモジュール131の一例として、Aモジュール131a、Bモジュール131b、WebAPIモジュール131w、及び拡張モジュール131e等が例示されている。このうち、WebAPIモジュール131w及び拡張モジュール131eは、特別な機能及び役割を有するプログラムモジュール131である。   Each program module 131 is a program module that executes a unique function. In the figure, as an example of the program module 131, an A module 131a, a B module 131b, a Web API module 131w, an extension module 131e, and the like are illustrated. Among these, the Web API module 131w and the extension module 131e are program modules 131 having special functions and roles.

WebAPIモジュール131wは、他のプログラムモジュール131の機能に対するインタフェースを、WebAPIとして公開する役割を担う。具体的には、WebAPIモジュール131wは、所定のポート番号のポートを開設し、当該ポート宛のHTTPリクエストに指定されたURLに対応するプログラムモジュール131を呼び出す。すなわち、各プログラムモジュール131には、URLが割り当てられ、WebAPIモジュール131wは、各プログラムモジュール131のURLを、各プログラムモジュール131に対応付けて管理する。   The WebAPI module 131w plays a role of publishing an interface for functions of other program modules 131 as a WebAPI. Specifically, the Web API module 131w opens a port having a predetermined port number and calls the program module 131 corresponding to the URL specified in the HTTP request addressed to the port. That is, a URL is assigned to each program module 131, and the WebAPI module 131w manages the URL of each program module 131 in association with each program module 131.

拡張モジュール131eは、エージェント13には実装されていない機能を実現するプログラムモジュール131の追加機能を実現するプログラムモジュール131である。プログラムモジュール131の追加の意味については、後述される。拡張モジュール131eによって、エージェント13の機能拡張が簡便かつ安全に行われる。   The extension module 131e is a program module 131 that realizes an additional function of the program module 131 that realizes a function that is not implemented in the agent 13. The additional meaning of the program module 131 will be described later. The expansion of the function of the agent 13 is performed simply and safely by the expansion module 131e.

モジュールランタイム133は、モジュールの実行環境を提供する。モジュールランタイム133の一例として、Java(登録商標)VM(Virtual Machine)が挙げられる。   The module runtime 133 provides a module execution environment. An example of the module runtime 133 is Java (registered trademark) VM (Virtual Machine).

モジュールプラットフォーム132は、モジュールランタイム133が提供する実行環境におけるプログラムのモジュール化又は部品化を容易にするためのプラットフォームである。モジュールプラットフォーム132の一例として、OSGi(Open Services Gateway Initiative)プラットフォームが挙げられる。OSGiプラットフォームとは、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術に基づいて作成されたプログラムモジュール131の実行環境を提供するソフトウェアプラットフォームである。OSGiプラットフォーム上において、Java(登録商標)言語のプログラムモジュールは「バンドル」と呼ばれるソフトウェア部品の形で実装される。一つのバンドルは、それぞれ独立して動的に(情報処理装置10の再起動を要することなく)インストール可能である。したがって、モジュールプラットフォーム132として、OSGiプラットフォームが採用される場合、本実施の形態における各プログラムモジュール131は、バンドルとして実装される。   The module platform 132 is a platform for facilitating modularization or componentization of programs in the execution environment provided by the module runtime 133. An example of the module platform 132 is an OSGi (Open Services Gateway Initiative) platform. The OSGi platform is a standardized technology by the OSGi alliance, and is a software platform that provides an execution environment for the program module 131 created based on an open software componentization technology based on the Java (registered trademark) language. On the OSGi platform, program modules in the Java (registered trademark) language are implemented in the form of software components called “bundles”. One bundle can be installed dynamically independently (without requiring the information processing apparatus 10 to be restarted). Therefore, when the OSGi platform is adopted as the module platform 132, each program module 131 in the present embodiment is mounted as a bundle.

なお、図3において、ウィジェットランタイム12及びエージェント13は、相互に異なるプロセスとして動作する。ウィジェット11は、ウィジェットランタイム12のプロセス上で起動される。各プログラムモジュール131は、エージェント13上のプロセス上で、スレッドとして起動される。   In FIG. 3, the widget runtime 12 and the agent 13 operate as different processes. The widget 11 is activated on the widget runtime 12 process. Each program module 131 is activated as a thread on the process on the agent 13.

以下、情報処理装置10において実行される処理手順について説明する。図4は、プログラムモジュールの機能に対するインタフェースをWebAPIとして公開するための処理手順の第一の例を説明するためのシーケンス図である。例えば、図4の処理は、エージェント13のプロセスの起動時に実行される。   Hereinafter, a processing procedure executed in the information processing apparatus 10 will be described. FIG. 4 is a sequence diagram for explaining a first example of a processing procedure for publishing an interface for a function of a program module as a Web API. For example, the process of FIG. 4 is executed when the process of the agent 13 is started.

ステップS101において、モジュールプラットフォーム132は、モジュールプラットフォーム132に登録されている各プログラムモジュール131に対して、起動指示を行う。起動とは、例えば、各プログラムモジュール131をスレッドとして起動させることである。   In step S <b> 101, the module platform 132 issues a start instruction to each program module 131 registered in the module platform 132. Activation means, for example, that each program module 131 is activated as a thread.

各プログラムモジュール131は、起動指示に応じ、当該プログラムモジュール131の機能を識別するURLと、当該機能に関するアドレス情報(例えば、ポインタ等)とをWebAPIモジュール131wに通知する(S102)。当該通知は、例えば、WebAPIモジュール131wが有する所定のメソッドを呼び出すことにより行われる。なお、URLは、当該プログラムモジュール131の機能に対するインタフェースをエージェント13の外部に公開するために利用される識別情報である。   Each program module 131 notifies the WebAPI module 131w of a URL for identifying the function of the program module 131 and address information (for example, a pointer) related to the function in response to the activation instruction (S102). The notification is performed, for example, by calling a predetermined method of the Web API module 131w. Note that the URL is identification information used to publish an interface for the function of the program module 131 to the outside of the agent 13.

アドレス情報(ポインタ等)は、エージェント13の内部において、プログラムモジュール131の呼び出し機構の実装上の都合により、必要となる識別情報である。URLは、静的な情報であり、アドレス情報は、動的な識別情報であるともいえる。アドレス情報は、プログラムモジュール131が起動されるたびに変化する可能性が有るからである。   The address information (pointer or the like) is identification information that is necessary inside the agent 13 due to the implementation of the calling mechanism of the program module 131. The URL is static information, and the address information can be said to be dynamic identification information. This is because the address information may change every time the program module 131 is activated.

例えば、拡張モジュール131eからは、「/exmodule」といったURLが通知される。すなわち、ここで通知されるURLは、WebAPIモジュール131wが規定するルートのURLに対する相対パスである。本実施の形態において、WebAPIモジュール131wが規定するルートのURLは、「<host>:<port>/platform」であるとする。<host>は、実際には、具体的なホスト名又はIPアドレスによって置換される。<port>は、実際には、具体的なポート番号によって置換される。   For example, the extension module 131e notifies a URL such as “/ exmodule”. That is, the URL notified here is a relative path to the URL of the route defined by the WebAPI module 131w. In the present embodiment, it is assumed that the URL of the route defined by the Web API module 131w is “<host>: <port> / platform”. <Host> is actually replaced by a specific host name or IP address. <Port> is actually replaced by a specific port number.

続いて、WebAPIモジュール131wは、通知されたURLとアドレス情報とを対応付けて、メモリ装置103に記憶しておく(S103)。その結果、当該URLに係るプログラムモジュール131のインタフェースは、WebAPIとして公開されたことになる。WebAPIモジュール131wは、当該URLが指定されたHTTPリクエストの受信に応じ、当該URLに対応するアドレス情報に基づいて、当該URLに対応するプログラムモジュール131を呼び出すことができるからである。   Subsequently, the Web API module 131w associates the notified URL with the address information and stores them in the memory device 103 (S103). As a result, the interface of the program module 131 related to the URL is published as a Web API. This is because the WebAPI module 131w can call the program module 131 corresponding to the URL based on the address information corresponding to the URL in response to the reception of the HTTP request in which the URL is specified.

なお、例えば、拡張モジュール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 extension module 131e is disclosed to the outside of the agent 13 as “<host>: <port> / platform / ex module”. In other words, if the widget 11 wishes to use the function of the extension module 131e, it sends an HTTP request in which “<host>: <port> / platform / ex module” is specified as the URL to the Web API module 131w. Good.

続いて、WebAPIモジュール131wは、各プログラムモジュール131に対して応答を返却する(S104)。各プログラムモジュール131は、モジュールプラットフォーム132に応答を返却する(S105)。   Subsequently, the WebAPI module 131w returns a response to each program module 131 (S104). Each program module 131 returns a response to the module platform 132 (S105).

続いて、図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 Web API module 131w and each program module 131 in steps S102 and S104 is mediated by the module platform 132.

すなわち、各プログラムモジュール131の機能に対するURLと、当該機能に関するアドレス情報とは、モジュールプラットフォーム132を介して、各プログラムモジュール131からWebAPIモジュール131wに通知される(S102−1、S102−2)。   That is, the URL for the function of each program module 131 and the address information related to the function are notified from each program module 131 to the Web API module 131w via the module platform 132 (S102-1 and S102-2).

また、WebAPIモジュール131wからの応答は、モジュールプラットフォーム132を介して、各プログラムモジュール131へ返却される(S104−1、S104−2)。   Also, the response from the WebAPI module 131w is returned to each program module 131 via the module platform 132 (S104-1, S104-2).

図5に示される処理手順によれば、各プログラムモジュール131について、WebAPIモジュール131wへの依存度を低減させることができる。すなわち、各プログラムモジュール131は、WebAPIモジュール131wの存在を意識することなく、自らの機能に対するインタフェースをWebAPIとして公開することができる。   According to the processing procedure shown in FIG. 5, the dependency of each program module 131 on the Web API module 131 w can be reduced. That is, each program module 131 can publish an interface for its function as a Web API without being aware of the existence of the Web API module 131w.

なお、新たなプログラムモジュール131がモジュールプラットフォーム132上に追加された場合、追加されたタイミングで当該プログラムモジュール131に関して、図4又は図5において説明した処理が実行される。その結果、当該プログラムモジュール131のインタフェースは、自動的にWebAPIとして公開される。   When a new program module 131 is added on the module platform 132, the processing described in FIG. 4 or FIG. 5 is executed for the program module 131 at the added timing. As a result, the interface of the program module 131 is automatically disclosed as a Web API.

続いて、拡張モジュール131eの機能について説明する。上記したように、拡張モジュール131eは、プログラムモジュール131の追加機能を有する。当該追加機能は、例えば、次のように利用される。   Next, functions of the extension module 131e will be described. As described above, the extension module 131e has an additional function of the program module 131. The additional function is used as follows, for example.

図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 widget 11a is a widget 11 that requires the function of the C module 131c, which is a program module 131 that realizes a function that the agent 13 does not have. In this case, for example, when the widget 11a is distributed, the C module 131c may be distributed together with the widget 11a. As an example of the distribution form of the widget 11, for example, downloading the widget 11 from a predetermined site can be cited.

ウィジェット11aは、起動されると、プログラムモジュール131の追加機能に対応するURL(すなわち、拡張モジュール131eに対するURL)と、Cモジュール131cの保存先のファイルパス名とを指定して、ウィジェットランタイム12にWebAPIの呼び出しを要求する(S201)。なお、Cモジュール131cの保存先のファイルパス名の代わりに、Cモジュール131cを特定可能なURLが指定されてもよい。   When the widget 11a is activated, it designates the URL corresponding to the additional function of the program module 131 (that is, the URL for the extension module 131e) and the file path name of the storage location of the C module 131c, and sends it to the widget runtime 12 A call to WebAPI is requested (S201). Instead of the file path name of the storage destination of the C module 131c, a URL that can specify the C module 131c may be specified.

ウィジェットランタイム12は、プログラムモジュール131の追加機能に対応するURL及び当該ファイルパス名が指定されたHTTPリクエストを、WebAPIモジュール131w宛に送信する(S202)。WebAPIモジュール131wは、当該URLに対応するプログラムモジュール131を呼び出す。上述したように、プログラムモジュール131の追加機能を示すURLに対応するプログラムモジュール131は、拡張モジュール131eである。したがって、ここでは、拡張モジュール131eが呼び出される(S203)。   The widget runtime 12 transmits an HTTP request in which the URL corresponding to the additional function of the program module 131 and the file path name are designated to the Web API module 131w (S202). The WebAPI module 131w calls the program module 131 corresponding to the URL. As described above, the program module 131 corresponding to the URL indicating the additional function of the program module 131 is the extension module 131e. Therefore, here, the extension module 131e is called (S203).

拡張モジュール131eは、呼び出しに応じ、拡張エージェント13aを起動させる(S204)。拡張エージェント13aは、モジュールプラットフォーム132及びモジュールランタイム133に関して、エージェント13と同じプログラムを用いて、エージェント13とは異なるプロセスとして起動される。したがって、拡張エージェント13aは、エージェント13と同様に、モジュールプラットフォーム132a及びモジュールランタイム133aを含む。   In response to the call, the extension module 131e activates the extension agent 13a (S204). The extended agent 13a is activated as a process different from the agent 13 by using the same program as the agent 13 with respect to the module platform 132 and the module runtime 133. Therefore, the extended agent 13a includes the module platform 132a and the module runtime 133a in the same manner as the agent 13.

但し、図6に示されるように、拡張モジュール131eが基本構成として有するプログラムモジュール131は、プロキシモジュール131pである。プロキシモジュール131pは、拡張モジュール131eと協調して(S205)、Cモジュール131cを、拡張エージェント13aのモジュールプラットフォーム132aに登録する(S206)。プロキシモジュール131pは、また、拡張モジュール131eと協調して、Cモジュール131cの機能に対するインタフェースをWebAPIとして公開するための処理を行う。   However, as illustrated in FIG. 6, the program module 131 included in the extension module 131e as a basic configuration is a proxy module 131p. The proxy module 131p cooperates with the extension module 131e (S205), and registers the C module 131c in the module platform 132a of the extension agent 13a (S206). The proxy module 131p also performs processing for publishing an interface for the function of the C module 131c as a Web API in cooperation with the extension module 131e.

このように、Cモジュール131cは、エージェント13ではなく、拡張エージェント13aに登録される。ウィジェット11の都合でプログラムモジュール131を拡張エージェント13aに追加可能となることで、ウィジェット11の実装上の制限を超えた機能の実現が可能となる。ここで、Cモジュール131cがエージェント13ではなく、拡張エージェント13aに登録されるのは、次のような理由による。   Thus, the C module 131c is registered not in the agent 13 but in the extended agent 13a. Since the program module 131 can be added to the extended agent 13a due to the convenience of the widget 11, it is possible to realize functions exceeding the restrictions on the implementation of the widget 11. Here, the reason why the C module 131c is registered not in the agent 13 but in the extended agent 13a is as follows.

すなわち、プログラムモジュール131の自由な追加が許容されると、テストが不十分なプログラムモジュール131等、動作の安定性が保証されていないプログラムモジュール131も、エージェント13に登録される可能性がある。このようなプログラムモジュール131がエージェント13に登録されると、当該プログラムモジュール131の不具合やメモリの消費等によって、エージェント13内の他のプログラムモジュール131の動作にも悪影響が及ぶ可能性がある。エージェント13に含まれる各プログラムモジュール131は、同一のプロセス上で動作するため、いずれかのプログラムモジュール131による不正動作によって当該プロセスが終了してしまうと、他のプログラムモジュール131も動作不能となってしまうからである。   That is, if free addition of the program module 131 is permitted, there is a possibility that the program module 131 whose operation stability is not guaranteed, such as the program module 131 whose test is insufficient, may be registered in the agent 13. When such a program module 131 is registered in the agent 13, the operation of other program modules 131 in the agent 13 may be adversely affected due to a malfunction of the program module 131, memory consumption, or the like. Since each program module 131 included in the agent 13 operates on the same process, when the process ends due to an illegal operation by any one of the program modules 131, the other program modules 131 become inoperable. Because it ends up.

そこで、本実施の形態では、ウィジェット11から追加が要求されたプログラムモジュール131に関しては、エージェント13とは別プロセスの拡張エージェント13aに登録されるのである。そうすることで、エージェント13のプロセスの安定性又は安全性を確保することができる。   Therefore, in the present embodiment, the program module 131 requested to be added by the widget 11 is registered in the extended agent 13a that is a different process from the agent 13. By doing so, the stability or safety of the process of the agent 13 can be ensured.

図6において説明した、ウィジェット11によるプログラムモジュール131の追加要求に応じて実行される処理について、シーケンス図を用いて説明する。   The process executed in response to the request for adding the program module 131 by the widget 11 described with reference to FIG. 6 will be described using a sequence diagram.

図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 new program module 131 is a widget 11a. The new program module 131 is assumed to be a C module 131c. In FIG. 7, the Web API module 131w, the extension module 131e, and the proxy module 131p are shown as abstracted as the agent 13 or the extension agent 13a.

ウィジェット11aは、起動されると、プログラムモジュール131の追加機能に対応するURLと、Cモジュール131cの保存先のファイルパス名とを指定して、ウィジェットランタイム12にWebAPIの呼び出しを要求する(S301)。ここでは、当該URLとして、「<host>:<port>/platoform/exmodule」が指定される。なお、Cモジュール131cは、必ずしもウィジェット11aと共に配布されなくてもよい。図6は、Cモジュール131cの配布形態の一例を示したものに過ぎない。   When the widget 11a is activated, it designates the URL corresponding to the additional function of the program module 131 and the file path name of the storage destination of the C module 131c, and requests the widget runtime 12 to call the Web API (S301). . Here, “<host>: <port> / platform / ex module” is designated as the URL. Note that the C module 131c is not necessarily distributed with the widget 11a. FIG. 6 shows only an example of the distribution form of the C module 131c.

続いて、ウィジェットランタイム12は、当該URL及び当該ファイルパス名が指定されたHTTPリクエストを、エージェント13に送信する(S302)。当該HTTPリクエストに応じ、エージェント13は、拡張エージェント13aをプロセスとして起動させる(S303)。   Subsequently, the widget runtime 12 transmits an HTTP request in which the URL and the file path name are specified to the agent 13 (S302). In response to the HTTP request, the agent 13 activates the extended agent 13a as a process (S303).

続いて、エージェント13は、Cモジュール131cのファイルパス名を指定して、Cモジュール131cの追加要求を拡張エージェント13aに対して送信する(S304)。当該追加要求に応じ、拡張エージェント13aは、Cモジュール131cを拡張エージェント13a上のプログラムモジュール131として登録する。続いて、拡張エージェント13aは、Cモジュール131cの追加の完了を示す応答を返信する(S305)。   Subsequently, the agent 13 designates the file path name of the C module 131c and transmits a request for adding the C module 131c to the extended agent 13a (S304). In response to the addition request, the extended agent 13a registers the C module 131c as the program module 131 on the extended agent 13a. Subsequently, the extended agent 13a returns a response indicating completion of addition of the C module 131c (S305).

続いて、エージェント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 agent 13 transmits an activation request for the C module 131c to the extended agent 13a (S306). In response to the activation request, the extended agent 13a activates the C module 131c as a thread. In response to the activation of the C module 131c, the processing as described in FIG. 4 or 5 is executed on the extended agent 13a with respect to the C module 131c. That is, the URL for the function of the C module 131c and the address information related to the function are notified from the C module 131c to the extended agent 13a. The correspondence between the URL and the address information is managed by the extended agent 13a.

続いて、拡張エージェント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 extended agent 13a designates the URL and transmits a WebAPI registration request to the agent 13 regarding the function of the C module 131c (S307). The agent 13 stores the URL and the identification information related to the extended agent 13a in association with each other in the memory device 103 (S308). As a result, the interface of the C module 131c is published as a Web API. That is, the agent 13 can call the extended agent 13a related to the identification information corresponding to the URL in response to receiving an HTTP request in which the URL is specified. At this time, the URL is notified to the extended agent 13a. The extended agent 13a manages the URL and address information in association with each other. Therefore, the extended agent 13a can call the C module 131c based on the address information corresponding to the URL.

続いて、エージェント13は、Cモジュール131cのインタフェースがWebAPIとして登録されたことを示す応答を、拡張エージェント13aに返信する(S308)。当該応答に応じ、拡張エージェント13aは、Cモジュール131cの起動が完了したことを示す応答を、エージェント13に返信する(S309)。   Subsequently, the agent 13 returns a response indicating that the interface of the C module 131c is registered as a Web API to the extended agent 13a (S308). In response to the response, the extended agent 13a returns a response indicating that the activation of the C module 131c is completed to the agent 13 (S309).

続いて、エージェント13は、Cモジュール131cの追加の完了を示すHTTPレスポンスをウィジェットランタイム12に返信する(S310)。ウィジェットランタイム12は、Cモジュール131cの追加の完了を示す応答をウィジェット11aに返却する(S311)。   Subsequently, the agent 13 returns an HTTP response indicating completion of addition of the C module 131c to the widget runtime 12 (S310). The widget runtime 12 returns a response indicating completion of addition of the C module 131c to the widget 11a (S311).

続いて、図7の処理内容をエージェント13内又は拡張エージェント13a内のプログラムモジュール131のレベルに細分化して説明する。   Next, the processing content of FIG. 7 will be described by subdividing it into the level of the program module 131 in the agent 13 or the extended agent 13a.

図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 widget runtime 12 is omitted for convenience. That is, in FIG. 8, the communication between the widget 11a and the WebAPI module 131w is strictly performed via the widget runtime 12.

ステップS401において、WebAPIモジュール131wは、起動されたウィジェット11aからの要求に基づいて送信された、プログラムモジュール131の追加機能に対応するURLと、Cモジュール131cの保存先のファイルパス名とが指定されたHTTPリクエストを受信する(S401)。WebAPIモジュール131wは、プログラムモジュール131の追加機能に対応するURLに対応付けられているアドレス情報に基づいて、拡張モジュール131eを呼び出す(S402)。この際、拡張モジュール131eには、Cモジュール131cのファイルパス名が通知される。   In step S401, the Web API module 131w specifies the URL corresponding to the additional function of the program module 131 and the file path name of the storage destination of the C module 131c, which are transmitted based on the request from the activated widget 11a. The HTTP request is received (S401). The WebAPI module 131w calls the extension module 131e based on the address information associated with the URL corresponding to the additional function of the program module 131 (S402). At this time, the extension module 131e is notified of the file path name of the C module 131c.

続いて、拡張モジュール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 extension module 131e activates the extension agent 13a including the module platform 132a as a process (S403). Subsequently, the extension module 131e designates the file path name of the C module 131c and transmits an addition request for the C module 131c to the module platform 132a (S404). In response to the addition request, the module platform 132a registers the C module 131c as the program module 131 on the module platform 132a. In response to the registration, an ID is assigned to the C module 131c. The ID is hereinafter referred to as “registration ID”. Here, it is assumed that “001” is assigned as the registration ID. The module platform 132a returns a response including the registration ID (“001”) to the extension module 131e (S405).

拡張モジュール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 extension module 131e generates a root URL of the C module 131c based on the registration ID. For example, “/ exmodule / 001” is generated as the root URL. That is, a character string in which the registration ID of the C module 131c is added to the relative path (“/ ex module”) of the URL of the extension module 131e is used as the root URL of the C module 131c. Note that the root URL of the C module 131c is not a function of the C module 131c but a URL indicating the C module 131c itself. For example, when the C module 131c is deleted, the root URL is used to specify the deletion target C module 131c.

拡張モジュール131eは、当該ルートURLをWebAPIとして登録することを、当該ルートURLと、拡張モジュール131eが有するプログラムモジュール131の追加機能に関するアドレス情報(例えば、ポインタ等)とを指定して、WebAPIモジュール131aに要求する(S406)。   The extension module 131e registers the root URL as a Web API, specifies the root URL and address information (for example, a pointer or the like) regarding the additional function of the program module 131 included in the extension module 131e, and the Web API module 131a. (S406).

続いて、WebAPIモジュール131wは、Cモジュール131cのルートURLと、拡張モジュール131eが有するプログラムモジュール131の追加機能に関するアドレス情報とを対応付けて、例えば、メモリ装置103に記憶する(S407)。これによって、ルートURLは、WebAPIとして公開される。なお、エージェント13の外部に対しては、Cモジュール131cのルートURLの絶対パスは、「<host>:<port>/platform/exmodule/001」となる。   Subsequently, the Web API module 131w associates the root URL of the C module 131c with the address information related to the additional function of the program module 131 included in the extension module 131e, and stores it in the memory device 103, for example (S407). As a result, the root URL is published as a Web API. For the outside of the agent 13, the absolute path of the root URL of the C module 131 c is “<host>: <port> / platform / exclude / 001”.

続いて、WebAPIモジュール131wは、ルートURLがWebAPIとして登録されたことを示す応答を拡張モジュール131eに返信する(S408)。   Subsequently, the Web API module 131w returns a response indicating that the root URL is registered as the Web API to the extension module 131e (S408).

なお、ここまでで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 C module 131c, not the URL for the function of the C module 131c. Therefore, for example, the widget 11a cannot call the function of the C module 131c at this stage.

続いて、拡張モジュール131eは、Cモジュール131cの登録ID(「001」)を指定して、Cモジュール131cの起動要求をモジュールプラットフォーム132aに送信する(S409)。当該起動要求に応じ、モジュールプラットフォーム132aは、当該登録IDに基づいて特定されるCモジュール131cをスレッドとして起動させる(S410)。   Subsequently, the extension module 131e designates the registration ID (“001”) of the C module 131c, and transmits an activation request for the C module 131c to the module platform 132a (S409). In response to the activation request, the module platform 132a activates the C module 131c specified based on the registration ID as a thread (S410).

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 C module 131c notifies the proxy module 131p of the URL for the function of the C module 131c and address information (for example, a pointer) regarding the function, as in step S102 of FIG. 4 (S411). ). The proxy module 131p stores the URL and the address information in association with each other, for example, in the memory device 103. Here, it is assumed that the relative path of the URL for the function of the C module 131 c is “/ 001 / functionC”. The URL is obtained by adding “functionC” to the registration ID of the C module 131c. The original identifier for the function of the C module 131c is “functionC”. By adding the registration ID, it is possible to increase the possibility that URL duplication between the C module 131c and other modules is avoided. This is because the registration ID basically does not overlap.

但し、当該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 proxy module 131p may check for URL duplication. When duplicate URLs are detected, the proxy module 131p may request the C module 131c to specify another URL, or the proxy module 131p may automatically generate another URL. .

なお、プロキシモジュール131pは、拡張エージェント13a内のプログラムモジュール131からは、WebAPIモジュール131wと同様に見える。すなわち、プロキシモジュール131pは、拡張エージェント13a内のプログラムモジュール131に対して、WebAPIモジュール131wと同じインタフェース(メソッド)を公開する。したがって、Cモジュール131cも含めて各プログラムモジュール131は、自らが起動された環境が、モジュールプラットフォーム132であるのか又はモジュールプラットフォーム131aであるのかを意識することなく、所定のメソッドを呼び出せばよい。そうすることで、各プログラムモジュール131は、WebAPIモジュール131w又はプロキシモジュール131pに、当該プログラムモジュール131の機能に対するURLと、当該機能に関するアドレス情報とを通知することができる。   Note that the proxy module 131p appears to the program module 131 in the extended agent 13a in the same manner as the Web API module 131w. That is, the proxy module 131p exposes the same interface (method) as the WebAPI module 131w to the program module 131 in the extended agent 13a. Therefore, each program module 131 including the C module 131c may call a predetermined method without being aware of whether the environment in which the program module 131 is started is the module platform 132 or the module platform 131a. By doing so, each program module 131 can notify the Web API module 131w or the proxy module 131p of the URL for the function of the program module 131 and the address information related to the function.

続いて、プロキシモジュール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 proxy module 131p designates the URL (“/ 001 / functionC”) for the function of the C module 131c, and transmits a registration request as a Web API for the function of the C module 131c to the extension module 131e (S412). . At this time, a communication identifier for the proxy module 131p may be notified to the proxy module 131p together with the URL. The identifier for communication with the proxy module 131p is an identifier for the extension module 131e to identify the proxy module 131p in communication between the proxy module 131p and the extension module 131e. The entity of the identifier depends on the communication protocol. However, if the identifier is known to the extension module 131e, the identifier may not be notified. Note that the communication between the proxy module 131p and the extension module 131e may be performed based on, for example, RMI (Remote Method Invocation). Alternatively, it may be performed based on a communication protocol independent of a program language such as HTTP or SOAP (Simple Object Access Protocol).

なお、ステップS412において、Cモジュール131cのアドレス情報が通知されないのは、当該アドレス情報は、拡張エージェント13aのプロセス内において有効な値であり、エージェント13内においては、無効な値であるからである。   In step S412, the address information of the C module 131c is not notified because the address information is a valid value in the process of the extended agent 13a and an invalid value in the agent 13. .

続いて、拡張モジュール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 extension module 131e requests the Web API module 131w to register as a Web API regarding the function of the C module 131c (S413). In the request, the URL in which the URL of the extension module 131e is added to the URL for the function of the C module 131c notified in step S412 and the address information related to the mediation function of the extension module 131e are specified. In the present embodiment, the URL obtained by adding the URL of the extension module 131e to the URL for the function of the C module 131c is “exmodule / 001 / functionC”. Hereinafter, the URL is referred to as a URL for the function of the C module 131c.

WebAPIモジュール131wは、Cモジュール131cの機能に対するURLと、拡張モジュール131eの仲介機能に関するアドレス情報とを対応付けて、例えば、メモリ装置103に記憶する。なお、拡張モジュール131eの仲介機能とは、WebAPIモジュール131wが受け付けたHTTPリクエストを、拡張エージェント13a内のプログラムモジュール131に仲介又は転送する機能をいう。上記したように、拡張モジュール131eは、当該仲介機能とは別に、プログラムモジュール131の追加機能を有する。当該追加機能のアドレス情報は、WebAPIモジュール131wによって、当該追加機能に対するURLに対応付けられて記憶されている。ステップS413では、当該追加機能と、当該仲介機能とを区別可能するために、当該仲介機能のアドレス情報として、当該追加機能とは異なるアドレス情報が、WebAPIモジュール131wに通知される。   The WebAPI module 131w associates the URL for the function of the C module 131c with the address information related to the mediation function of the extension module 131e, and stores them in the memory device 103, for example. The mediation function of the extension module 131e refers to a function of mediating or transferring an HTTP request received by the WebAPI module 131w to the program module 131 in the extension agent 13a. As described above, the extension module 131e has an additional function of the program module 131 in addition to the mediation function. The address information of the additional function is stored in association with the URL for the additional function by the WebAPI module 131w. In step S413, in order to be able to distinguish between the additional function and the mediation function, address information different from the additional function is notified to the Web API module 131w as the address information of the mediation function.

なお、例えば、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 C module 131c is disclosed to the outside of the agent 13 as “<host>: <port> / platform / exclude / 001 / functionC”. The URL is obtained by adding “/ functionC” to the root URL of the C module 131c.

続いて、WebAPIモジュール131wは、通知されたURLに係る機能に対するインタフェースがWebAPIとして登録されたことを示す応答を、拡張モジュール131eに返却する(S415)。   Subsequently, the Web API module 131w returns a response indicating that the interface for the function related to the notified URL is registered as the Web API to the extension module 131e (S415).

拡張モジュール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 extension module 131e returns a response indicating that the interface for the function of the C module 131c is registered as a Web API to the proxy module 131p (S416). Subsequently, the proxy module 131p returns a response indicating that the interface for the function of the C module 131c is registered as a Web API to the C module 131c (S417). The C module 131c makes a response to the activation instruction in step S410 to the module platform 132a (S418). The module platform 132a returns a response to the activation request for the C module 131c in step S409 to the extension module 131e (S419).

拡張モジュール131eは、ステップS402における、Cモジュール131cの追加要求に対する応答を、WebAPIモジュール131wに返却する(S420)。WebAPIモジュール131wは、Cモジュール131cのルートURLを含む応答を、ウィジェットランタイム12経由で、ウィジェット11aに返信する(S421)。その後、ウィジェット11aは、当該ルートURLに基づいて、Cモジュール131cの削除や、Cモジュール131cの機能の呼び出しを行うことができる。   The extension module 131e returns a response to the request for adding the C module 131c in step S402 to the Web API module 131w (S420). The WebAPI module 131w returns a response including the root URL of the C module 131c to the widget 11a via the widget runtime 12 (S421). Thereafter, the widget 11a can delete the C module 131c or call a function of the C module 131c based on the route URL.

続いて、図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 program modules 131 is mediated by the module platform 132 or the module platform 132a.

具体的には、ステップS406、S408、S413、及びS415に関して、WebAPIモジュール131wと拡張モジュール131eとのやり取りは、モジュールプラットフォーム132によって仲介されている。   Specifically, regarding the steps S406, S408, S413, and S415, the exchange between the Web API module 131w and the extension module 131e is mediated by the module platform 132.

また、ステップS411及びS417に関して、Cモジュール131cとプロキシモジュール131pとのやり取りは、モジュールプラットフォーム132aによって仲介されている。   Regarding steps S411 and S417, the exchange between the C module 131c and the proxy module 131p is mediated by the module platform 132a.

その他の点は、図8と同様である。   The other points are the same as in FIG.

続いて、ウィジェット11aが、Cモジュール131cの機能を呼び出す際に実行される処理について説明する。   Next, processing executed when the widget 11a calls the function of the C module 131c will be described.

図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 widget 11a inputs an execution request for the C module 131c to the widget runtime 12. In the execution request, the URL (“<host>: <port> / platform / exclusive / 001 / functionC”) for the function of the C module 131c is specified.

なお、図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 C module 131c is returned to the widget 11a. That is, the URL for the function of the C module 131c is not returned. Nevertheless, the widget 11a can specify the URL for the function of the C module 131c because the widget 11a is implemented from the beginning with the C module 131c planned to be used. That is, the widget 11a knows that the identifier of the function of the C module 131c is “functionC”, and the identifier added to the root URL of the C module 131c is the URL for the function of the C module 131c. Because they know the rules or promises to be. In step S421, a URL for the function of the C module 131c may be returned.

続いて、ウィジェットランタイム12は、当該URL宛にHTTPリクエストを送信する(S502)。当該HTTPリクエストは、WebAPIモジュール131wによって受信される。   Subsequently, the widget runtime 12 transmits an HTTP request addressed to the URL (S502). The HTTP request is received by the WebAPI module 131w.

WebAPIモジュール131wは、当該URLに対応づけられてメモリ装置103に記憶されているアドレス情報に係る拡張モジュール131eに対して、Cモジュール131cの実行を要求する(S503)。当該実行要求には、当該URLが指定される。但し、当該URLの全てが指定されなくてもよい。例えば、「/001/functionC」のみが指定されてもよい。   The WebAPI module 131w requests the extension module 131e related to the address information stored in the memory device 103 in association with the URL to execute the C module 131c (S503). The URL is specified in the execution request. However, not all the URLs need be specified. For example, only “/ 001 / functionC” may be specified.

続いて、拡張モジュール131eは、指定されたURLを含む、Cモジュール131cの実行要求を、プロキシモジュール131pに送信(転送)する(S504)。続いて、プロキシモジュール131pは、当該URLに対応付けられてメモリ装置103に記憶されているアドレス情報に基づいて、Cモジュール131cを呼び出す(S505)。Cモジュール131cは、呼び出しに応じ、自らに実装されている機能を実現するための処理を実行する(S506)。続いて、Cモジュール131cは、機能の実行結果(成果物)をプロキシモジュール131pに返却する(S507)。   Subsequently, the extension module 131e transmits (transfers) an execution request for the C module 131c including the designated URL to the proxy module 131p (S504). Subsequently, the proxy module 131p calls the C module 131c based on the address information associated with the URL and stored in the memory device 103 (S505). In response to the call, the C module 131c executes a process for realizing a function implemented in the C module 131c (S506). Subsequently, the C module 131c returns the function execution result (product) to the proxy module 131p (S507).

プロキシモジュール131pは、当該実行結果を含む応答を機能モジュールに返信する(S508)。機能モジュールは、当該実行結果を含む応答をWebAPIモジュール131wに返却する(S509)。WebAPIモジュール131wは、当該実行結果を含むHTTPレスポンスを、ウィジェットランタイム12に返信する(S510)。ウィジェットランタイム12は、当該実行結果を含む応答を、ウィジェット11aに返却する(S511)。   The proxy module 131p returns a response including the execution result to the functional module (S508). The functional module returns a response including the execution result to the WebAPI module 131w (S509). The WebAPI module 131w returns an HTTP response including the execution result to the widget runtime 12 (S510). The widget runtime 12 returns a response including the execution result to the widget 11a (S511).

続いて、Cモジュール131cの削除について説明する。Cモジュール131cの削除命令は、例えば、Cモジュール131cのルートURLに対して、削除命令を示す所定の文字列(例えば、「DELETE」等)が指定されることによって表現される。本実施の形態では、「<host>:<port>/platform/exmodule/001/DELETE」によって、Cモジュール131cの削除命令が表現される。   Next, deletion of the C module 131c will be described. The deletion command for the C module 131c is expressed, for example, by designating a predetermined character string (for example, “DELETE” or the like) indicating the deletion command for the root URL of the C module 131c. In the present embodiment, the deletion instruction of the C module 131c is expressed by “<host>: <port> / platform / exclude / 001 / DELETE”.

ウィジェット11aは、Cモジュール131cの削除を希望する際、URLとして、「<host>:<port>/platform/exmodule/001/DELETE」が指定されたHTTPリクエストを、ウィジェットランタイム12を介して送信する。   When the widget 11a desires to delete the C module 131c, the widget 11a transmits an HTTP request with “<host>: <port> / platform / exclusive / 001 / DELETE” specified as the URL via the widget runtime 12. .

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 Web API module 131w receives the HTTP request, the Web API module 131w is an instruction to delete the program module 131 that is identified by “/ exmodule / 001” based on “DELETE” included in the URL. Is interpreted. Therefore, the WebAPI module 131w deletes the program module 131 whose registration ID is “001” with respect to the extension module 131e related to the address information stored in the memory device 103 in association with “/ exmodule / 001”. Request. The extension module 131e requests the module platform 132a to delete the program module 131 whose registration ID is “001”. The module platform 132a deletes the C module 131c whose registration ID is “001”. That is, the registration with respect to the module platform 132a is canceled for the C module 131c.

なお、Cモジュール131c以外であって、拡張エージェント13aに追加された他のプログラムモジュール131についても、同様の手順で削除することができる。   Other program modules 131 other than the C module 131c and added to the extended agent 13a can be deleted by the same procedure.

上述したように、本実施の形態によれば、エージェント13は、機能拡張用のインタフェース(プログラムモジュール131の追加機能に対するインタフェース)を備え、当該インタフェースの呼び出しに応じて、機能を拡張することができる。したがって、ウィジェット11に機能を提供するエージェント13に関して、機能拡張の簡便性を向上させることができる。   As described above, according to the present embodiment, the agent 13 includes a function expansion interface (an interface to an additional function of the program module 131), and can expand the function in response to the interface call. . Therefore, with regard to the agent 13 that provides a function to the widget 11, the convenience of function expansion can be improved.

また、機能拡張に係るプログラムモジュール131は、エージェント13とは別プロセスにおいて機能する拡張エージェント13aに追加される。したがって、複数のウィジェット11から同時に利用される可能性の高いエージェント13が、当該プログラムモジュール131の動作不正やメモリの消費等の影響を受ける可能性は低い。よって、ウィジェット11に機能を提供するエージェント13に関して、機能拡張の安全性を向上させることができる。   Further, the program module 131 related to function expansion is added to the extended agent 13 a that functions in a process different from that of the agent 13. Therefore, it is unlikely that the agent 13 that is likely to be used simultaneously from the plurality of widgets 11 is affected by the operation improper operation of the program module 131 or the memory consumption. Therefore, regarding the agent 13 that provides the function to the widget 11, the safety of function expansion can be improved.

また、プログラムモジュール131の機能に対するURLは、当該プログラムモジュール131より通知される(取得される)。換言すれば、プログラムモジュール131の機能に対するURLは、ランダムに割り当てられるものではなく、プログラムモジュール131より取得される識別子に基づいて、所定の規則に則して生成される。したがって、プログラムモジュール131を利用するウィジェット11にとって、プログラムモジュール131の機能に対するURLがどのような値であるかについて、予測性を高めることができる。   The URL for the function of the program module 131 is notified (obtained) from the program module 131. In other words, the URL for the function of the program module 131 is not randomly assigned, but is generated according to a predetermined rule based on the identifier acquired from the program module 131. Therefore, for the widget 11 that uses the program module 131, it is possible to improve the predictability of the URL for the function of the program module 131.

なお、WebAPIモジュール131wは、メモリ装置103に記憶しているURLの一覧を、ウィジェット11に対して提供するインタフェースを有していてもよい。具体的には、当該一覧の提供機能に対するURLがWebAPIモジュール131wに対して割り当てられてもよい。WebAPIモジュール131wは、当該URLが指定されたHTTPリクエストが受信された場合は、メモリ装置103に記憶しているURLの一覧を返信する。ウィジェット11は、当該一覧の中から、例えばキーワード検索によって所望の機能に対するURLを特定することができる。その結果、ウィジェット11と機能(プログラムモジュール131)との関係を、疎又は動的なものとすることができる。   The WebAPI module 131w may have an interface that provides the widget 11 with a list of URLs stored in the memory device 103. Specifically, a URL for the list providing function may be assigned to the WebAPI module 131w. The Web API module 131w returns a list of URLs stored in the memory device 103 when an HTTP request in which the URL is specified is received. The widget 11 can specify a URL for a desired function from the list by, for example, keyword search. As a result, the relationship between the widget 11 and the function (program module 131) can be sparse or dynamic.

なお、本実施の形態において、エージェント13は、第一の機能実行手段の一例である。拡張エージェント13aは、第二の機能実行手段の一例である。プログラムモジュール131の機能に対するURLは、機能毎に割り当てられた識別情報の一例である。   In the present embodiment, the agent 13 is an example of a first function execution unit. The extended agent 13a is an example of a second function execution unit. The URL for the function of the program module 131 is an example of identification information assigned to each function.

以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   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 SYMBOLS 10 Information processing apparatus 11 Widget 12 Widget runtime 13 Agent 13a Extended agent 100 Drive apparatus 101 Recording medium 102 Auxiliary storage apparatus 103 Memory apparatus 104 CPU
105 interface device 106 display device 107 input device 131 program module 132 module platform 133 module runtime 131a A module 131b B module 131c C module 131e extension module 131p proxy module 131w WebAPI module B bus

特開2010−092376号公報JP 2010-092376 A

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.
前記第二の機能実行手段は、前記プログラムモジュールの追加に応じ、当該プログラムモジュールの機能に対する前記第一の識別情報を取得して、当該第一の識別情報を当該プログラムモジュールに対応付けて記憶部に記憶し、前記第一の機能実行手段より転送された実行要求に指定されている前記第一の識別情報に対応付けられている前記プログラムモジュールに機能を実行させる請求項1記載の情報処理装置。 The second function execution means acquires the first identification information for the function of the program module according to the addition of the program module, and associates the first identification information with the program module and stores the first identification information. The information processing apparatus according to claim 1, wherein the function is executed by the program module associated with the first identification information specified in the execution request transferred from the first function execution unit. . 前記第二の機能実行手段は、前記プログラムモジュールの追加に応じて当該プログラムモジュールより取得された前記第一の識別情報を前記第一の機能実行手段に通知し、
前記第一の機能実行手段は、前記第二の機能実行手段より通知された前記第一の識別情報を、前記第二の機能実行手段に対応付けて記憶部に記憶し、受信された機能の実行要求に指定された前記第一の識別情報が、前記第二の機能実行手段に対応付けられている場合に、当該実行要求を前記第二の機能実行手段に転送する請求項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 first function execution means is a case where the first identification information specified in the received function execution request indicates a deletion function of the program module, and the first identification information is the first function information. When the second identification information related to the second function execution unit is associated, the program module deletion request related to the first identification information is transferred to the second function execution unit,
前記第二の機能実行手段は、前記第一の機能実行手段より転送された前記削除要求に指定された前記第一の識別情報に含まれている第三の識別情報に係る前記プログラムモジュールの登録を解除し、  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.
JP2012008596A 2012-01-19 2012-01-19 Information processing apparatus and program Expired - Fee Related JP5927930B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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