JP4575591B2 - Meeting requests and group scheduling generation from mobile devices - Google Patents

Meeting requests and group scheduling generation from mobile devices Download PDF

Info

Publication number
JP4575591B2
JP4575591B2 JP2000518349A JP2000518349A JP4575591B2 JP 4575591 B2 JP4575591 B2 JP 4575591B2 JP 2000518349 A JP2000518349 A JP 2000518349A JP 2000518349 A JP2000518349 A JP 2000518349A JP 4575591 B2 JP4575591 B2 JP 4575591B2
Authority
JP
Japan
Prior art keywords
meeting
email
storage device
mobile device
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000518349A
Other languages
Japanese (ja)
Other versions
JP2001521253A (en
Inventor
ディスコロ,アンソニー
スコルパ,スコット
アラム,サリム
ヴァーガス,ガーレット・アール
ホイットニー,デイヴ
ウルリッチ,ブライス
ファーレル,ジョン・アイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/058,679 external-priority patent/US6370566B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2001521253A publication Critical patent/JP2001521253A/en
Application granted granted Critical
Publication of JP4575591B2 publication Critical patent/JP4575591B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • G06F15/0225User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Calculators And Similar Devices (AREA)

Description

【0001】
(発明の背景)
モバイルデバイスは、パーソナルデジタルアシスタントとしばしば呼ばれる小型電子コンピューティングデバイスである。このようなモバイルデバイスの1つは、ワシントン州レドモンド(Redmond)にあるMicrosoft 社によって提供されるWindows CEブランドのオペレーティングシステムをベースとするHandheld PC(あるいは「H/PC」)の商品名で販売されている。このようなモバイルデバイスで広範なコンピューティングタスクおよびアプリケーションを実行できるが、個人情報マネージャ(PIM)が特にモバイルデバイスに適している。
【0002】
PIMは通常、モバイルデバイスのユーザがスケジューリング、通信、およびその他のこのようなタスクをより良好に管理できるようにするアプリケーションを含む。いくつかの通常入手可能なPIMは、スケジューリングおよびカレンダープログラム、タスクリスト、アドレス帳、および電子メール(e−mail)プログラムを含む。いくつかの通常市販されているPIMは、Microsoft Schedule+、およびMicrosoft Outlookというブランド名で販売されており、ワシントン州、レドモンドにあるMicrosoft 社から市販されている。この考察の目的のために、PIMはまたMicrosoft Exchangeというブランド名で入手可能なもの等の別個の電子メールアプリケーションを備える。
【0003】
また通常、モバイルデバイスがデスクトップコンピュータと併用される。たとえば、モバイルデバイスのユーザはまた、オフィス、家庭、またはその両方のデスクトップコンピュータへのアクセスを有し、かつそれを使用することができる。ユーザは通常、デスクトップコンピュータおよびモバイルデバイスの両方において同じタイプのPIMを実行する(PIMの特定バージョンは、デスクトップコンピュータとモバイルデバイスとは幾分異なることもあるが)。このため、モバイルデバイスがデスクトップコンピュータに連結可能で、それと情報を交換でき、かつ情報を共有できるよう設計されると極めて有利である。
【0004】
またユーザは、モバイルデバイスおよびデスクトップの両方でPIMに変更を加えることができる。したがって、最近のPIMへの変更がモバイルデバイスまたはデスクトップコンピュータで行われたかに関係なく、モバイルデバイスおよびデスクトップ両方上のPIMが最新の情報を含むと有利である。モバイルデバイスをデスクトップコンピュータに接続し、二つとも更新された同じ情報を有するように、モバイルデバイスおよびデスクトップコンピュータ上のPIMによって記憶された情報を統合する手順は、同期と呼ばれる。
【0005】
電子カレンダーおよびスケジューリング機能(まとめてスケジューラ、またはスケジューリングアプリケーションと呼ばれる)をサポートする従来のPIMは、古典的にデスクトップコンピュータでサポートされる。このようなPIMはユーザが1人または複数の所望の出席者についてミーティング要求をスケジュールする能力を提供する。
【0006】
ミーティング要求を生成するために、ユーザは通常、ユーザインタフェースを介してスケジューリングアプリケーションと対話する。ユーザインタフェースは、ユーザにミーティング要求をパラメータ化するための複数の選択可能なオプションを提供する。たとえば、通常ユーザインタフェースにより、ユーザがミーティングが開かれる日付および時刻(およびしばしば場所)を選定することができる。また、通常ユーザインタフェースにより、ユーザがミーティングに参加してほしい出席者群を選択し、ミーティングのあるテキスト記述を入力し、かつ日付が1つだけのものか、あるいは定期的ミーティング(例会)(すなわち、ミーティングが1つの日付だけで開かれるか、または毎月15日か、毎月第1月曜日か、毎週月曜日か、等)を特定することができる。
【0007】
この情報に基づいて、スケジューリングアプリケーションはミーティングを表すオブジェクトを作成し、アポイントメントとしてユーザのカレンダーに入力する。このようなオブジェクトは通常多数の特性によって定義され、このいくつかはミーティング要求を生成している間にユーザが提供するユーザ入力情報によって定義される。またミーティング情報はクリティカルタイムスタンプ(UTC)を含み、これはミーティングの開始時刻または終了時刻の変更、場所の変更等ミーティングオブジェクトに重大な変更が行われるときは常に、更新される。
【0008】
他の人々は出席者として識別されるため、カレンダーに入力されたアポイントメントはミーティングとして見られ、スケジューリングアプリケーションは通常、メッセージングアプリケーションプログラミングインタフェース(MAPI)またはワシントン州、レドモンドにあるMicrosoft社から市販されている良好に実証され、公開されたインタフェースのセットである他のAPIに従って電子メールアプリケーションによって露出されるメソッドを呼び出す。
【0009】
これに応答して、電子メールアプリケーションは、ミーティング要求を表す別のオブジェクト(電子メールミーティング要求オブジェクト)を生成し、かつ電子メールアプリケーション(または適するトランスポート)はこの電子メールミーティング要求オブジェクトを良好に定義され、転送に適した電子メールメッセージにフォーマットする。これを行う際に、ミーティングオブジェクトからのクリティカルタイムスタンプも電子メールミーティング要求オブジェクトに配置される。電子メールアプリケーションは次に特定のトランスポートと対話し、電子メールミーティング要求オブジェクトをネットワークにトランスポートし、ネットワークがこれを指定された出席者にルーティングする。これを行う際に、電子メールアプリケーションは通常、データベースに記憶されたアドレス帳にアクセスして、出席者について完全に条件が合った電子メールアドレスを取得する。これはまた通常、アドレス帳を記憶するデータベースに関連したMAPIまたは他の適するAPIメソッドを呼び出すことによって行われる。ミーティングオブジェクトの生成および電子メールミーティング要求オブジェクトは本明細書においてまとめてミーティング要求作成と呼ばれる。
【0010】
次に通常、可能性のある出席者が、ミーティング要求に応答する。これを行う際に、発信者のクリティカルタイムスタンプが応答とともに返送(変更なし)される。また応答は、受信者のクリティカルタイムスタンプおよび受信者の応答(たとえば受諾、拒絶、仮受諾等)の指示を含む。受信者のクリティカルタイムスタンプは、受信者が重大な変更を行うときに常に受信者(可能性のある出席者)によって更新される。これにより、ユーザが同じミーティングの多数のバージョン(たとえば、発信者がミーティングの時間、日付、または場所を変更したため、多数のミーティング要求が生成される)の受信を信頼性があるように順序付けることができる。また、発信者が応答の受信を信頼性のあるように順序づけて、各応答がミーティングの最新バージョンに確実に相関させることができる。
【0011】
次に応答は、発信者(たとえば発信コンピュータ)に転送される。次に、発信者の電子メールアプリケーションおよびスケジューリングアプリケーションは通常、それに応じて応答(単数または複数)を処理する。たとえば、発信者は各受信者(または可能性のある出席者)について、受信者のクリティカルタイムスタンプを各受信者の応答コード(受諾、拒絶、仮受諾応答を表す)とともにテーブルに記憶する。上記で識別した2つの市販されているPIM(Microsoft Schedule+およびMicrosoft OutlookブランドのPIM)は、上述した機能をサポートするPIMの例である。
【0012】
ミーティングキャンセル、および定期的ミーティングに対する例外もまた処理されなければならない。たとえば、PIMでは、スケジュールしたミーティングのキャンセルが可能であり、また定期的ミーティングパターンに対する様々な例外が可能である。
【0013】
上述したようなミーティング要求のスケジューリングは今まで、ハードディスクドライブまたは他の大容量メモリ機構を取り付けたデスクトップコンピュータまたはラップトップコンピュータによって、またはサーバまたはそれ自身大容量記憶装置を含む同様の他のコンピュータに永久的に取り付けられた低知性端末によってだけサポートされてきた。モバイルデバイスからミーティング要求をスケジュールする能力は、単に利用できない。現在のモバイルデバイスによっては、ユーザがミーティング要求を閲覧し、かつすでにスケジュールされたミーティングを閲覧することができるPIMを備えるものもあるが、現在のモバイルデバイスでは、ユーザがモバイルデバイス自体からミーティング要求を生成することができない。
【0014】
ユーザにモバイルデバイスからミーティング要求を生成する能力を提供するよう試みる際に、多数のかなりの障害が存在する。ミーティングキャンセルおよび定期的ミーティングに対する例外を処理しなければならない。また、二重したミーティング要求を転送する可能性に対して、相当な問題が生じる。後述するように二重されたミーティング要求をすべてのPIMで必ずしも生成する必要がない一方で、考慮しなければならない潜在的な問題を提示する。たとえば、モバイルデバイスのユーザがミーティング要求を生成することが可能であれば、ミーティングオブジェクトはまずモバイルデバイスのカレンダーに入力される。モバイルデバイス上の電子メールアプリケーションは次に、対応する電子メールミーティング要求オブジェクトを作成する。
【0015】
次に、モバイルデバイスがデスクトップコンピュータと同期されると、ミーティングオブジェクトはデスクトップコンピュータ上のカレンダーオブジェクト記憶装置と同期されて、かつ電子メールミーティング要求オブジェクトがデスクトップアウトボックスと同期される。デスクトップコンピュータはアウトボックスにおける電子メールミーティング要求オブジェクトを認識し、転送用にフォーマットして、ネットワークを介してそれを転送する。さらに、ミーティングオブジェクトをデスクトップコンピュータのカレンダーと同期した結果、デスクトップコンピュータが別の電子メールミーティング要求オブジェクトを作成して、転送することもある。この結果、二重電子メールミーティング要求オブジェクトが作成され(同期後、1つはモバイルデバイスにより、1つはデスクトップコンピュータにより)、転送される。このような状況下で、可能性のある出席者は2つ以上のミーティング要求を受信し、その両方に応答することもある。これにより、1つのミーティング要求であるべきものに対して二重の応答が作成される。
【0016】
たとえばミーティング要求が従来の方法で(デスクトップコンピュータに)生成され、次にミーティング要求を生成かつ転送する能力を有するモバイルデバイスに同期される場合、同様の問題が発生することがある。デスクトップカレンダー上のミーティングオブジェクトは、モバイルデバイスのカレンダーに同期される。モバイルデバイスは次に、デスクトップから同期されたミーティングオブジェクトを認識し、電子メールミーティング要求オブジェクトを作成して、該オブジェクトを転送するよう試みる。この結果、略同じ問題が生じる。すなわち、1つのミーティング要求であるべきものに対して二重ミーティング要求および二重応答が生成される。
【0017】
さらに、モバイルデバイスのユーザが1つ以上のデスクトップコンピュータ(モバイルデバイスがこの能力を備えている場合、たとえば、ホームコンピュータおよびワークコンピュータ)モバイルデバイスに連結されている場合、結果として同じ問題が生じる。その例において、かつ従来のアーキテクチャを使用して、両方のデスクトップコンピュータがモバイルデバイスからミーティングオブジェクトおよび電子メールミーティング要求オブジェクトと同期して、それを認識する。デスクトップコンピュータは両方とも、追加の電子メールミーティング要求オブジェクトを作成し、それらを可能性のある出席者に転送する可能性がある。ここでも、この結果、多数の異なるミーティング要求および応答が1つのミーティング要求であるべきもの対して転送される。
【0018】
さらに、デスクトップまたは同様のコンピュータを介することなく、モバイルデバイスが別のモバイルデバイスに直接接続し、互いに通信する能力を備えている場合、ミーティング要求が一方のモバイルコンピュータで生成されて、別のモバイルデバイスで応答され、かつ両方のモバイルデバイス上でスケジュールされることが可能である。しかし、次に第1のモバイルデバイスがデスクトップコンピュータと同期するとき、コンピュータは再びモバイルデバイスのカレンダーから同期されたミーティングオブジェクトを認識し、別の電子メールミーティング要求オブジェクトを作成し、該電子メールミーティング要求オブジェクトを転送する可能性がある。このため、多数のミーティング要求の生成に関して、相当な問題が潜在的に存在する。
【0019】
もちろん、同様の問題が、デスクトップコンピュータまたはモバイルデバイスのいずれかにおいてミーティングオブジェクトに重大な変更が行われる場合にも生じる。これにより、望ましくない二重電子メールミーティング要求が同様に生じる。
【0020】
また、従来のモバイルデバイスがデスクトップコンピュータまたは同様のコンピュータのメモリ容量よりもかなり少ないということから、さらなる問題が生じる。このため、すべての可能性のある出席者の完全に条件が合った電子メールアドレスを含むアドレス帳のモバイルデバイスへの記憶に関して、問題が生じる。
【0021】
ミーティング要求を処理しなければならない多くのデスクトップコンピュータが異なるスケジューリングアプリケーションを有するため、さらなる障害が存在する。したがって、モバイルデバイスが生成したミーティング要求は、関連する(encounter)スケジューリングアプリケーションと互換性がないことがある。
【0022】
さらに、ミーティング要求のローカリゼーションが問題を提示しうる。たとえば、局所性によっては、データを書き込む際、通常は最初に月を、次に日を、そして三番目に年を配置する。他の局所性では、通常は別の順序である。さらに、ミーティングを記述するとともにミーティング要求を収容するテキスト記述を、局所利便性に適応するよう再配置する必要がある場合がある。また、ミーティング要求を1つの時間帯において生成して、別の時間帯における受信者に転送することもできる。これは混乱しやすい。
【0023】
本発明は、これらの障害のいくつかまたはすべてに取り組むものである。
【0024】
(発明の概要)
本発明は、ユーザにモバイルデバイスからのミーティング要求をスケジュールする能力を提供するモバイルデバイスを含む。モバイルデバイスは、ミーティング要求を表すオブジェクトを生成し、該オブジェクトと関連する他のデバイスから該オブジェクトを一意に識別する汎用識別番号を該オブジェクトに割り当てる。さらに、本発明の一態様によるモバイルデバイスはオブジェクトの特性を提供し、これはミーティング要求がすでに転送されたかどうかを示す。このようにして、ミーティング要求に関連する他のデバイスが該要求を一意のミーティング要求として識別して、二重ミーティング要求転送の問題を軽減することができる。
【0025】
本発明の別の好ましい特徴によると、モバイルコンピュータ上の電子メールアプリケーションまたはカレンダーアプリケーションは、縮小版アドレス帳からの、またはモバイルデバイス自体に直接記憶された可能性のある出席者について完全に条件が合った電子メールアドレスを取得する。これにより、モバイルデバイスの記憶容量に関連する問題が軽減される。
【0026】
本発明の別の好ましい実施形態によれば、モバイルデバイスは、オブジェクトを受信可能な複数のPIMによってサポートされる特性のセットを使用して、ミーティングオブジェクトおよび電子メールミーティング要求オブジェクトを作成する。これにより、オブジェクトに関連する可能性がある増大した数のデバイスとの互換性が提供される。
【0027】
本発明のさらに別の好ましい特徴によれば、ローカライザが、ミーティング要求に関連するオブジェクトの特性のフォーマット化に使用されるモバイルデバイス上で複数のテンプレートを実施する。ミーティング要求を表すデータストリームはモバイルデバイスによってパーズされ、適切なテンプレートにおける予め選択されたフィールドに配置されるため、モバイルデバイスのユーザが閲覧するテキストは、地域の取り決めにより良好に適応する。さらに、時間帯情報も一実施形態に含まれる。
【0028】
(好ましい実施形態の詳細な説明)
概観
図1は、本発明が動作する典型的なシステムまたは環境2のブロック図である。環境2は、モバイルデバイス3およびデスクトップコンピュータ4を含む。図1はまた、モバイルデバイス3がオプションとして、別のモバイルデバイス10または別のデスクトップコンピュータ13と別個に連結可能であることも示す。
【0029】
モバイルデバイス3は、アプリケーションプログラム5およびオブジェクト記憶装置6を備える。デスクトップコンピュータ4もまた、アプリケーションプログラム7およびオブジェクト記憶装置8を備える。モバイルデバイス10は、アプリケーションプログラム11およびオブジェクト記憶装置12を含む。さらに、デスクトップコンピュータ13は、アプリケーションプログラム14およびオブジェクト記憶装置15を含む。
【0030】
モバイルデバイス3は、1つまたは複数の接続機構9により、デスクトップコンピュータ4、モバイルデバイス10、またはデスクトップコンピュータ13に連結可能である。デスクトップコンピュータ4および13の動作、およびモバイルデバイス3および10の動作は好ましくは同様である。したがって、簡略化のために、本説明はモバイルデバイス3およびデスクトップコンピュータ4だけに関連して進める。
【0031】
本発明の好ましい一実施形態において、デスクトップ4上のアプリケーションプログラム7はパーソナル情報マネージャ(PIM)であり、電子メールメッセージング、スケジューリングおよびカレンダー作成、およびコンタクト情報を含むアドレス帳をサポートする。
【0032】
PIMアプリケーションは、常に一体化されているわけではない。たとえば、スケジューリングプログラムによっては電子メール機能を含まないが、電子メールプログラムを備えられたいかなるものともインタフェースする(またはその逆)ものもある。もちろん、PIM7(単一のアプリケーションであるか、または単一の一体化されたアプリケーションまたは多数のインタフェースされたアプリケーション)は、広範なその他の機能、たとえば(少数を挙げれば)タスクリストおよびパーソナル化したアドレス帳等、をサポートするよう構成されうる。しかし、明確にするために、電子メールメッセージング、スケジューリングおよびカレンダー作成機能、およびアドレス帳機能のみに関する機能を本発明に関して詳細に説明する。
【0033】
オブジェクト記憶装置8は、それぞれが上記機能に関連した複数のフィールドまたは特性を含む、複数の別個のレコードまたはオブジェクトを記憶するよう構成されたメモリである。好ましい一実施形態において、PIM7はMicrosoft Outlook 97という商品名で入手可能なもの等のプログラムである。オブジェクト記憶装置8は、電子メールメッセージング、スケジューリングおよびカレンダー作成、およびコンタクト情報に関連しうる複数の特性をそれぞれ有するオブジェクトを格納するよう構成される。
【0034】
たとえば、電子メールメッセージングに関連するオブジェクトに含まれるいくつかの特性には、送信者名、受信者名、テキストメッセージ、任意の所与の電子メールメッセージに添付ファイルが添付されているか否かの表示、および可能性としては他の同様の特性が含まれる。また、スケジューリングおよびカレンダー作成に関連するいくつかの特性には、クリティカルタイムスタンプ情報、日付および時間情報、可能性のある出席者、定期的ミーティングまたはミーティング要求を記述する反復特性、およびミーティング要求のテキスト記述が含まれる。コンタクト情報に関連するいくつかの特性には、コンタクトリストにおける厳密な生命、または知られている氏名、リストされた人の住所および電話番号、およびリストに載っている人の完全に条件が合った電子メールアドレスが含まれる。任意の数の他の特性も含まれうる。デスクトップコンピュータ4は、PIM7として識別されるアプリケーションを実行して、オブジェクト記憶装置8に記憶されたオブジェクトを保持する。
【0035】
モバイルデバイス3用のPIM5として示されるアプリケーションプログラムは、デスクトップコンピュータ4に記憶されるものと同様のPIMである。モバイルデバイス3上のオブジェクト記憶装置6は、上述したサポートされている機能に関連する複数のフィールドまたは特性をそれぞれ含む、複数の別個のレコードまたはオブジェクトを記憶するよう構成される。PIM7のように、PIM5もまた広範なその他の機能をサポートしうる。しかし、明確にするために、本発明に関連する機能のみを本明細書において詳細に説明する。
【0036】
例示的な一実施形態において、オブジェクト記憶装置6内の各オブジェクトは、関連したメッセージについてオブジェクト記憶装置8に記憶された特性の同じセットまたはこれら特性のサブセットを含む。さらに、オブジェクト記憶装置6に記憶されたオブジェクトはまた、重大変更タイムスタンプ、およびミーティング要求において識別された可能性のある出席者が応答したかどうかを表す特性、および各個々のミーティング要求の汎用識別子(詳細を後述する)を含む。モバイルデバイス3はPIM5を実行して、オブジェクト記憶装置6にオブジェクトを保持する。
【0037】
例示的な実施形態において、オブジェクト記憶装置8に記憶されるオブジェクトはそれぞれ、オブジェクト記憶装置6にも記憶される。しかし、各オブジェクトについて2つのインスタンスが実際にある(1つはオブジェクト記憶装置6に、1つがオブジェクト記憶装置8に)。このため、ユーザが記憶装置6または記憶装置8のいずれかに記憶されたオブジェクトの1つのインスタンスに変更を加えると、記憶装置6および8の他方における該オブジェクトの第2のインスタンスが、次にモバイルデバイス3がデスクトップコンピュータ4に接続されるときに更新されることにより、同じオブジェクトのいずれのインスタンスも最新データを含むようになることが好ましい。これは同期と呼ばれる。
【0038】
同期を達成するために、同期コンポーネントはモバイルデバイス3およびデスクトップコンピュータ4上で実行される。同期コンポーネントは、良好に規定されたインタフェースを介して、モバイルデバイス3およびデスクトップコンピュータ4上のPIM5および7と通信して、通信および同期を管理する。
【0039】
モバイルデバイス3およびデスクトップコンピュータ4のコンポーネントは、任意の適切な、かつ市販されている通信リンク9を介し、また適切な通信プロトコルを使用して互いに通信する。たとえば、好ましい一実施形態において、モバイルデバイス3は、シリアル通信プロトコルを使用して通信する物理的なケーブルで、デスクトップコンピュータ4に接続可能である。他の通信機構、たとえば赤外線(IR)通信、直接モデム通信、リモートダイヤルアップネットワーキング通信、市販のネットワークカードを介した(すなわちTCP/IPを使用した)通信、リモートアクセスサービス(RAS)、ワイヤレスモデム、ワイヤレスセルラデジタルパケットデータ(CDPD)、または他の適切な通信機構等も本発明により意図される。
【0040】
図2および関連した説明は、本発明の一部を実施しうる適切なデスクトップコンピュータ4の簡略かつ一般的な説明の提供を意図する。必要ではないが、本発明は、少なくとも部分的には、プログラムモジュール等のパーソナルコンピュータ4またはモバイルデバイス3によって実行されるコンピュータ実行可能命令の一般的な文脈で説明される。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の要約データタイプを実施するルーチンプログラム、オブジェクト、コンポーネント、データ構造等を含む。さらに、デスクトップコンピュータ4は、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成で実施されうる。本発明はまた、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境において実施されうる。分散コンピューティング環境において、プログラムモジュールはローカルおよびリモートメモリ記憶装置の両方に配置してもよい。分散プログラムの例としては、Exchange、Schedule+、およびMS Mail(すべてMicrosoft社から入手可能)という商品名で市販されているものが挙げられる。
【0041】
図2を参照して、デスクトップコンピュータ4を実施する例示的なシステムは、従来のパーソナルコンピュータ4の形態の汎用コンピューティングデバイスを含み、該コンピューティングデバイスは処理装置21、システムメモリ22、およびシステムメモリを含めた各種システムコンポーネントを処理装置21に連結するシステムバス23を含む。各種バス構造のいずれかを使用したシステムバス23は、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種類のバス構造のいずれであってもよい。システムメモリは、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。
【0042】
立ち上げ時等にデスクトップコンピュータ4内の要素間での情報の転送を補助する基本ルーチンを含む基本入出力システム(BIOS)26は、ROM24の一部であるEEPROMに記憶される。デスクトップコンピュータ4はさらに、ハードディスク(図示せず)に対する読み出しおよび書き込みを行うためのハードディスクドライブ27と、リムーバブル磁気ディスク29に対する読み出しおよび書き込みを行うための磁気ディスクドライブ28と、CD-ROMまたは他の光学媒体等のリムーバブル光ディスク31に対する読み出しおよび書き込みを行うための光ディスクドライブ30と、を含むことが好ましい。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、ハードドライブインタフェース32、磁気ディスクドライブインタフェース33、および光ドライブインタフェース34それぞれを介して、システムバス23に接続される。ドライブおよび関連したコンピュータ読み取り可能媒体は、コンピュータ読み取り可能媒体、データ構造、プログラムモジュール、およびデスクトップコンピュータ4についての他のデータの不揮発性記憶装置を提供する。
【0043】
本明細書に記載する例示的な環境はハードディスク、リムーバブル磁気ディスク29、およびリムーバブル光ディスク31を採用しているが、コンピュータがアクセス可能な、データを記憶できる他のタイプのコンピュータ読み取り可能媒体、たとえば磁気カセット、フラッシュメモリカード、デジタルビデオディスク(DVD)、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)等もまた例示的な動作環境において使用してもよいことが、当業者には理解されよう。
【0044】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36(PIM7を含む)、他のプログラムモジュール37、およびプログラムデータ38を含む多数のプログラムモジュールを、ハードディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に記憶してもよい。ユーザは、キーボード40、ポインティングデバイス42、およびマイクロフォン62等の入力デバイスを介して、コマンドおよび情報をデスクトップコンピュータ4に入力する。他の入力デバイス(図示せず)としては、ジョイスティック、ゲームパッド、衛生ディッシュ、スキャナ等が挙げられる。これらおよびその他の入力デバイスは、システムバス23に連結されたシリアルポートインタフェース46を介して、処理装置21に接続されることが多いが、サウンドカード、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)等の他のインタフェースで接続されてもよい。モニタ47または他のタイプの表示装置もまた、ビデオアダプタ48等のインタフェースを介してシステムバス23に接続される。モニタ47に加えて、デスクトップコンピュータは通常、スピーカ45およびプリンタ等の他の周辺出力デバイスを含みうる。
【0045】
デスクトップコンピュータ4は、リモートコンピュータ49等の1つまたは複数のリモートコンピュータ(モバイルデバイス3を除く)への論理接続を用いて、ネットワーキング環境で動作してもよい。リモートコンピュータ49は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他のネットワークノードであってもよく、通常はデスクトップ4に関連して上述した要素の多くまたはすべてを含むが、メモリ記憶装置50のみが図2に示されている。図2に示す論理接続は、ローカルエリアネットワーク(LAN)51および広域ネットワーク(WAN)52を含む。このようなネットワーク化された環境は、オフィス、企業のワイドコンピュータネットワークイントラネット、およびインターネットにおいてよく見られる。
【0046】
LANネットワーキング環境において使用される場合、デスクトップコンピュータ4は、ネットワークインタフェースまたはアダプタ53を介してローカルエリアネットワーク51に接続される。WANネットワーキング環境において使用される場合、デスクトップコンピュータ4は、インターネット等の広域ネットワーク52上の通信を確立するための通常モデム54または他の手段を含む。内蔵あるいは外付けモデム54は、シリアルポートインタフェース46を介してシステムバス23に接続される。ネットワーク環境において、デスクトップコンピュータ4に関して図示されるプログラムモジュールまたはその一部は、リモートメモリ記憶装置に記憶されてもよい。図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確率する他の手段を使用しうることを理解されたい。
【0047】
デスクトップコンピュータ4は通常不揮発性メモリ24に記憶され、プロセッサ21上で実行されるオペレーティングシステム35を実行する。適するオペレーティングシステムの一つはMicrosoft社が販売するWindowsブランドのオペレーティングシステムであり、たとえば、WINDOWS95またはWINDOWS NTオペレーティングシステム、WINDOWSブランドのオペレーティングシステムの他の派生的なバージョン、または他の適したオペレーティングシステム等である。他の適したオペレーティングシステムには、Apple社が販売するMacintosh OS、およびニューヨーク州、ArmonkにあるInternational Business Machines (IBM)が販売するOS/2 Presentation Managerが含まれる。PIM7は、プログラムモジュール37、揮発性メモリ、または不揮発性メモリに記憶されることが好ましく、またはフロッピーディスク29、CD−ROMドライブ31から図2に示す任意のコンポーネントにロードするか、ネットワークアダプタ53を介してネットワークからダウンロードするか、あるいは別の適切な機構を使用してロードすることが可能である。
【0048】
複数の実行可能関数を含むダイナミックリンクライブラリ(DLL)は、プロセッサ21による実行のためにPIM7に連結される。内部プロセッサおよび内部コンポーネント呼び出しは、MICROSOFT WINDOWSブランドのオペレーティングシステム用に書かれたプログラムに共通なように、コンポーネントオブジェクトモデル(COM)を使用することで容易になる。簡潔にいうと、COMを使用する場合、DLL等のソフトウェアコンポーネントは多数のインタフェースを有する。各インタフェースは複数のメソッドに呈示され、これは個々に呼び出されて、ソフトウェアコンポーネントが提供する異なるサービスを利用する。さらに、インタフェースを設けることで、任意選択で一つまたは複数のパラメータ引数を受け取りかつ他のソフトウェアコンポーネントからメソッドまたは関数を呼び出すことができる。
【0049】
一般に、PIM7に関連したDLLは、特にPIM7とともに作動し、かつ同期プロトコルに従って、上記で参照した同時係属中の米国特許出願により詳細に記載されるように機能するデスクトップ同期インタフェースに呈示されるように設計される。DLLはPIM7によって呈示されるインタフェースを呼び出して、オブジェクト記憶装置8に保持される個々のオブジェクト特性を表すデータにアクセスする。当然のことながら、オブジェクト記憶装置8は、図2に関連して記載した適切なメモリコンポーネントのいずれか一つに常駐しうる。
【0050】
図3は、本発明に従って使用できるモバイルデバイス3の好ましい一実施形態の絵図である。好ましい一実施形態におけるモバイルデバイス3は、H/PCという商品名で販売されているデスクトップアシスタントであり、たとえばMicrosoft社から提供されるWINDOWS CEブランドのオペレーティングシステムをベースとしている。好ましい一実施形態において、モバイルデバイス3は、典型的なユーザの手に心地よく馴染むハウジングに収容される。モバイルデバイス3は、デスクトップコンピュータ4のコンポーネントと同様のコンポーネントをいくつか有する。たとえば、好ましい一実施形態において、モバイルデバイス3は、小型キーボード82、ディスプレイ84、およびスタイラス86を備える。当然のことながら、キーボードがない構成等、他の構成も使用しうる。
【0051】
図3に示す実施形態において、ディスプレイ84は、スタイラス86とともに接触反応表示画面を使用した液晶ディスプレイ(LCD)である。スタイラス86は、指定座標でディスプレイ84を押圧するか、または接触して特定のユーザ入力機能を達成するために使用される。当然のことながら、他のユーザ入力構成も同様に使用しうる。たとえば、ユーザ入力機構としては、キーボード、トラックボールおよび他の各種タイプの小型キーボード等が含まれうる。さらに、モバイルデバイス3は、デジタルアシスタントであるH/PCブランドとして具体化されず、別のタイプのパーソナルデジタルアシスタント(PDA)、別のパーソナルオーガナイザ、パームトップコンピュータ、または同様のコンピュータ化されたノートパッドデバイスとして実施されてもよい。
【0052】
図4は、モバイルデバイス3のより詳細なブロック図である。モバイルデバイス3は好ましくは、マイクロプロセッサ88、メモリ90、入出力(I/O)コンポーネント92(キーボード82およびタッチスクリーン84を含む)、予備の拡張スロット93(PCカード、コンパクトフラッシュメモリ等にプラグインするために使用しうる)、およびシリアルインタフェース94を含む。例示的な実施形態では、モバイルデバイス3のこれらコンポーネントは、通信のために、適切なバス96により互いに連結される。
【0053】
例示的な実施形態において、メモリ90はバッテリバックアップモジュール(図示せず)を有するランダムアクセスメモリ(RAM)等の不揮発性電子メモリとして実施されるため、メモリ90に記憶された情報は、モバイルデバイス30への電源が切断されても失われない。メモリ90のある部分は好ましくは、プログラム実行のためにアドレス可能メモリとして割り当てられる一方で、メモリ90の別の部分はディスクドライブへの記憶をシミュレートするために使用されることが好ましい。
【0054】
メモリ90は、オペレーティングシステム98およびアプリケーション(すなわちPIM)5を含む。動作中、オペレーティングシステム98は、メモリ90からプロセッサ88にロードされて、プロセッサ88によって実行されることが好ましい。好ましい一実施形態では、オペレーティングシステム98は、Windows CEブランドのオペレーティングシステムである。オペレーティングシステム98はモバイルデバイス用に設計されることが好ましく、かつ呈示されたアプリケーションプログラミングインタフェースおよびメソッドのセットを介してPIM5によって利用されうるデータベース機能を実施する。オブジェクト記憶装置6におけるオブジェクトは好ましくは、少なくとも部分的に呈示されたアプリケーションプログラムインタフェースおよびメソッドへの呼び出しに応答して、PIM5およびオペレーティングシステム98により保持される。
【0055】
なお、PIM5はデスクトップコンピュータ4で実行されるPIM7と必ずしも完全に互換性のあるように設計される必要はない。たとえば、特定のオブジェクトタイプの特性間でに厳密な1対1の整合がなくてもよい。PIM5の電子メールメッセージング機能によりサポートされるいくつかの特性は、デスクトップコンピュータ4上のPIM7において対応する機能がなくてもよく、またその逆でもよい。
【0056】
オブジェクト同期
本発明の理解を助けるために、オブジェクト同期についてここに簡潔に説明する。
【0057】
図5は、モバイルデバイス3上のオブジェクト記憶装置6とデスクトップコンピュータ4上のオブジェクト記憶装置8に記憶されているオブジェクトの同期に使用される、モバイルデバイス3およびデスクトップコンピュータ4の構造的なコンポーネントの好ましい一実施形態を示すブロック構造図である。なお、図5に示す同期アーキテクチャは好ましい一実施形態にすぎず、他のアーキテクチャも同様に使用しうる。さらに、同期動作は、連結された任意の2つの記憶装置(コンピュータ4および13、モバイルデバイス3および10の連結された任意の対等)間で実行可能である。必要なのは、連結された2つの記憶装置の同期をサポートする、後述の同期マネージャコンポーネントだけである。同期マネージャは、いずれか一方のデバイス、両方のデバイス、または2つの記憶装置に連結された第三のコンピュータ上に存在してもよい。しかし、簡略化のために、デスクトップコンピュータ4がモバイルデバイス3に連結された実施形態のみを本明細書で説明する。また、本同期プロトコルは好ましい一実施形態にすぎず、別の適したプロトコルを標準的な電子メールプロトコルの上で実施してもよい。
【0058】
PIM5およびオブジェクト記憶装置6に加えて、モバイルデバイス3は同期モジュール97を含み、同期モジュール97はインタフェースコンポーネント100および同期マネージャ102を含む。また、モバイルデバイス3は、通信コンポーネント94、リモートアプリケーションプログラミングインタフェース(RAPI)サーバ116、および電子メールメッセージングトランスポート132、134、および136を含む。
【0059】
デスクトップコンピュータ4は、PIM7およびオブジェクト記憶装置8に加えて、インタフェースコンポーネント108、同期マネージャ110、参照記憶装置112、およびRAPIコンポーネント114を含む。また、デスクトップコンピュータ4は、通信コンポーネント115も備える。
【0060】
一般に、図5に示す実施形態において、同期マネージャ110はデスクトップコンピュータ4で実行され、ハンドヘルドデバイス3内のオブジェクト記憶装置6におけるオブジェクトと、デスクトップコンピュータ4におけるオブジェクト記憶装置8におけるオブジェクトとの間の同期を指揮する。同期マネージャ110はまた、詳細を後述するように、参照記憶装置112をデスクトップオブジェクト記憶装置8から離して保持する。同期マネージャ110は同期プロトコルを実施して、モバイルデバイス3内のオブジェクト記憶装置6に記憶されたオブジェクトと、デスクトップコンピュータ4内のオブジェクト記憶装置8における対応するオブジェクトを比較して、オブジェクト記憶装置8からオブジェクトを受け取って、オブジェクト記憶装置8におけるオブジェクトを更新できるようにする。また同期プロトコルは、同期インタフェースコンポーネント100および同期マネージャ102、ならびに通信コンポーネント94を介して、モバイルデバイス3におけるオブジェクト記憶装置6に記憶されたオブジェクトの検索を容易にする。
【0061】
モバイルデバイス3側では、同期インタフェースコンポーネント100は、アプリケーションプログラミングインタフェースに呈示され、同期マネージャ102はこれを呼び出して、オブジェクト記憶装置6上のオブジェクトおよびオブジェクト特性を読み出して記憶する。一般に、アプリケーションプログラミングインタフェースにより、異なるタイプのオブジェクトのデータベース作成が可能になるとともに、アプリケーションプログラムがオブジェクト記憶装置6内のオブジェクトに対する特性名および値の書き込みおよび読み出しを行うことができる。
【0062】
図1に関連して説明すると、PIM5はモバイルデバイス3上で実行され、オブジェクト記憶装置6を保持する。PIM7はデスクトップコンピュータ4上で実行され、オブジェクト記憶装置8を保持する。PIM5および7がオブジェクトをオブジェクト記憶装置6および8に記憶させうる方法は多数ある。しかし、好ましい実施形態において、PIM5および7は、各オブジェクトタイプ毎に別個のデータベースを作成する。たとえば、ミーティング、コンタクト、タスク、電子メールメッセージ等について、異なるデータベースが作成される。予め定義された特性は各オブジェクトタイプ毎にサポートされ、各データベースには、それを作成したアプリケーションプログラムによって名称が割り当てられる。
【0063】
代替の実施形態において、PIM5および7上のアプリケーションプログラムは、すべてのオブジェクトタイプについて一つのデータベースを使用してもよく、各オブジェクトの第一の特性がオブジェクトのタイプを定義する。いずれの場合でも、オブジェクトは、オブジェクトを作成するアプリケーションプログラムにが割り当てる名称とは無関係に、オブジェクト識別子によってモバイルデバイス3およびデスクトップコンピュータ4内で一意に識別される。
【0064】
同期マネージャ110は、必ずしもPIM7の近くに繋ぐ必要はない。むしろ、同期マネージャ110は、適切なデスクトップ同期インタフェースをサポートする任意のアプリケーションプログラムからのオブジェクトを同期させる別個のコンポーネントである。特定の同期インタフェースが、上記で援用した同時継続中の米国特許出願にさらに詳細に記載されている。通信コンポーネント94および115は、適したリンク9を使用してコンピュータ間でのシリアル通信を実施する。
【0065】
同期マネージャ110はPIM7と通信し、同期インタフェースコンポーネント108を介してオブジェクト記憶装置8にアクセスする。同期インタフェースコンポーネント108は、一般に図2(上記)に関連して上述したDLLに対応しており、かつ一つまたは複数のアプリケーションプログラムインタフェースおよびメソッドに呈示される。
【0066】
インタフェースおよびメソッドは、参照として援用した同時継続中の特許出願にさらに詳細に記載されている。これらインタフェースのなかで好ましいものは、Windowsブランドのオペレーティングシステム用のMicrosoft社によって開発および発行されたメッセージングアプリケーションプログラムインタフェース(MAPI)として知られる形態であるが、他の適したインタフェースも同様に使用しうる。好ましい一実施形態において、コンポーネント108により呈示されるMAPIはC言語アプリケーションプログラミングインタフェースであり、これにより、Microsoft社から市販されているMS Mailとして周知の電子メールメッセージングプログラムの機能に、プログラム可能にアクセスできる。別の好ましい実施形態では、コンポーネント108により呈示されるMAPIは、時に拡張MAPIと呼ばれ、Visual Basic等で使用するためのメッセージングシステムへの自動インタフェースのセットを含む、コンポーネントオブジェクトモデルベース(COMベース)のインタフェースのセットである。しかし、同期インタフェースコンポーネント108および関連するアプリケーションプログラムインタフェースおよびメソッドは、PIM7における任意特定のアプリケーション用に設計された任意の適する同期インタフェースコンポーネントでありうる。アプリケーションプログラムインタフェースは好ましくは標準化されており、必要なインタフェースメソッドが各PIMについて実施される限り、同期マネージャ110が任意の数の異なるデスクトップPIMにアクセスして同期できる。
【0067】
参照記憶装置112は、モバイルデバイス3上のオブジェクト記憶装置6内に記憶されたオブジェクトと、デスクトップコンピュータ4上のオブジェクト記憶装置8に記憶されたオブジェクトのインスタンス間をマッピングする。オブジェクト記憶装置6内のオブジェクトを識別するのにPIM5が使用するオブジェクト識別子は、オブジェクト記憶装置8内のオブジェクトを識別するためにPIM7が使用するオブジェクト識別子と同じではないために、このマッピングが必要になる。
【0068】
同期マネージャ110は、モバイルデバイス3上のオブジェクト記憶装置6内の同じオブジェクトのインスタンスと同期される、デスクトップコンピュータ4上のオブジェクト記憶装置8内の複数のオブジェクトインスタンスにそれぞれ対応した識別データセグメントを参照記憶装置112が含むように保持する。識別データセグメントは、対応するオブジェクトインスタンスが同期される度に更新される。
【0069】
特定のオブジェクトインスタンスを識別するために使用される識別データセグメントの厳密な構成は、デスクトップ同期インタフェースコンポーネント108の開発者によって割り当てることが可能であり、そして同期マネージャ110により処理されて記憶される。識別データセグメントは、識別データが参照記憶装置112に最後に記録されてから、ある種のタイムスタンプ情報を含むことが好ましく、これを比較して、オブジェクトが変更されたかどうかを判定する。
【0070】
複数の識別データセグメントの保持に加えて、同期マネージャ110はまた、オブジェクト記憶装置6に保持されるオブジェクトに対応したオブジェクト識別子のリストも保持する。これらの識別子は、新しいオブジェクトがモバイルデバイス3上のオブジェクト記憶装置6に付加される度に、同期マネージャ110に提供される。
【0071】
同期プロトコル
本システムの一実施形態に従って達成される完全な同期を行うための厳密なプロトコルを、以下に簡潔に説明する。該プロトコルを簡潔に説明することは、本発明を理解する上での助けとなる。オブジェクトを同期させるために、同期マネージャ110はまず、特定のオブジェクトを参照するハンドルのリストを2つ作成する。用語「ハンドル」は、オブジェクトを一意に識別して、該オブジェクトにアクセスするために使用できる多数のまたは他の識別子を指す。一般に、ハンドルは、オブジェクトが「開かれ」ている時間の間等、特定の時間間隔またはセッションで有効である。同じオブジェクトが再び開かれると、そのハンドルは別のものになる。
【0072】
ハンドルの第一のリストは参照記憶装置112から得られ、過去に同期され、かつ参照記憶装置112において識別されるオブジェクトを示す。ハンドルの第二のリストは、オブジェクト記憶装置8に記憶されたオブジェクトを識別するリストである。ハンドルの2つのリストは互いに比較されて、同じオブジェクトが参照記憶装置112およびオブジェクト記憶装置8に記憶されているか否かを判定する。
【0073】
あるオブジェクトが参照記憶装置112で識別されるが、オブジェクト記憶装置8では識別されない場合、その特定のオブジェクトは最後に同期が行われてから、デスクトップ4から削除されている。一方、あるオブジェクトがオブジェクト記憶装置8で識別されているが、参照記憶装置112には見あたらない場合、該オブジェクトは、最後に同期されてから、デスクトップに追加されている。いずれの場合でも、同期マネージャ110はオブジェクトの処理方法を決定する。好ましい一実施形態において、デスクトップオブジェクト記憶装置8から削除されたオブジェクトは、参照記憶装置112からも削除される。さらに、オブジェクト記憶装置8に付加されたオブジェクトは、参照記憶装置112にも付加される。
【0074】
次に、同期マネージャ110は、オブジェクト記憶装置8に記憶された任意のオブジェクトが、同期が最後に行われてから、デスクトップで変更されているか否かを判定する。換言すれば、同じオブジェクトに対応するハンドルがオブジェクト記憶装置8および参照記憶装置112の両方で見られるが、それらが同一ではない(タイムスタンプ、改訂番号、または別の適した識別セグメントが同じでない)場合、これはオブジェクト記憶装置8内の該オブジェクトが、最後に同期されてから変更されたことを示す。
【0075】
次に、同期マネージャ110は、モバイルデバイス3上のオブジェクト記憶装置6に記憶された任意のオブジェクトが、最後に同期されてから、追加または変更されているかを判定する。オブジェクトがオブジェクト記憶装置6に付加されているか否かを判定するために、同期マネージャ110は、参照記憶装置112のオブジェクトリスト(最後に同期されて以来のすべてのオブジェクトを反映する)を同期マネージャ102が保持するオブジェクト記憶装置6のオブジェクトリストと比較する。既存のオブジェクトが変更されているか否かを判定するために、同期マネージャ102は、オブジェクト記憶装置6に記憶された各オブジェクトに関連した状態ビットを保持するよう構成される。状態ビットは、ビットに関連する特定のオブジェクトが最後に同期されてから変更されているか否かを反映する。変更されていれば、同期マネージャ102は、デバイス3がデスクトップコンピュータ4に連結されている場合、同期マネージャ110にその変更を通知するか、あるいは状態ビットを単にログして、デバイス3がデスクトップコンピュータ4に次に連結されるときに、同期マネージャ110に送られる。
【0076】
なお、これらいずれの手順においても、同期マネージャ110または同期マネージャ102が識別データセグメントまたは対応するオブジェクトの特定の性質またはフォーマットを意識する必要はない。むしろ、インタフェースコンポーネント100および108は、識別データセグメントの実際の内容、およびオブジェクトの内容に依存するすべてのアクションについて、呼び出される。インタフェースに要求される機能を実行させる識別データセグメントのフォーマットの定義は、これらインタフェースの設計者次第である。
【0077】
変更、追加及び削除が同期マネージャ110によって決定されると、項目は同期させられる。これを実行するために、同期マネージャ110はオブジェクト記憶装置8あるいはオブジェクト記憶装置6上で変更されたオブジェクトのリストを形成して、そしてそれぞれの同期インタフェースコンポーネントに古いオブジェクトを更新するよう要求する。もし同じオブジェクトがモバイルデバイス3とデスクトップコンピュータ4の両方で修正されれば、コンフリクトが生ずる。同期マネージャ110は、ユーザにプロンプトするか、あるいはセットアップ中にユーザにが入力したプロファイル情報を参照するかのいずれかによってコンフリクトを解決する。特性情報はどのデバイス、どのインスタンスで、手続を行うかを決める。プロフィール情報をセットアップするプロセスは上記特許出願明細書に詳細に記載されている。
【0078】
オブジェクトがデスクトップコンピュータ4またはモバイルデバイス3のいずれかにおいて生成される場合、そのオブジェクトは他方のデバイスと交換される必要がある。モバイルデバイス3がデスクトップコンピュータ4から新しいオブジェクトを得る必要がある場合において、同期マネージャ110は「セットアップ(Set-Up)」として知られるインタフェースメソッドを呼び出す。このインタフェース方法によって、オブジェクトがデスクトップコンピュータ4のオブジェクト記憶装置8から得られ、モバイルデバイス3のオブジェクト記憶装置6へ送信されるハンドルを特定する。ハンドルが得られると、「ゲットパケット(GetPacket)」として知られているメソッドが、オブジェクトを表し、インタフェースコンポーネント108によってフォーマットされるデータストリームを検索するために繰り返し呼び出される。同期マネージャ110は、検索され、リンク9を介して同期マネージャ102と最終的にオブジェクト記憶装置6に送られるデータストリームとしてデータを扱うだけである。適切な同期インタフェースコンポーネント100は、オブジェクトに対応する特性に関連するある特定の特性値を識別するためにデータストリームを構文解析する。その後、それらの特性はオブジェクト記憶装置6に記憶される。
【0079】
最後に、同期マネージャ110は同期したまたは交換したオブジェクトのいずれかに関連する識別データセグメントを更新し、参照記憶装置112に更新されたデータセグメントを記憶する。
【0080】
ここに記述されたアーキテクチャは、PIM5、PIM7に保持された他のオブジェクトと共に、電子メールメッセージミーティングあるいはアポイントメント、またはコンタクト情報に関連するオブジェクトの同期を実現することに留意する価値がある。従って、上記同期プロトコルを使用して、これらの機能と関連するオブジェクトが同期プロセスの間に同期させられる。同期マネージャ110は、新しい電子メールメッセージ、ミーティングあるいはアポイントメントあるいはコンタクト情報を表す、オブジェクト記憶装置8におけるどんな新たなオブジェクトも検出し、そしてモバイルデバイス3のユーザの注意を喚起するためにそれらのオブジェクトがモバイルデバイス3上のオブジェクト記憶装置6に転送されるようにする。
【0081】
さらに、もしユーザが電子メールメッセージを書く、あるいはミーティングをスケジュールする(そしてそれ故にミーティングオブジェクトと電子メールミーティング要求オブジェクトを生成する)、あるいはPIM5の適切なアプリケーションを使ってモバイルデバイス3上でコンタクト情報を入力すれば、それらの項目に関連するオブジェクトが新しいオブジェクトとしてオブジェクト記憶装置6に記憶される。同期中に、それらの新しいオブジェクトはデスクトップコンピュータ4とオブジェクト記憶装置8に転送される。
【0082】
ミーティング要求
図6は、ミーティング要求が生成される機構の1つの好ましい実施形態を示したブロック構成図である。図5に示されるように、モバイルデバイス3とデスクトップコンピュータ4は相互に接続される。しかしながら、図6はまた、モバイルデバイス3とデスクトップコンピュータ4は、別のモバイルデバイス、別のデスクトップコンピュータ、LAN51(図2に図示)、WAN52(図2に図示)、または他の適当な任意のネットワークを含む広域ネットワーク138に接続できることも示している。
【0083】
図5と類似の項目には類似の番号が付けられる。しかしながら、図6にはPIM5と7がかなり詳細に示されている。図6は、ある1つの好ましい実施形態において、PIM5は電子メールアプリケーション140、カレンダー及びスケジューリングアプリケーション142と短縮されたアドレス帳144を含む。同じく、各アプリケーションは指定されたアプリケーションプログラミングインタフェース(API)を有しうるが、図6には簡単のために単一のAPIコンポーネント146のみが示されている。
【0084】
図6はさらに、オブジェクト記憶装置6は好ましくはそれ自身のアプリケーションプログラミングインタフェース148のセットを介して、アプリケーション140、142と144とインタフェースをとることを示している。こうして、アプリケーション140、142、および144は、オブジェクト記憶装置6に関連するアプリケーションプログラミングインタフェース148によって呈示された呼び出しメソッドによってオブジェクト記憶装置6を保全する。加えて、通信コンポーネント94と同期コンポーネント99はアプリケーションプログラミングインタフェース146に呈示された呼び出しメソッドによってアプリケーションププログラム140,142と144と通信を行う。
【0085】
デスクトップコンピュータ4のPIM7もより詳細なブロック図に示されている。ある1つの好ましい実施形態において、PIM7は、電子メールアプリケーションプログラム150、スケジューリング及びカレンダリングプログラム152とフルアドレス帳プログラム154を含む。アプリケーションプログラム150、152と154はそれぞれ関連するアプリケーションプログラミングインタフェースのセットを有するが、図6には簡単のために単一のアプリケーションプログラミングインタフェースコンポーネント156だけが示されている。
【0086】
図6はさらに、好ましい一実施形態において、オブジェクト記憶装置8がそれ自身のアプリケーションプログラミングインタフェース158のセット(API156、好ましくはMAPIと同じ、あるいはそれとは別個)に付随していることを示している。こうして、アプリケーションプログラミングインタフェース158によって呈示されたアプリケーションプログラム150、152と154の呼び出し方法は、オブジェクト記憶装置8を保全し、それと対話する。加えて、通信コンポーネント115はアプリケーションプログラム150、152と154と対話するためにアプリケーションプログラミングインタフェース156によって呈示されるメソッドを呼び出す。
【0087】
図6は、デスクトップコンピュータ4が好ましくは電子メールトランスポート160を含むことを示している。電子メールトランスポート160は好ましくは、SMTPトランスポートのような、市販の電子メールトランスポートである。しかしながら、デスクトップコンピュータ4はどんな適切なトランスポート、またはトランスポートの組み合わせも含むことに注意すべきである。
【0088】
図7はモバイルデバイス3上でミーティング要求が生成される手順を説明するための手順流れ図である。以下、図6と図7を参照して説明する。
【0089】
モバイルデバイス3からミーティング要求を生成するために、ユーザは最初に適当なユーザインタフェースを介してミーティング要求情報を入力する。好ましい一実施形態では、ユーザは適当なユーザインタフェースが画面84上に表示されるよう、スケジューリングアプリケーションプログラム142を開く。スタイラス86と、できればキーパッド82(あるいは他のいかなる適当な入力機構)を使用して、ユーザはミーティングを要求するために適切な情報を入力する。このような情報は一般にミーティングの日付と時間、(完全に限定された電子メールアドレスを使い、あるいはよく知られた名前を入力することによって入力される場合がある、あるいは空でない電子メールアドレス領域を持つコンタクトデータベースにおける登録情報から選択される場合がある)求められた出席者、ミーティングの主題、ミーティングが定期的なのか単発なのかの表示、できればミーティングの場所などを含む。スケジューリングアプリケーション142はミーティング要求を表すオブジェクトを生成する。
【0090】
この情報は、ミーティングオブジェクトを生成し、そのオブジェクトをモバイルデバイス3上のカレンダーと関連させて記憶装置に入力するために使われる。ミーティングオブジェクトの生成の結果、電子メールミーティング要求オブジェクトも生成される。ミーティングオブジェクトに対する続く重大な修正によっても更新された電子メールミーティング要求が生成され、送信されることにも注意すべきである。
【0091】
好ましい実施形態において、電子メールミーティング要求オブジェクトがそれを介して送られるトランスポートを指定する選択もすでに行われている。あるいは、使用するトランスポートは完全な電子メールアドレス、それ自身に暗示させることが可能である。例えば、モバイルデバイス3がミーティング要求自体を送信しようとするとき、トランスポート132−136のいずれかが使用されることが特定できる。加えて、すでに述べた同期プロトコルにおいて使用される特定のオプションを指定する選択も好ましくはすでに使用されている。例えば、もしインボックス同期オプションが使用可能であるなら、電子メールミーティング要求オブジェクトはデスクトップコンピュータ4のアウトボックスと同期させられる。同じく、もしカレンダー同期オプションが使用可能であるなら、ミーティングオブジェクトはデスクトップコンピュータ4のカレンダーと同期させられる。デスクトップコンピュータ4はその後、好ましくはアウトボックスと同期した電子メールミーティング要求オブジェクトを送信する。
【0092】
ユーザからのミーティング要求情報の受信と、ミーティングを表すミーティングオブジェクトと電子メールミーティングオブジェクトの生成は、図7のブロック162および164によって示される。
【0093】
次に、クリティカルタイムスタンプがオブジェクトに加えられ(ブロック165で示す)、そしてスケジューリングアプリケーション142は生成されたミーティングオブジェクトにグローバルオブジェクト識別タグを割り当てる。グローバルオブジェクト識別タグは、モバイルデバイス3、デスクトップコンピュータ4、そしてそのオブジェクトに遭遇するかもしれないすべての他のデバイスへのミーティング要求を代表するオブジェクトを一意に識別する、番号等のタグである。グローバル識別タグは送信されるときに電子メールミーティング要求オブジェクトと一緒に搬送され、他のデバイス上のオブジェクトと一緒のままである。これはブロック166によって示される。
【0094】
電子メールミーティング要求オブジェクトを別のデバイスに送らなくてはならないため、スケジューリングアプリケーション142は、電子メールプログラム140を操作してミーティング要求を受け取る可能性がある出席者のすべての完全に限定された電子メールアドレスを検索するためのAPI146のメソッドを呼び出す。1つの好ましい実施形態において、スケジューリングアプリケーション142はアドレス帳から完全に限定された電子メールアドレスを取得する。別の実施形態では、モバイルデバイス3は短縮されたアドレス帳プログラム144を含む。好ましい実施形態において、短縮されたアドレス帳プログラム144はMicrosoft Outlook97によって与えられるコンタクト機能として実現される。短縮されたアドレス帳は、ユーザが短縮アドレス帳に加えるために選んだ人々の姓名、住所、電話番号、そして完全に限定された電子メールアドレスを含む。これらの人々は多分モバイルデバイス3のユーザから多数の電子メールメッセージを受け取る可能性のある人々である。それ故に、その情報はミーティング要求の可能性がある出席者の完全に限定された電子メールアドレスをおそらく含んでいる。加えて、もしアドレスが完全に条件が合っていないなら、デスクトップ4上の同期コンポーネント97は電子メール送信に先立ってデスクトップ上の名前を決める試みを行う。
【0095】
こうして、電子メールアプリケーション140あるいはスケジューリングアプリケーション142のいずれかは、短縮されたアドレス帳プログラム144に完全に限定された電子メールアドレスを可能性のある出席者としてのユーザによって入力されたよく聞く名前を検索させるためにAPI146のメソッドを呼び出す。これは、例えばもしユーザが電子メールメッセージあるいはミーティング要求を送るためにデスクトップコンピュータ4から完全なアドレス帳をダウンロードするように要求されたなら、さもなければ必要とされるであろうメモリオーバーヘッドを軽減する。これはブロック168によって示される。別の好ましい実施形態では、ユーザが適切な情報を入力するとすぐに、ブロック168に関連した機能がブロック162において実行される。
【0096】
同じく、電子メールメッセージが送信される特定のトランスポートを示すトランスポートオプションがすでに好ましくは選択されている。それらのトランスポートは、モバイルデバイス3上のトランスポート132〜136のいずれかであるか、あるいはそれらのトランスポートの一つを使用してデスクトップコンピュータ4と同期することが可能である。選択されたオプションに基づいて、電子メールミーティング要求オブジェクトは適切なトランスポートを介して送信され、送信されると、モバイルデバイス3のアウトボックスから取り除かれる。
【0097】
もし電子メールミーティング要求オブジェクトがモバイルデバイス3上のトランスポートの一つから直接送られるなら、適切なトランスポートは送信するためのミーティング要求をフォーマットする。好ましい実施形態では、スケジューリングアプリケーションプログラム142がミーティング要求を表す電子メールミーティング要求オブジェクトに寄与する特性は多数の他のPIMと互換可能である。それ故に、これらの特性は、多数のPIMによって認識されるすべての特性の部分集合またはスーパーセットであり、その結果、オブジェクトはそれらのPIMによって受け入れられ、適切に扱われることが可能である。本明細書の最後に添付された補遺Aはメッセージの特性リストで、それによってミーティング要求に関連するオブジェクトがMICROSOFT SCHEDULE+ブランドのスケジューリングプログラムによって定義される。これらの特性は顕著なことにMICROSOFT SCHEDULE+スケジューリングソフトウェアの他のバージョンと逆方向互換性がある修正された繰り返し通知特性を含む。例えば、補遺Aに記載された実施形態において、定期的ミーティングを確定するために使われる繰り返し通知は単一インスタンスの通知のスーパーセットとしてフォーマットされる。このようにして、前バージョンのMICROSOFT SCHEDULE+スケジューリングソフトウェアには、定期的ミーティングに対してさえ、うまく作られたミーティング通知を提供する。
【0098】
好ましい実施形態では、スケジューリングプログラム142はその後、電子メールアプリケーションプログラム140に関係するAPI146によって呈示されるメソッドを呼び出す。電子メールミーティング要求オブジェクトを含んでいる電子メールメッセージは電子メールアプリケーション140によって所定数のクラスの1つに定式化される。可能性がある出席者の受信スケジューラプログラムはメールメッセージクラスに基づいてミーティング通知のタイプを区別する。例えば、ある1つの好ましい実施形態において、主催者からのミーティングキャンセル通知、主催者からのミーティング要求、出席者からのミーティング受諾、出席者からのミーティング辞退、出席者からのミーティング仮受諾などのメールメッセージ分類がある。従って、これは、トランスポートが送信のために電子メールミーティング要求オブジェクトをフォーマットするときに、オブジェクトとともに好ましくは含まれる。ミーティング要求は、通信コンポーネント94を介して指名されたトランスポート132、134あるいは136に送信され、トランスポートはメッセージをフォーマットし、ネットワーク138へ送信する。
【0099】
モバイルデバイス3上のトランスポートからの電子メールミーティング要求オブジェクトのフォーマットと送信は図7のブロック172と174に示されている。
【0100】
電子メールミーティング要求オブジェクトが送られた後、それはメッセージが送られたことを示すためにモバイルデバイス3のアウトボックスから取り除かれる。これはブロック190によって示される。次にデスクトップコンピュータ4につながれると、ミーティングオブジェクトはデスクトップコンピュータ4上のカレンダーを含む記憶装置に同期させられる。好ましくは、ミーティングオブジェクトはデスクトップ上のカレンダーに同期させられているだけであるので、PIMは、電子メールミーティング要求オブジェクトをPIMが単純に生成して送信するのを妨げるために利用できる機能も与える。その機能は単に、デスクトップ上に生成されたミーティング要求のための電子メールミーティング要求オブジェクトを生成するだけのものでよい。この機能はさらに重複メッセージ送出の問題に取り組むために実装される。
【0101】
もしトランスポートオプションが、デスクトップコンピュータ4上の同期プロトコルとメールトランスポートを使用して電子メールミーティング要求オブジェクトを送るために選択されたならば、電子メールミーティング要求オブジェクトがデスクトップコンピュータ4のアウトボックスに同期させられること以外、処理は実質的に同じである(ブロック173に示す)。モバイルデバイス3は、ミーティング要求に関して何か処理が取られる前、それがデスクトップコンピュータ4につながれるまで単に待機する。モバイルデバイス3がデスクトップコンピュータ4に繋がると、すでに述べた同期プロトコルが実行される。同期プロセスの間は、ミーティングオブジェクトはデスクトップコンピュータ4上のカレンダーに同期させられ、そしてその後、電子メールミーティング要求オブジェクトは同期コンポーネント97と99を介してデスクトップコンピュータ4のアウトボックスに同期させられる。ミーティング要求を表示する電子メールミーティング要求オブジェクトを受け取ると、電子メールアプリケーションプログラム150はミーティング要求を送信する必要があることを認識する。電子メールアプリケーションプログラム150は適切なオブジェクトが通信コンポーネント115とトランスポート160を介してネットワーク138へ送られるようにするためにAPIによって呈示された必要なメソッドを呼び出す。これは再びブロック172、173、174と190、によって示される。
【0102】
好ましい代替の一実施形態では、ミーティング要求はモバイルデバイス3上で完全にフォーマットされる必要がないことも注意するに値する。その代わりに、電子メールミーティング要求オブジェクトを表現しているデータは記憶され、かつそれが完全にフォーマットされるところのデスクトップコンピュータ4に同期の間に転送できるだけである。例えば、ある1つの好ましい実施形態では、モバイルデバイス3は、ミーティング要求を送る際にデスクトップコンピュータ4によって使われる特定のトランスポートを格納しない。この情報はモバイルデバイス3により記憶されないので、それはデスクトップコンピュータ4とは同期しない。代わりに、デスクトップコンピュータ4上の電子メールアプリケーションプログラム150は(ミーティング要求を送信する前に)、完全なアドレス帳154が可能性がある出席者のそれぞれに関連するユーザによって識別されたトランスポートを検索するようにするためにAPI156を介して必要なメソッドを呼び出す。その後その情報は、電子メールミーティング要求オブジェクトを送信するのに適切なトランスポート160を選択する際に電子メールアプリケーションプログラム150によって使用される。このようにして、このようなトランスポート情報を記憶するための追加の記憶容量は、モバイルデバイス3の上に消費される必要がない。これはブロック188によって示される。
【0103】
どんな場合にも、電子メールアプリケーションプログラム150によって電子メールミーティング要求オブジェクトがネットワーク138に送信されると、その電子メールミーティング要求オブジェクトはアウトボックスから取り除かれる。これはブロック190によって示される。
【0104】
電子メールミーティング要求オブジェクトが送られた後、どれか他にミーティング要求が最新の同期プロセスの間にデスクトップコンピュータ4に同期させられたかどうかが決定される。もしそうでなければ、通常処理が継続される。もしそうであるなら、処理はブロック172に逆戻りして、そこで電子メールアプリケーションプログラム150はオブジェクトを送るために必要なAPIを呼び出す。これはブロック192によって示される。
【0105】
図8は、いかにモバイルデバイス3が図7に従って送信されたミーティング要求に対する応答を処理するかの好ましい実施形態を示した手順流れ図である。好ましい実施形態では、ミーティング要求に対する応答の受信者はミーティング主催者である。ミーティング要求の発信者と受信者の両方が委任処理に関して適切に取り決められる。公的に入手可能なMAPI仕様書はいかにこのような特性を解釈すべきかを十分に開示する。
【0106】
こうして、ミーティング要求の受信者には、応答を示すのに適当なユーザインタフェースが与えられる。応答はミーティングの主催者、あるいは別の適切な代表者に宛てられる。応答はその後、受信者が操作するデバイスによって転送され、トランスポート132、134、または136のいずれか1つによって、あるいはモバイルデバイス3の通信コンポーネント94を介して受信される。これは図8のブロック194によって示される。
【0107】
応答を受け取ると、スケジューリングアプリケーションプログラム142は応答を、ユーザがオブジェクト記憶装置6に記憶された要求を生成するときスケジューリングアプリケーションプログラム142によって形成されたミーティングオブジェクトに関連づける。この関連付けは、それに遭遇するかもしれないすべてのデバイスへのミーティング要求を一意に識別するグローバル識別数を使うことによって実行される。これはブロック196によって示される。
【0108】
その後、クリティカルタイムスタンプ情報が、応答が最も最近のミーティングオブジェクトに対応するかどうか決定するためにチェックされる。応答は実際には2つのタイムスタンプを含んでいることが好ましい。第1のスタンプは主催者のクリティカルタイムスタンプの受信者の意見である。第2のスタンプは受信者によって割り当てられたタイムスタンプである。第1のスタンプはそれが主催者のタイムスタンプと同じであるかどうかを決定するためにチェックされる。もしそうであるなら、応答は期限内(in date)であると考えられる。もしそうでなければ、応答は拒絶されるか、あるいは期限の切れた応答として無視される。第2のスタンプは、応答が期限内であるためにはこの特定の受信者からの以前に記録されたタイムスタンプのいずれかと等しい、あるいは大きくなければならない。そうでなけい場合、応答は拒絶されるか、あるいは期限切れとして無視される。これはブロック197によって示される。
【0109】
好ましい実施形態では、タイムスタンプは常に前進していることに注意すべきである。従って、たとえユーザが十分過去へ時計をリセットするとしても、次のタイムスタンプはどれも常に現在のクロックタイムより後であり、かつ最新のタイムスタンプに1秒を足したものである。
【0110】
その後、スケジューリングアプリケーションプログラム142は、要求に関連する出席者状況を更新するためにAPI148によって呈示される必要な方法を呼び出す。これは出席者から受け取られた特定の応答に基づいて更新される。これはブロック198によって示される。
【0111】
その後、モバイルデバイス3は単にデスクトップコンピュータ4に接続されるのを待つ。接続されると、更新されたオブジェクト(更新された出席者状況特性を含んでいる)は、オブジェクト記憶装置8に該オブジェクトが記憶されるインスタンスに同期させられる。これは上に論じられた同期プロトコルを利用して実行される。これはブロック200と202によって示される。その後、ミーティングオブジェクトはスケジューリングアプリケーションプログラム152とデスクトップコンピュータ4に対して利用可能で、ユーザ観測および対話のために、デスクトップコンピュータ4におけるユーザのカレンダー上に表示できる。
【0112】
図9は、応答がデスクトップコンピュータ4上のトランスポート160を経由して受信されたときに、いかにその応答が処理されるかの好ましい実施形態における手順流れ図である。最初にユーザはミーティング要求に対するユーザの応答を定義する適切なユーザインタフェースを介して情報を入力する。その後、その応答はトランスポート160と通信コンポーネント115を介してデスクトップコンピュータ4に送り戻される。これはブロック204によって示される。
【0113】
スケジューリングアプリケーションプログラム152は、モバイルデバイス3がしたように、ミーティングオブジェクトに割り当てられ、かつミーティング要求への応答と一緒に受信されたグローバル識別番号を利用して、ミーティングオブジェクトに応答を関連づける。これはブロック206によって示される。その後、上述したように、タイムスタンプ情報は、応答が最も最近のミーティングオブジェクトに対応するかどうか決定するためにチェックされる。もしそうでなければ、応答は拒絶されるか、あるいは期限切れの応答として無視される。これはブロック207によって示される。その後、スケジューリングアプリケーションプログラム152は、オブジェクト記憶装置8に記憶されたミーティングオブジェクトの出席者状況を修正して更新するために、API158によって呈示された必要な情報を呼び出す。これはブロック208によって示される。その後、デスクトップコンピュータ4は、それが次にモバイルデバイス3に繋げられるまでただ待機する。
【0114】
その時点で、オブジェクト記憶装置8の更新されたオブジェクト(これは応答に基づいて正確に新しい出席者状況を反映するために更新された)はそのオブジェクトがその後オブジェクト記憶装置6に記憶される他のインスタンスに同期させられる。同期はプロトコルが上述した同期プロトコルによって実現される。その後、更新されたオブジェクトはモバイルデバイス3のユーザが再検討し、処理するために利用可能となる。これはブロック210と212によって示される。
【0115】
本発明による図示された実施形態のモバイルデバイスは、定期的ミーティングおよびミーティングキャンセルの例外を処置する。一実施形態では、定期的ミーティングの繰り返しパターンの更新情報を受信すると、スケジューリングPIMはすべての例外も抹消する。従って、定期的ミーティングパターンの変更が送られると、新しい電子メールオブジェクトを各例外に対して生成かつ送信しなければならない。例えば、ユーザがモバイルデバイス3上で定期的ミーティング要求を入力したと仮定する。スケジューリングアプリケーション142は定期的ミーティングオブジェクトを生成し、それをユーザのカレンダーに登録する。電子メールアプリケーション140も可能性がある出席者に送信するための電子メール定期的ミーティング要求を生成する。受信者(可能性がある出席者)は一般に上述したように返答することができる。
【0116】
本例の目的のために、定期的ミーティングは4月1日から毎週火曜日午前10:00〜11:00に行われるものと仮定する。しかしながら、ユーザ(主催者)は4月8日のミーティングをキャンセルする必要がある。ユーザはスケジューリングアプリケーション142を起動し、そして所望のインスタンスを削除する。電子メールアプリケーション140は、次に、この削除を示す送信のために別のオブジェクト(繰り返しパターンの例外)を生成する。主催者は次いで4月15日のミーティングを11:00〜12:00正午に変更する必要がある。類似のプロセスが該例外を生成するためにも実行される。その後、主催者は定期的ミーティングの場所の変更を行い、変更を全繰り返しパターンに適用する。このためには、3つの新規電子メールを送信する必要がある。
【0117】
最初の電子メールは単に繰り返しパターン修正する新たな場所を示すために生成される。これは、一部のPIMにおいて、先の2つの例外を削除してもかまわない。こうして、新しい2通の電子メールが2つの例外を再度設けるために生成される(すなわち、4月8日のミーティングのキャンセルと4月15日のミーティングの時間変更)。これらの電子メールは、自動的に電子メールアプリケーション140によって生成される。これらの同じ処置が、出席者リストの修正といった他の適当な変更に応じてもとられる。
【0118】
ローカリゼーション
上述したように、好ましい実施形態において、ミーティングオブジェクトは一般にミーティング要求の性質を記述するテキストフレーズが伴う。テキストフレーズはユーザによってミーティング要求の生成の間に入力された特性値に基づいて生成される。例えば、ユーザは可能性がある出席者に、2000年1月1日から2001年3月20日までの間、毎月第3月曜日午前10:00のミーティングへの参加を要求してよい。その場合、典型的なテキストメッセージは以下のようになるが、これは検索されかつ、可能性のある出席者に表示するため、ミーティング要求オブジェクト内に添付される。
「このミーティングは2000年1月1日から2001年3月20日まで、毎月第3月曜日午前10時00分に開催されるものとする。(This meeting shall take place on the third Monday of each month at 10:00 a.m. beginning January 1, 2000, and ending March 20, 2001.)」
【0119】
しかしながら、異なった地域において、日付を記す際に日は月の前に置かれるという取り決めがなされることがある。さらに、テキストメッセージにおけるワードあるいはフレーズと、テキストメッセージのコンポーネントの順番は、地域の取り決めにより従うように再配置する必要がある。
【0120】
好ましい実施形態では、上述したタイプの所定のテキストメッセージは、モバイルデバイス3のユーザが要求できる各異なったタイプの定期的ミーティングを記述するために生成される。
【0121】
本発明の一態様によれば、定期的ミーティングを要求するために使用されるテキストメッセージは複数のフレーズに分解される。生成されたフレーズはそれぞれ複数のフィールドに分解される。ミーティング要求を定義するために生成可能な特定フレーズと、それらのフレーズが分離される特定フィールドは、どんな適切なフレーズやフィールドでもよい。
【0122】
上述したフレーズに関して、図11Aはフレーズが分解され得るフィールドの一実施形態を示している。図11Aは、フレーズの第1部分「このミーティングは毎月第3月曜日に開催されるものとする」はフィールド214に置かれることを示している。用語「において(at)」はフィールド216に置かれる。時指定「10:00」はフィールド218に置かれ、AM/PM指名子はフィールド220に置かれる。用語「開始(beginning)」はフィールド222に置かれ、残りのメッセージは同様にフィールド224、226、228、230、234、236、238、240と242に分解される。
【0123】
図10はローカリゼーションプロセスが如何に作用するかを示した手順流れ図である。ミーティング要求を定義するテキストフレーズの生成と、それらの要求の様々な所定フィールドへの分解がブロック242によって示される。次に、モバイルデバイス3の製造の間に、メッセージがそれぞれ地域の取り決めに従うように、ローカライザプログラムがモバイルデバイス3上で生成された各メッセージ毎に実行されフィールド214〜240が再配置される。もちろん、モバイルデバイス3上で実行される特定のローカライザプログラムはモバイルデバイス3が意図される特定の地域性と消費者ベースに依存する。ローカライザプログラムを実行すると、モバイルデバイス3は地域にあったやり方でテキストメッセージを表示するようメッセージデータを配置するための、テンプレートと呼ばれる複数セットのフィールドを含む。テンプレートをセットアップする際にローカライザプログラムを実行することはブロック244によって示される。
【0124】
モバイルデバイス3が地域にあったテンプレートを所有した後、モバイルデバイス3はミーティング要求を受信し、ミーティング要求のテキスト記述を正しく表示する準備ができる。ミーティング要求を受信すると、ミーティングを記述するテキストフレーズを表すデータストリームもスケジューリングアプリケーションプログラム142によって受信される。これはブロック246によって示される。スケジューリングアプリケーションプログラム142は、適切なテンプレートにおける様々なフィールドに関連する値に、入データストリームを構文解析する(適切なテンプレートは受信中の特定のテキスト記述に対応する)。これはブロック248によって示される。
【0125】
次に、構文解析されたデータは生成されたフレーズに基づいてテンプレートにおける予め選択されたフィールドに置かれる。これはブロック250によって示される。ローカライザプログラムがすでに実行されたので、テンプレートにおけるフィールドはすでに地域の取り決めに従うように適切な順序で配置される。
【0126】
図11Bは、図11Aに示されたテンプレートにおけるフィールドの異なった取り決めに従った再配置を示している。図11Bは、フレージングが図11Aに示されたものとは少し異なり、日付において日が月よりも前に慣習的に置かれる取り決めにフレーズが従う場合を示している。フレーズはここで同じ用語を含むが、以下のようになる。
「このミーティングは2000年1日/1月から2001年20日/3月まで毎月第3月曜日午前10時00分に開催されるるものとする。(Beginning 1 January, 2000 and ending 20 March, 2001 this meeting shall take place on the third Monday of each month at 10:00 AM)」
【0127】
すべての適切なフレーズは、もちろん、同様にローカライズされる。
【0128】
また、例示した実施形態において、時間帯情報は有利なように処理される。例えば、定期的ミーティング要求が生成され、異なった時間帯に位置しているデバイスに送られるとき、定期的ミーティングを示すテキストフレーズは定期的ミーティング要求が生成された時間帯の表示を含む。例えば、3月3日から毎週火曜日午前8時00分に開催されるミーティングに関して、もしパリ(仏国)のユーザがシアトル(9時間の時差がある)の受信者に定期的ミーティング要求を送信するならば、テキストフレーズは以下のようになる。
「このミーティングは3月3日から毎週火曜日午前8時00分に開催される;(GMT+1)パリ、マドリッド。(This meeting occurs every Tuesday at 8:00 a.m. beginning March 3; (GMT + 1) Paris, Madrid.)」
【0129】
これによって、受信者は送り手によって最初に構成された繰り返しパターンを見ることができる。
【0130】
一方、ミーティングが定期的でない場合、時間は単に受信者にとって適切な時間として表示される(例えば、「このミーティングは火曜日午後11時00分に予定されている」)ことが好ましい。
【0131】
結論
したがって、本発明は従来のシステムを越える大きな利点を提供することが見て取れる。まず、本発明によれば、モバイルデバイス自身からミーティング要求を生成することができる。本発明はさらに、関連する可能性が高いすべての他のデバイスへのオブジェクトを一意に識別するように、こうしたミーティング要求に関連するオブジェクトを識別する。本発明は、ミーティング要求が可能性がある出席者に送られたかどうか示すPIMの機能も利用する。これらの機能により重複メッセージ送信がなくなる。
【0132】
本発明はまた、短縮されたアドレス帳を使用してミーティング要求機能を実行するのに必要なメモリを減少させる機能を実現することが好ましい。さらに、本発明はミーティング要求と遭遇する可能性が高い複数の異なったPIMと互換性がある1セットのスケジューリング特性を使用する。加えて、本発明は好ましくは、ミーティング要求を、有利な方法でより地域の取り決めに従い、そして時間帯情報を処理するようローカライズするローカリゼーション手続を利用する。本発明は好ましくは、同期プロトコルは言うに及ばず、多数の電子メール転送の使用もサポートする。
【0133】
本発明を好ましい実施形態を参照しながら説明したが、当業者は本発明の精神および特許請求の範囲を逸脱することなく形態及び詳細において変更が可能であることを認識するであろう。
【表1】

Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591

【図面の簡単な説明】
【図1】 本発明の基本環境を示すブロック図である。
【図2】 本発明によるモバイルデバイスと併用される従来のデスクトップコンピュータの一実施形態のブロック図である。
【図3】 本発明によるモバイルデバイスの一実施形態を示す簡略化した絵図である。
【図4】 図3に示すモバイルデバイスの一実施形態の簡略化したブロック図である。
【図5】 図2に示すデスクトップコンピュータの一部の一実施形態と、図3および図4に示すモバイルデバイスとを示すブロック構造図であり、デスクトップコンピュータ上および本発明によるモバイルデバイス上のオブジェクト記憶装置に記憶された同期情報を示す。
【図6】 図2に示すデスクトップコンピュータの一部の一実施形態と、図3および図4に示すモバイルデバイスとを示すブロック構造図であり、ミーティング要求の生成および転送を示す。
【図7】 本発明の好ましい一実施形態によるミーティング要求の生成を示す流れ図である。
【図8】 本発明の好ましい一実施形態による図3および図4に示すモバイルデバイス上のミーティング要求に対する応答処理を示す流れ図である。
【図9】 本発明の好ましい一実施形態による図2に示すデスクトップコンピュータ上のミーティング要求に対する応答処理を示す流れ図である。
【図10】 本発明の好ましい一実施形態によるミーティング要求のテキスト記述をローカライズするローカライザの利用を示す流れ図である。
【図11】 図11Aおよび図11Bは、本発明によるミーティング要求のテキスト記述をローカライズするために使用されるテンプレートの一実施形態を示す。[0001]
(Background of the Invention)
Mobile devices are small electronic computing devices often referred to as personal digital assistants. One such mobile device is sold under the brand name Handheld PC (or “H / PC”) based on the Windows CE brand operating system provided by Microsoft in Redmond, Washington. ing. While such mobile devices can perform a wide range of computing tasks and applications, personal information managers (PIMs) are particularly suitable for mobile devices.
[0002]
PIM typically includes applications that allow mobile device users to better manage scheduling, communication, and other such tasks. Some commonly available PIMs include scheduling and calendar programs, task lists, address books, and e-mail programs. Some commonly available PIMs are sold under the brand names Microsoft Schedule + and Microsoft Outlook, and are available from Microsoft Corporation in Redmond, Washington. For the purposes of this discussion, PIM also includes a separate email application, such as that available under the brand name Microsoft Exchange.
[0003]
Ordinarily, mobile devices are used in conjunction with desktop computers. For example, a user of a mobile device can also have and use an office, home, or both desktop computer. Users typically run the same type of PIM on both desktop computers and mobile devices (although certain versions of PIM may differ somewhat between desktop computers and mobile devices). For this reason, it is highly advantageous if the mobile device is designed to be connectable to a desktop computer, to exchange information with it, and to share information.
[0004]
The user can also make changes to the PIM on both the mobile device and the desktop. Thus, it is advantageous if the PIM on both the mobile device and the desktop contains the latest information, regardless of whether recent changes to the PIM were made on the mobile device or desktop computer. The procedure of connecting the mobile device to the desktop computer and integrating the information stored by the PIM on the mobile device and the desktop computer so that both have the same updated information is called synchronization.
[0005]
Traditional PIMs that support electronic calendar and scheduling functions (collectively referred to as schedulers or scheduling applications) are classically supported on desktop computers. Such a PIM provides the ability for a user to schedule a meeting request for one or more desired attendees.
[0006]
In order to generate a meeting request, the user typically interacts with a scheduling application via a user interface. The user interface provides the user with a plurality of selectable options for parameterizing the meeting request. For example, the normal user interface allows the user to select the date and time (and often the location) that the meeting will be held. Ordinarily, the user interface selects the attendees that the user wants to join the meeting, enters a text description with the meeting and has only one date, or a recurring meeting (meeting) (ie , Whether the meeting is held on only one date, or the 15th of every month, the first Monday of every month, every Monday, etc.).
[0007]
Based on this information, the scheduling application creates an object representing the meeting and enters it into the user's calendar as an appointment. Such objects are usually defined by a number of characteristics, some of which are defined by user input information provided by the user while generating the meeting request. The meeting information also includes a critical time stamp (UTC), which is updated whenever a significant change is made to the meeting object, such as a meeting start or end time change, location change, etc.
[0008]
Appointments entered in the calendar are viewed as meetings because other people are identified as attendees, and scheduling applications are typically commercially available from the Messaging Application Programming Interface (MAPI) or Microsoft Corporation in Redmond, Washington. Invoke methods exposed by email applications according to other APIs that are well-proven and exposed sets of interfaces.
[0009]
In response, the email application generates another object that represents the meeting request (an email meeting request object), and the email application (or suitable transport) well defines this email meeting request object. And format it into an email message suitable for transfer. In doing this, a critical timestamp from the meeting object is also placed in the email meeting request object. The email application then interacts with the specific transport, transports the email meeting request object to the network, and the network routes it to the designated attendee. In doing this, the email application typically accesses an address book stored in a database to obtain an email address that is fully qualified for the attendee. This is also typically done by calling a MAPI or other suitable API method associated with the database storing the address book. The creation of the meeting object and the email meeting request object are collectively referred to herein as meeting request creation.
[0010]
Then, typically a potential attendee responds to the meeting request. In doing this, the caller's critical timestamp is sent back (no change) with the response. The response also includes an indication of the recipient's critical timestamp and the recipient's response (eg, accept, reject, provisional accept, etc.). The recipient's critical timestamp is updated by the recipient (possible attendees) whenever the recipient makes a significant change. This allows the user to reliably order the receipt of multiple versions of the same meeting (for example, a caller has changed the meeting time, date, or location, resulting in multiple meeting requests) Can do. In addition, the caller can order the receipt of responses in a reliable manner to ensure that each response correlates to the latest version of the meeting.
[0011]
The response is then forwarded to the caller (eg, calling computer). The caller's email application and scheduling application then typically processes the response (s) accordingly. For example, for each recipient (or potential attendee), the caller stores the recipient's critical timestamp along with each recipient's response code (representing an acceptance, rejection, provisional acceptance response) in a table. The two commercially available PIMs identified above (Microsoft Schedule + and Microsoft Outlook branded PIMs) are examples of PIMs that support the functions described above.
[0012]
Meeting cancellations and exceptions to recurring meetings must also be handled. For example, PIM allows cancellation of scheduled meetings and various exceptions to the regular meeting pattern.
[0013]
The scheduling of meeting requests as described above has been perpetual until now by a desktop or laptop computer with a hard disk drive or other mass memory mechanism, or on a server or similar other computer including its own mass storage. Has been supported only by intelligently attached low intelligence terminals. The ability to schedule meeting requests from mobile devices is simply not available. Some current mobile devices have a PIM that allows users to view meeting requests and view meetings that have already been scheduled, but on current mobile devices, users can request meeting requests from the mobile device itself. Cannot be generated.
[0014]
There are a number of significant obstacles in attempting to provide users with the ability to generate meeting requests from mobile devices. Exceptions to meeting cancellations and recurring meetings must be handled. There is also a considerable problem with the possibility of transferring double meeting requests. While it is not necessary to generate duplicate meeting requests at every PIM, as described below, it presents a potential problem that must be considered. For example, if a mobile device user can generate a meeting request, the meeting object is first entered into the mobile device's calendar. The email application on the mobile device then creates a corresponding email meeting request object.
[0015]
Next, when the mobile device is synchronized with the desktop computer, the meeting object is synchronized with the calendar object store on the desktop computer, and the email meeting request object is synchronized with the desktop outbox. The desktop computer recognizes the email meeting request object in the outbox, formats it for transfer, and transfers it over the network. In addition, as a result of synchronizing the meeting object with the desktop computer calendar, the desktop computer may create and forward another e-mail meeting request object. This results in the creation of a dual email meeting request object (after synchronization, one by the mobile device and one by the desktop computer). Under such circumstances, a potential attendee may receive more than one meeting request and respond to both. This creates a double response to what should be a single meeting request.
[0016]
For example, a similar problem may occur if a meeting request is generated in a conventional manner (to a desktop computer) and then synchronized to a mobile device that has the ability to generate and forward the meeting request. Meeting objects on the desktop calendar are synchronized to the mobile device calendar. The mobile device then recognizes the synchronized meeting object from the desktop and creates an email meeting request object and attempts to transfer the object. This results in substantially the same problem. That is, a double meeting request and a double response are generated for what should be a single meeting request.
[0017]
Furthermore, if the user of the mobile device is coupled to one or more desktop computers (if the mobile device has this capability, such as a home computer and a work computer) mobile device, the same problem results. In that example, and using conventional architecture, both desktop computers synchronize and recognize the meeting object and email meeting request object from the mobile device. Both desktop computers may create additional email meeting request objects and forward them to potential attendees. Again, this results in many different meeting requests and responses being forwarded for what should be a single meeting request.
[0018]
In addition, if a mobile device has the ability to connect directly to another mobile device and communicate with each other without going through a desktop or similar computer, a meeting request is generated on one mobile computer and the other mobile device And can be scheduled on both mobile devices. However, the next time the first mobile device synchronizes with the desktop computer, the computer again recognizes the synchronized meeting object from the mobile device's calendar, creates another e-mail meeting request object, and the e-mail meeting request May transfer objects. For this reason, there are potentially considerable problems associated with generating a large number of meeting requests.
[0019]
Of course, a similar problem occurs when a significant change is made to a meeting object on either a desktop computer or a mobile device. This also creates an undesirable double email meeting request.
[0020]
Further problems arise because conventional mobile devices are much less than the memory capacity of desktop or similar computers. This creates a problem with the storage of address books on the mobile device that contain fully qualified email addresses of all potential attendees.
[0021]
An additional obstacle exists because many desktop computers that have to process meeting requests have different scheduling applications. Thus, a meeting request generated by a mobile device may not be compatible with an associated scheduling application.
[0022]
In addition, localization of meeting requests can present problems. For example, depending on locality, when writing data, it is usual to place the month first, then the day, and third the year. For other localities, it is usually a different order. In addition, the text description that describes the meeting and that accommodates the meeting request may need to be rearranged to accommodate local convenience. Meeting requests can also be generated in one time zone and forwarded to recipients in another time zone. This is confusing.
[0023]
The present invention addresses some or all of these obstacles.
[0024]
(Summary of Invention)
The present invention includes a mobile device that provides a user with the ability to schedule a meeting request from the mobile device. The mobile device creates an object representing the meeting request and assigns the object a universal identification number that uniquely identifies the object from other devices associated with the object. In addition, a mobile device according to an aspect of the present invention provides object characteristics that indicate whether a meeting request has already been forwarded. In this way, other devices associated with the meeting request can identify the request as a unique meeting request and alleviate the problem of double meeting request forwarding.
[0025]
According to another preferred feature of the invention, the email application or calendar application on the mobile computer is perfectly qualified for attendees who may be stored from a reduced address book or directly on the mobile device itself. Get your email address. This alleviates problems associated with the storage capacity of the mobile device.
[0026]
According to another preferred embodiment of the present invention, the mobile device creates a meeting object and an email meeting request object using a set of characteristics supported by a plurality of PIMs capable of receiving the object. This provides compatibility with an increased number of devices that may be associated with the object.
[0027]
According to yet another preferred feature of the invention, the localizer implements a plurality of templates on a mobile device used for formatting the characteristics of an object associated with a meeting request. Since the data stream representing the meeting request is parsed by the mobile device and placed in pre-selected fields in the appropriate template, the text viewed by the user of the mobile device is better adapted to the local convention. Furthermore, time zone information is also included in one embodiment.
[0028]
Detailed Description of Preferred Embodiments
Overview
FIG. 1 is a block diagram of an exemplary system or environment 2 in which the present invention operates. The environment 2 includes a mobile device 3 and a desktop computer 4. FIG. 1 also shows that the mobile device 3 can optionally be coupled separately to another mobile device 10 or another desktop computer 13.
[0029]
The mobile device 3 includes an application program 5 and an object storage device 6. The desktop computer 4 also includes an application program 7 and an object storage device 8. The mobile device 10 includes an application program 11 and an object storage device 12. Further, the desktop computer 13 includes an application program 14 and an object storage device 15.
[0030]
The mobile device 3 can be connected to the desktop computer 4, the mobile device 10, or the desktop computer 13 by one or more connection mechanisms 9. The operation of the desktop computers 4 and 13 and the operation of the mobile devices 3 and 10 are preferably similar. Therefore, for the sake of simplicity, this description will proceed with reference to the mobile device 3 and the desktop computer 4 only.
[0031]
In a preferred embodiment of the present invention, the application program 7 on the desktop 4 is a personal information manager (PIM) that supports an email book, scheduling and calendaring, and an address book containing contact information.
[0032]
PIM applications are not always integrated. For example, some scheduling programs do not include an email function, but may interface with anything equipped with an email program (or vice versa). Of course, PIM7 (a single application or a single integrated application or multiple interfaced applications) has a wide variety of other functions such as task lists and personalization (to name a few) It can be configured to support an address book, etc. However, for clarity, functions relating only to email messaging, scheduling and calendaring functions, and address book functions are described in detail with respect to the present invention.
[0033]
The object store 8 is a memory configured to store a plurality of separate records or objects, each containing a plurality of fields or characteristics associated with the function. In a preferred embodiment, PIM 7 is a program such as that available under the trade name Microsoft Outlook 97. The object store 8 is configured to store objects each having a plurality of characteristics that may be associated with email messaging, scheduling and calendaring, and contact information.
[0034]
For example, some characteristics included in objects related to email messaging include sender name, recipient name, text message, and whether an attachment is attached to any given email message , And possibly other similar characteristics. In addition, some characteristics related to scheduling and calendaring include critical timestamp information, date and time information, potential attendees, repetitive characteristics that describe a recurring meeting or meeting request, and meeting request text. Contains a description. Some characteristics related to contact information are exactly the exact life of the contact list, or a known name, the address and phone number of the person listed, and the person who is on the list perfectly Contains an email address. Any number of other characteristics may also be included. The desktop computer 4 executes an application identified as the PIM 7 and holds an object stored in the object storage device 8.
[0035]
The application program shown as the PIM 5 for the mobile device 3 is the same PIM as that stored in the desktop computer 4. The object store 6 on the mobile device 3 is configured to store a plurality of separate records or objects, each including a plurality of fields or characteristics associated with the supported functions described above. Like PIM7, PIM5 can also support a wide range of other functions. However, for the sake of clarity, only the functions relevant to the present invention are described in detail herein.
[0036]
In an exemplary embodiment, each object in the object store 6 includes the same set of characteristics or a subset of these characteristics stored in the object store 8 for the associated message. In addition, the object stored in the object store 6 also includes a critical change timestamp, a characteristic that indicates whether an attendee who may have been identified in the meeting request has responded, and a general identifier for each individual meeting request (Details will be described later). The mobile device 3 executes the PIM 5 and holds the object in the object storage device 6.
[0037]
In the exemplary embodiment, each object stored in the object storage device 8 is also stored in the object storage device 6. However, there are actually two instances for each object (one in object store 6 and one in object store 8). Thus, when a user makes a change to one instance of an object stored in either storage device 6 or storage device 8, the second instance of the object in the other of storage devices 6 and 8 is then mobile. Preferably, when the device 3 is connected to the desktop computer 4, any instance of the same object will contain the latest data. This is called synchronization.
[0038]
In order to achieve the synchronization, the synchronization component is executed on the mobile device 3 and the desktop computer 4. The synchronization component communicates with the PIMs 5 and 7 on the mobile device 3 and the desktop computer 4 via a well-defined interface to manage communication and synchronization.
[0039]
The components of the mobile device 3 and the desktop computer 4 communicate with each other via any suitable and commercially available communication link 9 and using a suitable communication protocol. For example, in a preferred embodiment, the mobile device 3 can be connected to the desktop computer 4 with a physical cable that communicates using a serial communication protocol. Other communication mechanisms such as infrared (IR) communication, direct modem communication, remote dial-up networking communication, communication via a commercially available network card (ie using TCP / IP), remote access service (RAS), wireless modem, Wireless cellular digital packet data (CDPD), or other suitable communication mechanism or the like is also contemplated by the present invention.
[0040]
FIG. 2 and the associated description are intended to provide a simplified and general description of a suitable desktop computer 4 on which part of the invention may be implemented. Although not required, the invention will be described at least in part in the general context of computer-executable instructions, such as program modules, being executed by a personal computer 4 or mobile device 3. Generally, program modules include routine programs, objects, components, data structures, etc. that perform particular tasks or implement particular summary data types. Furthermore, the desktop computer 4 may be implemented in other computer system configurations including multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. Examples of distributed programs include those sold under the trade names Exchange, Schedule +, and MS Mail (all available from Microsoft).
[0041]
With reference to FIG. 2, an exemplary system for implementing a desktop computer 4 includes a general purpose computing device in the form of a conventional personal computer 4 that includes a processing unit 21, a system memory 22, and a system memory. Includes a system bus 23 that couples various system components including the. The system bus 23 using any of various bus structures may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus. The system memory includes read only memory (ROM) 24 and random access memory (RAM) 25.
[0042]
A basic input / output system (BIOS) 26 including a basic routine for assisting the transfer of information between elements in the desktop computer 4 at the time of startup or the like is stored in an EEPROM which is a part of the ROM 24. The desktop computer 4 further includes a hard disk drive 27 for reading and writing to a hard disk (not shown), a magnetic disk drive 28 for reading and writing to a removable magnetic disk 29, and a CD-ROM or other optical. It is preferable to include an optical disc drive 30 for reading from and writing to a removable optical disc 31 such as a medium. The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 via a hard drive interface 32, a magnetic disk drive interface 33, and an optical drive interface 34, respectively. The drive and associated computer readable media provide computer readable media, data structures, program modules, and other non-volatile storage of data for the desktop computer 4.
[0043]
Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 29, and a removable optical disk 31, other types of computer-readable media that can be accessed by a computer and that can store data, such as magnetic Those skilled in the art will appreciate that cassettes, flash memory cards, digital video discs (DVDs), Bernoulli cartridges, random access memory (RAM), read only memory (ROM), etc. may also be used in an exemplary operating environment. It will be understood.
[0044]
A number of program modules including operating system 35, one or more application programs 36 (including PIM 7), other program modules 37, and program data 38 are stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25. You may remember. A user inputs commands and information into the desktop computer 4 via input devices such as a keyboard 40, a pointing device 42, and a microphone 62. Other input devices (not shown) include joysticks, game pads, sanitary dishes, scanners, and the like. These and other input devices are often connected to the processing unit 21 via a serial port interface 46 coupled to the system bus 23, but may be a sound card, parallel port, game port, or universal serial bus (USB). Or other interfaces. A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. In addition to the monitor 47, desktop computers typically can include other peripheral output devices such as speakers 45 and printers.
[0045]
The desktop computer 4 may operate in a networking environment using a logical connection to one or more remote computers (excluding the mobile device 3) such as the remote computer 49. The remote computer 49 may be another personal computer, server, router, network PC, peer device or other network node, and typically includes many or all of the elements described above in connection with the desktop 4, but with memory. Only the storage device 50 is shown in FIG. The logical connection shown in FIG. 2 includes a local area network (LAN) 51 and a wide area network (WAN) 52. Such networked environments are common in offices, corporate wide computer network intranets, and the Internet.
[0046]
When used in a LAN networking environment, the desktop computer 4 is connected to the local area network 51 via a network interface or adapter 53. When used in a WAN networking environment, the desktop computer 4 typically includes a modem 54 or other means for establishing communications over a wide area network 52 such as the Internet. The built-in or external modem 54 is connected to the system bus 23 via the serial port interface 46. In a network environment, the program modules illustrated with respect to the desktop computer 4 or portions thereof may be stored in a remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0047]
The desktop computer 4 executes an operating system 35 that is usually stored in the non-volatile memory 24 and executed on the processor 21. One suitable operating system is a Windows brand operating system sold by Microsoft, for example, WINDOWS95 or WINDOWS NT operating system, other derivative versions of the WINDOWS brand operating system, or other suitable operating system, etc. It is. Other suitable operating systems include the Macintosh OS sold by Apple, and the OS / 2 Presentation Manager sold by International Business Machines (IBM) in Armonk, New York. PIM 7 is preferably stored in program module 37, volatile memory, or non-volatile memory, or loaded from floppy disk 29, CD-ROM drive 31 to any component shown in FIG. Can be downloaded from the network via network or loaded using another suitable mechanism.
[0048]
A dynamic link library (DLL) including a plurality of executable functions is coupled to the PIM 7 for execution by the processor 21. Internal processor and internal component calls are facilitated using the Component Object Model (COM), as is common to programs written for MICROSOFT WINDOWS brand operating systems. Briefly, when using COM, software components such as DLLs have multiple interfaces. Each interface is presented to multiple methods, which are invoked individually to take advantage of different services provided by the software component. In addition, an interface can optionally receive one or more parameter arguments and invoke methods or functions from other software components.
[0049]
In general, the DLL associated with PIM7 is presented in a desktop synchronization interface that operates specifically with PIM7 and functions in accordance with the synchronization protocol as described in more detail in the above-referenced co-pending US patent application. Designed. The DLL calls an interface presented by the PIM 7 to access data representing individual object characteristics held in the object store 8. Of course, the object store 8 may reside in any one of the appropriate memory components described in connection with FIG.
[0050]
FIG. 3 is a pictorial diagram of a preferred embodiment of a mobile device 3 that can be used in accordance with the present invention. The mobile device 3 in one preferred embodiment is a desktop assistant sold under the trade name H / PC and is based on, for example, a WINDOWS CE brand operating system from Microsoft. In a preferred embodiment, the mobile device 3 is housed in a housing that fits comfortably in a typical user's hand. The mobile device 3 has several components similar to those of the desktop computer 4. For example, in a preferred embodiment, the mobile device 3 includes a small keyboard 82, a display 84, and a stylus 86. Of course, other configurations may be used, such as a configuration without a keyboard.
[0051]
In the embodiment shown in FIG. 3, the display 84 is a liquid crystal display (LCD) using a contact reaction display screen with a stylus 86. The stylus 86 is used to press or touch the display 84 at specified coordinates to achieve a specific user input function. Of course, other user input configurations may be used as well. For example, user input mechanisms may include keyboards, trackballs, and other various types of small keyboards. Further, the mobile device 3 is not embodied as a digital assistant H / PC brand, but another type of personal digital assistant (PDA), another personal organizer, a palmtop computer, or similar computerized notepad. It may be implemented as a device.
[0052]
FIG. 4 is a more detailed block diagram of the mobile device 3. Mobile device 3 preferably plugs into microprocessor 88, memory 90, input / output (I / O) components 92 (including keyboard 82 and touch screen 84), spare expansion slot 93 (PC card, compact flash memory, etc.) And a serial interface 94. In the exemplary embodiment, these components of mobile device 3 are coupled together by a suitable bus 96 for communication.
[0053]
In the exemplary embodiment, memory 90 is implemented as a non-volatile electronic memory, such as a random access memory (RAM) having a battery backup module (not shown), so that the information stored in memory 90 is stored in mobile device 30. Will not be lost even if the power to the is turned off. One portion of memory 90 is preferably allocated as addressable memory for program execution, while another portion of memory 90 is preferably used to simulate storage on a disk drive.
[0054]
The memory 90 includes an operating system 98 and applications (ie, PIM) 5. In operation, operating system 98 is preferably loaded from memory 90 to processor 88 and executed by processor 88. In a preferred embodiment, the operating system 98 is a Windows CE brand operating system. Operating system 98 is preferably designed for mobile devices and implements database functions that can be utilized by PIM 5 through a set of presented application programming interfaces and methods. Objects in object store 6 are preferably held by PIM 5 and operating system 98 in response to calls to at least partially presented application program interfaces and methods.
[0055]
The PIM 5 does not necessarily have to be designed to be completely compatible with the PIM 7 executed on the desktop computer 4. For example, there may not be a strict one-to-one match between characteristics of a particular object type. Some characteristics supported by the email messaging function of PIM 5 may not have a corresponding function in PIM 7 on desktop computer 4 and vice versa.
[0056]
Object synchronization
To assist in understanding the present invention, object synchronization is briefly described here.
[0057]
FIG. 5 illustrates the preferred structural components of the mobile device 3 and the desktop computer 4 that are used to synchronize objects stored in the object store 6 on the mobile device 3 and the object store 8 on the desktop computer 4. It is a block structure diagram showing an embodiment. Note that the synchronization architecture shown in FIG. 5 is only one preferred embodiment, and other architectures may be used as well. Furthermore, a synchronization operation can be performed between any two connected storage devices (computers 4 and 13, any connected peers of mobile devices 3 and 10). All that is required is a sync manager component, described below, that supports the synchronization of two linked storage devices. The synchronization manager may reside on either device, both devices, or a third computer coupled to the two storage devices. However, for simplicity, only embodiments in which the desktop computer 4 is coupled to the mobile device 3 will be described herein. Also, this synchronization protocol is only one preferred embodiment, and another suitable protocol may be implemented over a standard email protocol.
[0058]
In addition to the PIM 5 and the object storage device 6, the mobile device 3 includes a synchronization module 97, which includes an interface component 100 and a synchronization manager 102. Mobile device 3 also includes a communication component 94, a remote application programming interface (RAPI) server 116, and email messaging transports 132, 134, and 136.
[0059]
In addition to the PIM 7 and the object storage device 8, the desktop computer 4 includes an interface component 108, a synchronization manager 110, a reference storage device 112, and a RAPI component 114. The desktop computer 4 also includes a communication component 115.
[0060]
In general, in the embodiment shown in FIG. 5, the synchronization manager 110 is executed on the desktop computer 4 to synchronize the objects in the object storage device 6 in the handheld device 3 and the objects in the object storage device 8 in the desktop computer 4. command. The synchronization manager 110 also keeps the reference storage device 112 away from the desktop object storage device 8, as will be described in detail below. The synchronization manager 110 implements a synchronization protocol to compare the object stored in the object storage device 6 in the mobile device 3 with the corresponding object in the object storage device 8 in the desktop computer 4 and from the object storage device 8. The object is received, and the object in the object storage device 8 can be updated. The synchronization protocol also facilitates retrieval of objects stored in the object storage device 6 in the mobile device 3 via the synchronization interface component 100 and the synchronization manager 102 and the communication component 94.
[0061]
On the mobile device 3 side, the synchronization interface component 100 is presented in the application programming interface, which is called by the synchronization manager 102 to read and store objects and object characteristics on the object store 6. In general, the application programming interface allows database creation of different types of objects and allows application programs to write and read property names and values for objects in the object storage device 6.
[0062]
Referring to FIG. 1, the PIM 5 is executed on the mobile device 3 and holds the object storage device 6. The PIM 7 is executed on the desktop computer 4 and holds the object storage device 8. There are many ways in which the PIMs 5 and 7 can store objects in the object stores 6 and 8. However, in the preferred embodiment, PIMs 5 and 7 create a separate database for each object type. For example, different databases are created for meetings, contacts, tasks, email messages, etc. Predefined characteristics are supported for each object type, and each database is assigned a name by the application program that created it.
[0063]
In an alternative embodiment, the application programs on PIMs 5 and 7 may use one database for all object types, with the first characteristic of each object defining the type of object. In any case, the object is uniquely identified in the mobile device 3 and the desktop computer 4 by the object identifier regardless of the name assigned to the application program that creates the object.
[0064]
The synchronization manager 110 does not necessarily have to be connected near the PIM 7. Rather, the synchronization manager 110 is a separate component that synchronizes objects from any application program that supports a suitable desktop synchronization interface. Specific synchronization interfaces are described in further detail in the co-pending US patent application incorporated above. Communication components 94 and 115 perform serial communication between computers using a suitable link 9.
[0065]
The synchronization manager 110 communicates with the PIM 7 and accesses the object storage device 8 via the synchronization interface component 108. The synchronization interface component 108 generally corresponds to the DLL described above in connection with FIG. 2 (above) and is presented in one or more application program interfaces and methods.
[0066]
Interfaces and methods are described in further detail in a co-pending patent application incorporated by reference. Preferred among these interfaces is a form known as the Messaging Application Program Interface (MAPI) developed and published by Microsoft for Windows brand operating systems, although other suitable interfaces may be used as well. . In a preferred embodiment, the MAPI presented by component 108 is a C language application programming interface that allows programmable access to the functionality of an email messaging program known as MS Mail, commercially available from Microsoft Corporation. . In another preferred embodiment, the MAPI presented by the component 108 is sometimes referred to as an extended MAPI and includes a set of automatic interfaces to a messaging system for use in Visual Basic or the like, a component object model base (COM base) Is a set of interfaces. However, the synchronization interface component 108 and associated application program interfaces and methods can be any suitable synchronization interface component designed for any particular application in PIM7. The application program interface is preferably standardized and the sync manager 110 can access and synchronize any number of different desktop PIMs as long as the required interface methods are implemented for each PIM.
[0067]
The reference storage device 112 maps between an object stored in the object storage device 6 on the mobile device 3 and an instance of the object stored in the object storage device 8 on the desktop computer 4. This mapping is necessary because the object identifier that PIM 5 uses to identify the object in object store 6 is not the same as the object identifier that PIM 7 uses to identify the object in object store 8. Become.
[0068]
The synchronization manager 110 references and stores identification data segments respectively corresponding to a plurality of object instances in the object storage device 8 on the desktop computer 4 that are synchronized with instances of the same object in the object storage device 6 on the mobile device 3. Hold the device 112 for inclusion. The identification data segment is updated each time the corresponding object instance is synchronized.
[0069]
The exact configuration of the identification data segment used to identify a particular object instance can be assigned by the developer of the desktop synchronization interface component 108 and is processed and stored by the synchronization manager 110. The identification data segment preferably includes some type of time stamp information since the identification data was last recorded in the reference storage device 112, and this is compared to determine whether the object has changed.
[0070]
In addition to holding a plurality of identification data segments, the synchronization manager 110 also maintains a list of object identifiers corresponding to objects held in the object storage device 6. These identifiers are provided to the sync manager 110 each time a new object is added to the object store 6 on the mobile device 3.
[0071]
Synchronization protocol
The exact protocol for achieving full synchronization achieved according to one embodiment of the system is briefly described below. A brief description of the protocol will assist in understanding the present invention. In order to synchronize objects, the sync manager 110 first creates two lists of handles that reference a particular object. The term “handle” refers to a number or other identifiers that can be used to uniquely identify and access an object. In general, a handle is valid for a particular time interval or session, such as during the time that an object is “open”. If the same object is reopened, its handle will be different.
[0072]
A first list of handles is obtained from the reference store 112 and shows objects that have been synchronized in the past and identified in the reference store 112. The second list of handles is a list for identifying objects stored in the object storage device 8. The two lists of handles are compared with each other to determine whether the same object is stored in the reference storage device 112 and the object storage device 8.
[0073]
If an object is identified in the reference storage device 112 but not in the object storage device 8, that particular object has been deleted from the desktop 4 since it was last synchronized. On the other hand, if an object is identified in the object storage device 8 but is not found in the reference storage device 112, the object has been added to the desktop since it was last synchronized. In either case, the sync manager 110 determines how to process the object. In a preferred embodiment, objects deleted from the desktop object store 8 are also deleted from the reference store 112. Further, the object added to the object storage device 8 is also added to the reference storage device 112.
[0074]
Next, the synchronization manager 110 determines whether any object stored in the object storage device 8 has been changed on the desktop since the synchronization was last performed. In other words, handles corresponding to the same object are found in both the object store 8 and the reference store 112, but they are not identical (time stamp, revision number, or another suitable identification segment is not the same). If this is the case, this indicates that the object in the object store 8 has changed since the last synchronization.
[0075]
Next, the synchronization manager 110 determines whether any object stored in the object storage device 6 on the mobile device 3 has been added or changed since the last synchronization. To determine whether an object has been added to the object store 6, the sync manager 110 stores the object list in the reference store 112 (reflecting all objects since the last sync) in the sync manager 102. Is compared with the object list of the object storage device 6 held by the. To determine whether an existing object has been modified, the synchronization manager 102 is configured to maintain a status bit associated with each object stored in the object store 6. The status bit reflects whether the particular object associated with the bit has changed since the last synchronization. If so, the sync manager 102, if the device 3 is coupled to the desktop computer 4, notifies the sync manager 110 of the change or simply logs a status bit so that the device 3 Is sent to the synchronization manager 110 when it is next linked.
[0076]
In any of these procedures, the synchronization manager 110 or the synchronization manager 102 need not be aware of the particular nature or format of the identification data segment or the corresponding object. Rather, interface components 100 and 108 are invoked for all actions that depend on the actual content of the identification data segment and the content of the object. It is up to the designer of these interfaces to define the format of the identification data segment that allows the interface to perform the required functions.
[0077]
Once changes, additions and deletions are determined by the synchronization manager 110, the items are synchronized. To do this, the sync manager 110 forms a list of changed objects on the object store 8 or object store 6 and requests each sync interface component to update the old object. If the same object is modified on both the mobile device 3 and the desktop computer 4, a conflict occurs. The sync manager 110 resolves the conflict by either prompting the user or referring to profile information entered by the user during setup. The property information determines which device and which instance performs the procedure. The process of setting up profile information is described in detail in the above patent application.
[0078]
If an object is created on either the desktop computer 4 or the mobile device 3, the object needs to be exchanged with the other device. When the mobile device 3 needs to get a new object from the desktop computer 4, the synchronization manager 110 calls an interface method known as "Set-Up". With this interface method, an object is obtained from the object storage device 8 of the desktop computer 4 and the handle transmitted to the object storage device 6 of the mobile device 3 is specified. Once the handle is obtained, a method known as “GetPacket” is called repeatedly to retrieve the data stream representing the object and formatted by the interface component 108. The sync manager 110 only treats the data as a data stream that is retrieved and sent via the link 9 to the sync manager 102 and ultimately to the object store 6. The appropriate synchronization interface component 100 parses the data stream to identify a particular property value associated with the property corresponding to the object. These characteristics are then stored in the object storage device 6.
[0079]
Finally, the synchronization manager 110 updates the identification data segment associated with either the synchronized or exchanged object and stores the updated data segment in the reference storage device 112.
[0080]
It is worth noting that the architecture described here provides for synchronization of objects related to email message meetings or appointments, or contact information, along with other objects held in PIM5, PIM7. Thus, using the synchronization protocol, the objects associated with these functions are synchronized during the synchronization process. The sync manager 110 detects any new objects in the object store 8 that represent new email messages, meetings or appointments or contact information, and those objects are mobile to alert the user of the mobile device 3. It is transferred to the object storage device 6 on the device 3.
[0081]
In addition, if the user writes an email message or schedules a meeting (and hence creates a meeting object and an email meeting request object), or uses the appropriate application in PIM 5 to obtain contact information on the mobile device 3 If entered, the objects related to these items are stored in the object storage device 6 as new objects. During synchronization, these new objects are transferred to the desktop computer 4 and the object store 8.
[0082]
Meeting request
FIG. 6 is a block diagram illustrating one preferred embodiment of a mechanism for generating a meeting request. As shown in FIG. 5, the mobile device 3 and the desktop computer 4 are connected to each other. However, FIG. 6 also shows that the mobile device 3 and the desktop computer 4 may be another mobile device, another desktop computer, a LAN 51 (shown in FIG. 2), a WAN 52 (shown in FIG. 2), or any other suitable network. It is also possible to connect to a wide area network 138 including
[0083]
Items similar to those in FIG. 5 are given similar numbers. However, PIMs 5 and 7 are shown in greater detail in FIG. FIG. 6 illustrates that in one preferred embodiment, the PIM 5 includes an email application 140, a calendar and scheduling application 142 and a shortened address book 144. Similarly, each application may have a designated application programming interface (API), but only a single API component 146 is shown in FIG. 6 for simplicity.
[0084]
FIG. 6 further shows that the object store 6 interfaces with applications 140, 142 and 144, preferably via its own set of application programming interfaces 148. Thus, the applications 140, 142, and 144 secure the object store 6 with the invocation method presented by the application programming interface 148 associated with the object store 6. In addition, the communication component 94 and the synchronization component 99 communicate with the application programs 140, 142, and 144 through call methods presented in the application programming interface 146.
[0085]
The PIM 7 of the desktop computer 4 is also shown in a more detailed block diagram. In one preferred embodiment, the PIM 7 includes an email application program 150, a scheduling and calendaring program 152 and a full address book program 154. Although application programs 150, 152, and 154 each have an associated set of application programming interfaces, only a single application programming interface component 156 is shown in FIG. 6 for simplicity.
[0086]
FIG. 6 further illustrates that in one preferred embodiment, the object store 8 is associated with its own set of application programming interfaces 158 (API 156, preferably the same as or separate from MAPI). Thus, the method of calling application programs 150, 152 and 154 presented by application programming interface 158 maintains and interacts with object storage device 8. In addition, the communication component 115 calls methods presented by the application programming interface 156 to interact with the application programs 150, 152 and 154.
[0087]
FIG. 6 shows that the desktop computer 4 preferably includes an email transport 160. The email transport 160 is preferably a commercially available email transport, such as an SMTP transport. However, it should be noted that the desktop computer 4 includes any suitable transport or combination of transports.
[0088]
FIG. 7 is a flowchart illustrating a procedure for generating a meeting request on the mobile device 3. Hereinafter, a description will be given with reference to FIGS.
[0089]
To generate a meeting request from the mobile device 3, the user first enters meeting request information via an appropriate user interface. In one preferred embodiment, the user opens the scheduling application program 142 so that the appropriate user interface is displayed on the screen 84. Using stylus 86 and possibly keypad 82 (or any other suitable input mechanism), the user enters the appropriate information to request the meeting. Such information is typically entered in the date and time of the meeting (which may be entered using a fully qualified email address or by entering a well-known name, or a non-empty email address area). This includes the requested attendees (which may be selected from the registration information in your contact database), the subject of the meeting, whether the meeting is recurring or single, preferably the location of the meeting. The scheduling application 142 generates an object that represents the meeting request.
[0090]
This information is used to create a meeting object and associate that object with a calendar on the mobile device 3 to enter the storage device. As a result of the generation of the meeting object, an e-mail meeting request object is also generated. It should also be noted that an updated email meeting request is also generated and sent with subsequent significant modifications to the meeting object.
[0091]
In the preferred embodiment, the selection has already been made to specify the transport through which the email meeting request object is sent. Alternatively, the transport used can be implied by the complete email address itself. For example, it can be specified that any of the transports 132-136 is used when the mobile device 3 attempts to send the meeting request itself. In addition, selections that specify particular options used in the synchronization protocol already described are also preferably already used. For example, if the inbox synchronization option is enabled, the email meeting request object is synchronized with the outbox of the desktop computer 4. Similarly, the meeting object is synchronized with the calendar of desktop computer 4 if the calendar synchronization option is enabled. The desktop computer 4 then sends an email meeting request object, preferably synchronized with the outbox.
[0092]
Receiving meeting request information from the user and creating a meeting object and an email meeting object representing the meeting are indicated by blocks 162 and 164 in FIG.
[0093]
Next, a critical timestamp is added to the object (indicated by block 165), and scheduling application 142 assigns a global object identification tag to the generated meeting object. The global object identification tag is a tag, such as a number, that uniquely identifies an object that represents a meeting request to the mobile device 3, the desktop computer 4, and all other devices that may encounter the object. The global identification tag is carried with the email meeting request object when sent and remains with the object on the other device. This is indicated by block 166.
[0094]
Because the email meeting request object must be sent to another device, the scheduling application 142 operates the email program 140 to fully restrict all emails of attendees who may receive the meeting request. A method of API 146 for retrieving an address is called. In one preferred embodiment, scheduling application 142 obtains a fully qualified email address from the address book. In another embodiment, the mobile device 3 includes a shortened address book program 144. In the preferred embodiment, the shortened address book program 144 is implemented as a contact function provided by Microsoft Outlook 97. The shortened address book includes the names, addresses, phone numbers, and fully qualified email addresses of people that the user has chosen to add to the shortened address book. These people are probably those who may receive a large number of email messages from the user of the mobile device 3. Therefore, the information probably includes the fully qualified email address of attendees who may be meeting requests. In addition, if the address is not fully met, the sync component 97 on the desktop 4 will attempt to determine the name on the desktop prior to sending the email.
[0095]
Thus, either the email application 140 or the scheduling application 142 retrieves frequently heard names entered by users as potential attendees, with email addresses fully confined to the shortened address book program 144. In order to do this, the API 146 method is called. This reduces memory overhead that would otherwise be required if, for example, the user was requested to download the complete address book from the desktop computer 4 to send an email message or meeting request. . This is indicated by block 168. In another preferred embodiment, the function associated with block 168 is performed at block 162 as soon as the user enters the appropriate information.
[0096]
Similarly, a transport option indicating the specific transport over which the email message is sent has already been preferably selected. These transports can be any of the transports 132-136 on the mobile device 3 or can be synchronized with the desktop computer 4 using one of those transports. Based on the selected option, the email meeting request object is sent via the appropriate transport and, when sent, is removed from the outbox of the mobile device 3.
[0097]
If the email meeting request object is sent directly from one of the transports on the mobile device 3, the appropriate transport formats the meeting request to send. In the preferred embodiment, the characteristics that the scheduling application program 142 contributes to the email meeting request object that represents the meeting request are compatible with many other PIMs. Therefore, these properties are a subset or superset of all properties recognized by multiple PIMs, so that objects can be accepted and handled appropriately by those PIMs. Appendix A attached at the end of this specification is a message property list, by which the objects associated with the meeting request are defined by the MICROSOFT SCHEDULE + brand scheduling program. These properties notably include a modified repeat notification property that is backward compatible with other versions of MICROSOFT SCHEDULE + scheduling software. For example, in the embodiment described in Appendix A, the recurring notification used to confirm a recurring meeting is formatted as a superset of single instance notifications. In this way, previous versions of MICROSOFT SCHEDULE + scheduling software provide well-formed meeting notifications even for regular meetings.
[0098]
In the preferred embodiment, the scheduling program 142 then invokes a method presented by the API 146 associated with the email application program 140. The email message containing the email meeting request object is formulated into one of a predetermined number of classes by the email application 140. A potential attendee's receive scheduler program distinguishes between types of meeting notifications based on the mail message class. For example, in one preferred embodiment, a mail message such as a meeting cancellation notice from the organizer, a meeting request from the organizer, a meeting acceptance from the attendee, a meeting decline from the attendee, a meeting provisional acceptance from the attendee, etc. There is a classification. Thus, this is preferably included with the object when the transport formats the email meeting request object for transmission. The meeting request is sent to the nominated transport 132, 134 or 136 via the communication component 94, which formats the message and sends it to the network 138.
[0099]
The format and transmission of the email meeting request object from the transport on the mobile device 3 is shown in blocks 172 and 174 of FIG.
[0100]
After the email meeting request object is sent, it is removed from the outbox of the mobile device 3 to indicate that the message has been sent. This is indicated by block 190. When next connected to the desktop computer 4, the meeting object is synchronized to the storage device containing the calendar on the desktop computer 4. Preferably, since the meeting object is only synchronized to the calendar on the desktop, the PIM also provides a function that can be used to prevent the PIM from simply generating and sending an email meeting request object. Its function may simply be to create an email meeting request object for the meeting request generated on the desktop. This feature is further implemented to address the problem of sending duplicate messages.
[0101]
If the transport option is selected to send an email meeting request object using the synchronization protocol on the desktop computer 4 and the mail transport, the email meeting request object is synchronized to the outbox of the desktop computer 4 The process is substantially the same except that it is allowed (shown in block 173). The mobile device 3 simply waits until it is connected to the desktop computer 4 before any processing is taken regarding the meeting request. When the mobile device 3 is connected to the desktop computer 4, the synchronization protocol already described is executed. During the synchronization process, the meeting object is synchronized to the calendar on the desktop computer 4 and then the email meeting request object is synchronized to the outbox of the desktop computer 4 via the synchronization components 97 and 99. Upon receiving an e-mail meeting request object that displays the meeting request, e-mail application program 150 recognizes that the meeting request needs to be sent. The email application program 150 calls the necessary methods presented by the API to ensure that the appropriate objects are sent to the network 138 via the communication component 115 and transport 160. This is again indicated by blocks 172, 173, 174 and 190.
[0102]
It is also worth noting that in a preferred alternative embodiment, the meeting request does not have to be completely formatted on the mobile device 3. Instead, the data representing the email meeting request object can only be stored and transferred during synchronization to the desktop computer 4 where it is fully formatted. For example, in one preferred embodiment, the mobile device 3 does not store a specific transport used by the desktop computer 4 when sending a meeting request. Since this information is not stored by the mobile device 3, it is not synchronized with the desktop computer 4. Instead, the email application program 150 on the desktop computer 4 (before sending the meeting request) retrieves the transport identified by the user associated with each of the attendees for which the full address book 154 is likely. In order to do so, a necessary method is called through the API 156. That information is then used by the email application program 150 in selecting the appropriate transport 160 to send the email meeting request object. In this way, additional storage capacity for storing such transport information does not have to be consumed on the mobile device 3. This is indicated by block 188.
[0103]
In any case, when an email meeting request object is sent by the email application program 150 to the network 138, the email meeting request object is removed from the outbox. This is indicated by block 190.
[0104]
After the email meeting request object is sent, it is determined whether any other meeting request has been synchronized to the desktop computer 4 during the latest synchronization process. If not, normal processing continues. If so, processing returns to block 172 where the email application program 150 calls the API required to send the object. This is indicated by block 192.
[0105]
FIG. 8 is a procedural flow diagram illustrating a preferred embodiment of how mobile device 3 processes a response to a meeting request sent according to FIG. In a preferred embodiment, the recipient of the response to the meeting request is the meeting organizer. Both the originator and recipient of the meeting request are properly negotiated for delegation processing. Publicly available MAPI specifications fully disclose how such properties should be interpreted.
[0106]
Thus, the meeting request recipient is provided with an appropriate user interface to indicate the response. The response is addressed to the meeting organizer or another appropriate representative. The response is then forwarded by the device operated by the recipient and received by any one of the transports 132, 134, or 136, or via the communication component 94 of the mobile device 3. This is indicated by block 194 in FIG.
[0107]
Upon receipt of the response, scheduling application program 142 associates the response with the meeting object created by scheduling application program 142 when the user generates a request stored in object store 6. This association is performed by using a global identification number that uniquely identifies a meeting request to all devices that may encounter it. This is indicated by block 196.
[0108]
The critical timestamp information is then checked to determine if the response corresponds to the most recent meeting object. Preferably, the response actually contains two timestamps. The first stamp is the opinion of the recipient of the organizer's critical time stamp. The second stamp is a time stamp assigned by the recipient. The first stamp is checked to determine if it is the same as the organizer's timestamp. If so, the response is considered in date. If not, the response is rejected or ignored as an expired response. The second stamp must be equal to or greater than any of the previously recorded time stamps from this particular recipient in order for the response to be in time. Otherwise, the response is rejected or ignored as expired. This is indicated by block 197.
[0109]
Note that in the preferred embodiment, the time stamp is always advanced. Thus, even if the user resets the clock to a sufficient time, the next time stamp is always after the current clock time and the latest time stamp plus one second.
[0110]
The scheduling application program 142 then calls the necessary methods presented by the API 148 to update the attendee status associated with the request. This is updated based on the specific response received from the attendee. This is indicated by block 198.
[0111]
Thereafter, the mobile device 3 simply waits to be connected to the desktop computer 4. Once connected, the updated object (including updated attendee status characteristics) is synchronized to the instance where the object is stored in the object store 8. This is done using the synchronization protocol discussed above. This is indicated by blocks 200 and 202. The meeting object is then available to the scheduling application program 152 and the desktop computer 4 and can be displayed on the user's calendar at the desktop computer 4 for user observation and interaction.
[0112]
FIG. 9 is a procedural flow diagram of a preferred embodiment of how a response is processed when it is received via transport 160 on the desktop computer 4. Initially, the user enters information through an appropriate user interface that defines the user's response to the meeting request. The response is then sent back to desktop computer 4 via transport 160 and communication component 115. This is indicated by block 204.
[0113]
The scheduling application program 152 associates the response with the meeting object using the global identification number assigned to the meeting object and received along with the response to the meeting request, as the mobile device 3 did. This is indicated by block 206. Thereafter, as described above, the time stamp information is checked to determine if the response corresponds to the most recent meeting object. If not, the response is rejected or ignored as an expired response. This is indicated by block 207. Thereafter, the scheduling application program 152 calls the necessary information presented by the API 158 to modify and update the attendance status of the meeting object stored in the object storage device 8. This is indicated by block 208. Thereafter, the desktop computer 4 just waits until it is next connected to the mobile device 3.
[0114]
At that point, the updated object in the object store 8 (which has been updated to accurately reflect the new attendee status based on the response) is the other object that is then stored in the object store 6. Be synchronized to the instance. Synchronization is realized by the synchronization protocol described above. The updated object is then made available for review and processing by the user of the mobile device 3. This is indicated by blocks 210 and 212.
[0115]
The mobile device of the illustrated embodiment according to the invention handles exceptions for recurring meetings and meeting cancellations. In one embodiment, upon receipt of recurring pattern update information for a periodic meeting, the scheduling PIM also erases all exceptions. Thus, when a periodic meeting pattern change is sent, a new email object must be created and sent for each exception. For example, assume that a user enters a periodic meeting request on the mobile device 3. The scheduling application 142 creates a recurring meeting object and registers it in the user's calendar. The email application 140 also generates an email periodic meeting request to send to potential attendees. The recipient (possible attendee) can generally respond as described above.
[0116]
For the purposes of this example, assume that the regular meeting takes place from 1 April every Tuesday from 10:00:00 to 11:00 am. However, the user (host) needs to cancel the April 8 meeting. The user launches the scheduling application 142 and deletes the desired instance. The email application 140 then generates another object (an exception to the repeat pattern) for transmission indicating this deletion. The organizer then needs to change the April 15 meeting from 11:00 to 12:00 noon. A similar process is also performed to generate the exception. The organizer then changes the location of the regular meeting and applies the change to all repeating patterns. This requires sending three new emails.
[0117]
The first email is generated simply to indicate a new location for repeated pattern correction. In some PIMs, the previous two exceptions may be deleted. Thus, two new emails are generated to re-establish two exceptions (ie, the April 8 meeting cancellation and the April 15 meeting time change). These emails are automatically generated by the email application 140. These same actions may be taken in response to other suitable changes such as amendment of the attendee list.
[0118]
Localization
As described above, in the preferred embodiment, a meeting object is typically accompanied by a text phrase that describes the nature of the meeting request. The text phrase is generated based on the characteristic values entered by the user during the generation of the meeting request. For example, a user may request potential attendees to attend a 10:00 am meeting on the third Monday of each month between January 1, 2000 and March 20, 2001. In that case, a typical text message looks like this, which is retrieved and attached within the meeting request object for display to potential attendees.
“This meeting shall take place on the third Monday of each month at 10:00 am on the third Monday of every month from January 1, 2000 to March 20, 2001. 10:00 am beginning January 1, 2000, and ending March 20, 2001.)
[0119]
However, in different regions, it may be agreed that the date is placed before the month when marking the date. Furthermore, the order of the words or phrases in the text message and the components of the text message must be rearranged to follow the local convention.
[0120]
In a preferred embodiment, a predetermined text message of the type described above is generated to describe each different type of recurring meeting that a user of the mobile device 3 can request.
[0121]
According to one aspect of the present invention, a text message used to request a regular meeting is broken down into a plurality of phrases. Each generated phrase is broken down into multiple fields. The specific phrases that can be generated to define the meeting request and the specific field from which the phrases are separated can be any suitable phrase or field.
[0122]
With respect to the phrases described above, FIG. 11A illustrates one embodiment of a field in which phrases can be resolved. FIG. 11A shows that the first part of the phrase “This meeting is to be held on the third Monday of every month” is placed in the field 214. The term “at” is placed in field 216. The time designation “10:00” is placed in field 218 and the AM / PM designator is placed in field 220. The term “beginning” is placed in field 222 and the remaining messages are similarly broken down into fields 224, 226, 228, 230, 234, 236, 238, 240 and 242.
[0123]
FIG. 10 is a procedural flow diagram showing how the localization process works. Generation of text phrases defining meeting requests and decomposition of those requests into various predetermined fields is indicated by block 242. Next, during manufacture of the mobile device 3, the localizer program is executed for each message generated on the mobile device 3 so that the messages each follow the local convention, and the fields 214-240 are relocated. Of course, the specific localizer program executed on the mobile device 3 depends on the specific locality and consumer base for which the mobile device 3 is intended. When executing the localizer program, the mobile device 3 includes multiple sets of fields called templates for arranging message data to display text messages in a manner that is local. Executing the localizer program in setting up the template is indicated by block 244.
[0124]
After the mobile device 3 owns the template that was in the region, the mobile device 3 receives the meeting request and is ready to correctly display the text description of the meeting request. Upon receiving the meeting request, a data stream representing a text phrase describing the meeting is also received by the scheduling application program 142. This is indicated by block 246. The scheduling application program 142 parses the incoming data stream into values associated with various fields in the appropriate template (the appropriate template corresponds to the particular text description being received). This is indicated by block 248.
[0125]
The parsed data is then placed in a preselected field in the template based on the generated phrase. This is indicated by block 250. Since the localizer program has already been run, the fields in the template are already arranged in the proper order to follow the local convention.
[0126]
FIG. 11B shows the rearrangement according to the different arrangement of fields in the template shown in FIG. 11A. FIG. 11B shows the case where the phrase follows a convention where the phrasing is slightly different from that shown in FIG. 11A and the day in the date is conventionally placed before the month. The phrase here includes the same terms, but becomes:
“This meeting will be held at 10:00 am on the third Monday of every month from January 1 / January 2000 to March 20th 2001 (Beginning 1 January, 2000 and ending 20 March, 2001 this meeting shall take place on the third Monday of each month at 10:00 AM)
[0127]
All appropriate phrases are of course localized as well.
[0128]
Also, in the illustrated embodiment, time zone information is processed in an advantageous manner. For example, when a recurring meeting request is generated and sent to a device located at a different time zone, the text phrase indicating the recurring meeting includes an indication of the time zone when the recurring meeting request was generated. For example, for a meeting to be held every Tuesday from March 3rd at 8:00 am, a user in Paris (France) sends a regular meeting request to a recipient in Seattle (with a 9 hour time difference) So the text phrase is:
“This meeting will be held every March from 8:00 am on March 3rd; (GMT + 1) Madrid, Paris. (This meeting occurs every Tuesday at 8:00 am beginning March 3; (GMT + 1) Paris, Madrid.) "
[0129]
This allows the recipient to see the repeating pattern originally constructed by the sender.
[0130]
On the other hand, if the meeting is not recurring, the time is preferably simply displayed as appropriate for the recipient (eg, “This meeting is scheduled for Tuesday at 11:00 pm”).
[0131]
Conclusion
Thus, it can be seen that the present invention provides significant advantages over conventional systems. First, according to the present invention, a meeting request can be generated from the mobile device itself. The present invention further identifies objects associated with such meeting requests so as to uniquely identify objects to all other devices likely to be associated. The present invention also utilizes a PIM function that indicates whether a meeting request has been sent to a potential attendee. These functions eliminate duplicate message transmission.
[0132]
The present invention also preferably implements a function that reduces the memory required to perform a meeting request function using a shortened address book. In addition, the present invention uses a set of scheduling characteristics that are compatible with multiple different PIMs that are likely to encounter meeting requests. In addition, the present invention preferably utilizes a localization procedure that localizes meeting requests according to more local arrangements in an advantageous manner and to process time zone information. The present invention preferably supports the use of multiple email transfers, not to mention a synchronization protocol.
[0133]
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit of the invention and the scope of the claims.
[Table 1]
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591
Figure 0004575591

[Brief description of the drawings]
FIG. 1 is a block diagram showing a basic environment of the present invention.
FIG. 2 is a block diagram of one embodiment of a conventional desktop computer for use with a mobile device according to the present invention.
FIG. 3 is a simplified pictorial diagram illustrating one embodiment of a mobile device according to the present invention.
FIG. 4 is a simplified block diagram of one embodiment of the mobile device shown in FIG.
FIG. 5 is a block structural diagram illustrating an embodiment of a portion of the desktop computer shown in FIG. 2 and the mobile device shown in FIGS. 3 and 4, with object storage on the desktop computer and on the mobile device according to the present invention. The synchronization information memorize | stored in the apparatus is shown.
6 is a block structural diagram illustrating an embodiment of a portion of the desktop computer illustrated in FIG. 2 and the mobile device illustrated in FIGS. 3 and 4, illustrating the generation and transfer of a meeting request.
FIG. 7 is a flow diagram illustrating generation of a meeting request according to a preferred embodiment of the present invention.
FIG. 8 is a flow diagram illustrating response processing for a meeting request on the mobile device shown in FIGS. 3 and 4 according to a preferred embodiment of the present invention.
FIG. 9 is a flowchart illustrating a response process to a meeting request on the desktop computer shown in FIG. 2 according to a preferred embodiment of the present invention.
FIG. 10 is a flow diagram illustrating the use of a localizer to localize a text description of a meeting request according to a preferred embodiment of the present invention.
11A and 11B show one embodiment of a template used to localize a text description of a meeting request according to the present invention.

Claims (18)

オブジェクトおよびアプリケーションプログラムを記憶する記憶装置と、
ユーザ入力情報を受け取るユーザ入力機構と、
前記記憶装置に記憶されたオブジェクトをリモートデバイスのリモート記憶装置に記憶されたオブジェクトと同期させる同期コンポーネントと、
リモートデバイスと通信するよう構成された通信コンポーネントと、を備えたモバイルデバイスであって、
前記アプリケーションプログラムは、
前記ユーザ入力情報に基づきミーティングオブジェクトを生成して前記記憶装置に記憶させ、
前記ミーティングオブジェクトに基づき電子メールミーティング要求オブジェクトを生成して前記記憶装置内のアウトボックスに記憶させ、
前記電子メールミーティング要求オブジェクトをミーティング出席予定者のリモートデバイスに送信した場合、前記電子メールミーティング要求オブジェクトを前記記憶装置のアウトボックスから削除し、
前記電子メールミーティング要求オブジェクトを送信していない場合、前記電子メールミーティング要求オブジェクトを前記記憶装置のアウトボックスに保持し、
前記リモートデバイスと同期を取るとき、前記リモートデバイスに対し、前記記憶装置のアウトボックスに記憶された前記電子メールミーティング要求オブジェクトをミーティング出席予定者のリモートデバイスに転送させるよう構成されたことを特徴とするモバイルデバイス。
And Symbol憶equipment store the objects and the application program,
A user input mechanism for receiving user input information;
A synchronization component for synchronizing an object stored in the storage device with an object stored in a remote storage device of a remote device;
A mobile device comprising a communication component configured to communicate with a remote device,
The application program is
A meeting object is generated based on the user input information and stored in the storage device;
Generating an email meeting request object based on the meeting object and storing it in an outbox in the storage device;
If the email meeting request object is sent to a remote device of a prospective meeting attendee, the email meeting request object is deleted from the storage outbox;
If the email meeting request object has not been sent, hold the email meeting request object in the outbox of the storage device;
When synchronizing with the remote device, the remote device is configured to transfer the e-mail meeting request object stored in the outbox of the storage device to a remote device of a meeting attendee. Mobile device.
前記アプリケーションプログラムは、複数の他のオブジェクトの中で前記ミーティングオブジェクトを一意に識別する汎用識別子を有するミーティングオブジェクトを生成するよう構成されたことを特徴とする請求項1に記載のモバイルデバイス。The application program, the mobile device according to claim 1, characterized in that it is configured to generate a meeting object having a general identifier that uniquely identifies the meeting object among the plurality of other objects. 前記アプリケーションプログラムは、
前記ユーザ入力情報に基づいて前記ミーティングオブジェクトを生成するよう構成された第1のアプリケーションプログラムと、
前記ミーティングオブジェクトに基づいて前記電子メールミーティング要求オブジェクトを生成するよう構成された第2のアプリケーションプログラムと、
を含むことを特徴とする請求項2に記載のモバイルデバイス。
The application program is
A first application program configured to generate the meeting object based on the user input information;
A second application program configured to generate the email meeting request object based on the meeting object ;
The mobile device according to claim 2, comprising:
前記アプリケーションプログラムはさらに、
電子メールアドレスを含む個人を識別可能とする情報からなるコンタクト情報を表すオブジェクトを前記記憶装置に保持するよう構成されたコンタクトアプリケーションプログラムを含み、
前記アプリケーションプログラムは、前記コンタクトアプリケーションプログラムとの対話により前記コンタクト情報によって識別されたミーティング出席予定者の電子メールアドレスを得るよう構成されたことを特徴とする請求項1に記載のモバイルデバイス。
The application program further includes
Includes a contact application program that is configured to hold before crisis憶device object representing the contact information comprising information enabling the identification of individuals, including electronic mail address,
The mobile device according to claim 1, wherein the application program is configured to obtain an email address of a meeting attendee identified by the contact information through interaction with the contact application program.
前記アプリケーションプログラムは、前記同期コンポーネントを介して前記リモート記憶装置に記憶されたミーティングオブジェクトおよび電子メールミーティング要求オブジェクトと同期可能なように、前記ミーティングオブジェクトおよび前記電子メールミーティング要求オブジェクトを生成するよう構成されたことを特徴とする請求項1に記載のモバイルデバイス。The application program is configured to generate the meeting object and the email meeting request object so that they can be synchronized with the meeting object and the email meeting request object stored in the remote storage device via the synchronization component. The mobile device according to claim 1. 前記アプリケーションプログラムは、ミーティングオブジェクトを記述するテキストフレーズ表すデータストリームを受信し、該データストリームを構文解析して各セクションのデータを予め選択されたテンプレートの対応するフィールドに配置するよう構成され、前記予め選択されたテンプレートは前記受信したテキストフレーズに関連することを特徴とする請求項1に記載のモバイルデバイス。The application program receives a data stream representing text phrases describing the meeting object, is configured to place the corresponding fields of the parsing the data stream template preselected data of each section, the The mobile device of claim 1, wherein a preselected template is associated with the received text phrase. 前記予め選択されたテンプレートは、特定の地域性に基づく順序で前記フィールドに配置されることにより作成されたことを特徴とする請求項6に記載のモバイルデバイス。  The mobile device according to claim 6, wherein the pre-selected template is created by being arranged in the field in an order based on a specific regionality. 記憶装置を備えたモバイルデバイスを用いてミーティングを設定する方法であって、
ユーザ入力情報を受信するステップと、
前記ユーザ入力情報に基づきミーティングオブジェクトを生成し、前記記憶装置に記憶させるステップと、
前記ミーティングオブジェクトに基づき電子メールミーティング要求オブジェクトを生成し、前記記憶装置内に設けたアウトボックスに記憶させるステップと、
前記記憶装置に記憶されたオブジェクトをリモートデバイスのリモート記憶装置に記憶されたオブジェクトと同期させるステップと、
前記モバイルデバイスが前記電子メールミーティング要求オブジェクトをミーティング出席予定者のリモートデバイスに送信した場合、前記電子メールミーティング要求オブジェクトを前記アウトボックスから削除するステップと、
前記モバイルデバイスが前記電子メールミーティング要求オブジェクトを送信していない場合、前記電子メールミーティング要求オブジェクトを前記アウトボックスに保持するステップと、
前記リモートデバイスと同期を取るとき、前記リモートデバイスに対し、前記アウトボックスに保持された前記電子メールミーティング要求オブジェクトをミーティング出席予定者のリモートデバイスに転送させるステップと
を有することを特徴とする方法。
A method for setting up a meeting using a mobile device with a storage device, comprising:
Receiving user input information;
Generating a meeting object based on the user input information and storing it in the storage device;
Generating an email meeting request object based on the meeting object and storing it in an outbox provided in the storage device;
Synchronizing an object stored in the storage device with an object stored in a remote storage device of a remote device;
Deleting the email meeting request object from the outbox when the mobile device sends the email meeting request object to a remote device of a prospective meeting attendee;
Holding the email meeting request object in the outbox if the mobile device has not sent the email meeting request object;
Causing the remote device to forward the e-mail meeting request object held in the outbox to a remote device of a meeting attendee when synchronizing with the remote device .
前記モバイルデバイスを前記リモートデバイス接続するステップと
記憶装置内のオブジェクトを前記リモート記憶装置内のオブジェクトと同期するステップと
前記電子メールミーティング要求オブジェクトを前記リモートデバイス上の電子メールトランスポートから転送するステップと
さらに含むことを特徴とする請求項8に記載の方法。
Connecting the mobile device to the remote device ;
A step of an object before Symbol in storage to synchronize with the object of the remote Symbol憶the apparatus,
Forwarding said email meeting request object from the e-mail transport on the remote device,
9. The method of claim 8, further comprising:
前記モバイルデバイスは少なくとも1つの電子メールトランスポートを有し
前記電子メールミーティング要求オブジェクトを前記モバイルデバイス上の電子メールトランスポートから転送するステップをさらに含むことを特徴とする請求項8に記載の方法。
The mobile device has at least one email transport ;
The method of claim 8 further comprising the step of transferring the e-mail meeting request object from the e-mail transport on the mobile device.
電子メールトランスポートから転送するステップは、前記モバイルデバイスが複数の電子メールトランスポートを有するとき、1つの電子メールトランスポートを選択するステップを含むことを特徴とする請求項10に記載の方法。The method of claim 10, wherein forwarding from an email transport includes selecting an email transport when the mobile device has multiple email transports. ミーティングオブジェクトを生成するステップは、
前記ミーティングオブジェクトに、前記ミーティングオブジェクトが生成された時刻を表すタイムスタンプ表示を割り当てるステップを含み、
電子メールミーティング要求オブジェクトを生成するステップは、前記電子メールミーティング要求オブジェクトに前記タイムスタンプ表示を割り当てるステップを含む
ことを特徴とする請求項11に記載の方法。
The steps to create a meeting object are:
The meeting object, comprising the step of assigning a time stamp indication indicating a time at which the meeting object is created,
The method of claim 11, characterized in that it comprises the step of assigning the time stamp displayed on the e-mail meeting request object that generates an e-mail meeting request object.
前記電子メールミーティング要求オブジェクトの送信先から前記汎用識別子および前記タイムスタンプ表示を含む応答オブジェクトを受信するステップと
前記汎用識別子および前記タイムスタンプ表示に基づいて、前記応答オブジェクトを前記モバイルデバイス上の前記ミーティングオブジェクトに関連付け、
前記受信した応答オブジェクトに基づいて、前記ミーティングオブジェクトに関連した応答状態を更新するステップと
をさらに含むことを特徴とする請求項12に記載の方法。
Receiving a response object including the generic identifier and the timestamp indication from a destination of the email meeting request object ;
On the basis of the generic identifier and the time stamp display, associating the response object to the meeting objects on the mobile device,
On the basis of the received response object, the method according to claim 12, further comprising a <br/> and updating the response state associated with the meeting object.
前記応答状態を前記リモートオブジェクト記憶装置と同期させるステップをさらに含むことを特徴とする請求項13に記載の方法。The method of claim 13, further comprising a said response state step of synchronizing with the remote object store. 第1のコンピューティングデバイスであって、
オブジェクトおよび第1のアプリケーションプログラムを記憶た第1の記憶装置と、
ユーザ入力機構と、
第1の電子メールトランスポートと、を備え、
前記第1のアプリケーションプログラムは、
該ユーザ入力機構からユーザ入力情報を受信して、該ユーザ入力情報に基づいて第1のオブジェクトを生成して、該第1のオブジェクトを前記第1の記憶装置に記憶させ、
前記第1のオブジェクトに基づき第1の電子メールオブジェクトを生成して前記第1の記憶装置内のアウトボックスに記憶させ、
前記第1の電子メールオブジェクトを所定のコンピューティングデバイスに送信した場合、前記第1の電子メールオブジェクトを前記第1の記憶装置のアウトボックスから削除し、
前記第1の電子メールオブジェクトを送信していない場合、前記第1の電子メールオブジェクトを前記第1の記憶装置のアウトボックスに保持するよう構成された、第1のコンピューティングデバイスと
前記第1の記憶装置内のオブジェクトを第2の記憶装置内のオブジェクトと同期させるよう構成された同期マネージャと、
第2のコンピューティングデバイスであって、
オブジェクトおよび第2のアプリケーションプログラムを記憶た第2の記憶装置と、
第2の電子メールトランスポートと、を備え、
前記第2のアプリケーションプログラムは、
前記同期マネージャを介して前記第1の記憶装置にアクセスし、前記第1の電子メールオブジェクトが、前記第1の記憶装置のアウトボックスに記憶されているか判定し、
前記第1の電子メールオブジェクトが前記第1の記憶装置のアウトボックスに記憶されているとき、前記第1の電子メールオブジェクトを所定のコンピューティングデバイスに前記第2の電子メールトランスポートから転送するよう構成された、第2のコンピューティングデバイスと、
を含むことを特徴とするデータ転送システム。
A first computing device comprising:
First storage device for storing the objects and the first application program,
A user input mechanism;
A first e-mail transport;
The first application program is:
Receiving user input information from the user input mechanism, generating a first object based on the user input information, and storing the first object in the first storage device ;
Generating a first email object based on the first object and storing it in an outbox in the first storage device;
If the first email object is sent to a predetermined computing device, the first email object is deleted from the outbox of the first storage device;
A first computing device configured to retain the first email object in an outbox of the first storage device when not transmitting the first email object ;
A synchronization manager configured to synchronize objects in the first storage device with objects in the second storage device;
A second computing device comprising:
A second storage device that stores objects, and the second application program,
A second e-mail transport;
The second application program is:
Accessing the first storage device via the synchronization manager to determine whether the first email object is stored in an outbox of the first storage device;
When the first email object is stored in an outbox of the first storage device, the first email object is transferred from the second email transport to a predetermined computing device. configured, and a second computing device,
Data transfer system, which comprises a.
第3のコンピューティングデバイスをさらに含み、該第3のコンピューティングデバイスは、
オブジェクトおよび第3のアプリケーションプログラムを記憶した第3の記憶装置と、
前記第3の電子メールトランスポートと、を備え、
前記第3のアプリケーションプログラムは、
該第3の記憶装置にアクセスして、前記第2のコンピューティングデバイスから前記第1の電子メールオブジェクトを受信し、該第1の電子メールオブジェクトに対応するオブジェクトを前記第3の記憶装置に記憶するよう構成され
前記第1のオブジェクトに応答するための応答オブジェクトを生成し、前記応答オブジェクトを生成した時刻を表す第1のタイムスタンプを前記応答オブジェクトに割り当て、前記タイムスタンプを含む前記応答オブジェクトに基づく電子メール応答オブジェクトを生成して前記第1の電子メールオブジェクトの送信元に送信するよう構成されたことを特徴とする請求項15に記載のシステム。
A third computing device, the third computing device comprising:
A third storage device that stores objects, and the third application program,
The third e-mail transport;
The third application program is
May access the storage device of the third, the second to receive the first e-mail object from a computing device, stores the object corresponding to the first electronic mail objects in said third storage device is configured to,
An e-mail response based on the response object that generates a response object for responding to the first object, assigns a first time stamp representing the time when the response object is generated to the response object, and includes the time stamp The system of claim 15, wherein the system is configured to generate and send an object to a source of the first email object .
オブジェクトおよび第4のアプリケーションプログラムを記憶した第4の記憶装置と、
前記第4の電子メールトランスポートと
を備えた第4のコンピューティングデバイスをさらに備え、
前記同期マネージャは、前記第3の記憶装置内のオブジェクトを前記第4の記憶装置内のオブジェクトと同期させるようさらに構成され、
第4のアプリケーションプログラムは、
前記第1のオブジェクトに応答するための応答オブジェクトを生成し、前記応答オブジェクトを生成した時刻を表す第2のタイムスタンプを前記応答オブジェクトに割り当て、前記タイムスタンプを含む前記応答オブジェクトに基づく電子メール応答オブジェクトを生成して前記第1の電子メールオブジェクトの送信元に送信するよう構成された構成されたことを特徴とする請求項16に記載のシステム。
A fourth storage device storing an object and a fourth application program ;
The fourth e-mail transport;
A fourth computing device comprising:
The synchronization manager is further configured to synchronize an object in the third storage device with an object in the fourth storage device;
The fourth application program is
An e-mail response based on the response object that generates a response object for responding to the first object, assigns a second time stamp representing the time when the response object was generated to the response object, and includes the time stamp The system of claim 16, wherein the system is configured to generate and send an object to a source of the first email object .
前記同期マネージャは、
前記第1および第2のコンピューティングデバイスの少なくとも一方上にある第1の同期マネージャと、
前記第3および第4のコンピューティングデバイスの少なくとも一方上にある第2の同期マネージャと、を備えたことを特徴とする請求項17に記載のシステム。
The synchronization manager
A first synchronization manager on at least one of the first and second computing devices;
The system of claim 17, further comprising a second synchronization manager on at least one of the third and fourth computing devices.
JP2000518349A 1997-10-24 1998-10-23 Meeting requests and group scheduling generation from mobile devices Expired - Lifetime JP4575591B2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US6316497P 1997-10-24 1997-10-24
US60/063,164 1997-10-24
US6498697P 1997-11-07 1997-11-07
US60/064,986 1997-11-07
US09/058,679 1998-04-10
US09/058,679 US6370566B2 (en) 1998-04-10 1998-04-10 Generating meeting requests and group scheduling from a mobile device
PCT/US1998/022413 WO1999022324A1 (en) 1997-10-24 1998-10-23 Generating meeting requests and group scheduling from a mobile device

Publications (2)

Publication Number Publication Date
JP2001521253A JP2001521253A (en) 2001-11-06
JP4575591B2 true JP4575591B2 (en) 2010-11-04

Family

ID=27369521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000518349A Expired - Lifetime JP4575591B2 (en) 1997-10-24 1998-10-23 Meeting requests and group scheduling generation from mobile devices

Country Status (4)

Country Link
EP (1) EP1025526A1 (en)
JP (1) JP4575591B2 (en)
CA (1) CA2306264C (en)
WO (1) WO1999022324A1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CA2385833C (en) * 1999-09-28 2016-10-18 Parlano, Inc. Information flow management in real time
WO2001024016A1 (en) 1999-09-28 2001-04-05 Parlano, Inc. Information flow management in real time
US7636752B2 (en) 1999-09-28 2009-12-22 Parlano, Inc. System and method for managing information and collaborating
DE19959387A1 (en) * 1999-12-09 2001-06-13 Philipp Paul Spangenberg Communicating between electronic computer unit, personal digital assistants involves fitting computer unit and personal digital assistants with ordinary infrared transmission and reception units
US6718348B1 (en) * 2000-08-25 2004-04-06 Telefonaktiebolaget Lm Ericsson (Publ) Non-time dependent synchronization of databases
FR2819072B1 (en) * 2001-01-02 2003-03-28 Cit Alcatel METHOD FOR SYNCHRONIZING DATA OVER A SERIAL LINK
US7191449B2 (en) * 2001-02-16 2007-03-13 Microsoft Corporation System and method for providing componentized transports and forms
GB0128243D0 (en) * 2001-11-26 2002-01-16 Cognima Ltd Cognima patent
US7584114B2 (en) * 2003-01-22 2009-09-01 International Business Machines Corporation System and method for integrating projects events with personal calendar and scheduling clients
US9979682B2 (en) 2015-09-01 2018-05-22 Microsoft Technology Licensing, Llc Command propagation optimization
US10163076B2 (en) * 2015-09-01 2018-12-25 Microsoft Technology Licensing, Llc Consensus scheduling for business calendar
US9929989B2 (en) 2015-09-01 2018-03-27 Microsoft Technology Licensing, Llc Interoperability with legacy clients
US9977666B2 (en) 2015-09-01 2018-05-22 Microsoft Technology Licensing, Llc Add a new instance to a series
US9882854B2 (en) 2015-09-01 2018-01-30 Microsoft Technology Licensing, Llc Email parking lot
US10984393B2 (en) * 2018-02-09 2021-04-20 Microsoft Technology Licensing, Llc Intelligent management of electronic calendar items

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02268365A (en) * 1989-04-11 1990-11-02 Fuji Xerox Co Ltd Information processing system
JPH04150121A (en) * 1990-10-09 1992-05-22 Nec Corp Electronic mail system
JPH07123167A (en) * 1993-08-30 1995-05-12 Canon Inc Communication terminal equipment and communication conference system
JPH0779248A (en) * 1993-09-08 1995-03-20 Fuji Elelctrochem Co Ltd Electronic mail terminal system
JPH08123767A (en) * 1994-10-24 1996-05-17 Toshiba Corp Schedule adjusting system using mail system
JPH0934621A (en) * 1995-07-21 1997-02-07 Sony Corp Portable communication terminal equipment
JPH0944561A (en) * 1995-08-02 1997-02-14 Hitachi Ltd Device and method for supporting conference
US5664228A (en) * 1995-08-09 1997-09-02 Microsoft Corporation Portable information device and system and method for downloading executable instructions from a computer to the portable information device
JPH09134304A (en) * 1995-11-10 1997-05-20 Nippon Telegr & Teleph Corp <Ntt> Method for synchronizing schedule
JPH09288625A (en) * 1996-04-19 1997-11-04 Sharp Corp Electronic mail device

Also Published As

Publication number Publication date
CA2306264C (en) 2004-07-13
WO1999022324A1 (en) 1999-05-06
EP1025526A1 (en) 2000-08-09
JP2001521253A (en) 2001-11-06
CA2306264A1 (en) 1999-05-06

Similar Documents

Publication Publication Date Title
US6370566B2 (en) Generating meeting requests and group scheduling from a mobile device
JP4246382B2 (en) Email object synchronization between desktop computers and mobile devices
JP4575591B2 (en) Meeting requests and group scheduling generation from mobile devices
US6216110B1 (en) System and method for publishing calendar information to a publicly accessible location
US11050693B2 (en) System and apparatus for sending complete responses to truncated electronic mail messages on a mobile device
US20130212597A1 (en) Method and Apparatus to Transmit a Calendar Event in Target Calendaring System Format
US8219920B2 (en) Methods and systems for managing to do items or notes or electronic messages
US8140099B2 (en) User-input scheduling of synchronization operation on a mobile device based on user activity
US7269433B2 (en) Scheduling of synchronization operation on a mobile device based on predetermined subset of user actions
US20080270211A1 (en) method and system for modifying a meeting attendee list of an email calendar application
US20020099719A1 (en) Architecture for a hierchical folder structure in hand-held computers
US7783712B2 (en) System and method for bi-directional synchronized conversion of electronic mail data
CA2594100A1 (en) Systems and methods for continuous pim synchronization between a host computer and a client handheld device
US20060074996A1 (en) System and method for synchronizing data
CA2591128C (en) A method and system for generating and processing electronic meeting communications for multiple formats
EP1986142A1 (en) Method and system for modifying a meeting attendee list of an email calendar application
JP2000148691A (en) Information synchronization system and recording medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050831

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050831

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term