JP6043342B2 - 電子通信のための拡張性機能 - Google Patents

電子通信のための拡張性機能 Download PDF

Info

Publication number
JP6043342B2
JP6043342B2 JP2014510387A JP2014510387A JP6043342B2 JP 6043342 B2 JP6043342 B2 JP 6043342B2 JP 2014510387 A JP2014510387 A JP 2014510387A JP 2014510387 A JP2014510387 A JP 2014510387A JP 6043342 B2 JP6043342 B2 JP 6043342B2
Authority
JP
Japan
Prior art keywords
email
code
message
gadget
extension
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
JP2014510387A
Other languages
English (en)
Other versions
JP2014519088A (ja
JP2014519088A5 (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 JP2014519088A publication Critical patent/JP2014519088A/ja
Publication of JP2014519088A5 publication Critical patent/JP2014519088A5/ja
Application granted granted Critical
Publication of JP6043342B2 publication Critical patent/JP6043342B2/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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/60Business processes related to postal services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Description

[0001]通信ネットワーク(たとえば、インターネットプロトコル、携帯など)および関連するユーザデバイス/システムにおける進歩によって、豊かになり得る対話型アプリケーションのための仕組みが提供される。今日の進んだ通信インフラストラクチャによって、ユーザは、例としてデスクトップ、ポータブルコンピュータ、およびスマートフォンなどの多数の異なるタイプのデバイス/システムを使用して、ほとんどあらゆる場所から情報にアクセスして普及させることができる。無線機能およびモバイル機能は、現在、1つにはデバイスおよびサービスにアクセスするコストが妥当であるため、多数の状況において重要な役割を果たす。多種多様な媒体タイプを使用することにより、アドインコンポーネントは、多くの場合に、追加の対話型機能および機能性を提供するために使用される。アドインは、一般に内蔵されず、マシンの性能を損ない、ユーザエクスペリエンスを中断および遅延させ、複雑なインストールダイアログを含む場合があり、1つまたは複数のインストーラを必要とすることがある。残念なことに、アドインは、一般にインストールするのが厄介であり、場合によっては、関連するオブジェクトモデルおよびシステムリソースへの無制限アクセスを得るために使用されることがある。
[0002]この要約は、簡略化した形で概念の選択をもたらすために提供され、この概念については、以下に詳細な説明でさらに説明される。この要約は、特許請求の範囲に記載される主題の重要な特徴または本質的な特徴を識別することを意図するものではなく、また、特許請求の範囲に記載される主題の範囲を決定する際での助けとして意図するものでもない。
[0003]実施形態は、通信項目内のアクティブな対話機能性を提供するために部分的に使用される拡張性モデルを提供するが、これらの実施形態はそのように限定されるものではない。一実施形態では、コンピュータシステムは、コンテンツを電子メール通信に挿入するステップの一部として、分離されたコード実行環境を使用してガジェットコードをアクティブ化するように動作する1つまたは複数のアクティブ化トリガを識別するように構成された構成要素を含む。一実施形態の方法は、メールメッセージにコンテンツをインラインで自動的に挿入するステップの一部として、定義されたガジェットトリガおよび関連付けられたガジェット機能性を使用するための拡張性フレームワークを提供する。他の実施形態も含まれる。
[0004]上記および他の特徴および利点は、以下の詳細な説明を読むことおよび関連する図面を検討することから明らかになるであろう。前述の一般的な説明および以下の詳細な説明は共に、単なる例に過ぎず、特許請求の範囲に記載されている本発明を制限するものではないことを理解されたい。
[0005]例示的なコンピューティングシステムのブロック図である。 [0006]アプリケーション拡張またはガジェットの使用を制御するアクティブ化モデルを提供する例示的なプロセスを示す流れ図である。 [0007]図3Aは、電子メール通信環境にインライン拡張性機能を提供するように構成された例示的なシステムの構成要素のブロック図である。図3Bは、電子メール通信環境にインライン拡張性機能を提供するように構成された例示的なシステムの構成要素のブロック図である。 [0008]電子メッセージング機能を提供するステップの一部として、1つまたは複数のガジェットを使用してインラインコンテンツを提供するために拡張性モデルを使用する例示的なプロセスを示す流れ図である。 [0009]拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。 拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。 拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。 拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。 拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。 拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。 [0010]本明細書において説明する種々の実施形態の実装のための例示的なコンピューティング環境を示すブロック図である。
[0011]図1は、電子通信に拡張性機能を提供するように部分的に構成された例示的なコンピューティングシステム100を示すブロック図であるが、そのように限定されるものではない。一実施形態のシステム100は、コンピュータの処理構成要素/リソースと、記憶構成要素/リソースと、以下で説明する拡張された電子メールメッセージング機能を含む通信機能性および通信機能を提供する他の構成要素/リソースとを含む。一実施形態の解析エンジンは、選択された通信を解析し、1つまたは複数のアクティブ化トリガまたはガジェットトリガを識別するように構成することができ、このアクティブ化トリガまたはガジェットトリガは、識別されると、1つまたは複数の特定の通信拡張またはガジェットをトリガまたはアクティブ化する。
[0012]一実施形態の解析エンジンは、分離されたサンドボックス環境を使用してソリューションパッケージに関連付けられたスクリプト言語コードをアクティブ化するかどうか判断するために、1つまたは複数のガジェットトリガを含むソリューション・パッケージ・マニフェストを使用することができる。たとえば、解析エンジンは、電子通信項目表示の一部としてアクティブな対話型コンテンツを挿入するように動作する1つまたは複数の関連付けられたガジェットをアクティブ化するステップの一部として、特定の通信項目部分(たとえば、文字列、リンク、メタデータなど)の識別を可能にする1つまたは複数のトリガとしてソリューション・マニフェスト・ファイルに含まれる1つまたは複数の正規表現を使用することができる。
[0013]一実施形態では、この拡張性モデルは、マニフェストソリューション内の特定のトリガを満たす本文部分内の情報を識別するステップの一部として、選択された電子メールメッセージ(たとえば、クリックされたメッセージ)に関連する解析エンジンおよびソリューションマニフェストを使用して、選択された電子メールメッセージの本文部分(たとえば、プレーンテキスト、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)など)を解析する。一実施形態では、システム100は、アクティブ化されると、webベースアプリケーションおよびインストールされたローカルアプリケーションを含む電子メールアプリケーションと共に使用されて、拡張されたインラインアクティブかつ/または対話型コンテンツ機能性をアプリケーションユーザに自動的に提供することができる、いくつかの利用可能な拡張またはガジェットを含む。
[0014]図1に示されるように、例示的なシステム100は、たとえば電子メールアプリケーションまたはメッセージングアプリケーションなどの通信アプリケーション102と、解析エンジン104と、HTML電子メール項目DOMなどの通信項目ドキュメント・オブジェクト・モデル(DOM)106と、解析エンジン104に結合された1つまたは複数のアプリケーション・プログラミング・インタフェース(API)108と、いくつかの利用可能な拡張および/またはガジェット110(1)、110(2)、110(3)、…、110(N)とを含み、ここでNは整数である。解析エンジン104は、ソリューションパッケージを解凍して関連付けられた拡張機能性を通信項目に挿入するかどうか判断するステップの一部として、正規表現トリガ(regular expression trigger)を使用することができる。
[0015]たとえば、解析エンジン104は、着信電子メールメッセージおよび/または受信電子メールメッセージから1つまたは複数のガジェットアクティブ化トリガ(gadget activation trigger)を識別するステップの一部としてHTML電子メール部分をレンダリングするように構成されたHTMLレンダリングエンジンとして構成されることができる。図示のように、一実施形態では、利用可能な各ガジェットは、対応するアクティブ化トリガ(たとえば、基準112(1)、112(2)、112(3)、…、112(N))を有する。利用可能なガジェットの数は、ユーザ制御および/または好み(preference)および/または利用可能性によって左右され得ることが理解されるであろう。一実施形態では、特定の拡張のためのアクティブ化基準またはアクティブ化条件は、マークアップ言語マニフェストファイルにおいて実施されるいくつかの正規表現トリガに基づくことができる。たとえば、正規表現は、単語、項(term)、ならびに/または文字または他の項目の単純なパターンおよび/もしくは複雑なパターンなどの対象となる文字列を識別するとき、トリガとして使用されることができる。
[0016]特定の実施形態では、ガジェットおよび/または関連付けられた機能性は、ローカルにインストールされることもでき、世界的規模のメッセージング通信ネットワークなどのコンピュータネットワークを介してアクセスされることもできる。以下で説明されるように、ユーザは、選択された電子メールメッセージなどの通信項目と共に使用されるべき特定のガジェットを積極的に選択するステップの一部としてガジェット選択インタフェースを使用することができる(たとえば図5Aを参照されたい)。たとえば、ガジェットは、ユーザがいったん特定のガジェットを選択するとアクティブ化され、それにより、1つまたは複数の解析操作に部分的に基づいて選択された通信項目に対する拡張された対話機能性を表面化させる(surface)ことができる。上記で簡単に説明したように、例示的なシステム100は、ローカルにインストールされた通信アプリケーション(たとえば、インストールされた電子メールアプリケーション)として、またはwebベースの通信アプリケーション(たとえば、ブラウザベースの電子メールアプリケーション)として構成されることができる。
[0017]一実施形態では、拡張またはガジェットは、デスクトップ、ラップトップ、タブレット、スマートフォン、ならびに通信および対話型アプリケーション機能性を提供するためのプロセッサおよびメモリリソースの使用を含む他のコンピューティングデバイスと共に使用するための電子メッセージングアプリケーションのフレームワーク内で、アクティブコンテンツの機能および機能性を提供するように構成されることができる。一実施形態では、利用可能な拡張機能またはガジェットは、HTML機能、カスケード・スタイル・シート(CSS)機能、および/またはスクリプト(たとえば、VISUAL BASIC、JAVASCRIPT(登録商標)など)機能のうちの1つまたは複数を含む圧縮および/または暗号化されたファイル(たとえば、zipファイル)として構成されることができる。
[0018]いったんアクティブ化されると、1つまたは複数の有効なガジェットは、他のコンピュータ構成要素(たとえば、サーバなど)と相互作用して、特定の拡張機能またはガジェット機能を取得および/または使用するように構成されることができる。たとえば、ユーザは、ブラウザベースの電子メールアプリケーションを使用して、選択された電子メールメッセージの本文の中にハイパーリンクを含むメッセージをダウンロードおよび選択することができる。この例示的な例の場合、解析エンジンが特定のハイパーリンクを識別すると、このハイパーリンクと関連付けられた有効なガジェットは、コンピュータネットワークに、またはローカルリソースに自動的に接触し、ハイパーリンクをアクティブな対話機能性に置き換えるかまたはハイパーリンクに隣接して拡張機能性を位置づけ、関連付けられたアクティブなコンテンツまたは機能性を、関連付けられた電子メールメッセージの本文にインラインで埋め込むことができる。たとえば、アクティブ化されたガジェットに関連付けられたスクリプトは、レンダリングされる電子メールの本文に自動的に挿入され、その場で実行することができる。
[0019]一実施形態によれば、1つまたは複数のアクティブ化拡張またはガジェットのアクティブ化および/または使用が、分離サンドボックス(isolation sandbox)または分離されたコード実行環境を使用したスクリプト言語または他の実行可能コードの実行を引き起こす。この分離サンドボックスは、特定のアクティブ化トリガにより電子メールメッセージの識別された部分をアクティブコンテンツに置き換えるステップの一部として、コードの実行時にたとえば信頼されていないコンテンツをサードパーティに要求する他の構成要素と対話するように構成されることができる。
[0020]通常は分離サンドボックスと完全に独立している信頼されていないコードは、特定のセキュリティポリシーまたは実行ポリシーを遵守するように変換されるか、あるいは、そうでなければ制御されることができる。たとえば、分離サンドボックスにおける制御には、プレビューすなわち制御されたコンテンツを表示するために使用されるウィンドウまたはペイン(領域、pane)を見るステップの一部などの電子メッセージへのアクティブコンテンツおよび/または対話型コンテンツのインラインでの挿入を制御するステップを含む、HTML、CSS、およびスクリプトコードのうちの1つまたは複数の、メッセージングアプリケーションと共に実行するコードへの変換が含むことができる。上記で説明したように、基準112(1)〜基準112(N)のうちの1つまたは複数は、インライン挿入制御および拡張性機能の一部として別の実装またはツールを許可、拒否、または使用するかどうか制御するために使用されることができる。
[0021]図2は、電子通信アプリケーションを使用するステップの一部としてアプリケーション拡張またはガジェットの使用を制御するアクティブ化モデルを提供するステップの例示的なプロセス200を示す流れ図であるが、そのように限定されるものではない。たとえば、このアクティブ化モデルは、1つまたは複数のアクティブ化トリガの識別に部分的に基づいて選択された電子メールメッセージにおけるアクティブコンテンツの挿入を制御するために電子メール・メッセージング・アプリケーションと共に使用されることができる。一実施形態では、プロセス200は、追加の機能を電子メールアプリケーションに提供するステップの一部として、アクティブな対話型コンテンツのアクティブ化を制御するステップの一部として使用されることができる。たとえば、プロセス200は、選択された電子メールメッセージの本文を有する対話型コンテンツをインラインで埋め込むステップの一部として、分離されたコードをアクティブ化するために使用されることができる。
[0022]プロセス200は、202では、ユーザがたとえば電子メールメッセージのリスト内に表示されるたとえば電子メールメッセージなどの電子通信項目を選択したときに動作する。一実施形態では、1つまたは複数の拡張またはガジェットは、拡張された電子通信機能性を提供するステップの一部として、あらかじめコード化、パッケージ化、かつ/またはその場で使用されることができる。一実施形態では、特定のガジェットまたは拡張は、マニフェスト(たとえば、XMLマニフェスト)、マークアップ/コード定義(たとえば、HTML/CSS/JAVASCRIPT定義)、および/または1つもしくは複数の埋め込みリソースもしくはwebリソース(たとえば、アイコン、ラベルなど)を含むソリューションパッケージとして構成されることができる。
[0023]一例として、プロセス200は、202では、電子メールアプリケーションを起動した後で、および/またはスマートフォン、デスクトップ、もしくはラップトップのブラウザもしくはローカルにインストールされた電子メールアプリケーションを使用して1つもしくは複数のガジェット(例示的な利用可能なガジェットを示す図5Aを参照されたい)を有効にし、受信された項目のリスト内の電子メールメッセージを選択した後で動作することができる。一代替実施形態では、プロセス200は、202では、(たとえば、専用サーバを使用した)エンドユーザによる積極的な(affirmative)メッセージ対話(たとえば、項目のクリック、タップなど)の前に、電子メールメッセージを処理するように動作する。たとえば、プロセス200は、電子メールメッセージがユーザの受信箱に運搬される前に動作することができる。
[0024]204では、プロセス200は、選択された電子通信項目の1つまたは複数の部分を解析するように動作する。一実施形態では、プロセス200は、204において、1つまたは複数の利用可能および/または有効な拡張またはガジェットに関連付けられた1つまたは複数のアクティブ化トリガを識別するステップの一部として、選択された電子メールメッセージ上で解析操作を行うように構成された統合解析エンジンを使用する。たとえば、プロセス200は、204では、解析エンジンを使用して、メッセージ表示またはプレビュー機能の一部として1つまたは複数の定義されたガジェットアクティブ化トリガを識別してアクティブコンテンツをインラインで提供するために使用するとき、選択された電子メールの電子メールメッセージ本文のマークアップを解析することができる。
[0025]一実施形態では、プロセス200は、204では、電子通信を有するアクティブな対話型コンテンツの埋め込みをトリガするステップの一部として、選択された電子通信項目を解析して種々のガジェットアクティブ化トリガを識別するように動作する。たとえば、プロセス200は、204において、見るステップまたは他の操作の一部として分離サンドボックスからコードのアクティブ化をトリガする解析された通信部分を識別するために部分的に使用されるガジェットアクティブ化トリガを定義するソリューションマニフェスト(たとえば、正規表現、日付、時刻、リンク、ソース言語、送信元ドメイン、メッセージタイプなど)を使用することができる。一実施形態では、ソリューションマニフェストは、アクティブ化制御機能を提供するステップの一部として、ソリューションコードならびに/または1つもしくは複数の埋め込みリソースと共にパッケージ化され、圧縮および/または暗号化されることができる。
[0026]206では、トリガ基準が解析操作(複数可)に基づいて満たされる場合、プロセス200は、電子通信項目の文脈にアクティブ化された拡張またはガジェットに関連付けられたソリューションコードをロードするように動作する。たとえば、たとえば定義された正規表現などの特定のガジェットアクティブ化トリガを満たすと、プロセス200は、206において、プレビューアまたは他のメッセージ表示ウィンドウにアクティブコンテンツを表示するステップの一部として使用できる電子メールの文脈に、ソリューションHTMLおよびJAVASCRIPTをロードするように動作することができる。
[0027]208では、プロセス200は、関連付けられたソリューションパッケージによって定義される拡張機能性を含む今アクティブ化された電子通信項目を表示するように動作する。たとえば、プロセス200は、208において、対応する正規表現定義により定義されたガジェットのアクティブ化に基づいて、アクティブ化され拡張されたHTML電子メールメッセージを表示するように動作することができる。基準が満たされない場合、プロセス200は210に進み、電子通信は、いかなる拡張機能がそれに追加されることなく普通に表示される。たとえば、アクティブ化基準が1つまたは複数のXMLマニフェストファイルにより満たされない場合、プロセス200は、210では、修正されていないHTML本文部分を含む電子メールメッセージを表示するように動作することができる。図2の例示的な流れには、特定の数および順序の操作が記載されているが、所望の実装形態により他の数および/または順序が使用できることが理解されるであろう。
[0028]図3Aから図3Bは、電子メール通信環境にインライン拡張性機能を提供するように構成された例示的なシステム300の構成要素のブロック図を示す。図3Aに示されるように、例示的なシステム300は、ローカル電子メールアプリケーションおよび/もしくはwebベースの電子メールアプリケーションを含む電子メールクライアント302、たとえばHTMLレンダリングエンジンなどのレンダリングエンジンまたは解析エンジン304、電子メール項目DOM306、ならびに/または分離サンドボックス308とを含む。この例示的なシステムのための分離サンドボックス308は別個の構成要素として示されているが、他の実施形態では、分離サンドボックス308は、電子メールクライアント機能性の一部として含めることができる。さらに、拡張コードは、特定の実装構成および/または好みにより分離サンドボックス308から動的にロードおよび/または除去されることができる。
[0029]上記で説明したように、拡張子がいったん呼び出されると、関連付けられた拡張コードは分離サンドボックス308から実行されることができる。この例では、拡張コードは、電子メール項目DOM306から分離されているように例示的に示されている。一実施形態によれば、API309は、分離サンドボックス308と電子メール項目DOM306の間に結合され、それらの間の情報の流れを制御するゲートウェイとして機能する。例示的な通信リンク310、312、および314は、それぞれクラウドサービス316、世界的規模のコンピュータ/通信ネットワーク318、およびイントラネット320を含む種々のリソースから情報をプッシュおよび/またはプルする、分離された拡張コードの機能を示す。
[0030]図3Bは、電子メール項目にインライン拡張性機能を提供するステップの一部として使用される例示的なソリューションパッケージ322を示す。図3Bに示されるように、一実施形態のソリューションパッケージ322は、ソースコード324と、1つまたは複数の埋め込みリソース326と、マニフェスト328とを含む。一実施形態では、1つまたは複数のアクティブ化トリガは、マニフェスト328と共に含まれ、選択された電子メール項目のためのインライン拡張性をトリガするために使用されることができる。たとえば、1つまたは複数のアクティブ化トリガは、選択された電子メール項目へのアクティブコンテンツのインラインでの挿入をトリガするために使用される1つまたは複数の正規表現構造として具現化されるマニフェスト328に含まれることができる。一実施形態では、ソリューションパッケージの一部分は、1つまたは複数のリモートおよび/またはローカルの場所に保存されることができる。
[0031]レンダリングエンジン304は、ソリューションパッケージを解凍し、ソリューションパッケージによって定義された関連付けられた拡張機能性を選択された電子メール項目に自動的に埋め込むかどうか判断するステップの一部として、マニフェスト328内で定義される具現化された正規表現を使用することができる。たとえば、正規表現は、選択されたメールメッセージにHTMLベースのコンテンツをインラインで挿入するステップを含む、文脈情報をメールメッセージの閲覧ペインに直接追加するトリガとして使用されることができ、インラインコンテンツは、メッセージ検査ウィンドウまたはブラウザウィンドウの閲覧ペインを使用して表示されることができる。
[0032]一実施形態のシステム300は、圧縮ファイル(たとえば、.zipファイル)に含まれユーザのメールボックスの一部として保存される(たとえば、ユーザのメールボックス内の非表示のメッセージ)HTML/CSSデータおよびJAVASCRIPTコードを使用するメッセージングインタフェースにインライン拡張性機能を提供する。レンダリングエンジン304は、拡張性機能をアクティブ化するのに有効なアクティブ化コンテキストを認識するように動作する。このような一実施形態では、アクティブ化時、JAVASCRIPTコードは、選択された電子メールメッセージの場合は閲覧ペインに、またはメッセージの場合は関連付けられた表示ウィンドウに表示されるHTMLコードをインラインで生成するために、分離サンドボックス308で実行される。
[0033]一例として、レンダリングエンジン304は、選択されたメッセージに関連付けられたメッセージプロパティ(たとえば、件名、送信者、受信者、カテゴリ、返信、全員に返信、転送などのメッセージに関係する動詞など)を操作および使用して、アクティブ化トリガが真であるかどうか判断し、アクティブ化を要求することができる。真である場合、選択されたメッセージと対話するステップの一部として、HTML/CSSコンテンツおよびJAVASCRIPTコードが(たとえば、非表示のメッセージから)取り出され、解凍されることができ、かつ/またはHTMLコンテキストのコンテンツがインラインでレンダリングされる。したがって、アクティブ化モデルは、メッセージコンテンツへの制限されたアクセスのみを可能にし、JAVASCRIPTコードを分離して実行することを含む。
[0034]一実施形態では、ソリューションパッケージ322は、解凍されたJAVASCRIPTコードおよびHTMLコンテンツを含み、次に、JAVASCRIPTコードが分離サンドボックス308にロードされる。JAVASCRIPTコードは、選択されたメッセージのための追加の名前−値ペアを取得して、選択されたメッセージを見るときにメッセージ閲覧ペインまたは他のビューアに表示するために、関連付けられた電子メールアプリケーションにマークアップストリーム(たとえば、HTMLストリーム)を返すように、コード化されることができる。一実施形態では、拡張がいったんアクティブ化されると、JAVASCRIPTコードは、初期化され、指定のObjectContextをJAVASCRIPT Object Notation(JSON)の名前/値ペアとして決定することができ、JAVASCRIPTコードは分離して実行され、表示のためにHTMLを準備する。
[0035]図4は、電子メッセージング機能を提供するステップの一部として、1つまたは複数のガジェットを使用してインラインコンテンツを提供するために拡張性モデルを使用する例示的なプロセス400を示す流れ図である。たとえば、選択されたガジェットは、1つまたは複数のガジェットトリガの識別に部分的に基づいて、選択された電子メールメッセージにアクティブコンテンツを挿入するために、電子メールアプリケーションと共に使用されることができる。一実施形態では、プロセス400は、電子メールメッセージとの対話中のガジェットのアクティブ化を制御するステップの一部として使用されることができる。たとえば、プロセス400は、選択された電子メールメッセージのコンテキスト内の対話型コンテンツを提供するステップの一部として、分離されたガジェットコードをアクティブ化するために使用されることができる。
[0036]プロセス400は、402では、分離されたコード実行環境からガジェットコードを自動的に実行するかどうか判断するステップの一部として、選択された電子メールメッセージをスキャンするように動作する。たとえば、プロセス400は、402において、ローカルおよび/またはリモートの解析機能性を使用して、選択された電子メールメッセージの解析される本文部分に含まれる正規表現トリガに対してスキャンすることができる。一例として、プロセス400は、分離されたコード実行環境からガジェットコードのトリガアクティブ化ために部分的に使用される1つまたは複数の正規表現として、ガジェットアクティブ化トリガを定義するソリューションマニフェストを使用することができる。一実施形態では、ユーザは、スキャン操作により電子メールの本文内のトリガが識別され、関連付けられた選択された電子メールメッセージに拡張された埋め込みコンテンツ機能性を提供するように1つまたは複数の有効なガジェットがアクティブ化されるときにトリガできる、1つまたは複数のガジェットをあらかじめ選択するまたは有効にすることができる。
[0037]一実施形態では、各ガジェットトリガは、マニフェストファイル(たとえば、正規表現トリガを含むXMLマニフェスト)内でコード化され、電子メールメッセージまたはメッセージをスキャンして特定の有効なガジェットトリガを識別するときに使用されることができる。一例として、各ガジェットは、マニフェスト(たとえば、XMLマニフェスト)、マークアップ/コード定義(たとえば、HTML/CSS/JAVASCRIPT定義)、および/または1つまたは複数の埋め込みリソースを含むソリューションパッケージとして、開発および/またはコード化されることができる。ガジェットは、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータなどの種々のコンピューティング/通信デバイスと共に動作するように構成された、専用電子メールアプリケーションを含む、メッセージングアプリケーションと共に使用されることができる。
[0038]404では、スキャン操作によりガジェットトリガが識別される場合、一実施形態のプロセス400は、関連付けられたコンテンツを取得するように動作する。たとえば、プロセス400は、件名、送信者、受信者、および/または他のメッセージプロパティの評価に基づきトリガ基準を使用し、特定のガジェットトリガを識別するとき、ガジェット実行コード(たとえば、HTML/CSSおよびJAVASCRIPT)および/または1つもしくは複数の埋め込みリソースを含む圧縮ファイルを含む、ユーザの受信箱内の非表示の電子メールメッセージから、コンテンツおよび他の任意の関連情報を取得することができる。一実施形態では、非表示のメッセージは、電子メールメッセージビューまたはプレビューの一部としてアクティブコンテンツをインラインで提供するために使用されることができる。そうでない場合、ガジェットトリガが識別されない場合は、プロセス400は406に進み、電子メールアプリケーションは、特定のガジェットによって提供される追加のインライン機能なしで閲覧ペインまたはメッセージインスペクタにメッセージコンテンツを表示するように動作する。
[0039]408では、1つまたは複数のガジェットトリガを識別した後で、プロセス400は、関連付けられたJAVASCRIPTを分離されたコード実行環境にロードするステップを含む、特定のトリガされたガジェットに関連付けられたコンテンツをアクティブ化するように動作する。410では、プロセス400は、分離されたコード実行環境を使用して、解凍されたJAVASCRIPTコードを分離して実行すること、および/または選択された電子メールメッセージから追加項目コンテキスト(たとえば、JSON名前−値ペア)を取得することによって動作する。412では、プロセス400は、JAVASCRIPTコードを実行するステップとして、分離されたコード実行環境からガジェットコードを実行することによって修正される変換されたHTMLを返す。414では、一実施形態のプロセス400は、電子メールメッセージ本文をインラインで挿入されたアクティブ化されたガジェットに関連付けられたコンテンツを閲覧ペインまたはインスペクタウィンドウに表示するように動作する。図4の例示的な流れには、特定の数および順序の操作が記載されているが、所望の実装形態により他の数および/または順序が使用できることが理解されるであろう。
[0040]一例として、マニフェストファイルは、以下のスキーマ定義を使用して記述されることができる。
[0041]<?xml version=" 1.0" encoding="utf-8"?>
[0042]<xs:schema id="WebExtensionManifest" elementFormDefault="qualified" version- ' 1.0"
[0043] targetNamespace="http://schemas.microsoft.com/ webextensions/1.0"
[0044] xmlns="http://schemas.microsoft.com/ webextensions/1.0"
[0045] xmlns:xs="http://www.w3.org/2001/XMLSchema">
[0046] <xs:complexType name="LocaleOverride">
[0047] <xs:attribute name="Locale" type="xs:string" use="required">
[0048] <xs:annotation>
[0049] <xs:documentation>この上書きが目的とするロケールを指定する。 </xs : documentation>
[0050] </xs:annotation>
[0051] </xs:attribute>
[0052] <xs: attribute name- ' Value" type="xs: string" use="required">
[0053] <xs:annotation>
[0054] <xs:documentation>指定のロケールで表される設定の値を指定する。
</xs:documentation>
[0055] </xs:annotation>
[0056] </xs:attribute>
[0057] </xs:complexType>
[0058] <xs:complexType name="LocaleAwareSetting">
[0059] <xs:annotation>
[0060] <xs:documentation>
[0061] ロケールに対応した設定を定義する。これは、たとえば異なるロケールに対して指定可能である。
[0062] </xs:documentation>
[0063] </xs:annotation>
[0064] <xs:sequence>
[0065] <xs:element name- Override" type="LocaleOverride" minOccurs="0" maxOccurs="unbounded">
[0066] <xs:annotation>
[0067] <xs:documentation>複数の追加ロケールにおいて、この設定の値を指定する方法を提供する。
</xs:documentation>
[0068] </xs:annotation>
[0069] </xs:element>
[0070] </xs:sequence>
[0071] <xs:attribute name="Default Value" type="xs:string" use="required">
[0072] <xs:annotation>
[0073] <xs:documentation>この設定に対するデフォルト値を指定する。WebExtensionのDefaultLocale要素で指定されるロケールで表される。</xs:documentation>
[0074] </xs:annotation>
[0075] </xs:attribute>
[0076] </xs:complexType>
[0077] <xs:simpleType name="HostAppName">
[0078] <xs:annotation>
[0079] <xs:documentation>
[0080] 利用可能なホストアプリケーションを定義する。
[0081] </xs:documentation>
[0082] </xs:annotation>
[0083] <xs:restriction base="xs:string">
[0084] <xs: enumeration value- ' AppNamel "/>
[0085] <xs: enumeration value="AppName2"/>
[0086] <xs: enumeration value- ' AppName3"/>
[0087] <xs: enumeration value="AppName4"/>
[0088] </xs:restriction>
[0089] </xs:simpleType>
[0090] <xs:complexType name="HostApp">
[0091] <xs:annotation>
[0092] <xs:documentation>
[0093] Web Extensionが動作できるホストアプリケーションを定義する。
[0094] </xs:documentation>
[0095] </xs:annotation>
[0096] <xs:attribute name- 'Name" type="HostAppName" use="required">
[0097] <xs:annotation>
[0098] <xs:documentation>ホストアプリケーションの名前を指定する。</xs :documentation>
[0099] </xs:annotation>
[00100] </xs:attribute>
[00101] <xs:attribute name="MinVersion" type="xs:decimal" use="optional">
[00102] <xs:annotation>
[00103] <xs:documentation>Web Extensionが動作するのに必要なホストアプリケーションの最小バージョンを指定する。</xs:documentation>
[00104] </xs:annotation>
[00105] </xs:attribute>
[00106] <xs:attribute name="MaxVersion" type="xs:decimal" use="optional">
[00107] <xs:annotation>
[00108] <xs:documentation>Web Extensionが動作するのに必要なホストアプリケーションの最大バージョンを指定する。</xs:documentation>
[00109] </xs:annotation>
[00110] </xs:attribute>
[00111] </xs:complexType>
[00112] <xs:complexType name="Rule" abstract="true"/>
[00113] <xs:complexType name="ItemClassIs">
[00114] <xs:annotation>
[00115] <xs:documentation>
[00116] 項目が指定のクラスである場合に真であると評価する規則を定義する。
[00117] </xs : documentation>
[00118] </xs : annotation>
[00119] <xs:complexContent>
[00120] <xs:extension base="Rule">
[00121] <xs:attribute name="ItemClass" type="xs:string" use="required">
[00122] <xs:annotation>
[00123] <xs:documentation>合致するべき項目クラスを指定する。</xs : documentation>
[00124] </xs:annotation>
[00125] </xs:attribute>
[00126] <xs:attribute name="IncludeSubClasses" type="xs:boolean" use="optional">
[00127] <xs:annotation>
[00128] <xs:documentation>項目が指定のクラスのサブクラスである場合に規則が真と評価するべきかどうか指定する。デフォルトは偽である。 </xs:documentation>
[00129] </xs:annotation>
[00130] </xs:attribute>
[00131] </xs:extension>
[00132] </xs:complexContent>
[00133] </xs:complexType>
[00134] <xs:simpleType name="KnownEntityType">
[00135] <xs:annotation>
[00136] <xs:documentation>
[00137] 項目の件名および本文の中で認識できるエンティティ型を定義する。
[00138] </xs:documentation>
[00139] </xs:annotation>
[00140] <xs:restriction base="xs:string">
[00141] <xs: enumeration value="MeetingSuggestion"/>
[00142] <xs: enumeration value="TaskSuggestion"/>
[00143] <xs: enumeration value="Address"/>
[00144] <!--必要に応じてリストを完成する-->
[00145] </xs:restriction>
[00146] </xs:simpleType>
[00147] <xs:simpleType name="KnownEntityLocation">
[00148] <xs:annotation>
[00149] <xs:documentation>
[00150] 既知のエンティティを探す場所を定義する。
[00151] </xs:documentation>
[00152] </xs:annotation>
[00153] <xs:restriction base="xs:string">
[00154] <xs: enumeration value="FullItemBody"/>
[00155] <xs: enumeration value="LatestResponseBody"/>
[00156] <xs: enumeration value- ' Subject"/>
[00157] </xs:restriction>
[00158] </xs:simpleType>
[00159] <xs:complexType name="ItemHasKnownEntity">
[00160] <xs:annotation>
[00161] <xs:documentation>
[00162] 項目が既知のエンティティを含む場合に真であると評価する規則を定義する。
[00163] </xs:documentation>
[00164] </xs:annotation>
[00165] <xs:complexContent>
[00166] <xs:extension base="Rule">
[00167] <xs:attribute name="EntityType" type="KnownEntityType" use="required">
[00168] <xs:annotation>
[00169] <xs:documentation>規則が真と評価されるために見つけられなければならないエンティティの型を指定する。</xs:documentation>
[00170] </xs:annotation>
[00171] </xs:attribute>
[00172] <xs:attribute name="Location" type="KnownEntityLocation" use="required">
[00173] <xs:annotation>
[00174] <xs:documentation>規則が真と評価されるためにエンティティが見つけられなければならない場所を指定する。</xs:documentation>
[00175] </xs:annotation>
[00176] </xs:attribute>
[00177] </xs:extension>
[00178] </xs:complexContent>
[00179] </xs:complexType>
[00180] <xs:simpleType name="PropertyName">
[00181] <xs:annotation>
[00182] <xs:documentation>
[00183] PropetyContains規則と共に使用できるプロパティ名を定義する。
[00184] </xs:documentation>
[00185] </xs:annotation>
[00186] <xs:restriction base="xs:string">
[00187] <xs: enumeration value- ' Subject"/>
[00188] <xs: enumeration value="Body"/>
[00189] <xs: enumeration value="SenderSMTPAddress"/>
[00190] <!--必要に応じてリストを完成する-->
[00191] </xs:restriction>
[00192] </xs:simpleType>
[00193] <xs:complexType name="ItemHasRegularExpressionMatch">
[00194] <xs:annotation>
[00195] <xs:documentation>
[00196] 指定の正規表現との合致が項目内で見られ得る場合に真であると評価する規則を定義する。
[00197] </xs:documentation>
[00198] </xs:annotation>
[00199] <xs:complexContent>
[00200] <xs:extension base="Rule">
[00201] <xs:attribute name="RegExName" type="xs:string" use="required">
[00202] <xs:annotation>
[00203] <xs:documentation>正規表現が後でコードにより参照可能であるように、正規表現の名前を指定する。</xs:documentation>
[00204] </xs:annotation>
[00205] </xs:attribute>
[00206] <xs: attribute name="RegExValue" type="xs: string" use="required">
[00207] <xs:annotation>
[00208] <xs:documentation>合致を見つけるべき実際の正規表現を指定する。</xs:documentation>
[00209] </xs:annotation>
[00210] </xs:attribute>
[00211] <xs:attribute name="RegExFlags" type="xs: string" use="optional">
[00212] <xs:annotation>
[00213] <xs:documentation>正規表現に対する合致を探すときに適用するグローバルフラグを指定する。</xs:documentation>
[00214] </xs:annotation>
[00215] </xs:attribute>
[00216] <xs:attribute name="PropertyName" type="PropertyName" use="required">
[00217] <xs:annotation>
[00218] <xs:documentation>合致を探すプロパティの名前を指定する。</xs:documentation>
[00219] </xs:annotation>
[00220] </xs:attribute>
[00221] </xs:extension>
[00222] </xs:complexContent>
[00223] </xs:complexType>
[00224] <xs:simpleType name="LogicalOperator">
[00225] <xs:annotation>
[00226] <xs:documentation>
[00227] 論理演算子を定義する。
[00228] </xs:documentation>
[00229] </xs:annotation>
[00230] <xs:restriction base="xs:string">
[00231] <xs: enumeration value- ' And"/>
[00232] <xs: enumeration value="Or"/>
[00233] </xs:restriction>
[00234] </xs:simpleType>
[00235] <xs:complexType name="RuleCollection">
[00236] <xs:annotation>
[00237] <xs:documentation>
[00238] 規則の集合と、規則の評価時に適用されるべき論理演算子を定義する。
[00239] </xs:documentation>
[00240] </xs:annotation>
[00241] <xs:complexContent>
[00242] <xs:extension base="Rule">
[00243] <xs:sequence>
[00244] <xs:element name- 'Rule" type="Rule" minOccurs=" 1 " maxOccurs="unbounded">
[00245] <xs:annotation>
[00246] <xs:documentation>この集合が含む規則のリストを指定する。</xs : documentation>
[00247] </xs:annotation>
[00248] </xs:element>
[00249] </xs:sequence>
[00250] <xs:attribute name="Mode" type="LogicalOperator" use="optional">
[00251] <xs:annotation>
[00252] <xs:documentation>この規則の集合の評価時に適用する論理演算子を指定する。</xs:documentation>
[00253] </xs:annotation>
[00254] </xs:attribute>
[00255] </xs:extension>
[00256] </xs:complexContent>
[00257] </xs:complexType>
[00258] <xs:simpleType name="FormFactor">
[00259] <xs:annotation>
[00260] <xs:documentation>
[00261] サポートされるフォームファクタを定義する。
[00262] </xs:documentation>
[00263] </xs:annotation>
[00264] <xs:restriction base="xs:string">
[00265] <xs: enumeration value="Mobile"/>
[00266] <xs: enumeration value="Tablet"/>
[00267] <xs: enumeration value="Desktop"/>
[00268] </xs:restriction>
[00269] </xs:simpleType>
[00270] <xs:complexType name="SourceLocation">
[00271] <xs:annotation>
[00272] <xs:documentation>
[00273] 所与の標的フォームファクタに対するソースファイルの場所を定義する。
[00274] </xs:documentation>
[00275] </xs:annotation>
[00276] <xs:complexContent>
[00277] <xs:extension base="LocaleAwareSetting">
[00278] <xs:attribute name="FormFactor" type="FormFactor" use="optional">
[00279] <xs:annotation>
[00280] <xs:documentation>SourceLocationが適用されるフォームファクタを指定する。</xs:documentation>
[00281] </xs:annotation>
[00282] </xs:attribute>
[00283] <xs:attribute name="DefaultWidth" type="xs:positiveInteger" use="optional">
[00284] <xs:annotation>
[00285] <xs:documentation>このSourceLocationが使用されるときにOffice Web Extensionに割り当てられるべき幅をピクセル単位で指定する。</xs:documentation>
[00286] </xs:annotation>
[00287] </xs:attribute>
[00288] <xs:attribute name="DefaultH eight" type="xs:positiveInteger" use="optional">
[00289] <xs:annotation>
[00290] <xs:documentation>このSourceLocationが使用されるときにOffice Web Extensionに割り当てられるべき高さをピクセル単位で指定する。</xs:documentation>
[00291] </xs:annotation>
[00292] </xs:attribute>
[00293] </xs:extension>
[00294] </xs:complexContent>
[00295] </xs:complexType>
[00296] <xs:complexType name="ActivationContext">
[00297] <xs:annotation>
[00298] <xs:documentation>
[00299] Web Extensionがどこに示されるべきか、およびWeb Extensionが示されるべき条件を定義する。
[00300] </xs:documentation>
[00301] </xs:annotation>
[00302] <xs:sequence>
[00303] <xs:element name="HostApp" type="HostApp" minOccurs=" 1 " maxOccurs="unbounded">
[00304] <xs:annotation>
[00305] <xs:documentation>ActivationContextが適用されるホストアプリケーションのリストを指定する。</xs:documentation>
[00306] </xs:annotation>
[00307] </xs:element>
[00308] <xs:element name="SourceLocation" type="SourceLocation" minOccurs- ' 1 " maxOccurs= "unbounded" >
[00309] <xs:annotation>
[00310] <xs:documentation>ActivationContextが使用されるときに使用するソースコードの場所のリストを指定する。</xs:documentation>
[00311] </xs:annotation>
[00312] </xs:element>
[00313] <xs:element name="Rule" type="Rule" minOccurs="0" maxOccurs="unbounded">
[00314] <xs:annotation>
[00315] <xs:documentation>ActivationContextが使用されるときに評価されるべき規則を指定する。</xs:documentation>
[00316] </xs:annotation>
[00317] </xs:element>
[00318] </xs:sequence>
[00319] </xs:complexType>
[00320] <xs:complexType name="WebExtension">
[00321] <xs:annotation>
[00322] <xs:documentation>
[00323] Web Extensionを定義する。
[00324] </xs:documentation>
[00325] </xs:annotation>
[00326] <xs:sequence>
[00327] <xs:element name="ID" type="xs:string" minOccurs=" 1 " maxOccurs- ' 1 ">
[00328] <xs:annotation>
[00329] <xs:documentation>Web Extensionの一意のIDを指定する。</xs:documentation>
[00330] </xs:annotation>
[00331] </xs:element>
[00332] <xs:element name="Version" type="xs:string" minOccurs=" 1 " maxOccurs=" 1 ">
[00333] <xs:annotation>
[00334] <xs:documentation>Web Extensionのバージョンを指定する</xs:documentation>
[00335] </xs:annotation>
[00336] </xs:element>
[00337] <xs:element name="ProviderName" type="xs: string" minOccurs=" 1 " maxOccurs=" 1 ">
[00338] <xs:annotation>
[00339] <xs:documentation>Web Extensionを開発した個人または企業の名前を指定する。</xs:documentation>
[00340] </xs:annotation>
[00341] </xs:element>
[00342] <xs:element name="DefaultLocale" type="xs:string" minOccurs- ' 1 " maxOccurs=" 1 ">
[00343] <xs:annotation>
[00344] <xs:documentation>このマニフェストで文字列がデフォルトで表現されるロケールを指定する。</xs:documentation>
[00345] </xs:annotation>
[00346] </xs:element>
[00347] <xs:element name="FullName" type="LocaleAwareSetting" minOccurs=" 1 " maxOccurs=" 1 ">
[00348] <xs:annotation>
[00349] <xs:documentation>Web Extensionの完全な名前を指定する。完全な名前は、最大255文字とすることができる。</xs:documentation>
[00350] </xs:annotation>
[00351] </xs:element>
[00352] <xs:element name- 'DisplayName" type="LocaleAwareSetting" minOccurs=" 1 " maxOccurs="l">
[00353] <xs:annotation>
[00354] <xs:documentation>ホストアプリケーションに表示される。Web Extensionの表示名を指定する。表示名は、最大32文字とすることができる。</xs : documentation>
[00355] </xs:annotation>
[00356] </xs:element>
[00357] <xs:element name- 'Description" type="LocaleAwareSetting" minOccurs=" 1 " maxOccurs="l">
[00358] <xs:annotation>
[00359] <xs:documentation>Web Extensionの説明を指定する説明は、最大2000文字とすることができる。 </xs:documentation>
[00360] </xs:annotation>
[00361] </xs:element>
[00362] <xs:element name="ProductSupportURL" type="LocaleAwareSetting" minOccurs="0" maxOccurs="l">
[00363] <xs:annotation>
[00364] <xs:documentation>Web Extensionの製品サポートページのURLを指定する。</xs:documentation>
[00365] </xs:annotation>
[00366] </xs:element>
[00367] <xs:element name="PrivacyPolicyURL" type="LocaleAwareSetting" minOccurs="0" maxOccurs="l">
[00368] <xs:annotation>
[00369] <xs:documentation>Web ExtensionのプライバシーポリシーファイルのURLを指定する。</xs:documentation>
[00370] </xs:annotation>
[00371] </xs:element>
[00372] <xs:element name="TermsOfUseURL" type="LocaleAwareSetting" minOccurs="0" maxOccurs="l">
[00373] <xs:annotation>
[00374] <xs:documentation>Web Extensionの利用規約ページのURLを指定する。</xs:documentation>
[00375] </xs : annotation>
[00376] </xs:element>
[00377] <xs:element name="Thumbnail" type="xs: string" minOccurs="0" maxOccurs: ="!">
[00378] </xs:element>
[00379] <xs:element name="AllowSnapshot" type="xs:boolean" minOccurs="0" maxOccurs: ="!">
[00380] </xs:element>
[00381] <xs:element name="Services" type- ' Services" minOccurs="0" maxOccurs: ="!">
[00382] </xs:element>
[00383] <xs : element name=" ActivationContext" type=" ActivationContext" minOccurs= =" 1" maxOccurs= "unbounded" >
[00384] <xs:annotation>
[00385] <xs:documentation>Web Extensionがどこに示されるか、およびWeb Extensionが示される条件を指定する。</xs:documentation>
[00386] </xs : annotation>
[00387] </xs:element>
[00388] </xs:sequence>
[00389] </xs:complexType>
[00390] <xs:element name="WebExtension" type="WebExtension"/>
[00391] </xs:schema>
[00392] 別の例として、ガジェットまたはインライン拡張のマニフェストファイルは、以下のスキーマ定義を使用して記述されることができる。:
[00393]<?xml version- ' 1.0" encoding="utf-8"?>
[00394] <xs:schema targetNamespace=https://schemas.microsoft.com/.../ manifest.xsd
[00395] elementFormDefault- ' qualified"
[00396] xmlns="http://tempuri.org/XMLSchema.xsd"
[00397] xmlns :mstns="http ://tempuri.org/XMLSchema.xsd"
[00398] xmlns :xs="http ://www.w3.org/2001/XMLSchema"
[00399] ><xs:complexType name="Lab">
[00400] <xs:sequence>
[00401] <xs:element name- Title" type="xs:string" ><!--これは、プレーンテキストで記述した、ソリューションのタイトルである。このタイトルは、ユーザーに表示される。--></xs:element>
[00402] <xs:element name- 'Location" type="xs:anyURI"><!--これは、ソースコードの場所に対するURL/URIである--></xs:element>
[00403] <xs:element name="GUID" type="xs:string"><!--これは、ソリューションを識別する一意のGUIDである--></xs:element>
[00404] <xs:element name- 'Version" type="xs:string"><!--Tこれは、バージョン番号である。MM.mmの書式で記述すること--></xs:element>
[00405] <xs:element name=" Author" type="xs:string"><!--作成者名--></xs:element>
[00406] <xs:element name="Description" type="xs: string" ><!--プレーンテキストによる説明。この説明は、ユーザーに表示される。--></xs:element>
[00407] <xs:element name- 'icon" type="xs:anyURI"><!-これは、ユーザーに表示される、使用されるべきアイコンに対するURL/URIである。これは、.jpg形式の画像を指すべきである--></xs:element>
[00408] <xs:element name- 'criteria" type="xs:string" maxoccurs="unbounded"><!--この項目は、ソリューションをロードするための基準を含む。これは、正規表現の形であるべきである。複数のトリガ基準を記述することができる。--></xs:element>
[00409] <xs:element name="Prereq" type="xs:anyURI" maxoccurs="unbounded"><!--これは、ソリューションの一部としてロードされるべき不可欠なライブラリに対するURIである--></xs:element>
[00410] </xs:sequence>
[00411] </xs:complexType>
[00412]</xs:schema>
[00413] 別の例として、化粧箱(fancy box)ガジェット(図5Fを参照されたい)のマニフェストファイルは、以下のように構成されることができる。:
[00414]<?xml version=" 1.0"?>
[00415]<Lab xmlns="https://schemas.microsoft.com/office/.../*_manifest">
[00416]<Title>Gallery View</Title>
[00417]<Prereq>http ://code .j query .com j query-1.4.2.min.js</Prereq>
[00418]<Prereq>http://example.org/*jquery.easing-1.3.pack.js</Prereq>
[00419]<Prereq>http ://example .org/*-jquery. fancybox-1.3.1.js</Prereq>
[00420]<Prereq>http://example.org/*http://example.org/*-jquery.mousewheel-3.0.2.pack.js</Prereq>
[00421]<Location http://example.org/*jancybox.js</Location>
[00422]<Guid>{466DF5A9-BDD2-48F8-A345-A10C5DAC8DE0}</Guid>
[00423]<Version>1.0.0.3</Version>
[00424]<Author>John Doe </Author>
[00425]<Description>FancyBox Schtuff</Description>
[00426]<Icon>http://www.example.com/ cdrom/msaggallery.jpg</Icon>
[00427]<NoCache>false</NoCache>
[00428]</Lab>
[00429] 化粧箱の拡張機能またはガジェットの場合、実行可能なスクリプト言語コードは、以下の例によって示されるように構成されることができる。:
[00430]$(document).ready(function() {
[00431]$("head").append("<link rel=\"stylesheet\" type=\"text/css\" href=\" http^/example.org/^VfancyboxWjquery.fancybox-l .3.1.css\" />");
[00432]$("a[href*=.jpg]").each(function(i){
[00433]$(this).attr("class","picture");
[00434]});
[00435]$("a[href*=.png]").each(function(i){
[00436]$(this).attr("class","picture");
[00437]});
[00438]$("a[href*=.jpeg]").each(function(i) {
[00439]$(this).attr("class","picture");
[00440]});
[00441]$("a[href*=.gif]").each(function(i) {
[00442]$(this).attr("class","picture");
[00443]});
[00444]$("img").wrap("<a href="+$("img").attr("src")+" id=\"picture_inline\" />");
[00445]$("img").attr("style","border-style: none");
[00446]$("a").fancybox({'width': *80%*, 'height': '80%*, 'autoScale*: true,'transitionIn':'elastic','transitionOut': 'elastic','type':'iframe'});
[00447]$(" .picture").each(function(i) {
[00448]$("body").append("<div id=\"gallery\" style=\"position: fixed; bottom:0;width: 100%;height:40%; border-top: lpx solid #BBB;\" />");
[00449]$("#gallery").append("<a href="+$(this).attr("hre ')+" class=\"picture\" rel=\"gallery\"><img src="+$(this).attr("hre ')+" class=\"thumb\" style=\"border: lpx solid #BBB;padding: 2px;margin: lOpx 30px lOpx 0;vertical-align: top;\"></a>");
[00450]});
[00451]$("body").append("<div id=\"gallery\" style=\"position: fixed; bottom:0;width: 100%;height:40%; border-top: lpx solid #BBB;\" />");
[00452]// $("#gallery").append("<a href="+path+" class=\"picture\" rel=\"gallery\"><img src="+path+" class=\"thumb\" style=\"border: lpx solid
#BBB;padding: 2px;margin: lOpx 30px lOpx 0;vertical-align: top;\"></a>");
[00453]// };
[00454]// }
[00455]$(" .thumb").each(function(i) {
[00456]$(this).css("width",$("#gallery").width()/$(".thumb").size()-50);
[00457]$(this).css("height",$("#gallery").height());
[00458]});
[00459]$(" .picture"). fancybox({ 'titlePosition' : Over','transitionIn' : 'elastic',
[00460] 'transitionOut' : 'elastic'});
[00461]$("a[rel=gallery]").fancybox({
[00462] 'transitionln' : 'elastic',
[00463] 'transitionOut' : 'elastic',
[00464] 'titlePosition' : Over',
[00465] 'titleFormat' : function(title, currentArray, currentlndex, currentOpts) {
[00466] return '<span id="fancybox-title-over">Image ' + (currentlndex + 1) + ' / ' + currentArray.length + (title. length ? ' &nbsp; ' + title : ") + '</span>';
[00467] }
[00468]
[00469]});
[00470]$("#picture_inline").fancybox({ 'titlePosition' : Over','transitionIn' : 'elastic',
[00471] 'transitionOut' : 'elastic'});
[00472]});
[00473] 別の例として、出荷追跡ガジェットのマニフェストファイルは、以下のように構成されることができる。:
[00474]<Lab>
[00475]<Title>Shipment Tracking v2</Title>
[00476]<Location http://example.org/*-Scripts xs tracking.js</Location>
[00477]<Guid>{D833FF8F-8C95-461B-A3B2-4FC3DC25E7D9}</Guid>
[00478]<Version>2.0.0.5</Version>
[00479]<Author>Jane Doe</Author>
[00480]<NoCache>false</NoCache>
[00481]<Description>PackageTrackrによって提供される詳細な荷物追跡情報。</Description>
[00482]<ICON> http://example.org \images\Shipment-Tracking.gif</ICON>
[00483]<Lab>
[00484] 出荷追跡の拡張機能またはガジェットの場合、実行可能なスクリプト言語コードは、以下の例によって示されるように構成されることができる。:
[00485] // Shipment tracking gadget
[00486] // Carrier Name 1 : ^b(1Z ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i
[00487] // Carrier Name 2: ^b((96\d\d\d\d\d ?\d\d\d\d|96\d\d) ?\d\d\d\d ?d\d\d\d( ?\d\d\d)?)\b/i
[00488] // Carrier Name N : ^b(91\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d|91\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d)\b/i
[00489]function highlightTrackingLinks()
[00490]{
[00491] this. carriers = new Array();
[00492] this.carriers[0] = new getCarrier("Carrier Name 1");
[00493] this.carriers[0].expression = ^b(lZ ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3 } ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i
[00494] this.carriers[l] = new getCarrier("Carrier Name N");
[00495] this.carriers[l].expression = ^b(\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d)\b/i
[00496] this.carriers[2] = new getCarrier("Carrier Name 2");
[00497] this.carriers[2].expression = ^b([0-9]{15})\b/i
[00498] this.foundTrackingNumbers = new Array();
[00499] this.go = function()
[00500] {
[00501] var trackingNumberlndex = 0;
[00502] // Look for carrier matches
[00503] for(var c=0; c < this. carriers. length; C++)
[00504] {
[00505] var carrier = this.carriers[c];
[00506] var matches = document.body.innerText.match(carrier.expression);
[00507] if (matches)
[00508] {
[00509] for(var i=0; i < matches. length; i++)
[00510] {
[00511] var foundNumber = matches[i];
[00512] if (carrier.unloadOverride)
[00513] enableOnBeforeUnloadPrompt = true;
[00514] if (!this.duplicateTrackingNumber(carrier.carrierName, foundNumber))
[00515] this.foundTrackingNumbers[trackingNumberIndex++] = new getTrackingNumber(carrier.carrierName, foundNumber);
[00516] }
[00517] }
[00518] }
[00519] if (this. foundTrackingNumbers. length > 0)
[00520] this.insertTrackingHtml();
[00521] }
[00522] this.duplicateTrackingNumber = function(carrier, foundNumber)
[00523] {
[00524] for(var i=0; i< this. foundTrackingNumbers. length; i++)
[00525] {
[00526] if (carrier == this. foundTrackingNumbers[i]. carrier && foundNumber == this. foundTrackingNumbers[i].number)
[00527] return true;
[00528] }
[00529] return false;
[00530] }
[00531] this.insertTrackingHtml = function () {
[00532] var body = document.getElementsByTagName("body")[0];
[00533] for (var i = 0; i < this. foundTrackingNumbers. length; i++) {
[00534] var trackingNumber = this.foundTrackingNumbers[i];
[00535] var trackingFrame = document.createElement("iframe");
[00536] with (trackingFrame) {
[00537] id = "trackingElement" + i;
[00538] width = "300";
[00539] height = "400";
[00540] scrolling = "yes";
[00541] border = "4"
[00542] src = trackingNumber.linkUrl();
[00543] style.cssText = "float: right";
[00544] name = "trackingElement" + i;
[00545] }
[00546] body.insertBefore(trackingFrame, body.childNodes(0));
[00547] }
[00548] }
[00549]}
[00550]function getTrackingNumber(carrier, number)
[00551]{
[00552] this. carrier = carrier;
[00553] this.number = number;
[00554] this.linkUrl = function()
[00555] {
[00556] //http://www.example.com/m/track?n=lZ5R89391302318793&c= Carrier Name 1
[00557] if (carrier == " Carrier Name 1 ")
[00558] //return "http://example.orgprocessInputRequest?sort_by=status&error_carried=true&tracknums_di splayed=l&TypeOflnquiryNumber=T&loc=en-us&InquiryNumberl=" + this.number + "&AgreeToTermsAndConditions=yes";
[00559] return "http://www. example. com/m/track?n=" + this.number +"&c= Carrier Name 1#content";
[00560] else if (carrier == " Carrier Name N")
[00561] //return "http:// Carrier Name N.com//InterLabelInquiry.do?origTrackNum=" + this.number;
[00562] return "http://www. example. com/m/track?n=" + this.number + "&c= Carrier Name N#content";
[00563] else
[00564] return "http://wwwexample.com/m/track?n: + this.number + "#content";
[00565] }
[00566]}
[00567]function getCarrier(carrier)
[00568]{
[00569] this.carrierName = carrier;
[00570] this.unloadOverride = false;
[00571]}
[00572]var enableOnBeforeUnloadPrompt = false;
[00573]function trackingEngineUnloadHandler()
[00574]{
[00575] if (enableOnBeforeUnloadPrompt)
[00576] return "Select cancel to continue reading this e-mail message";
[00577]}
[00578]function trackingEngineLoadHandler()
[00579]{
[00580] var trackingEngine = new highlightTrackingLinks();
[00581] trackingEngine.go();
[00582]}
[00583]window.attachEvent("onload", trackingEngineLoadHandler);
[00584]window.attachEvent("onbeforeunload", trackingEngineUnloadHandler);
[00585]他の例も利用可能かつ構成可能である。
[00586]図5Aから5Fは、電子メールアプリケーションに関連付けられた拡張性機能を提供するために部分的に使用される例示的な電子メール・アプリケーション・インタフェースの態様を示す図である。たとえば、インタフェース500は、選択された電子メールを表示するwebベースの電子メールアプリケーションまたはローカルにインストールされた電子メールアプリケーションの一部として使用されることができる。図5Aに示されるように、例示的なインタフェース500は、いくつかの利用可能なガジェット502〜514と、ユーザが1つまたは複数の特定のガジェットを有効にするために選択できる選択ボックス516とを含む。ユーザが各ガジェットの上にポインタを置く(hover)とき、選択ボックスは、対応するガジェットを前面に出す(surface)ように構成されることができる。有効なガジェットは、上記で詳細に説明したように、特定のアクティブ化トリガにより選択された電子メール項目を自動的に前面に出すことができる。
[00587]図5Bは例示的な電子メールアプリケーションインタフェース500を示し、電子メールアプリケーションインタフェース500は、リンク517と、リンク517の識別によってトリガされる関連付けられたガジェットのアクティブ化により電子メールメッセージに自動的に挿入された後でリンク517に関連付けられる自動的に埋め込まれたコンテンツ518とを含む。
[00588]図5Cは例示的な電子メールアプリケーションインタフェース500を示し、電子メールアプリケーションインタフェース500は、リンク520と、リンク520の識別によってトリガされる関連付けられたガジェットのアクティブ化により電子メールメッセージに自動的に挿入された後でリンク520に関連付けられる自動的に埋め込まれたビデオ522とを含む。
[00589]図5Dは例示的な電子メールアプリケーションインタフェース500を示し、電子メールアプリケーションインタフェース500は、リンク526と、リンク526の識別によってトリガされる関連付けられたガジェットのアクティブ化により電子メールメッセージに自動的に挿入された後でリンク526に関連付けられる自動的に埋め込まれたビデオ528とを含む。例示的な電子メールアプリケーションインタフェース500は、別のリンクによってトリガされた別の埋め込まれたビデオ524も表示している。
[00590]図5Eは例示的な電子メールアプリケーションインタフェース500を示し、電子メールアプリケーションインタフェース500は、1つもしくは複数の追跡番号の識別または他の荷物輸送基準によってトリガされる関連付けられたガジェットのアクティブ化により電子メールメッセージに自動的に挿入された、自動的に埋め込まれるアクティブな荷物追跡コンテンツ530とを含む。
[00591]図5Fは例示的な電子メールアプリケーションインタフェース500を示し、電子メールアプリケーションインタフェース500は、リンク532および自動的に埋め込まれる関連付けられた写真534と、リンク536および自動的に埋め込まれる関連付けられた写真538と、リンク540および自動的に埋め込まれる関連付けられた写真542とを含み、これらの写真534、538、および542はそれぞれ、リンク532、536、および540の識別によってトリガされる関連付けられたガジェットのアクティブ化により電子メールメッセージに自動的に挿入されている。図5Fに示されるように、トリガされたガジェットはまた、機能の豊富なフォトビューア544を使用しての挿入された写真との対話を可能にする。
[00592]拡張性機能はプロセッサ駆動型(processor−driven)コンピュータ環境の一部として実施できることが理解されるであろう。また、本明細書では特定の実施形態が説明されているが、他の実施形態も利用可能であり、説明される実施形態は、特許請求の範囲を限定するために使用されるべきではない。適切なプログラミング手段としては、たとえば処理ユニットとコンピュータメモリに結合された算術論理演算回路とからなるシステムを含むコンピュータシステムまたはデバイスに方法のステップを実行するように指示するための任意の手段があり、このシステムはコンピュータメモリに記憶する機能を有し、このコンピュータメモリは、データおよびプログラム命令を記憶するように構成された電子回路を含む。例示的なコンピュータプログラム製品は、任意の適切なデータ処理システムと共に使用することが可能である。特定の数およびタイプの構成要素が上記で説明されているが、種々の実施形態によれば、他の数および/またはタイプおよび/または構成も含まれ得ることが理解されるであろう。したがって、構成要素の機能性は、所望の実装形態により、さらに分割し、および/または他の構成要素の機能性と組み合わせることができる。
[00593]本明細書で使用されるコンピュータ可読媒体という用語は、コンピュータの記憶媒体を含むことができる。コンピュータの記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールなどの情報を記憶するための任意の方法または技術で実施される、揮発性の媒体、不揮発性の媒体、リムーバブルメディア、およびノンリムーバブルメディアを含むことができる。システムメモリ、リムーバブルストレージ、およびノンリムーバブルストレージはいずれも、コンピュータの記憶媒体の例(すなわち、メモリストレージ)である。コンピュータの記憶媒体には、RAM、ROM、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または情報を記憶するために使用でき、デバイスコンピューティングによってアクセス可能な他の任意の媒体を含んでよいが、これらに限定されない。あらゆるこのようなコンピュータ記憶媒体は、デバイスまたはシステムの一部とすることができる。限定としてではなく、例を挙げると、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体とを含めることができる。
[00594]本明細書において説明される実施形態および例は限定を意図するものではなく、他の実施形態も利用可能である。さらに、上記で説明された構成要素は、ネットワーク接続環境、分散環境、および/またはコンピュータが実施される他の環境の一部として実施されることができる。構成要素は、有線ネットワーク、無線ネットワーク、および/または通信ネットワークの組み合わせを介して通信することができる。ネットワーク構成要素および/または構成要素間の結合は、ネットワークおよび対応するネットワーク構成要素のタイプ、数、および/または組み合わせのいずれかを含むことができ、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、固有ネットワーク、バックエンドネットワークなどを含むが、これらに限定されない。
[00595]クライアント・コンピューティング・デバイス/システムおよびサーバは、任意のタイプおよび/または組み合わせのプロセッサベースのデバイスまたはシステムとすることができる。さらに、サーバの機能性は、多数のコンポーネントを含み、他のサーバを含むことができる。単数形で記載されるコンピューティング環境の構成要素は、このような構成要素の複数のインスタンスを含むことができる。特定の実施形態はソフトウェア実装形態を含むが、これらの実施形態はそのように限定されず、ハードウェア、またはハードウェア/ソフトウェア混合ソリューションを包含する。
[00596]構成要素、モジュール、システム、デバイス、クラウド、ネットワーク、および他の専門用語などの、説明において使用される用語は、一般に、ハードウェア、ソフトウェア、ファームウェア、および/または他の項目を含む、コンピュータ関連の操作環境を説明する。構成要素は、プロセッサ、実行可能ファイル、および/またはスクリプトコードを使用するプロセスを使用することができる。例示的な構成要素としては、アプリケーション、このアプリケーション上で動作するサーバ、および/または通信項目を受信するためにサーバに結合された電子通信クライアントがある。コンピュータリソースには、デジタル・シグナル・プロセッサ、マイクロプロセッサ、マルチコアプロセッサなどの、プロセッサおよびメモリリソースや、磁気デバイス、光デバイス、および/または他の記憶装置、スマートメモリ、フラッシュメモリなどのメモリ構成要素を含むことができる。通信構成要素は、たとえばインターネットなどの1つまたは複数の通信ネットワークを使用して電子通信項目を送信、受信、および/またはレンダリングするステップの一部として、コンピュータ可読情報を伝達するために使用されることができる。他の実施形態および構成も含まれ、利用可能である。
例示的な動作環境
[00597]次に図6を参照すると、以下の説明は、本発明の実施形態が実施され得る適切なコンピューティング環境の簡潔で一般的な説明を提供することを意図する。本発明は、パーソナルコンピュータ上のオペレーティングシステム上で動作するプログラムモジュールと共に実行するプログラムモジュールの一般的な文脈において説明されているが、本発明は他のタイプのコンピュータシステムおよびプログラムモジュールと組み合わせて実施されることもできることが、当業者には理解されよう。
[00598]一般に、プログラムモジュールには、特定のタスクを実行するまたは特定の抽象データ型を実施する、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造がある。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成と共に実施できることが当業者には理解されよう。本発明はまた、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実施される分散コンピューティング環境において実施されることができる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置されることができる。
[00599]次に図6を参照して、本発明の実施形態の例示的な動作環境について説明する。図6に示されるように、コンピュータ2は、1つまたは複数のアプリケーションプログラムを実行することが可能な、汎用サーバ、デスクトップ、ラップトップ、ハンドヘルド、または他のタイプのコンピュータを含む。コンピュータ2は、少なくとも1つの中央処理装置8(「CPU」)と、ランダム・アクセス・メモリ18(「RAM」)と読み出し専用メモリ(「ROM」)20とを含むシステムメモリ12と、このメモリをCPU8に結合するシステムバス10とを含む。起動中などにコンピュータ内部の要素間で情報を転送するする助けとなる基本ルーチンを含む基本的な入出力システムは、ROM20に記憶される。コンピュータ2は、大容量記憶装置14をさらに含み、大容量記憶装置14は、オペレーティングシステム24、アプリケーションプログラム、および他のプログラムモジュール/リソース26を記憶することを目的とする。
[00600]大容量記憶装置14は、バス10に接続された大容量記憶域コントローラ(図示せず)によってCPU8に接続される。大容量記憶装置14およびその関連するコンピュータ可読媒体は、コンピュータ2の非揮発性記憶域となる。本明細書中に含まれるコンピュータ可読媒体の説明は、ハードディスクまたはCD−ROMドライブなどの大容量記憶装置を指すが、コンピュータ可読媒体はコンピュータ2によりアクセスまたは利用できる任意の利用可能な媒体であってよいことは、当業者には理解されよう。
[00601]限定としてではなく、例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータの記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実施される、揮発性の媒体、不揮発性の媒体、リムーバブルメディア、およびノンリムーバブルメディアを含む。コンピュータの記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のソリッドステートメモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、コンピュータ2によってアクセス可能な他の任意の媒体を含んでよいが、これらに限定されない。
[00602]本発明の種々の実施形態によれば、コンピュータ2は、たとえばローカルネットワーク、インターネットなどのネットワーク4によるリモートコンピュータへの論理接続を使用してネットワーク接続された環境において作動することができる。コンピュータ2は、バス10に接続されたネットワーク・インタフェース・ユニット16によってネットワーク4に接続することができる。ネットワーク・インタフェース・ユニット16は他のタイプのネットワークおよびリモート・コンピューティング・システムに接続するために利用されることもできることを理解されたい。コンピュータ2は、キーボード、マウスなど(図示せず)を含むいくつかの他のデバイスからの入力を受信および処理するための入出力制御装置22も含むことができる。同様に、入出力制御装置22は、表示画面、プリンタ、または他のタイプの出力デバイスに出力を提供することができる。
[00603]上記で簡単に言及したように、Redmond、WashingtonのMICROSOFT CORPORATIONのWINDOWS(登録商標)オペレーティングシステムなどの、ネットワーク接続されたパーソナルコンピュータの動作を制御するのに適したオペレーティングシステム24を含めて、いくつかのプログラムモジュールおよびデータファイルは、コンピュータ2の大容量記憶装置14およびRAM18に記憶されることができる。大容量記憶装置14およびRAM18は、1つまたは複数のプログラムモジュールを記憶することもできる。具体的には、大容量記憶装置14およびRAM18は、ワード・プロセッシング・アプリケーションおよび/またはプログラムモジュール、スプレッドシートアプリケーションおよび/またはプログラムモジュール、描画アプリケーションおよび/またはプログラムモジュール、電子メールアプリケーションおよび/またはプログラムモジュール、ならびに他のアプリケーションおよび/またはプログラムモジュールなどの、アプリケーションプログラムを記憶することができる。
[00604]本発明の種々の実施形態は、(1)コンピュータで実施される一連の行為(act)もしくはコンピューティングシステム上で動作する一連のプログラムモジュールとして、および/または(2)コンピューティングシステム内で相互接続された機械の論理回路もしくは回路モジュールとして、実装できることを理解されたい。この実装形態は、本発明を実施するコンピューティングシステムの性能要件に左右される選択の問題である。したがって、関連アルゴリズムを含む論理演算は、操作、構造的デバイス、行為、またはモジュールと、さまざまに呼ばれることがある。これらの操作、構造的デバイス、行為、およびモジュールは、本明細書中に記載される特許請求の範囲に記載される趣旨および範囲本発明から逸脱することなく、ソフトウェア、ファームウェア、専用デジタル論理、およびこれらの任意の組み合わせにおいて実施できることは、当業者には理解されよう。
[00605]種々の例示的な実施形態に関連して本発明を説明してきたが、以下の特許請求の範囲内で本発明に多数の修正を加え得ることは当業者には理解されよう。したがって、本発明の範囲は、いかなる形であれ上記の説明によって限定されるのではなく、以下の特許請求の範囲をすべて参照して決定されることが意図されるものである。

Claims (14)

  1. 電子メールメッセージを解析し、解析された出力を生成するステップと、
    前記電子メールメッセージの前記解析された出力内の拡張トリガを識別するステップの一部としてトリガ基準を使用するステップであって、該使用するステップは、前記電子メールメッセージへのアクティブなコンテンツのインラインでの挿入をトリガするために前記トリガ基準として1つまたは複数の正規表現を使用するステップを含む、ステップと、
    前記電子メールメッセージに関連付けられたメッセージプロパティを使用して前記拡張トリガが真であるかを判定し、真である場合に、分離されたコード実行環境へ前記拡張に関連するソリューションパッケージを解凍するステップと、
    前記電子メールメッセージのためのアクティブコンテンツ機能を提供するステップの一部として拡張のための対応する拡張トリガを識別するために前記1つまたは複数の正規表現を使用した後、分離されたコード実行環境を使用した拡張コードを実行するステップとであって、前記分離されたコード実行環境は、前記電子メールクライアントから分離されており、前記実行している拡張コードが表示された電子メールメッセージに前記アクティブコンテンツを埋め込むときに使用され、前記拡張コードの実行は、前記ソリューションパッケージにより表示された電子メールメッセージへ前記拡張に関連するコンテンツを自動的に挿入するために前記分離されたコード実行環境からのマークアップストリームを返すことを含む、ステップと、
    により前記電子メールメッセージと対話するステップの一部として、電子メールクライアントに対し前記拡張を実施するステップと
    を含む方法。
  2. 適切な拡張トリガを識別することなしに前記拡張なしで電子メールを表示するステップをさらに含む、請求項1に記載の方法。
  3. 対応する拡張コードおよび拡張のそれぞれに対するマニフェストを含む前記ソリューションパッケージを提供するステップをさらに含み、前記ソリューションパッケージはユーザのメールボックス内の非表示メッセージと共に保存されるスクリプトコードを含む、請求項1に記載の方法。
  4. 1または複数のリモートおよびローカルのコンピュータストレージの一部分として前記ソリューションパッケージを保存するステップをさらに含む、請求項3に記載の方法。
  5. 前記電子メールメッセージと共に前記ソリューションパッケージを使用するステップの一部として電子メールアプリケーションをローカルに実行するステップをさらに含む、請求項3に記載の方法。
  6. 前記電子メールメッセージと共に前記ソリューションパッケージを使用するステップの一部としてウェブベースの電子メールアプリケーションを実行するステップをさらに含む、請求項3に記載の方法。
  7. 1つまたは複数のマークアップ言語、スタイル・シート言語、スクリプト言語機能を用いて前記ソリューションパッケージを生成するステップをさらに含む、請求項1に記載の方法。
  8. 前記電子メールメッセージの解析、本文タグの配置、前記本文タグに関連するガジェットスクリプトの挿入に部分的に基づいて拡張コードを実行するステップをさらに含む、請求項1に記載の方法。
  9. 選択された電子メールメッセージのためにインラインコンテンツを提供するステップの一部として拡張性モデルを使用するステップをさらに含み、該使用するステップは、解析された電子メール部分における対応するガジェットトリガを識別するときに前記選択された電子メールメッセージの視覚可能な部分へ前記マークアップストリームを自動的に挿入するステップを含む、請求項1に記載の方法。
  10. 分離サンドボックスからのガジェットコードをアクティブ化するために前記ガジェットトリガとして少なくとも1つの正規表現を使用するステップをさらに含む、請求項9に記載の方法。
  11. 電子メールメッセージ表示の一部として異なる種類のコンテンツをインラインで挿入するステップの一部として1つまたは複数の拡張トリガに基づいて分離して拡張性コードを実行するステップをさらに含む、請求項1に記載の方法。
  12. アクティブ化条件が満たされるか否かを判定するために電子メール通信を検査するステップと、
    アクティブ化条件が満たされる場合に、スクリプトコードおよびマークアップ言語コンテンツを含む非表示メッセージから圧縮されたパッケージを解凍するステップと、
    分離サンドボックス内に前記スクリプトコードをロードするステップと、
    選択された電子メールメッセージと共に表示するためにマークアップ言語ストリームを返すステップと
    をさらに含む請求項1に記載の方法。
  13. プロセッサとメモリリソースと、
    電子メールクライアントと、
    前記電子メールクライアントに対し拡張された電子メール機能性を提供し、1つ又は複数のソリューションパッケージにより構成される1つ又は複数の利用可能なガジェットとであって、ガジェットは、
    電子メールに関連付けられたメッセージプロパティを使用して1つ又は複数のアクティブ化トリガが真であるかを判定し、真である場合に、分離されたコード実行環境へソリューションパッケージを解凍すること、および
    前記ソリューションパッケージにより選択された電子メールメッセージへ前記ガジェットと関連するコンテンツを自動的に挿入するために、前記分離されたコード実行環境を使用して前記ガジェットに関連する拡張コードを実行することであって、前記拡張コードを実行することは前記分離されたコード実行環境からのマークアップストリームを返すことを含む、実行すること、
    により動作し、
    前記分離されたコード実行環境は前記電子メールクライアントから分離しており、実行している前記拡張コードが前記選択された電子メールメッセージにおける前記アクティブコンテンツを埋め込むときに使用される、1つ又は複数の利用可能なガジェットと、
    選択された電子メールメッセージを解析するため、および1つ又は複数のアクティブ化トリガを識別するために部分的に構成される解析エンジンであって、識別されたアクティブ化トリガはそれぞれトリガ基準として正規表現を備え、前記分離されたコード実行環境を用いて関連するガジェットコードの実行を引き起こす前記アクティブコンテンツのインラインでの挿入をトリガする、解析エンジンと、および
    前記選択された電子メールメッセージおよびアクティブ化されたガジェットにより提供される関連した拡張機能性を表示するインタフェースと、を備えるシステム。
  14. プロセッサにより実行可能な命令を含むコンピュータストレージであって、該命令は実行されると、
    1つ又は複数のガジェットトリガを識別するために選択された電子メールメッセージを検査することであって、該検査することは、解析された部分を提供するために前記選択された電子メールメッセージのアイテムの部分を解析することと、少なくとも1つの解析された部分において前記1つ又は複数のガジェットトリガを識別するためにマニフェストを使用することを含み、該検査することはさらにトリガ基準として1つ又は複数の正規表現を用いて、前記選択された電子メールメッセージへのアクティブコンテンツのインラインでの挿入をトリガすることを含む、検査すること、および
    前記電子メールメッセージに関連付けられたメッセージプロパティを使用して1つ又は複数のアクティブ化トリガが真であるかを判定し、真である場合に、前記ガジェットに関連するソリューションパッケージを分離された環境へ解凍すること、および
    アクティブコンテンツの機能をインラインで前記選択された電子メールメッセージのアイテムへ提供することの一部として、対応するガジェットトリガを識別するときに、前記分離された環境からの前記拡張コードを実行することであって、前記分離された環境は前記電子メールクライアントから分離されており、実行している前記拡張コードが前記表示された電子メールメッセージに前記アクティブコンテンツを埋め込むときに使用され、前記拡張コードの実行は、前記ソリューションパッケージにより前記表示された電子メールメッセージへ前記ガジェットに関連するコンテンツを自動的に挿入するために前記分離された環境からマークアップストリームを返すことを含む、実行すること
    により電子メールクライアントでガジェットを実行すること、
    によって電子メールクライアントのための拡張可能な通信機能を提供する、コンピュータストレージ。
JP2014510387A 2011-05-09 2012-05-06 電子通信のための拡張性機能 Active JP6043342B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/103,614 US9524531B2 (en) 2011-05-09 2011-05-09 Extensibility features for electronic communications
US13/103,614 2011-05-09
PCT/US2012/036705 WO2012154634A2 (en) 2011-05-09 2012-05-06 Extensibility features for electronic communications

Publications (3)

Publication Number Publication Date
JP2014519088A JP2014519088A (ja) 2014-08-07
JP2014519088A5 JP2014519088A5 (ja) 2015-06-25
JP6043342B2 true JP6043342B2 (ja) 2016-12-14

Family

ID=47139920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014510387A Active JP6043342B2 (ja) 2011-05-09 2012-05-06 電子通信のための拡張性機能

Country Status (6)

Country Link
US (3) US9524531B2 (ja)
EP (1) EP2707849A4 (ja)
JP (1) JP6043342B2 (ja)
KR (1) KR101897310B1 (ja)
CN (2) CN109086905A (ja)
WO (1) WO2012154634A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015122B1 (en) * 2012-10-18 2018-07-03 Sitting Man, Llc Methods and computer program products for processing a search
US9524531B2 (en) 2011-05-09 2016-12-20 Microsoft Technology Licensing, Llc Extensibility features for electronic communications
CN102662737B (zh) * 2012-03-14 2014-06-11 优视科技有限公司 扩展程序的调用方法及装置
US9256733B2 (en) * 2012-04-27 2016-02-09 Microsoft Technology Licensing, Llc Retrieving content from website through sandbox
US8904550B2 (en) 2012-06-27 2014-12-02 Blackberry Limited Selection of sandbox for initiating application
US10397150B1 (en) * 2012-10-18 2019-08-27 Gummarus, Llc Methods and computer program products for processing a search query
US10291562B2 (en) * 2013-05-20 2019-05-14 International Business Machines Corporation Embedding actionable content in electronic communication
US10257141B2 (en) * 2015-03-13 2019-04-09 Cola, Inc. System and method for delivering inline interactive objects encapsulated in a message
US10769351B2 (en) * 2015-05-08 2020-09-08 Citrix Systems, Inc. Rendering based on a document object model
US10884580B2 (en) * 2015-06-07 2021-01-05 Apple Inc. Devices and methods for displaying content in a note-taking application
US10296190B2 (en) 2015-12-11 2019-05-21 Microsoft Technology Licensing, Llc Spatially organizing communications
US10852912B2 (en) 2016-06-12 2020-12-01 Apple Inc. Image creation app in messaging app
US10595169B2 (en) 2016-06-12 2020-03-17 Apple Inc. Message extension app store
US10785175B2 (en) * 2016-06-12 2020-09-22 Apple Inc. Polling extension application for interacting with a messaging application
US10346530B2 (en) * 2017-03-10 2019-07-09 Microsoft Technology Licensing, Llc Embedded meeting extensions
US20190081915A1 (en) * 2017-09-08 2019-03-14 Microsoft Technology Licensing, Llc Extensions embedded in e-mail messages
US11138265B2 (en) * 2019-02-11 2021-10-05 Verizon Media Inc. Computerized system and method for display of modified machine-generated messages
US12067213B2 (en) * 2019-11-14 2024-08-20 Black Hills Ip Holdings, Llc Structured text for electronic communications
US12073061B2 (en) 2022-06-24 2024-08-27 Microsoft Technology Licensing, Llc Systems for enabling a user to defer decisions presented in a web browser
US12067070B2 (en) * 2022-06-24 2024-08-20 Microsoft Technology Licensing, Llc Transferring link context from desktop application to browser

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6013666A (en) 1996-07-02 2000-01-11 Sang Sup Jew Oxirane carboxylic acid derivative and its manufacturing method
US10636084B2 (en) 1996-10-31 2020-04-28 Citicorp Credit Services, Inc. (Usa) Methods and systems for implementing on-line financial institution services via a single platform
US8782541B2 (en) * 2001-03-12 2014-07-15 Nice-Systems Ltd. System and method for capturing analyzing and recording screen events
US6836886B2 (en) 2001-03-19 2004-12-28 Autodesk, Inc. Method and apparatus for delivering electronic information
JP2003051851A (ja) 2001-08-08 2003-02-21 Sangaku Renkei Kiko Kyushu:Kk 電子メール受信方法と、それに使用するメールサーバ、ウェブサーバ、受信端末及び電子メール受信システム
US6993562B2 (en) * 2002-03-21 2006-01-31 Peerless Systems Corporation Method and system to print via email
EP1326189A3 (en) 2001-12-12 2005-08-17 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behaviour, and guiding the learning and decision policies of an adaptive communications prioritization and routing systems
US8615661B2 (en) * 2002-03-20 2013-12-24 Blackberry Limited System and method for transmitting and utilizing attachments
US7886359B2 (en) 2002-09-18 2011-02-08 Symantec Corporation Method and apparatus to report policy violations in messages
US9076147B2 (en) * 2002-09-18 2015-07-07 Advenix, Corp. Systems and methods for online marketing and advertising on e-mail systems
US8032597B2 (en) * 2002-09-18 2011-10-04 Advenix, Corp. Enhancement of e-mail client user interfaces and e-mail message formats
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7634720B2 (en) 2003-10-24 2009-12-15 Microsoft Corporation System and method for providing context to an input method
US8095882B2 (en) 2003-10-30 2012-01-10 Avaya Technology Corp. Additional functionality for telephone numbers and utilization of context information associated with telephone numbers in computer documents
US20050177635A1 (en) * 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7571213B2 (en) 2004-03-26 2009-08-04 Microsoft Corporation Interactive electronic bubble messaging
US8326930B2 (en) * 2004-06-22 2012-12-04 J2 Global Communications Variation of image content in electronic messaging protocol messages
US7475150B2 (en) 2004-09-07 2009-01-06 International Business Machines Corporation Method of generating a common event format representation of information from a plurality of messages using rule-based directives and computer keys
US7647559B2 (en) 2004-09-30 2010-01-12 Microsoft Corporation Method and computer-readable medium for navigating between attachments to electronic mail messages
US7567965B2 (en) 2004-10-22 2009-07-28 Microsoft Corporation Presenting message attachments independent of electronic messages at a user-interface
US7487446B2 (en) 2004-11-10 2009-02-03 Microsoft Corporation Using a word processor with accounting data
US20060174078A1 (en) * 2005-01-19 2006-08-03 Alcatel System and method for executing a process on a microprocessor-enabled device
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US8239939B2 (en) * 2005-07-15 2012-08-07 Microsoft Corporation Browser protection module
US20090100010A1 (en) * 2005-10-26 2009-04-16 Zimbra, Inc. System and method for seamlessly integrating separate information systems within an application
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US7852445B2 (en) 2005-12-22 2010-12-14 Nec Corporation Liquid crystal display device and terminal device that uses same
US8341756B2 (en) * 2006-01-17 2012-12-25 Kidaro (Israel) Ltd. Securing data in a networked environment
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070204223A1 (en) 2006-02-27 2007-08-30 Jay Bartels Methods of and systems for personalizing and publishing online content
US7765097B1 (en) 2006-03-20 2010-07-27 Intuit Inc. Automatic code generation via natural language processing
US8073830B2 (en) * 2006-03-31 2011-12-06 Google Inc. Expanded text excerpts
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US7747785B2 (en) * 2006-04-14 2010-06-29 Microsoft Corporation Instant messaging plug-ins
US20070256003A1 (en) 2006-04-24 2007-11-01 Seth Wagoner Platform for the interactive contextual augmentation of the web
TW200830876A (en) * 2006-08-24 2008-07-16 Chumby Ind Inc Networked personal audiovisual device having flexible housing
US8903840B2 (en) 2006-08-31 2014-12-02 International Business Machines Corporation System and method for launching a specific program from a simple click on a string of characters
GB0620238D0 (en) * 2006-10-12 2006-11-22 Ibm A method and apparatus for converting a text-based email message to an email message comprising image-based fonts
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US20080165148A1 (en) 2007-01-07 2008-07-10 Richard Williamson Portable Electronic Device, Method, and Graphical User Interface for Displaying Inline Multimedia Content
US20080168368A1 (en) 2007-01-07 2008-07-10 Louch John O Dashboards, Widgets and Devices
US9537816B2 (en) 2007-01-23 2017-01-03 Microsoft Technology Licensing, Llc API for representing a mailbox in a message system
US7647404B2 (en) * 2007-01-31 2010-01-12 Edge Technologies, Inc. Method of authentication processing during a single sign on transaction via a content transform proxy service
US7831676B1 (en) * 2007-02-21 2010-11-09 Nagar Ajay R Method and system for handling email
US8196097B1 (en) 2007-03-02 2012-06-05 Google Inc. Method and apparatus for extending a software gadget
US10997531B2 (en) * 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
EP2042969A1 (en) 2007-09-28 2009-04-01 Alcatel Lucent Method for determining user reaction with specific content of a displayed page.
US9785916B2 (en) * 2007-10-12 2017-10-10 Yahoo Holdings, Inc. Integrating rich media into a web-based calendar
US8999353B2 (en) * 2007-10-12 2015-04-07 Csl Limited Method of eliciting an immune response against pandemic influenza virus
US8719121B1 (en) * 2008-01-15 2014-05-06 David Leason System and method for automated construction of time records based on electronic messages
US8196112B1 (en) * 2008-02-15 2012-06-05 Amazon Technologies, Inc. Systems and methods for testing widgets in computer environments
US8060570B2 (en) 2008-03-13 2011-11-15 SMS, ac, Inc. Systems and methods for sending and receiving e-mail on a network community platform
WO2009130605A2 (en) * 2008-04-21 2009-10-29 Vaka Corporation Methods and systems for customizing and embedding widgets in instant messages
US8291496B2 (en) * 2008-05-12 2012-10-16 Enpulz, L.L.C. Server based malware screening
US9894020B2 (en) * 2008-07-09 2018-02-13 Blackberry Limited Delivery of email messages with repetitive attachments
US8346615B2 (en) 2008-11-25 2013-01-01 Yodlee, Inc. Financial gadgets
US20100131529A1 (en) 2008-11-26 2010-05-27 Vishal Kasera Open entity extraction system
US20100192224A1 (en) * 2009-01-26 2010-07-29 International Business Machines Corporation Sandbox web navigation
US8392896B2 (en) 2009-03-06 2013-03-05 Microsoft Corporation Software test bed generation
US20100257182A1 (en) 2009-04-06 2010-10-07 Equiom Labs Llc Automated dynamic style guard for electronic documents
CN101957749A (zh) * 2009-07-20 2011-01-26 华为技术有限公司 一种生成widget的方法及装置
US8626802B2 (en) 2009-07-24 2014-01-07 Apple Inc. Dynamic media content previews
US8239467B2 (en) 2009-08-19 2012-08-07 Ianywhere Solutions, Inc. Extending business processes to mobile devices
US20110054289A1 (en) 2009-09-01 2011-03-03 Adidas AG, World of Sports Physiologic Database And System For Population Modeling And Method of Population Modeling
US9032066B1 (en) * 2009-09-29 2015-05-12 Amazon Tehnologies, Inc. Virtual sandboxing for supplemental content
US20110099507A1 (en) * 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US8839138B1 (en) * 2009-12-21 2014-09-16 Symantec Corporation Systems and methods for transitioning between user interface environments
US9185064B2 (en) * 2010-01-15 2015-11-10 Microsoft Technology Licensing, Llc Interactive email
US9634993B2 (en) * 2010-04-01 2017-04-25 Cloudflare, Inc. Internet-based proxy service to modify internet responses
US20110289162A1 (en) 2010-04-02 2011-11-24 Furlong Wesley J Method and system for adaptive delivery of digital messages
WO2011127653A1 (en) * 2010-04-14 2011-10-20 Google Inc. Enriching web resources
US20110288962A1 (en) * 2010-05-21 2011-11-24 Rankin Jr Claiborne R Apparatuses, methods and systems for a lead exchange facilitating hub
US8890890B2 (en) 2010-05-26 2014-11-18 Microsoft Corp. Pluggable web-based visualizations for applications
US8875029B1 (en) 2010-08-16 2014-10-28 Google Inc. Active mail thread
US20120054289A1 (en) * 2010-08-25 2012-03-01 Doruk Aytulu Email command systems and methods
CN101937466B (zh) 2010-09-15 2011-11-30 任子行网络技术股份有限公司 网页邮箱识别分类方法及系统
US20120081299A1 (en) * 2010-10-04 2012-04-05 Verizon Patent And Licensing Inc. Method and apparatus for providing remote control via a touchable display
US20120221571A1 (en) * 2011-02-28 2012-08-30 Hilarie Orman Efficient presentation of comupter object names based on attribute clustering
US9524531B2 (en) 2011-05-09 2016-12-20 Microsoft Technology Licensing, Llc Extensibility features for electronic communications
US9449112B2 (en) 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9092728B2 (en) 2012-04-19 2015-07-28 Microsoft Technology Licensing, Llc Providing rule based analysis of content to manage activation of web extension
US9235803B2 (en) 2012-04-19 2016-01-12 Microsoft Technology Licensing, Llc Linking web extension and content contextually
US8904550B2 (en) * 2012-06-27 2014-12-02 Blackberry Limited Selection of sandbox for initiating application

Also Published As

Publication number Publication date
US20170097754A1 (en) 2017-04-06
CN103547986A (zh) 2014-01-29
US20120290945A1 (en) 2012-11-15
WO2012154634A3 (en) 2013-03-28
US11144180B2 (en) 2021-10-12
JP2014519088A (ja) 2014-08-07
KR20140034188A (ko) 2014-03-19
US9524531B2 (en) 2016-12-20
US10241657B2 (en) 2019-03-26
WO2012154634A2 (en) 2012-11-15
US20190179518A1 (en) 2019-06-13
EP2707849A2 (en) 2014-03-19
CN109086905A (zh) 2018-12-25
EP2707849A4 (en) 2014-09-24
KR101897310B1 (ko) 2018-10-18

Similar Documents

Publication Publication Date Title
JP6043342B2 (ja) 電子通信のための拡張性機能
US8572202B2 (en) Persistent saving portal
US7840527B2 (en) Platform for feeds
US7512569B2 (en) User defined components for content syndication
US8185819B2 (en) Module specification for a module to be incorporated into a container document
US8219900B2 (en) Programmatically hiding and displaying Wiki page layout sections
US20210149842A1 (en) System and method for display of document comparisons on a remote device
US9419987B2 (en) Method and device for prompting information about e-mail
US20050289147A1 (en) News feed viewer
US20080140712A1 (en) Harvesting of media objects from searched sites without a user having to enter the sites
US20090276455A1 (en) Sharing information about a document across a private compuer network
AU2006326623A2 (en) Remote module incorporation into a container document
US20060224397A1 (en) Methods, systems, and computer program products for saving form submissions
CA2654861A1 (en) Method for inheriting a wiki page layout for a wiki page
CN110795649A (zh) 目标页面展示方法、装置、系统及电子设备
US20090019361A1 (en) Methods, systems, and computer program products for providing a browsing mode association of a link with browsed content
US20150261733A1 (en) Asset collection service through capture of content

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150430

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150430

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161111

R150 Certificate of patent or registration of utility model

Ref document number: 6043342

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