JP2009510811A - コンテンツルーター - Google Patents

コンテンツルーター Download PDF

Info

Publication number
JP2009510811A
JP2009510811A JP2008521440A JP2008521440A JP2009510811A JP 2009510811 A JP2009510811 A JP 2009510811A JP 2008521440 A JP2008521440 A JP 2008521440A JP 2008521440 A JP2008521440 A JP 2008521440A JP 2009510811 A JP2009510811 A JP 2009510811A
Authority
JP
Japan
Prior art keywords
command
content
outgoing
incoming
collision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008521440A
Other languages
English (en)
Other versions
JP2009510811A5 (ja
JP4881380B2 (ja
Inventor
トルシュテン シュルツ
マルコ ベリス
マティアス ブロイアー
ビョルン エベセン
マルクス マイアー
ヴェンカタチャリー スリニヴァサン
Original Assignee
ヤフー! インコーポレイテッド
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 ヤフー! インコーポレイテッド filed Critical ヤフー! インコーポレイテッド
Publication of JP2009510811A publication Critical patent/JP2009510811A/ja
Publication of JP2009510811A5 publication Critical patent/JP2009510811A5/ja
Application granted granted Critical
Publication of JP4881380B2 publication Critical patent/JP4881380B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

複数のコンテンツノードと、コンテンツルーターのコマンドメモリとの間で情報に対する変更をルーティングするための方法、装置及びシステム。コンテンツノードは、ユーザ装置(例えば、移動電話)及びユーザアカウント(例えば、eメールアカウント)である。コンテンツノードは、1つ以上のコンテンツタイプ、例えば、eメール、連絡先、タスク、事象、及びライブラリーアイテムを保持する。コマンドメモリは、コンテンツルーティングシステム内の衝突検出、回避、及びエラー処理に集中する。
【選択図】 図2

Description

本発明は、ユーザ装置及びアカウントを維持することに係り、より詳細には、複数の装置及びネットワーク構成のアカウントからアクセスできる情報を同期させることに係る。
関連出願へのクロスレファレンス:本出願は、次のものに関連している。即ち、本出願と同時に出願されたMarco BOERRIES氏等の“CONTENT ROUTER ASYNCHRONOUS EXCHANGE”と題する米国特許出願第11/182,313号(代理人整理番号第32421−20015.00号);本出願と同時に出願されたBjoron EBBESEN氏等の“CONTENT ROUTER REPOSITORY”と題する米国特許出願第11/182,665号(代理人整理番号第32421−20016.00号);本出願と同時に出願されたVenkatachary SRINIVASAN氏等の“CONTENT ROUTER FOR WARDING”と題する米国特許出願第11/182,311号(代理人整理番号第32421−20019.00号);本出願と同時に出願されたMatthias BREUER氏等の“CONTENT ROUTER NOTIFICATION”と題する米国特許出願第11/182,288号(代理人整理番号第32421−20020.00号);及び本出願と同時に出願されたMeher TENDJOUKIAN氏等の“CONTENT ROUTER GATEWAY”と題する米国特許出願第11/183,073号(代理人整理番号第32421−20026.00号)。これらは、各々、参考としてここに援用する。
既知のルーター及び同期システムは、1つのノードから受け取られたペイロードデータを分析して、そのデータの全部又は一部分を第2のノードへ転送すべきかどうか決定するものではない。例えば、ルーターは、それが受け取ったアドレスと、ルーティングテーブルとを使用して、どの行先ノードが到来するパケットのコピーを受け取るかを決定する。既知のルーターは、パケットのアドレスに基づいてルーティングを決定する。更に、既知のルーターは、パケットを保持するための長期間メモリを備えていない。従って、第2のノードもルーターに接続されている間に第1のノードがパケットをルーターへ送出しない限り、パケットが第2のノードにより受け取られない。
同期システムは、1つ以上のハンドヘルド装置にミラーリングするレコードのセットのマスターコピーを保持する。1つの装置に変更が生じそしてその装置がその変更されたレコードを同期システムへ転送した後に、同期システムは、そのマスターコピーを更新し、これは、次いで、他の装置が同期システムと同期したときに他の装置に得られる。既知の同期システムは、同期された全レコードのマスターコピーを保持しなければならない。例えば、ハンドヘルドオーガナイザーは、PCの同期ツールで動作することができる。オーガナイザー及びPCは、両方とも、全レコードのマスターコピーを維持する。従って、マスターコピーを複数の位置に維持することができる。更に、同期システムが、同期システムに同時に接続されていない装置と共に機能すべき場合には、同期システムが各新たなレコードのコピーを保持する必要がある。レコードが、オーディオファイル又は映像ファイルを表わす場合には、同期システムは、実質的な量の記憶装置を必要とする。
そこで、コンテンツの行先を同期させる改良されたシステムがあれば、好都合であり、特に、融通性を高め、複雑さを低減し及び/又は性能を改善できるシステムがあることも好都合であろう。
従って、本発明は、好ましくは、上述した1つ以上の欠点の軽減、緩和又は排除を単独で行なうか、或いは組み合せて行うものである。
本発明の第1の態様によれば、複数のコンテンツノードとコマンドメモリとの間で情報に対する変更をルーティングするためのコンテンツルーティングシステムにおいて、記憶及び転送ロジックを備え、これは、第1のコンテンツノードからの入コマンドを処理し、その入コマンドのコンテンツタイプ及び1つ以上のルーティングパラメータに基づき行先コンテンツノードのセットを選択し、そしてその選択された行先コンテンツノードの各々に対する出コマンドを発生するための処理ロジックと、処理ロジックに接続されて入コマンド及び出コマンドのセットを保持するコマンドメモリとを含み、更に、処理ロジックに接続されて1つ以上のルーティングパラメータを保持する接続データセットコンフィギュレーションを備えたコンテンツルーティングシステムが提供される。
ある実施形態は、第1プロトコルと共通プロトコルとの間で変換するためのゲートウェイと、共通プロトコルとコマンドプロトコルとの間で変換するためのプロトコルアダプタとを備えている。
ある実施形態は、入コマンドを保持するための入待ち行列、及び出コマンドのセットを保持するための出待ち行列を有するコマンドメモリを備えている。ある実施形態は、入コマンドと、出コマンドのセットとを保持するためのデータベースを備え、各コマンドは、コマンドの状態を識別する属性を有する。ある実施形態は、出イン・トランシット待ち行列状態を含む。ある実施形態は、入イン・トランシット待ち行列状態を含む。
本発明の第2の態様によれば、複数のコンテンツノードとコマンドメモリとの間で情報に対する変更をルーティングする方法において、コンテンツルーターでは、第1コンテンツノードから入コマンドを受け取り、第1コンテンツノードに関連したコマンドメモリに入コマンドを記憶し、入コマンドのコンテンツタイプと、行先コンテンツノード及びコンテンツタイプに関連したルーティングパラメータとに基づいて、行先コンテンツノードのセットを選択し、更に、その選択された行先コンテンツノードの各々に対して、出コマンドを発生し、その出コマンドをコマンドメモリに記憶することを含む方法が提供される。
本発明の第3の態様によれば、処理ロジック及びコマンドメモリを含むコンテンツルーティングシステムに使用するためのプログラムコードを含むコンピュータプログラム製品であって、コンテンツルーティングシステムは、複数のコンテンツノードとコマンドメモリとの間で情報に対する変更をルーティングするためのものであるコンピュータプログラム製品において、第1コンテンツノードから入コマンドを受け取るためのプログラムコードと、第1コンテンツノードに関連したコマンドメモリに入コマンドを記憶するためのプログラムコードと、入コマンドのコンテンツタイプ、並びに行先コンテンツノード及びコンテンツタイプに関連したルーティングパラメータに基づいて、行先コンテンツノードのセットを選択するためのプログラムコードと、更に、その選択された行先コンテンツノードの各々に対して、出コマンドを発生するためのプログラムコードと、その出コマンドをコマンドメモリに記憶するためのプログラムコードと、を備えたコンピュータプログラム製品が提供される。
以下、添付図面を参照して、本発明の実施形態を一例として詳細に説明する。
以下の説明では、本発明の幾つかの実施形態を示す添付図面を参照する。他の実施形態も利用でき、それらは、機械的、組成的、構造的、電気的なものでよく、又、本開示の精神及び範囲から逸脱せずに動作上の変更がなされ得ることを理解されたい。以下の詳細な説明は、本発明をこれに限定するものではなく、本発明の実施形態の範囲は、特許請求の範囲のみにより限定される。
以下の詳細な説明の幾つかの部分は、コンピュータメモリ上で遂行できるデータビットに対するオペレーションの手順、ステップ、論理ブロック、処理、及び他の象徴的表現に関して表わされる。手順、コンピュータ実行ステップ、論理ブロック、プロセス、等は、ここでは、希望の結果を導くステップ又はインストラクションの自己一貫性シーケンスであると考えられる。ステップは、物理量の物理的操作を利用するものである。これらの量は、コンピュータシステムにおいて記憶、転送、合成、比較、その他、操作することのできる電気、磁気又は無線信号の形態をとることができる。これら信号は、しばしば、ビット、値、エレメント、記号、キャラクタ、項、数字、等と称される。各ステップは、ハードウェア、ソフトウェア、ファームウェア、又はその組み合せによって遂行することができる。
図1Aは、ルーティングシステムを示す。ルーター100は、パケット120をルーティングするのに使用されるルーティングモジュール101及びルーティングテーブル102を備えている。ルーター100は、パケット120に付加されたアドレス情報と、ルーティングテーブル102の両方を使用して、どのデータシンク140−1ないし140−3が入パケット120の転送コピーを受け取るか決定する。ルーター100は、パケット120をパケット130−1ないし130−3として転送する。既知のルーターは、入パケット120に含まれたコンテンツのタイプに基づいてルーティングを決定するのではなく、パケット120に付加されたアドレス情報に基づいてルーティングを決定する。
図1Bは、PC150及び複数のデータホルダ160を含む同期システムを示す。データホルダ160は、クレードルを経てPC150に接続されたハンドヘルドオーガナイザーでよい。ユーザは、第1データホルダ160−1へ新たな連絡先を入力する等の情報の変更を行うことができる。周期的に、ユーザは、データホルダ160をPC150へ接続し、そしてPC150のCPU151を使用して各データホルダ160を同期させる。第1データホルダ160−1は、CPU151とでデータ170−1を交換する。CPU151は、更新された情報及び新たな情報をデータ171としてセーブする。PC150は、これを通して同期されるデータ171の持続的コピー152を累積する。第2のデータホルダ160−2がPC150と同期されると、CPU151は、第2のデータホルダ160−2を、第1のデータホルダ160−1からセーブされた情報で更新する。データホルダ160−1及び160−2の両方が同期された後でも、同期システムは、たとえ変更された情報がもはや同期に必要とされなくても、変更された情報のコピーを持続的コピー152として保存する。既知の同期システムは、同期システムを通して同期されたデータの完全な持続的コピー152を保持する。
図2は、本発明の実施形態によりネットワーク10を経て複数のコンテンツノード300−1ないし300−3に結合されたコンテンツルーター200を示す。このコンテンツルーター200は、ネットワーク10にアタッチできる同様の及び異なるコンテンツノード300−1ないし300−3の同期を容易にする。コンテンツルーター200は、ハードウェア及び/又はソフトウェアで実施される単一のネットワークコンポーネントでよい。或いは又、コンテンツルーター200は、ネットワーク編成のコンポーネント200のシステムでもよい。コンテンツルーター200は、ネットワーク10を横切って送られたコマンド400−1ないし400−3を使用して情報を通信する。ネットワーク10は、コマンド400を使用して、各コンテンツノード300−1ないし300−3をコンテンツルーター200に接続する。ネットワーク10は、相互接続されたイントラネット、インターネット、及び移動無線ネットワークのような異種のワイヤード及び/又はワイヤレスネットワークの寄せ集めでよい。或いは又、ネットワーク10は、単一のネットワークでもよい。更に、コンテンツルーター200は、2つ以上の個別のネットワークをブリッジしてもよい。
コマンド400−1は、コンテンツノード300−1からのメッセージ内で通信されてもよい。メッセージは、コンテンツノード300−1に利用できるプロトコルを使用してビットのシーケンスとしてエンコードされてもよい。メッセージは、コマンドのセグメントを含み、この場合に、複数のメッセージが集積されて、完全なコマンドを形成する。或いは又、メッセージは、複数のコマンドを含んでもよい。コンテンツノード300により使用されるあるプロトコルでは、1つ以上のメッセージが1つ以上のコマンドを表わしてもよい。コンテンツルーター200は、コンテンツノード300により使用されるメッセージプロトコルと、コンテンツルーター200により内部で使用されるコマンド構造又はプロトコルとの間を変換することができる。
コンテンツノード300から、ユーザは、コマンドを使用して、コンテンツ又はメタデータ(即ちコンテンツに関する情報)を入力、記憶、アクセス、更新、変更、及び/又は削除することができる。コンテンツは、連絡先、カレンダー事象、タスク、eメール及び/又はライブラリーアイテムのような種々のコンテンツタイプの1つを有してもよい。更に、コンテンツは、連絡先、カレンダー事象、又はタスクを含むパーソナル情報マネージメント(PIM)コンテンツタイプを有してもよい。ライブラリーアイテムは、写真映像、オーディオファイル、ビデオクリップ、映画又はドキュメントのようなメディアオブジェクトを含んでもよいし、又はそのようなアイテムのグループ、例えば、写真のアルバム又はホームムービーのコレクションであってもよい。メタデータは、このようなコンテンツに関する情報を含む。
コンテンツノード300は、サーバー上のユーザアカウントでよい。このようなコンテンツノード300は、単一のコンテンツタイプのコンテンツにアクセスすることができる。例えば、ユーザアカウントは、eメールサーバー上のパーソナルeメールアカウント(例えば、Yahoo!(登録商標)メール)でもよいし、写真サーバー上のファミリー写真アルバムアカウント(例えば、Yahoo!(登録商標)フォト)でもよいし、PIMサーバー上のPIMアカウント(例えば、Yahoo!(登録商標)アドレスブック又はYahoo!(登録商標)ノートパッド)でもよいし、或いはマルチメディアライブラリーサーバー上の音楽ライブラリーアカウント(例えば、Yahoo!(登録商標)ミュージック)でもよい。更に、コンテンツノード300は、2つ以上のコンテンツタイプにアクセスできるユーザアカウントでもよい。例えば、ユーザアカウントは、Yahoo!(登録商標)ユーザアカウントのように、eメール、PIM情報、カレンダー情報、及びノードパッドにアクセスすることができる。
コンテンツノード300は、ユーザ装置でもよい。このようなユーザ装置は、ワイヤード装置、例えば、ホームパーソナルコンピュータ、オフィスPC、デジタルカメラ、又はセットトップボックスでもよいし、或いはワイヤレス装置、例えば、移動電話、ラップトップ、ハンドヘルドPC、又はワイヤレス能力を伴うデジタルカメラでもよい。ある装置は、ワイヤード及びワイヤレスの両方の能力を有してもよく、一方、他の装置は、ワイヤード能力又はワイヤレス能力を有してもよい。あるユーザ装置は、単一のコンテンツタイプにアクセスしてもよい。他のユーザ装置は、2つ以上のコンテンツタイプにアクセスすることができる。
コンテンツノード300は、情報を組織するユーザ装置でよく、これは、Blackberry(登録商標)又はTreo(登録商標)のようなPIM装置や、更に限定された情報マネージメントサービスを与える更に専用の移動電話を含んでもよい。情報マネージメントサービスは、例えば、カレンダー、アドレスブック、タスク及びノートのようなPIMサービスを含んでもよい。カレンダーは、通常、対応する日付及び時刻範囲に関連した事象(例えば、ミーティング、誕生日、休日)のような時間関係組織属性を維持する。アドレスブックは、通常、個人(例えば、人間や会社エンティティやペットのような法的「個人」)、場所(例えば、個人の住所)、又は他の連絡先情報属性(例えば、電話番号)に関係した組織的属性を維持する。
図3は、本発明の実施形態により1つのコンテンツノード300−1における変更を、コンテンツルーター200を経て、コンテンツノード300の選択されたセットへ伝播する経路を示す。コンテンツノード300のセットは、コンテンツノードのナルセット、単一コンテンツノード、1つ以上のコンテンツノードのサブセット、又は全てのコンテンツノードを含んでもよい。コンテンツノード300は、データのソース(データソース)、データのシンク(データシンク)、又はその両方の組み合せとして働く。この場合には、コンテンツノード300−1は、データソースとして働き、一方、コンテンツノード300−2、300−3、300−6及び300−8は、データシンクとして働く。コンテンツノード300−1への変更は、コンテンツ又はメタデータの追加、変更又は削除を含む多数の事象の1つを表わす。
図示されたように、コンテンツノード300−1は、コンテンツ又はメタデータのソースとして働く。コンテンツノード300−1は、変更されたコンテンツ、又はコンテンツへの変更のメタデータ指示を含むコマンド400−1を発生し、これは、コンテンツルーター200へ通信される。コンテンツノード300−1は、コマンド400−1をコンテンツルーター200へプッシュしてもよいし、又はコマンド400−1に対してコンテンツルーター200によりポーリングされてもよい。
コンテンツルーター200は、コマンド400−1のコンテンツを検査する。入コマンド400−1のコンテンツに基づいて、コンテンツルーター200は、考えられるコンテンツノード300−2ないし300−8のどれに変更を通知するかを選択する。この例では、コンテンツルーター200は、コンテンツノード300−2、300−3、300−6及び300−8を選択し、次いで、入コマンド400−1を出コマンド400−2、400−3、400−6及び400−8へ変換し、変更の指示を配布する。出コマンド400−2、400−3、400−6及び400−8は、入コマンド400−1と同じコンテンツを含んでもよいし、含まなくてもよい。更に、コンテンツルーター200は、それを通して同期される全てのコンテンツの持続的コピーを保持しない。
コンテンツノード300−1は、ユーザ装置(PIM装置のような)でもよいし、又はコンテンツ及び/又はメタデータの1つ以上のデータベースを含むユーザアカウント(Yahoo!アカウントのような)でもよい。例えば、コンテンツノード300−1がアドレスブックを含む場合には、変更が、新しい連絡先でもよいし、修正された連絡先でもよいし、又は削除された連絡先でもよい。コンテンツノード300−1がカレンダーを含む場合には、変更が、アポイントメントのような新たな事象でもよいし、修正された事象でもよいし、又は削除された事象でもよい。コンテンツノード300−1がタスクリストを含む場合には、変更が、新たなタスクでもよいし、修正されたタスクでもよいし、又は削除されたタスクでもよい。同様に、コンテンツノード300−1がノートパッドである場合には、変更が、新たなノートでもよいし、修正されたノートでもよいし、又は削除されたノートでもよい。又、変更は、注視された株のリスト、ブックマークされたウェブページのリスト、又はホームページのコンフィギュレーションのような情報の集合体の追加、修正又は削除でもよい。
コンテンツノード300−1がeメールアカウントである場合には、変更は、eメールアカウントがインターネットから到来するeメールメッセージのような新たなコンテンツを受け取ったこと、又は既存のeメールを削除するような、コンテンツを削除したことでよい。ユーザは、メッセージの状態を未読み取りから読み取りへ変更し、メッセージを未読み取りとマークし、又は重要度レベルをセットするように、メタデータを更新してもよい。同様に、コンテンツノード300−1が移動電話である場合には、変更は、ワイヤレスネットワークから新たなページャーメッセージ又は新たなSMSメッセージのような新たなコンテンツを受け取ることでもよいし、又はユーザがメッセージを削除するような、コンテンツを削除することでもよい。
更に、コンテンツノード300−1がメディアライブラリーである場合には、変更は、ユーザが、写真映像、オーディオファイル、ビデオクリップ、映画又はドキュメントのようなメディアオブジェクトを追加し、修正し又は削除したことを指示してもよいし、或いは写真アルバム又はホームムービーのコレクションのようなアイテムのグループでもよい。例えば、変更は、ユーザが写真映像に字幕を追加するか又は新たな歌をロードしたことを指示してもよい。メディアオブジェクトは、参考としてここに援用する、Marco BOERRIES氏等を発明者とする、2005年5月13日に出願された“MEDIA OBJECT ORGANIZATION ACROSS INFORMATION MANAGEMENT SERVICES”と題する関連米国特許出願第11/129,697号に更に説明されている。
変更を記述するときに、コンテンツノード300−1は、実際の新たなコンテンツ又は修正されたコンテンツを送出することができる。ある実施形態では、コンテンツノード300−1は、むしろ、メタデータを送信する。このようなメタデータは、変更されたコンテンツの特性、変更されたコンテンツの変換コピー、及び/又はメモリ内のコンテンツに対する参照、例えば、ハイパーリンク又はアドレスポインタを含む。実際のコンテンツに代わって参照を送信することで、受信側コンテンツノード300−2は、コンテンツそれ自体をコンテンツルーター200に通す必要なく、送信側コンテンツノード300−1からのコンテンツにアクセスすることが許される。
コンテンツルーター200は、ユーザ装置又はユーザアカウントのような多数のeメール・ケーパブル(email-capable)コンテンツノード300の間でeメールのルーティングを容易にする。ユーザの第1eメールアカウント、例えば、パーソナルeメールアカウントで受け取られたeメールは、コンテンツルーター200を経て、ユーザの第2アカウント、例えば、第2コンテンツノード上のワークeメールアカウントへ転送される。同様に、ユーザの第2eメールアカウントで受け取られたeメールは、コンテンツルーター200を経てユーザの第1eメールアカウントへ転送される。又、ユーザは、第3eメールアカウント、例えば、Yahoo!(登録商標)eメールアカウントを追加し、そして第3アカウントでインターネットから受け取ったeメールメッセージを第1及び第2アカウントへルーティングするようにコンテンツルーター200を構成することができる。
図4は、本発明の実施形態によるユーザ接続eメールアカウント320−1ないし320−3を示し、例示的スクリーンショット20を含む図である。アウトルックアカウントのような幾つかのコンテンツノード320は、ユーザが複数のeメールボックス又はフォルダを設定できるようにする。接続インボックスを伴う2つのeメールアカウント320−1及び320−2と、接続インボックスをもたない1つのeメールアカウント320−3が示されている。接続eメールアカウントは、コンテンツルーター200へ情報を報告し、そしてコンテンツルーター200から情報を受け取ることができる。
例えば、コンテンツノード(320−1、320−2又は320−3)は、新たな到来eメールをコマンド(各々31、32又は33)においてコンテンツルーター200へ報告する。各入コマンド(31、32又は33)に応答して、コンテンツルーター200は、行先コンテンツノード(例えば、各々320−1及び320−2)のセットを選択し、そして各選択されたコンテンツノード(各々320−1及び320−2)のインボックスを行先とする出コマンド(34及び35)を形成する。
ユーザのパーソナルeメールアカウント320−1からのスクリーンショット20は、コンテンツルーター200を通さずにインターネットから直接受け取られたeメールメッセージを保持するためのインボックス21と、コンテンツルーター200から受け取られたeメールメッセージを保持するための接続インボックス22とを示している。接続インボックス22は、ユーザの接続eメールアカウント320−1ないし320−3の各々から合流されるeメールを含む。接続インボックス22を見ることにより、ユーザは、ユーザの多数の接続eメールアカウントを行先とする全てのeメールを1つのフォルダにおいて素早く見ることができる。従って、接続インボックス22は、ユーザの多数の接続eメールアカウントを横切ってユーザへ送られた全てのeメールに対してウインドウとして見ることができる。
又、ユーザは、eメール能力を有する各コンテンツノード300に対して個別のフォルダ又はインボックスを含むようにeメールアカウントを構成することもできる。ここで、スクリーンショット20は、パーソナルeメールコンテンツノード320−1からのeメールに対するインボックス23と、ワークeメールコンテンツノード320−2からのeメールに対するインボックス24と、Yahoo!(登録商標)eメールコンテンツノード320−3からのeメールに対するインボックス25を示している。個別のフォルダを使用することで、ユーザは、1つのコンテンツノードからの個々のeメールアカウント、例えば、ユーザアカウント320−1を管理することができる。
図5及び6は、本発明の実施形態による記憶及び転送ロジック210との接続、及びそれにより遂行される処理を示す。記憶及び転送ロジック210は、各コンテンツノード300をコンテンツルーター200に同時に結合する必要なく、複数の接続コンテンツノード300が、1つのコンテンツノード300における情報の変更を、コンテンツルーター200を経て他のコンテンツノード300へ通信できるようにする。記憶及び転送ロジック210は、特定のコンテンツノードからデカップルすることができる。即ち、記憶及び転送ロジック210は、コンテンツノードがユーザ装置であるかユーザアカウントであるかに関らず、又はコンテンツノードがクライアントとして動作するかサーバーとして動作するかに関らず、各コンテンツノードを同様に取り扱うことができる。更に、記憶及び転送ロジック210は、衝突検出のタスクをコンテンツノードから離すよう移動させ、衝突検出及び回避のタスクを記憶及び転送ロジック210内に集中化させる。
記憶及び転送ロジック210は、ハードウェア、実行可能なコード、又はその両方の組み合せで実施されてもよい。記憶及び転送ロジック210は、VLSI及び/又はFPGAハードウェアを含んでもよい。記憶及び転送ロジック210は、スタンドアローンサーバー又はサーバーのネットワークを含んでもよい。記憶及び転送ロジック210は、汎用中央処理ユニット(CPU)で実施されてもよいし、或いは減少インストラクションセットコンピュータ(RISC)で実施されてもよい。記憶及び転送ロジック210は、オンチップ又はオフチップメモリ、例えば、RAM、PROM、EPROM、E2PROM、等を含んでもよい。又、記憶及び転送ロジック210は、磁気メモリ、例えば、ハードディスクドライブ、を含んでもよいし、光学メモリを含んでもよい。実行可能なコードは、スクリプト、ソフトウェア、ファームウェア、及び/又はマシンコードから導出されてもよい。
図5のコンテンツルーター200は、接続データセットコンフィギュレーション500及びレポジトリー600に結合された記憶及び転送ロジック210を備えている。この記憶及び転送ロジック210は、関連コンテンツノード300−1ないし300−4に結合されてもよい。図6は、1000で始まる入コマンドにより記憶及び転送ロジック210においてトリガーされる事象のシーケンスを示す。これらのアクションは、1001において入コマンドを処理し、1002において出コンテンツノードを選択し、1003において出コマンドを発生し、1004において出コマンドを処理し、そして1005においてその処理された出コマンドを送出することを含む。コマンドが到来するものか出て行くものかは、記憶及び転送ロジック210の観点から見える。
1000において、報告すべき変更を有するコンテンツノード300−1が新たなコマンド400−1を記憶及び転送ロジック210へ送信するときに、事象シーケンスが開始する。コンテンツノード300−1は、変更(例えば、含まれた新たなeメールメッセージを追加するコマンド)を他のコンテンツノードへ送信しない。むしろ、コンテンツノード300−1は、変更を記憶及び転送ロジック210へ送信し、これは、新たなeメールメッセージ又は新たなeメールメッセージの一部分を、コンテンツノードの対応セットへ送信するための出コマンドのセットを生成してもよいし、しなくてもよい。
1001において、記憶及び転送ロジック210は、コンテンツノード300−1からの入コマンド400−1を処理する。入コマンド400−1の処理は、発信側コンテンツノード300−1の制限又は特殊な能力に基づいてコマンドを変換することを含む。コマンドを変換するときには、記憶及び転送ロジック210は、コマンドの1つ以上の分離可能なセグメントを保持するレポジトリー600と、コマンドを処理するときに使用する変換ルールを含む接続データセットコンフィギュレーション500とを使用する。入コマンド及び出コマンドの変換は、図7A、7B、8A及び8Bを参照して更に説明する。
又、入コマンド400−1の処理は、入コマンド400−1と、記憶及び転送ロジック210で保留となっているコマンドとの間の衝突の検出及び回避も含む。記憶及び転送ロジック210は、作用を受けるべく待機している複数の保留中コマンドをメモリに保持してもよい。保留中コマンドは、特定のコンテンツノード300から既に受け取られて処理された入コマンドで、記憶及び転送ロジック210による更なる処理を待機しているコマンドである。更に、保留中コマンドは、入コマンドに応答して記憶及び転送ロジック210により発生されるコマンドでもよい。これらの発生されたコマンドは、出コマンド(例えば、400−2又は400−4)として特定のコンテンツノード300へ送信されるのを待機している。
衝突の回避は、新たなコマンド400−1を破棄し、保留中コマンドを削除し、及び/又は新たなコマンド400−1を保留中コマンドと集積させることを含む。衝突は、新たな入コマンド400−1が、実行を保留している既に受け取られた入コマンドと衝突する場合に生じる。例えば、既に受け取られた入コマンドは、コンテンツノード300−1によりインターネットから受け取られる新たなeメールを追加するためのコマンドである。その後続の入コマンドは、例えば、ユーザがコンテンツノード300−1においてそのインボックスからeメールを削除した場合に、その同じeメールを削除するためのものである。同じeメールを削除すべきその後続コマンドが受け取られたときに、新たなeメールを追加すべきコマンドが記憶及び転送ロジック210において依然保留中である場合には、衝突が生じる。このようなケースでは、両コマンドを破棄することで衝突が回避される。或いは又、後続の入コマンドが、同じ新たなeメールを追加すべきものであった場合には、記憶及び転送ロジック210は、その二重コマンドを検出し、その二重コマンドの一方を破棄することで衝突を回避する。
又、衝突は、新たな入コマンド400−1が、特定のコンテンツノード300に対する出コマンドとして既に発生されたコマンドと衝突する場合にも生じ得る。例えば、記憶及び転送ロジック210は、アドレスブックの連絡先を更新するために保留中の出コマンドを保持することがある。新たな入コマンドは、その同じ連絡先を完全に削除するものである。記憶及び転送ロジック210は、衝突を検出し、そして保留中の出コマンド(連絡先更新)を除去しそして新たな入コマンド(連絡先削除)をセーブすることによりこの衝突を回避する。新たな入コマンドは、最終的に処理され、そして連絡先削除アクションは、出コマンドとして他の接続コンテンツノード300へ伝播される。
又、記憶及び転送ロジック210は、入コマンド400−1を、コンテンツノード300に対する保留中コマンドと集積してもよい。例えば、既に受け取られた入コマンド400−1は、新たなタスクをタスクリストに追加する。その後続の入コマンド400−1は、このタスクをある仕方で修正する。記憶及び転送ロジック210は、この衝突を検出し、そして後続の入コマンド(修正タスク)から以前の入コマンド(追加タスク)へ修正を組み込むことにより衝突を回避する。それにより集積されるコマンドは、修正されたタスクの追加となる。それにより得られる集積されたコマンドが、以前の入コマンドに置き換わる。或いは又、以前の入コマンドが破棄され、そしてそれにより生じる集積されたコマンドが新たな入コマンドとしてセーブされてもよい。衝突の検出及び回避は、図9A−9C及び図10A−10Dを参照して更に説明する。
1002において、記憶及び転送ロジック210は、出コンテンツノードのセット、ここでは、コンテンツノード300−2及び300−4を選択する。出コンテンツノードを選択すると、記憶及び転送ロジック210は、接続データセットコンフィギュレーション500を再び使用することができ、これは、ルーティングルールに使用されるルーティングパラメータも含む。ルーティングルール及び接続データセットコンフィギュレーション500は、図11を参照して更に説明する。
1003において、記憶及び転送ロジック210は、各選択されたコンテンツノード300−2及び300−4に対して各々出コマンド400−2及び400−4を発生する。選択されたコンテンツノードの能力及びコンフィギュレーションに基づいて、記憶及び転送ロジック210は、処理された入コマンドを、その選択された行先コンテンツノードの制限又は要件に適するように改造することができる。例えば、行先コンテンツノードの制限に基づいて、記憶及び転送ロジック210は、レポジトリー600を使用して、入コマンド400−1の分離可能なセグメントを保持すると共に、そのセグメントを変更するか又は出コマンドから排除することができる。逆に、コンテンツルーター200は、情報の付加的なセグメントを出コマンドに挿入してもよい。
コンテンツルーター200は、ユーザ定義ルール、システム定義ルール、又は既知のコンテンツノード制限に基づいてコマンドを改造することができる。コンテンツルーター200は、入コマンド400−1内で見つかった情報に基づいてコマンドを変更することができる。コンテンツルーター200は、ユーザのアカウント又は装置からアクセスできる位置、時間又は他の情報のようなメタデータを出コマンドに付加することができる。コンテンツルーター200は、コマンドがどのように変更されたかのレコードを保持し、関連コマンドが返送される場合に変更を逆転できるようにする。あるケースでは、コンテンツルーター200は、変更せずにコマンドを通過させる。
1004において、記憶及び転送ロジック210は、出コマンドを処理する。1001における入コマンドと同様に、記憶及び転送ロジック210は、新たな出コマンドと保留中の入コマンド及び出コマンドとの間で衝突検出及び回避を同様に遂行する。
1005において、記憶及び転送ロジック210は、出コマンド400を各コンテンツノード300へ送信する。出コマンド400の送信は、コンテンツノード300へ通知をシグナリングすることを含む。要求(要求−応答プロトコルにおける)とは異なり、通知とは、送信者が、通知が受信されたという応答も確認も期待しない信号である。この点において、通知は、いったん送信されると完了であるという点で自蔵される。更に、通知は、ソフトウェア(例えば、セマフォ、フラグ又はソフトウェア信号インストラクション)及び/又はハードウェア(例えば、ハードウェアライン又はレジスタ)で実施することができる。通知は、出コマンド400のコンテンツタイプを含むことができる。コンテンツノードがIPアドレスでネットワーク10に接続された場合には、記憶及び転送ロジック210は、出コマンドが保留中であることをコンテンツノードに通知するためにHTTPコマンドを送信する。コンテンツノードがSMS能力を有する移動電話である場合には、記憶及び転送ロジック210は、SMSメッセージを経て通知を送信することができる。
コンテンツノード300−1は、コマンド400−1において1つ以上のセグメントを有するコンテンツを送信する。コンテンツルーター200から流れ出るデータの量を最小にするために、記憶及び転送ロジック210は、コマンドの1つ以上のセグメントを、オリジナルセグメントそれ自体を転送するのではなくオリジナルコンテンツへ戻るリンクを与える1つ以上の対応する参照に置き換えることができる。或いは又、コンテンツノード300−1は、コンテンツそれ自体を含むのではなく、コンテンツのソースに対する1つ以上の参照を含んでもよい。
コンテンツに対する参照(例えば、コンテンツノード300−1に存在する新たな写真に対する参照)を受け取るコンテンツノード300−4は、コンテンツノード300−1からコンテンツを検索するためにピア・ツー・ピア転送450に着手する。このように、コンテンツルーター200は、両コンテンツノードがネットワーク10に同時に接続される間にピア・ツー・ピア転送450の形態で2つのコンテンツノード間のコンテンツの転送を容易にすることができる。
コンテンツノードの制限又は要件のために、記憶及び転送ロジック210は、コマンドの分離可能なセグメントを、コンテンツノードへ送信する前に、変更し、置き換え、又は排除することにより、コマンドを適応させることができる。例えば、あるコンテンツノードは、コマンドのあるセグメントを処理、使用又は記憶することができない。ある実施形態では、記憶及び転送ロジック210は、以下に述べる3つの方法(そのうちのあるものはレポジトリーを使用する)の1つを使用して、限定された能力をもつコンテンツノードを受け容れることができる。又、記憶及び転送ロジック210は、たとえコンテンツノードが入コマンド全体を取り扱うことができても、コンテンツノードにおけるメモリの制限や、記憶及び転送ロジック210とコンテンツノードとの間の帯域巾制約、等の他の理由で、これら方法を使用することができる。
あるケースでは、コンテンツルーター200は、コンテンツノード300を新たなコマンドに対してポーリングするように構成される。コンテンツルーター200は、コンテンツノード300を周期的にポーリングして、何らかの変更が生じたかどうか決定することができる。ポーリングの周期は、ネットワークへの接続のタイプ又は予想コストに基づくものである。例えば、コンテンツノード300が、SMS接続を経てネットワークに接続された移動電話である場合には、24時間ごとにポーリングが行われる。移動電話がGPRSデータネットワーク接続を経てネットワークに接続された場合には、20分ごとにポーリングが行われる。移動電話が、インターネットにワイヤード接続されたドッキングステーションに配置された場合には、数秒ごとから数分ごとにポーリングが行なわれる。
あるケースでは、コンテンツノード300がファイアウオールの後方にあるので、記憶及び転送ロジック210からコンテンツノード300への通知が阻止される。コマンドを受け取るために、コンテンツノード300は、コンテンツルーター200をポーリングするように構成される。コンテンツノード300が、保留中の出コマンド400に対してポーリングするときには、記憶及び転送ロジック210は、コンテンツノード300が処理するための1つのコマンド又はコマンドのバッチで応答する。コマンド400の構造は、図13及び図14A−14Iを参照して更に説明する。記憶及び転送ロジック210との間でのコマンドの通知及び交換は、図15A−15C及び図16A−16Dを参照して更に説明する。
第1の方法によれば、記憶及び転送ロジック210は、非適合の又は望ましからぬセグメントをペイロードから剥離し、そしてその剥離したセグメントをレポジトリー600にセーブすることにより、制限能力のコンテンツノードを受け容れることができる。従って、レポジトリー600は、将来使用できるコマンドのセグメントを保持することができる。これらのセグメントが後で必要になった場合には、記憶及び転送ロジック210は、それらをレポジトリー600からアクセスする。この方法は、図7A及び7Bを参照して、以下で説明する。
図7A及び7Bは、本発明の実施形態によりレポジトリー600に結合された記憶及び転送ロジック210を示す。コンテンツノード300の制限又は要件のために、記憶及び転送ロジック210は、コマンドのあるセグメントを、コンテンツノード300へ送信する前に、排除することにより、そのコマンドを適応させることができる。コマンドを適応させる前に、記憶及び転送ロジック210は、非変更セグメント又は全コマンドのコピーをレポジトリー600に保存することができる。従って、レポジトリー600は、将来使用できるコマンドの1つ以上のセグメントを保持することができる。他の実施形態によれば、セグメントは、eメールにおけるファイルのようなセグメントをコマンドから除去するのにも利用できる。例えば、図8Aを参照して以下に述べるように、入コマンドからファイルを除去することができる。或いは又、ファイル中継サーバー及び図12Eを参照して以下に述べるように、入コマンドからファイルを除去することができる。
図7Aは、レポジトリー600を使用して第1コンテンツノード300−1からの入コマンド400−1の分離可能なセグメントを保持するための記憶及び転送ロジック210を示す。コマンドが、分離可能で且つ個別であるコンテンツを含むときには、その分離可能なコンテンツをコマンドから離れてパーズし又は断片的に変更することができる。例えば、ある連絡先は、フルネーム(第1セグメント401)、家の電話番号(第2セグメント402)、及び仕事場の電話番号(第3セグメント403)を含むことができる。これらセグメントの各々は、分離可能で且つ個別のものである。即ち、これらセグメントの1つ以上を除去し及び/又は変更し及び/又は合成して、変更されたコマンドを形成することができる。例えば、移動電話のような特定のコンテンツノードが、単一の電話番号しか取り扱えないという制限を有する場合には、記憶及び転送ロジック210は、入コマンドから仕事場の電話番号(第3)を、それに対応する出コマンドを準備するときに、除去することができる。又、記憶及び転送ロジック210は、仕事場の電話番号を、将来使用するために、レポジトリー600に入れることもできる。
別の例として、入コマンドは、eメール本体及びアタッチされたファイルを有する新たなeメールメッセージのようなコンテンツを含む。アタッチされたファイルは、eメール本体とは分離可能で且つ個別のものである。記憶及び転送ロジック210は、この新たなeメールを第2のコンテンツノード300−2に追加するための出コマンド400−2を発生することができる。第2のコンテンツノード300−2への出コマンド400−2は、eメール本体を含むが、ファイルに対する参照だけである。
図示されたように、入コマンド400−1は、その一部分について、縮約された出コマンド400−2として第2コンテンツノード300−2へ転送される。入コマンド400−1は、コンテンツ及び/又はメタデータの3つのセグメント401、402及び403を含む例示的ペイロード441を備えている。記憶及び転送ロジック210は、第3セグメント403のコピーをレポジトリー600に記憶すると共に、第1セグメント401及び第2セグメント402を含むが第3セグメント403を切り取ったペイロード451を伴う出コマンド400−2を準備する。コンテンツルーター200は、例えば、行先コンテンツノード300−2の制限のために、第3セグメント403を切り取る。このような制限は、コンテンツノード300−2が、制限された量の割り当てられた記憶容量を有するか、又は所定のフォーマットにある全てのアタッチメントを除去する一般的な変換ルールを有することを含む。
別の例として、ユーザは、新たな連絡先をコンテンツノード300−1に追加することができる。コンテンツノード300−1は、ペイロード441を含む連絡先追加コマンド440を送信し、これは、コンテンツノード300−1において生成される連絡先を表わす。ペイロード441は、3つの情報セグメント401ないし403を含む。第1セグメント401は、ファーストネーム(名)及びラストネーム(姓)を保持する構造でよい。第2セグメント402は、電話番号である。第3セグメント403は、ウェブページへのハイパーリンクである。行先コンテンツノード300−2がハイパーリンクを受け取ることができない場合には、記憶及び転送ロジック210は、ハイパーリンクを含む第3セグメント403を剥離する。それ故、記憶及び転送ロジック210から送られるペイロード451は、記憶及び転送ロジック210により受け取られるペイロード441とは異なる。記憶及び転送ロジック210は、第3セグメント403を、考えられる将来の使用のために、レポジトリー600に記憶する。例えば、記憶及び転送ロジック210は、以下に述べるように、ユーザがペイロード451のセグメントを変更した後であって且つ記憶及び転送ロジック210がその変更を第1コンテンツノード300−1へ転送する前に、レポジトリー600にアクセスすることができる。
図7Bは、第2コンテンツノード300−2からのオリジナルの第1セグメント401及び更新された第2セグメント402Aを含む入コマンド400−2Aに応答して、レポジトリー600からのセグメントにアクセスする記憶及び転送ロジック210を示す。第2セグメント402は、コンテンツノード300−2においてeメールアタッチメントのようなセグメントをユーザが変更した結果として更新されている。記憶及び転送ロジック210は、コンテンツノード300−2からの入コマンド400−2Aを処理するとき、以前にペイロード451に関連され且つ現在はペイロード451Aに関連されたセグメントがレポジトリー600に保持されているかどうか決定する。記憶及び転送ロジック210は、第3セグメント403がペイロード451に以前に関連されていたことを決定し、そしてレポジトリー600からの第3セグメント403を、オリジナルの第1セグメント401及び更新された第2セグメント402Aを含むペイロード451Aと合流させて、全データ構造体を生成する。コンテンツノード300−1が、各セグメント401ないし403に保持されたコンテンツを処理するように構成される場合には、記憶及び転送ロジック210は、第1セグメント401、更新された第2セグメント402A、及び再アタッチされた第3セグメント403を含むペイロード441Aを準備する。
第2の方法によれば、記憶及び転送ロジック210は、ペイロード441からの不適合の又は望ましくないセグメントを変更することにより、制限された能力のコンテンツノード300−2を受け容れることができる。記憶及び転送ロジック210は、このセグメントを、それが将来必要となる場合に、レポジトリー600にセーブすることができる。この第2の方法は、第1の方法と同様であるが、第2の方法では、第1の方法で剥離されたセグメントが変更されてコンテンツノードへ送信される。将来、制限された能力のコンテンツノードが、変更されたセグメントをコマンドにおいて返送する場合には、記憶及び転送ロジック210は、この返送されるセグメントを、レポジトリー600からのオリジナルセグメントに置き換えた後に、そのコマンドを他のコンテンツノードへ転送する。
例えば、コマンド400−1が、ファーストネームストリング及びセカンドネームストリングを含む第1コンテンツノード300−1から到着するが、第2のコンテンツノード300−2が単一ストリングネームしか取り扱いできない場合は、記憶及び転送ロジック210が、2ストリング構造体を、連結されたファーストネーム及びラストネームを単一ストリング構造体に含む単一ストリング構造体に置き換えることができる。記憶及び転送ロジック210は、ファーストネームストリング及びセカンドネームストリングを含む構造体をレポジトリー600に記憶することができる。そのコンテンツが後で第2のコンテンツノード300−2から送信され(変更又は非変更形態で)そして行先コンテンツノードが2ストリングネームを取り扱うことができる場合には、記憶及び転送ロジック210は、第2コンテンツノード300−2からの入コマンドにおける連結ストリングを、レポジトリー600からの2ストリング構造体のコピーに置き換えることができる。このようにして、制限された能力のコンテンツノード300−2からの欠落コンテンツは、他のコンテンツノードへ転送される前に、回復することができる。
レポジトリー600を使用して、剥離又は変更されたコンテンツのオリジナルセグメントを保存するのではなく、記憶及び転送ロジック210は、オリジナルセグメントを、そのソースコンテンツノードから、又はソースコンテンツノードにより参照される記憶装置から、検索することができる。
第3の方法によれば、セグメントは、レポジトリーにセーブされない。記憶及び転送ロジック210は、不適合の又は望ましくないセグメントをコマンドペイロードから剥離又は変更することにより、制限された能力のコンテンツノードを受け容れることができる。しかしながら、この方法では、剥離又は変更されたセグメントのコピーがレポジトリーに保存されない。これらのセグメントが後で必要とされる場合には、記憶及び転送ロジック210は、オリジナルの入コマンドのソースからセグメントを要求しそして受け取ることができる。この方法の一例を、図8A及び8Bを参照して以下に述べる。
図8Aは、本発明の実施形態により例示的なeメールのセグメントを剥離するプロセスを示す。入って来るeメール900は、インターネットからSMTP接続を経て第1コンテンツノード300−1に到達する。eメール900は、ペイロード901を備え、このペイロードは、入って来るeメールのヘッダ及び本体401を含み、これは、日付及び時刻、送信者が入力した応答eメールアドレス及びテキストのような情報を含む。又、ペイロード901は、JPEGファイルのような映像ファイルアタッチメント402、及びPowerPointプレゼンテーションのようなプレゼンテーションファイルアタッチメント403も含む。コンテンツノード300−1で実行されるアプリケーションは、アタッチメント402及び403をリンク402A及び403Aへ変換し、これは、ケーパブル・コンテンツノードがアタッチメントへのハイパーリンクを経てアタッチメントにアクセスするのを許す。コンテンツノード300−1は、次いで、IMAPのようなeメールプロトコルによって1つ以上のメッセージ910を生成し、これは、ペイロード911を形成し、このペイロードは、入って来るeメールのヘッダ及び本体401と、映像ファイルへのリンク402Aと、プレゼンテーションファイルアタッチメントへのリンク403Aとを含む。コンテンツノード300−1は、メッセージ910をコンテンツルーター200内のプロトコルインターフェイスロジック260へ送信する。
プロトコルインターフェイスロジック260は、1つ以上のメッセージ910を、ペイロード421を含むコマンド420へ変換し、ペイロード421は、入って来るeメールのヘッダ及び本体401と、映像ファイルへのリンク402Aと、ペイロード911から抽出されるプレゼンテーションファイルアタッチメントへのリンク403Aとを含む。プロトコルインターフェイスロジック260は、異なるプロトコルを使用するコンテンツノードがコンテンツルーター200と共に機能するのを許す。記憶及び転送ロジック210は、プロトコルインターフェイスロジック260から入コマンド420を受け取り、そしてコンテンツノード300−2のための出コマンド430を準備する。この例では、コンテンツノード300−2は、プレゼンテーションファイルアタッチメント403又はそのリンク402Aを処理することができない。このコンテンツノード300−2の場合に、記憶及び転送ロジック210は、プレゼンテーションファイルアタッチメントへのリンク403Aを剥離するように構成される。記憶及び転送ロジック210は、ペイロード431を含む出コマンド430を準備し、ペイロード431は、入って来るeメールのヘッダ及び本体401と、映像ファイルへのリンク402Aを含むが、プレゼンテーションファイルアタッチメントへのリンク403Aは含まない。このケースでは、記憶及び転送ロジック210は、リンク403Aのコピーを、後で使用するためにレポジトリー600に保存することはしない。
コンテンツルーター200が、剥離されたeメールをコンテンツノード300−2へ転送した後に、コンテンツノード300−2のユーザは、そのeメールを外部インターネットアドレスに転送することができる。プロトコルインターフェイスロジック260は、転送されたeメールを受け取ると、そのeメールが、オリジナルeメールに含まれた1つ以上のセグメントを欠落していると決定する。プロトコルインターフェイスロジック260は、完全なeメールを含むコンテンツノード300−1のインボックスから欠落セグメントを要求することができる。オリジナルセグメントを受け取ると、プロトコルインターフェイスロジック260は、セグメントを転送されたeメールへ復帰させることができる。次いで、プロトコルインターフェイスロジック260は、コンテンツノード300−1のインボックスに関連したeメールサーバーを使用して、eメールを外部インターネットアドレスへ転送することができる。
図8Bは、本発明の実施形態により、ユーザが後でeメールを転送する場合に、剥離されたセグメントをeメールに復帰させるプロセスを示す。ユーザは、コンテンツノード300−2で以前に受け取られたeメールを転送することができる。例えば、コンテンツノード300−2は、ペイロード441を含むコマンド440を送信し、このペイロード441は、新たに生成されて出て行くeメールのヘッダ及び本体401Bと、入って来るオリジナルeメールのヘッダ及び本体401と、映像ファイルへのリンク402Aとを含む。この入コマンド440は、プレゼンテーションファイルアタッチメント403も、そのリンク403Aも含んでいない。この入コマンド440を受け取るのに応答して、記憶及び転送ロジック210は、ペイロード441からのセグメントを含むペイロード451を備えた出コマンド450を発生する。
プロトコルインターフェイスロジック260は、コマンド450を受け取り、そしてそれが転送されたeメールであることを検出する。プロトコルインターフェイスロジック260は、第1コンテンツノード300−1から非縮約eメールを要求することにより剥離されたセグメントを回復するよう試みることができる。或いは又、プロトコルインターフェイスロジック260は、剥離されたセグメント402及び403だけを要求してもよい。それに応答して、第1コンテンツノード300−1は、剥離されたセグメントを、例えば、1つ以上のIMAPメッセージ960において、プロトコルインターフェイスロジック260へ送信し、メッセージ960は、映像ファイルアタッチメント402及びプレゼンテーションファイルアタッチメント403を含むペイロード961を形成する。
プロトコルインターフェイスロジック260は、ペイロード971を含むeメールを準備し、このペイロード971は、出て行くeメールのヘッダ及び本体401Bと、入って来るeメールのヘッダ及び本体401と、オリジナルの映像ファイルアタッチメント402と、オリジナルのプレゼンテーションファイルアタッチメント403とを含む。プロトコルインターフェイスロジック260は、例えば、ペイロード971を含むSMTPメッセージ970において、コンテンツノード300−1に関連したeメールサーバー300−1Aへeメールを転送することができる。
eメールサーバー300−1Aは、SMTPメッセージ970に、外部インターネットアドレスへ出て行くeメール980で応答する。出て行くeメール980は、プロトコルインターフェイスロジック260により以前に剥離又は変更された到来eメールの各復帰セグメントを含む。又、出て行くeメール980は、コンテンツノード300−2において生成された、出て行くeメールのヘッダ及び本体401Bも含む。その結果、出て行くeメールは、ユーザがeメールを転送したところのコンテンツノード300−2が能力に制限があり且つアタッチメントを受け取っていないとしても、オリジナルのアタッチメント402及び403を含むeメールから転送されたものであると思われる。
又、レポジトリー600は、接続されたコンテンツノード間をルーティングされた情報のインベントリーを保持するのにも使用できる。或いは又、インベントリーは、個別のメモリに保持されてもよい。インベントリーは、コンテンツの特性、及び/又はコンテンツルーターへ及びコンテンツルーターからルーティングされる1つ以上のコンテンツタイプのメタデータの特性を含むことができる。又、インベントリーは、1つ以上の接続されたコンテンツノード300上に存在するルーティングされたコンテンツの特性を要約するのに使用される。又、インベントリーは、アイテムカウントをプレビューするのにも使用できる。例えば、特定のコンテンツノード300に対して1つ以上のルーティングパラメータが変更された場合には、コンテンツルーター200は、特定のコンテンツノード300を、更新されたルーティングパラメータとインライン状態に入れるために、1つ以上の他のコンテンツノード300からフェッチする必要のある特定のコンテンツタイプの付加的なアイテムの数を推定し又は決定することができる。特性を使用して、インベントリーにおける特性に基づく条件内に入るコンテンツノードに存在するコンテンツタイプの概略数を計算することができる。インベントリーにおけるエントリーは、コンテンツノードに存在する特定のコンテンツタイプの数を要約するようにカウントすることができる。ある実施形態では、インベントリーを衝突チェック中に使用して二重コマンドを識別することができる。
eメールコンテンツタイプについては、コンテンツルーター200は、コンテンツルーターを経てルーティングされ且つコンテンツノードに存在する各eメールメッセージからインベントリーに情報を収集することができる。例えば、新たなeメールメッセージを追加する各コマンドに対して、コンテンツルーター200は、eメールの存在や、コンテンツノードによりeメールが受け取られた日付のようなeメールの特性をセーブすることができる。インベントリーにおけるエントリーは、コンテンツノードに存在するeメールメッセージの数を要約するためにカウントすることができる。各eメールの日付は、コンテンツルーターを経てルーティングされた複数のeメールメッセージに対してインベントリーにおける日付特性に基づく指定の日付範囲内に入るコンテンツノードに存在するeメールメッセージの数を要約するのに使用される。eメールがコンテンツノードに存在しなければならない日数のようなルーティングパラメータをユーザが変更した場合にコンテンツノードが含むeメールメッセージの数をユーザが知りたい場合には、コンテンツルーター200は、特定の日付範囲内に入るインベントリーにおけるeメールの数を計算することができる。
又、インベントリーは、コンテンツルーター200を通してコンテンツノード300へ以前にルーティングされたコンテンツノード300からのeメールメッセージを除去するためにコンテンツルーター200のスケジューラーにより使用することもできる。コンテンツルーター200のスケジューラーは、コンテンツルーター200を通して以前にルーティングされたeメールメッセージのインベントリーにおける日付を周期的に比較することができる。例えば、スケジューラーは、これらの日付を、ルーティングされたeメールをコンテンツノード上に維持するためにユーザが選択した日数を指示するルーティングパラメータと比較することができる。ルーティングパラメータは、移動電話のようなユーザ装置に最後の3日からeメールを保持するものでよい。新たなeメールメッセージは、コンテンツルーター200に到着したときにユーザ装置へ転送され、そして各新たなeメールのインベントリーが保持される。eメールが1つ以上のコンテンツノードにおけるユーザのアクションにより削除されるときに、コンテンツノードは、eメール削除コマンドをコンテンツルーターへ送信し、それに応じて、インベントリーが更新される。スケジューラーは、インベントリーにおけるeメールの日付を、ある日数だけユーザ装置にeメールを保持するだけでよいことを指示するルーティングパラメータと周期的に(例えば、毎晩)比較することができる。ルーティングパラメータが許すものより古いeメールをユーザ装置が含むことをインベントリーが指示する場合には、コンテンツルーターのスケジューラーは、ルーティングパラメータにより許されたものより古いユーザ装置上の各eメールを削除するためのコマンドを発生することができる。例えば、ルーティングパラメータは、ユーザ装置にeメールの2日経歴を保持することを指示する。毎晩、スケジューラーは、2日より古いeメールをユーザ装置から削除するためのコマンドを記憶する。更に、インベントリーは、ルーティングパラメータが変更された場合にコンテンツノードから除去されるか又はコンテンツノードに追加される必要のあるeメールの数をユーザに指示するのにも使用される。例えば、eメールを2日保持すると現在指示されているコンテンツノードのルーティングパラメータが、eメールを1日保持するように変更された場合には、コンテンツルーター200は、コンテンツノードに関連したインベントリーデータから、特定数のeメールメッセージをコンテンツノードから削除する必要があることを決定する。同様に、ルーティングパラメータが特定のコンテンツノード300に対して2日から3日へ変更された場合には、コンテンツルーター200は、特定のコンテンツノード300及び別の関連コンテンツノードに関係したインベントリーデータから、関連コンテンツノードから特定のコンテンツノードへルーティングする必要のあるeメールメッセージの数を決定することができる。
同様に、インベントリーは、コンテンツノードにおける1つ以上のコンテンツタイプの数を制限するようにコンテンツルーターにより使用される。コンテンツルーターは、コンテンツタイプの各追加コマンドに対応する削除コマンドを送信し、コンテンツノードは、あるタイプの所定数のコンテンツを既に保持している。或いは又、スケジューラーは、コンテンツノードが、コンテンツタイプごとに所定スレッシュホールド数を越える数のコンテンツアイテムを有するかどうか周期的に決定するように使用されてもよい。所定スレッシュホールド数は、ユーザにより構成されてもよいし、或いは又、コンテンツノードタイプに対するデフォールト値であってもよい。例えば、移動電話のようなコンテンツノードは、500以上のeメールメッセージを有する。又、ユーザアカウントのようなコンテンツノードは、より大きな所定スレッシュホールド数、例えば、5000を有する。コンテンツノードに追加される各新たなeメールメッセージに対して、コンテンツルーターは、コンテンツノードから最も古いeメールメッセージを除去するための対応削除コマンドを送信することができる。或いは又、スケジューラーは、コンテンツノードが、所定数より多くの特定コンテンツタイプのアイテムを有するかどうか周期的に決定し、次いで、古くなったコンテンツを除去するために1つ以上の削除コマンドを送信してもよい。例えば、所定数は、500でよく、これは、特定のユーザ装置が500個までのeメールを有することを指示する。ユーザ装置が500個を越えるeメールを有することをコンテンツルーターが決定する場合には、eメールメッセージを除去するために500を越える数の削除コマンドを送信する。ある実施形態では、コンテンツルーターは、所定スレッシュホールド数を越える最も古いeメールメッセージを除去するために削除コマンドを送信する。コンテンツノードをプロビジョニングするときには、インベントリーを使用して、最も新しい500個のeメールを他のコンテンツノードから要求し、プロビジョニングされたコンテンツノードへ転送することができる。新たなeメールが到着すると、5000のような所定の限界に達するまでそれらがコンテンツノードに追加される。限界に到達すると、コンテンツルーターは、最も古いeメールメッセージをコンテンツノードから除去するために削除コマンドを発生する。
事象についても同様に、コンテンツノードは、コンテンツノードにおける事象の最大数に対して所定のスレッシュホールド数を有する。コンテンツノードに追加される各新たな事象に対して、コンテンツルーターは、所定のスレッシュホールド数を越えた場合に最も古い事象を除去するために削除コマンドを送信する。或いは又、コンテンツルーターは、インベントリーを周期的に調べて、多数の事象−コンテンツタイプがコンテンツノードに存在することを決定してもよい。これは、次いで、コンテンツノードから最も古い事象を削除するために1つ以上の削除コマンドを送信する。
タスクについても同様に、コンテンツノードは、コンテンツノードにおけるタスクの最大数に対して所定のスレッシュホールド数を有する。コンテンツノードに追加される各新たなタスクに対して、コンテンツルーターは、所定のスレッシュホールド数を越えた場合に最も古いタスクを除去するために削除コマンドを送信する。或いは又、コンテンツルーターは、インベントリーを周期的に調べて、多数のタスク−コンテンツタイプがコンテンツノードに存在することを決定してもよい。コンテンツルーターは、次いで、コンテンツノードから最も古いタスクを削除するために1つ以上の削除コマンドを送信する。或いは又、コンテンツルーターは、所定のスレッシュホールド数を越えない限り完了したタスクを削除するために1つ以上の削除コマンドを送信してもよい。
更に、コンテンツルーター200は、新たなeメールのチェック和を計算しそしてセーブすることができる。チェック和は、新たなeメールを追加するためのコマンドがコマンドをコマンドメモリに複写したか、又はコマンドがコンテンツルーターを既に通過したかを決定するときに使用される。
図9Aないし9Cは、本発明の実施形態による記憶及び転送ロジック210の構造、及び処理ロジック250とコンテンツノード300−1ないし300−nとの間のデータ経路を示す。
図9Aは、コマンドメモリ220及び処理ロジック250を有する記憶及び転送ロジック210を示す。処理ロジック250は、接続データセットコンフィギュレーション500及びコマンドメモリ220に結合される。又、コマンドメモリ220は、コンテンツノード300−1ないし300−nにも接続されて示されている。コマンドメモリ220は、各コンテンツノード300に対して入メモリ230及び出メモリ240の両方を含むように構成される。コンテンツノード300は、入メモリ230に1つ以上のコマンドをプッシュ(プット)することができる。又、コンテンツノード300は、出メモリ240から1つ以上のコマンドをプル(ゲット)することもできる。
当業者であれば、入メモリ230及び出メモリ240は、データベースを使用して形成されることが明らかであろう。例えば、コマンドメモリ220は、コマンドを含むデータベースに構成される。データベースの各コマンドは、属性に関連付けされる。例えば、データベースのコマンドに関連された属性は、コマンドを特定のコンテンツノード300に対する入コマンド又は出コマンドとして識別することができる。
図9Bは、本発明の実施形態による単一のコンテンツノード300に対する記憶及び転送ロジック210内のコマンドメモリの構造を示す。コマンドメモリ220は、入メモリ230及び出メモリ240を含む。
ある実施形態では、入メモリ230は、入待ち行列231、及びそれに対応するイン・トランシット待ち行列232を含む。入待ち行列231は、コンテンツノード300から記憶及び転送ロジック210により受け取られたが処理ロジック250により応答されていない入コマンドを保持する。それに対応する入イン・トランシット待ち行列232は、処理ロジック250が応答プロセスにあるところの入コマンドを保持する。入コマンドが処理ロジック250により首尾良く応答されると、処理ロジック250は、イン・トランシット待ち行列232からの入コマンドを破棄する。処理ロジック250が入コマンドを首尾良く処理しない場合、例えば、必要なリソースが利用できない場合には、処理ロジック250は、イン・トランシット待ち行列232からの入コマンドを入待ち行列231へ返送する。
ある実施形態では、出メモリ240は、出待ち行列241、及びそれに対応するイン・トランシット待ち行列242を含む。出待ち行列241は、(入コマンドに応答して)処理ロジック250によって発生された出コマンドを保持するが、処理ロジック250は、コンテンツノード300への出コマンドの送信を開始しない。それに対応する出イン・トランシット待ち行列242は、処理ロジック250がコンテンツノード300への送信を開始した出コマンドを保持するが、コンテンツノード300が出コマンドを受け取ったという確認又は保証は、処理ロジック250により受け取られていない。
この場合も、当業者に明らかなように、データベースを使用してコマンドを保持することができると共に、各コマンドに関連した1つ以上の属性は、コマンドが、入待ち行列231にあるか、それに対応する入イン・トランシット待ち行列232にあるか、出待ち行列241にあるか、又はそれに対応する出イン・トランシット待ち行列242にあるかを指示する。
図9Cは、ソースコンテンツノード300−1からの入コマンドを保持するのに使用される入メモリ230−1と、行先コンテンツノード300−2への出コマンドを保持するのに使用される出メモリ240−2とを示している。
ソースコンテンツノード300−1が記憶及び転送ロジック210に結合される期間中に、ソースコンテンツノード300−1は、コマンド又はコマンドのセットをコンテンツルーター200へ送信(プット)する。処理ロジック250は、入コマンド又は入コマンドのセットを、ソースコンテンツノード300−1に関連した入待ち行列231−1に入れる。
その後のある時点で、処理ロジック250は、入待ち行列231−1に保持された入コマンドに応答することができる。入待ち行列231−1の入コマンドに対する応答の一部分として、処理ロジック250は、入コマンドを入待ち行列231−1から入メモリ230−1のイン・トランシット待ち行列232−1へ移動する。更に、処理ロジック250は、出コマンドを発生できるところの行先コンテンツノード300−2を選択する。一般に、処理ロジック250は、多数の行先コンテンツノードを含むか、単一の行先コンテンツノードを含むか、又は行先コンテンツノードを含まないように、行先コンテンツノードのセットを選択する。次いで、処理ロジック250は、発生された出コマンドを行先コンテンツノードの出待ち行列241−2に入れる。
処理ロジック250は、出コマンドを首尾良く準備して出待ち行列241−2に書き込んだ後に、入メモリ230−1におけるイン・トランシット待ち行列232−1から入コマンドを除去することができる。処理ロジック250は、出コマンドの準備又は書き込みのいずれかが不首尾である場合に、イン・トランシット待ち行列232−1から入待ち行列231−1へ入コマンドを戻すことができる。このようにして、入コマンドは、首尾良く応答されるか、又は入コマンドの処理を将来試みるために入待ち行列231−1に戻される。
処理ロジック250は、出コマンドが出待ち行列241−1に保留中であることをコンテンツノード300に通知するために、コンテンツノード300−2に通知を送信する。その後のある時点で、行先コンテンツノード300−2は、出待ち行列241−2から出コマンドを要求(プル)する。或いは又、コンテンツルーター200は、行先コンテンツノード300−2に出コマンドをプッシュしてもよい。行先コンテンツノード300−2へ出コマンドを送信するプロセスが開始された後であって、出コマンドが首尾良く送信及び/又は受信されたことを処理ロジック250が決定する前に、処理ロジック250は、出待ち行列241−2から、行先コンテンツノード300−2に関連したイン・トランシット待ち行列242−2へ出コマンドを移動することができる。
送信及び/又は受信の成功は、処理ロジック250により内部で決定されるか、出コマンドを除去するためのインストラクションの受信により決定されるか、或いは出コマンドが行先コンテンツノード300−2により受信されたという充分な保証を与える確認(ACK)又は同等の通知の受信により決定される。確認の通信は、行先コンテンツノード300−2により開始されるか、又は図15B、15C、16B及び16Cを参照して以下に述べるように、行先コンテンツノード300−2のプロキシーとして働く仲介者により開始される。
否定確認(NACK)を受け取るか、エラーが検出されるか、時間切れが生じる、等々の場合には、イン・トランシット待ち行列242−2に存在する出コマンドが出待ち行列241−2へ戻される。その結果、欠陥、例えば、一時的な欠陥が決定された場合には、処理ロジック250は、出待ち行列241−2から行先コンテンツノード300−2へ出コマンドを再送信するための将来の機会をもつことができる。処理ロジック250は、欠陥が永久的であることを決定した場合には、コマンドを破棄して、イン・トランシット待ち行列232、242へ/からコマンドを転送する潜在的なエンドレスループを回避することができる。
このようにして、出コマンドが、行先コンテンツノード300−2により受信されたか、或いは行先コンテンツノード300−2への送信を将来試みるために出待ち行列241−2へ戻されたことが充分に確認される。
入待ち行列231又は出待ち行列241と、それに対応するイン・トランシット待ち行列232、242との間でコマンドを移動する動作は、コマンドが適切に応答されるか又は送信された後でなければそれが破棄されないことを保証する上で助けとなる。更に、入待ち行列231又は出待ち行列241と、イン・トランシット待ち行列232、242との間でコマンドを移動するプロセスは、ある割り当てられたバッファから別のバッファへのデータの実際の移動と共に行なわれる。或いは又、待ち行列間で移動するプロセスは、実質上、データベースにおけるフラグ又は属性の状態を変更することにより行なわれる。更に、エラー状態が生じた後に、コマンドが、例えば、イン・トランシット待ち行列232又は242から入待ち行列231又は出待ち行列241のいずれかに入るたびに、処理ロジック250は、以下に述べるように、衝突チェックを遂行する。
図10Aないし10Dは、本発明の実施形態によりコンテンツノード300及びコンテンツルーター200の観点からプット・ゲット・Ack(Put-Get-Ack)手順を示す。この手順の目標は、入待ち行列231及び出待ち行列241内でのコマンドの衝突を回避することである。入待ち行列231及び出待ち行列241内での衝突を回避することにより、コンテンツノード300は、衝突を回避する負担から解放される。
プット・ゲット・Ack手順によれば、コンテンツノード300は、最初に、コンテンツノード300に保留中の全てのコマンドをコンテンツルーター200へ送信(プット)する。コンテンツルーター200は、入コマンドと、入待ち行列231又は出待ち行列241のいずれかに既にあるコマンドとの間の衝突を回避する。コンテンツノード300は、それが全てのコマンドをコンテンツルーター200へ送信した後に、出待ち行列241からコマンドを受信(ゲット)する。最終的に、確認(ACK)がコンテンツルーター200により受信され、コンテンツノード300が出コマンドを受信したことを保証する。
図10Aは、コンテンツルーター200とコンテンツノード300との間のプット・ゲット・Ack手順をコンテンツノード300の観点から示す。1100において、ユーザ装置310のようなコンテンツノード300は、コンテンツルーター200にコマンドをプットするか又はそこからコマンドをゲットする必要が生じるか又はそれが可能になるまで待機する。
1101において、コンテンツノード300は、コマンドが出待ち行列241に保留中であるという通知をコンテンツルーター200から受信し、及び/又はコンテンツノード300は、コンテンツルーター200へ送信すべき1つ以上のコマンドを有することを決定する。
1102において、コンテンツノード300は、最初に、コンテンツルーター200へ送信すべきコマンドがあるかどうか決定する。コンテンツノード300がコマンドを受信する前にコマンドを送信することを要求することにより、衝突の回避は、コンテンツノード300によるのではなく、コンテンツルーター200において取り扱われる。
1103において、コンテンツノード300は、コンテンツノード300からコンテンツルーター200へのPUT(プット)コマンドの要求を送信する。コンテンツノード300は、コンテンツルーター200へプットするための1つ以上のコマンドを有する場合に、コマンドを含むペイロードを各々含んだ1つ以上の個々の要求のシーケンスを送信する。或いは又、コマンドのバッチを含むペイロードを各々含んだ1つ以上の要求のシーケンスを送信してもよい。
1104において、コンテンツノード300は、コマンドがコンテンツルーター200により受信されたという確認を受け取る。次いで、コンテンツノード300は、1102において再びチェックを行い、コンテンツルーター200へプットすべきコマンドが更にあるかどうか決定する。
1105、コンテンツノード300が、コンテンツルーター200へプットすべき保留中コマンドをもたない場合には、コンテンツノード300は、ゲットすべきコマンドがあるかどうか決定するためのチェックを行う。ある実施形態では、コンテンツルーター200は、1104において受け取られた確認に指示を含ませる。この指示は、出待ち行列241において保留中のコマンドが待機していることをコンテンツノード300に通知する。コンテンツルーター200にコマンドがプッシュされない場合には、コンテンツノード300は、先に受け取った通知に基づいてゲットすべき保留中コマンドが1つ以上あることを決定する。
1106において、コンテンツルーター200からゲットすべきコマンドがある場合には、コンテンツノード300は、コンテンツルーター200へ要求を送信する。1107において、コンテンツノード300は、1つ以上のコマンドを含むペイロードを有する応答を受け取る。1108において、コンテンツノード300は、コマンドを処理し、これは、コマンドを実行することを含んでもよいし、又は将来の実行のためにコマンドを単にセーブするだけでもよい。1109において、コンテンツノード300は、コマンドが受け取られて処理されたという確認(ACK)をコンテンツルーター200へ送信する。1110において、コンテンツノード300は、確認(ACK)がコンテンツルーター200により首尾良く受け取られたという応答を待機する。
次いで、再び、1105において、コンテンツノード300は、ゲットすべきコマンドが更にあるかどうか調べるためのチェックを行う。コンテンツノード300は、1110において受け取られた最後に受信した応答を検査することにより、コンテンツルーター200が付加的なコマンドを有するかどうか決定する。ある実施形態では、応答は、出待ち行列241において1つ以上の付加的なコマンドが保留中であるという指示を含む。ある実施形態では、応答は、出待ち行列241において保留中である1つ以上の付加的なコマンドを含む。出待ち行列241において1つ以上の付加的なコマンドが保留中であるという指示を応答が含む場合には、コンテンツノード300は、1106において、コマンドを要求しそして処理することにより動作を続ける。応答が1つ以上の付加的なコマンドを含む場合には、コンテンツノード300は、1108において、コマンドを処理することにより動作を続ける。
図10Bは、コンテンツルーター200がコンテンツノード300によりコンテンツルーター200へプットすべき新たな入コマンドを受信するという観点からコンテンツルーター200とコンテンツノード300との間のプット・ゲット・Ack手順を示す。1200において、コンテンツノード300は、コンテンツルーター200へ新たなコマンドを送信し、ここで、新たなコマンドは、入待ち行列231を行先とする。
1201において、処理ロジック250は、新たなコマンドと、入待ち行列231又は出待ち行列241のいずれかに存在するコマンドとの間に衝突が存在するかどうか決定する。1209において、新たなコマンドと既存のコマンドとの間に衝突が存在する場合には、処理ロジック250は、新たなコマンドを破棄すべきかどうか、新たなコマンドを既存の衝突するコマンドと集積化すべきかどうか、既存の衝突するコマンドを待ち行列231又は241から除去すべきかどうか、及び/又は新たなコマンドを入待ち行列231へ移動すべきかどうかを決定することにより、衝突を回避する。新たなコマンドと既存のコマンドとの間の衝突を検出して回避するプロセスは、図10Dを参照して以下で更に述べる。1203において、衝突が検出されない場合には、処理ロジック250は、コマンドを入待ち行列231へ移動させる。
将来のある時期に、処理ロジック250は、1204に示すように、入待ち行列231におけるコマンドの処理を開始する。1205において、処理が開始されると、処理ロジック250は、コマンドを入待ち行列231からイン・トランシット待ち行列232へ移動させる。1206において、処理ロジック250は、コマンドが処理されたという確認を受け取るか、コマンドが処理されなかったという否定確認を受け取るか、又は時間切れのような欠陥にために、コマンドを再び処理しなければならないことを決定する。
1207において、処理ロジック250は、確認を受け取る。それ故、処理ロジック250は、コマンドをイン・トランシット待ち行列232から除去し破棄する。或いは又、1208において、適時に確認が受け取られない場合には、処理ロジック250は、1204において再処理するために、イン・トランシット待ち行列232から入待ち行列231へコマンドを返送する準備をする。この点において、移動されるべきコマンドは、新たなコマンドとして処理される。1201Aにおいて、処理ロジック250は、移動されるべきコマンドと、コンテンツノード300に対して入待ち行列231及び出待ち行列241にあるコマンドとの間の衝突チェックを遂行する。次いで、1202を参照して上述したようにプロセスが続けられる。
図10Cは、コンテンツルーター200が、コンテンツルーター200からゲットすべきコンテンツノード300のための新たな出コマンドを発生するという観点から、コンテンツルーター200とコンテンツノード300との間のプット・ゲット・Ack手順を示す。1210において、コンテンツルーター200は、同じユーザに関連した異なる接続コンテンツノードからの入コマンドに応答して、新たな出コマンドを発生することができる。
1211において、処理ロジック250は、新たなコマンドと、入待ち行列231又は出待ち行列241のいずれかに存在するコマンドとの間に衝突が存在するかどうか決定する。1219において、新たなコマンドと既存のコマンドとの間に衝突が存在する場合には、処理ロジック250は、新たなコマンドを破棄すべきかどうか、新たなコマンドを既存の衝突するコマンドと集積化すべきかどうか、既存の衝突するコマンドを待ち行列231又は241から除去すべきかどうか、及び/又は新たなコマンドを出待ち行列241へ移動すべきかどうかを決定することにより、衝突を回避する。1213において、衝突が検出されない場合には、処理ロジック250は、コマンドを出待ち行列241へ移動させる。1214において、処理ロジック250は、出待ち行列241において新たなコマンドが待機していることを指示する通知をコンテンツノード300へ送信する。
将来のある時期に、処理ロジック250は、出待ち行列241におけるコマンドの処理を開始する。1215において、処理が開始されると、処理ロジック250は、出待ち行列241からコンテンツノード300へコマンドを送信する。又、処理ロジック250は、出待ち行列241からイン・トランシット待ち行列242へコマンドを移動させる。1216において、処理ロジック250は、コマンドがコンテンツノード300により処理されたことを指示するコンテンツノード300からの確認を待機する。処理ロジック250が、コマンドが処理されなかったという否定確認を受け取るか、或いは時間切れのような欠陥のために、コマンドを再び処理しなければならないと決定する場合には、欠陥が生じる。
1217において、処理ロジック250は、確認を受け取る。それ故、処理ロジック250は、イン・トランシット待ち行列242からコマンドを除去し破棄する。或いは又、1218において、適時に確認が受け取られない場合には、処理ロジック250は、再処理のために、イン・トランシット待ち行列242から出待ち行列241へコマンドを返送する準備をする。この点において、移動されるべきコマンドは、新たなコマンドとして処理される。1211Aにおいて、処理ロジック250は、移動されるべきコマンドと、コンテンツノード300に対して入待ち行列231及び出待ち行列241にあるコマンドとの間の衝突チェックを遂行する。次いで、1212を参照して上述したようにプロセスが続けられる。
図10Dは、新たなコマンド400と、入待ち行列231及び出待ち行列241における既存のコマンド401−407との間の衝突を検出する構造を示す。新たなコマンド400は、コンテンツノード300から受け取られるか、又は処理ロジック250により発生される。コンテンツノード300からの新たなコマンド400は、入待ち行列231を行先とする。処理ロジック250により発生される新たなコマンド400は、出待ち行列241を行先とする。新たなコマンド400が入待ち行列231又は出待ち行列241のいずれかにセーブされる前に、処理ロジック250は、衝突が生じるかどうか決定する。
衝突が生じるかどうか決定するために、処理ロジック250は、新たなコマンド400を、入待ち行列231及び/又は出待ち行列241における既存のコマンド401−407と比較する。新たなコマンド400と、待ち行列に入れられた既存のコマンドが、関連するコンテンツ又はメタデータを含む場合には、処理ロジック250は、新たなコマンド400とこの既存のコマンドとの間の衝突を回避しなければならないと決定する。
検出された衝突を回避するため、処理ロジック250は、一方のコマンドが他方に取って代わるかどうか決定する。既存のコマンドが新たなコマンドに取って代わる場合には、処理ロジック250は、新たなコマンド400を破棄する。新たなコマンドが既存のコマンドに取って代わる場合には、処理ロジック250は、適当な待ち行列231又は241において既存のコマンドを新たなコマンド400に置き換えるか、或いは待ち行列231又は241から既存のコマンドを除去しそして新たなコマンド400を適当な待ち行列231又は241の異なる位置で新たなエントリーとして追加する。
或いは又、処理ロジック250は、新たなコマンド400と、この新たなコマンド400に衝突するコマンドを、単一のコマンドへ集積化すべきであることを決定してもよい。これらコマンドが集積化される場合には、処理ロジック250は、既存のコマンドを集積化されたコマンドに置き換えてもよいし、或いは待ち行列231又は241から既存のコマンドを除去し、そして集積化されたコマンドを適当な待ち行列231又は241に新たなエントリーとして追加してもよい。
図11は、本発明の実施形態による接続データセットコンフィギュレーション800の構造を示す。接続データセットコンフィギュレーションデータベース800は、コンテンツルーター200に接続された各ユーザに対してハイアラーキーコンフィギュレーション、例えば、510ないし570を含む。第1ユーザは、コンフィギュレーション及びメンテナンスツールを使用して接続データセットコンフィギュレーション510を定義する。コンフィギュレーション及びメンテナンスツールは、例えば、SQLデータベースコールを経てデータベース800へアクセスできるウェブベースのグラフィックユーザインターフェイス(GUI)でよい。
各ユーザコンフィギュレーション510ないし570は、ユーザ装置511及びユーザアカウント516に対するコンフィギュレーションを含む。ユーザ装置511に対する各コンフィギュレーションは、各ユーザ装置512、513に対するコンフィギュレーションのセットを含む。ユーザアカウント516に対する各コンフィギュレーションは、各ユーザアカウント517、518に対するコンフィギュレーションのセットを含む。各ユーザ装置及びアカウントコンフィギュレーション512、513、517及び518は、各構成されたコンテンツタイプに対するコンフィギュレーションのセットを含む。
当業者に明らかなように、接続データセットコンフィギュレーションデータベース800は、多数の考えられるハイアラーキー構造の1つを使用して構成される。例えば、ユーザ装置コンフィギュレーション511及びユーザアカウントコンフィギュレーション516は、単一構造へと結合することができる。ユーザ装置又はユーザアカウントとコンテンツタイプとの間のハイアラーキー構造は、ユーザ装置又はユーザアカウントコンフィギュレーションが多数のコンテンツタイプに対するコンフィギュレーションを含むのではなく、コンテンツタイプコンフィギュレーションが多数のユーザ装置及び/又はユーザアカウントに対するコンフィギュレーションを含むように、逆転してもよい。
図示されたように、ユーザ装置コンフィギュレーション513は、ユーザ装置によって処理される各コンテンツタイプに対するコンフィギュレーションを含む。例えば、ユーザ装置Bが、連絡先、事象、実行すべきアイテム(タスク)、eメール、及びライブラリーアイテムを処理できる場合には、ユーザ装置Bのコンフィギュレーション513は、各コンフィギュレーション513−1、513−2、513−3、513−4及び513−5を含む。ユーザの接続コンテンツノードの各コンテンツタイプに対してデータベースIDが割り当てられる。それ故、データベースIDは、特定のユーザに対する特定の接続コンテンツノードにおける特定のコンテンツタイプに対して1対1の関係を有する。このデータベースIDは、コンテンツノードがコンテンツルーター200と通信するときにコンテンツノードにより使用される。例えば、コンテンツノードにより発生される各コマンドは、図13を参照して以下に述べるように、ユーザ、コンテンツノード及びコンテンツタイプを識別するために特定のデータベースIDを含む。
特定のコンテンツノード(例えば、ユーザ装置B 513)の連絡先コンテンツタイプに対するコンフィギュレーション513−1は、電話番号を含む連絡先を必要とする。例えば、ある移動電話は、電話番号を含む連絡先しか許さない。或いは又、ユーザは、ユーザ装置の電話番号を伴う連絡先しか希望しない。このようなフラグがセットされた場合には、電話番号をもたない全ての連絡先は、このコンテンツノードへルーティングされない。電話番号は、他のASCIIキャラクタをもたずに、数字のみでなければならないことをフラグが指示してもよい。この場合、ASCIIで埋めた電話番号の非フィルタバージョンを保持するように、以下に述べるようにレポジトリーを使用することができ、一方、コンテンツルーターは、数字のみの電話番号を含む連絡先を準備する。
特定コンテンツノードの事象コンテンツタイプに対するコンフィギュレーション513−2は、次の2週間(又は他の将来の設定期間)以内に発生する事象をコンテンツノードへルーティングすることしか許さない。それ故、1つのコンテンツノードが新たな事象をコンテンツルーターへ送信する場合には、コンテンツルーターは、この事象が将来の所定期間内に生じるかどうか決定する。事象がパラメータ内に入らないことをフラグ及び期間が示す場合には、コンテンツルーターは、事象をこのコンテンツノードにルーティングしない。更に、コンテンツルーターは、以下に述べるインベントリーを含んでもよく、これは、事象が期間内に入るかどうか決定するために周期的に再検討され、そして1つのコンテンツノードから検索されてこのコンテンツノードへ送信される。全てのアタッチメントが事象から除去された後にこのコンテンツノードへ転送されることを別のフラグが指示してもよい。又、全てのノートが事象から除去された後にこのコンテンツノードへ転送されることを別のフラグが指示してもよい。
同様に、特定コンテンツノードの実行すべきタスクコンテンツタイプに対するコンフィギュレーション513−3も、次の2週間(又は他の将来の設定期間)以内に行なうべきタスクをコンテンツノードへルーティングすることしか許さない。
eメールに対するコンフィギュレーション513−4は、ルーティングルールに使用されるルーティングパラメータ、及び変換ルールに使用される変換パラメータを含むように示されている。ルーティングルールは、行先コンテンツノードのセットを選択するために処理ロジック250により使用される。このセットは、ナルセットであり、従って、出コマンドの受信に対してコンテンツノードが選択されることはない。或いは又、このセットは、出コマンドを受信する1つ以上の行先コンテンツノードを指示してもよい。ルーティングルールは、コンテンツノードに許されたエレメントの数についての上限、又は特定のコンテンツタイプを受け取るためのコンテンツノードの能力を含む。例えば、ルーティングルールは、装置へのコマンドを阻止し、読まれないeメール又は読まれるeメールの数を増加するものでよい。ルーティングパラメータは、コンテンツノードがコマンドを受け容れるか又は受け容れないかのフラグ指示でよい。例えば、コンテンツノードのeメールボックスがいっぱいである場合には、付加的なeメールの送信を阻止するようにフラグがセットされる。ルーティングパラメータは、受け容れられる入力の最大サイズを指示する。例えば、コンテンツノードが、メモリ制限のある移動電話である場合には、ルーティングパラメータは、特定サイズより大きい(例えば、1キロバイトより大きい)全てのeメールメッセージを阻止するのに使用される。ルーティングパラメータは、接続速度が所定レートより低い場合、又は接続タイプが高い転送レートを与えない場合に、コンテンツルーターが、コンテンツノードに向けられた全てのコマンドを阻止すべきであることを指示してもよい。例えば、ルーティングパラメータは、移動電話がワイヤード接続で接続されていない場合に、移動電話のようなコンテンツノードがアタッチメントを伴うeメールメッセージを受信しないことを指示してもよい。
各々の選択された行先コンテンツノードに対して、処理ロジック250は、出コマンドを発生する。処理ロジック250は、変換ルールを処理するときに、変換パラメータを使用する。変換ルールは、発生された出コマンドのコンテンツを決定するのに使用される。例えば、変換パラメータは、コマンドを最大サイズに裁断する(例えば、サイズを1キロバイト未満に制限する)のに使用される最大サイズ値でよい。変換パラメータは、特定のコンテンツタイプをコマンドからカットすべきかどうか決定するのに使用されるフラグでよい。例えば、コンテンツノードが、映像ファイルであるアタッチメントしか受け容れないことを指示するフラグが使用されてもよい。変換パラメータは、全てのアタッチメントを阻止するのに使用されるフラグでよい。例えば、コンテンツノードが、ドキュメントファイルであるアタッチメントを受け容れないことを指示するフラグが使用されてもよい。変換パラメータは、接続速度が所定レートより低い場合、又は接続タイプが高い転送レートを与えない場合に、コンテンツルーターが全てのアタッチメントを除去すべきであることを指示してもよい。例えば、変換パラメータは、移動電話がワイヤード接続で接続された場合には移動電話のようなコンテンツノードがアタッチメントを伴うeメールメッセージを受け容れることを指示するが、移動電話がワイヤレス接続で接続された場合にはアタッチメントが剥離されたことを指示する。変換パラメータは、コンテンツノードがいっぱい状態に近づきつつある場合に全てのアタッチメントを阻止するのに使用されるフラグでよい。例えば、コンテンツノードがほぼいっぱい(例えば、90%いっぱい)のときに、コンテンツノードがアタッチメントを受け容れないことを指示するフラグが使用されてもよい。コンテンツノードは、eメールからアタッチメントを剥離し、コンテンツノードに空きメモリを保存することができる。
特定コンテンツノードのライブラリーアイテムコンテンツタイプに対するコンフィギュレーション513−5は、映像をコンテンツノードにルーティングすることしか許さない。オーディオファイルをフィルタリングするために別のフラグが使用されてもよい。更に、映画ファイルをフィルタリングするために別のフラグが使用されてもよい。
図12Aないし12Eは、本発明の実施形態によりコンテンツルーター200をユーザ装置310及びユーザアカウント320にインターフェイスするのに使用できる外部及び内部ロジックを示す。コンテンツルーティングシステムは、記憶及び転送ロジック210を備えている。又、コンテンツルーティングシステムは、プロトコルロジック260及び/又はプロトコルインターフェイスロジックのような変換ロジックも備えている。更に、コンテンツルーティングシステムは、装置ゲートウェイ及び/又はサーバーゲートウェイのようなゲートウェイも備えている。或いは又、ゲートウェイは、コンテンツルーティングシステムの外部であってもよい。
図12Aは、外部プロトコルインターフェイスロジック260に結合されたコンテンツルーター200を示し、これは、接続データセットコンフィギュレーション500と、プロトコルインターフェイスロジック260のコマンドインターフェイスに結合された記憶及び転送ロジック210とを含む。プロトコルインターフェイスロジック260は、記憶及び転送ロジック210を、異種のプロトコルを有するインターフェイスを使用して、ユーザ装置310−1ないし310−3及びユーザアカウント320−1ないし320−3のような種々のコンテンツノードタイプに結合するのに使用される。
ここに示す実施形態では、プロトコルインターフェイスロジック260は、コンテンツノード310、320によって使用されるプロトコルと、記憶及び転送ロジック210で処理されるコマンド400との間で変換を行なう。より詳細には、プロトコルインターフェイスロジック260は、コンテンツノード310−1ないし310−3及びユーザアカウント320−1ないし320−3と通信するのに使用される特定のコンテンツノードプロトコルに基づきメッセージ910−1ないし910−3及び920−1ないし920−3を受け取る。プロトコルインターフェイスロジック260は、これらの信号を、記憶及び転送ロジック210のためのコマンド400に変換する。又、プロトコルインターフェイスロジック260は、記憶及び転送ロジック210からコマンド400を受け取り、そしてこれらコマンドを、特定のコンテンツノード310−1ないし310−3及び320−1ないし320−3に対して調整されたメッセージ910−1ないし910−3及び920−1ないし920−3へ変換して戻す。
上述したように、コンテンツルーター200は、プロトコルインターフェイスロジック260のコマンドインターフェイスに結合される。以下に述べるように、コンテンツルーター200は、プロトコルインターフェイスロジック260のメッセージインターフェイスに結合される。
図12Bは、記憶及び転送ロジック210と、メッセージ801とコマンド400との間で変換を行うプロトコルアダプタ268とを備えたコンテンツルーター200を示す。プロトコルインターフェイスロジック260は、ユーザ装置からのメッセージ910とコンテンツルーター200からのメッセージとの間で変換を行う装置ゲートウェイ264を備えている。装置ゲートウェイ264は、コンテンツルーター200を、種々のプロトコルを使用してユーザ装置に結合する。種々のユーザ装置及びプロトコルは、SyncMLプロトコル又はSMSベースのプロトコルを実行する移動電話、バイナリープロトコルを実行するJava(登録商標)ベースのクライアント装置、HTTPプロトコルを実行するホームパーソナルコンピュータベースのクライアント、等を含む。
装置ゲートウェイ264は、異なるユーザ装置タイプにより使用される種々のプロトコルと、コンテンツルーター200により使用されるXML−RPC(エクステンシブル・マークアップ・ランゲッジ−リモート・プロセデュア・コーリング)プロトコルのような共通のプロトコルとの間で変換を行う機能を遂行する。共通のプロトコルは、共通のプロトコルを使用する付加的なゲートウェイもコンテンツルーター200に結合されるときに容易な拡張性を許す。更に、共通のプロトコルを使用して、装置プロトコル変換の機能をプロトコルアダプタ268からデカップルすると共に、記憶及び転送ロジック210からもデカップルする。
変換プロトコルに加えて、装置ゲートウェイ264は、クライアントとして働くユーザ装置310の観点からクライアント/サーバー関係をサポートするようにサーバーをモデリングする。又、装置ゲートウェイ264は、サーバーとして働く記憶及び転送ロジック210の観点からクライアント/サーバー関係をサポートするようにクライアントもモデリングする。
別の実施形態では、プロトコルアダプタ268は、コンテンツルーター200とは個別である。又、プロトコルアダプタ268は、プロトコルインターフェイスロジック260の一部分でもよいし、スタンドアローンでもよい。
あるユーザ装置310は、コンテンツルーター200に気付かないユーザインターフェイスアプリケーションを含んでもよい。これらのユーザ装置310に対して、ユーザ装置310は、コンテンツルーター200を知っていてユーザインターフェイスアプリケーションとインターフェイスするデータルーティングドライバを含んでもよい。このデータルーティングドライバは、入手可能なプロトコルを使用して、コンテンツルーター200と通信し、これにより、ユーザアプリケーションをコンテンツルーター200に結合させる。入手可能なプロトコルを経て受け取られるコマンドは、ユーザアプリケーションのためのインストラクションへと変換される。更に、アプリケーション内で行なわれる変更は、入手可能なプロトコルを経て送られるメッセージとしてコンテンツルーター200へ通信される。
あるユーザ装置310は、データルーティングドライバと、コンテンツルーター200を知っているアプリケーションとの両方を含む。他のユーザ装置310、例えば、SyncMLイネーブルの移動電話は、このような装置に本来ある能力のために、コンテンツルーター200を知っているデータルーティングドライバを必要としない。例えば、SyncMLイネーブルの移動電話は、コンテンツルーター200により呼び出しできるオーバー・ジ・エア(over-the-air)SyncML同期ルーチンを固有に備えている。それ故、コンテンツルーター200は、コンテンツルーターを知っているソフトウェアをユーザ装置310に必要とせずに、SyncMLイネーブルの移動電話へ変更をプッシュすることができる。
図12Cは、記憶及び転送ロジック210と、メッセージ801とコマンド400との間で変換を行うプロトコルアダプタ268とを備えたコンテンツルーター200を示す。プロトコルインターフェイスロジック260は、ユーザアカウントからのメッセージ920と、コンテンツルーター200に使用するための共通のプロトコルを有するメッセージとの間で変換を行うサーバーゲートウェイ266を備えている。サーバーゲートウェイ266は、コンテンツルーター200を、種々のプロトコルを使用してユーザアカウントに結合する。
サーバーゲートウェイ266は、HTTP XML、JDAV、WebDAV Exchange、IMAP、POP3等の種々のサーバープロトコルに基づいて通信するユーザアカウントによりコンテンツルーター200にアクセスすることができる。サーバーは、PIMサーバー、例えば、Yahoo!(登録商標)PIMサーバー、フォトサーバー、例えば、Yahoo!(登録商標)フォトサーバー、eメールサーバー、例えば、PacBelleメールサーバー、等を含む。例えば、コンテンツノード320は、IMAPプロトコルを使用してコンテンツルーター200と通信するためのeメールサーバー上のユーザeメールアカウントでよい。
装置ゲートウェイ264と同様に、サーバーゲートウェイ266は、記憶及び転送ロジック210に対してクライアントをモデリングする。クライアントとサーバーとの間の仲介者をモデリングする装置ゲートウェイ264とは異なり、サーバーゲートウェイ266は、2つのサーバー間の仲介者をモデリングする。通常、2つのサーバーは、クライアント/サーバー関係で通信しない。しかしながら、サーバーゲートウェイ266は、アカウントサーバーが記憶及び転送ロジック210のサーバーと通信するのを許し、その両者は、クライアント/サーバー関係でサーバーとして働く。この通信を容易にするために、サーバーゲートウェイ266は、ユーザアカウント320の観点からクライアント/サーバー関係をサポートするようにクライアントをモデリングし、そして記憶及び転送ロジック210の観点からクライアントをモデリングする。
上述したように、プロトコルインターフェイスロジック260は、コンテンツルーター200の外部に配置される。以下に述べるように、コンテンツルーター200は、プロトコルインターフェイスロジック260を備えている。
図12Dは、記憶及び転送ロジック210と、プロトコルアダプタ268と、装置ゲートウェイ264及びサーバーゲートウェイ266を含むプロトコルインターフェイスロジック260とを備えたコンテンツルーター200を示す。上述したように、装置ゲートウェイ264及びサーバーゲートウェイ266は、装置及びサーバーにより使用されるプロトコルと、XML−RPCプロトコルのような共通のプロトコルとの間で変換を行う。プロトコルアダプタ268は、共通のプロトコルと、記憶及び転送ロジック210と通信するのに使用されるコマンド400との間で変換を行なう。記憶及び転送ロジック210とプロトコルアダプタ268との間に送られるコマンド400は、リモート・メソッド・インボケーション・オーバー・インターネット・インターORBプロトコル(RMI−IIOP)技術インターフェイスを含むJava(登録商標)プラットホームのような要求/応答構成にある。Java(登録商標)RMIプラットホームは、Java(登録商標)イネーブルコンテンツノードで実行されるオブジェクトが、Java(登録商標)ベースの記憶及び転送ロジック210で実行されるオブジェクト上のメソッドを呼び出すのを許し、又、その逆のことも許す。更に、コンテンツルーター200は、1つ以上のルーティングパラメータ及び/又は1つ以上の変換パラメータで装置ゲートウェイ264及び/又はサーバーゲートウェイ266を構成し、ゲートウェイがコンテンツノードのコマンドでルーティング及び変換を行なえるようにする。
装置ゲートウェイ264は、プロトコルアダプタ268を、SyncMLプロトコル910−1を実行する移動電話310−1、及びバイナリープロトコル910−2で動作するJava(登録商標)ベースのクライアント装置310−2へ結合するように示されている。サーバーゲートウェイ266は、プロトコルアダプタ268を、プロトコル920−1、920−2及び920−3で、各々、PIMサーバー320−1、フォトサーバー320−2及びeメールサーバー320−3へ結合するように示されている。
XML−RPCのような共通のプロトコルは、異種のオペレーティングシステム及び異なる環境において実行されるアプリケーションが、HTTPをトランスポート層として、且つXMLをエンコード機構として使用して、リモート手順コールを行えるようにする。XML−RPCプロトコルは、装置ゲートウェイ264、サーバーゲートウェイ266、XML−RPCイネーブル装置、又はXML−RPCイネーブルサーバーで実行されるアプリケーションから、プロトコルアダプタ268、及び記憶及び転送ロジック210へ、複雑なデータ構造体を送信できるようにする。プロトコルアダプタ268、又は記憶及び転送ロジック210は、受け取ったデータ構造体を処理し、その結果をアプリケーションに返送することができる。
共通のプロトコルを使用して通信する能力を有するコンテンツノードは、ゲートウェイをバイパスし、プロトコルアダプタ268と直接通信することができる。例えば、クライアントアプリケーションを実行するSymbian装置、又はWinCE、Win32、又はホームパーソナルコンピュータ(PC)310−3は、プロトコルアダプタ268と直接通信することができ、装置ゲートウェイ264を回避する。というのは、PC310−3は、共通のプロトコルを既に使用しているからである。更に、スマートフォン310−4も、共通のプロトコルを使用して通信することができ、装置ゲートウェイ264を回避する。同様に、ユーザアカウントも、共通のプロトコルを使用し、従って、サーバーゲートウェイ266をバイパスして、プロトコルアダプタ268と通信することができる。図示されたように、Yahoo!(登録商標)サーバー320−4は、共通のプロトコルを使用し、従って、サーバーゲートウェイ266を回避する。ある実施形態では、コンテンツノードがコマンド400と直接通信し(図示せず)、従って、プロトコルアダプタ268の使用を回避する。
共通のプロトコルを使用することにより、プロトコルアダプタ268は、装置ゲートウェイ264からのメッセージ801、サーバーゲートウェイ266からのメッセージ803、ユーザ装置310−3、310−4からのメッセージ810−3、810−4、及びユーザアカウント320−4からのメッセージ820−4を同様に処理し、これにより、プロトコルアダプタ268の設計及び実施を簡単化することができる。それ故、共通のプロトコルでの到来メッセージは、プロトコルアダプタ268への入力経路に関らず、同様に処理される。その結果、記憶及び転送ロジック210は、各コンテンツノードからのコマンドを同様に処理することができる。
又、コンテンツルーター200は、図12Dに示すように、記憶及び転送ロジック210から装置ゲートウェイ264及び/又はサーバーゲートウェイ266へ送信された通知信号(破線)も含む。出コマンドが出待ち行列241において待機中である場合には、記憶及び転送ロジック210は、適当なゲートウェイ264、266へ通知信号を周期的に送信することができる(破線)。通知は、telnet、HTTP、カスタムAPI、等を使用して、記憶及び転送ロジック210からゲートウェイ264、266へ送信される。次いで、ゲートウェイ264、266は、記憶及び転送ロジック210から出コマンド又はコマンド400に対する要求を開始する。ゲートウェイ264、266は、出待ち行列241からコマンドを含む応答を受け取る。
ある実施形態では、ゲートウェイ264、266が通知信号を受信して、出コマンドをフェッチした後に、ゲートウェイは、コマンドを含む出通知メッセージを準備する。出コマンドのサイズが比較的小さい場合には、ゲートウェイ264、266は、通知内にコマンドを含ませることができる。
ある実施形態によれば、記憶及び転送ロジック210は、出待ち行列が出コマンドを含むことをコンテンツノード300に通知するためにコンテンツノード300へ通知を送ることを決定する。記憶及び転送ロジック210は、ゲートウェイ264、266に対して通知信号を発生する。ゲートウェイ264、266は、記憶及び転送ロジック210から通知信号を受信する。通知信号は、コンテンツノード300に対して出待ち行列241に出コマンドが得られることを指示する。通知信号の受信に応答して、ゲートウェイ264、266は、例えば、プロトコルアダプタ268へのコールにより、出コマンドを要求することができる。プロトコルアダプタ268は、記憶及び転送ロジック210からコマンドを検索し、該ロジックは、それをゲートウェイ264、266へ供給する。ゲートウェイ264、266は、出コマンドを含む応答を受信する。ゲートウェイ264、266は、出コマンドを含む出通知を準備する。ゲートウェイ264、266は、出コマンドを、コンパクトなバイナリーシーケンスへとエンコードする。次いで、ゲートウェイ264、266は、出通知をコンテンツノード300へ送信し、このコンテンツノードは、移動電話のようなユーザ装置であるか、又はeメールアカウントのようなユーザアカウント320である。例えば、装置ゲートウェイ264は、SMSゲートウェイを経て移動電話へ出通知を送信する。ゲートウェイ264、266は、出通知の確認を、プロトコルアダプタ268を経て記憶及び転送ロジック210へ送信する。
図12Eは、本発明の実施形態によるマルチサーバーコンテンツルーティングシステムを示す。コンテンツルーター200は、第1サーバーとして働く。コンテンツルーター200は、記憶及び転送ロジック210と、プロトコルアダプタ268とを備え、これは、RMI−IIOPのようなコマンドベースの交換器を経て内部で通信すると共に、XML−RPCのような共通のプロトコルを経て外部と通信する。又、コンテンツルーター200は、接続データセットコンフィギュレーション500、及び/又はレポジトリー600、及び/又はコンテンツルーター200の内部又は外部にあるファイル中継サーバー700も備える。更に、コマンドメモリ220、接続データセットコンフィギュレーション500、レポジトリー600、及びファイル中継サーバー700は、各々、個別のメモリで形成されてもよいし、共通のメモリに結合されてもよいし、又は個別メモリ及び結合メモリの組み合せで形成されてもよい。例えば、コマンドメモリ220、接続データセットコンフィギュレーション500、レポジトリー600、及びファイル中継サーバー700は、各々、個別の関係データベースのような個別のデータベースで形成されてもよいし、或いは2つ以上が結合データベースに結合されてもよい。
又、コンテンツルーティングシステムは、コンテンツノードと通信するためのサーバーも備えている。装置ゲートウェイ(サーバー)264は、装置特有のプロトコル910を使用してユーザ装置310にインターフェイスする。サーバーゲートウェイ(サーバー)266は、サーバー特有のプロトコル920を使用してユーザアカウント320にインターフェイスする。
本発明のある実施形態は、ファイル中継サーバー700を備え、又はそれに結合される。ファイル中継サーバー700は、ファイル中継メモリとして働き、1つ以上のサーバー及び/又はコンテンツルーター200に結合され(直接接続は図示されていない)、及び/又は1つ以上のコンテンツノードに結合される。
ファイル中継サーバー700は、複数のコンテンツノード間で分離可能なセグメントを有するコマンドを搬送するのを容易にし、これは、コマンドを記憶及び転送ロジックの共通メモリへセーブする前にセグメントを切り離すことを含む。ファイル中継サーバー700は、コンテンツノード310、320、サーバー264、266、又はコンテンツルーター200(プロトコルアダプタ268又は記憶及び転送ロジック210)の入力を与えて、1つ以上のファイルを記憶し、それらファイルを入コマンドから除去した後に、入コマンドを記憶及び転送ロジック210のコマンドメモリ220に記憶できるようにする。分離可能なセグメント、特に、大きなファイルを除去することにより、コマンドメモリは、多数のコマンドを保持することができ、コマンドの処理において機敏性が高くなる。又、ファイル中継サーバー700は、ファイアウオールの後方のコンテンツノードから及びコンテンツノードへファイルをルーティングするためのメカニズムも与える。ファイアウオールにより分離された2つのコンテンツノード300は、他方から、ファイルのようなコンテンツ及びメタデータにアクセスすることが許されない。しかしながら、両方のコンテンツノード300が、ファイル中継サーバー700へ直接的に、又はサーバー264、266、コンテンツルーター200、プロトコルアダプタ268、又は記憶及び転送ロジック210を経て間接的に、コンテンツ及び/又はメタデータを与えることができる場合には、コンテンツノード300は、実際に、コンテンツ及び/又はメタデータを交換することができる。更に、ある実施形態では、ファイルが、ファイル中継サーバー700にセーブされる前に、コンテンツノード310、320、サーバー264、266、コンテンツルーター200、プロトコルアダプタ268、又は記憶及び転送ロジック210により暗号化される。ある実施形態では、あるコンテンツノードにより与えられるファイルは、例えば、そのユーザに対する接続データセットコンフィギュレーションにおいて構成されて、同じユーザに接続された他のコンテンツノードにしか得られないように、セキュリティメカニズムが実施される。セキュリティメカニズムは、ファイル中継サーバー700からのファイルに対する各要求を認証することや、受信及び配送ファイルを暗号化することを含む。
マルチサーバーコンテンツルーティングシステムは、図5に示されたピア・ツー・ピア450接続が望まれないか又は不可能であるときに、ファイル中継サーバー700を使用して、コンテンツノードがアタッチメントを受信するための経路を与えることができる。ピア・ツー・ピア450接続は、コンテンツノードの一方又は両方が、ピア・ツー・ピア接続を阻止するファイアウオールの後方にあるときには、不可能である。更に、ピア・ツー・ピア450接続は、各コンテンツノードがネットワーク10に同時に接続されないときにも、不可能である。ファイル中継サーバー700は、コマンドのアタッチメント又は他のセグメントに対する一時的なレポジトリーを与える。
ファイル中継サーバー700は、記憶及び転送ロジック210から処理をオフロードすることができる。例えば、ソースコンテンツノード、装置ゲートウェイ又はプロトコルアダプタは、入コマンド又はメッセージから切り離し可能なセグメントをカットすることができ、例えば、eメールから大きなファイルをカットすることができる。ファイル中継サーバー700に記憶されたセグメントに対する参照を、入コマンドの除去されたセグメントに代わって配置することができる。コンテンツルーター200及び接続されたコンテンツノード300は、ソースコンテンツノード300上に存在するファイルに対する参照と同様に、ファイル中継サーバー700上に存在するファイルに対する参照を処理することができる。それにより得られる縮約された入コマンドは、次いで、記憶及び転送ロジック210へ送信され、そして大きなセグメントの参照に置き換えるか又は除去することにより著しく小さくすることができる。その後のある時間に、縮約された入コマンドに対応する出コマンドが記憶及び転送ロジック210から通過される。プロトコルアダプタ、装置ゲートウェイ又は行先コンテンツノードは、参照を検出し、そしてその参照を、ファイル中継サーバー700から検索されたセグメントに置き換える。このようにして、コマンドメモリ220は、大きなファイルを保持するタスクから逃れられる。
第1のシナリオでは、スタンドアローンのファイル中継サーバー700が使用される。最初に、アタッチメントを含む新たなeメールが、ユーザの法人eメールアカウントによりインターネットを経て受信される。ユーザアカウントは、変更、即ちコンテンツルーター200への新たなeメールの到着を通信する。記憶及び転送ロジック210は、eメールを含む入コマンドを受け取るが、コンテンツノード300は、eメールのアタッチメントを、法人サーバーにおけるアタッチメントの位置を識別するメタデータリンクに置き換えている。eメールアカウントがファイアウオールの後方にある場合には、他の接続されたコンテンツノードがアタッチメントへのメタデータリンクにアクセスすることができない。この場合に、記憶及び転送ロジック210は、メタデータリンクをプロトコルインターフェイスロジック260へ転送し、そしてこのメタデータリンクに基づいてアタッチメントをフェッチするようにプロトコルインターフェイスロジック260に命令することができる。プロトコルインターフェイスロジック260は、フェッチされたアタッチメントをファイル中継サーバー700に向ける。入コマンドに応答して出コマンドを発生するときには、記憶及び転送ロジック210は、法人サーバーをアタッチメントのソースとして識別するメタデータリンクを、ファイル中継サーバー700にアタッチメントを配置するリンクに置き換える。出コマンドを受信するコンテンツノードは、アクセス不能なサーバーではなく、ファイル中継サーバー700に対して参照される。
第2のシナリオでは、パブリックeメールサーバーがファイル中継サーバー700として使用される。上述したように、アタッチメントを含む新たなeメールは、ユーザの法人eメールアカウントによりインターネットを経て受け取られる。ユーザアカウントは、新たなeメールの到着を、アタッチメントそれ自体ではなく、アタッチメントに対する参照と共に、記憶及び転送ロジック210に通信する。記憶及び転送ロジック210は、この参照に基づいてアタッチメントをフェッチするようプロトコルインターフェイスロジック260に命令する。このシナリオでは、プロトコルインターフェイスロジック260は、パブリックeメールサーバーを行先とするコマンドにアタッチメントを向ける。次いで、記憶及び転送ロジック210は、法人eメールサーバーではなくパブリックeメールサーバーにユーザを向けるメタデータリンクと共に、他の接続されたコンテンツノードの各々へコマンドを発生する。このようにして、コンテンツノードは、そのコンテンツノードにアクセスできないeメールサーバーで発信されたアタッチメントにアクセスすることができる。
別のシナリオでは、第1コンテンツノードは、埋め込まれたアタッチメントを含む入コマンドをコンテンツルーター200へ送信する。ゲートウェイ264又は266は、コマンドからアタッチメントを除去し、そしてアタッチメントをファイル中継サーバー700にセーブする。ゲートウェイは、全てのアタッチメントを除去してもよいし、或いは特定のアタッチメントタイプを除去してもよい。ゲートウェイは、コンテンツノード、コンテンツノードのタイプ、及び/又はユーザの接続データセットコンフィギュレーションに対して特有の1つ以上のコンフィギュレーションパラメータに基づき1つ以上のアタッチメントを除去する判断の基礎となる。ゲートウェイは、アタッチメントを参照に置き換え、これは、ゲートウェイ又はコンテンツノードそれ自体がファイル中継サーバー700からアタッチメントを検索できるようにする。或いは又、プロトコルアダプタ268又は記憶及び転送ロジック210は、コマンドにおいてアタッチメントと参照をスワップし、アタッチメントをファイル中継サーバー700に記憶し及び/又はアタッチメントをファイル中継サーバー700から検索してもよい。
ある実施形態では、コンテンツノード310又は320がファイル中継サーバー700にインターフェイスする。例えば、ユーザアカウント320は、eメールをそれにアタッチされたファイルと共にインターネットから受け取ると、そのeメールを、ファイルを含む新たなeメールを追加するためのコマンドとしてコンテンツルーター200へ転送する。或いは又、ユーザアカウント320は、ファイルを切り離し、次いで、ファイル中継サーバー700へ転送してもよい。次いで、コンテンツノード320は、コマンドを発生し、そしてアタッチメントをファイル中継サーバー700上のファイルに対する参照に置き換えたeメールで送信する。行先コンテンツノード、例えば、ユーザ装置310が、参照を伴う出コマンドを受け取ると、コンテンツノード310は、ファイル中継サーバー700からファイルを自動的に検索し、そして参照をその検索されたファイルに置き換えて、オリジナルのeメールを復帰させることができる。或いは又、コンテンツノード310は、ユーザがファイル中継サーバー700に対する参照をたどることによりファイルを手動でフェッチできるようにしてもよい。
ある実施形態では、ゲートウェイ264、266がファイル中継サーバー700にインターフェイスする。例えば、ゲートウェイ264、266が、アタッチされたファイルを含む新たなeメールを追加するためにソースコンテンツノード310又は320から入コマンドを受け取った場合に、その入コマンドを受け取るゲートウェイ264、266は、そのファイルをファイル中継サーバー700へ転送し、次いで、コマンドにおけるファイルを、ファイル中継サーバー700上のファイルに対する参照に置き換える。その後のある時点で、その参照を含む出コマンドが行先コンテンツノードに向けて送信されるとき、コンテンツルーター200からコマンドを受け取るサーバー264、266は、参照を、ファイル中継サーバー700から抽出されたファイルに置き換えることにより、eメールを回復させる。
ある実施形態では、プロトコルアダプタ268がファイル中継サーバー700にインターフェイスする(図示せず)。例えば、プロトコルアダプタ268は、ファイルを含む新たなeメールを追加するためにソースコンテンツノード310、320から入コマンドを受け取ると、そのファイルをファイル中継サーバー700へ転送する。次いで、プロトコルアダプタ268は、アタッチされたファイルを、ファイル中継サーバー700上のファイルに対する参照に置き換える。行先コンテンツノード310、320が、参照を含む出コマンドを要求すると、プロトコルアダプタ268は、その参照を、ファイル中継サーバー700から抽出されたファイルに置き換える。
ある実施形態では、記憶及び転送ロジック210がファイル中継サーバー700にインターフェイスする(図示せず)。例えば、記憶及び転送ロジック210は、ファイルを含む新たなeメールを追加するためにソースコンテンツノード310、320から入コマンドを受け取ると、そのファイルをファイル中継サーバー700へ転送する。次いで、記憶及び転送ロジック210は、コマンドにおけるファイルを、ファイル中継サーバー700上のファイルに対する参照に置き換える。記憶及び転送ロジック210は、参照を含む出コマンドを検索すると、その参照を、ファイル中継サーバー700から抽出したファイルに置き換える。
図13及び図14Aないし14Iは、本発明の実施形態による種々のコマンドの構造を示す。
図13は、本発明の実施形態による一次キー及びデータベース識別子に関連したコマンドを示す。コマンドという語は、通知及びメッセージの受信者、例えば、コンテンツノードによって適宜に操作される変更についての通知及びメッセージ(必ずしも「コマンド」フォーマットである必要はない)を含む。ある実施形態では、コマンドは、処理ロジック250により各入コマンドに指定された単調に増加する値である一次キーを含む。一次キーは、ユーザに関連した全てのコマンドについて独特である。又、一次キーは、全てのユーザに関連した全てのコマンドについても独特である。ある実施形態では、タイムスタンプが一次キーとして使用される。
コマンドは、データベース識別子にも関連している。データベース識別子は、多数のユーザ及び多数のコンテンツノードからのコマンドを含むデータベースへのインデックス又はキーとして使用される。データベース識別子は、データベースに追加される各コンテンツノード及びコンテンツタイプについてデータベースにより指定される逐次増加する数字である。それ故、データベース識別子は、特定のユーザ、特定のコンテンツノード又はコンテンツノードタイプ、及び特定のコンテンツタイプを間接的又は直接的に特別に識別することができる。コンテンツノード識別子は、特定のユーザ装置又はユーザアカウントに対する識別子を含む。コンテンツタイプは、連絡先アイテム、事象アイテム、実行(ToDo)アイテム、eメールアイテム、又はライブラリーアイテムのうちの1つの指示を含む。ライブラリーアイテムは、ConnectedPhotoメタデータ、ConnectedDocumentsメタデータ又はConnectedMusicメタデータのうちの1つを指示するのに使用される。
又、コマンドは、コマンドが、入待ち行列231にあると考えるか、入イン・トランシット待ち行列232にあると考えるか、出待ち行列241にあると考えるか、又は出イン・トランシット待ち行列242にあると考えるかを指示する待ち行列識別子にも関連している。コマンドは、一次キー、データベース識別子、及び待ち行列識別子を含む関連属性と共に、SQLデータベースのようなデータベースへのエントリーとして記憶される。
コマンドは、コマンドタイプ及びペイロードを含む。ペイロードは、コンテンツそれ自体を含む。或いは又、ペイロードは、メタデータを含んでもよいし、又はコンテンツ及びメタデータの両方を含んでもよい。メタデータは、コンテンツの質、条件及び他の特性に関する情報を与える。又、メタデータは、コンテンツの記述、コンテンツに対する変更の指示、及び/又はコンテンツのソースに対する参照又はリンクのような情報を含む。
コマンドタイプは、行なわれるアクション又は要求されたアクションを指示する。ある実施形態では、コマンドタイプは、追加、更新、削除、ゲット(get)、ゲット結果、問合せ、問合せ結果、問合せ終了、及びクリアを含むアクションのリストのうちの1つを指示する。入コマンドについては、コマンドタイプは、生じた変更を指示する。例えば、追加コマンドタイプと共に受信されるコマンドは、コンテンツノードにコンテンツが追加されたことを意味する。出コマンドについては、コマンドタイプは、コンテンツノードを、変更が行なわれたコンテンツノードと同期状態に保持するために、コンテンツルーターがコンテンツノード上で行なうことを要求している変更を指示する。例えば、追加というコマンドタイプは、ペイロードで指定されたコンテンツをコンテンツノードに追加しなければならないことを意味する。
追加というコマンドタイプを有するコマンドは、コンテンツレコードをコンテンツノードに追加するというアクションを指示する。「追加」コマンドタイプに対するペイロードは、コンテンツそれ自体、コンテンツに関するメタデータ、及び/又はコンテンツに対する参照を含む。
削除というコマンドタイプを有するコマンドは、コンテンツノードからコンテンツレコードを削除するアクションを指示する。「削除」コマンドタイプに対するペイロードは、どのコンテンツ及び/又はコンテンツに関するメタデータを削除すべきか指示するメタデータを含む。
ゲットというコマンドタイプを有するコマンドは、コンテンツノードからレコードのコンテンツをゲットする要求を指示する。「ゲット」コマンドタイプに対するペイロードは、どのコンテンツ及び/又はコンテンツに関するメタデータをゲットすべきか指示するメタデータを含む。ゲット結果というコマンドタイプを有するコマンドは、「ゲット」コマンドタイプに応答して送信されるコマンドである。「ゲット結果」タイプに対するペイロードは、コンテンツそれ自体、コンテンツに関するメタデータ、及び/又はコンテンツに対する参照を含む。
問い合わせというコマンドタイプを有するコマンドは、コンテンツノードからのコンテンツのカテゴリーの要求を指示する。「問合せ」コマンドタイプに対するペイロードは、要求されているコンテンツのカテゴリーを指示する。「問合せ」コマンドタイプは、コンテンツノードにおける全てのコンテンツ、又は特定の特性を有する全てのコンテンツを要求するのに使用される。「問合せ結果」のコマンドタイプを有するコマンドは、「問合せ」コマンドタイプに対する応答を指示する。「問合せ結果」のコマンドタイプに対するペイロードは、要求されたコンテンツ又はコンテンツに関するメタデータを含む。「問合せ結果」のコマンドは、コンテンツノード300により多数のバッチで送信され、それ故、コンテンツルーター200は、問合せ結果のフローがいつ終了したかの指示を与えることが必要である。「問合せ」コマンドタイプに対する最終的な応答は、問合せ終了のコマンドタイプを有するコマンドにおいて指示される。「問合せ終了」コマンドタイプに対するペイロードは、特定の特性を有する最終的コンテンツであるか、又は空セット応答を指示するナルである。結果が見つからない場合には、「問合せ」コマンドタイプは、ナル応答を指示する「問合せ終了」コマンドタイプを生じる。単一の結果が見つかった場合には、「問合せ」コマンドタイプは、一致応答を指示する「問合せ終了」コマンドタイプを生じる。2つ以上の結果が見つかった場合は、「問合せ」コマンドタイプは、1つ以上の「問合せ結果」コマンドタイプの後に、最終的な一致を含む「問合せ終了」コマンドタイプが続くものを生じる。
クリアというコマンドタイプを有するコマンドは、ペイロードにより指示されたコンテンツのカテゴリーを除去するようにコンテンツノードに命令する。リフレッシュのコンテンツタイプを有するコマンドは、送信側コンテンツノードを回復させるようにコンテンツルーター200に命令する。接続データセットコンフィギュレーションにおけるコンテンツノードの能力及びユーザコンフィギュレーションに基づいて、コンテンツをクリアするためのクリアコマンド、又は全てのデータをインポートするための問合せコマンドのいずれかをコンテンツノード300に送信することにより回復を開始することができる。いずれの場合にも、コンテンツノード300は、1つ以上の他のコンテンツノードから合併されたコンテンツ及びメタデータを受け取り、コンテンツノード300がその接続されたコンテンツノードと同期されるようにする。
又、コマンドは、コマンドタイプ及びデータタイプに依存するフォーマットを有するデータペイロードも含む。このデータペイロードは、変更されたレコードを含んでもよいし、或いはデータソース又はファイル中継サーバーに位置する変更されたレコードへのリンク又は参照のようなメタデータを含んでもよい。
図14Aは、コンテンツノードに追加されるべき新たなeメールを示す。データペイロードは、eメールを独特に識別するのに使用されるeメールIDと、ヘッダと、メッセージの最初の2キロバイトと、オリジナルメッセージへのリンクとを含む。図14Bは、eメールが読まれたことをコンテンツノードに命令するためのコマンドを示す。図14Cは、特定のeメールを削除するためのコマンドを示す。
図14Dは、新たなオーディオファイルを追加するためのコマンドを示す。図14Eは、オーディオファイルを削除するためのコマンドを示す。図14Fは、新たなアポイントメントを追加するためのコマンドを示す。図14Gは、新たな連絡先を追加するためのコマンドで、レコードを含むようなコマンドを示す。図14Hは、新たな連絡先を更新するためのコマンドで、レコードも含むようなコマンドを示す。図14Iは、写真映像を追加するためのコマンドを示す。コマンドには写真それ自体は含まれず、オリジナル写真映像に対する参照が含まれる。
図15Aないし15Cは、本発明の実施形態によりユーザ装置310と記憶及び転送ロジック210との間のシグナリングを示すシーケンス図である。
図15Aは、ユーザ装置310が1つ以上のコマンドをコンテンツルーター200へプッシュするときのシーケンスを示す。ワイヤレス能力をもつ移動PCのようなユーザ装置310は、ユーザ装置310におけるコンテンツ及びメタデータに対して一連の変更を受ける。ユーザ装置310で実行されるアプリケーションは、ある周期中になされる変更を指示するペイロードを周期的に準備するか、又はワイヤレス通信を取り戻したときにコマンドを送信する。ユーザ装置310に利用できるプロトコルを使用して、アプリケーションは、コマンドのリストを含むペイロードをプットするためにREQUESTメッセージを準備する。例えば、ユーザは、新たなSMSメッセージAAAを受信する。それ故、アプリケーションは、接続されたコンテンツノードが新たなeメールAAAを追加することを指示するコマンドを発生する。更に、ユーザは、カレンダーから事象BBBを削除し、連絡先CCCを仕事場の電話番号で更新する。ある実施形態では、コマンドのバッチが、共通のコマンドタイプで動作するコマンドのみを含むように制限される。例えば、コマンドのバッチは、eメールメッセージを追加、削除又は変更するコマンドしか含まない。
当業者であれば、ユーザ装置310は、種々のプロトコルを使用して装置ゲートウェイ264と通信することが明らかであろう。それ故、ここに示すREQUEST−RESPONSEプロトコルは、1つの可能性に過ぎない。本発明の実施形態によれば、各REQUEST−RESPONSEは、コマンドの原子対であって、両方のコマンドが発生しなければならず、さもなければ、成功とはみなされない。複数のREQUEST−RESPONSE対を要求する他のプロトコルとは異なり、本発明による各REQUEST−RESPONSE対は、タスクを遂行するように進行する。ワイヤレスネットワークの場合には、コマンドの対の長いシーケンスは、侵入や中断のおそれが高い。それ故、単一のREQUEST−RESPONSE原子対が、最適な信頼性及びスループットを与える。
ユーザ装置310は、ペイロードに含まれたコマンドをプットするためのREQUESTを装置ゲートウェイ264へ送信し、このゲートウェイは、ユーザ装置310に対するサーバーをモデリングする。サーバーをモデリングする際に、装置ゲートウェイ264は、要求に対して作用し、且つ要求に応答する。装置ゲートウェイ264は、装置プロトコルから、内部で使用されるプロトコルへと変換を行い、次いで、ペイロードで指示されたコマンドをプットすることを指示するREQUESTをプロトコルアダプタ268へ送信する。或いは又、ユーザ装置310が内部プロトコルを使用して通信することができる場合には、装置ゲートウェイ264をバイパスしてもよい。
プロトコルアダプタ268は、REQUESTのペイロードをコマンド(例えば、追加、削除及び更新)のシーケンスへと変換し、そしてそれらコマンドを、処理のために記憶及び転送ロジック210へ送信(プット)する。記憶及び転送ロジック210は、単調に増加する一次キー(例えば、0010021、0010022及び0010023)を、内部使用のために各コマンドに指定する。更に、各コマンドに対して、記憶及び転送ロジック210は、ユーザ、特定のコンテンツノード及びコンテンツタイプを独特に識別するデータベースIDを決定することができる。又、記憶及び転送ロジック210は、コマンドが、実行を保留しているか又は成功な実行の確認を保留している入コマンド又は出コマンドであることを指示するように、各コマンドの待ち行列IDをセットしてもよい。記憶及び転送ロジック210は、同じデータベースIDに関連した各コマンドに対して衝突チェックを遂行する。衝突が検出されない場合には、コマンドは、指定の属性と共にデータベースに記憶される。衝突が検出された場合には、記憶及び転送ロジック210は、データベースに存在するコマンドを除去し、衝突する入コマンドを破棄し、及び/又は入コマンド及び既存のコマンドを集積化することにより、衝突を回避する。
首尾良い処理及び入待ち行列へのエントリーに応答して、記憶及び転送ロジック210は、成功の指示をプロトコルアダプタ268へ返送する。次いで、プロトコルアダプタ268は、装置ゲートウェイ264からのREQUESTに対して、そのREQUESTで受け取られた全てのコマンドの首尾良い転送を指示するRESPONSEで応答する。同様に、ユーザ装置310からのREQUESTの首尾良い処理は、図示されたように成功を指示するRESPONSEで確認される。成功を指示するRESPONSEを受け取るユーザ装置310は、先に送られたコマンドのペイロードを破棄する。ユーザ装置310は、この確認を受け取らないと、次のREQUESTにおいてコマンドのペイロードを再送することができる。
本発明の実施形態によれば、ユーザ装置310は、図示されたように、単一のREQUEST−RESPONSE交換で、コンテンツルーター200とのトランザクションを完了する。単一のREQUEST−RESPONSE交換は、トランザクションを完了するのにプロトコルが複数のREQUEST−RESPONSE交換を必要とする場合に生じるセッション中断エラーについての変更を減少する。多対プロトコルとは異なり、各要求・応答対が進行するように構成される。多対プロトコルでは、途中で失敗が生じた場合にも、全ての進行が失われ、全セッションを始めから再スタートしなければならない。それ故、本発明の実施形態によれば、各々の首尾良い単一のREQUEST−RESPONSE交換は、コンテンツノードを同期するタスクの完了に向けて進行し、もし失敗があっても、単一のREQUEST−RESPONSE交換にしか影響しない。
図15Bは、通知が受け取られた後にユーザ装置310がコンテンツルーター200からコマンドを要求(プル)するときのシーケンスを示す。記憶及び転送ロジック210は、新たな出コマンドを発生して出待ち行列241に記憶すると、ユーザ装置310へ通知を送るように装置ゲートウェイ264に命令する通知信号を発生する。通知は、コンテンツタイプの指示を含んでもよいし、含まなくてもよい。装置ゲートウェイ264は、コンテンツノードを行先とする一連の通知を収集し、そしてその収集した通知を、例えば、もし利用できれば、HTTPパケット、又はSMSメッセージを使用して、ユーザ装置310へ周期的に送信する。無料チャンネル又はコストを無視できるチャンネルを伴うネットワーク10にユーザ装置310が接続された場合、例えば、それがワイヤードインターネット接続にドッキングされた場合には、ほぼ遅延なく通知を送信することができる。ユーザ装置310が、GPRS接続のような低廉なチャンネルに接続される場合には、通知を頻繁な間隔で収集して送信することができる。ユーザ装置310が、SMS接続のような高価なチャンネルに接続された場合には、通知は、時々収集されて送信される。ある実施形態では、コンテンツルーティングシステムは、現在の接続タイプを指示するように更新されたフラグを保持し、これにより、コンテンツノードを更新する頻度を決定するときにコンテンツルーティングシステムが使用する変数を与える。
通知を受け取った後に、ユーザ装置310は、単一のREQUEST−RESPONSEセッションを開始して、保留中コマンドのコンテンツタイプをゲットすることができる。ユーザ装置310は、保留中コマンドのコンテンツタイプをゲットするためのREQUESTを装置ゲートウェイ264に送信する。装置ゲートウェイ264は、このREQUESTに対して、保留中コマンドのコンテンツタイプの指示を含むRESPONSEで応答する。
コンテンツタイプを受け取った後に、ユーザ装置310は、単一のREQUEST−RESPONSEセッションを開始して、単一のコマンド又は保留中コマンドのバッチをゲットすることができる。ユーザ装置310は、保留中コマンドをゲットするためのREQUESTを装置ゲートウェイ264へ送信する。装置ゲートウェイ264は、ユーザ装置310により使用される外部プロトコルから共通の内部プロトコルへREQUESTを変換する。装置ゲートウェイ264は、共通のプロトコルにおけるREQUESTをプロトコルアダプタ268へ送信する。プロトコルアダプタ268は、REQUESTを、出待ち行列241からコマンドをゲットするためのコールに変換する。記憶及び転送ロジック210は、出待ち行列241からのコマンドのバッチを含むペイロードを返送する。或いは又、記憶及び転送ロジック210は、一度に1つのコマンドを返送し、プロトコルアダプタ268は、それを結合して、コマンドのバッチを形成する。プロトコルアダプタ268は、ペイロードにおけるコマンドの数を指示するためのインデックスを関連付けることができる。プロトコルアダプタ268は、装置ゲートウェイ264から受け取ったREQUESTに、ユーザ装置310により実行されるべきコマンドのペイロードを含むRESPONSEで応答する。或いは又、プロトコルアダプタ268は、各応答において一度に1つのコマンドで応答する。装置ゲートウェイ264は、ユーザ装置310から最初に受け取られたREQUESTに対するRESPONSEとしてRESPONSEを転送する。
最初のREQUEST−RESPONSE交換のある時間後に、ユーザ装置310は、コマンドの首尾良い処理を確認するために第2のREQUEST−RESPONSE交換を開始する。装置ゲートウェイ264は、この確認をプロトコルアダプタ268へ転送し、このアダプタは、記憶及び転送ロジック210におけるイン・トランシット待ち行列242からコマンドを除去するためのコールを発信する。記憶及び転送ロジック210は、成功を返送する。プロトコルアダプタ268は、そのREQUESTに対して、成功を確認するRESPONSEで応答する。次いで、装置ゲートウェイ264は、ユーザ装置310からのREQUESTに対して、成功を確認するRESPONSEで応答する。
図15Cは、コンテンツルーター200がユーザ装置310への通知内にコマンドをプッシュするときの事象のシーケンスを示す。ある実施形態では、記憶及び転送ロジック210は、低いプライオリティ及び/又は比較的小さなペイロードを通知内に含む。例えば、eメールが読み取られたことは、プライオリティが低く且つバイトサイズの小さい事象であると考えられる。このようにプライオリティの低い事象は、REQUEST−RESPONSE交換に通常要求される確認を受け取る必要なく、通知レイヤと共に通信される。例えば、記憶及び転送ロジック210は、コンテンツGGGが変更されたことを示すフラグを含むペイロードを送信する。コマンドGGGは、eメールが非読み取り状態から読み取り状態へ変更になったことを指示するために使用されるeメールフラグを表わす。又、ペイロードは、特定のeメールを識別するために使用されるインジケータも含む。通知信号が受け取られると、装置ゲートウェイ264と、プロトコルアダプタ268と、記憶及び転送ロジック210との間の通信は、図15Bを参照して上述したように動作する。最終的に、装置ゲートウェイ264は、コマンドを含む通知をユーザ装置310へ送信する。
図16Aないし16Dは、本発明の実施形態によりユーザアカウント320と記憶及び転送ロジック210との間のシグナリングを示すシーケンス図である。
図16Aは、コンテンツルーター200がユーザアカウント320からコマンドを受信(ゲット)するときのシーケンスを示す。サーバーゲートウェイ266は、単一のREQUEST−RESPONSE交換でユーザアカウント320を周期的にポーリングする。変更が存在しない場合には、ユーザアカウント320は、それを指示するRESPONSEを送信する。変更が存在する場合には、ユーザアカウント320は、変更を指示するRESPONSEを送信する(図示せず)。或いは、あるユーザアカウント320は、変更の存在を指示するためにREQUEST−RESPONSE交換を開始してもよい。サーバーゲートウェイ266は、REQUESTが受信されたことを、確認を含むRESPONSEで確認する。いずれにせよ、サーバーゲートウェイ266は、1つ以上の変更が存在することが分ると、変更を要求するREQUESTを送信する。ユーザアカウントは、コマンドのリストを含むペイロードを伴うRESPONSEで応答する。
サーバーゲートウェイ266は、サーバープロトコルから、共通の内部使用プロトコルへの変換を行い、次いで、ペイロードに示されたコマンドをプットすることを指示するREQUESTをプロトコルアダプタ268へ送信する。或いは又、ユーザアカウント320が共通のプロトコルを使用して通信を行なえる場合には、サーバーゲートウェイ266をバイパスしてもよい。
プロトコルアダプタ268は、REQUESTのペイロードをコマンド(例えば、追加、削除及び更新)のシーケンスへと変換し、そしてそれらコマンドを記憶及び転送ロジック210に与える。記憶及び転送ロジック210は、各コマンドを処理する。記憶及び転送ロジック210は、単調に増加する一次キー(例えば、0030021、0030022及び0030023)を各コマンドに指定する。更に、各コマンドに対して、記憶及び転送ロジック210は、ユーザ、特定のコンテンツノード及びコンテンツタイプを独特に識別するデータベースIDを決定することができる。又、記憶及び転送ロジック210は、コマンドが入待ち行列状態にあることを指示するように、各コマンドの待ち行列IDをセットしてもよい。記憶及び転送ロジック210は、同じデータベースIDに関連した各コマンドに対して衝突チェックを遂行する。衝突が検出されない場合には、コマンドは、指定の属性と共にデータベースに記憶される。衝突が検出された場合には、記憶及び転送ロジック210は、データベースに存在するコマンドを除去し、衝突する入コマンドを破棄し、及び/又は入コマンド及び既存のコマンドを集積化することにより、衝突を回避する。
首尾良い処理及び入待ち行列へのエントリーに応答して、記憶及び転送ロジック210は、成功の指示をプロトコルアダプタ268へ返送する。次いで、プロトコルアダプタ268は、サーバーゲートウェイ266からのREQUESTに対して、成功のRESPONSEで応答する。REQUEST−RESPONSE交換が失敗した場合には、以前のREQUEST−RESPONSE交換を繰り返す必要がない。ある実施形態では、サーバーゲートウェイ266は、REQUEST−RESPONSE対(図示せず)をユーザアカウント320とで交換し、以前に通信したコマンドを破棄することをユーザアカウント320に通知する。
図16Bは、コンテンツルーター200がユーザアカウント320にコマンドをプッシュ(プット)するときのシーケンスを示す。記憶及び転送ロジック210は、ユーザアカウント320に対してその出待ち行列にコマンドを有するときに、サーバーゲートウェイ266へ通知信号を送信する。ある実施形態では、通知信号は、コンテンツタイプを含む。サーバーゲートウェイ266は、通知を捕捉し、そして保留中の出コマンドをゲットするためのREQUESTを送信するときにクライアントをモデリングする。クライアントをモデリングするときに、サーバーゲートウェイ266は、出コマンドに対してユーザアカウントに代わって要求を開始する。プロトコルアダプタ268は、記憶及び転送ロジック210へのゲットコマンドコールを遂行し、このロジックは、コマンドのペイロードを返送する。例えば、コマンドのペイロードは、新たなeメールDDの追加、連絡先EEEの削除、マルチメディアコンテンツのタイトルFFFの変更を含む。プロトコルアダプタ268は、各コマンドにインデックスを指定し、そして以前に受け取ったREQUESTに対するRESPONSEにコマンドを含ませる。次いで、サーバーゲートウェイ266は、クライアントをモデリングし、ユーザアカウント320にコマンドをプットするためのREQUESTを開始する。ユーザアカウント320は、REQUEST及びコマンドの受信をRESPONSEで確認する。次いで、サーバーゲートウェイ266は、ユーザアカウント320によるコマンドの受信を確認するためのREQUESTを開始する。プロトコルアダプタは、その確認を、記憶及び転送ロジック210への除去コマンドコールへと変換し、イン・トランシット待ち行列からコマンドを除去する。記憶及び転送ロジック210は、成功を返送し、そしてプロトコルアダプタ268は、サーバーゲートウェイ266から受け取った応答をRESPONSEで確認する。
図16Cは、サーバーゲートウェイ266が通知メッセージのコマンドをユーザアカウント320へプッシュするときの事象シーケンスを示す。ある実施形態では、記憶及び転送ロジック210は、低いプライオリティ及び/又は比較的小さなペイロードを通知と共に含む。例えば、eメールが読み取られたことは、プライオリティが低く且つバイトサイズの小さい事象であると考えられる。このようにプライオリティの低い事象は、REQUEST−RESPONSE交換に通常要求される確認を受け取る必要なく、通知レイヤと共に通信される。ある実施形態では、通知信号は、コンテンツタイプを含む。初期の通知信号の受信に応答して、サーバーゲートウェイ266は、保留中の出コマンドをゲットするためのREQUESTを送信するときにクライアントをモデリングする。それに応答して、プロトコルアダプタ268は、記憶及び転送ロジック210へのゲットコマンドコールを遂行し、このロジックは、コマンドを返送する。例えば、コマンドGGGは、eメールの読み取り状態を変更するためのインストラクションを含む。プロトコルアダプタ268は、コマンドにインデックスを指定し、そして以前に受け取ったREQUESTに対するRESPONSEにコマンドを含ませる。次いで、サーバーゲートウェイ266は、ユーザアカウント320への通知信号にコマンドをプッシュする。通知信号を送信する前又は後に、サーバーゲートウェイ266は、ユーザアカウント320によるコマンドの受信に確認するためのREQUESTを開始する。プロトコルアダプタは、その確認を、記憶及び転送ロジック210への除去コマンドコールへと変換し、イン・トランシット待ち行列からコマンドを除去する。記憶及び転送ロジック210は、成功を返送し、そしてプロトコルアダプタ268は、サーバーゲートウェイ266から受け取った応答をRESPONSEで確認する。
図16Dは、サーバーゲートウェイ266が、ユーザアカウント320を有するアカウントサーバーと共にファイアウオールの後方に配置された本発明の実施形態を示す。サーバーゲートウェイ266がファイアウオールの後方にある場合には、プロトコルアダプタ268は、REQUEST−RESPONSE交換を開始することができず、そしてプロトコルアダプタ268からの通知が阻止される。このケースでは、サーバーゲートウェイ266は、各REQUEST−RESPONSE交換を開始する。
コンテンツルーター200がその出待ち行列241にコマンドを有することを決定するために通知を受け取るのではなく、サーバーゲートウェイ266は、REQUEST−RESPONSE交換を開始することにより通知情報を要求する。サーバーゲートウェイ266は、出コマンドのポーリングが要求されることを示すREQUESTをプロトコルアダプタ268へ送信することにより、出待ち行列241においてコマンドを周期的にポーリングする。これに応答して、プロトコルアダプタ268は、記憶及び転送ロジック210をコールし、ユーザアカウント320に対して出コマンドをチェックする。記憶及び転送ロジック210は、出待ち行列241にコマンドが存在するかどうかの指示を返送する。プロトコルアダプタ268は、以前のREQUESTに対して、出待ち行列241にコマンドが存在するかどうかの返送された指示を含むRESPONSEで応答する。出待ち行列241にコマンドが存在する場合には、サーバーゲートウェイ266は、図16Bに示すように(REQUEST−RESPONSE交換を伴う)、又は図16Cに示すように(通知信号内で)、出コマンドをゲットするためのREQUESTを開始する。更に、サーバーゲートウェイ266は、ユーザアカウント320がサーバーゲートウェイ266にコマンドを通信する場合には、変更に対してユーザアカウント320をポーリングし、又、サーバーゲートウェイ266は、図15Aに示すように、入待ち行列231へコマンドをプットするREQUESTを開始する。
特定の実施形態及び添付図面について本発明を説明したが、当業者であれば、本発明がこれらの実施形態や図面に限定されないことが明らかであろう。
以上、明瞭化のため、異なる機能的ユニットを参照して本発明の実施形態について説明されたことが明らかであろう。しかしながら、本発明から逸脱せずに、異なる機能的ユニット間に機能を適宜に分散させられることも明らかであろう。従って、特定の機能的ユニットを参照することは、厳密な論理的又は物理的構造又は編成を表わすのではなく、前記機能を与える適当な手段を参照するに過ぎないことが明らかであろう。
本発明は、ハードウェア、ソフトウェア、ファームウェア又はその組み合せを含む任意の適当な形態で実施することができる。本発明の異なる態様は、1つ以上のデータプロセッサ及び/又はデジタル信号プロセッサ上で実行されるコンピュータソフトウェア又はファームウェアとして少なくとも部分的に実施されてもよい。本発明は、マシン読み取り可能なメディアのようなコンピュータプログラム製品(例えば、メモリカード、ROM、RAM、PROM、EPROM、フラッシュメモリ、磁気又は光学ディスケット、CD−ROM、DVD、等)において実施されてもよい。本発明の実施形態のエレメント及びコンポーネントは、任意の適当な仕方で物理的に、機能的に及び論理的に実施されてもよい。実際に、機能は、単一ユニットで実施されてもよいし、複数のユニットで実施されてもよいし、又は他の機能的ユニットの一部分として実施されてもよい。従って、本発明は、単一のユニットで実施されてもよく、又は異なるユニットとプロセッサとの間に物理的及び機能的に分散されてもよい。
本発明は、幾つかの実施形態について説明したが、ここに述べた特定の形態に限定されるものではない。むしろ、本発明の範囲は、特許請求の範囲のみによって限定される。更に、特定の実施形態に関連して特徴を述べたが、当業者であれば、ここに述べた実施形態の種々の特徴を本発明により結合できることが明らかであろう。更に、実施形態に関連して述べた本発明の態様は、発明として独立していてもよい。
更に、本発明の精神及び範囲から逸脱せずに種々の修正や変更が当業者明らかであろう。本発明は、前記の詳細な説明により限定されず、特許請求の範囲により規定される。
情報配布及び同期システムを示す図である。 情報配布及び同期システムを示す図である。 本発明の実施形態によりネットワークを経て複数のコンテンツノードに結合されたコンテンツルーターを示す図である。 本発明の実施形態により1つのコンテンツノードにおける変更を、コンテンツルーターを経て、コンテンツノードの選択されたセットへ伝播する経路を示す図である。 本発明の実施形態によるユーザ接続eメールアカウントを示し、例示的スクリーンショットを含む図である。 本発明の実施形態による記憶及び転送ロジックへの接続、及びそれにより遂行される処理を示す図である。 本発明の実施形態による記憶及び転送ロジックへの接続、及びそれにより遂行される処理を示す図である。 本発明の実施形態によりレポジトリーに結合された記憶及び転送ロジックを示す図である。 本発明の実施形態によりレポジトリーに結合された記憶及び転送ロジックを示す図である。 本発明の実施形態により例示的eメールの分離可能なセグメントを剥離し、次いで、その剥離されたセグメントをeメールのソースから要求するプロセスを示す図である。 本発明の実施形態により例示的eメールの分離可能なセグメントを剥離し、次いで、その剥離されたセグメントをeメールのソースから要求するプロセスを示す図である。 本発明の実施形態による記憶及び転送ロジックの構造、及び処理ロジックとコンテンツノードとの間のデータ経路を示す図である。 本発明の実施形態による記憶及び転送ロジックの構造、及び処理ロジックとコンテンツノードとの間のデータ経路を示す図である。 本発明の実施形態による記憶及び転送ロジックの構造、及び処理ロジックとコンテンツノードとの間のデータ経路を示す図である。 本発明の実施形態によりコンテンツノード及びコンテンツルーターの観点からのPUT−GET−ACK手順を示す図である。 本発明の実施形態によりコンテンツノード及びコンテンツルーターの観点からのPUT−GET−ACK手順を示す図である。 本発明の実施形態によりコンテンツノード及びコンテンツルーターの観点からのPUT−GET−ACK手順を示す図である。 本発明の実施形態によりコンテンツノード及びコンテンツルーターの観点からのPUT−GET−ACK手順を示す図である。 本発明の実施形態による接続データセットコンフィギュレーションの構造を示す図である。 本発明の実施形態によりコンテンツルーターをユーザ装置及びユーザアカウントにインターフェイスするのに使用できる外部及び内部ロジックを示す図である。 本発明の実施形態によりコンテンツルーターをユーザ装置及びユーザアカウントにインターフェイスするのに使用できる外部及び内部ロジックを示す図である。 本発明の実施形態によりコンテンツルーターをユーザ装置及びユーザアカウントにインターフェイスするのに使用できる外部及び内部ロジックを示す図である。 本発明の実施形態によりコンテンツルーターをユーザ装置及びユーザアカウントにインターフェイスするのに使用できる外部及び内部ロジックを示す図である。 本発明の実施形態によりコンテンツルーターをユーザ装置及びユーザアカウントにインターフェイスするのに使用できる外部及び内部ロジックを示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態による種々のコマンドの構造を示す図である。 本発明の実施形態によりユーザ装置と記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。 本発明の実施形態によりユーザ装置と記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。 本発明の実施形態によりユーザ装置と記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。 本発明の実施形態によりユーザアカウントと記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。 本発明の実施形態によりユーザアカウントと記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。 本発明の実施形態によりユーザアカウントと記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。 本発明の実施形態によりユーザアカウントと記憶及び転送ロジックとの間のシグナリングを示すシーケンス図である。

Claims (82)

  1. 複数のコンテンツノードとコマンドメモリとの間で情報に対する変更をルーティングするためのコンテンツルーティングシステムにおいて、
    記憶及び転送ロジックを備え、該ロジックは、
    第1のコンテンツノードからの入コマンドを処理し、その入コマンドのコンテンツタイプ及び1つ以上のルーティングパラメータに基づき行先コンテンツノードのセットを選択し、そしてその選択された行先コンテンツノードの各々に対する出コマンドを発生するための処理ロジックと、
    前記処理ロジックに結合されて、前記入コマンドと、前記出コマンドのセットとを保持するためのコマンドメモリと、
    を含むものであり、更に、
    前記処理ロジックに結合されて、前記1つ以上のルーティングパラメータを保持するための接続データセットコンフィギュレーション、
    を備えたコンテンツルーティングシステム。
  2. 第1プロトコルとコマンドプロトコルとの間で変換を行なうプロトコル変換ロジックを更に備えた、請求項1に記載のコンテンツルーティングシステム。
  3. 前記プロトコル変換ロジックは、共通のプロトコルと前記コマンドプロトコルとの間で変換を行なうプロトコルアダプタを含む、請求項2に記載のコンテンツルーティングシステム。
  4. 前記共通のプロトコルとコマンドプロトコルとの間の変換は、複数のコマンドを有する共通のプロトコル内のメッセージを、前記コマンドプロトコル内の個別のコマンドへ変換することを含む、請求項3に記載のコンテンツルーティングシステム。
  5. 前記第1プロトコルとコマンドプロトコルとの間の変換は、複数のコマンドを有する第1プロトコル内のメッセージを、前記コマンドプロトコル内の個別のコマンドへ変換することを含む、請求項2に記載のコンテンツルーティングシステム。
  6. 前記プロトコル変換ロジックは、更に、前記第1プロトコルと共通のプロトコルとの間で変換を行なうためのゲートウェイを含む、請求項2に記載のコンテンツルーティングシステム。
  7. 前記プロトコル変換ロジックは、
    前記第1プロトコルと共通のプロトコルとの間で変換を行なうためのゲートウェイと、
    前記共通のプロトコルと前記コマンドプロトコルとの間で変換を行なうためのプロトコルアダプタと、
    を含む請求項2に記載のコンテンツルーティングシステム。
  8. 前記1つ以上のルーティングパラメータは、前記コンテンツノードの能力に基づくパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  9. 前記コンテンツタイプは、連絡先コンテンツタイプであり、そして前記1つ以上のルーティングパラメータは、電話番号が要求されたことを指示するパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  10. 前記コンテンツタイプは、事象コンテンツタイプであり、そして前記1つ以上のルーティングパラメータは、将来の所定の期間内に生じるルーティング事象を指示するパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  11. 前記コンテンツタイプは、タスクコンテンツタイプであり、そして前記1つ以上のルーティングパラメータは、将来の所定の期間内に行なうべきルーティングタスクを指示するパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  12. 前記コンテンツタイプは、eメールコンテンツタイプであり、そして前記1つ以上のルーティングパラメータは、コンテンツノードがいっぱいであるかどうかを指示するパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  13. 前記コンテンツタイプは、eメールコンテンツタイプであり、そして前記1つ以上のルーティングパラメータは、1つ以上のアタッチメントをもつeメールメッセージを阻止することを示すパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  14. 前記コンテンツタイプは、メディアライブラリーコンテンツタイプであり、そして前記1つ以上のルーティングパラメータは、特定のメディアタイプのルーティングコマンドを指示するパラメータを含む、請求項1に記載のコンテンツルーティングシステム。
  15. 前記処理ロジックに結合され、通知信号をゲートウェイに送信するための通知ロジックを更に備えた、請求項1に記載のコンテンツルーティングシステム。
  16. 前記プロトコルアダプタは、リモートプロセデュアコーリング(RPC)プロトコルインターフェイスを使用することを含む、請求項3に記載のコンテンツルーティングシステム。
  17. 前記RPCプロトコルは、XML−RPCプロトコルを含む、請求項16に記載のコンテンツルーティングシステム。
  18. 前記コマンドメモリは、入コマンドを保持するための入待ち行列と、出コマンドのセットを保持するための出待ち行列とを含む、請求項1に記載のコンテンツルーティングシステム。
  19. 前記コマンドメモリは、入コマンドと、出コマンドのセットとを保持するためのデータベースを含み、各コマンドは、コマンドの状態を識別する属性を有する、請求項1に記載のコンテンツルーティングシステム。
  20. 前記状態は、入待ち行列の状態及び出待ち行列の状態を含む、請求項19に記載のコンテンツルーティングシステム。
  21. 前記状態は、更に、出イン・トランシット待ち行列の状態を含む、請求項20に記載のコンテンツルーティングシステム。
  22. 前記状態は、更に、入イン・トランシット待ち行列の状態を含む、請求項20に記載のコンテンツルーティングシステム。
  23. 前記処理ロジックは、前記入コマンドと前記コマンドメモリ内のコマンドとの間の衝突を回避するように動作できる、請求項1に記載のコンテンツルーティングシステム。
  24. 前記処理ロジックは、選択された行先コンテンツノードへ出コマンドを送信する前に、入コマンドを受け取るように動作できる、請求項1に記載のコンテンツルーティングシステム。
  25. 前記処理ロジックは、選択された行先コンテンツノードから入コマンドのセットを受け取るように動作できると共に、前記行先コンテンツノードへ1つ以上の出コマンドを送信する前に、入コマンドのセットと、1つ以上の出コマンドとの間の衝突を回避する、請求項1に記載のコンテンツルーティングシステム。
  26. 1つ以上のコンテンツノードに結合するためのゲートウェイサーバーを更に備えた、請求項1に記載のコンテンツルーティングシステム。
  27. 前記ゲートウェイサーバーは、1つ以上のユーザ装置に結合するための装置ゲートウェイサーバーを含む、請求項26に記載のコンテンツルーティングシステム。
  28. 前記ゲートウェイサーバーは、1つ以上のユーザアカウントに結合するためのサーバーゲートウェイサーバーを含む、請求項26に記載のコンテンツルーティングシステム。
  29. 前記ゲートウェイサーバーは、
    1つ以上のユーザ装置に結合するための装置ゲートウェイサーバーと、
    1つ以上のユーザアカウントに結合するためのサーバーゲートウェイサーバーと、
    を備えた請求項26に記載のコンテンツルーティングシステム。
  30. 前記記憶及び転送ロジックを前記装置ゲートウェイサーバー及びサーバーゲートウェイサーバーに接続するためのプロトコルアダプタを更に備えた、請求項29に記載のコンテンツルーティングシステム。
  31. 複数のコンテンツノードとコマンドメモリとの間で情報に対する変更をルーティングする方法において、コンテンツルーターでは、
    第1コンテンツノードから入コマンドを受け取り、
    前記第1コンテンツノードに関連したコマンドメモリに前記入コマンドを記憶し、
    前記入コマンドのコンテンツタイプと、行先コンテンツノード及びコンテンツタイプに関連したルーティングパラメータとに基づき、行先コンテンツノードのセットを選択し、
    更に、その選択された行先コンテンツノードの各々に対して、
    出コマンドを発生し、
    衝突が生じない場合に前記出コマンドを前記コマンドメモリに記憶する、
    という段階を備えた方法。
  32. 前記入コマンドを処理する段階を更に備え、この処理は、前記入コマンドと、前記第1コンテンツノードに関連した前記コマンドメモリ内の衝突コマンドとの間の衝突を回避することを含み、更に、前記入コマンドの記憶は、前記処理されたコマンドを記憶することを含む、請求項31に記載の方法。
  33. 前記衝突の回避は、前記コマンドメモリから前記衝突コマンドを除去することを含む、請求項32に記載の方法。
  34. 前記衝突の回避は、前記入コマンドを、前記コマンドメモリからの前記衝突コマンドと合併することを含む、請求項32に記載の方法。
  35. 前記衝突の回避は、前記入コマンドを破棄することを含む、請求項32に記載の方法。
  36. 前記衝突の回避は、前記入コマンドを破棄し、そして前記コマンドメモリから前記衝突コマンドを除去することを含む、請求項32に記載の方法。
  37. 前記入コマンドは、eメールメッセージを削除するためのコマンドを含み、
    前記コマンドメモリにおける衝突コマンドは、同じeメールメッセージに関連したコマンドを含み、そして
    前記衝突の回避は、前記コマンドメモリから衝突コマンドを除去することを含む、請求項32に記載の方法。
  38. 前記コマンドメモリにおける衝突コマンドは、eメールメッセージを追加するためのコマンドを含み、
    前記入コマンドは、eメールメッセージの読み取りフラグを更新するためのコマンドを含み、そして
    前記衝突の回避は、前記コマンドメモリからの衝突コマンド及び入コマンドを合併させることを含む、請求項32に記載の方法。
  39. 前記入コマンドを前記合併されたコマンドに置き換え、そして前記コマンドメモリにおける衝突コマンドを除去する段階を更に備えた、請求項38に記載の方法。
  40. 前記入コマンドを破棄し、そして前記コマンドメモリにおける衝突コマンドを前記合併されたコマンドに置き換える段階を更に備えた、請求項38に記載の方法。
  41. 出コマンドを処理する段階を更に備え、この出コマンドの処理は、出コマンドと、選択された行先コンテンツノードに関連したコマンドメモリ内の衝突コマンドとの間の衝突を回避することを含み、そして出コマンドの記憶は、処理された出コマンドを記憶することを含む、請求項31に記載の方法。
  42. 前記衝突の回避は、前記コマンドメモリから衝突コマンドを除去することを含む、請求項41に記載の方法。
  43. 前記衝突の回避は、前記コマンドメモリからの衝突コマンドを出コマンドに合併させることを含む、請求項41に記載の方法。
  44. 前記衝突の回避は、出コマンドを破棄することを含む、請求項41に記載の方法。
  45. 前記衝突の回避は、出コマンドを破棄し、そして前記コマンドメモリから衝突コマンドを除去することを含む、請求項41に記載の方法。
  46. 前記出コマンドは、eメールメッセージを削除するためのコマンドを含み、
    前記コマンドメモリからの衝突コマンドは、同じeメールメッセージに関連したコマンドを含み、そして
    前記衝突の回避は、前記コマンドメモリから衝突コマンドを除去することを含む、請求項41に記載の方法。
  47. 前記コマンドメモリからの衝突コマンドは、eメールメッセージを追加するためのコマンドを含み、
    前記出コマンドは、eメールメッセージの読み取りフラグを更新するためのコマンドを含み、そして
    前記衝突の回避は、前記コマンドメモリからの衝突コマンドと出コマンドを合併させることを含む、請求項41に記載の方法。
  48. 前記出コマンドを前記合併されたコマンドに置き換え、そして前記コマンドメモリにおけるコマンドを除去する段階を更に備えた、請求項47に記載の方法。
  49. 前記出コマンドを破棄し、そして前記コマンドメモリにおけるコマンドを前記合併されたコマンドに置き換える段階を更に備えた、請求項47に記載の方法。
  50. 入待ち行列から、第1コンテンツノードに関連したコマンドメモリの入イン・トランシット待ち行列へ入コマンドを移動させる段階を更に備えた、請求項31に記載の方法。
  51. 入コマンドが破棄されることを決定し、そして
    入イン・トランシット待ち行列から入コマンドを破棄する、
    という段階を更に備えた請求項50に記載の方法。
  52. 入コマンドの処理に関係したエラー状態を検出し、そして
    エラー状態の検出に応答して、入イン・トランシット待ち行列から、第1コンテンツノードに関連した入待ち行列へ入コマンドを移動する、
    という段階を更に備えた請求項50に記載の方法。
  53. 出待ち行列から、選択された行先コンテンツノードに関連したコマンドメモリの出イン・トランシット待ち行列へ出コマンドを移動させる段階を更に備えた、請求項31に記載の方法。
  54. 出コマンドが破棄されることを決定し、そして
    出イン・トランシット待ち行列から出コマンドを破棄する、
    という段階を更に備えた請求項53に記載の方法。
  55. 選択された行先コンテンツノードにより出コマンドが受け取られたという確認を受け取り、そして
    前記確認を受け取るのに応答して前記出イン・トランシット待ち行列から出コマンドを破棄する、
    という段階を更に備えた請求項53に記載の方法。
  56. 出コマンドの配送に関係したエラー状態を検出し、そして
    前記エラー状態の検出に応答して、出イン・トランシット待ち行列から、前記選択された行先コンテンツノードに関連した出待ち行列へ出コマンドを移動させる、
    という段階を更に備えた請求項53に記載の方法。
  57. 処理ロジック及びコマンドメモリを含むコンテンツルーティングシステムに使用するためのプログラムコードを含むコンピュータプログラム製品であって、コンテンツルーティングシステムは、複数のコンテンツノードとコマンドメモリとの間で情報に対する変更をルーティングするためのものであるコンピュータプログラム製品において、
    第1コンテンツノードから入コマンドを受け取るためのプログラムコードと、
    前記第1コンテンツノードに関連したコマンドメモリに前記入コマンドを記憶するためのプログラムコードと、
    前記入コマンドのコンテンツタイプ、並びに行先コンテンツノード及びコンテンツタイプに関連したルーティングパラメータに基づいて、行先コンテンツノードのセットを選択するためのプログラムコードと、更に、
    前記選択された行先コンテンツノードの各々に対して、
    出コマンドを発生するためのプログラムコードと、
    前記出コマンドを前記コマンドメモリに記憶するためのプログラムコードと、
    を備えたコンピュータプログラム製品。
  58. 入コマンドを処理するためのプログラムコードを更に備え、この処理のためのプログラムコードは、入コマンドと、第1コンテンツノードに関連したコマンドメモリ内のコマンドとの間の衝突を回避するためのプログラムコードを含み、そして前記入コマンドの記憶は、処理されたコマンドを記憶することを含む、請求項57に記載のコンピュータプログラム製品。
  59. 前記衝突の回避は、前記コマンドメモリから衝突コマンドを除去することを含む、請求項58に記載のコンピュータプログラム製品。
  60. 前記衝突の回避は、入コマンドを、前記コマンドメモリからの衝突コマンドと合併させることを含む、請求項58に記載のコンピュータプログラム製品。
  61. 前記衝突の回避は、入コマンドを破棄することを含む、請求項58に記載のコンピュータプログラム製品。
  62. 前記衝突の回避は、入コマンドを破棄し、そして前記コマンドメモリから衝突コマンドを除去することを含む、請求項58に記載のコンピュータプログラム製品。
  63. 前記入コマンドは、eメールメッセージを削除するためのコマンドを含み、
    前記コマンドメモリのコマンドは、同じeメールメッセージに関連したコマンドを含み、そして
    前記衝突を回避するプログラムコードは、前記コマンドメモリから衝突コマンドを除去するためのプログラムコードを含む、請求項58に記載のコンピュータプログラム製品。
  64. 前記コマンドメモリのコマンドは、eメールメッセージを追加するためのコマンドを含み、
    前記入コマンドは、eメールメッセージの読み取りフラグを更新するためのコマンドを含み、そして
    前記衝突を回避するプログラムコードは、前記コマンドメモリからの衝突コマンド及び前記入コマンドを合併させるプログラムコマンドを含む、請求項58に記載のコンピュータプログラム製品。
  65. 前記入コマンドを前記合併されたコマンドに置き換えそして前記コマンドメモリのコマンドを除去するためのプログラムコードを更に備えた、請求項64に記載のコンピュータプログラム製品。
  66. 前記入コマンドを破棄しそして前記コマンドメモリのコマンドを前記合併されたコマンドに置き換えるプログラムコードを更に備えた、請求項64に記載のコンピュータプログラム製品。
  67. 出コマンドを処理するためのプログラムコードを更に備え、この出コマンドを処理するためのプログラムコードは、出コマンドと、選択された行先コンテンツノードに関連したコマンドメモリのコマンドとの間の衝突を回避するためのプログラムコードを含み、そして出コマンドを記憶するためのプログラムコードは、処理された出コマンドを記憶するためのプログラムコードを含む、請求項58に記載のコンピュータプログラム製品。
  68. 衝突を回避するためのプログラムコードは、コマンドメモリから衝突コマンドを除去するためのプログラムコードを含む、請求項67に記載のコンピュータプログラム製品。
  69. 衝突を回避するためのプログラムコードは、コマンドメモリからの衝突コマンドを出コマンドに合併させるプログラムコードを含む、請求項67に記載のコンピュータプログラム製品。
  70. 衝突を回避するためのプログラムコードは、出コマンドを破棄するプログラムコードを含む、請求項67に記載のコンピュータプログラム製品。
  71. 衝突を回避するためのプログラムコードは、出コマンドを破棄しそしてコマンドメモリから衝突コマンドを除去するプログラムコードを含む、請求項67に記載のコンピュータプログラム製品。
  72. 前記出コマンドは、eメールメッセージを削除するためのコマンドを含み、
    前記コマンドメモリからの衝突コマンドは、同じeメールメッセージに関係したコマンドを含み、そして
    衝突を回避するためのプログラムコードは、コマンドメモリから衝突コマンドを除去するプログラムコードを含む、請求項67に記載のコンピュータプログラム製品。
  73. コマンドメモリからの衝突コマンドは、eメールメッセージを追加するためのコマンドを含み、
    前記出コマンドは、eメールメッセージの読み取りフラグを更新するためのコマンドを含み、そして
    衝突を回避するためのプログラムコードは、コマンドメモリからの衝突コマンドと出コマンドとを合併させるプログラムコードを含む、請求項67に記載のコンピュータプログラム製品。
  74. 前記出コマンドを前記合併されたコマンドに置き換えそして前記コマンドメモリのコマンドを除去するためのプログラムコードを更に備えた、請求項23に記載のコンピュータプログラム製品。
  75. 前記出コマンドを破棄しそして前記コマンドメモリのコマンドを前記合併されたコマンドに置き換えるプログラムコードを更に備えた、請求項23に記載のコンピュータプログラム製品。
  76. 入待ち行列から、第1コンテンツノードに関連したコマンドメモリにおける入イン・トランシット待ち行列へ入コマンドを移動するためのプログラムコードを更に備えた、請求項57に記載のコンピュータプログラム製品。
  77. 入コマンドを破棄することを決定するためのプログラムコードと、
    入イン・トランシット待ち行列から入コマンドを破棄するためのプログラムコードと、
    を備えた請求項76に記載のコンピュータプログラム製品。
  78. 入コマンドの処理に関係したエラー状態を検出するプログラムコードと、
    エラー状態の検出に応答して、入イン・トランシット待ち行列から、第1コンテンツノードに関連した入待ち行列へ入コマンドを移動するプログラムコードと、
    を更に備えた請求項76に記載のコンピュータプログラム製品。
  79. 出待ち行列から、選択された行先コンテンツノードに関連したコマンドメモリの出イン・トランシット待ち行列へ出コマンドを移動させるプログラムコードを更に備えた、請求項57に記載のコンピュータプログラム製品。
  80. 出コマンドを破棄することを決定するためのプログラムコードと、
    出イン・トランシット待ち行列から出コマンドを破棄するためのプログラムコードと、
    を更に備えた請求項79に記載のコンピュータプログラム製品。
  81. 選択された行先コンテンツノードにより出コマンドが受け取られたという確認を受け取るプログラムコードと、
    前記確認を受け取るのに応答して前記出イン・トランシット待ち行列から出コマンドを破棄するプログラムコードと、
    を更に備えた請求項79に記載のコンピュータプログラム製品。
  82. 出コマンドの配送に関係したエラー状態を検出するプログラムコードと、
    前記エラー状態の検出に応答して、出イン・トランシット待ち行列から、前記選択された行先コンテンツノードに関連した出待ち行列へ出コマンドを移動させるプログラムコードと、
    を更に備えた請求項79に記載のコンピュータプログラム製品。
JP2008521440A 2005-07-14 2006-07-06 コンテンツルーター Active JP4881380B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/182,287 US7849199B2 (en) 2005-07-14 2005-07-14 Content router
US11/182,287 2005-07-14
PCT/US2006/026304 WO2007011533A2 (en) 2005-07-14 2006-07-06 Content router

Publications (3)

Publication Number Publication Date
JP2009510811A true JP2009510811A (ja) 2009-03-12
JP2009510811A5 JP2009510811A5 (ja) 2009-08-27
JP4881380B2 JP4881380B2 (ja) 2012-02-22

Family

ID=37661574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521440A Active JP4881380B2 (ja) 2005-07-14 2006-07-06 コンテンツルーター

Country Status (6)

Country Link
US (3) US7849199B2 (ja)
EP (1) EP1908256A2 (ja)
JP (1) JP4881380B2 (ja)
KR (1) KR101035472B1 (ja)
CN (1) CN101317416A (ja)
WO (1) WO2007011533A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011091802A (ja) * 2009-10-21 2011-05-06 Palo Alto Research Center Inc ネットワークにおける階層構造可変長識別子を備えたパケットを転送するためのコンピュータ実施方法
JP2011135575A (ja) * 2009-12-24 2011-07-07 Samsung Electronics Co Ltd コンテンツ名ベースの端末装置、そのルーティング方法、及びルーティングテーブルを用いるネットワーク装置
JP2020167705A (ja) * 2015-06-02 2020-10-08 ライブパーソン, インコーポレイテッド 一貫性重み付けおよびルーティング規則に基づく動的通信ルーティング

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880610B2 (en) * 2003-09-11 2014-11-04 International Business Machines Corporation Managing locally initiated electronic mail attached documents
AU2005266943C1 (en) * 2004-07-23 2011-01-06 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
US20070038703A1 (en) * 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US20070016632A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
US20070016636A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070014243A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for provisioning a user device
US7631045B2 (en) * 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
US8112549B2 (en) 2005-07-14 2012-02-07 Yahoo! Inc. Alert mechanism for notifying multiple user devices sharing a connected-data-set
US8417782B2 (en) 2005-07-14 2013-04-09 Yahoo! Inc. Universal calendar event handling
US20070014277A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US7623515B2 (en) * 2005-07-14 2009-11-24 Yahoo! Inc. Content router notification
US7849199B2 (en) * 2005-07-14 2010-12-07 Yahoo ! Inc. Content router
US7788352B2 (en) * 2005-07-14 2010-08-31 Yahoo! Inc. System and method for servicing a user device
US20070100856A1 (en) * 2005-10-21 2007-05-03 Yahoo! Inc. Account consolidation
US7873696B2 (en) 2005-10-28 2011-01-18 Yahoo! Inc. Scalable software blade architecture
US7779157B2 (en) 2005-10-28 2010-08-17 Yahoo! Inc. Recovering a blade in scalable software blade architecture
US7870288B2 (en) * 2005-10-28 2011-01-11 Yahoo! Inc. Sharing data in scalable software blade architecture
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US8065680B2 (en) * 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table
US9367832B2 (en) * 2006-01-04 2016-06-14 Yahoo! Inc. Synchronizing image data among applications and devices
US20070186173A1 (en) * 2006-02-03 2007-08-09 Yahoo! Inc. Instant messenger alerts and organization systems
US20070186177A1 (en) * 2006-02-03 2007-08-09 Yahoo! Inc. Content navigation interfaces and associated methods
US9880702B2 (en) * 2006-02-03 2018-01-30 Yahoo Holdings, Inc. Content structures and content navigation interfaces
US8531953B2 (en) * 2006-02-21 2013-09-10 Barclays Capital Inc. System and method for network traffic splitting
US8055444B2 (en) * 2006-04-04 2011-11-08 Yahoo! Inc. Content display and navigation interface
US20070245006A1 (en) * 2006-04-18 2007-10-18 Nokia Corporation Apparatus, method and computer program product to provide ad hoc message recipient lists
US9781071B2 (en) * 2006-06-28 2017-10-03 Nokia Technologies Oy Method, apparatus and computer program product for providing automatic delivery of information to a terminal
CA2657094C (en) * 2006-07-07 2018-05-01 Fringland Ltd. Identifying network entities in a peer-to-peer network
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
US7873988B1 (en) 2006-09-06 2011-01-18 Qurio Holdings, Inc. System and method for rights propagation and license management in conjunction with distribution of digital content in a social network
US7992171B2 (en) 2006-09-06 2011-08-02 Qurio Holdings, Inc. System and method for controlled viral distribution of digital content in a social network
US7925592B1 (en) 2006-09-27 2011-04-12 Qurio Holdings, Inc. System and method of using a proxy server to manage lazy content distribution in a social network
US8554827B2 (en) * 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
US7886334B1 (en) 2006-12-11 2011-02-08 Qurio Holdings, Inc. System and method for social network trust assessment
US9195996B1 (en) 2006-12-27 2015-11-24 Qurio Holdings, Inc. System and method for classification of communication sessions in a social network
US20080198422A1 (en) * 2007-02-19 2008-08-21 Tamara Lynne Casey Contextual Management of Multiple Device Capabilities in a Communication Device
US20080208980A1 (en) * 2007-02-26 2008-08-28 Michael Ruarri Champan Email aggregation system with supplemental processing information addition/removal and related methods
US20080270629A1 (en) * 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
US7818384B2 (en) * 2007-07-26 2010-10-19 Rachal Eric M Simultaneous synchronous split-domain email routing with conflict resolution
US20090182739A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Using metadata to route documents
US8533280B1 (en) * 2008-05-02 2013-09-10 BitGravity, Inc. Distributed origin content delivery network
AU2010202034B1 (en) 2010-04-07 2010-12-23 Limelight Networks, Inc. Partial object distribution in content delivery network
AU2010276462B1 (en) 2010-12-27 2012-01-12 Limelight Networks, Inc. Partial object caching
CN102203758A (zh) 2008-09-19 2011-09-28 杰出网络公司 内容传递网络流服务器片段分发
US8694448B2 (en) * 2008-12-16 2014-04-08 At&T Intellectual Property I, L.P. Method and apparatus for providing an adaptive parser
CN102498479B (zh) * 2009-06-19 2015-05-13 日本技术贸易株式会社 内容管理装置和内容管理方法
KR101530997B1 (ko) * 2009-06-23 2015-06-25 삼성전자주식회사 셀간 간섭을 집중시키는 불휘발성 메모리 장치의 프로그램 방법
CN102035720B (zh) * 2009-09-24 2012-07-04 华为技术有限公司 数据传输方法和***
US8805925B2 (en) * 2009-11-20 2014-08-12 Nbrella, Inc. Method and apparatus for maintaining high data integrity and for providing a secure audit for fraud prevention and detection
NL2004765C2 (en) * 2010-05-25 2011-11-28 Arjuna Decogabat B V Energy self-sufficient datacenter for processing and storage of classified data.
US20120084423A1 (en) * 2010-10-04 2012-04-05 Openwave Systems Inc. Method and system for domain based dynamic traffic steering
US8918835B2 (en) * 2010-12-16 2014-12-23 Futurewei Technologies, Inc. Method and apparatus to create and manage virtual private groups in a content oriented network
US8819152B2 (en) 2011-01-25 2014-08-26 Kristy Joi Downing Email addressee verification systems and methods for the same
US8799400B2 (en) * 2011-02-02 2014-08-05 Imvu, Inc. System and method for managing multiple queues of non-persistent messages in a networked environment
US8713269B2 (en) 2011-07-14 2014-04-29 Intellectual Ventures Fund 83 Llc Distributed image acquisition, storage, and backup system
US9602358B2 (en) 2011-08-25 2017-03-21 Vmware, Inc. Extensible infrastructure for representing networks including virtual machines
US9927958B2 (en) * 2011-08-25 2018-03-27 Vmware, Inc. User interface for networks including virtual machines
US9729669B2 (en) 2012-03-15 2017-08-08 Alcatel Lucent Method and system for fast and large-scale longest prefix matching
US10142122B1 (en) 2012-04-11 2018-11-27 Google Llc User interfaces, systems and methods for configuring smart devices for interoperability with a smart hub device
US10075334B1 (en) 2012-04-11 2018-09-11 Google Llc Systems and methods for commissioning a smart hub device
US9198204B2 (en) 2012-04-11 2015-11-24 Google Inc. Apparatus and method for seamless commissioning of wireless devices
US10397013B1 (en) 2012-04-11 2019-08-27 Google Llc User interfaces, systems and methods for configuring smart devices for interoperability with a smart hub device
CN102831894B (zh) * 2012-08-09 2014-07-09 华为终端有限公司 指令处理方法、装置和***
US9374420B2 (en) * 2012-12-14 2016-06-21 Microsoft Technology Licensing, Llc Content source selection in a P2P network
US9001697B2 (en) 2012-12-14 2015-04-07 Western Digital Technologies, Inc. Methods and devices for replacing and configuring a router in a network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9143929B1 (en) 2012-12-14 2015-09-22 Western Digital Technologies, Inc. Methods and devices configured for IP address conflict detection and resolution upon assignment of WAN IP address
KR102022592B1 (ko) * 2013-03-04 2019-09-19 삼성전자주식회사 전자 장치에서 전송 정보를 관리하기 위한 방법 및 장치
US9922580B2 (en) 2013-04-30 2018-03-20 Google Llc Apparatus and method for the virtual demonstration of a smart phone controlled smart home using a website
CN108063717A (zh) * 2013-05-31 2018-05-22 华为技术有限公司 信息为中心网络icn中转发报文的方法、装置及***
KR101545670B1 (ko) 2013-07-25 2015-08-19 서울시립대학교 산학협력단 데이터 연산 방법 및 시스템
IN2013CH05044A (ja) 2013-11-08 2015-05-29 Huawei Technologies India Pvt Ltd
US10088818B1 (en) 2013-12-23 2018-10-02 Google Llc Systems and methods for programming and controlling devices with sensor data and learning
US9420331B2 (en) 2014-07-07 2016-08-16 Google Inc. Method and system for categorizing detected motion events
US10601604B2 (en) 2014-11-12 2020-03-24 Google Llc Data processing systems and methods for smart hub devices
US20170371727A1 (en) * 2014-12-22 2017-12-28 Hewlett Packard Enterprise Development Lp Execution of interaction flows
US10454872B2 (en) * 2015-06-22 2019-10-22 Microsoft Technology Licensing, Llc Group email management
US11019182B2 (en) 2016-02-18 2021-05-25 Renesas Electronics Corporation Message handler
US10282125B2 (en) * 2017-04-17 2019-05-07 International Business Machines Corporation Distributed content deduplication using hash-trees with adaptive resource utilization in distributed file systems
CN111954996B (zh) * 2017-12-19 2022-08-23 维我***公司 用于控制电子通信的***和方法
US10652077B2 (en) 2018-08-31 2020-05-12 Subcom, Llc Techniques for interfacing between web services and interface description language (IDL)-based remote procedure call (RPC) services and an optical communication system implementing same
CN110166523B (zh) * 2019-04-09 2022-12-27 腾讯科技(深圳)有限公司 内容更新方法、装置、设备和计算机可读存储介质
US11516290B2 (en) * 2019-12-18 2022-11-29 International Business Machines Corporation Sharing tuples across independent coordination namespace systems

Family Cites Families (245)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4270168A (en) 1978-08-31 1981-05-26 United Technologies Corporation Selective disablement in fail-operational, fail-safe multi-computer control system
DE3341605A1 (de) 1983-11-17 1985-05-30 Consortium für elektrochemische Industrie GmbH, 8000 München Alpha-tertiaere dimethylacetale, ihre herstellung und verwendung als riechstoffe
JP2840320B2 (ja) * 1989-09-20 1998-12-24 株式会社日立製作所 半導体記憶装置
US5436960A (en) 1991-05-20 1995-07-25 Campana, Jr.; Thomas J. Electronic mail system with RF communications to mobile processors and method of operation thereof
US5371882A (en) 1992-01-14 1994-12-06 Storage Technology Corporation Spare disk drive replacement scheduling system for a disk drive array data storage subsystem
US5371743A (en) 1992-03-06 1994-12-06 Data General Corporation On-line module replacement in a multiple module data processing system
FR2692055B1 (fr) 1992-06-09 1996-10-25 Bull Sa Dispositif de conception de reseaux de commande d'informations pour la modelisation de tous processus.
DE69329005T2 (de) 1992-10-26 2001-03-22 Sun Microsystems Inc Fernbedienungs- und Zeigegerät
US5440719A (en) 1992-10-27 1995-08-08 Cadence Design Systems, Inc. Method simulating data traffic on network in accordance with a client/sewer paradigm
US5625757A (en) 1993-12-24 1997-04-29 Hitachi, Ltd. Printing system
JP2699872B2 (ja) 1994-06-01 1998-01-19 日本電気株式会社 データ受信装置およびバッファ管理方法
US5475813A (en) 1994-07-18 1995-12-12 International Business Machines Corporation Routing transactions in the presence of failing servers
US5684952A (en) 1994-07-25 1997-11-04 Apple Computer, Inc. Supervisory control system for networked multimedia workstations that provides reconfiguration of workstations by remotely updating the operating system
US5742905A (en) 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
EP0709779B1 (en) 1994-10-31 2001-05-30 International Business Machines Corporation Virtual shared disks with application-transparent recovery
US5633484A (en) 1994-12-26 1997-05-27 Motorola, Inc. Method and apparatus for personal attribute selection and management using a preference memory
US5684990A (en) 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5774668A (en) 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6883034B1 (en) 1995-06-23 2005-04-19 Cisco Technology, Inc. Method of resolving conflicts in access control lists in router by comparing elements in the lists based on subsumption relations
US5727202A (en) 1995-10-18 1998-03-10 Palm Computing, Inc. Method and apparatus for synchronizing information on two different computer systems
JP3459149B2 (ja) 1995-11-06 2003-10-20 シャープ株式会社 電子メール転送システム
US5873084A (en) 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
US5815663A (en) 1996-03-15 1998-09-29 The Robert G. Uomini And Louise B. Bidwell Trust Distributed posting system using an indirect reference protocol
JP3451415B2 (ja) 1996-03-29 2003-09-29 富士通株式会社 ネットワーク管理システムのデータベース同期方法
US5852724A (en) 1996-06-18 1998-12-22 Veritas Software Corp. System and method for "N" primary servers to fail over to "1" secondary server
US5764908A (en) 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US6069896A (en) 1996-10-15 2000-05-30 Motorola, Inc. Capability addressable network and method therefor
US5787437A (en) 1996-10-29 1998-07-28 Hewlett-Packard Company Method and apparatus for shared management information via a common repository
US6169789B1 (en) 1996-12-16 2001-01-02 Sanjay K. Rao Intelligent keyboard system
US5864653A (en) 1996-12-31 1999-01-26 Compaq Computer Corporation PCI hot spare capability for failed components
US6006274A (en) 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US6092169A (en) 1997-04-02 2000-07-18 Compaq Computer Corporation Apparatus and method for storage subsystem drive movement and volume addition
US6157944A (en) 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5937168A (en) 1997-05-30 1999-08-10 Bellsouth Corporation Routing information within an adaptive routing architecture of an information retrieval system
JP3148152B2 (ja) 1997-06-27 2001-03-19 日本電気株式会社 電子メールシステムを用いた同報メールの配送方法
US6073172A (en) 1997-07-14 2000-06-06 Freegate Corporation Initializing and reconfiguring a secure network interface
US6141690A (en) 1997-07-31 2000-10-31 Hewlett-Packard Company Computer network address mapping
US6021449A (en) 1997-08-01 2000-02-01 International Business Machines Corporation Video FIFO overflow control method that blocks video encoder data when overflow is imminent and resumes flow when frames sizes have returned to nominal size
US6134581A (en) 1997-10-06 2000-10-17 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6170065B1 (en) 1997-11-14 2001-01-02 E-Parcel, Llc Automatic system for dynamic diagnosis and repair of computer configurations
US6236991B1 (en) 1997-11-26 2001-05-22 International Business Machines Corp. Method and system for providing access for categorized information from online internet and intranet sources
KR100301825B1 (ko) 1997-12-29 2001-10-27 구자홍 엠펙비디오디코디시스템및엠펙비디오디코딩시스템의오버플로우처리방법
JPH11212884A (ja) 1998-01-22 1999-08-06 Internatl Business Mach Corp <Ibm> 電子メール伝送装置およびその方法
DE19805711C2 (de) 1998-02-12 1999-11-18 Siemens Ag Verfahren und Anordnung zum Austausch einer defekten Baugruppe vorzugsweise innerhalb einer digitalen Vermittlungsstellenanlage
US6799224B1 (en) 1998-03-10 2004-09-28 Quad Research High speed fault tolerant mass storage network information server
US7028312B1 (en) 1998-03-23 2006-04-11 Webmethods XML remote procedure call (XML-RPC)
US6453356B1 (en) 1998-04-15 2002-09-17 Adc Telecommunications, Inc. Data exchange system and method
US6144999A (en) 1998-05-29 2000-11-07 Sun Microsystems, Incorporated Method and apparatus for file system disaster recovery
US6463463B1 (en) 1998-05-29 2002-10-08 Research In Motion Limited System and method for pushing calendar event messages from a host system to a mobile data communication device
US6163856A (en) 1998-05-29 2000-12-19 Sun Microsystems, Inc. Method and apparatus for file system disaster recovery
US6105067A (en) 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6530083B1 (en) 1998-06-19 2003-03-04 Gateway, Inc System for personalized settings
US6108779A (en) 1998-07-17 2000-08-22 International Business Machines Corporation Server and computer network that permit a client to be easily introduced into the computer network
US6769124B1 (en) 1998-07-22 2004-07-27 Cisco Technology, Inc. Persistent storage of information objects
US6192396B1 (en) 1998-08-11 2001-02-20 Canon Kabushiki Kaisha Electronic mail with recipient-specific content
EP0986225A1 (en) 1998-09-11 2000-03-15 Visto Corporation System and method for securely synchronizing multiple copies of a workspace element in a network
US6489954B1 (en) 1998-10-13 2002-12-03 Prophet Financial Systems, Inc. System and method for permitting a software routine having restricted local access to utilize remote resources to generate locally usable data structure
US6304981B1 (en) 1998-10-19 2001-10-16 Gateway, Inc. Adaptive shutdown system and method for an information handling system
US6256676B1 (en) 1998-11-18 2001-07-03 Saga Software, Inc. Agent-adapter architecture for use in enterprise application integration systems
US20030097361A1 (en) 1998-12-07 2003-05-22 Dinh Truong T Message center based desktop systems
US6857123B1 (en) 1998-12-18 2005-02-15 International Business Machines Corporation Method and apparatus for a Meta Data Service in a data processing system
US6311187B1 (en) 1998-12-29 2001-10-30 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured data under a push model
US6496941B1 (en) 1998-12-29 2002-12-17 At&T Corp. Network disaster recovery and analysis tool
JP2000209254A (ja) 1999-01-11 2000-07-28 Mitsubishi Electric Corp 情報提供システム
US6463032B1 (en) 1999-01-27 2002-10-08 Advanced Micro Devices, Inc. Network switching system having overflow bypass in internal rules checker
US6457062B1 (en) 1999-04-08 2002-09-24 Palm, Inc. System and method for synchronizing multiple calendars over wide area network
US6647260B2 (en) 1999-04-09 2003-11-11 Openwave Systems Inc. Method and system facilitating web based provisioning of two-way mobile communications devices
US6671824B1 (en) 1999-04-19 2003-12-30 Lakefield Technologies Group Cable network repair control system
US6505236B1 (en) 1999-04-30 2003-01-07 Thinmail, Inc. Network-based mail attachment storage system and method
US6904043B1 (en) 1999-05-21 2005-06-07 Advanced Micro Devices, Inc. Apparatus and methods for storing and processing header information in a network switch
US6477565B1 (en) 1999-06-01 2002-11-05 Yodlee.Com, Inc. Method and apparatus for restructuring of personalized data for transmission from a data network to connected and portable network appliances
US6543004B1 (en) 1999-07-29 2003-04-01 Hewlett-Packard Development Company, L.P. Method and apparatus for archiving and restoring data
US6880126B1 (en) 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6859834B1 (en) 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US6477580B1 (en) 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6633907B1 (en) 1999-09-10 2003-10-14 Microsoft Corporation Methods and systems for provisioning online services
AU4674400A (en) 1999-09-10 2001-04-10 Avantgo, Inc. System, method, and computer program product for interactive interfacing with mobile devices
US6822951B1 (en) 1999-11-05 2004-11-23 Texas Instruments Incorporated Method and apparatus for routing messages in a wireless network
US7574351B2 (en) 1999-12-14 2009-08-11 Texas Instruments Incorporated Arranging CELP information of one frame in a second packet
US6571354B1 (en) 1999-12-15 2003-05-27 Dell Products, L.P. Method and apparatus for storage unit replacement according to array priority
US6853713B1 (en) 1999-12-17 2005-02-08 Nortel Networks Limited Client-server network for managing internet protocol voice packets
US6766469B2 (en) 2000-01-25 2004-07-20 Hewlett-Packard Development Company, L.P. Hot-replace of memory
DE10064627B4 (de) 2000-02-02 2004-02-12 International Business Machines Corp. Verfahren und System für die Verarbeitung von E-Mail-Nachrichten in einem Datenübertragungssystem
GB0003604D0 (en) 2000-02-16 2000-04-05 Step Uk Limited System and method for linking information resources
GB0006055D0 (en) 2000-03-14 2000-05-03 Ibm Managing pervasive devices
AUPQ627700A0 (en) 2000-03-17 2000-04-15 Nuc-One Enterprises Pty Ltd Email alert device
US6665709B1 (en) 2000-03-27 2003-12-16 Securit-E-Doc, Inc. Method, apparatus, and system for secure data transport
JP2001344105A (ja) 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
WO2001076120A2 (en) 2000-04-04 2001-10-11 Stick Networks, Inc. Personal communication device for scheduling presentation of digital content
SE523220C2 (sv) 2000-04-19 2004-04-06 Microsoft Corp Förfarande och system för tillhandahållande av mobila e-posttjänster
US6813770B1 (en) 2000-04-21 2004-11-02 Sun Microsystems, Inc. Abstract syntax notation to interface definition language converter framework for network management
US6868444B1 (en) 2000-05-05 2005-03-15 Interland, Inc. Server configuration management and tracking
US20020016818A1 (en) * 2000-05-11 2002-02-07 Shekhar Kirani System and methodology for optimizing delivery of email attachments for disparate devices
US20020032020A1 (en) 2000-05-12 2002-03-14 Brown Bonnie L. Local and remote email alert apparatus and methods
JP3714850B2 (ja) 2000-05-18 2005-11-09 松下電器産業株式会社 ゲートウェイ装置、接続サーバ装置、インターネット端末、ネットワークシステム
US6865157B1 (en) 2000-05-26 2005-03-08 Emc Corporation Fault tolerant shared system resource with communications passthrough providing high availability communications
US6785868B1 (en) 2000-05-31 2004-08-31 Palm Source, Inc. Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users
US6941148B2 (en) 2000-06-03 2005-09-06 International Business Machines Corporation Device registry for automatic connection and data exchange between pervasive devices and backend systems
US7051087B1 (en) 2000-06-05 2006-05-23 Microsoft Corporation System and method for automatic detection and configuration of network parameters
US20020039420A1 (en) 2000-06-12 2002-04-04 Hovav Shacham Method and apparatus for batched network security protection server performance
US6751661B1 (en) 2000-06-22 2004-06-15 Applied Systems Intelligence, Inc. Method and system for providing intelligent network management
US6785680B1 (en) 2000-06-26 2004-08-31 International Business Machines Corporation Method and apparatus for providing individualized client data from a service provider to a portable digital device of a client
US6577905B1 (en) 2000-06-29 2003-06-10 International Business Machines Corporation Apparatus and method for providing a transient port
US6452809B1 (en) 2000-11-10 2002-09-17 Galactic Computing Corporation Scalable internet engine
WO2002009109A1 (fr) 2000-07-21 2002-01-31 Fujitsu Limited Dispositif d'enregistrement de disque, procede de remplacement de secteur pour disque vierge, et disque vierge
US6944662B2 (en) 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
US7035902B1 (en) 2000-08-11 2006-04-25 International Business Machines Corporation Method, article of manufacture and apparatus for processing an electronic mail document
US6687716B1 (en) 2000-09-13 2004-02-03 Radiant Data Corporation File consistency protocols and methods for carrying out the protocols
EP1326271A4 (en) * 2000-09-18 2005-08-24 Tokyo Electron Ltd METHOD FOR FILMING A GATE INSULATOR, DEVICE FOR FILMING A GATE INSULATOR AND A CLUSTER TOOL
US6785712B1 (en) 2000-09-21 2004-08-31 Rockwell Collins, Inc. Airborne e-mail data transfer protocol
US6611849B1 (en) 2000-09-29 2003-08-26 Palm Source, Inc. System for synchronizing databases on multiple devices utilizing a home base
US6901429B2 (en) 2000-10-27 2005-05-31 Eric Morgan Dowling Negotiated wireless peripheral security systems
US6510050B1 (en) 2000-11-21 2003-01-21 Sun Microsystems, Inc. High density packaging for multi-disk systems
US20020156756A1 (en) 2000-12-06 2002-10-24 Biosentients, Inc. Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs
JP2002198925A (ja) 2000-12-25 2002-07-12 Matsushita Electric Ind Co Ltd データ受信装置及びその方法
NO20006683D0 (no) 2000-12-28 2000-12-28 Abb Research Ltd Fremgangsmåte for tidssynkronisering
US6931454B2 (en) 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
US20030189593A1 (en) 2001-01-05 2003-10-09 Yarvin Curtis G. Method and apparatus for dynamically updating a markup language based user interface
US6941326B2 (en) 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
US20020116396A1 (en) 2001-02-22 2002-08-22 Christopher Somers System for providing electronic contact information from a central source and method for updating contact information
US7085824B2 (en) 2001-02-23 2006-08-01 Power Measurement Ltd. Systems for in the field configuration of intelligent electronic devices
US7339786B2 (en) 2001-03-05 2008-03-04 Intel Corporation Modular server architecture with Ethernet routed across a backplane utilizing an integrated Ethernet switch module
US20020133821A1 (en) 2001-03-08 2002-09-19 Koninklijke Philips Electronics N.V. Activity schedule controls personalized electronic content guide
JP2002269010A (ja) 2001-03-09 2002-09-20 Pioneer Electronic Corp 電子メール処理システム及びメールサーバ
AU2002303126A1 (en) 2001-03-16 2002-10-03 Novell, Inc. Client-server model for synchronization of files
US20020138579A1 (en) 2001-03-20 2002-09-26 Bernol Goldberg Method and system for completing e-mail transmissions
US6711579B2 (en) 2001-04-20 2004-03-23 Sree Ayyanar Spinning And Weaving Mills Limited Data storage schema independent programming for data retrieval using semantic bridge
US6839564B2 (en) 2001-04-25 2005-01-04 Nokia Corporation Synchronization of database data
WO2002091209A2 (en) 2001-05-08 2002-11-14 Narad Networks, Inc. System and method for network service provisioning
US7051088B2 (en) 2001-05-14 2006-05-23 Hewlett-Packard Development Company, L.P. Systems and methods for providing off-line backup of a programmable device's configuration data to users of programmable devices at a service location
US6744874B2 (en) 2001-05-15 2004-06-01 Hengning Wu Method of universal communication and devices thereof
US7089297B1 (en) 2001-05-25 2006-08-08 Oracle International Corporation Mechanism for automatically configuring a network resource
US7020662B2 (en) 2001-05-29 2006-03-28 Sun Microsystems, Inc. Method and system for determining a directory entry's class of service based on the value of a specifier in the entry
US6596941B2 (en) * 2001-06-13 2003-07-22 Salvatore M. Tripoli A.C. electrical power delivery system for a pickup truck bed utility box
JP3820925B2 (ja) 2001-06-20 2006-09-13 ソニー株式会社 受信装置および方法、情報配信方法、フィルタ蓄積プログラムおよび記録媒体
US6965929B2 (en) 2001-06-29 2005-11-15 Intel Corporation Configuring a network device
US7073083B2 (en) 2001-07-18 2006-07-04 Thomas Licensing Method and system for providing emergency shutdown of a malfunctioning device
US20030023690A1 (en) 2001-07-26 2003-01-30 Sunit Lohtia Method and apparatus for providing selective delivery of notifications to users of multiple devices over a network
US6596077B2 (en) 2001-07-31 2003-07-22 Illinois Institute Of Technology Controlled nucleation of protein crystals
US7093006B2 (en) 2001-07-31 2006-08-15 Motorola, Inc. Method of dynamically configuring access to services
US7089259B1 (en) 2001-08-03 2006-08-08 Mcafee, Inc. System and method for providing a framework for network appliance management in a distributed computing environment
US7080123B2 (en) 2001-09-20 2006-07-18 Sun Microsystems, Inc. System and method for preventing unnecessary message duplication in electronic mail
DE60129701T2 (de) 2001-09-21 2008-04-30 Koninklijke Kpn N.V. Computersystem, Datenübertragungsnetz, Computerprogramm und Datenträger, alle zur Filterung von einen Inhalt gemäss einer Markierungssprache einschliessenden Nachrichten
US20030074358A1 (en) 2001-09-24 2003-04-17 Siamak Sarbaz Integration, management and processing of network data from disparate sources
US6875268B2 (en) * 2001-09-26 2005-04-05 Hrl Laboratories, Llc Method of improving a surface of a substrate for bonding
JP2003108417A (ja) 2001-10-01 2003-04-11 Toshiba Corp データ共有およびデータ配信方法
US7570668B2 (en) 2001-10-03 2009-08-04 Nokia Corporation Data synchronization
US7293109B2 (en) 2001-10-15 2007-11-06 Semandex Networks, Inc. Dynamic content based multicast routing in mobile networks
US7506059B2 (en) 2001-10-26 2009-03-17 Nokia Corporation Mobile client provisioning web service
US6622192B2 (en) 2001-11-13 2003-09-16 Inventec Corporation Method of shutting down a server in safety
US7487262B2 (en) * 2001-11-16 2009-02-03 At & T Mobility Ii, Llc Methods and systems for routing messages through a communications network based on message content
US7373362B2 (en) 2001-11-19 2008-05-13 Extended Systems, Inc. Coordinated synchronization
US6904482B2 (en) 2001-11-20 2005-06-07 Intel Corporation Common boot environment for a modular server system
GB0128243D0 (en) 2001-11-26 2002-01-16 Cognima Ltd Cognima patent
GB2382962A (en) * 2001-12-07 2003-06-11 Altio Ltd Data routing without using an address
US8768715B2 (en) 2001-12-13 2014-07-01 Oracle America, Inc. System and method for resource management
US6670982B2 (en) 2002-01-04 2003-12-30 Hewlett-Packard Development Company, L.P. Wireless digital camera media
US20030130882A1 (en) 2002-01-09 2003-07-10 Saxon Shuttleworth System and method for synchronous peer-to-peer appointment scheduling facilitation
US20030177171A1 (en) 2002-01-22 2003-09-18 Brown Bruce Loring Electronic mail retrieval
US20030145021A1 (en) 2002-01-31 2003-07-31 Jarmo Parkkinen Method and arrangement for serially aligning database transactions
US6665179B2 (en) 2002-02-06 2003-12-16 Shin Jiuh Corp. Blade server module
US20030212684A1 (en) 2002-03-11 2003-11-13 Markus Meyer System and method for adapting preferences based on device location or network topology
US20040039801A9 (en) 2002-03-11 2004-02-26 Venkatachary Srinivasan System and method for delivering data in a network
US20030172138A1 (en) 2002-03-11 2003-09-11 Mccormack Jonathan I. System and method for managing two or more electronic devices
US6848034B2 (en) 2002-04-04 2005-01-25 International Business Machines Corporation Dense server environment that shares an IDE drive
US20030195922A1 (en) 2002-04-10 2003-10-16 Alcatel SNMP trap and inform shaping mechanism
DE60227198D1 (de) 2002-04-15 2008-07-31 Nokia Corp Verfahren und einrichtung zur behandlung von synchronisationsbezogenen informationen
US20040103157A1 (en) 2002-04-17 2004-05-27 Nokia Corporation Store-and-forward server and method for storing and forwarding for instant messaging service implemented in IP multimedia core network subsystem (IMS)
AU2002255192A1 (en) 2002-04-17 2003-10-27 Nokia Corporation Method and network device for synchronization of database data routed through a router
US6892311B2 (en) 2002-05-08 2005-05-10 Dell Usa, L.P. System and method for shutting down a host and storage enclosure if the status of the storage enclosure is in a first condition and is determined that the storage enclosure includes a critical storage volume
US20030212818A1 (en) 2002-05-08 2003-11-13 Johannes Klein Content based message dispatch
US20030212739A1 (en) 2002-05-09 2003-11-13 Antoine Boucher Store and forward architecture
US20030217125A1 (en) 2002-05-15 2003-11-20 Lucent Technologies, Inc. Intelligent end user gateway device
US20040078450A1 (en) 2002-07-08 2004-04-22 Tsu-Wei Chen Packet routing via payload inspection for digital content delivery
US7152100B2 (en) 2002-07-09 2006-12-19 Adtran, Inc. System and method for provisioning network access devices
KR100522178B1 (ko) * 2002-07-30 2005-10-18 주식회사 애트랩 광마우스 및 광마우스의 오동작 방지 방법
US7379990B2 (en) 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
JP2004135249A (ja) 2002-08-13 2004-04-30 Murata Mach Ltd 電子メールサーバ装置
US7036902B2 (en) * 2002-08-22 2006-05-02 Canon Kabushiki Kaisha Printing apparatus
US20040044799A1 (en) 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US8386568B2 (en) 2002-09-05 2013-02-26 International Business Machines Corporation Annotating and routing message content
US20040059834A1 (en) 2002-09-19 2004-03-25 Bellsouth Intellectual Property Corporation Efficient exchange of text based protocol language information
US7165224B2 (en) 2002-10-03 2007-01-16 Nokia Corporation Image browsing and downloading in mobile networks
AU2003284292A1 (en) 2002-10-21 2004-05-13 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
FI114750B (fi) 2002-10-29 2004-12-15 Nokia Corp Datan synkronoiminen
US7366796B2 (en) 2002-11-05 2008-04-29 Microsoft Corporation Method and levels of ping notification
US20040088414A1 (en) 2002-11-06 2004-05-06 Flynn Thomas J. Reallocation of computing resources
US20050185936A9 (en) 2002-11-08 2005-08-25 Ich-Kien Lao Mobile and vehicle-based digital video system
US20040092273A1 (en) 2002-11-08 2004-05-13 Openwave Systems Inc. Asynchronous messaging based system for publishing and accessing content and accessing applications on a network with mobile devices
US7343168B2 (en) 2002-11-08 2008-03-11 Openwave Systems Inc. Asynchronous messaging based system for publishing and accessing content and accessing applications on a network with mobile devices
FI114245B (fi) 2002-11-13 2004-09-15 Nokia Corp Synkronointi-istunnon järjestäminen
TW200411465A (en) 2002-11-19 2004-07-01 Xepa Corp An accounting and management system for self-provisioning digital services
US7047448B2 (en) 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US6895480B2 (en) 2002-12-10 2005-05-17 Lsi Logic Corporation Apparatus and method for sharing boot volume among server blades
US6865597B1 (en) 2002-12-20 2005-03-08 Veritas Operating Corporation System and method for providing highly-available volume mount points
US7409674B2 (en) 2002-12-26 2008-08-05 Research In Motion Limited System and method of creating and communicating with component based wireless applications
US20040143836A1 (en) 2003-01-21 2004-07-22 Mccormack Jonathan Ian System and method for sharing objects among two or more electronic devices
US7046668B2 (en) 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US20040230661A1 (en) 2003-01-29 2004-11-18 Gus Rashid Rules based notification system
EP1443701A1 (en) 2003-01-31 2004-08-04 Motorola Inc. Management of a communications terminal using a management platform in a different administrative domain
US20040181580A1 (en) 2003-03-11 2004-09-16 Etienne Baranshamaje Method, computer useable medium, and system for portable email messaging
WO2004086191A2 (en) 2003-03-20 2004-10-07 Rosenfelt Michael I Method and system for providing backup messages to wireless devices during outages
US6836778B2 (en) 2003-05-01 2004-12-28 Oracle International Corporation Techniques for changing XML content in a relational database
US7275073B2 (en) 2003-05-07 2007-09-25 Good Technology, Inc. System and method for notifying mobile devices based on device type and network capabilities
US7397823B2 (en) 2003-06-04 2008-07-08 Agilent Technologies, Inc. Providing time synchronization across store-and-forward communication devices using protocol-enabled switches
US20040247090A1 (en) 2003-06-05 2004-12-09 Nurmela Wayne Denis Process for providing alert notification to communication devices
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
EP1639435A4 (en) 2003-06-27 2009-12-30 Hewlett Packard Development Co SYSTEM AND METHOD FOR DOWNLOADING UPDATE PACKAGES INTO A MOBILE HAND APPARATUS IN A CARRIER NETWORK
WO2005008999A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Hardware acceleration for diffie hellman in a wireless lan
WO2005008981A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Apparatus for layer 3 switching and network address port translation
WO2005008998A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Initialization vector generation algorithm and hardware architecture
WO2005010715A2 (en) 2003-07-21 2005-02-03 Fusionone, Inc. Device message management system
US20050021637A1 (en) 2003-07-22 2005-01-27 Red Hat, Inc. Electronic mail control system
WO2005011215A1 (en) 2003-07-28 2005-02-03 Mohamed Asif Abdul Majeed E-mail reception notification system
CA2476156A1 (en) 2003-07-30 2005-01-30 J2X Technologies Inc. System, computer product and method for enabling wireless data synchronization
US7289495B2 (en) 2003-08-07 2007-10-30 Teamon Systems, Inc. Communications system providing adaptive polling based upon user usage patterns and related methods
US7512638B2 (en) 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US20050080891A1 (en) 2003-08-28 2005-04-14 Cauthron David M. Maintenance unit architecture for a scalable internet engine
US20050055698A1 (en) 2003-09-10 2005-03-10 Sap Aktiengesellschaft Server-driven data synchronization method and system
US7035630B2 (en) 2003-09-16 2006-04-25 Research In Motion Limited Demand-based provisioning for a mobile communication device
US7290034B2 (en) 2003-09-18 2007-10-30 Vulcan Portals Inc. Method and system for polling a server for new emails, downloading the new emails in a background process, and caching the downloaded emails for access by an email application of an electronic device, such as a portable computer
US20050067482A1 (en) 2003-09-26 2005-03-31 Wu Daniel Huong-Yu System and method for data capture and management
US7409425B2 (en) 2003-11-13 2008-08-05 International Business Machines Corporation Selective transmission of an email attachment
US20050198351A1 (en) 2004-02-20 2005-09-08 Microsoft Corporation Content-based routing
US7293006B2 (en) 2004-04-07 2007-11-06 Integrated Project Solutions Llc Computer program for storing electronic files and associated attachments in a single searchable database
US20060168225A1 (en) 2004-10-29 2006-07-27 John Gunning Network and a distributed electronic commerce system using the network
US20060259511A1 (en) 2005-05-13 2006-11-16 Yahoo! Inc. Media object organization across information management services
US20070014243A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. System and method for provisioning a user device
US7623515B2 (en) 2005-07-14 2009-11-24 Yahoo! Inc. Content router notification
US20070038703A1 (en) 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US7631045B2 (en) 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
US8112549B2 (en) 2005-07-14 2012-02-07 Yahoo! Inc. Alert mechanism for notifying multiple user devices sharing a connected-data-set
US20070014307A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US8417782B2 (en) 2005-07-14 2013-04-09 Yahoo! Inc. Universal calendar event handling
US20070014277A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US7788352B2 (en) 2005-07-14 2010-08-31 Yahoo! Inc. System and method for servicing a user device
US20070016636A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070016632A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
US7849199B2 (en) 2005-07-14 2010-12-07 Yahoo ! Inc. Content router
US20070100856A1 (en) 2005-10-21 2007-05-03 Yahoo! Inc. Account consolidation
US7779157B2 (en) 2005-10-28 2010-08-17 Yahoo! Inc. Recovering a blade in scalable software blade architecture
US7870288B2 (en) 2005-10-28 2011-01-11 Yahoo! Inc. Sharing data in scalable software blade architecture
US7873696B2 (en) 2005-10-28 2011-01-18 Yahoo! Inc. Scalable software blade architecture
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011091802A (ja) * 2009-10-21 2011-05-06 Palo Alto Research Center Inc ネットワークにおける階層構造可変長識別子を備えたパケットを転送するためのコンピュータ実施方法
JP2011135575A (ja) * 2009-12-24 2011-07-07 Samsung Electronics Co Ltd コンテンツ名ベースの端末装置、そのルーティング方法、及びルーティングテーブルを用いるネットワーク装置
JP2020167705A (ja) * 2015-06-02 2020-10-08 ライブパーソン, インコーポレイテッド 一貫性重み付けおよびルーティング規則に基づく動的通信ルーティング

Also Published As

Publication number Publication date
US7849199B2 (en) 2010-12-07
WO2007011533A2 (en) 2007-01-25
US20070014303A1 (en) 2007-01-18
EP1908256A2 (en) 2008-04-09
US20070028000A1 (en) 2007-02-01
KR20080032183A (ko) 2008-04-14
US20070014278A1 (en) 2007-01-18
WO2007011533A3 (en) 2008-04-10
JP4881380B2 (ja) 2012-02-22
CN101317416A (zh) 2008-12-03
KR101035472B1 (ko) 2011-05-18

Similar Documents

Publication Publication Date Title
JP4881380B2 (ja) コンテンツルーター
US7631045B2 (en) Content router asynchronous exchange
US7623515B2 (en) Content router notification
US20070014307A1 (en) Content router forwarding
US20070014277A1 (en) Content router repository
US20070038703A1 (en) Content router gateway
US8065680B2 (en) Data gateway for jobs management based on a persistent job table and a server table
TWI345397B (en) Method and system for stale data detection based quality of service
US7930358B2 (en) Method and apparatus for efficiently managing “messages sent” file and resending of messages from mobile wireless communication device
CA2589522C (en) Method and apparatus for efficiently managing &#34;messages sent&#34; file and resending of messages from mobile wireless communication device
JP2010148118A (ja) ルーティング方法、ルーティング装置、ルーティング/キャッシング方法、ルーティング/キャッシング装置及びネットワーク
US20060086798A1 (en) Deferred email message system and service
CN101663868A (zh) 冗余的、地理上不同的和独立可扩展的消息服务(ms)内容存储
JP5607461B2 (ja) システム及びゲートウェイ
WO2001067263A1 (en) Messaging system for computers
JP3973352B2 (ja) 電子メール仲介装置および電子メール送達方法
JP2005020706A (ja) 電子メール送受信システム
US20090137259A1 (en) Method and apparatus for sending message delivery reports
JP2006270786A (ja) リソース管理方法およびリソース管理装置、ならびにリソース管理システム
WO2011044851A1 (zh) 一种垃圾信息处理方法、***及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110627

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110916

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111027

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111202

R150 Certificate of patent or registration of utility model

Ref document number: 4881380

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350