JP5894080B2 - Webアプリケーションとブラウザーの外部のプロセスとの間の通信チャンネル - Google Patents

Webアプリケーションとブラウザーの外部のプロセスとの間の通信チャンネル Download PDF

Info

Publication number
JP5894080B2
JP5894080B2 JP2012542026A JP2012542026A JP5894080B2 JP 5894080 B2 JP5894080 B2 JP 5894080B2 JP 2012542026 A JP2012542026 A JP 2012542026A JP 2012542026 A JP2012542026 A JP 2012542026A JP 5894080 B2 JP5894080 B2 JP 5894080B2
Authority
JP
Japan
Prior art keywords
bridge
web application
component
message client
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.)
Active
Application number
JP2012542026A
Other languages
English (en)
Other versions
JP2013513160A5 (ja
JP2013513160A (ja
Inventor
イー.シュライファー ジェイソン
イー.シュライファー ジェイソン
オジー レイモンド
オジー レイモンド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013513160A publication Critical patent/JP2013513160A/ja
Publication of JP2013513160A5 publication Critical patent/JP2013513160A5/ja
Application granted granted Critical
Publication of JP5894080B2 publication Critical patent/JP5894080B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)

Description

インターネットおよび他のオンライン技術のユーザーは、例えばファイルトランスファー又はWebページを受け取ることによって離れた場所の情報にアクセスすることができる。情報/及び又はWebベースアプリケーションの機能は、例えばパーソナルコンピューター(PC)等でのブラウザー環境で表示することができる。現在のWebベースプログラミングフレームワークは例えばWebページによってユーザーのブラウザー環境(又は不可視のブラウザータイプ環境中でデスクトップ上のガジェットとして動作)に送ることが可能なWebベースのアプリケーション(webアプリケーション)をとして導入されている。これらのフレームワークは、例えばユーザーの要求をサーバーに返送して、それによってWebページ内にダイナミックロジックを提供する必要がなく、ライブの豊かな対話的マルチメディア環境を提供することができる。
多くの場合、対話性豊かなWebアプリケーションはユーザーのコンピューター装置(例えば、パーソナルコンピューター、Web動作可能な携帯装置等)上に搭載され、インターネットとのライブ(又は半ライブ)接続を維持し、要求された情報の更新及びアクセスを提供する。例えば、ユーザーはパーソナルコンピューターのデスクトップにユーザーの地点の現在の天気の状態を表示するウィジェットをロードすることができる。コンピューターがインターネットへの接続を維持している限り、この例においては、ウィジェットはユーザーのために表示された天気の状態を更新することができる。更に、ブラウザーは、例えば実際のスコアを有する各投球、アクション等で野球試合を追跡するアプリケーション等のユーザーのための豊かなマルチメディア経験を提供する豊かな対話型アプリケーション(例えば、シルバーライト(Silverlight)Java及びFlashアプリ)をロードすることができる。
この概要は詳細な説明において以下で更に記述される簡略化した形式で概念の選択を導入するために提供される。この概要は請求された主題の主要な要素又は必須の特徴を特定するものではなく、請求された主題の範囲を限定するために用いることを意図するものでもない。
現在、Webベースアプリケーション(Webアプリ)は、オペレーティングシステム(OS)アプリケーションプログラミングインターフェース(API)を介して直接的にオペレーティングシステムと相互作用する、又は、オペレーティングシステムAPIをコールし得るライブラリー機能と間接的に相互作用する、スタンドアローンアプリケーションではない。例えば、オペレーティングシステムAPIにアクセスする能力はアプリケーションにコンピューター内の計算リソースの、ある制御を与える可能性がある。その代わりに、Webアプリは、例えばOSのAPIとライブラリーとから分離された「サンドボックス(sandbox)」内のブラウザー環境において実行し、それによって悪意のハッカーからの一定の安全性を創出している。
現在のWebアプリは、ファイルシステム管理及びブラウザーウインドウを超えた表示領域等の、ユーザーのコンピューター上の最大限のリソースへのアクセスを利用するスタンドアローンアプリケーションとして使用することはできない。一般に、Webページは非ブラウザーコンテキストで処理することはできない。しかしながら、Webアプリがデスクトップ環境において動作しているアプリケーションからの情報にアクセスすることが可能であれば、例えばデスクトップの内容をWebアプリによる使用に提供される(例えば、Webアプリがデスクトップのコンテンツを使用することができる)ことなどによって、より豊かでより役立つ経験がユーザーに提供される。例えば、Webベースのソシャルネットワーク等のWebアプリがユーザーのためにプロファイルへの連絡先を追加するときは、Webアプリがそれらのコンタクトを管理するユーザーのデスクトップベースのアプリケーションからそれらをロードするのが好ましい。
ブラウザー環境などのWebベースアプリケーションと、アプリケーションが動作しているところなどのコンピューター上のデスクトップ環境との間のブリッジ(bridge)を提供する1つまたは複数の技術及び/又はシステムが開示される。一例として、ブリッジは、ブラウザーにおけるWebアプリが、例えば適切なセキュリティを維持しつつデスクトップアプリケーションと通信する方法を提供する。例えば、Webアプリがアプリケーションからの情報を要求する場合、ブリッジは要求を送出してアプリケーションから応答を取り出す方法を提供する。
Webクライアントからの要求をコンピューター装置で動作しているプロセスに中継し、プロセスからの応答を受取るための一実施形態において、Webブラウザーにおいて動作しているWebアプリ内のブリッジブメッセージクライアントがブラウザーの外部で動作しているプロセスへのローカル接続をオープンにすることができる。この実施形態において、ブリッジメッセージクライアントはローカル接続をホストするための通信チャンネルを識別する通信チャンネルIDと、ブリッジサーバーコンポーネントがWebアプリと通信するのを補助するブリッジメッセージクライアントIDとを有する。さらに、この実施形態において、ブリッジサーバーコンポーネントはブラウザー環境の外部にあり、ブリッジメッセージクライアントからの要求を受取って、それをプロセスに送出することができる。ブリッジサーバーコンポーネントはプロセスからの要求に対する応答を受取ってそれをローカル接続を介してブリッジメッセージクライアントに送出することができる。
上述した目的及び関連した目的を達成するために、以下の記述及び添付の図面が説明的な態様と実施形態とを示している。これらは1つまたは複数の態様が実施され得る種々の方法の内の幾つかを表しているのに過ぎない。開示の他の態様、利点、及び新規な特徴は添付された図面を参照して検討するときに、以下の詳細な説明から明らかになるであろう。
本明細書に記述される1つあるいは複数のシステム及び/又は技術が実現され得る例示的環境を示す図である。 Webクライアントからの要求をコンピューター装置上で動作しているプロセスに中継し、プロセスからの応答を受け取るための例示的システムを示すコンポーネントのブロック図である。 本明細書に記述されるシステムの例示的実施形態を示すコンポーネントのブロック図である。 Webクライアントからの要求をコンピューター装置上で動作しているプロセスに中継し、プロセスからの応答を受け取る例示的方法を示すフロー図である。 本明細書に記述される方法の一部分の例示的実施形態を示す図である。 本明細書に記述される方法の一部分の例示的実施形態を示す図である。 本明細書に記述される1つまたは複数のシステム及び方法を実現する例示的実施形態を示すフロー図である。 本明細書に記述される1つまたは複数のシステム及び方法を実現する例示的実施形態を示すフロー図である。 本明細書に記載の1つまたは複数の内容を実施化するように構成されたプロセッサーにより実行可能な命令を含む例示的コンピューター可読媒体を示す図である。 本明細書に記載の1つまたは複数の内容が実現される例示的コンピューター環境を示す図である。
ここで請求された主題について図面を参照しながら説明するが、ここでは図面を通して同様の参照番号は同様の要素を示すために用いられる。以下の記載では、説明目的のため、多数の具体的な詳細が請求された主題の完全な理解を促すために記述される。しかし、請求された主題はこれらの特定な詳細を用いずに実施化できることは明らかである。他の例では、構造及び装置が、請求された主題の記述を容易にするためにブロック図の形式で示される。
図1は本明細書に記述される1つまたは複数の技術及び/又はシステムが実装され得る例示的環境100を示す図である。コンピューター装置106は、デスクトップ環境において、パーソナルコンピューターのデスクトップ上で動作している連絡先、カレンダー、電子メールなどを管理するパーソナルアシスタントプログラム等のアプリケーション110を動作させている。更に、ブラウザー環境108がコンピューター装置106上で動作しており、インターネット102に接続される。この例示的環境100において、Webベースアプリケーション104(Webアプリ)はコンピューター装置106上のブラウザー環境108にロードすることが可能である。
例えば、Webアプリケーション104を動作するのに用いられるコードは、ブラウザー環境108に完全にロードされ、ライブの更新等のためにインターネット102への接続を維持しつつコンピューター装置106上で完全に動作する。しかしながら、通常のオペレーティングシステムおよびコンピューティング環境は、ブラウザー環境108内で動作しているWebアプリとデスクトップ環境で動作しているアプリケーション110との間の接続112を許可しない。例えばインターネット102に接続されているライブWebアプリの間の接続112を許可しない理由の一つはコンピューティング装置のデスクトップ環境へのセキュリティ違反を軽減することである。
ここで提供されるように、ブリッジは、ブラウザー環境等のようなコンピューティング装置上で動作しているWebベースアプリケーションと、例えばコンピューター上のデスクトップ環境との間に提供され得る。更に、ブリッジは、例えばコンピューティング装置に対する適切なセキュリティを維持しつつ、ブラウザー環境で動作しているアプリケーションとコンピューターのデスクトップ環境で動作しているアプリケーションの間の通信を提供することができる。例えば、豊かな対話型の統合マルチメディアランタイム環境で創造されたもの等のWebアプリケーション(例えばSilverlight、Java、Flash等)がブラウザー環境の外部で動作しているアプリケーションからの情報を要求するときに、ブリッジは、コンピューティング装置への潜在的に不都合な通信を禁止しながら要求を送出して、アプリケーションからの応答を取り出す方法を提供する。
図2はWebクライアントからの要求をコンピューティング装置上で動作しているプロセスに中継してプロセスからの応答を受け取るための例示的システム200を示すコンポーネントブロック図である。ブリッジメッセージクライアントコンポーネント202がコンピューター装置212上のブラウザー環境214で動作しているWebアプリケーション216内に配置されている。ブリッジメッセージクライアントコンポーネント202がコンピューター装置212上のデスクトップ環境(図示せず)内で動作しているアプリケーション20内等のコンピューティング装置上のブラウザー環境の外部で動作しているプロセス210へのローカル接続220を開示する。
ブリッジメッセージクライアントコンポーネント202は、デスクトップ環境(図示せず)内等のコンピューター装置212上に配置されたブリッジサーバーコンポーネント208へのローカル接続220がホストされ得る通信チャンネル218を識別する通信チャンネル識別コンポーネント206を含む。このブリッジメッセージクライアントコンポーネント202は更に、例えば複数のブリッジメッセージクライアントコンポーネント202及び/又はWebアプリケーション216がブリッジサーバーコンポーネント208との通信を試みているときなどにブリッジサーバーコンポーネント208がWebアプリケーション216と通信するのを補助するブリッジメッセージ識別コンポーネント204を含む。
例示的システム200において、ブリッジサーバーコンポーネント208はブラウザー環境214の外部に配置されており、ブリッジメッセージクライアントコンポーネント202からの要求を受けとってプロセス210に送出することが可能である。更に、ブリッジサーバーコンポーネント208はプロセス210からの要求に対する応答を受け取り、それらをローカル接続220を介してブリッジメッセージクライアントコンポーネント202に送出することができる。
一実施形態において、ブラウザー環境は、例えば、対話的で豊かな統合されたマルチメディアWebページがWebサイトからブラウザー(例えば214)にロードされたとき等の、Webアプリケーション(例えば216)のインスタンス化を有していてもよい。この実施形態において、Webアプリケーションはその中に配置されたブリッジメッセージクライアントコンポーネント202の例示を有することが可能である。更に、例えば、Webアプリケーション及び関連したブリッジメッセージクライアントコンポーネント202は例えばWebサイトからブラウザー環境にロードされ、それによって完全にコンピューティング装置(例えば212)上で動作するようにすることができる。
この実施形態において、通信チャンネル218は通信チャンネル識別子を使用してブリッジサーバーコンポーネント208によって開くことができ、ローカル接続220を通信チャンネル218上でホストすることができる。一実施形態において、通信チャンネル識別コンポーネント206は例えば、Webアプリケーションからの通信を所望のプロセス(例えば210)に関連したブリッジサーバーコンポーネント(例えば208)にリンクするオペレーティングシステム内の特定の通信チャンネル(例えば218)を指定するチャンネル名を含むことが可能である。
一例として、オペレーティングシステムチャンネルはメッセージを例えばメッセージを証明することによる方法等の何らかの方法で処理するコンポーネントであり得る。更に、実施形態において、通信チャンネル218は、HTTP(Hyper Text Transfer Protocol)、名前付きパイプ、TCP(Transmission Control Protocol)、及びマイクロソフトメッセージキューイング(MSMQ)等のネットワーク(又はコンピューティング装置の外部の他の通信ポイント)からのメッセージを読み取り書き込むことが可能なトランスポートチャンネルであっても良い。
更に、一例として、ローカル接続220は2個(又は2より大)のアプリケーションベースの制御インスタンスの間で送信者と受信者を接続するパブリッシュ/サブスクライブメカニズムであっても良い。一実施形態において、ブリッジサーバーコンポーネント208はコンピューター装置212上で隠された(例えばユーザーの視覚及び/又は操作から隠された)豊かな対話型の統合マルチメディアランタイム環境のインスタンス化であっても良い。この実施形態において、ローカル接続220はWebベースアプリケーション(ブリッジメッセージクライアントコンポーネント202と共にブラウザー内で動作している)の第1のインスタンス化とWebベースアプリケーションの第2のインスタンス化(ブラウザー環境の外部で動作しているブリッジサーバー)との間の通信リンクを含むことが可能である。この例において、ローカル接続220はブリッジメッセージクライアント(例えば202)とブリッジサーバーコンポーネント(例えば208)の間の通信リンクを確立するために名前付き通信チャンネルを使用することができる。
一実施形態において、ブリッジサーバーコンポーネント208はコンピューター装置212上の、例えばデスクトップ環境内で動作しているアプリケーション(例えば250)によってホストされているコンポーネントであっても良い。更に、ブリッジサーバーコンポーネント208はコンピューター装置212上で動作しているサービスとしてインスタンス化されたコンポーネントであっても良い。当業者はブリッジサーバーコンポーネント208をホスト又はインスタンス化する別な方法を考案することができることが理解され、例えば、ブリッジサーバーコンポーネント208はコンピューティング装置上のデスクトップ環境に配置された一以上のドライバーに含まれていても良い。
さらに、一実施形態において、プロセス(例えば210)はコンピューティング装置上のデスクトップ環境内で動作しているプログラムの少なくとも一部分を含んでも良い。
例えば、プロセスはユーザーマシーン上で動作しているアプリケーションに挿入されているプログラミングコードの一部分を含んでも良い。この例において、コードは要求された情報のストリング等のアプリケーションからの応答データを返すためにブリッジサーバーと通信するように設計することができる。Webアプリケーションがブリッジメッセージクライアントを使用してアプリケーションから特定のデータを要求する場合、例えば、プロセスはアプリケーションからの要求された情報をブリッジサーバーコンポーネント208に返すことが可能である。
一実施形態において、ブリッジメッセージクライアント識別子204は、例えばプロセス210に関連したブリッジサーバーコンポーネント208から所望のWebアプリケーション(例えば216)に関連した通信チャンネル218にリンクさせるブリッジメッセージクライアントコンポーネント202のためのクライアント名を含んでも良い。即ち、例えば、複数のWebアプリケーションがそれぞれブリッジメッセージクライアント(例えば202)のインスタンス化を含むとき、ブリッジサーバーは特定のブリッジメッセージクライアントを特定することを望むかも知れない。この方法で、この例において、Webアプリケーションからの要求に対する特定の応答を正しいブリッジメッセージクライアントに返すことが可能である。この実施形態において、クライアントID204によって通信チャンネル218を介した正しい接続を容易化することができる。
図3はここで記述されたシステムの例示的実施形態300を示すコンポーネントブロック図である。Webベースアプリケーション等のWebクライアント352、ブラウザー環境354(例えばユーザーのコンピューター上)内に配置されている。Webクライアントは通信チャンネル218上でブリッジサーバーコンポーネント208へのローカル接続220を有するブリッジメッセージクライアントコンポーネント202を含む。ブリッジサーバーコンポーネント208は同様にプロセス210を含む(例えばユーザーのコンピューター上で動作している)デスクトップアプリケーション350に配置されている。
この例示的実施形態300において、ブリッジサーバーはWeb中継コンポーネント320、マシーン中継コンポーネント322及びブリッジメッセージサーバーコンポーネント324を含んでいる。この実施形態において、Web中継コンポーネント320及びマシーン中継コンポーネント322は同一のドメイン、即ちホスト制御358に配置されている。この例において、ホスト制御ドメイン358はブリッジサーバーコンポーネントにおいてインスタンス化されてWebとマシーンの中継をホストすることが可能である。
一例において、ホスト制御358は更に、Web中継コンポーネント320が配置されるブリッジを介してデータを受取って送出するようなブリッジリレー(中継)356を含んでも良い。他の実施形態において、Web中継コンポーネント320は同一のドメインにおけるマシーン中継コンポーネント322のインスタンス化(例えばホスト制御358)として生成されても良い。
この実施形態300において、Web中継コンポーネント320はブリッジメッセージクライアントコンポーネント202から要求を受け取り、マシーン中継コンポーネント322に送出することができる。例えば、ブリッジメッセージクライアントコンポーネント202はプロセスからの特定のデータの要求をローカル接続220を使用して通信チャンネル218を介して送出することができる。更に、ブリッジメッセージクライアントコンポーネント202はWeb中継コンポーネント320からの要求を受け取り、それを第1の名前付き通信パイプ326上でブリッジメッセージサーバーコンポーネント324に送出することができる。上述したように、通信チャンネルは例えばデータを交換するための名前付きパイプを含むことができる。この実施形態において、マシーンリレーは要求を送出するためにブリッジメッセージサーバーコンポーネント324への第1の名前付き通信パイプ326を識別することができる。加えて、ブリッジメッセージサーバーコンポーネント324はマシーン中継コンポーネント322からの要求を受け取って、それをプロセス210に送出することができる。
一実施形態において、プロセス210はアプリケーション350から要求された情報を取り込み、ブリッジメッセージサーバーコンポーネント324に応答を返すことができる。ブリッジメッセージサーバーコンポーネント324はプロセス210から応答を受け取って、それを第2の名前付き通信パイプ328上でマシーン中継コンポーネント322に送出することができる。例えば、ブリッジメッセージサーバーはマシーン中継コンポーネント322にメッセージを中継するために第2の名前付き通信パイプを識別しても良い。
更に、マシーン中継コンポーネント322はブリッジメッセージサーバーコンポーネント324からの応答を受けとってそれをWeb中継コンポーネント356に送出することができる。加えて、Web中継コンポーネント320はマシーン中継コンポーネント322からの応答を受けとって、それをローカル接続220を介してブリッジメッセージクライアントコンポーネント202に送出することができる。
一例として、Webクライアント352は次に応答内の情報を、例えばブラウザー環境354内で表示することなどによって利用することができる。一実施形態において、応答は非同期で受け取ることができる。例えば、ブラウザー環境354は複数のWebクライアント352を含んでも良く、及び/又はWebクライアントが複数のブリッジメッセージクライアントコンポーネント202を含んでも良い。この例において、2以上のブリッジメッセージクライアント202が同時又は実質的に同様の時間にプロセス210に要求を送出しても良い。複数の要求に対する応答は非同期で返すことができる。
例えばブラウザー環境とユーザーのコンピューター上のデスクトップ環境との間で情報が送出されることを可能にする方法が考案されても良い。図4はWebクライアントからのコンピューティング装置上で動作しているプロセスへの要求を中継してプロセスからの応答を受け取る方法400の例示的な実施形態を示すフロー図である。例示的方法400は402で開始し、404においてブラウザー環境の外部でコンピューティング装置上にインストールされるべきブリッジサーバーを提供することに関係している。
406において、Webアプリケーション内でのブリッジメッセージクライアントのインストールが提供され、Webアプリケーションがコンピューティング装置上のブラウザー環境で動作するように構成される。408において、ローカル接続の開始が提供され、Webアプリケーションとプロセスの間で識別されたチャンネル上でローカル接続が開始される。410において、ローカル接続がブリッジメッセージクライアントとプロセスに関連したブリッジサーバーとの間の通信リンクを提供する。
例示的方法400においては、412において、ブリッジメッセージクライアントがローカル接続上でアプリケーションからの要求をブリッジサーバーに送出する。414において、ブリッジサーバーがローカル接続上でブリッジメッセージクライアントからの要求を受け取り、コンピューティング装置上でブラウザー環境の外部で動作しているプロセスに送出する。更に、416において、ブリッジサーバーはプロセスから要求に対する応答を受け取り、それをローカル接続上でブリッジメッセージクライアントに送出する。418において、ブリッジメッセージクライアントがブリッジサーバーから要求に対する応答を受け取り、例えば、クライアントに関連したWebアプリケーションが応答に含まれるデータを利用する(例えばブラウザーにおいてそれを表示する)。
図5A及び5Bは一つ以上のここで記述された方法の一部分の例示的実施形態500及び510である。例示的実施形態500内で、414においてブリッジサーバーがブリッジメッセージクライアントからの要求を受け取り、次にそれをブラウザーの外部のプロセスに送出し、502においてコンピューティング装置上のブラウザー環境の外部に配置されたWebリレーがローカル接続上でブリッジメッセージクライアントからの要求を受け取る。504において、WebリレーがWeb中継コンポーネントと同一のドメインに配置されたマシーンリレーに要求を送出する。例示的実施形態500内で、506においてマシーンリレーがWebリレーからの要求を受け取り、508において、それを第1の名前付き通信パイプ上でブリッジメッセージサーバーに送出する。
例示的実施形態510内で、416においてブリッジサーバーがプロセスから要求に対する応答を受け取ってそれをブリッジメッセージクライアントに送出し、512においてコンピューティング装置内のブラウザー環境の外部に配置されたマシーンリレーが、第2の名前付き通信パイプ上でブリッジメッセージサーバーから要求に対する応答を受け取る。514において、マシーンリレーが要求に対する応答を同一のドメインに配置されたWebリレーに送出する。516において、Webリレーがマシーンリレーから要求に対する応答を受け取り、518において、それをローカル接続上でブリッジメッセージクライアントコンポーネントに送出する。
図6及び7は一つ以上のここで記述されたシステム及び/又は方法を実現した例示的な実施形態を示すフロー図である。図6の例示的実施形態600において、Webベースアプリケーション(Webアプリ)からの要求に応答するように構成されたプログラミングコードがコンピューティング装置のデスクトップ環境内にインストールされる。例えば、コードが開発されてユーザーのEメール、コンタクト、カレンダー、タスク等を管理し、処理するアプリケーション内にインストールされても良い。そのコードはWebアプリケーションがユーザーのコンタクト又はWebアプリ内で使用される他の情報片を要求することを許可するように構成されても良い。
604において、ブリッジサーバーのインスタンス化(例えば図2の208)がコンピューティング装置のデスクトップ環境にインストールされる。一例として、ブリッジサーバーはスタンドアローンのコンポーネント又はサービスとして含まれても良く、又はWebアプリによって情報が要求される可能性が有るデスクトップアプリケーションに含まれても良い。一度インストールされると、ブリッジサーバーは通信チャンネル上で、例えば要求等の通信をリッスンする。
610において、ブリッジメッセージクライアント(例えば図2の202)がWebアプリにインストールされる。例えばWebアプリの開発者はブリッジサーバーと同一のルートドメインを有する同一のサイトからブリッジメッセージクライアントの一バージョンをダウンロードしても良い。この例において、ブリッジサーバーはこの方法でブリッジメッセージクライアントからの要求の通信を信頼することができ、それによって一種のセキュリティ関係を創り出すことができる。ステップ612において、ブリッジメッセージクライアントを含むWebアプリは例えばWebアプリケーション開発者のWebサイト等のWebサイト上で利用可能にされる。
608において、ユーザーがWebブラウザー等のブラウザー環境をオープンし、Webアプリケーション及び関連したブリッジメッセージクライアントを有するWebページを閲覧する。一例として、WebアプリはユーザーがデータをアップロードすることによってWebページの追加の特徴を利用することを可能にする、豊かに統合されかつ対話型のマルチメディアエクスペリエンスである。614において、クライアントのためのブリッジを有するデスクトップ環境内に存在するブリッジサーバーが有るか否かが判別される。もしブリッジサーバーが存在しなければ、616において、クライアントと接続が行われない。しかしながら、もしブリッジサーバーが存在し、通信チャンネルが利用できれば、ブリッジメッセージクライアントは618においてブリッジサーバーとローカル接続を行う。一実施形態において、開始すべきローカル接続を用意することはブラウザー環境とコンピューティング装置のデスクトップ環境との間で通信リンクを作ることを含み、それによってデスクトップ環境からブラウザー環境にデータストリングが転送されることが許されても良い。
図7の例示的実施形態700内で、720において、ユーザーがデスクトップアプリケーションに対する要求を能動化するWebアプリ上の機能を選択する。例えば、Webアプリは「アプリケーションからコンタクトをアップロードするためにはここをクリック」とボタンを含んでも良い。この例では、ユーザーはボタンをクリックして要求を開始することができる。722において、ブリッジメッセージクライアントはブリッジサーバーローカル接続上でユーザーのコンタクト管理アプリケーション内のコンタクトのリストに対する要求を送出することができる。
724において、ブリッジサーバーブリッジメッセージクライアントから要求を受け取る。726において、ブリッジサーバーが要求に対して応答可能か否かを判別する。例えば、ブリッジサーバーはユーザーのコンタクトがアップロードされることを許すアプリケーションのためのコードに関係しているか否かを判別することができる。結果が否定的であれば、728において要求に対する、例えばヌル応答以外の、如何なる応答も返されない。
もし730においてブリッジサーバーが応答可能であれば、ブリッジサーバーは要求をデスクトップアプリケーション内のコードなどのコードに送出し、要求された情報を取り込む。例えば、ユーザーのコンタクトの要求がコンタクト管理アプリケーション内のコードに送出され、そこで、そのアプリケーションはコンタクトを含むデータのストリングにそのコンタクトを配置することができる。732において、ブリッジサーバーがアプリケーション内のコードから応答を受け取り、それをブリッジメッセージクライアントに送出する。
734において、ブリッジメッセージクライアントが応答を受け取り、それを使用するためにWebアプリに送出する。例えば、アプリケーションはユーザーのコンタクトを受け取り、ブラウザーにおいて使用するためにそれらを表示することができる。他の例として、Webアプリが次にWebベースコンタクト管理アプリケーションにコンタクトをロードし、かつ/又は他のユーザーがユーザーのコンタクトからソシャルネットワーク内のリストに追加されることを許可しても良い。
更に他の実施形態は一以上のここで示された技術を実現するように構成されたプロセス又は実行可能な命令を含むコンピューターにより読取り可能な媒体に関係している。これらの方法で考案されても良い例示的なコンピューターにより読み取り可能な媒体が図8に示されており、インプリメンテーション800はコンピューターで読取り可能な媒体808(例えばCD−R、DVD−R、又はハードディスクドライブのプラッタ)を含んでおり、その上にコンピューターにより読取り可能なデータ806がエンコードされている。次に、このコンピューターにより読み出し可能なデータ806は一以上のここで述べた原理に応じて動作するように構成された一組のコンピューター命令804を含んでいる。このような一つの実施形態802において、プロセッサー実行可能命令804は、例えば図4の例示的方法400等の方法を実行するように構成されても良い。他のこのような実施形態において、プロセッサー実行可能命令804は例えば図2の例示的システム200等のシステムを実現するように構成されても良い。多くのこのようなコンピューターにより読取り可能な媒体が当業者により考案され、ここで示された技術に従って動作するように構成されることが考えられる。
発明の主題を構造的特徴及び/又は方法論的な行為に特定の用語で記述してきたけれども、添付の請求項で画定された主題は必ずしも以上の部分に記述された具体的な特徴又は行為に限定されるものではないことが理解されるべきである。寧ろ、上述の具体的な特徴及び行為は請求項を実現するための例示の形で開示されたものである。
本出願において用いられているように、「コンポーネント」、「モジュール」、「システム」、「インターフェース」等の用語は一般的にコンピューター関連のエンティティ、ハードウエア、ハードウエアとソフトウエアの組み合わせ、ソフトウエア、又は実行中のソフトウエアの何れかを指すことが意図されている。例えば、コンポーネントはプロセッサー上で動作しているプロセス、プロセッサー、オブジェクト、実行可能、実行のスレッド、プログラム、及び/又はコンピューターであっても良いが、それに限定されない。
実例として、コントローラー上で動作しているアプリケーション及びコントローラーの両方はコンポーネントであり得る。一つ以上のコンポーネントがプロセス及び/又は実行のスレッド内に有って良く、コンポーネントは1つのコンピューター上に局在し、かつ/又は2つ以上のコンピューターの間で分配されても良い。
更に、請求項に記載された主題は方法、装置、又は標準プログラミングを使用した製品及び/又は開示された主題を実現するためにコンピューターを制御するためのソフトウエア、ファームウエア、ハードウエア、又はそれらの組み合わせを生成するエンジニアリング技術として実現されても良い。ここで使用された用語「製品」は、コンピューターにより読取り可能な装置、キャリアー又は媒体からアクセス可能なコンピュータープログラムのどれをも包含することが意図されている。勿論、当業者はこの構成に対して請求項に記載された主題の範囲及び精神から逸脱することなく多くの変形を作成しても良いことに気が付く筈である。
図9及び以下の説明はここで述べた一つ以上の内容の実施形態を実現する適当なコンピューティング環境の簡潔で概略的な記述を提供している。図9の動作環境は単に適当な動作環境の例であり、動作環境の使用又は機能の範囲について如何なる限度を示唆することを意図したものではない。例示されたコンピューティング装置にはパーソナルコンピューター、サーバーコンピューター、ハンドヘルド、又はラップトップ装置、携帯装置(例えば携帯電話、パーソナルデジタルアシスタント(PDA)、メディアプレーヤ等)、マルチプロセッサーシステム、コンシューマーエレクトロニクス、ミニコンピューター、メインフレームコンピューター、上述のシステム又は装置の何れかを含む分散コンピューティング環境等が含まれるけれども、これらに限定されない。
必須ではないけれども、実施形態は一つ以上のコンピューティング装置によって実行されている「コンピューターが読取り可能な命令」の一般的な文脈で記述されている。
コンピューターにより読取り可能な命令はコンピューターにより読取り可能な媒体(後述)を介して分配されても良い。コンピューターにより読取り可能な命令は特定のタスクを実行するか又は特定の抽象的データタイプを実装するファンクション、オブジェクト、アプリケーションプログラミングインターフェース(API)、データ構造、等のプログラムモジュールとして実装されても良い。通常、コンピューターにより読取り可能な命令の機能は種々の環境での要望に応じて組み合わされるか又は分散される。
図9はここで提供された一つ以上の実施形態を実現するように構成されたコンピューター装置912を含むシステム910の例を示している。一構成において、コンピューター装置912は少なくとも一つの処理装置916及びメモリー918を含んでいる。
コンピューティング装置の厳密な構成及び種類に依存して、メモリー918は揮発性(例えばRAM等)、不揮発性(例えばROM、フラッシュメモリー等)又はこれら2つの組み合わせで有っても良い。この構成は図9において破線914で示されている。
他の実施形態において、装置912は追加の特徴及び/又は機能を含んでも良い。例えば、装置912はまた、磁気記憶装置、光学記憶装置を含み、それには限定されない(例えば、取り外し可能及び/又は非取り外し可能な)追加の記憶装置を含んでも良い。かかる追加の記憶装置は図9において記憶装置920で示されている。一実施形態において、ここで提供された一つ以上の実施形態を実現するためのコンピューターにより読取り可能な命令は記憶装置920内に設けられても良い。記憶装置920はまた、オペレーティングシステム、アプリケーションプログラム、等を実現する他のコンピューターにより読取り可能な命令を格納しても良い。コンピューターにより読取り可能な命令は例えば、処理装置916による実行のためにメモリー918にロードされても良い。
ここで使用された「コンピューターにより読取り可能な媒体」という用語はコンピューター記憶媒体を含む。コンピューター記憶媒体は例えばコンピューターにより読取り可能な命令又は他のデータ等の情報の格納のための如何なる方法又は技術において実装されている揮発性及び不揮発性の、取り外し可能及び非取り外し可能の媒体を含む。メモリ918及び記憶装置920はコンピューター記憶媒体の例である。コンピューター記憶媒体はRAM、ROM、EEPROM、フラッシュメモリー又は他のメモリー技術、CD−ROM、デジタルバーサタイルディスク(DVD)又は他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は所望の情報を格納するのに使用可能で装置912によってアクセス可能な他の媒体等を含んでいるけれどもこれらに限定されない。かかるコンピューター記憶媒体の何れも装置912の一部分であっても良い。
装置912はまた装置912が他の装置と通信することを可能にする通信接続926を含んでも良い。通信接続926は、例えばモデム、ネットワークインターフェースカード(NIC)、統合ネットワークインターフェース、高周波トランスミッタ/レシーバ、赤外ポート、USB接続、又はコンピューター装置912を他のコンピューティング装置に接続するための他のインターフェースを含んで良いけれども、それに限定されない。通信接続926有線接続又は無線接続を含んでも良い。通信接続926は通信媒体を送信及び/又は受信しても良い。
「コンピューターにより読取り可能媒体」という用語は通信媒体を含んでも良い。通常、通信媒体は搬送波又は他の伝送メカニズム等の「変調データ信号」内のコンピューターにより読取り可能な命令又は他のデータを具体化したものであり、如何なる情報伝達媒体をも含む。「変調データ信号」という用語は一つ以上のその性質が信号中の情報をコード化するように設定又は変更された信号を含んでも良い。
装置912は例えばキーボード、マウス、ペン、音声入力装置、タッチ入力装置、赤外カメラ、ビデオ入力装置等の入力装置924及び/又は他のどのような入力装置を含んでも良い。例えば一つ以上のディスプレイ、スピーカ、プリンター等の出力装置922及び/又は他の出力装置もまた装置912に含まれても良い。入力装置924及び出力装置922は有線接続、無線接続、又はそれらの組み合わせを介して装置912に接続されても良い。一実施形態において、他のコンピューティング装置からの入力装置又は出力装置がコンピューター装置912のための入力装置924又は出力装置922として使用されても良い。
コンピューター装置912のコンポーネントは、例えばバスなどの種々の相互接続によって接続されても良い。かかる相互接続はPCIエクスプレスなどの周辺機器コンポーネント相互接続(PCI)、ユニバーサルシリアルバス(USB)、ファイアーワイヤー(IEEE1394)、光学式バスストラクチャ等を含んでも良い。他の実施形態において、コンピューター装置912のコンポーネントはネットワークによって相互接続されても良い。例えば、メモリー918はネットワークによって相互接続された異なる物理的位置に設置された複数の物理メモリーユニットによって構成されても良い。
当業者はコンピューターにより読取り可能な命令を格納するために用いられる記憶装置はネットワーク中に分散されていても良いことに気が付く筈である。例えば、ネットワーク928を介してアクセス可能なコンピューター装置930がここで提供された一つ以上の実施形態を実現するためのコンピューターにより読取り可能な命令を格納しても良い。コンピューティング装置912はコンピューター装置930にアクセスし、コンピューターにより読取り可能な命令の一部分又は全てを実行のためにダウンロードしても良い。あるいは、コンピューター装置912はコンピューターにより読取り可能な命令の幾つかを必要に応じてダウンロードするか又は命令の内のどれかはコンピューター装置912により実行され、また命令のどれかがコンピューター装置930で実行されるようにしても良い。
ここでは実施形態の種々の動作が提供されている。一実施形態において、記述された動作の一つ以上は一つ以上のコンピューターにより読取り可能媒体に格納されたコンピューターにより読取り可能な命令を構成して良く、その命令はコンピューティング装置によって実行されると、記述された動作をコンピューティング装置に実行させる。その動作の幾つか或いは全てが記述された順序はこれらの動作がこの順序に必然的に依存していることを示唆していると解釈されてはならない。この明細書から得るところのある当業者には他の順序でよいことが理解される筈である。更に、ここで提供された各実施形態において全ての動作が存在していることが必ずしも必要でないことが理解される筈である。
更に、これまで用いられてきた「例示的な」という用語は一例、代表的な例、または実例としての役割を果すことを意味している。ここで「例示的」として記述されたどのような態様又はデザインも必ずしも他の態様又はデザインより有利であると解される訳ではない。寧ろ、例示的という語の使用は概念を具体的な形で提示することを意図したものである。この出願において用いられたように、「又は」という用語は、排他的な「又は」ではなく「包含的な「又は」を意味することが意図されている。即ち、別に定めが無い限り、または文脈から明らかでない限り、「XはA又はBを使用する」は自然な包含的な順列の何れかを意味することが意図されている。即ち、もしXがAを使用し;XがBを使用し;又はXがA及びBの両方を使用するならば、「XがA又はBを使用する」はこれらのどの例の場合にも満足される。更にこの出願及び添付の請求項において使用された冠詞「a」及び「an」は、別に定めが無い限り、又は文脈から単一形に対して用いられていることが明らかでない限り、通常「一つ以上」を意味すると理解することができる。
また、明細書の開示は一つ以上の実現例に関して示され、説明されてきたけれども、本明細書及び添付の図面を読んで理解することに基いて他の当業者は同等の変更及び変形が思いつく筈である。本明細書の開示はそのような変更及び変形の全てを含んでおり、以下に続く請求項の範囲のみによってのみ限定される。特に、上記のコンポーネント(例えばエレメント、リソース等)によって実行される種々の機能に関して、そのようなコンポーネントを記述するために用いられた用語は、他に定めが無い限り、記述されたコンポーネントの特定の機能を実行する(例えば機能的に同等な)如何なるコンポーネンにも、開示内容のここで示された例示的な実現例における機能を実行する構造とは構造的に同等でなくとも、対応することが意図されている。加えて、開示の特定の特徴は幾つかの実現例の内の一つのみについて開示されてきたかも知れないけれども、かかる特徴は、何れかの所定又は特定のアプリケーションに対して所望されかつ有利であるように、一つ以上の他の特徴の実現例と組み合わされても良い。更に、「含む」、「有する」、「共に」又はその変形例が詳細な説明または請求項において用いられる限り、これらの用語は「含む」という用語と同様の方法で包含的な用語で有ることが意図されている。

Claims (18)

  1. コンピューティング装置上で動作しているプロセスにWebアプリケーションから要求を安全に中継するためのシステムであって、
    コンピューティング装置に対しローカルのブラウザー環境内で動作しているWebアプリケーション内にインストールされたブリッジメッセージクライアントコンポーネントであって、
    ブリッジサーバコンポーネントと同一のソースから由来するものとして前記ブリッジメッセージクライアントコンポーネント識別された場合に前記ブリッジサーバーコンポーネントが前記Webアプリケーションからの要求を信頼することを可能にするブリッジメッセージクライアント識別子を使用することに基づいてブリッジサーバコンポーネントとの安全なローカル接続を確立し、
    前記ブラウザー環境の外の前記コンピューティング装置上で動作するプロセスへルーティングするため、前記Webアプリケーションからの要求を前記安全なローカル接続を通して前記ブリッジサーバコンポーネントに中継する、
    ように構成されたブリッジメッセージクライアントコンポーネント、
    を含む、システム。
  2. 請求項1記載のシステムにおいて、前記ブリッジメッセージクライアントコンポーネントは、前記ブリッジサーバーコンポーネントへの前記安全なローカル接続をホストする通信チャンネルを識別するように構成された通信チャンネル識別子を含む、システム。
  3. 請求項1記載のシステムにおいて、前記WebアプリケーションはWebサイトからダウンロードされ、該ダウンロードされたWebアプリケーションは、前記ブリッジメッセージクライアントコンポーネントを含む、システム。
  4. 請求項1記載のシステムにおいて、前記Webアプリケーションは、デスクトップガジェットとソーシャルネットワークアプリケーションとのうちの少なくとも1つを含む、システム。
  5. 請求項1記載のシステムにおいて、前記ブリッジサーバーコンポーネントを含み、該ブリッジサーバーコンポーネントは、
    前記ブリッジメッセージクライアントコンポーネントから前記安全なローカル接続を通して前記要求を受け取り、
    前記ブリッジサーバーコンポーネントが前記要求に応答するように構成されていると判定されたときに、前記要求を前記プロセスに送る、
    ように構成された、システム。
  6. 請求項5記載のシステムにおいて、前記ブリッジサーバーコンポーネントは、
    前記要求に対する応答を前記プロセスから受け、
    前記Webアプリケーションのため、前記ブリッジメッセージクライアントコンポーネントに対し前記応答を前記安全なローカル接続を通して中継する、
    ように構成された、システム。
  7. 請求項6記載のシステムにおいて、前記ブリッジメッセージクライアントコンポーネントは、前記応答を前記Webアプリケーションに送るように構成された、システム。
  8. 請求項1記載のシステムにおいて、前記ブリッジサーバーコンポーネントは、前記ブラウザー環境の外の前記コンピューティング装置内にホストされた、システム。
  9. コンピューティング装置上で動作しているプロセスにWebアプリケーションから要求を安全に中継するための方法であって、
    コンピューティング装置に対しローカルのブラウザー環境内で動作しているWebアプリケーション内にインストールされたブリッジメッセージクライアントコンポーネントが、ブリッジサーバコンポーネントと同一のソースから由来するものとして前記ブリッジメッセージクライアントコンポーネント識別された場合に前記ブリッジサーバーコンポーネントが前記Webアプリケーションからの要求を信頼することを可能にするブリッジメッセージクライアント識別子を使用することに基づいてブリッジサーバコンポーネントとの安全なローカル接続を確立し、
    前記ブリッジメッセージクライアントコンポーネントが、前記ブラウザー環境の外の前記コンピューティング装置上で動作するプロセスへルーティングするため、前記Webアプリケーションからの要求を前記安全なローカル接続を通して前記ブリッジサーバコンポーネントに中継する、
    ことを含む方法。
  10. 請求項記載の方法において、
    前記ブリッジサーバーコンポーネントが、前記ブリッジメッセージクライアントコンポーネントから前記安全なローカル接続を通して前記要求を受け、
    前記ブリッジサーバーコンポーネントが、前記要求を前記プロセスに送る、
    ことを含む、方法。
  11. 請求項10記載の方法において、
    前記ブリッジサーバーコンポーネントが、前記要求に対する応答を前記プロセスから受け、
    前記ブリッジサーバーコンポーネントが、前記Webアプリケーションのため、前記ブリッジメッセージクライアントコンポーネントに対し前記応答を前記安全なローカル接続を通して中継する、
    ことを含む、方法。
  12. 請求項11記載の方法において、
    前記ブリッジメッセージクライアントコンポーネントが、前記応答を前記Webアプリケーションに送ること、
    を含む、方法。
  13. 請求項記載の方法において、前記Webアプリケーションは、デスクトップガジェットを含む、方法。
  14. 請求項記載の方法において、前記Webアプリケーションは、ソーシャルネットワークアプリケーションを含む、方法。
  15. 請求項記載の方法において、前記ブリッジサーバーコンポーネントは、前記ブラウザー環境の外の前記コンピューティング装置内にホストされた、方法。
  16. 請求項記載の方法において、前記ブリッジメッセージクライアントコンポーネントは、前記ソースからの別個のダウンロード可能なモジュールとして前記Webアプリケーション内にインストールされた、方法。
  17. 請求項記載の方法において、前記ブリッジメッセージクライアントコンポーネントは、前記ブリッジサーバーコンポーネントへの前記安全なローカル接続をホストする通信チャンネルを識別するように構成された通信チャンネル識別子を含む、方法。
  18. コンピュータ実行可能命令を含むコンピュータ記憶媒体であって、前記コンピュータ実行可能命令は、処理ユニットを介して実行されると、コンピューティング装置上で動作しているプロセスとWebアプリケーションとの間の通信を容易にする方法を実行し、該方法が、
    コンピューティング装置に対しローカルのブラウザー環境内で動作しているWebアプリケーション内にインストールされたブリッジメッセージクライアントコンポーネントが、ブリッジサーバコンポーネントと同一のソースから由来するものとして前記ブリッジメッセージクライアントコンポーネント識別された場合に前記ブリッジサーバーコンポーネントが前記Webアプリケーションからの要求を信頼することを可能にするブリッジメッセージクライアント識別子を使用することに基づいてブリッジサーバコンポーネントとの安全なローカル接続を確立し、
    前記ブリッジメッセージクライアントコンポーネントが、前記ブラウザー環境の外の前記コンピューティング装置上で動作するプロセスへルーティングするため、前記Webアプリケーションからの要求を前記安全なローカル接続を通して前記ブリッジサーバコンポーネントに中継し、
    前記ブリッジサーバーコンポーネントが、前記要求に対する応答を前記プロセスから受け、
    前記ブリッジサーバーコンポーネントが、前記Webアプリケーションのため、前記ブリッジメッセージクライアントコンポーネントに対し前記応答を前記安全なローカル接続を通して中継する、
    ことを含む方法。
JP2012542026A 2009-12-03 2010-11-05 Webアプリケーションとブラウザーの外部のプロセスとの間の通信チャンネル Active JP5894080B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/630,208 US9390172B2 (en) 2009-12-03 2009-12-03 Communication channel between web application and process outside browser
US12/630,208 2009-12-03
PCT/US2010/055689 WO2011068629A2 (en) 2009-12-03 2010-11-05 Communication channel between web application and process outside browser

Publications (3)

Publication Number Publication Date
JP2013513160A JP2013513160A (ja) 2013-04-18
JP2013513160A5 JP2013513160A5 (ja) 2013-12-26
JP5894080B2 true JP5894080B2 (ja) 2016-03-23

Family

ID=44083113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012542026A Active JP5894080B2 (ja) 2009-12-03 2010-11-05 Webアプリケーションとブラウザーの外部のプロセスとの間の通信チャンネル

Country Status (6)

Country Link
US (1) US9390172B2 (ja)
EP (1) EP2507715B1 (ja)
JP (1) JP5894080B2 (ja)
KR (1) KR101763967B1 (ja)
CN (1) CN102640136B (ja)
WO (1) WO2011068629A2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US20150205489A1 (en) * 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
US20120316955A1 (en) * 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
US9823914B2 (en) * 2011-12-28 2017-11-21 International Business Machines Corporation Web applications having end-user data isolated in the local domain
CN102929638B (zh) * 2012-11-07 2014-08-13 广州市动景计算机科技有限公司 扩展WebApp应用功能的方法和系统
US9424213B2 (en) 2012-11-21 2016-08-23 Coherent Logix, Incorporated Processing system with interspersed processors DMA-FIFO
EP2954421A4 (en) * 2013-02-10 2016-10-05 Wix Com Ltd TIERCE APPLICATION COMMUNICATION API
US10291615B2 (en) * 2013-05-13 2019-05-14 Ivanti Us Llc Web event framework
US9912720B2 (en) 2013-05-13 2018-03-06 Appsense Us Llc Context aware browser policy
US9900367B2 (en) 2013-05-13 2018-02-20 Appsense Us Llc Context transfer from web page to application
US9760415B2 (en) * 2014-05-16 2017-09-12 Microsoft Technology Licensing, Llc Code service for language-independent dispatch
CN104010031B (zh) * 2014-05-21 2018-01-05 华南理工大学 一种改善Web浏览器应用效率的分布式协同方法
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
US9876849B2 (en) 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
US10949487B2 (en) * 2015-04-20 2021-03-16 Hyland Switzerland Sàrl Systems and methods for accessing computing device resources
US20160344677A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects
US10360287B2 (en) 2015-05-22 2019-07-23 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing user callouts
US10095571B2 (en) * 2016-01-04 2018-10-09 SmarterHi Communications Private Limited System and method for managing devices relayed via an established session
CN107015870B (zh) 2016-09-19 2020-11-03 创新先进技术有限公司 实现web页面与本地应用通信的方法、装置和电子设备
US10749689B1 (en) * 2017-06-29 2020-08-18 Salesforce.Com, Inc. Language-agnostic secure application development
US11163910B2 (en) * 2017-06-29 2021-11-02 Salesforce.Com, Inc. Methods and systems for data migration
US10901581B2 (en) * 2018-05-16 2021-01-26 ChartIQ, Inc. Assimilation method and system for browser and non-browser display window
US20200099738A1 (en) * 2018-09-24 2020-03-26 Citrix Systems, Inc. Systems and methods for bridge protocol between diverse applications
US10805246B1 (en) 2019-06-12 2020-10-13 International Business Machines Corporation Direct communication between a secure application and a local application running on the same device
US11776699B2 (en) * 2019-07-12 2023-10-03 Agfa Healthcare Nv Systems and methods for integrating healthcare applications
CN111176626B (zh) * 2019-08-05 2022-04-19 腾讯科技(深圳)有限公司 跨编程语言的代码调用方法及装置、介质、设备
US11575626B2 (en) * 2020-06-10 2023-02-07 Snap Inc. Bidirectional bridge for web view
CN112925527B (zh) * 2021-02-07 2022-03-08 北京三快在线科技有限公司 一种调用方法、装置、存储介质及电子设备

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696591A (en) * 1996-01-05 1997-12-09 Eastman Kodak Company Apparatus and method for detecting longitudinally oriented flaws in a moving web
US6758755B2 (en) * 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
US6119166A (en) * 1997-03-28 2000-09-12 International Business Machines Corporation Controlling communications with local applications using a browser application
US6141699A (en) * 1998-05-11 2000-10-31 International Business Machines Corporation Interactive display system for sequential retrieval and display of a plurality of interrelated data sets
US6341314B1 (en) * 1999-03-30 2002-01-22 International Business Machines Corporation Web-based virtual computing machine
US7539628B2 (en) * 2000-03-21 2009-05-26 Bennett James D Online purchasing system supporting buyer affordability screening
US6968539B1 (en) * 1999-09-30 2005-11-22 International Business Machines Corporation Methods and apparatus for a web application processing system
US6725238B1 (en) * 2000-01-06 2004-04-20 International Business Machines Corporation Method, system, and program for using a remotely accessed desktop interface and network drive to access a shared file system
US9213836B2 (en) * 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US7346649B1 (en) * 2000-05-31 2008-03-18 Wong Alexander Y Method and apparatus for network content distribution using a personal server approach
JP3460678B2 (ja) * 2000-06-02 2003-10-27 松下電器産業株式会社 レーザ加工方法および加工装置
US7401235B2 (en) 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
US20070022155A1 (en) * 2002-08-22 2007-01-25 Owens David H Method and system for integrating enterprise software applications with desktop software applications
EP1394679B1 (en) * 2002-08-30 2013-05-29 Hewlett-Packard Development Company, L.P. Improvements relating to technical support systems
JP2004302543A (ja) 2003-03-28 2004-10-28 Ntt Docomo Inc 受信装置およびプログラム
US20040249958A1 (en) * 2003-06-04 2004-12-09 Ozdemir Hasan Timucin Method and apparatus for secure internet communications
US20090094332A1 (en) * 2004-09-02 2009-04-09 Zimbra, Inc. System and method for enabling offline use of email through a browser interface
US20060075069A1 (en) * 2004-09-24 2006-04-06 Mohan Prabhuram Method and system to provide message communication between different application clients running on a desktop
US20060195544A1 (en) * 2005-02-28 2006-08-31 Bcks Posting and receiving resources for external applications using a web browser as an agent
JP4409497B2 (ja) 2005-10-24 2010-02-03 エヌ・ティ・ティ・ソフトウェア株式会社 秘密情報送信方法
US7752556B2 (en) * 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7986686B2 (en) * 2005-11-25 2011-07-26 Cisco Technology, Inc. Techniques for distributing network provider digital content to customer premises nodes
US7836303B2 (en) * 2005-12-09 2010-11-16 University Of Washington Web browser operating system
WO2007095732A1 (en) * 2006-02-20 2007-08-30 Topeer Corporation System and method for controlling local computer applications using a web interface
WO2008002274A1 (en) 2006-06-27 2008-01-03 Inventys Pte Ltd Method and system for client-side user interface enhancement to enable application integration and portalisation
US8583793B2 (en) * 2006-11-20 2013-11-12 Apple Inc. System and method for providing a hypertext transfer protocol service multiplexer
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
US20080168368A1 (en) * 2007-01-07 2008-07-10 Louch John O Dashboards, Widgets and Devices
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US8458612B2 (en) * 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
US20090037492A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
US20090320050A1 (en) * 2007-08-17 2009-12-24 Sms.Ac Mobile Network Community Platform Desktop API
US8336097B2 (en) * 2007-10-12 2012-12-18 Electronics And Telecommunications Research Institute Apparatus and method for monitoring and protecting system resources from web browser
US20090100342A1 (en) 2007-10-12 2009-04-16 Gabriel Jakobson Method and system for presenting address and mapping information
US20090144362A1 (en) * 2007-12-01 2009-06-04 Richmond Evan P Systems and methods for providing desktop messaging and end-user profiling
CN101488143A (zh) 2008-01-16 2009-07-22 重庆安软信息科技有限公司 一种新型的web应用和本地应用的交互模式
US20090254998A1 (en) * 2008-04-07 2009-10-08 Plura Processing, Lp Web-browser based grid computing system
US8078693B2 (en) 2008-04-14 2011-12-13 Microsoft Corporation Inserting a multimedia file through a web-based desktop productivity application
US20090282345A1 (en) * 2008-05-07 2009-11-12 Christopher Smith Interaction between web pages and local applications
EP2293855A1 (en) * 2008-06-02 2011-03-16 Nike International Ltd. System and method for creating an avatar
US20100004994A1 (en) * 2008-07-02 2010-01-07 Global Launch Incorporated Methods for facilitating communications between businesses and consumers
US8370749B2 (en) * 2008-10-14 2013-02-05 Kimbia Secure online communication through a widget on a web page
US8321401B2 (en) * 2008-10-17 2012-11-27 Echostar Advanced Technologies L.L.C. User interface with available multimedia content from multiple multimedia websites
US8352967B2 (en) * 2008-11-10 2013-01-08 Google Inc. Safe browser plugins using native code modules
US20100146523A1 (en) * 2008-12-05 2010-06-10 Tripod Ventures Inc./ Entreprises Tripod Inc. Browser environment application and local file server application system
US20100235762A1 (en) * 2009-03-10 2010-09-16 Nokia Corporation Method and apparatus of providing a widget service for content sharing
US20100248681A1 (en) * 2009-03-27 2010-09-30 Anthony Phills Method and system for producing emergency notifications
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US20110055309A1 (en) * 2009-08-30 2011-03-03 David Gibor Communication in Context of Content
US20110085667A1 (en) * 2009-10-09 2011-04-14 Adgregate Markets, Inc. Various methods and apparatuses for securing an application container

Also Published As

Publication number Publication date
KR101763967B1 (ko) 2017-08-01
EP2507715A2 (en) 2012-10-10
WO2011068629A3 (en) 2011-09-01
EP2507715A4 (en) 2013-05-08
US20110138059A1 (en) 2011-06-09
WO2011068629A2 (en) 2011-06-09
CN102640136A (zh) 2012-08-15
CN102640136B (zh) 2016-03-02
KR20120092169A (ko) 2012-08-20
US9390172B2 (en) 2016-07-12
EP2507715B1 (en) 2018-06-20
JP2013513160A (ja) 2013-04-18

Similar Documents

Publication Publication Date Title
JP5894080B2 (ja) Webアプリケーションとブラウザーの外部のプロセスとの間の通信チャンネル
US10255255B2 (en) Customization of mobile applications using web-based technology
US10261845B2 (en) Transparent integration of application components
US10595169B2 (en) Message extension app store
US8126963B1 (en) System and method for adding dynamic information to digitally signed mobile applications
KR101661784B1 (ko) 웹 브라우저를 통한 애플리케이션으로의 컨텐츠 입력 메소드
US20170359279A1 (en) Messaging application interacting with one or more extension applications
EP2487871A1 (en) Method and system for transmission of application status between different devices
US9448781B2 (en) Application installer transmission system, server, and program
JP2014528198A (ja) サードパーティの文書の署名及び保管のためのモバイルソリューション
JP2014522039A (ja) ウェブアプリケーションアーキテクチャ
US10693971B2 (en) Identifying the best suitable application to open a file shared via a link
EP2972802A1 (en) Dynamically configuring user experiences with action uniform resource identifiers
US20210076182A1 (en) Delivery of Configuration Information for Cross-Platform Application Integration
US10880272B2 (en) Secure software client
JP2015517165A (ja) ユーザーインターフェイスウェブサービス
CN110708238B (zh) 用于处理信息的方法和装置
US11132113B1 (en) Interaction signal processing in distributed computing systems
US20130007725A1 (en) Method, apparatus and system for transmitting an application using a plurality of computers
US20120311459A1 (en) Facilitated content item transfer
KR20240120166A (ko) 메시지의 무결성을 보장하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150127

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160225

R150 Certificate of patent or registration of utility model

Ref document number: 5894080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250