JP2010262453A - Method, device and program for relaying of inter-software communication - Google Patents

Method, device and program for relaying of inter-software communication Download PDF

Info

Publication number
JP2010262453A
JP2010262453A JP2009112321A JP2009112321A JP2010262453A JP 2010262453 A JP2010262453 A JP 2010262453A JP 2009112321 A JP2009112321 A JP 2009112321A JP 2009112321 A JP2009112321 A JP 2009112321A JP 2010262453 A JP2010262453 A JP 2010262453A
Authority
JP
Japan
Prior art keywords
software
identifier
function
cooperation
relay server
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.)
Granted
Application number
JP2009112321A
Other languages
Japanese (ja)
Other versions
JP5099073B2 (en
Inventor
Tomohiro Otake
智裕 大嶽
Akihiko Matsuo
昭彦 松尾
Akio Shimono
暁生 下野
Kenji Oki
憲二 大木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009112321A priority Critical patent/JP5099073B2/en
Publication of JP2010262453A publication Critical patent/JP2010262453A/en
Application granted granted Critical
Publication of JP5099073B2 publication Critical patent/JP5099073B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve inter-software communication to be executed in a Web browser while securing security. <P>SOLUTION: Into a Web document to be relayed by a relay server, a code for communicating with the other Web document through the relay server is poured. On the basis of cooperative definition, the mutual Web documents communicate through the relay server with the poured codes. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

開示する技術は、Webブラウザ内で実行される複数のソフトウェア間の通信の中継技術に関する。   The disclosed technology relates to a relay technology for communication between a plurality of software executed in a Web browser.

最近のWebブラウザには same origin policy というセキュリティ機構が備わっており、異なったオリジン(送信元)から読み込まれたWebアプリケーション(ソフトウェア)が自由に通信を行うことがないように制御され、セキュリティが確保される。   Recent web browsers have a security mechanism called same origin policy, which ensures that security is controlled by preventing web applications (software) read from different origins (senders) from communicating freely. Is done.

一方、最近では、同一ブラウザ内に複数のドキュメントを表示させ、異なったオリジンから読み込まれたWebアプリケーション同士が通信を行うような、マッシュアップと呼ばれる手法が使われるようになってきた。   On the other hand, recently, a technique called mashup has been used, in which a plurality of documents are displayed in the same browser, and Web applications read from different origins communicate with each other.

しかし、このマッシュアップを実現するにあたっては、上述のsame origin policy機構によりアプリケーション間の連携が阻害されるため、same origin policy によるセキュリティ機構を回避する手法が求められている。   However, in order to realize this mashup, the above-described same origin policy mechanism hinders cooperation between applications. Therefore, a technique for avoiding the security mechanism based on the same origin policy is required.

Webアプリケーション間の連携を実現する第1の従来技術として、「中継サーバによるドメイン越え」という技術が知られている。更に、この技術として、「パラメータによる中継」技術と「ドメインのエンコーディングによる中継」技術が知られている。   As a first conventional technique for realizing cooperation between Web applications, a technique called “domain crossing by a relay server” is known. Further, as this technique, a “relay by parameter” technique and a “relay by domain encoding” technique are known.

まず、「パラメータによる中継」技術は、読み込みたいURIを例えば「http://www.exapmle.net/dir/」とした場合に、「http://proxy.example.org/?uri=http://www.exapmle.net/dir/」などのように上記URIが中継ドメイン「proxy.example.org」に対するリクエストのクエリパラメータとして埋め込まれる方法である。この手法は、CGIプロキシでよく使われている。この方法により中継サーバが経由されるときのオリジンは、中継サーバのオリジンとなる。このため、中継サーバ経由で異なるオリジンから読み込まれたドキュメントのオリジンは、互いに等しくなる。図15は、「パラメータによる中継」技術の例を示す図である。ドメインPのプロキシ経由で異なるサーバA及びBから読み込まれた各ドキュメントが、クライアントコンピュータの同一ブラウザに含まれる各フレーム等に表示される。この場合、各ドキュメントのドメインは、同一のドメインPとなる。従って、各ドキュメントは、same origin policyに阻まれずに、ブラウザ上で相互に通信が可能となる。   First, in the “relay by parameter” technique, when the URI to be read is “http://www.exapmle.net/dir/”, for example, “http://proxy.example.org/?uri=http: The above URI is embedded as a query parameter of a request for the relay domain “proxy.example.org”, such as “//www.exapmle.net/dir/”. This technique is often used in CGI proxies. The origin when the relay server is routed by this method is the origin of the relay server. For this reason, the origins of documents read from different origins via the relay server are equal to each other. FIG. 15 is a diagram illustrating an example of the “relay by parameter” technique. Each document read from different servers A and B via the proxy of domain P is displayed in each frame included in the same browser of the client computer. In this case, the domain of each document is the same domain P. Therefore, the documents can communicate with each other on the browser without being blocked by the same origin policy.

次に、上記第1の従来技術における「ドメインのエンコーディングによる中継」技術について説明する。
この技術は、読み込みたいURIを「http://www.example.net/dir/」とした場合に、「http://http-www-example-net.proxy.example.org/dir/」などのように、もともとのURIのスキーマ・ホスト・ポートをドメインの一部にエンコーディングし、パスとクエリを付加する手法である。図16は、「ドメインのエンコーディングによる中継」技術の例を示す図である。この手法のプロキシ経由で異なるサーバA及びBから読み込まれた各ドキュメントは、クライアントコンピュータの同一ブラウザに含まれる各フレーム等に表示される。この場合、各ドキュメントのドメインは、ドメインPの一部に、例えばA.P又はB.Pというようにエンコーディングされる。この場合、各ドキュメントのドメインは、異なるドメインとなる。この手法は、same origin policyによるセキュリティを保ち、SSLの証明書と相性がよく、変換・逆変換の処理効率もよく、またそのURIを見たときに容易に解読することが可能(ヒューマンリーダブル)なエンコーディング方法である。
Next, the “relay by domain encoding” technique in the first prior art will be described.
In this technology, when the URI to be read is “http://www.example.net/dir/”, “http://http-www-example-net.proxy.example.org/dir/” etc. In this method, the original URI schema host port is encoded as part of the domain, and the path and query are added. FIG. 16 is a diagram illustrating an example of a “relay by domain encoding” technique. Each document read from different servers A and B via the proxy of this method is displayed on each frame included in the same browser of the client computer. In this case, the domain of each document is a part of the domain P, for example, A.D. P or B. Encoded as P. In this case, the domain of each document is a different domain. This method maintains security according to the same origin policy, is compatible with SSL certificates, has high conversion / inversion processing efficiency, and can be easily deciphered when viewing its URI (human readable) Encoding method.

Webアプリケーション間の連携を実現する第2の従来技術として、「ブラウザ内のドキュメント間通信」技術が知られている。更に、この技術として、「iframe proxy communication」技術と「window.postMessage」技術が知られている。   As a second conventional technique for realizing cooperation between Web applications, a “inter-document communication in a browser” technique is known. Furthermore, as this technique, an “iframe proxy communication” technique and a “window.postMessage” technique are known.

「iframe proxy communication」技術は、HTML(HyperText Markup Language)におけるiframe要素のsrc属性のフラグメントIDを用いてドキュメント間で通信を行う手法である。   The “iframe proxy communication” technique is a method of performing communication between documents using a fragment ID of a src attribute of an iframe element in HTML (HyperText Markup Language).

一方、「window.postMessage」技術は、HTML5で採用される新アプリケーションプログラミングインタフェース(API)である。HTML5は、W3C(World Wide Web Consortium)やWHATWG(Web Hypertext Application Technology Working Group)で策定中の次期HTML仕様である。このHTML5には、「window.postMessage」というAPIが定義されており、このAPIを用いることで、異なったオリジンのドキュメント間で通信を行うことができるようになっている。   On the other hand, the “window.postMessage” technology is a new application programming interface (API) adopted in HTML5. HTML5 is the next HTML specification that is being developed by the World Wide Web Consortium (W3C) and the Web Hypertext Application Technology Working Group (WHATWG). In HTML5, an API “window.postMessage” is defined. By using this API, communication between documents of different origins can be performed.

本出願が開示する技術に関連する従来技術として、下記先行技術文献が開示されている。   The following prior art documents are disclosed as conventional techniques related to the technique disclosed in the present application.

特開2000−076074号公報JP 2000-076074 A 特開2005−267605号公報JP 2005-267605 A

しかし、前述した各従来技術は、以下に示される問題点を有している。
まず、前述した第1の従来技術における「パラメータによる中継」技術では、もともとは異なるオリジンであったドキュメント同士が中継サーバを経由することで同一のオリジンとなるため、same origin policy によるセキュリティ機構が動作しない。このため、ドキュメント間では自由な通信ができるが、いかなる通信も許容してしまうため、情報の漏洩や改竄が起きる可能性があるという問題点を有している。
However, each of the above-described conventional techniques has the following problems.
First, with the “relay by parameter” technology in the first prior art described above, documents that originally had different origins become the same origin by passing through the relay server, so the security mechanism based on the same origin policy operates. do not do. For this reason, although free communication can be performed between documents, any communication is allowed, and thus there is a problem that information leakage or falsification may occur.

前述した第1の従来技術における「ドメインのエンコーディングによる中継」技術では、もともとのURIのオリジンが異なっていればエンコーディング後のURIでもオリジンが異なるので、異なるオリジンを中継サーバ経由で読み込んでもsame origin policyが働く。この結果、ドキュメント間では通信ができないため安全ではあるが、アプリケーションを連携させることができず、マッシュアップ等の実現が困難である。   In the “relay by domain encoding” technique in the first prior art described above, if the origin of the original URI is different, the origin is also different in the URI after encoding. Work. As a result, although communication is not possible between documents, it is safe, but the application cannot be linked, and it is difficult to achieve mashup or the like.

前述した第2の従来技術における「iframe proxy communication」技術では、URIのフラグメントIDという、長さの制限の厳しい文字列による通信であるため、通信効率が良いとはいえない。また、「iframe proxy communication」技術では、通信するドキュメント同士が通信相手としてお互いに認識し合っていないと安全な通信を実現することができないという問題点を有している。   In the “iframe proxy communication” technique in the second prior art described above, communication is based on a character string having a severe length restriction, which is a URI fragment ID. In addition, the “iframe proxy communication” technology has a problem in that secure communication cannot be realized unless communicating documents are mutually recognized as communication partners.

前述した第2の従来技術における「window.postMessage」技術に関しては、HTML5仕様が策定途中であり、この仕様に則ったWebブラウザの広い普及はまだ先のことであるため、未完成の技術である。また、「window.postMessage」技術では、ドキュメント間が安全に通信をするためにはドキュメント同士が通信相手としてお互いに認識し合っている必要がある。   Regarding the “window.postMessage” technology in the second prior art described above, the HTML5 specification is in the process of being formulated, and the widespread use of Web browsers according to this specification is still unfinished. . Also, with the “window.postMessage” technology, it is necessary for documents to recognize each other as communication partners in order to communicate securely between documents.

開示する技術が解決しようとする課題は、Webブラウザ内で実行される複数のソフトウェア間の通信を、セキュリティを確保しつつ行えるようにすることにある。   A problem to be solved by the disclosed technology is to enable communication between a plurality of software programs executed in a Web browser while ensuring security.

上記課題を解決するために、態様の一例は、第1の対象サーバから中継サーバを経由して取得した第1のWebドキュメントに基づいて、クライアントのブラウザ内で実行される連携元ソフトウェアと、第2の対象サーバからその中継サーバを経由して取得した第2のWebドキュメントに基づいて、そのブラウザ内で実行される連携先ソフトウェアとの間の通信を、その中継サーバにおいて中継する中継方法として実現され、中継サーバが、以下のステップを実行する。   In order to solve the above-described problem, an example of an aspect is as follows: cooperation source software executed in a client browser based on a first Web document acquired from a first target server via a relay server; Based on the second Web document acquired from the two target servers via the relay server, it is realized as a relay method for relaying the communication with the cooperation destination software executed in the browser at the relay server. The relay server executes the following steps.

第1の注入ステップは、第1のWebドキュメントに、連携元ソフトウェアの識別子とその連携元ソフトウェア内で実行される第1の関数の識別子とその第1の関数に与えられる引数を含む第1のイベント通知を、連携元ソフトウェアが中継サーバに送信するための第1の命令を注入する。   In the first injection step, a first Web document includes an identifier of a cooperation source software, an identifier of a first function executed in the cooperation source software, and an argument given to the first function. A first command for sending the event notification to the relay server by the cooperation source software is injected.

第2の注入ステップは、第2のWebドキュメントに、第2の関数の識別子と引数を含む中継サーバからの第2のイベント通知に基づいて、連携先ソフトウェアがその第2の関数をその引数により実行するための第2の命令を注入する。   In the second injection step, based on the second event notification from the relay server including the identifier and argument of the second function in the second Web document, the cooperation destination software sends the second function to the argument by the argument. Inject a second instruction to execute.

第1の送信ステップは、第1の命令が注入された第1のWebドキュメントおよび第2の命令が注入された第2のWebドキュメントをクライアントに送信する。
決定ステップは、連携元ソフトウェアから、第1のイベント通知を受信したときに、連携元ソフトウェアの識別子とその連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応付けて、その連携元ソフトウェアとの通信が行われる連携先ソフトウェアの識別子とその連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを保持した連携定義テーブルを参照し、その第1のイベント通知に含まれるその連携元ソフトウェアの識別子とその連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応する、連携先ソフトウェアの識別子とその連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを決定する。
In the first transmission step, the first Web document in which the first instruction is injected and the second Web document in which the second instruction is injected are transmitted to the client.
When the determination step receives the first event notification from the cooperation source software, the determination step is associated with the combination of the identifier of the cooperation source software and the identifier of the first function executed by the cooperation source software. The linkage included in the first event notification is referred to by referring to the linkage definition table that holds the combination of the identifier of the linkage destination software that communicates with the software and the identifier of the second function executed by the linkage destination software. The combination of the identifier of the link destination software and the identifier of the second function executed by the link destination software corresponding to the combination of the identifier of the source software and the identifier of the first function executed by the link source software is determined. .

第2の送信ステップは、決定された組み合わせに含まれる連携先ソフトウェアの識別子に基づいて特定される連携先ソフトウェアに対して、第2のイベント通知として、その決定された組み合わせに含まれる第2の関数の識別子と引数とを送信する。   In the second transmission step, the second event included in the determined combination is notified to the cooperation destination software specified based on the identifier of the cooperation destination software included in the determined combination as a second event notification. Send function identifier and arguments.

開示する技術によれば、ソフトウェア間で、中継サーバを介してユーザまたはシステムの許諾に基づいた通信を行うことにより、該ソフトウェア間での安全な通信が可能となる。   According to the disclosed technology, it is possible to perform secure communication between software by performing communication based on the permission of the user or the system via the relay server.

開示する技術によれば、ソフトウェア間の通信の可否をユーザやシステムが定義するため、各ソフトウェアに通信相手のソフトウェアを意識させる必要をなくすことが可能となる。   According to the disclosed technology, since the user and the system define whether or not communication between software is possible, it is possible to eliminate the necessity of making each software aware of the software of the communication partner.

開示する技術によれば、クライアント側はプラグイン等が不要で通常のブラウザのみで動作させることが可能となる。   According to the disclosed technology, the client side does not require a plug-in or the like and can be operated only by a normal browser.

Webドキュメント間通信システムの第1の実施形態の基本構成図である。It is a basic lineblock diagram of a 1st embodiment of a communication system between Web documents. 第1の実施形態の動作フローチャートである。It is an operation | movement flowchart of 1st Embodiment. ウィジェットのメタデータのデータ構成図である。It is a data block diagram of the metadata of a widget. 発行関数に対するスクリプト注入の説明図である。It is explanatory drawing of the script injection | pouring with respect to an issue function. 受信関数に対するHTMLコード注入の説明図である。It is explanatory drawing of HTML code injection | pouring with respect to a reception function. 連携定義の動作説明図である。It is operation | movement explanatory drawing of a cooperation definition. Webドキュメント間通信システムの第2の実施形態の基本構成図である。It is a basic lineblock diagram of a 2nd embodiment of a communication system between Web documents. 第2の実施形態における読込みシーケンスを示す動作シーケンス図である。It is an operation | movement sequence diagram which shows the reading sequence in 2nd Embodiment. 第2の実施形態における連携定義シーケンスを示す動作シーケンス図である。It is an operation | movement sequence diagram which shows the cooperation definition sequence in 2nd Embodiment. 第2の実施形態における連携シーケンスを示す動作シーケンス図である。It is an operation | movement sequence diagram which shows the cooperation sequence in 2nd Embodiment. 第2の実施形態における連携定義テーブルのデータベーススキーマを示す図である。It is a figure which shows the database schema of the cooperation definition table in 2nd Embodiment. 第2の実施形態におけるリクエスト受付処理を示す動作フローチャートである。It is an operation | movement flowchart which shows the request reception process in 2nd Embodiment. マッシュアップの例を示す図である。It is a figure which shows the example of mashup. 中継サーバ101を実現できるコンピュータのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of the computer which can implement | achieve the relay server 101. 第1の従来技術の説明図である。It is explanatory drawing of a 1st prior art. 第2の従来技術の説明図である。It is explanatory drawing of a 2nd prior art.

以下、実施形態について詳細に説明する。
図1は、Webドキュメント間通信システムの第1の実施形態の基本構成図である。
前述したように、same origin policyによるセキュリティ機構の存在により、Webアプリケーション(ソフトウェア)間の通信は、通信はできるが全ての通信を許可してしまうため安全でない、若しくは、そもそも通信ができない、のいずれかであった。
Hereinafter, embodiments will be described in detail.
FIG. 1 is a basic configuration diagram of a first embodiment of a communication system between Web documents.
As described above, due to the existence of a security mechanism based on the same origin policy, communication between Web applications (software) can be performed, but it is not safe because it permits all communication, or communication cannot be performed in the first place. It was.

これに対して、本実施形態では、異なるサーバ102(#m)及び102(#n)からの各ドキュメントは、オリジンが異なるようにして中継サーバ101経由でブラウザ103内の各フレームに読み込まれる。その際に、各ドキュメントと中継サーバ101が通信可能になるように、中継サーバ101が各ドキュメントにコードを注入する。ドキュメントから中継サーバ101にドキュメント間通信の要求が来たら、中継サーバ101がその通信を許可するか否かを判断し、許可ならば通信先のドメインの中継サーバ101がブラウザ103上のドキュメントに対して、通信内容を配信する。   On the other hand, in the present embodiment, each document from different servers 102 (#m) and 102 (#n) is read into each frame in the browser 103 via the relay server 101 with different origins. At that time, the relay server 101 injects a code into each document so that each document and the relay server 101 can communicate with each other. When a request for inter-document communication is received from the document to the relay server 101, the relay server 101 determines whether or not to permit the communication. To distribute communication contents.

各ドキュメントは、中継サーバ101を経由することによりオリジンが異なるため、same origin policyによってブラウザ103内では相互に通信はできない。本実施形態では、ブラウザ103内のドキュメント間で通信を行いたい場合には、中継サーバ101によって各ドキュメントに注入されたコードによって、中継サーバ101を経由して通信を実行する。この際、中継サーバ101はドキュメント相互間の通信を許可するか否かを判断できるため、Webアプリケーション間の安全な連携が可能となる。   Since each document has a different origin by way of the relay server 101, it is not possible to communicate with each other within the browser 103 according to the same origin policy. In this embodiment, when it is desired to perform communication between documents in the browser 103, communication is executed via the relay server 101 by a code injected into each document by the relay server 101. At this time, since the relay server 101 can determine whether or not to allow communication between documents, secure cooperation between Web applications becomes possible.

図2は、上述の第1の実施形態の動作を示す動作フローチャートである。以下に、この動作フローチャートの各ステップの動作を説明する。

ステップS201
まず、ブラウザ103を利用するユーザが、中継サーバ101に対してメタデータのURI(Uniform Resource Identifier)を渡し、中継サーバ101がそのメタデータに基づいて、ウィジェット(ブラウザ内で、該ブラウザとは独立して実行されるソフトウェアをいう。)をブラウザ103に追加表示させる。この例では、ブラウザ103において、アドレス帳と地図のウィジェットが読み込まれる。
FIG. 2 is an operation flowchart showing the operation of the first embodiment. Hereinafter, the operation of each step of this operation flowchart will be described.

Step S201 :
First, a user who uses the browser 103 passes a URI (Uniform Resource Identifier) of metadata to the relay server 101, and the relay server 101 determines a widget (in the browser, independent of the browser) based on the metadata. Is displayed on the browser 103. In this example, the browser 103 reads an address book and a map widget.

ステップS202
各ウィジェットがサーバ102より中継サーバ101経由で読み込まれる際に、中継サーバ101が、各ウィジェットに対して、URIの置換、発行関数へのコード(スクリプト)注入、受信関数へのコード注入を行う。
Step S202 :
When each widget is read from the server 102 via the relay server 101, the relay server 101 performs URI replacement, code (script) injection to the issuance function, and code injection to the reception function for each widget.

ステップS203
ユーザは、中継サーバ101に対して、発行ウィジェット及び発行関数と受信ウィジェット及び受信関数の組を指定することにより、連携定義を指定する。この例では、「アドレス帳ウィジェットにおいて住所が選択されたら地図ウィジェットにて検索が実行される」という連携関係が、下記記述によって定義される。この記述は、ウィジェットw1において住所を選択する関数「AddressSelected」が実行されたら、ウィジェットw2において地図を検索する関数「SearchMapA」が実行されるという連携関係を表している。

w1:AddressSelected -> w2:SearchMapA
Step S203 :
The user designates the linkage definition for the relay server 101 by designating a combination of the issue widget, issue function, reception widget, and reception function. In this example, the following relationship is defined as “a search is executed in the map widget when an address is selected in the address book widget”. This description represents a cooperative relationship in which when the function “AddressSelected” for selecting an address is executed in the widget w1, the function “SearchMapA” for searching a map is executed in the widget w2.

w1: AddressSelected-> w2: SearchMapA

上述の連携定義は、例えばブラウザ103を利用するユーザが、中継サーバ101から提供される連携定義用のホームページを呼び出して実行する。例えば、ユーザが発行ウィジェット名と受信ウィジェット名を指定すると、中継サーバ101は、サーバ102にアクセスして、これらのウィジェットに対応するメタデータ(図3)を参照し、発行関数と受信関数のリストをユーザに提示する。ユーザは、提示された関数の中から、所望の発行関数と受信関数の組を指定する。   The above-described cooperation definition is executed by a user who uses the browser 103, for example, by calling a homepage for cooperation definition provided from the relay server 101. For example, when the user specifies the issue widget name and the receive widget name, the relay server 101 accesses the server 102 and refers to the metadata (FIG. 3) corresponding to these widgets, and lists the issue function and the receive function. To the user. The user designates a desired combination of issue function and reception function from the presented functions.

ステップS204
中継サーバ101が、ステップS203にてユーザによって指定された連携定義を、内部の連携定義テーブルに登録する。或いは、この連携定義は、例えば中継サーバ101において、予めプリセットされてもよい。
Step S204 :
The relay server 101 registers the cooperation definition designated by the user in step S203 in the internal cooperation definition table. Alternatively, this linkage definition may be preset in the relay server 101, for example.

ステップS205
アドレス帳ウィジェットにおいて、住所が選択されると、ステップS202にて発行関数へ注入されたスクリプトにより、中継サーバ101にイベントが発行される。
Step S205 :
When an address is selected in the address book widget, an event is issued to the relay server 101 by the script injected into the issue function in step S202.

ステップS206
中継サーバ101は、ステップS204にて定義した連携定義テーブルを参照して、配信先を決定する。この例では、地図ウィジェットの地図検索が配信先となる。
Step S206 :
The relay server 101 determines a delivery destination with reference to the cooperation definition table defined in step S204. In this example, the map widget map search is the distribution destination.

ステップS207
中継サーバ101は、ステップS202にて受信関数に注入されたiframeを用いて、イベントをクライアントに送信する。この結果、地図ウィジェットにおいて地図検索が実行されることになる。
Step S207 :
The relay server 101 transmits an event to the client using the iframe injected into the reception function in step S202. As a result, a map search is executed in the map widget.

以上のステップS201からS207までの一連の動作により、ブラウザ103上で表示されているウィジェット間で、中継サーバ101経由による連携が実現される。   Through the series of operations from step S201 to step S207, cooperation between the widgets displayed on the browser 103 via the relay server 101 is realized.

前述のステップS201に基づいて図1のサーバ102から発行されるウィジェットには一般的に、図3の301又は302として例示されるようなメタデータが付けられている。メタデータ301又は302には、303又は304として示されるcontent要素のsrc属性としてWebアプリケーションのURIが書かれている。また、305として示されるpublisher要素と306として示されるsubscriber要素には発行関数と受信関数の関数名が書かれている。このメタデータに基づいて、後述するウィジェット読込み処理が実行される。   The widget issued from the server 102 in FIG. 1 based on the above-described step S201 is generally attached with metadata as exemplified by 301 or 302 in FIG. In the metadata 301 or 302, the URI of the Web application is written as the src attribute of the content element shown as 303 or 304. In addition, in the publisher element shown as 305 and the subscriber element shown as 306, the function names of the issuing function and the receiving function are written. Based on this metadata, a widget reading process described later is executed.

前述のステップS202の実行において、中継サーバ101(図1)を経由してリソースが読み込まれるとき、リソースがHTMLやJavaScriptなどのテキスト形式のリソースであった場合に、URIの置換が行われる。この置換処理により、もともとのURIが中継サーバ101経由のURIに置き換えられることになる。   In the execution of step S202 described above, when the resource is read via the relay server 101 (FIG. 1), if the resource is a text format resource such as HTML or JavaScript, URI replacement is performed. By this replacement process, the original URI is replaced with the URI via the relay server 101.

URIの置換においては、ウィジェットごとに一意のインスタンスIDがドメイン名に埋め込まれる。例えば、元のURIが「http://address.example.net/Address.html 」でウィジェットインスタンスIDが「cn0306」なら、置換後のURIは「http://cn0306-http-address-exapmle-net.hub.example.org/Address.html」のようになる。   In URI replacement, a unique instance ID is embedded in the domain name for each widget. For example, if the original URI is “http://address.example.net/Address.html” and the widget instance ID is “cn0306”, the replaced URI is “http: // cn0306-http-address-exapmle-net”. .hub.example.org / Address.html ".

一意なウィジェットインスタンスIDをドメイン名に埋め込むことには、主に2つの理由がある。一つは、ウィジェットインスタンスIDに基づいて中継サーバ101がウィジェットを特定できるようにするためである。もう一つは、もともとのWebアプリケーションのオリジンが同じであったとしても、中継サーバ101を経由することで異なるオリジンになり、ウィジェット間の直接の通信を不可能にさせてセキュリティが高められることである。   There are two main reasons for embedding a unique widget instance ID in a domain name. One is to enable the relay server 101 to specify a widget based on the widget instance ID. The other is that even if the origin of the original Web application is the same, it becomes a different origin via the relay server 101, and the direct communication between widgets is made impossible and security is improved. is there.

メタデータに発行関数があることが記述されていた場合(例えば図3の301の場合)には、中継サーバ101は、前述のステップS202の実行において、サーバ102からの読み込んだウィジェット内の発行関数へスクリプト(コード)を注入する。今例えば、元のHTMLドキュメントが、図4の401のようになっており、発行関数が403で示されるようにグローバル関数として定義されているとする。このようなHTMLドキュメントのbody要素の末尾に、402として例示されるスクリプトが注入される。   When it is described that there is an issue function in the metadata (for example, 301 in FIG. 3), the relay server 101 issues the issue function in the widget read from the server 102 in the execution of step S202 described above. Inject script (code) into For example, assume that the original HTML document is as shown in 401 of FIG. 4 and the issue function is defined as a global function as indicated by 403. A script exemplified as 402 is injected at the end of the body element of such an HTML document.

このスクリプトでは、404として示されるように、もともとの発行関数がローカル変数に保存され、405として示されるように、新たな関数がグローバル変数に代入される。新たな関数では、406として示されるように、もともとの発行関数が呼び出される。また、407として示されるように、XMLHttpRequestを用いて中継サーバに対してイベントが起きたことを通知するためのコードが記述される。更に、408として示されるように、通知の際に中継サーバ101の連携用パスを指定するためのコードが記述さる。更に、409として示されるように、通知の際にイベント名や引数をPOSTリクエストのリクエストボディとして送信するためのコードが記述される。なお、408として示される連携用パスは、中継サーバ101が予め定めた特殊なパスとする。   In this script, the original issued function is stored in a local variable, as indicated by 404, and the new function is assigned to a global variable, as indicated by 405. In the new function, the original issue function is called, as shown as 406. Also, as indicated by 407, a code for notifying the relay server that an event has occurred using XMLHttpRequest is described. Further, as indicated by 408, a code for designating the cooperation path of the relay server 101 at the time of notification is described. Further, as indicated by 409, a code for transmitting an event name and an argument as a request body of a POST request at the time of notification is described. Note that the cooperation path indicated as 408 is a special path predetermined by the relay server 101.

中継サーバ101でこのようにスクリプトを注入してからブラウザに送信することで、もとのアプリケーションのロジックを壊すことなく、中継サーバ101に対してイベントの通知をする機能を追加できる。   By injecting the script in this way in the relay server 101 and transmitting it to the browser, a function for notifying the relay server 101 of an event can be added without destroying the logic of the original application.

メタデータに受信関数があることが記述されていた場合(例えば図3の302の場合)には、中継サーバ101は、前述のステップS202の実行において、サーバ102から読み込んだウィジェット内の受信関数へHTMLコードを注入してからブラウザに送信する。元のHTMLドキュメントが、例えば図5の501のようになっており、受信関数が504で示されるようにグローバル関数として定義されているとする。このようなHTMLドキュメントのbody要素の末尾に、502として例示されるiframeが注入される。そのiframeによって読み込まれるHTMLの中身であるスクリプト要素は、例えば503のようなコードである。   If the metadata describes that there is a reception function (for example, 302 in FIG. 3), the relay server 101 moves to the reception function in the widget read from the server 102 in the execution of step S202 described above. Inject HTML code and send to browser. Assume that the original HTML document is, for example, 501 in FIG. 5 and the reception function is defined as a global function as indicated by 504. An iframe exemplified as 502 is injected at the end of the body element of such an HTML document. The script element which is the content of HTML read by the iframe is a code such as 503, for example.

中継サーバ101は、アドレス帳ウィジェット内の発行関数に注入されたスクリプトからのイベント通知に基づいて、前述したステップS207にて、スクリプト要素503を、ブラウザ103に表示される地図ウィジェット内のiframeにイベントとして通知する。このイベントの配信時には、サーバプッシュ型通信手法Cometの一種であるiframe streamingを用いてスクリプト要素503が書き込まれ、ネットワークストリームがフラッシュされることで、書き込まれたスクリプト要素がブラウザ側で即時実行される。ブラウザ103にて実行されるスクリプト要素503では、505で示されるwindow.parent参照の記述により、元のドキュメント501内で504として定義されているグローバル関数が呼び出される。この結果、アドレス帳ウィジェット内での住所選択に応答して、地図ウィジェット内で発行元のサーバ102(図1)に対して地図検索が実行され、その検索結果が地図ウィジェット内に表示される。   Based on the event notification from the script injected into the issuing function in the address book widget, the relay server 101 converts the script element 503 into an iframe in the map widget displayed on the browser 103 in step S207 described above. Notify as. At the time of distribution of this event, the script element 503 is written using iframe streaming which is a kind of server push type communication method Comet, and the written script element is immediately executed on the browser side by flushing the network stream. . In the script element 503 executed by the browser 103, a global function defined as 504 in the original document 501 is called by the description of the window.parent reference indicated by 505. As a result, in response to the address selection in the address book widget, a map search is executed for the server 102 (FIG. 1) of the issuer in the map widget, and the search result is displayed in the map widget.

上述の例では、発行ウィジェットからのイベント通知に基づく中継サーバ101から受信ウィジェットへのイベント通知は、iframeコードの注入とiframe streamingによって実現されている。そのほか、XHR(XMLHttpRequest)を用いたポーリング又は一般的なComet、或いは、タイマ等によるscript要素追加に基づくJSONP(JSON with Padding)を実行する手法等を採用することができる。   In the above example, the event notification from the relay server 101 to the receiving widget based on the event notification from the issuing widget is realized by injection of iframe code and iframe streaming. In addition, it is possible to employ a method of performing polling using XHR (XMLHttpRequest) or general Comet, or JSONP (JSON with Padding) based on addition of a script element by a timer or the like.

前述のステップS203においてユーザによる指定又はシステムプリセットにより連携定義が指定されると、中継サーバ101は、ステップS204にてその連携定義を連携定義テーブルに登録する。ステップS205において発行元のウィジェットから中継サーバ101にイベントが通知されると、中継サーバ101は、ステップS206において、連携定義テーブルを参照して、どの受信ウィジェットのどの受信関数にイベントを通知するかを判別し、その結果決定したイベント通知を実行する。即ち、中継サーバ101は、連携定義テーブルに連携定義が登録されている場合のみ、受信ウィジェットへのイベント通知を実行する。このように連携定義を用いることで、安全なウィジェット間連携を実現できる。   When the linkage definition is designated by the user or the system preset in step S203 described above, the relay server 101 registers the linkage definition in the linkage definition table in step S204. When an event is notified from the issuing widget to the relay server 101 in step S205, the relay server 101 refers to the linkage definition table in step S206 to determine which reception function of which reception widget to notify the event. Determine and execute the event notification determined as a result. That is, the relay server 101 performs event notification to the reception widget only when the cooperation definition is registered in the cooperation definition table. By using the linkage definition in this way, safe linkage between widgets can be realized.

図6は、連携定義テーブルの例を示す図である。この例の1行目のエントリでは、発行ウィジェット名としてアドレス帳ウィジェットに対応するw1が指定され、発行関数名として住所項目が選択(クリック又はポイント)されると発行される関数AddressSelectedが指定されている。これに対応して、受信ウィジェット名として地図ウィジェットに対応するw2が指定され、受信関数名として地図Aを検索する関数SearchMapAが指定されている。また、2行目のエントリでは、発行ウィジェット名としてアドレス帳ウィジェットに対応するw1が指定され、発行関数名としてメールアドレス項目が選択されると発行される関数MailSelectedが指定されている。これに対応して、受信ウィジェット名としてメーラウィジェットに対応するw3が指定され、受信関数名としてToアドレスへのアドレス設定を行う関数SetToが指定されている。   FIG. 6 is a diagram illustrating an example of a cooperation definition table. In the entry on the first line in this example, w1 corresponding to the address book widget is specified as the issue widget name, and the function AddressSelected issued when the address item is selected (clicked or pointed) is specified as the issue function name. Yes. Correspondingly, w2 corresponding to the map widget is specified as the reception widget name, and the function SearchMapA for searching the map A is specified as the reception function name. In the entry on the second line, w1 corresponding to the address book widget is designated as the issue widget name, and the function MailSelected issued when the mail address item is selected as the issue function name. Correspondingly, w3 corresponding to the mailer widget is specified as the reception widget name, and the function SetTo for setting the address to the To address is specified as the reception function name.

中継サーバ101は、上述の連携定義以外のウィジェット間連携は実行しないため、アドレス帳のメールアドレスが地図ウィジェットに漏れたり、アドレス帳の内容が他ウィジェットによって書き換えられたりといった、予測されない連携を阻止することができる。   Since the relay server 101 does not execute inter-widget cooperation other than the above-described cooperation definition, it prevents unpredictable cooperation such as an e-mail address in the address book leaking to the map widget or the contents of the address book being rewritten by another widget be able to.

図7は、Webドキュメント間通信システムの第2の実施形態の基本構成図である。第2の実施形態は、図1の第1の実施形態における中継サーバ101、サーバ(対象サーバ)102、及びブラウザ103からなるWebドキュメント間通信システムにおいて、中継サーバ101の構成を具体化したものである。   FIG. 7 is a basic configuration diagram of the second embodiment of the communication system between Web documents. The second embodiment embodies the configuration of the relay server 101 in the inter-Web document communication system including the relay server 101, the server (target server) 102, and the browser 103 in the first embodiment of FIG. is there.

図7の構成を有する中継サーバ101を中心とした動作について、以下に説明する。
図8は、第2の実施形態における読込みシーケンスを示す動作フローチャートである。この動作フローチャートは、図2に示される前述した第1の実施形態の動作フローチャートのステップS201とS202の処理を詳細化したものである。
The operation centering on the relay server 101 having the configuration of FIG. 7 will be described below.
FIG. 8 is an operation flowchart showing a reading sequence in the second embodiment. This operation flowchart details the processes of steps S201 and S202 of the operation flowchart of the first embodiment shown in FIG.

ユーザは、ブラウザ103の親フレームから、中継サーバ101内の追加削除部701に、追加したいウィジェットのメタデータのURIを渡す(図8のステップS801)。
追加削除部701は、ユーザテーブル702を参照し、要求ユーザが正規のユーザであるか否かをチェックする(図8のステップS802)。
The user passes the URI of the metadata of the widget to be added from the parent frame of the browser 103 to the addition / deletion unit 701 in the relay server 101 (step S801 in FIG. 8).
The addition / deletion unit 701 refers to the user table 702 and checks whether or not the requesting user is a regular user (step S802 in FIG. 8).

追加削除部701は、ユーザ確認ができたら、対象サーバ102からユーザにより要求されたメタデータを取得する(図8のステップS803)。
そして、追加削除部701は、そのメタデータを解析し(図8のステップS804)、そのメタデータに一意なウィジェットインスタンスIDを割り当てて、そのメタデータの登録情報をインスタンスデータベース703に登録する(図8のステップS805)。
When the user confirmation is completed, the addition / deletion unit 701 acquires metadata requested by the user from the target server 102 (step S803 in FIG. 8).
Then, the addition / deletion unit 701 analyzes the metadata (step S804 in FIG. 8), assigns a unique widget instance ID to the metadata, and registers the registration information of the metadata in the instance database 703 (FIG. 8). 8 step S805).

追加削除部701は、中継サーバ101経由でコンテンツを読み込むためのウィジェットインスタンスID(図中ではインスタンスID)と置換済みURIを、ブラウザ103の親フレームに返す(図8のステップS806)。ブラウザ103の親フレームは、この情報を中継サーバ101から受け取ると、子フレームを作成し、そのアドレスを上記置換済みURIに設定する。   The addition / deletion unit 701 returns the widget instance ID (instance ID in the figure) and the replaced URI for reading content via the relay server 101 to the parent frame of the browser 103 (step S806 in FIG. 8). When the parent frame of the browser 103 receives this information from the relay server 101, it creates a child frame and sets its address to the replaced URI.

ブラウザ103の親フレームが作成した子フレームは、中継サーバ101のプロキシ部704に対して、上記置換済みURIでリクエストを送る(図8のステップS807)。
プロキシ部704内のURI置換部705は、置換済みURIから逆変換により、ウィジェットインスタンスIDと元のURIを取り出す(図8のステップS808)。
The child frame created by the parent frame of the browser 103 sends a request to the proxy unit 704 of the relay server 101 using the replaced URI (step S807 in FIG. 8).
The URI replacement unit 705 in the proxy unit 704 extracts the widget instance ID and the original URI from the replaced URI by reverse conversion (step S808 in FIG. 8).

プロキシ部704は、元のURIが指している対象サーバ102のコンテンツにリクエストを送り、そのコンテンツを取得する(図8のステップS809)。
もしコンテンツがテキストベースのコンテンツであった場合、プロキシ部704内のURI置換部705は、対象サーバ102から渡されたコンテンツの内容のうちURIの部分に対して置換を行う(図8のステップS810)。
The proxy unit 704 sends a request to the content of the target server 102 pointed to by the original URI, and acquires the content (step S809 in FIG. 8).
If the content is text-based content, the URI replacement unit 705 in the proxy unit 704 replaces the URI part of the content passed from the target server 102 (step S810 in FIG. 8). ).

更に、プロキシ部704内のコード注入部706は、インスタンスデータベース703に登録されているメタデータに基づいて、発行関数と受信関数に対してスクリプト(コード)を注入する(図8のステップS811)。この動作は、第1の実施形態で前述した動作と同様である。   Further, the code injection unit 706 in the proxy unit 704 injects a script (code) for the issue function and the reception function based on the metadata registered in the instance database 703 (step S811 in FIG. 8). This operation is the same as the operation described above in the first embodiment.

プロキシ部704は、置換と注入の済んだテキストコンテンツ又はバイナリコンテンツを、ブラウザ103の子フレームに対してレスポンスとして返し(図8のステップS812)、ブラウザ103は、その内容をウィジェットとして表示する(図8のステップS813)。   The proxy unit 704 returns the replaced text content or binary content as a response to the child frame of the browser 103 (step S812 in FIG. 8), and the browser 103 displays the content as a widget (FIG. 8). 8 step S813).

図9は、第2の実施形態における連携定義シーケンスを示す動作フローチャートである。この動作フローチャートは、図2に示される前述した第1の実施形態の動作フローチャートのステップS203とS204の処理を詳細化したものである。   FIG. 9 is an operation flowchart illustrating a cooperation definition sequence according to the second embodiment. This operation flowchart details the processes of steps S203 and S204 in the operation flowchart of the first embodiment shown in FIG.

ユーザは、ブラウザ103の親フレームから中継サーバ101の連携定義部707に対して、発行ウィジェットのウィジェットインスタンスID、発行関数名、受信ウィジェットのウィジェットインスタンスID、受信関数名の組を送る(図9のステップS901)。   The user sends a combination of the widget instance ID of the issuing widget, the issuing function name, the widget instance ID of the receiving widget, and the receiving function name from the parent frame of the browser 103 to the cooperation definition unit 707 of the relay server 101 (FIG. 9). Step S901).

連携定義部707は、ユーザテーブル702を参照し、要求ユーザが正規のユーザであるか否かをチェックする(図9のステップS902)。また、連携定義部707は、ユーザ確認ができたら、インスタンスデータベース703を参照し、ユーザから指定された各ウィジェットインスタンスIDと各関数の存在と、各ウィジェットの所有者が当該ユーザであることを確認する(図9のステップS902)。   The linkage definition unit 707 refers to the user table 702 and checks whether or not the requesting user is a regular user (step S902 in FIG. 9). When the user is confirmed, the linkage definition unit 707 refers to the instance database 703 and confirms that each widget instance ID and each function specified by the user are present and that the owner of each widget is the user. (Step S902 in FIG. 9).

連携定義部707は、確認が済んだら、連携定義テーブル708に、発行ウィジェットインスタンスID(発行ウィジェット名)、発行関数名、受信ウィジェットインスタンスID(受信ウィジェット名)、受信関数名を登録する(図9のステップS903)。連携定義テーブル708の構成は、第1の実施形態の説明において前述した図6の構成と同様である。   When the confirmation is completed, the linkage definition unit 707 registers the issued widget instance ID (issued widget name), issued function name, received widget instance ID (received widget name), and received function name in the linked definition table 708 (FIG. 9). Step S903). The configuration of the linkage definition table 708 is the same as the configuration of FIG. 6 described above in the description of the first embodiment.

図10は、第2の実施形態における連携シーケンスを示す動作フローチャートである。この動作フローチャートは、図2に示される前述した第1の実施形態の動作フローチャートのステップS205とS206とS207の処理を詳細化したものである。   FIG. 10 is an operation flowchart illustrating a cooperation sequence according to the second embodiment. This operation flowchart details the processes of steps S205, S206, and S207 of the operation flowchart of the first embodiment shown in FIG.

ブラウザ103の子フレームで、ユーザが住所選択などのマウス操作又はカーソル操作を行うと、住所選択のイベントが発生する(図10のステップS1001)。
この結果、住所選択に対応する発行関数が呼び出され(図10のステップS1002)、その発行関数に注入されたスクリプトによって、子フレームから中継サーバ101の発行受付部709にリクエストが送られる。発行受付部709は、配信割振部710に、発行ウィジェットインスタンスID、発行関数名、関数引数を渡す(図10のステップS1003)。
When the user performs a mouse operation such as address selection or a cursor operation on a child frame of the browser 103, an address selection event occurs (step S1001 in FIG. 10).
As a result, an issue function corresponding to the address selection is called (step S1002 in FIG. 10), and a request is sent from the child frame to the issue reception unit 709 of the relay server 101 by the script injected into the issue function. The issue acceptance unit 709 passes the issue widget instance ID, the issue function name, and the function argument to the distribution allocation unit 710 (step S1003 in FIG. 10).

配信割振部710は、連携定義テーブル708を参照し、発行ウィジェットインスタンスIDと発行関数名の組に対応する受信ウィジェットインスタンスIDと受信関数の組を検索する(図10のステップS1004)。配信割振部710は、組が1つ以上見つかった場合は、配信部711に対し、見つかった組と関数引数を渡す(図10のステップS1005)。   The distribution allocating unit 710 refers to the cooperation definition table 708 and searches for a combination of the reception widget instance ID and the reception function corresponding to the combination of the issue widget instance ID and the issue function name (step S1004 in FIG. 10). When one or more pairs are found, the distribution allocator 710 passes the found pair and function argument to the distributor 711 (step S1005 in FIG. 10).

ブラウザ103の子フレームから中継サーバ101には、iframe streamingのCometリクエストが事前に来ている(図10のステップS1000)。このため、配信部711は、受信ウィジェットインスタンスIDに対応する子フレームに対して、Cometnoレスポンスとして受信関数名と関数引数を含むスクリプト要素を送信する(図10のステップS1006)。   An iframe streaming Comet request comes in advance from the child frame of the browser 103 to the relay server 101 (step S1000 in FIG. 10). Therefore, the distribution unit 711 transmits a script element including a reception function name and a function argument as a Comeno response to the child frame corresponding to the reception widget instance ID (step S1006 in FIG. 10).

ブラウザ103の子フレームは、受信したスクリプト要素内の受信関数名に対応する受信関数を、関数引数をつけて呼び出し実行する(図10のステップS1007)。
図11は、中継サーバ101内のデータベースのスキーマを示す図である。
The child frame of the browser 103 calls and executes the reception function corresponding to the reception function name in the received script element with a function argument (step S1007 in FIG. 10).
FIG. 11 is a diagram showing a database schema in the relay server 101.

図11において、ユーザテーブル702及び連携定義テーブル708は、それぞれ図7に示されるものと同じである。また、ウィジェットインスタンステーブル703−1、発行関数テーブル703−2、受信関数703−3は、図7のインスタンスデータベース(図中「インスタンス・関数」と表記)703に対応する。   In FIG. 11, the user table 702 and the linkage definition table 708 are the same as those shown in FIG. Further, the widget instance table 703-1, the issue function table 703-2, and the reception function 703-3 correspond to the instance database (denoted as “instance / function” in FIG. 7) 703.

ユーザテーブル702は、ユーザ名とパスワードのハッシュを持ち、ユーザが正しいパスワードでログインしたときに一意のセッションIDがランダムで作成され、このテーブルに格納される。ユーザがログイン中は、そのセッションIDが用いられてユーザの識別が行われる。ユーザがログアウトしたら、セッションIDがテーブルから削除されることで、ログアウト処理が行われる。   The user table 702 has a hash of a user name and a password, and a unique session ID is randomly created when the user logs in with a correct password, and is stored in this table. While the user is logged in, the session ID is used to identify the user. When the user logs out, the logout process is performed by deleting the session ID from the table.

ウィジェットインスタンステーブル703−1では、ユーザがウィジェットの追加又は削除を行うたびに、データの追加と削除が発生する。ウィジェットが追加されたときには、追加されたウィジェットのメタデータに付与されている発行関数と受信関数が、発行関数テーブル703−2及び受信関数テーブル703−3に追加される。また、ウィジェットが削除されたときには、ウィジェットインスタンステーブル703−1から該当する行が削除される共に、発行関数テーブル703−2と受信関数テーブル703−3からも対応する関数の行が削除される。   In the widget instance table 703-1, each time a user adds or deletes a widget, data is added or deleted. When a widget is added, the issuing function and the receiving function given to the metadata of the added widget are added to the issuing function table 703-2 and the receiving function table 703-3. When the widget is deleted, the corresponding row is deleted from the widget instance table 703-1, and the corresponding function row is also deleted from the issue function table 703-2 and the reception function table 703-3.

連携定義テーブル708では、発行関数と受信関数の関連が定義される。これは図5で前述した通りである。このテーブルで定義されている発行関数と受信関数の組に対して、発行関数が呼び出されたら、対応する受信関数が呼び出される。   In the linkage definition table 708, the relationship between the issue function and the reception function is defined. This is as described above with reference to FIG. When the issue function is called for the combination of the issue function and the receive function defined in this table, the corresponding receive function is called.

図12は、中継サーバ101が実行するリクエスト受付処理を示す動作フローチャートである。
中継サーバ101は、リクエストを、以下の4種類処理に振り分けて処理する。
FIG. 12 is an operation flowchart illustrating a request reception process executed by the relay server 101.
The relay server 101 distributes the request to the following four types of processing.

中継サーバ101自身へのリクエスト
中継サーバ101のコンテンツをレスポンスとして返したり、中継サーバ101上のサーバサイドプログラムを実行しその結果を返したりする。
Requests to the relay server 101 itself The content of the relay server 101 is returned as a response, the server-side program on the relay server 101 is executed, and the result is returned.

中継サーバ101として動作させるためのリクエスト
中継サーバ101は、リクエストされたURIを逆変換して元のURIにし、その元のURIに対してリクエストを送り、そのレスポンスを中継サーバ101で変換し、レスポンスとして返す。
The request relay server 101 for operating as the relay server 101 reverse-converts the requested URI into the original URI, sends a request to the original URI, converts the response at the relay server 101, Return as.

発行関数が呼び出されたことを中継サーバ101に伝えるためのリクエスト
中継サーバ101がスクリプトを注入した発行関数が呼び出されたときに、中継サーバ101に対してリクエストが発生するようになっている。
A request is issued to the relay server 101 when a request relay server 101 for informing the relay server 101 that the issue function has been called is called.

受信関数に対してイベントの配信をしてもらうための非同期リクエスト
受信関数を持つウィジェットに対して中継サーバ101がiframe streamingのためのiframeを埋め込んであるため、そのiframeからのリクエスト101が中継サーバに対して発生する。イベントの配信が起きたときに中継サーバ101がこのストリームを利用してイベントを配信する。
Since the relay server 101 embeds an iframe for iframe streaming in a widget having an asynchronous request reception function for receiving the event to the reception function, the request 101 from the iframe is sent to the relay server. It occurs against. When the event distribution occurs, the relay server 101 uses this stream to distribute the event.

上記4つのリクエストの振分け処理を実行する動作フローチャートが、図12に示される
中継サーバ101は、HTTP(Hypertext Transfer Protocol)リクエストのHostヘッダに書かれているドメイン名をみて、それが中継用の変換済みドメインであるか否かを判断する(図12のステップS1202)。
The operation flowchart for executing the above four request distribution processing is shown in FIG. 12. The relay server 101 looks at the domain name written in the Host header of the HTTP (Hypertext Transfer Protocol) request, and converts it for the relay conversion. It is determined whether the domain is a completed domain (step S1202 in FIG. 12).

変換済みドメインでなければ、中継サーバ101は、自分自身へのリクエストであると判断し、中継サーバ101のコンテンツを返したりサーバサイドプログラムを実行したりする(図12のステップS1201→S1208)。   If it is not the converted domain, the relay server 101 determines that the request is for itself, and returns the content of the relay server 101 or executes the server side program (steps S1201 to S1208 in FIG. 12).

ドメイン名が変換済みドメイン名であった場合、中継サーバ101は、次にHTTPリクエストのパスを調べる(図12のステップS1201→S1202)。
パスがComet用の特殊な予約済みパスでなかった場合には、中継サーバ101に対する中継のリクエストであると判断する。中継サーバ101は、リクエストされたURIを逆変換して元のURIにする(図12のステップS1206)。そして、中継サーバ101は、その元のURIに対してリクエストを中継し、対象サーバ102からのレスポンスを変換して中継サーバ101のレスポンスとして返す(図12のステップS1207)。この動作は、前述したように、プロキシ部704によって実行される。
If the domain name is the converted domain name, the relay server 101 next checks the HTTP request path (steps S1201 to S1202 in FIG. 12).
If the path is not a special reserved path for Comet, it is determined that the request is a relay request to the relay server 101. The relay server 101 reversely converts the requested URI into the original URI (step S1206 in FIG. 12). Then, the relay server 101 relays the request to the original URI, converts the response from the target server 102, and returns it as a response of the relay server 101 (step S1207 in FIG. 12). This operation is executed by the proxy unit 704 as described above.

パスがComet用の特殊な予約済みパスであった場合には、中継サーバ101は、HTTPリクエストのメソッドを判定する(図12のステップS1203)。
メソッドがPOSTであった場合には、中継サーバ101は、発行関数からのイベント通知であると判断し、前述した図10のステップS1004からS1006のイベント発行処理を実行する(図12のステップS1203→S1204)。
If the path is a special reserved path for Comet, the relay server 101 determines an HTTP request method (step S1203 in FIG. 12).
If the method is POST, the relay server 101 determines that the event notification is from the issue function, and executes the event issue processing from step S1004 to S1006 in FIG. 10 described above (step S1203 in FIG. 12 → S1204).

メソッドがGETであった場合には、中継サーバ101は、受信関数を含むウィジェットに注入したiframeによるiframe streamingであると判断し、イベントを配信するための非同期通信のストリームを開いたままにする(図12のステップS1203→S1205)。配信割振部710からイベント配信の要求が起きた場合には、配信部711がそのストリームに受信関数名と引数を書き込むことで、クライアント側で受信関数の呼び出しを行わせる。   When the method is GET, the relay server 101 determines that the iframe streaming is performed by the iframe injected into the widget including the reception function, and the asynchronous communication stream for delivering the event is kept open ( Steps S1203 → S1205 in FIG. 12). When a request for event distribution occurs from the distribution allocation unit 710, the distribution unit 711 writes the reception function name and argument to the stream so that the reception function is called on the client side.

図13は、第1又は第2の実施形態を用いたマッシュアップの例を示す図である。
図13では、社内のアドレス帳とメーラ、及び社外の地図のアプリケーションが連携する例が示されている。アドレス帳には氏名、メールアドレス、住所が載っている。この住所録とメーラと地図を連携させたいのであるが、社内のメーラにはメールアドレスがわたるようにし、社外の地図には住所のみがわたるようにして、それ以外のデータがわたらないようにしたい。
FIG. 13 is a diagram illustrating an example of mashup using the first or second embodiment.
FIG. 13 shows an example in which an in-house address book, a mailer, and an outside map application cooperate with each other. The address book contains your name, email address, and address. I want to link this address book, mailer, and map, but I want to send an email address to the in-house mailer, only the address to the outside map, and not to send other data. .

図5の連携定義テーブルにあるように連携が定義されることで、地図には住所のみが渡されそれ以外のデータがわたらないよう設定されることで、セキュリティを保ったままアプリケーションの連携をさせることが可能となる。   By defining the linkage as shown in the linkage definition table of FIG. 5, it is set so that only the address is passed to the map and no other data is passed, so that the application can be linked while maintaining security. It becomes possible.

このほか、メーラ、人事異動帳、従業員アドレス帳、スケジュールの社内のアプリケーションおよび地図の社外のアプリケーションを連携することなども可能である。
図14は、第1又は第2の実施形態の中継サーバ101を実現できるコンピュータのハードウェア構成の一例を示す図である。
In addition, it is possible to link mailer, personnel change book, employee address book, internal application of schedule and external application of map.
FIG. 14 is a diagram illustrating an example of a hardware configuration of a computer that can implement the relay server 101 according to the first or second embodiment.

図14に示されるコンピュータは、CPU1401、メモリ1402、入力装置1403、出力装置1404、外部記憶装置1405、可搬記録媒体1409が挿入される可搬記録媒体駆動装置1406、及びネットワーク接続装置1407を有し、これらがバス1408によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。   The computer shown in FIG. 14 includes a CPU 1401, a memory 1402, an input device 1403, an output device 1404, an external storage device 1405, a portable recording medium driving device 1406 into which a portable recording medium 1409 is inserted, and a network connection device 1407. These are connected to each other by a bus 1408. The configuration shown in the figure is an example of a computer that can implement the above system, and such a computer is not limited to this configuration.

CPU1401は、当該コンピュータ全体の制御を行う。メモリ1402は、プログラムの実行、データ更新等の際に、外部記憶装置1405(或いは可搬記録媒体1409)に記憶されているプログラム又はデータを一時的に格納するRAM等のメモリである。CUP1401は、プログラムをメモリ1402に読み出して実行することにより、全体の制御を行う。   The CPU 1401 controls the entire computer. The memory 1402 is a memory such as a RAM that temporarily stores a program or data stored in the external storage device 1405 (or the portable recording medium 1409) when executing a program, updating data, or the like. The CUP 1401 performs overall control by reading the program into the memory 1402 and executing it.

入力装置1403は、例えば、キーボード、マウス等及びそれらのインタフェース制御装置とからなる。入力装置1403は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU1401に通知する。   The input device 1403 includes, for example, a keyboard, a mouse, etc. and their interface control devices. The input device 1403 detects an input operation by the user using a keyboard, a mouse, or the like, and notifies the CPU 1401 of the detection result.

出力装置1404は、表示装置、印刷装置等及びそれらのインタフェース制御装置とからなる。出力装置1404は、CPU1401の制御によって送られてくるデータを表示装置や印刷装置に出力する。   The output device 1404 includes a display device, a printing device, etc. and their interface control devices. The output device 1404 outputs data sent under the control of the CPU 1401 to a display device or a printing device.

外部記憶装置1405は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
可搬記録媒体駆動装置1406は、光ディスクやSDRAM、コンパクトフラッシュ(登録商標)、DVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)等の可搬記録媒体1409を収容するもので、外部記憶装置1405の補助の役割を有する。
The external storage device 1405 is, for example, a hard disk storage device. Mainly used for storing various data and programs.
The portable recording medium driving device 1406 accommodates a portable recording medium 1409 such as an optical disk, SDRAM, compact flash (registered trademark), DVD (Digital Versatile Disc), CD-ROM (Compact Disc Read Only Memory), etc. It has an auxiliary role for the external storage device 1405.

ネットワーク接続装置1407は、例えばLAN(ローカルエリアネットワーク)又はWAN(ワイドエリアネットワーク)の通信回線を接続するための装置である。
第1又は第2の実施形態による中継サーバ101の機能は、それに必要な処理内容を記述したプログラムをCPU1401が実行することで実現される。そのプログラムは、例えば外部記憶装置1405や可搬記録媒体1409に記録して配布してもよく、或いはネットワーク接続装置1407によりネットワークを介して他のコンピュータから取得できるようにしてもよい。
The network connection device 1407 is a device for connecting, for example, a LAN (local area network) or WAN (wide area network) communication line.
The functions of the relay server 101 according to the first or second embodiment are realized by the CPU 1401 executing a program describing the processing content necessary for it. The program may be distributed by being recorded in, for example, the external storage device 1405 or the portable recording medium 1409, or may be acquired from another computer via the network by the network connection device 1407.

開示する技術は、複数のWebアプリケーションを提供するポータルサイトなどに利用することができる。   The disclosed technology can be used for a portal site that provides a plurality of Web applications.

101 中継サーバ
102 サーバ、対象サーバ
103 ブラウザ
701 追加削除部
702 ユーザテーブル
703 インスタンスデータベース
703−1 ウィジェットインスタンステーブル
703−2 発行関数テーブル
703−3 受信関数テーブル
704 プロキシ部
705 URI置換部
706 コード注入部
707 連携定義部
708 連携定義テーブル
709 発行受付部
710 配信割振部
711 配信部
1401 CPU
1402 メモリ
1403 入力装置
1404 出力装置
1405 外部記憶装置
1406 可搬記録媒体駆動装置
1407 ネットワーク接続装置
1408 バス
1409 可搬記録媒体
101 relay server 102 server, target server 103 browser 701 addition / deletion unit 702 user table 703 instance database 703-1 widget instance table 703-2 issue function table 703-3 reception function table 704 proxy unit 705 URI replacement unit 706 code injection unit 707 Cooperation Definition Unit 708 Cooperation Definition Table 709 Issuance Accepting Unit 710 Distribution Allocation Unit 711 Distribution Unit 1401 CPU
1402 Memory 1403 Input device 1404 Output device 1405 External storage device 1406 Portable recording medium driving device 1407 Network connection device 1408 Bus 1409 Portable recording medium

Claims (6)

第1の対象サーバから中継サーバを経由して取得した第1のWebドキュメントに基づいて、クライアントのブラウザ内で実行される連携元ソフトウェアと、第2の対象サーバから該中継サーバを経由して取得した第2のWebドキュメントに基づいて、該ブラウザ内で実行される連携先ソフトウェアとの間の通信を、該中継サーバにおいて中継する中継方法において、
前記中継サーバが、
前記第1のWebドキュメントに、前記連携元ソフトウェアの識別子と該連携元ソフトウェア内で実行される第1の関数の識別子と該第1の関数に与えられる引数を含む第1のイベント通知を、前記連携元ソフトウェアが前記中継サーバに送信するための第1の命令を注入する第1の注入ステップと、
前記第2のWebドキュメントに、第2の関数の識別子と前記引数を含む前記中継サーバからの第2のイベント通知に基づいて、前記連携先ソフトウェアが該第2の関数を該引数により実行するための第2の命令を注入する第2の注入ステップと、
前記第1の命令が注入された第1のWebドキュメントおよび前記第2の命令が注入された第2のWebドキュメントを前記クライアントに送信する第1の送信ステップと、
前記連携元ソフトウェアから、前記第1のイベント通知を受信したときに、連携元ソフトウェアの識別子と該連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応付けて、該連携元ソフトウェアとの通信が行われる連携先ソフトウェアの識別子と該連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを保持した連携定義テーブルを参照し、該第1のイベント通知に含まれる該連携元ソフトウェアの識別子と該連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応する、連携先ソフトウェアの識別子と該連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを決定するステップと、
前記決定された組み合わせに含まれる前記連携先ソフトウェアの識別子に基づいて特定される連携先ソフトウェアに対して、前記第2のイベント通知として、該決定された組み合わせに含まれる前記第2の関数の識別子と前記引数とを送信する第2の送信ステップと、
を実行することを特徴とするソフトウェア間通信の中継方法。
Based on the first Web document acquired from the first target server via the relay server, the cooperation source software executed in the browser of the client, and acquired from the second target server via the relay server In the relay method of relaying communication with the cooperation destination software executed in the browser based on the second Web document in the relay server,
The relay server is
The first Web document includes a first event notification including an identifier of the cooperation source software, an identifier of a first function executed in the cooperation source software, and an argument given to the first function, A first injection step of injecting a first command for the cooperation source software to transmit to the relay server;
The cooperation destination software executes the second function with the argument based on the second event notification from the relay server including the identifier of the second function and the argument in the second Web document. A second injection step of injecting a second command of:
A first sending step of sending a first web document infused with the first instruction and a second web document infused with the second instruction to the client;
When the first event notification is received from the cooperation source software, the cooperation source software is associated with the combination of the identifier of the cooperation source software and the identifier of the first function executed by the cooperation source software. The linkage source software included in the first event notification by referring to the linkage definition table that holds a combination of the identifier of the linkage destination software with which the communication is performed and the identifier of the second function executed by the linkage destination software Determining the combination of the identifier of the link destination software and the identifier of the second function executed by the link destination software corresponding to the combination of the identifier of the first function executed by the link source software and the identifier of the first function executed by the link source software; ,
The identifier of the second function included in the determined combination as the second event notification for the collaboration destination software specified based on the identifier of the collaboration destination software included in the determined combination And a second transmission step of transmitting the argument and
A relay method for software-to-software communication, characterized in that:
前記第1の命令は、前記連携元ソフトウェアで前記第1の関数が実行されたときに、該連携元ソフトウェアの識別子と該第1の関数の識別子と該第1の関数に与えられた引数を含む前記第1のイベント通知を、前記中継サーバに送信するための命令である、
ことを特徴とする請求項1記載のソフトウェア間通信の中継方法。
The first instruction includes an identifier of the cooperation source software, an identifier of the first function, and an argument given to the first function when the first function is executed by the cooperation source software. An instruction for transmitting the first event notification to the relay server,
The relay method for software-to-software communication according to claim 1.
前記第2の命令は、前記中継サーバから前記第2のイベント通知を受信したときに、該第2のイベント通知に含まれる前記第2の関数の識別子と前記引数に基づいて、該第2の関数を呼び出しかつ該第2の関数に該引数を与える命令である、
ことを特徴とする請求項1又は2記載のソフトウェア間通信の中継方法。
When the second command is received from the relay server, the second command is based on the second function identifier and the argument included in the second event notification. An instruction to call a function and to give the argument to the second function;
3. The relay method for software-to-software communication according to claim 1 or 2.
前記第1の送信ステップは、前記第1のWebドキュメントの送信元アドレスと前記第2のWebドキュメントの送信元アドレスとが、前記クライアントにおいて互いに異なると判定されるように、各Webドキュメントに一意のアドレスを割り当てて該クライアントに送信することを特徴とする請求項1、2または3記載のソフトウェア間通信の中継方法。   The first transmission step is unique to each Web document so that the transmission source address of the first Web document and the transmission source address of the second Web document are determined to be different from each other in the client. 4. The relay method for software-to-software communication according to claim 1, wherein an address is assigned and transmitted to the client. クライアントからのリクエストに基づいて第1の対象サーバから第1のWebドキュメントを取得して該クライアントに中継したときに該クライアント内のブラウザ内で実行される連携元ソフトウェアと、前記クライアントからのリクエストに基づいて第2の対象サーバから第2のWebドキュメントを取得して前記クライアントに中継したときに前記ブラウザ内で実行される連携先ソフトウェアとの間の通信を中継する中継装置において、
前記第1のWebドキュメントに、前記連携元ソフトウェアの識別子と該連携元ソフトウェア内で実行される第1の関数の識別子と該第1の関数に与えられる引数を含む第1のイベント通知を、前記連携元ソフトウェアから自中継装置に送信させるための第1の命令を注入する第1の注入部と、
前記第2のWebドキュメントに、第2の関数の識別子と前記引数を含む自中継装置からのからの第2のイベント通知に基づいて、前記連携先ソフトウェアが該第2の関数を該引数により実行するための第2の命令を注入する第2の注入部と、
前記第1の命令が注入された第1のWebドキュメントおよび前記第2の命令が注入された第2のWebドキュメントを前記クライアントに送信する第1の送信部と、
前記連携元ソフトウェアから、前記第1のイベント通知を受信したときに、連携元ソフトウェアの識別子と該連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応付けて、該連携元ソフトウェアとの通信が行われる連携先ソフトウェアの識別子と該連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを保持した連携定義テーブルを参照し、該第1のイベント通知に含まれる該連携元ソフトウェアの識別子と該連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応する、連携先ソフトウェアの識別子と該連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを決定する決定部と、
前記決定された組み合わせに含まれる前記連携先ソフトウェアの識別子に基づいて特定される連携先ソフトウェアに対して、前記第2のイベント通知として、該決定された組み合わせに含まれる前記第2の関数の識別子と前記引数とを送信する第2の送信部と、
を含むことを特徴とするソフトウェア間通信の中継装置。
Based on the request from the client, when the first Web document is acquired from the first target server and relayed to the client, the cooperation source software executed in the browser in the client and the request from the client A relay device that relays communication with cooperation destination software executed in the browser when the second Web document is acquired from the second target server based on the second target server and relayed to the client;
The first Web document includes a first event notification including an identifier of the cooperation source software, an identifier of a first function executed in the cooperation source software, and an argument given to the first function, A first injection unit for injecting a first command for transmission from the cooperation source software to the own relay device;
Based on the second event notification from the own relay device including the identifier of the second function and the argument in the second Web document, the cooperation destination software executes the second function with the argument. A second injection part for injecting a second instruction to
A first transmission unit configured to transmit to the client the first Web document in which the first instruction is injected and the second Web document in which the second instruction is injected;
When the first event notification is received from the cooperation source software, the cooperation source software is associated with the combination of the identifier of the cooperation source software and the identifier of the first function executed by the cooperation source software. The linkage source software included in the first event notification by referring to the linkage definition table that holds a combination of the identifier of the linkage destination software with which the communication is performed and the identifier of the second function executed by the linkage destination software A determination unit that determines a combination of an identifier of the cooperation destination software and an identifier of the second function executed by the cooperation destination software corresponding to a combination of the identifier of the first function executed by the cooperation source software When,
The identifier of the second function included in the determined combination as the second event notification for the collaboration destination software specified based on the identifier of the collaboration destination software included in the determined combination And a second transmitter for transmitting the argument and
An inter-software communication relay device comprising:
第1の対象サーバから中継サーバを経由して取得した第1のWebドキュメントに基づいて、クライアントのブラウザ内で実行される連携元ソフトウェアと、第2の対象サーバから該中継サーバを経由して取得した第2のWebドキュメントに基づいて、該ブラウザ内で実行される連携先ソフトウェアとの間の通信を該中継サーバにおいて中継するプログラムであって、
前記中継サーバに、
前記第1のWebドキュメントに、前記連携元ソフトウェアの識別子と該連携元ソフトウェア内で実行される第1の関数の識別子と該第1の関数に与えられる引数を含む第1のイベント通知を、前記連携元ソフトウェアが前記中継サーバに送信するための第1の命令を注入する第1の注入ステップと、
前記第2のWebドキュメントに、第2の関数の識別子と前記引数を含む前記中継サーバからの第2のイベント通知に基づいて、前記連携先ソフトウェアが該第2の関数を該引数により実行するための第2の命令を注入する第2の注入ステップと、
前記第1の命令が注入された第1のWebドキュメントおよび前記第2の命令が注入された第2のWebドキュメントを前記クライアントに送信する第1の送信ステップと、
前記連携元ソフトウェアから、前記第1のイベント通知を受信したときに、連携元ソフトウェアの識別子と該連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応付けて、該連携元ソフトウェアとの通信が行われる連携先ソフトウェアの識別子と該連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを保持した連携定義テーブルを参照し、該第1のイベント通知に含まれる該連携元ソフトウェアの識別子と該連携元ソフトウェアで実行された第1の関数の識別子の組み合わせに対応する、連携先ソフトウェアの識別子と該連携先ソフトウェアで実行される第2の関数の識別子の組み合わせを決定するステップと、
前記決定された組み合わせに含まれる前記連携先ソフトウェアの識別子に基づいて特定される連携先ソフトウェアに対して、前記第2のイベント通知として、該決定された組み合わせに含まれる前記第2の関数の識別子と前記引数とを送信する第2の送信ステップと、
を実行させるためのプログラム。
Based on the first Web document acquired from the first target server via the relay server, the cooperation source software executed in the browser of the client, and acquired from the second target server via the relay server A program that relays communication with the cooperation destination software executed in the browser in the relay server based on the second Web document,
To the relay server,
The first Web document includes a first event notification including an identifier of the cooperation source software, an identifier of a first function executed in the cooperation source software, and an argument given to the first function, A first injection step of injecting a first command for the cooperation source software to transmit to the relay server;
The cooperation destination software executes the second function with the argument based on the second event notification from the relay server including the identifier of the second function and the argument in the second Web document. A second injection step of injecting a second command of:
A first sending step of sending a first web document infused with the first instruction and a second web document infused with the second instruction to the client;
When the first event notification is received from the cooperation source software, the cooperation source software is associated with the combination of the identifier of the cooperation source software and the identifier of the first function executed by the cooperation source software. The linkage source software included in the first event notification by referring to the linkage definition table that holds a combination of the identifier of the linkage destination software with which the communication is performed and the identifier of the second function executed by the linkage destination software Determining the combination of the identifier of the link destination software and the identifier of the second function executed by the link destination software corresponding to the combination of the identifier of the first function executed by the link source software and the identifier of the first function executed by the link source software; ,
The identifier of the second function included in the determined combination as the second event notification for the collaboration destination software specified based on the identifier of the collaboration destination software included in the determined combination And a second transmission step of transmitting the argument and
A program for running
JP2009112321A 2009-05-01 2009-05-01 Software inter-communication relay method, apparatus, and program Active JP5099073B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009112321A JP5099073B2 (en) 2009-05-01 2009-05-01 Software inter-communication relay method, apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009112321A JP5099073B2 (en) 2009-05-01 2009-05-01 Software inter-communication relay method, apparatus, and program

Publications (2)

Publication Number Publication Date
JP2010262453A true JP2010262453A (en) 2010-11-18
JP5099073B2 JP5099073B2 (en) 2012-12-12

Family

ID=43360465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009112321A Active JP5099073B2 (en) 2009-05-01 2009-05-01 Software inter-communication relay method, apparatus, and program

Country Status (1)

Country Link
JP (1) JP5099073B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014508997A (en) * 2011-01-30 2014-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Business mashup
JP2014149759A (en) * 2013-02-04 2014-08-21 Web Service Development Inc Network communication system
KR101717564B1 (en) * 2016-03-21 2017-03-20 서울여자대학교 산학협력단 Web-in-the-loop simulation apparatus and method for development and evaluation of website
JP2017123189A (en) * 2011-05-26 2017-07-13 グーグル インコーポレイテッド Providing contextual information and enabling group communication for participants in conversation
JP2018520530A (en) * 2015-04-10 2018-07-26 ソニー株式会社 Share web application program guide content items via home network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337716A (en) * 2002-05-20 2003-11-28 Ntt Docomo Inc Electronic device, data sharing method, program, and recording medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337716A (en) * 2002-05-20 2003-11-28 Ntt Docomo Inc Electronic device, data sharing method, program, and recording medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014508997A (en) * 2011-01-30 2014-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Business mashup
JP2017123189A (en) * 2011-05-26 2017-07-13 グーグル インコーポレイテッド Providing contextual information and enabling group communication for participants in conversation
US10320723B2 (en) 2011-05-26 2019-06-11 Google Llc Providing contextual information and enabling group communication for participants in a conversation
JP2014149759A (en) * 2013-02-04 2014-08-21 Web Service Development Inc Network communication system
JP2018520530A (en) * 2015-04-10 2018-07-26 ソニー株式会社 Share web application program guide content items via home network
KR101717564B1 (en) * 2016-03-21 2017-03-20 서울여자대학교 산학협력단 Web-in-the-loop simulation apparatus and method for development and evaluation of website

Also Published As

Publication number Publication date
JP5099073B2 (en) 2012-12-12

Similar Documents

Publication Publication Date Title
JP3780507B2 (en) Session information takeover method, application server, Web site, and program
JP5315062B2 (en) Web server and method for managing sessions
US8621037B2 (en) System and method to create bi-directional event subscriptions
JP2001515669A (en) System and method for granting access to information in a distributed computer system
JP2004029939A (en) Communication proxy device and service providing method using the same device
JP5099073B2 (en) Software inter-communication relay method, apparatus, and program
CN104283875A (en) Cloud disk authority management method
JP2012194809A (en) Program, control device and method
JP2012069087A (en) Web service providing system, server device, method and program
CN102882974A (en) Method for saving website access resource by website identification version number
JP5347429B2 (en) Uniform resource locator rewriting method and apparatus
CN102687116A (en) Managed channel for asynchronous requests
JP2008165447A (en) Data access device, data access method and computer program
US8655946B2 (en) Authenticating method, conversion device, and relay device
JP5499524B2 (en) Relay program and relay device
JP5488349B2 (en) Relay device, relay method, and relay program
Pautasso et al. A pattern language for RESTful conversations
JP2007257500A (en) Device to be authenticated, program to be authenticated, method to be authenticated, web browser plug-in, and web browser bookmarklet
JP2009123062A (en) System and method for content display control
De Designing a RESTful API Interface
Wilde et al. RESTful SPARQL? You name it! Aligning SPARQL with REST and resource orientation
JP2008077614A (en) Session management program and session management method
KR102598112B1 (en) Method and device for providing advertisement by counteracting on advertisement blocking function
JP4319331B2 (en) Service linkage system and information diversion device
JP2016062487A (en) Relay device, data processing system, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120105

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120910

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5099073

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150