JP2005515519A - 自動的な通知および応答用の方法および装置 - Google Patents

自動的な通知および応答用の方法および装置 Download PDF

Info

Publication number
JP2005515519A
JP2005515519A JP2002590633A JP2002590633A JP2005515519A JP 2005515519 A JP2005515519 A JP 2005515519A JP 2002590633 A JP2002590633 A JP 2002590633A JP 2002590633 A JP2002590633 A JP 2002590633A JP 2005515519 A JP2005515519 A JP 2005515519A
Authority
JP
Japan
Prior art keywords
communication flow
recipient
message
sender
response
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.)
Pending
Application number
JP2002590633A
Other languages
English (en)
Other versions
JP2005515519A5 (ja
Inventor
ジョアン, ジェイ. オーディル,
トーマス, エー. ピーチェ,
フィリップ, エル. ワドラー,
Original Assignee
アバイア テクノロジー コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アバイア テクノロジー コーポレーション filed Critical アバイア テクノロジー コーポレーション
Publication of JP2005515519A publication Critical patent/JP2005515519A/ja
Publication of JP2005515519A5 publication Critical patent/JP2005515519A5/ja
Pending 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • 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/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1096Supplementary features, e.g. call forwarding or call holding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42229Personal communication services, i.e. services related to one subscriber independent of his terminal and/or location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42382Text-based messaging services in telephone networks such as PSTN/ISDN, e.g. User-to-User Signalling or Short Message Service for fixed networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/436Arrangements for screening incoming calls, i.e. evaluating the characteristics of a call before deciding whether to answer it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/46Arrangements for calling a number of substations in a predetermined sequence until an answer is obtained
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/46Arrangements for calling a number of substations in a predetermined sequence until an answer is obtained
    • H04M3/465Arrangements for simultaneously calling a number of substations until an answer is obtained
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/20Aspects of automatic or semi-automatic exchanges related to features of supplementary services
    • H04M2203/205Broadcasting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/20Aspects of automatic or semi-automatic exchanges related to features of supplementary services
    • H04M2203/2066Call type detection of indication, e.g. voice or fax, mobile of fixed, PSTN or IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2207/00Type of exchange or network, i.e. telephonic medium, in which the telephonic communication takes place
    • H04M2207/08ISDN systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2207/00Type of exchange or network, i.e. telephonic medium, in which the telephonic communication takes place
    • H04M2207/12Type of exchange or network, i.e. telephonic medium, in which the telephonic communication takes place intelligent networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42025Calling or Called party identification service
    • H04M3/42085Called party identification service
    • H04M3/42102Making use of the called party identifier
    • H04M3/4211Making use of the called party identifier where the identifier is used to access a profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer

Landscapes

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

Abstract

開示されている通知および応答システムを使用すると、さまざまな種類の媒体を使用してアプリケーションと受信者との通信が可能になる。通知および応答システムは(i)それぞれの個別受信者により指定された媒体を使用して1人または複数の受信者に要求を送信し、(ii)応答を収集して処理し、(iii)最終宛先により指定された媒体を使用して最終宛先に応答を転送する。アプリケーション、少なくとも1つのサポートされている人間の言語および媒体形式で要求をフレーム化し、要求を該当する受信者に、その環境設定に応じて配送する。通信フロー式で、指定された要求の受信者および各受信者が要求をいつ、どこで、どのように、受信するかを指定する。要求は、動的に更新され、通信フロー式のパラメータは、要求が配送されるまで、評価されない。通信フロー規則により、受信者の通信の環境設定を指定し、送信者側の特性、トピック、またはスケジューリングの制約条件に合わせて通信フローを手直しする。通信フロー式は、通知失敗(maybe)、応答失敗(false)、および応答成功(true)の3値論理を使用して評価する。プリミティブは、同時または順次連絡を指定し、また成功検査結果の論理結合を定義することによりいつ部分式の実行を終了すべきかを指定する。

Description

本発明は、一般に1人または複数の受信者と通信するための方法および装置に関するものであり、より具体的には、アプリケーションと1つまたは複数の異なる種類の媒体を使用する1人または複数の受信者との間で自動的な通知および応答を行うための方法および装置に関するものである。
本出願は、2001年5月15日に出願した米国仮出願番号60/291,087の特権を主張するものである。
企業向けアプリケーションでは、人々との連絡が必要であり、またその連絡の取り方および応答があった場合にどのような応答を収集するかに関して要求条件が設定されている。たとえば、アプリケーションにより、ある種の関心を持つすべての人々、または特定のリストに載っている人々または1人の人と連絡を取らなければならない場合がある。また、今まさに危機的状態にある人に連絡を取る必要がある場合や、適切な時期にタスクのあることを知らせて思い出させたい場合がある。企業向けアプリケーションではさらに、何が成功かということが企業によって定義されている場合に、連絡が不成功だった場合に何をすべきかについても必要条件を定めている。
一方、受信者側は、連絡の取り方および連絡を取る時期について各自の環境設定(preference)がある。たとえば、受信者は、上司や家族などの特定の人々、あるいはフォーチュン500社のリストに載っている会社の企業幹部などの特定の利害を代表する人々がリアルタイムで連絡をより自由に取れるようにしたいと考えている。さらに、受信者は、日常的に、週別状況または支出更新などの知られているタスクについての連絡を、都合のよい時期または場所が確定するまで遅らせたい場合もある。多くの場合、受信者側の環境設定は、企業側の環境設定または特定のアプリケーションの実装に反する。そのような場合には、受信者は受信者の環境設定がかなえられるように何とかやりくりしてアプリケーションの制約事項に対処するが、そうでなければ、企業のプロセスにフラストレーションを感じたり、さらには煩わしくなったりする。
アプリケーションが1人または複数の受信者と通信できるようにする通知システムが多数、提案されたり開発されたりしている。しかし、既存の通知システムは、媒体および機能の点で制限があるのがふつうである。たとえば、通知システムは、電子メール・メッセージを携帯電話またはポケットベルにしか送信できないことがある。さらに、既存の通知システムでは、異なる通信インフラ基盤の柔軟な使用に対応していない。たとえば、WAP Forum、「Wireless Access Protocol 1.2.1」、June 2000で説明されているWireless Access Protocol(WAP)を使用するサービスなどの無線サービスが成長し、1つのデバイスとのみ連絡を取り、それにより、携帯電話のWebフォームへの応答のプッシュおよび受信を行う通知および応答サービスが多数開発されてきている。
たとえば、M.Handley et al.「SIP:Session Initiation Protocol」RFC 2543、1999年3月で説明されているようなSession Initiation Protocol(SIP)は、デバイスのSIP Uniform Resource Locator(URL)を登録することにより特定のデバイスにユーザーを関連付けることができるレジストリを備える。ユーザーとの通信を確立するのと並行して、または順次、所定のユーザーについてレジストリに記録されているURLのリストを使って連絡を取ることができる多数のSIPプロキシが存在する。たとえば、J.Lennox and H.Schulzrinne「CPL:A Language for User Control of Internet Telephony Services」Draft RFC draft−ietf−iptel−cpl−05.txt、2001年11月で説明されているようなCall Processing Language(CPL)はSIPプロキシに関して提案されている言語である。
CPLでは、ユーザーはあらかじめ、送信者および宛先のアドレスまたはINVITEの件名内の文字列の解釈など、SIP INVITEメッセージ(SIPプロトコルに従ってユーザーとの連絡を確立するために使用される)の特性を付加された特定のURLを選択する方法を指定することができる。CPLではさらに、ユーザーはタイムアウトを指定することができるため、受信者との通信確立を試みるときに順次INVITEメッセージ列を特定のデバイスに送ろうとすることができる。さらに、SIPでは、各SIPデバイスまたはエンド・ポイント側でユーザーの環境設定を媒体タイプおよび人間の言語の重み付きリストとして指定することができる。送信者は、利用できるようにしている媒体タイプおよび人間の言語から、最も高い重み付けの媒体タイプおよび人間の言語を用意するように求められる。SIPおよびCPLは、通信の結果の解釈、およびその結果に応じてさまざまなアクションを実行することについてはサポートしていない。たとえば、電話がかかって応答に成功した後、SIPおよびCPLは、ユーザーが電話を切ったのか、実際に要求に応答したのかを検出しない。
システム内のデータ・フローまたはプログラム・フローを指定する十分な技術は存在しているが、通信フローを指定するのに利用できる手法は通常、初歩的なものである。通信フローは、要求者側から受信者側への要求の経路である。これらの既存の通信フローの技術では、要求に関して受信者を指定することを、電子メール・メッセージをメールボックスに送ったり、メッセージをポケットベルに送信したりするなどの何らかのあらかじめ定められている連絡方法と同一視している。通信フロー経路は多くの場合、2人の当事者間の単純な接続と考えられるが、現代的な通信機能により、さまざまな通信フローが可能である。たとえば、与えられた通信フローは、(i)並行してまたは順次に受信者または受信者が使用するデバイスと連絡を取るか、(ii)すべての受信者または受信者の一部だけが要求に応答するのを待つか、または(iii)通信エラーが発生したときに別の方向を選択することができる。
したがって、要求に対する受信者、および各受信者が要求をいつどこでどのように受信し、それに対する応答でさらにどのように通信を進めるかなどの、通信フローのパラメータを都合よく、正確に指定する一般的な手法が要求される。さらに、アプリケーションの要件および受信者の環境設定を捕捉し、組み合わせるような方法で通信のパラメータを指定する手法も必要である。
米国仮出願番号60/291,087 WAP Forum、「Wireless Access Protocol 1.2.1」、June 2000 M.Handley et al.「SIP:Session Initiation Protocol」RFC 2543、1999年3月 J.Lennox and H.Schulzrinne「CPL:A Language for User Control of Internet Telephony Services」Draft RFC draft−ietf−iptel−cpl−05.txt、2001年11月 M.Wahl et al.「Lightweight Directory Access Protocol(v3)」、RFC 2251(1997年12月) M.Handley et al.「SIP:Session Initiation Protocol」、RFC 2543、1999年3月
概して、1つまたは複数のアプリケーションが、電子メール、電話、Webページ、ポケットベル、またはFAXなどの多様な複数の媒体を使用して1人または複数の受信者と通信することができる通知および応答システムが開示されている。一般に、通知および応答システムは(i)それぞれの個別受信者により指定された媒体を使用して1人または複数の受信者に要求を送信し、(ii)応答を収集して処理し、(iii)最終宛先により指定された媒体を使用して最終宛先に応答を転送する。
アプリケーションでは、サポートされている多数の人間の言語および媒体形式のうちの1つで要求をフレームにまとめることができ、要求は、それぞれの受信者の媒体および人間の言語に対する環境設定に応じて、該当する受信者に自動的に配送される。したがって、受信者は、指定された環境設定およびエンド・ポイントの能力に応じて、異なるアプリケーションまたはシステム(またはその両方)からメッセージを受信する。応答は、対応するアプリケーションに都合のよい形式でそれぞれのアプリケーションに返される。アプリケーションは、メッセージを1人または複数の指定された受信者に送信するか、あるいはあらかじめ定められている受信者リストまたはロールに従って送信することができる。受信者の環境設定およびロール・データベースは、受信者リスト、ロール、受信者環境設定を集中管理することができる。受信者の環境設定およびロール・データベースには、ロール、人、およびデバイスの情報だけでなく、関連する通信フロー情報も記録される。
アプリケーションでは、通信フロー式を使用して、連絡相手(「Bob」)、連絡条件(「Annが「yes」の返事をした場合のみ」)、および連絡日時(「週末の午前9時から午後5時までの間」を指定する。受信者は、デバイスをどのように使用するか、つまり、どのデバイスを使用し、いつ連絡するかという詳細を使用して通信フロー式を精密化する規則を指定する。受信者は、さらに、いくつかの要求を他の受信者に自動的に委託することもできる。本発明の一特徴によれば、要求は、要求が配送されるまで新しい情報で動的に更新することができ、したがって、受信者は最近のビジネス情報を受信する。さらに、通信フロー式のパラメータ(誰が、何を、およびいつ)は、要求が配送されたときに評価され、要求は最新の受信者環境設定に応じて配送される。
アプリケーションは、特定の通知メッセージを一人または複数の受信者に送信し、その通知に対する応答を収集して要求者に返すか、または他のアプリケーションに転送することを求める要求を開示されている通知および応答システムに送信する。要求は、(i)通知メッセージ、(ii)要求パラメータ、(iii)通信フロー式、および(iv)応答からなる。通信メッセージは、サポートされている多数の人間の言語および媒体形式のうちの1つでフレームにまとめることができ、要求は、それぞれの受信者の媒体および人間の言語に対する環境設定に応じて、該当する受信者に自動的に配送される。要求パラメータにより、要求の振る舞いを制御したり、要求の形式を適切に定める(またはその両方を行う)通知および応答システムから利用できるようになっていなければならない情報を指定する。
通信フロー式では、アプリケーションの要件および受信者の環境設定を捕捉して組み合わせる。要求の通信フロー式部分により、要求に関連付けられている受信者(「Who」)だけでなく、そのような受信者がどのようにして、いつ、どこで、要求を出すかを指定する。受信者は、ロール(たとえば、「顧客サービス」)、人(たとえば、「Jerry」、アドバイス(たとえば、「800−555−1234」)、または評価すべき他の通信フロー式とすることができる。各受信者はアクティブであるが、それは、受信者がその通信の環境設定を指定し、通信フローを送信者側の特性、要求のトピック、またはスケジュールの要求条件に合わせて手直しする通信フローの規則を定めることができるからである。一般に、通信フローの規則では、受信者の環境設定に応じて、通信フローの中の受信者の名前を受信者と連絡を取る時期、場所、および方法に関する詳細で置き換える。通信フロー式はさらに、特定の受信者が要求に対し正常に応答できなかった場合に実行すべきアクションを指定する。
通知および応答システムでは、通信フローの中で成功テストを使用し、応答性側によって指定された対応を評価して特定の連絡が成功したか失敗したかを判別することができる。応答者側は、要求を受信し、応答を返した人である。応答が受信されると、通知および応答システムは各個別応答の属性値ペア、または要求が完了した後では、照合された結果を最初の要求で指定された最終宛先に転送する。
通信フローが2つの理由で失敗することがある。1つは、単に受信者と連絡を取れなかったか、または受信者がまったく通知に応答できない場合であって、通知失敗(その逆を通知成功)と呼ぶ。もう1つは、受信者と連絡を取ることができ、その後要求を受理するか、または拒絶する場合であって、応答成功(「true」または「yes」を示す)または応答失敗(「false」または「no」を示す)とそれぞれ呼ぶ。
本発明の他の特徴では、3値論理を使用して通信フロー式を評価する。この論理の3つの可能な値は、通知失敗(maybe)、応答失敗(false)、および応答成功(true)である。通知成功は、応答成功または応答失敗の前に発生する、識別された一時的状態である。多数のデバイスが使用されている場合、受信者からの応答を受信したときに知ることができるのは、通知を受信したということだけである。そのため、要求と関連付けられた成功式で、受信者から受信した応答に含めることができる変数に対する3値論理式を指定することができる。成功式で、応答の中の値の論理的組み合わせを検査し、応答成功がある場合、連絡は「true」に評価され、応答失敗がある場合、連絡は「false」に評価され、それ以外については、応答に対し時間の余裕がない場合、通知失敗があり、連絡は「maybe」に評価される。
各通信フロー式は、受信者に同時に連絡するかまたは順次連絡するか、およびいつ部分式の実行を成功検査結果の論理結合を定義することにより終了すべきかを指定する1つまたは複数のプリミティブを含む。具体的には、プリミティブでは、並行または順次通信の方向と受信者との通信の状況を通信フローにどのような影響を及ぼすかということの評価と組み合わせる。他のプリミティブは、連絡を取る時期またはディレクトリを探索することにより見つかった対象のリストから通信フローを構築する方法を制御する。
開示されている通知および応答システムにより採用されているプリミティブは、当然、and/then、or/else、races/delegates、およびvotes/pollsのように並行/順次のペアにグループ化することができる。並行プリミティブと順次プリミティブは、オペランドの評価方法が異なる。並行プリミティブでは、それぞれの受信者に並行して連絡を取る。未処理要求(outstanding request)は、プリミティブのtrue値を決定するためにもはや必要なくなれば取り消される。順次プリミティブでは、要求は現れる順序でそれぞれの受信者に送られる。受信者が応答すると、要求は次の受信者に送信され、必要ならば、プリミティブのtrue値を決定する。それぞれのプリミティブは、受信者との通信が成功したかどうかに応じて「true」、「false」、または「maybe」に評価される。
本発明、および本発明の他の特徴と利点の詳細については、後述の説明および図面を参照することで得られる。
本発明は、電子メール、電話、Webページ、ポケットベル、またはFAXなどのさまざまな種類の媒体により、図1に示されている、1つまたは複数のアプリケーション110−1〜110−N(これ以降アプリケーション110と総称する)と1つまたは複数の受信者120−〜120−N(これ以降受信者120と総称する)との通信を可能にするための通信および応答システム100を実現する。一般に、通知および応答システム100は(i)それぞれの個別受信者120により指定された媒体を使用して1人または複数の受信者120に要求を送信し、(ii)応答を収集して処理し、(iii)最終宛先により指定された媒体を使用して最終宛先に応答を転送する。
図2は、通知および応答システム100の詳細な図である。図2に示されているように、また後述のように、アプリケーション110は、要求の送信または取り消し、要求のステータスのチェック、およびアプリケーション110に結果を返す動作を行うサービスを提供するアプリケーション・インターフェイス220を使用して要求を要求マネージャ1200に送信する。アプリケーションでは、通知要求および保留通知の取り消し要求を適切なアプリケーション・インターフェイス220に、たとえば、HTTP POSTを介して送信することができる。
アプリケーション・インターフェイス220は、たとえば、Simple Object Access Protocol(SOAP)、またはIBM Corp.が販売しているMQSeries(商標)インターフェイスやSun Microsystems,Inc.が販売しているJ2EE(商標)インターフェイスなどの各種の市販Enterprise Application Integration(EAI)インターフェイスとして実現することができる。アプリケーション・インターフェイス220は、要求毎に、外部要求表現と通知および応答システム100の内部表現との間のマッピングを行う。同様に、アプリケーション・インターフェイス220は、応答毎に、通知および応答システム100の内部表現と外部要求表現との間のマッピングを行う。
図11に関して以下で説明する要求マネージャ1200は、送信されたすべての要求を追跡する。図3に関して後述するように、要求マネージャ1200は、各要求に関する情報を格納している要求データベース300を保持し、保留、取り消し、あるいは完了などのそれぞれの要求のステータスを示す。要求データベース300は、メモリまたは永続的データベースに保持することができ、要求およびその現在状態(応答を含む)をそこに格納することができる。機能はいろいろあるが特に、要求マネージャ1200は、受信者120が受信する要求および応答が適用される要求を識別するために使用することができるそれぞれの要求に一意の識別子を割り当てる。さらに、要求マネージャ1200は、必要に応じて、要求を修正し、必ず応答を通知および応答システム100に返送するようにする。
すでに示しているように、アプリケーション110では通信フロー式を使用して、与えられた要求のパラメータを指定する。要求マネージャ1200は、受信者とのそれぞれの媒体特有の通信を実行する際に通信フローの方向に従う。要求マネージャ1200では、図13に関して後述する通信フロー・マネージャ1300の通信フロー式サービスを使用する。要求マネージャ1200と通信フロー・マネージャ1300との間の相互作用を、図11に関して後述する。
一般に、通信フロー・マネージャ1300は、要求の中で定義されているターゲット通信フローを解釈してより効率の高いツリー構造の内部表現に変える。さらに、通信フロー・マネージャ1300は、ツリー表現のトラバースを繰り返し、その実行中に、非デバイス受信者を展開して、デバイスをインスタンス化する。繰り返し毎に、通信フロー・マネージャ1300は、利用可能になっていた成功検査結果を入力し、保留中の連絡を取り消すか、それとも新規連絡を開始するかを決定する。そこで、通信フロー・マネージャ1300は、通信フロー式を解釈して実行し、要求を適切な受信者120にどのように配送するかを決定し、また通信の各試行結果の成功または失敗にどのように応答するかを決定する。
ディレクトリ・インターフェイス250は、通知および応答システム100で使用しているロール、人、およびデバイスの内部表現と受信者環境設定およびロール・データベース500内の表現との間のマッピングを行う。さらに、ディレクトリ・インターフェイス250は、検索およびその他の要求も処理する。通信フロー・マネージャ1300は、全体として、通知および応答システム100が連絡方法を認識しているデバイスに対して解決される必要があるロールおよび受信者の名前を連絡する通信フローで示されている。ディレクトリ・スキーマおよび通知および応答システム100の内部表現を単一のクラス内にマッピングすることにより、他の種類のデータベースも使え、内部表現を、使用している特定のディレクトリ・スキーマから独立させることもできる。このクラスはさらに、一組の特定の検索および取り出し方法も提供する。
媒体特有の連絡270では、通知および場合によっては応答収集結果の実際の配送を処理する。指定可能な持続時間または試行回数の後、特定の媒体を介した連絡を実行できない場合、通知失敗メッセージが要求マネージャ1200に返される。媒体特有のインターフェイス270については、以下の「媒体特有のインターフェイス」という表題の項目で説明する。通知メッセージ毎に、媒体特有のインターフェイス270は、通知および応答システム100の内部要求ドキュメント表現と外部表現との間でマッピングを行う。同様に、媒体特有のインターフェイス270は、応答毎に、外部要求表現と通知および応答システム100の内部表現との間のマッピングを行う。
Webポータル280は、さまざまな媒体を介してデータを受信者120に提供し、応答を収集する。Webポータル280は、受信者の保留、完了、および取り消された通知へのアクセスを可能にするサーブレット集である。これは、保留通知のリストを表示し、受信者がそこから読み込むまたは聞き取ることができるようにするサーブレット、および通知を表示するサーブレット、および応答を収集する他のサーブレットを含む。Webポータル280はこのように構造化され、すべての通知が、通知および応答システム100により直接配送され、すべての応答は通知および応答システム100により収集されるようになっている。集中型実装により、通知の内容を制御し、通知を個人化し、通知に前回の応答を組み込むようにすることができる。受信者環境設定およびロール・データベース500からの個人化データは、formアクション・タグを修正して適切なサーブレットを指すようにするのと同じ書き換えメカニズムによって処理される。
通知および応答システム100は、通信フロー式内で指定された受信者120へのすべての要求を仲介する。これにより、通知および応答システム100は、応答を記録し、それらの応答を通信フロー・マネージャ1300に伝達する。通信フロー・マネージャ1300は、これらの応答の内容に基づき通信フローを通る異なる経路を取る。たとえば、Webアプリケーション・プログラム・インターフェイス(API)の例では、要求はすべてWebページとして表され、応答を必要とするものはその応答を受け付けるためのフォームを含む。要求は、応答を指定のURLに送るように書き換えられ、通知および応答システム100に対し行われた元の要求で指定されている最終の宛先への経路選択を行う前に完了ステータスを記録することができる。通知および応答システム100の経路選択および戻り処理は、ユニファイド・メッセージング・システムまたはXMLベースのAPIのものなどの要求および応答を指定するさまざまな方法に適合させることができる。
したがって、本発明では、個人化されたメッセージ配送を実現する(受信者は自分を望むときおよび望む方法でメッセージを受信する)。通知および応答システム100は、電子メール、電話、Webページ、ポケットベル、またはファクスなどさまざまなサポートされている人間の言語および媒体形式をのうちの1つで、要求を配送し応答を収集することができる。さらに、通知および応答システム100は、要求者および受信者の一括集中要求管理、応答照合、および既存のアプリケーションからの要求(および既存のアプリケーションへの応答)の透過的経路選択を行う。
要求
アプリケーション110は、特定の通知メッセージを1人または複数の受信者に送信し、その通知に対する応答を収集して要求者に返すか、または他のアプリケーションに転送することを求める要求を通知および応答システム100に送信する。本明細書で使用しているように、要求は、(i)通知メッセージ、(ii)要求パラメータ、(iii)通信フロー、および(iv)応答からなる。
通知メッセージ
アプリケーション110は、異なる媒体を介した、異なる人間の言語による配送をサポートするため、要求の1つまたは複数のバージョンを作成することができる。つまり、アプリケーション110は、受信者が受信するのを好む種類のドキュメントにサーブレットによって変換されるデータ・ファイルを作成し、その後、サーブレットのURLを通知および応答システム100に受け渡す。たとえば、1人または複数の受信者に会合通知を送信することを望んでいるアプリケーション110は、応答がもしあればそのような応答を処理するためのフォームとともにメッセージを含むHTMLドキュメントを作成することができる。その後、このHTMLドキュメントは、Webサーバ上に格納され、URLが通知および応答システム100に渡される。
サーブレットを使用して特定の媒体形式でメッセージを生成する方法には、本発明の利点の1つが示されている。配送時にメッセージの媒体を受信者のニーズおよび環境設定に合わせて手直しし、配送時にメッセージの内容を生成することで、常に最新の情報が含まれるようにすることができる。たとえば、本発明で使用している媒体連絡の多くでは最初に、通知メッセージを取り出すために受信者が指定された電話番号に電話をかけなければならないことを指示するページまたは通知メッセージを含むWebページを指しているハイパーリンクを含む電子メール・メッセージなどの受信者が通知メッセージを利用できる状態にあることを示す情報を受信者に送る。その後、受信者が通知メッセージにアクセスすると、アクセス時点で最新バージョンの通知メッセージが表示される。このようにして、要求者は、受信者が実際に通知メッセージにアクセスするまで、通知メッセージを更新することができる。
要求パラメータ
要求は、関連する一組のパラメータを持つ。これらのパラメータにより、要求の振る舞いを制御したり、要求の形式を適切に定める(またはその両方を行う)通知および応答システム100から利用できるようになっていなければならない情報を指定する。すでに示されているように、要求マネージャ1200は、各要求に関する情報を格納している要求データベース300を使用して送信されたすべての通知要求を追跡し、保留、取り消し、あるいは完了などのそれぞれの要求の現在ステータスを示す。
図3は、要求データベース300の例からのサンプル・テーブルである。図3に示されているように、要求データベース例300は、複数のレコード305〜315を備え、それぞれのレコードは異なる要求に関連付けられている。フィールド330で識別されている要求毎に、要求データベース300に記録されているパラメータは、(i)フィールド335内の要求者識別子(つまり、要求を生成した人またはアプリケーションの名前)、(ii)フィールド340内の応答宛先(たとえば、応答の転送先であるURLまたは応答の経路を選択する方法を示す通信フロー式、および照合された応答を要求の終了時に送信するか、各応答を受信時に転送するかを示す情報)、(iii)フィールド345内の件名(つまり、たとえば電子メールの件名行内で使用できる要求の簡単な説明)、(iv)フィールド350内の最大存続期間(つまり、すべての保留要求が取り消され、収集された応答が最終宛先に送信されるまで、通知および応答システム100が通知の配送および応答の収集の試行を続ける時間の長さ)、(v)フィールド355内の言語(つまり、有効な通知メッセージの言語)、(vi)フィールド360内のHTML、VXML、およびプレーン・テキストなどのメッセージが利用可能なコンテンツ・タイプ、フィールド365内の通信フロー式、(vii)受信した応答が他の指定受信者から見えるか、または利用できるかを示すパブリック/プライベート・フラグ、および(viii)フィールド375内の要求の現在ステータスを含む。
件名見出しを含むそれぞれの通知メッセージの内容は、所定のアプリケーション110により1つまたは複数のサポートされている人間の言語で供給することができるか、または望ましいサポートされている人間の言語に自動的に翻訳できることに注意されたい。他のバリエーションでは、フィールド355内の言語パラメータは、言語翻訳を取得する方法と時期を指定する規則で置き換えることができ、またコンテンツ・タイプ・パラメータは、コンテンツ・タイプを生成する方法と時期を指定する規則で置き換えることができる。
通信フロー
後述のように、「通信フロー」という表題のセクションでは、通知および応答システム100は、通信フロー式を使用して通信を行う際の、誰が、どのように、いつ、およびどこで、を指定する。通信フロー式により、要求の対象の受信者を指定する。受信者は、ロール(たとえば、「顧客サービス」)、人(たとえば、「Jerry」)、アドバイス(たとえば、「800−555−1234」)、ソフトウェア・アプリケーションまたはエージェント(たとえば、「カレンダー・エージェント」)、または他の通信フロー式とすることができる。さらに、通信フロー式では、受信者が要求をいつ、どのように、どこで受信するかを指定する。通信フロー式はさらに、特定の受信者が要求に対し正常に応答できなかった場合に実行すべきアクションを指定する。
通信フロー式では、アプリケーションの要件および受信者の環境設定を捕捉して組み合わせる。通信フロー式は、アクティブ受信者リストである。各受信者は、通信フロー内の名前を受信者の環境設定に応じていつ、どこで、どのように連絡するかに関する詳細で置き換える通信フロー規則を用意しているため、アクティブである。これらの通信フロー規則により、受信者は個人通信フローを要求の通信フロー式に組み込むことができる。受信者はこれらの規則を使用して、通信の環境設定を指定し、通信フローを送信者側の特性、要求のトピック、またはスケジュールの要求条件に合わせて手直しする。
応答
後述のように、「通信フロー」という表題のセクションで、通知および応答システム100は、通信フローの中で成功テストを使用し、応答性側によって指定された対応を評価して特定の連絡が成功したか失敗したかを判別することができる。応答者側は、要求を受信し、応答を返した人である。応答が受信されると、通知および応答システム100は各個別応答の属性値ペア、または要求が完了した後では、照合された結果を最初の要求で指定された最終宛先に転送する。一実施例では、通知および応答システム100は、通信フロー全体が実行されるまで待機し、その後、結果を返すが、受信するときにそれぞれの応答を返すように修正することは自明なことである。
通信フロー
通信フローは、通信フロー式、成功指定、通信フロー規則、およびパラメータによって特徴付けられる。通信フロー式は、アプリケーションの通信要件をユーザーの通信環境設定に取り込む。通信フロー式により、要求に対する受信者を指定する(直接名前で、または定義されている受信者リストまたはロールを使用して)。さらに、通信フロー式では、受信者が要求をいつ、どのように、どこで受信するかを指定する。通信フロー式はさらに、特定の受信者が要求に対し正常に応答できなかった場合に実行すべきアクションを指定する。
通信フローの成功/失敗の指定
通信フローの成功指定では、通信フローにおける各ステップでの応答の成功および失敗に対する条件を記述する。この実施例では、通信フローの成功指定は、特定の通信フローに対してシステム規模のデフォルト成功指定および要求者定義のデフォルト成功指定の両方をサポートしている。それとは別に、要求者は、後述のテスト応答ステータス・プリミティブを使用して、通信フロー内の受信者毎に成功指定を指定することができる。
通信フローが2つの理由で失敗することがある。1つは、単に受信者と連絡を取れなかったか、または受信者がまったく通知に応答できない場合であって、通知失敗(その逆を通知成功)と呼ぶ。もう1つは、受信者と連絡を取ることができ、その後要求を拒絶するか、または否定的な応答をする場合であって、応答失敗(「no」を示す)または応答成功(「yes」を示す)と呼ぶ。「no」と「yes」は意味論的要素を持つが、それは、通信フローを継続する目的で要求に対して受信者が肯定的に応答(たとえば、「yes」という)したかどうかを判別することができる唯一のアプリケーションだからである。たとえば、応答成功は、受信者がドキュメントをレビューして、その受け入れを否決するときに生じることがある。受信者は「はい、レビューを終えました」と応え、通信フローは次のレビューアへ続く。その一方で、受信者がソフトウェアのリビジョンの要求をレビューし、拒絶した場合に応答失敗が発生する。受信者は、「いいえ、このソフトウェアのリビジョンは行いません」と応え、通信フローは終了するか、またはエラー処理へ進む。
本発明の一態様では、通信フロー式は、図4に示されている3値論理エバリュエータ400を使用して評価する。この論理の3つの可能な値は、ステップ420での通知失敗(maybe)、ステップ450での応答失敗(false)、およびステップ440での応答成功(true)である。図4に示されているように、通知成功は、応答成功または応答失敗の前に実行されるステップ410で識別される一時的状態であり、直接的に表されることはない。多数のデバイスが使用されている場合、受信者からの応答を受信したときに知ることができるのは、通知を受信したということだけである。
成功式では、受信者120から受信した応答に含めることができる変数に対する3値論理式を指定する。つまり、一般に、通知にはHTMLフォーム、VXMLダイアログ、または相当するオブジェクトが含まれる。たとえば、フォームは、名前を応答者によって指定された値に関連付ける。成功式で、応答の中の値の論理的組み合わせを検査し、応答成功がある場合、連絡は「true」に評価され、応答失敗がある場合、連絡は「false」に評価され、それ以外については、応答に対し時間の余裕がない場合、通知失敗があり、連絡は「maybe」に評価される。
たとえば、クリックされたときにボタンの値が「true」に設定される「Submit」という名前の単一のボタンがある1つのフォームを含む通知が収められているHTMLページを考察する。このページに対する成功式は、「Submit=true」である。株価変更の通知には、値「buy」または「sell」を取ることができる「Action」という名前のラジオ・ボタンと数値を取ることができる「Quantity」という名前のもう1つの別のフィールドのペアを含めることができる。このページに対する成功式は、「Action=buy & Quantity>1000」である。たとえば、「A ? Submit=「true」?」は、Aと連絡を取るという意味だが、成功検査をこれに指定すると、応答を受け取ったときに、応答により値「true」がパラメータ「Submit」に割り当てられた場合その連絡を「true」と定義する。「Submit」の値がtrue以外の場合、連絡は「false」であり、応答を受け取れる時間がもうない場合には連絡は「maybe」に評価される。
例には、2値論理に対する通信フロー式で使用する3値論理の利点が示されている。Joannとの連絡が成功した場合にはTomに連絡し、Joannとの連絡が失敗した場合にはPriyaに連絡することを望んでいるとする。従来の2値論理プリミティブのthenおよびelseを使用すると、この関係は、次のように表すことができる。
(Joann then Tom)or(Joann else Priya)
そこで、さらに、Joannが同じ論理を使用して、携帯電話で、あるいは事務所の電話経由で失敗した場合、あるいは要求をJerryに委託するするのに失敗した場合に、連絡を取ることを好んでいることを指定するものとする。
cell else office else Jerry
この式には固有の問題があるが、それは、要求者は間違いなく、Joannからの実際の応答の結果に基づいてTomまたはPriyaと連絡を取りたがっており、JoannはPriyaが応答に失敗した場合にのみJerryと連絡を取りたがっている(つまり、「no」で応答する場合は連絡を取らない)からである。これらの結果すべてを従来の2値論理から得ることは不可能である。以下の項で説明するが、本発明の3値論理では、Tomは、Joannが「yes」と言った場合のみ連絡が取られ、Priyaは、Joannが「yes」で応答しなかった場合にのみ連絡が取られ、Jerryは、Joannがまったく応答できなかった場合にのみ連絡が取られる。
通信フロー受信者
すでに示しているように、通信フロー式は、要求に対する受信者および受信者から受け取った返信に対する応答での通信の方向を決める方法を指定する柔軟性の高い一般的な手法を提供する。一実施例では、図5に示されているように、受信者環境設定およびロール・データベース500は、Lightweight Directory Access Protocol(LDAP)ディレクトリとして実現することができるが、これについては、たとえば、参照により本明細書に組み込まれているM.Wahl et al.「Lightweight Directory Access Protocol(v3)」、RFC 2251(1997年12月)で説明されている。受信者環境設定およびロール・データベース500は、通信フロー式内に現れる可能性のある受信者を記述したオブジェクトを保持する。図5に示されているように、受信者環境設定およびロール・データベース例500は、複数のレコード505〜520を備え、それぞれのレコードは異なる受信者に関連付けられている。
フィールド530で識別されている受信者毎に、受信者と環境設定およびロール・データベース500により、フィールド540内の受信者タイプとフィールド550で受信について定義されている個人通信フローが識別される。フィールド540に現れる受信者のタイプは、人、ロール、アプリケーション、デバイス、名前付き通信フロー、または個々の受信者と連絡を取るための方法である。人、ロール、または名前付き通信フロー・オブジェクトでは受信者と連絡を取るための通信フロー式を指定することができるが、個々の受信者またはアプリケーション(または媒体連絡オブジェクト)と連絡を取るための方法は受信者名の変換におけるターミナル・オブジェクトである(つまり、オブジェクトはディレクトリ内でさらに変換されないということである)。オブジェクトには、個人に対するエージェントとして動作することが可能な個人またはアプリケーションと連絡を取るのに重要な属性が含まれ、特に、アドレス、プロトコル、タイムアウト、および連絡を取る再試行間隔がある。
動的通信フロー式代入と呼ばれる本発明の他の態様では、受信者名を受信者環境設定およびロール・データベース500内の情報にバインドする操作を連絡のときが来るまで遅らせる。したがって、本発明の遅延バインドの態様では、会社のCEOなどのロールとして記述されている受信者は、システム100がCEOへの通知の試行を開始するまで変えられる。さらに、オフィス電話番号などの受信者の個人通信フローは、出張先の電話に切り替えることができ、出張が始まる前に送信した要求によりそのまま正常に使用できる。
媒体連絡で受信者と連絡を取る場合、受信者は、異なる通信フロー式を通信フロー内の自分の式の代わりに使用するよう要求することができる。このため、受信者はタスクをさらに多くの適切な受信者に動的に委託することができる。また、受信者は通信フロー内に遅延節を含む通信フロー式、たとえば、4時間遅れた後に要求を処理する催促を行う通知を生成する「Joann after +04:00」を代入することにより、タスクの実行を遅らせることができる。
図5は、さまざまな種類の受信者を説明する受信者環境設定およびロール・データベース500内の多数のオブジェクト例を示している。受信者と環境設定およびロール・データベース500で採用しているプリミティブの例について、以下の「プリミティブ」という表題の項で説明する。たとえば、レコード505に示されているように、受信者「Joann」は次のような式ですべての要求に対する以下の個人の通信フローを指定する。
(cell races email)delegates Jerry
したがって、Joannに連絡する場合、Joannの携帯電話に電話をかけ、それと同時に電子メールをJoannに送信しなければならない。Joannが応答しない場合、Jerryに、Joannの代わりに要求を受け取るよう連絡する(Jerryの個人通信フローに従って)。Joannが自分で要求に応答した場合、Jerryに対してはまったく連絡がいかない。
レコード510に示されている例では、ロールSysAdminが、現在の交代に関する要求の経路を管理者に設定する個人通信フローを指定する。
(Sam between 08:00−16:59 or Sue between 17:00−00:59 or Greg between 01:00−07:59)delegates SysAdmin
レコード510内のロールにより、午前8時から始まる平日の特定の時間に働いているシステム管理者に要求が回される。要求処理の第1作業日にどの管理者とも連絡がつかない場合、かっこ内の節は失敗し、再帰的SysAdmin参照により次の日に連絡試行が繰り返される。
受信者への再帰的参照、たとえば、SysAdminロールでの再帰的参照は、他の終了条件が存在している場合に限り通信フロー内の順次プリミティブをたどることを許されることに注意されたい。SysAdminの例では、要求は、応答を受信した場合にtrueまたはfalseで完了し、要求者設定タイムアウトが発生した場合に通知失敗(maybe)で完了する。
このような予防をしていても、ディレクトリ内で循環名前参照をループする可能性がある。たとえば、Joannの通信フロー式で「Tom」と言い、Tomの通信フロー式で「Joann」と言うことができる。この場合も、並列再帰的参照と順次再帰的参照とを区別することにより、無統制の大量のリソースが消費されるループが回避される。他に終了条件のないすべての並列循環参照および順次循環参照は、名前変換履歴を通じて防止される。JoannおよびTomに関する前の例はエラーとなるが、Joannの通信フロー式が電子メールを介して連絡を取ろうとし、失敗の場合にTomに委託し、Tomの通信フロー式は単にJoannに戻す(Tomが休暇中であるため)という状況は受け付けられる。同じ受信者に素早くループする、あるいは長期間にわたってループする要求に対する最終的な予防として、通信フロー式は、受信者に対する連絡の指定最大試行回数を超えたときにエラーを返すことができる。
図5の例を続行するには、レコード415の名前付き通信フローで、レビューのため並行して連絡を取らなければならない受信者のリストを指定する。
Chris and Jerry and Benji and Jenny
すべてのレビューアが正常に応答した場合、レビューアに対する要求は成功する。以下の「通信フローのプリミティブ」という表題の項で説明しているように、「votes」プリミティブを使用して、このリストに対する成功基準を変更することができる。
たとえば、
Reviewers votes 2
は、2人のレビューアが正常に応答した場合に正常に完了する。
受信者環境設定およびロール・データベース500内の媒体連絡オブジェクトもエージェントであってよいことに注意されたい。たとえば、カレンダー・エージェントは、以下の通信フロー内で結合された3つの媒体連絡を供給することができる。
HoldCal then(Cell then ScheduleCal else CancelCal)
HoldCalで利用可能な要求データが見つかると、携帯電話でユーザーに連絡を取り、会合目的の承認を得る。ユーザーが会合目的を承認した場合、会合時間のスケジュールを決定し、そうでなければ、会合は取り消される。
LDAPディレクトリ・ツリー
図6は、多数の受信者の個人名前付けコンテキストを示すLDAPディレクトリ・ツリー600の一部を示している。LDAPディレクトリ・ツリー600は、受信者環境設定およびロール・データベース500に記録されているユーザーの環境設定の表現である。たとえば、図6に示されているLDAPディレクトリ・ツリー600は、受信者Joannの個人名前付けコンテキスト610と受信者Tomの個人名前付けコンテキスト620を含む。受信者Joannの個人名前付けコンテキスト610では、規則、通信フロー式、および媒体連絡を定義している。受信者Tomは、デフォルトの規則、通信フロー式、および媒体連絡を使用する。
通信フローの規則およびパラメータ
通信フローの規則では、受信者名をいつ特定の個人通信フロー式に変換するかを指定する。受信者は、タイトルおよび要求者パラメータなどの、特定の要求に対してどの個人通信フロー式を使用するかを制御する、要求のパラメータに関する条件を指定することができる。たとえば、受信者は、タイトルで表されるときには特定のトピック、または携帯電話による即時注意の要求者を選択することができる。電子メールまたはWebで後から注意するある種の要求を選択することができる。
他の環境設定に基づくシステムとは異なり、通信フロー・マネージャ1300の環境設定処理は、要求の配送を処理するこに組み込まれている一般的なメカニズムである。受信者120の規則および個人通信フロー式により、その受信者120の個人名前付けコンテキスト610が確立される。受信者の名前および受信者が規則または通信フロー式内にある名前は、受信者のコンテキストに応じて変換される。他のコンテキストに基づく名前付けシステムとは異なり、この規則に基づく環境設定処理では、名前の大域的な意味を隠さない。大域的名前は、常に見えたままである、全員が使用できる。このような理由から、受信者は特定の種類の要求を誰か他の人に委託したいことを指定するために大域的名前を簡単に使用することができる。個人名前付けコンテキスト610では、受信者のコンテキストにとって重要であり適切である変換を実行するが、意味のある大域的名前をサポートしている。
したがって、図6に示されているように、Joannの個人名前付けコンテキスト610は、3つの通信フロー規則に対応するノード、つまり、マネージャ規則630、家族規則640および事務処理規則650を含む。受信者の個人名前付けコンテキスト610などの各受信者の個人名前付けコンテキストをLDAPディレクトリ・ツリー600にあるInetOrgPerson{RFC2798}またはInetOrgRoleオブジェクトを根とする部分ツリーとして確立する。LDAP内のInetOrgPersonオブジェクトは、人々に関する連絡情報を記述するLDAP標準オブジェクトであり、InetOrgRoleオブジェクトは、LDAP標準オブジェクト・クラスOrgRole{RFC2256}の部分クラスである。たとえば、図6で、Joannの個人名前付けコンテキスト610は「UID=joann」というラベルが付いているInetOrgPersonノードをルートとする。
それぞれの個人名前付けコンテキスト610は、通信フロー式、名前付き通信フロー式、および媒体連絡オブジェクトを処理する通信フロー式に関係する3種類のオブジェクトを備えることができる。図6では、個人名前付けコンテキスト610の一番上の3つのエントリ630、640、650は、MgrRule、FamilyRule、およびPaperwrkRという名前を持つ3つの通信フロー式を表している。ノード660、670、680は、それぞれ、web、cell、およびemailという名前が付けられた3つの媒体連絡オブジェクトに対応している。ノード690、695は、UrgentCFおよびRelaxedCFという2つの名前付き通信フロー式に対応している。
Joannによって指定されたマネージャ規則630、家族規則640、および事務処理規則650は、受信者環境設定およびロール・データベース500で定義される。マネージャ規則630、家族規則640、および事務処理規則650を定義する受信者環境設定およびロール・データベース500からの対応するオブジェクトは、図7に示されている。特に、受信者環境設定およびロール・データベース500は、マネージャ規則630を定義するレコード710、家族規則640を定義するレコード720、および事務処理規則650を定義するレコード730を含む。
図7に示されているような、それぞれの通信フロー規則は、アクティブ、順序、条件、および通信フロー式という4つの属性を含む。アクティブは、「yes」または「no」に設定される。非アクティブである規則、つまり、「no」に設定されている規則は、受信者の名前を個人通信フローに変換する場合には考慮されない。順序属性は、評価対象の名前付けコンテキスト610内のすべてのアクティブ規則の順序を指定する場合に使用される。order内のそれぞれの規則の条件が次に検査される。条件は、等式、不等式、範囲、および正規表現マッチングなどの属性値比較からなる論理式である。条件が満たされると、要求配送のため、受信者の名前が随伴する通信フロー式に変換される。MgrRuleの条件では、ユーザー名またはuidで特定の要求者を検査する。FamilyRuleの条件では、「Family」で始まるタイトルを検査する。PaperwrkRの条件は、常に満たされる。PaperwrkRは、他の規則が満たされない場合に適用されるデフォルトの規則である。このため、その順序番号は最高位の番号である。
図7に示されているように、レコード710、720、および730の規則例ではそれぞれ、少なくとも1つの名前付き通信フロー式(urgentCF 690またはrelaxedCF 695)を参照している。urgentCFまたはrelaxedCF通信フロー式は、以下のように、受信者環境設定およびロール・データベース500内の名前付き通信フロー式として定義することができる。
UrgentCF:cell races officephone races homephone
RelaxedCF:email races web
この方法では、名前付き通信フロー式により、受信者Joannは、規則で指定されている条件に基づき連絡のためさまざまな規則を確立することができる。
規則を構成する場合、連絡の共通方法の名前付き通信フロー式を作成すると便利なことが多い。この方法で、受信者は名前付き通信フロー式内の特定の環境設定を1回更新することができ、変更された名前付き通信フロー式を参照するすべての通信フロー式が自動的に更新される。その後、ときにはさまざまな目的のために同じ名前付き通信フローを使用して、規則で名前付きフローを参照できる。規則PaperwrkRでは、単純に名前付き通信フロー(relaxedCF 695)を使用するだけである。規則MgrRuleでは、受信者に緊急連絡を取ることができる場合に対して時間的制約を加え、いつでも緩和された連絡通信フローを使用する。規則FamilyRuleでは、利用可能なすべての媒体連絡を使用する。
通信フロー規則を使用すると、さらに、企業の従業員は段階的に緊急応答を行うことができる。たとえば、企業が顧客からの要求に即時応答しなければならず、要求はキーワード「urgent business」を含むタイトルとともに顧客から受信する。さらに、企業の少なくとも1人の従業員が以下の通信フロー規則を指定していると仮定する。
Title=「*Urgent Business*」;
Communication flow:(cellphone races pager)before +0:05 delegates manager
「manager」は、正しいマネージャを見つけるために受信者のディレクトリ・エントリ内のマネージャ・リンクを使用するデフォルトの名前付き通信フローである。キーワード「urgent business」を含むタイトルとともに要求を受信したときに、段階規則がトリガされる。従業員が5分以内に自分の携帯電話またはポケットベルに出ない場合、要求は上位レベルの「manager」に伝達される。
通常、段階処理を行う通信フローでは、要求が次の上位レベルに回される前に取り消される場合にdelegatesプリミティブを使用する。他のバリエーションでは、通信フローは、連鎖の前の方にいる人々への未処理要求を取り消さずに段階処理を実行できる。たとえば、以下の通信フロー例は、連鎖の前の方にいる人々への未処理要求を取り消さずに段階処理を実行する。
(Tom else Manager)races(Manager after +04:00)
この通信フローは、最初に、Tomだけと連絡を取り、初期応答が失敗した場合に即座に定義済みのManagerに連絡する。さらに、4時間経過したら要求を1段上のManagerに伝え、TomまたはManagerからの第1の応答のみが受け付けられる。通信および応答システム100は任意選択により、指定された要求が取り消された理由に関する情報を保持し、そのような情報を取り消された要求と関連する受信者に供給することができる。
この通信フロー式では、最適化を使用することにより、受信者指定Managerが同時に通信フロー内で2回アクティブになっている可能性があるという事実があろうと、1回Mangagerと連絡を取る。受信者名の各インスタンスは、その要求に寄与したエンティティ、つまり、要求者、または個人通信フローに関わるロールにより所有される。受信者名により同じオブジェクト/受信者が識別され、受信者名の所有者が同じである場合、受信者はそれらの名前に関して1回だけ連絡が取られる。所有者が異なる場合、受信者が所有者の代理として異なる方法で行動したがっていると仮定する、したがって受信者は、要求を受信者に委託した人に関する記録により複数回連絡が取られる。
受信者環境設定およびロール・データベース500およびLDAPディレクトリ・ツリー600に記録されているユーザーの環境設定は、図5〜7に関して上で説明したように、存在および利用可能性の情報により修正することができる。たとえば、受信者は、次のように、自分の環境設定を指定することができる。
(present(cell)then cell)delegates(present(email)then email)
present機能により、携帯電話媒体連絡に使用できる受信者およびデバイス情報により存在サーバと連絡を取る。携帯電話がオンになっていることを存在サーバが示した場合、present機能は「true」を返す。そうでなければ、「maybe」を返す。同様に、受信者が電子メール媒体連絡に対しネットワーク上に存在している場合、present機能は「true」を返す。そうでなければ、「maybe」を返す。受信者が携帯電話を使用できる状態にある場合、携帯電話で連絡が取られる。受信者が携帯電話を使用できる状態にない、または連絡が失敗した場合、ネットワークがチェックされ、受信者がそこにいれば電子メールが送信される。present機能は、存在サーバによって提供される機能にもよるが多かれ少なかれ高度なものである。また、通信フロー規則により、受信者は存在サーバを通じてアクセスできる要求者または要求の種類を制限することもできることに注意されたい。
存在および利用可能性の情報の他の応用では、媒体連絡は、存在情報が失敗(たとえば、携帯電話のスイッチがオフになっている)を示す通信試行(たとえば、電話呼び出し)をスキップすることでその動作を最適化することができる。媒体連絡は、単に、電話をかけようとして失敗したかのように先へ進むことができる。
ユーザーの環境設定は、企業側で決定することもできる。たとえば、企業は、顧客の支払い履歴に基づいて、侵襲性の度合いの高い顧客に通知を送信することができる。たとえば、以下の「delegats」プリミティブの項で詳述するように、支払い履歴が芳しくない顧客は、自動電話呼び出しにより1回目の延滞通知を受け取り、集金代行業者を通じて2回目の延滞通知を受け取るようにできる。支払い履歴が平均的な顧客は、1回目の延滞通知を郵便で受け取り、2回目の延滞通知を自動電話呼び出しで受け取り、3回目の延滞通知を集金代行業者を通じて受け取るようにできる。
ディレクトリのデフォルトおよび発見的手段
図13に関して以下で詳述する通信フロー・マネージャ1300は、短時間で導入でき、使いやすいため、LDAPディレクトリ・ツリー600(図6)のデフォルト・ディレクトリを採用している。通信フロー・マネージャ1300もまた、ディレクトリの検索時に発見的手法を採用することにより使い勝手を向上させる。通信フロー・マネージャ1300は、まず企業側にインストールされると、通信フロー・マネージャ1300は、既存の企業LDAPディレクトリ500から外れる。企業LDAPディレクトリ500の構成に関する情報に加えて、通信フロー・マネージャ1300では、アプリケーション特有のオブジェクト(つまり、通信フロー、通信フロー規則、媒体連絡、強化されたロールおよび構成オブジェクト)に対しオブジェクト・クラスを作成する必要がある。
通信フロー・マネージャ1300は、さらに、その構成および他のオブジェクトのデフォルト・インスタンスを格納できるディレクトリ・サブツリー600を作成する必要もある。デフォルト・ディレクトリを使用して、企業ディレクトリ内にすでに存在している人々およびロールに通信フロー・サービスを提供する。これらの人々およびロールは、受信者およびその企業の裁量で、個人化された通信フローおよび規則で強化することができる。
媒体連絡オブジェクトのデフォルト・インスタンスでは、自分の媒体連絡オブジェクトを指定するユーザーからも利用できる代入機能を使用する。媒体連絡オブジェクト内のアドレス・フィールドでは、角かっこを使用して、対象の受信者のLDAPディレクトリ・エントリ内の属性の名前を指定することができる。その属性の値は、もし存在すれば、オブジェクトの取り出し後、アドレス・フィールド内の角かっこで囲まれた属性名を置き換える。たとえば、<mobile>は、媒体連絡オブジェクトのアドレス・フィールドを、意図された受信者Joannを記述するinetOrgPersonオブジェクト内のmobileの値で埋めるさらに高度な代入手法も可能であり、本発明の範囲内にある。
媒体連絡オブジェクトのデフォルト・インスタンスとともに、通信フロー・マネージャ1300では、デフォルトの名前付き通信フロー式およびデフォルト通信フロー規則を作成する。通知および応答システム100の例では、デフォルトでは、受信者の電子メール・アカウントおよびWebポータル(電子メール・レースWeb)にすべての要求を送信する。デフォルトはすべて、企業側でニーズに合わせて変更することができ、デフォルト・オブジェクトは、個人通信フロー式および通信フロー規則を構成するユーザーから利用できる。
エントリの完全な識別名は、扱いにくく、直感的でない。そこで、通信フロー・マネージャ1300では、短い名前での発見的探索を使用して必要なオブジェクトを特定する。オブジェクトの完全な識別名は、通信フロー式内で識別名を各角かっこで囲むことにより、たとえば、<uid=joann,ou=people,o=research.avaya.com>として指定する。本明細書の例では、短い名前だけを使用してきた。
名前に遭遇すると、通信フロー・マネージャ1300は、人々、ロール、名前付き通信フロー、または個人名前付けコンテキストを適宜格納するために使用するディレクトリ部分ツリー、たとえば、610、620を探索する。通信フロー・マネージャ1300は、短い名前を部分ツリー内のエントリの相対的識別名と比較することにより探索する。マッチングが見つからなければ、通信フロー・マネージャ1300は、その後、デフォルト・ディレクトリを探索してから、エラーを返す。
外部組織が通信フロー・マネージャをインストールしていなくても、ローカル通信フロー・マネージャ1300を通じて、企業または他の企業群の他の部分と連絡を取ることができる。外部組織にLDAPディレクトリ500がある場合、2つの方法で通信フロー・マネージャ1300の名前空間内に組み込むことができる。まず、応答のため外部のディレクトリに連鎖している「smart referral」または他のメカニズムを使用して、外部ディレクトリをローカル・ディレクトリに組み込む。この場合、デフォルトまたは個人通信フロー情報がそこで利用できない場合には必ず、ローカル・ディレクトリに対する通信フローのデフォルトが外部ディレクトリに適用される。次に、adv_searchプリミティブにより、外部ディレクトリの連絡情報を記述し、要求者側で使用することができる。デフォルトが必要なすべての場合に、通信フロー・マネージャ1300のデフォルトおよび構成を外部ディレクトリに格納するディレクトリ部分ツリーの名前が通信フロー・マネージャ1300の提案された規約と一致していない限りローカル・デフォルトが使用される。このような理由から、LDAPディレクトリで通信フロー・マネージャ1300の推奨部分ツリー名をサポートするよう推奨する。通知および応答システム100の例では、その名前は次のとおりである。
<ou=Xui Server,o=domain−name−of−server>
要求者は、ときおり、ディレクトリ内にいないが、連絡したい連絡先の個人の住所録を用意していることがある。時々、要求者は、電話などの特定の媒体タイプで特定の個人と連絡を取ることを強く好んでいることがある。これらの場合には、要求者は、ディレクトリ内の要求者の個人名前付けコンテキストの中にあるそれらの個人の個人名前付けコンテキストを作成することができる。他の人のそれぞれの個人名前付けコンテキストは、その人のinetOrgPersonエントリを含み、さらに、inetOrgPersonエントリをルートとする部分ツリー内の通信フロー規則、媒体連絡、および名前付き通信フローを含む。次に、要求者は、自分の要求に対する通信フロー内の各受信者の完全識別名を指定する。
通信フロー・マネージャ1300では、受信者に対して要求者110により指定された通信フローを使用する。システムの強化では、デフォルトを探索し、まず要求者のツリー内に短い名前がないか調べ、次にディレクトリの人々およびロールの部分ツリーを調べ、そして最後に、ディレクトリのデフォルト部分ツリー内を調べることによりアルゴリズムを拡張する。このような手法は、受信者の環境設定に対する指定に反しており、ディレクトリに載っていない受信者または受信者の環境設定に関連性がないか、従う必要のないアプリケーションにしか使用されない。
通信フローのプリミティブ
すでに述べたように、通信フロー式では、要求を受け取る受信者、および受信者が要求を受け取る仕方、いつ受け取るか、およびどこで受け取るかを指定する。通信フロー式に含まれるプリミティブは、受信者に同時に連絡するかまたは順次連絡するか、および成功検査結果の論理結合を定義することによりいつ部分式の実行を終了すべきかを指定する。図8は、一組の通信フロー式のプリミティブの例を示すサンプル・テーブルである。図9A〜図9Eは、図8に示されているさまざまなプリミティブに対する真理値表の図である。図9A〜9Eで、「F」はfalseの応答を、「T」はtrueの応答を、「X」はmaybeの応答を示す。図9A〜9Eのそれぞれの左欄は、応答する第1オペランドを示し、最上位行は第2オペランドが応答することを示している(単一のオペランド「not」プリミティブ以外のすべてのプリミティブについて)。T、X、またはFの「b」下付添え字は、指示された値を取得するために両方のオペランドを評価しなければならないことを示している。プリミティブにより、要求の流れが受信者に向かう。具体的には、プリミティブでは、並行または順次通信の方向と受信者との通信の状況を通信フローにどのような影響を及ぼすかということの評価と組み合わせる。他のプリミティブは、連絡を取る時期またはディレクトリのオブジェクトのリストから通信フローを構築する方法を制御する。
プリミティブは、当然、and/then、or/else、races/delegates、およびvotes/pollsのように並行/順次のペアにグループ化することができる。並行プリミティブと順次プリミティブは、オペランドの評価方法が異なる。並行プリミティブでは、それぞれの受信者に並行して連絡を取る。処理要求は、プリミティブのtrue値を決定するためにもはや必要なくなれば取り消される。順次プリミティブでは、要求は現れる順序でそれぞれの受信者に送られる。受信者が応答すると、要求は次の受信者に送信され、必要ならば、プリミティブのtrue値を決定する。それぞれのプリミティブは、受信者との通信が成功したかどうかに応じてtrue、false、またはmaybeに評価される。
And/Then
「and」プリミティブでは、並行して2人の受信者と連絡を取ること、および両方の受信者が成功で応答した場合に通信フローが成功している(trueに評価される)ことを指定する。受信者のうちの一方への要求が失敗した場合、「and」プリミティブはfalseに評価され、他方の受信者への要求は可能であれば取り消される。他のすべての場合は、「and」プリミティブはmaybeに評価される。「and」に対する真理値表は図9Aに示されており、第1オペランドが応答する値は、各行の左に沿ってあり、第2オペランドが応答する値は各列の上段に沿ってある。
「then」プリミティブは、「and」の順次形式である。つまり、受信者は、現れた順に一度に1人ずつ連絡が取られ、第2の受信者は、第2の受信者が成功で応答した場合のみ連絡が取られる。図9Bに示されている「then」の真理値表は、第1のオペランドがmaybeを返し、第2のオペランドがfalseを返したときの「and」プリミティブの真理値表と異なる。「then」プリミティブの場合には第2オペランドは評価されず、「then」プリミティブの真理値がmaybeのままであるが、「and」プリミティブの場合は、第2オペランドが評価され、プリミティブはfalseを返す。この選択は、「then」プリミティブに対して行われており、より自然な意味論的解釈を行える。
Or/Else
「or」プリミティブでは、並行して2人の受信者と連絡を取ること、および受信者のうち少なくとも一方が成功で応答した場合に通信フローが成功している(trueに評価される)ことを指定する。両方の受信者が否定的応答をした場合、プリミティブはfalseに評価される。他のすべての場合には、プリミティブはmaybeに評価される。「or」プリミティブの真理値表は図9Cに示されている。
「else」プリミティブは、「or」プリミティブの順次形式であり、第2受信者は、第1の応答が成功しなかった場合にのみ連絡が取られる。「else」プリミティブの真理値表は図9Cに示されている「or」プリミティブと同じである。「else」プリミティブの場合、第2オペランドは、第1オペランドがmaybeまたはfalseに評価された場合にのみ評価される。「else」演算子が用意されており、第1受信者が「no」と応えるか、または応答に失敗(maybe)した場合のみ第2受信者に連絡を取るシナリオに対処している。
Races/Delegates
and/then、or/elseプリミティブは、通信フロー式の成功または失敗を判別するために、十分な受信者に連絡を取ることにすべて集中している。ときには、多くの可能な応答のうちの第1のものを受け付けるのがよいこともある。これは、成功するか、または不可能になるまで票を数えるので、既存のプリミティブではできない。並行プリミティブ「races」は、応答するオペランドのうちの第1のもののステータスに応じて成功または失敗する。第1の応答者が成功した場合、「races」プリミティブは成功する。第1の応答者が失敗した場合、「races」プリミティブは失敗する。第2の応答者に対する要求は、可能であれば取り消される。たとえば、
Cell races Office races Email races Web
は、携帯電話、事務所の電話、電子メール、またはWebポータルの媒体連絡のどれかを経由して受信者から受け取った第1の応答に応じて成功または失敗する。
本明細書で説明している他のプリミティブとは異なり、「races」プリミティブは、一方のオペランドからの成功または失敗応答に対して等しい重みを付ける。and/thenプリミティブは、オペランドの失敗には即座に応答するが、両方のオペランドから結果が返るのを待ち、その後、成功を返す。or/elseプリミティブは、オペランドの成功には即座に応答するが、両方のオペランドから結果が返るのを待ち、その後、失敗を返す。「races」プリミティブは、オペランドからの第1の応答に対して即座に応答し、そのオペランドの結果を返す。これは特に、上の例で示されているように、複数のデバイスを経由して個人に連絡し、個人がそれらのデバイスのうちの1つだけを介して成功または失敗とともに要求に応答することができるため有用である。「races」プリミティブは、他のプリミティブから指定することはできない。「races」の真理値表は図9Dに示されている。
「delegates」プリミティブは、「races」プリミティブの順次形式である。「delegates」プリミティブの真理値表は「races」プリミティブと同じである。「delegates」プリミティブは、左オペランドが通知失敗(maybe)を返した場合にのみ右オペランドを評価する。「races」プリミティブと同様に、「delegates」プリミティブは、他のプリミティブから指定することはできない。
上述の例に戻ると、Joannは自分の環境設定を次のようにして指定することができる。
cell delegates office delegates Jerry
その一方で、要求の生成側では以下のように指定する。
(Joann then Tom)or(Joann else Priya)
Jerryは、Joannが応答に失敗した場合にのみ応答する。Tomに対しては、JoannまたはJerryが、Joannの不在中に「yes」と応える場合にのみ連絡が取れる。JoannもJerryも応答しない、あるいは両者とも「No」と返事した場合、Priyaに連絡を取る。
「races」プリミティブが作られたのは、複数の同時デバイスを経由して1人の人と連絡を取る必要があるということが動機となっている。たとえば、受信者は携帯電話と事務所の電話の両方に通知を送るということを指定できる場合がある。受信者が自分の事務所の電話で応答した場合、その応答は、成功、失敗に関係なく、携帯電話への保留連絡にも適用すべきである。「and」および「or」プリミティブは、この要求条件を満たしていなかった。「delegates」プリミティブでは、たとえば、第1受信者が応答しない場合のみ第2受信者に連絡を取るシナリオを扱うことができるか、あるいは受信者と連絡が取れるまで一連のデバイスの探索を順次続けてゆく。
すでに述べているように、delegatesプリミティブを使用すると、企業では、個人化された要求配送を段階的に行うことができる。たとえば、代金取り立て業務にかかわる企業は、次のように、顧客との関係履歴に基づき、それぞれの顧客の個人通信フローを用意することができる。
good credit customers:web delegates email delegates sms delegates homephone
poor credit customers:homephone delegates officephone delegates cell
したがって、顧客がそれぞれの要求に対する応答を失敗すると、要求は次の連絡方法へ格上げされる。
votes/polls
受信者のリストに対し順次および並行通信フロー・プリミティブを一般化することが可能である。and/orプリミティブの並行および順次形式は、受信者のリストによる並行または順次投票を可能にするもう2つの一般的なプリミティブの特別なケースである。たとえば、「and」プリミティブの成功は、100%がyesに投票した場合に2人の受信者による投票であり、「or」プリミティブの成功は、少なくとも50%がyesに投票した場合の2人の受信者による投票である。
「votes」プリミティブは、成功応答のカウントmまたはパーセンテージn%に達した場合に並行して人数cの受信者のリストについて連絡し、成功(true)を返す。したがって、c−m+1のfalse応答があった場合に失敗が発生する。各受信者は、通信フロー式で表すことができ、カウントまたはパーセンテージは、成功する「votes」プリミティブについて受信しなければならない成功の回数を表す。たとえば、
{TOM,Joann,Jerry}votes 50%
は、Tom、Joann、およびJerryに並行して連絡する。少なくとも2人が成功で応答すると、「votes」プリミティブは成功となる。「votes」プリミティブが失敗するのは(falseを返すのは)、十分な受信者が、指定されたカウントまたはパーセンテージに達することができないようなfalse応答を返した場合である。他の場合には、成功に達することができなければ「votes」プリミティブはmaybeとなる。上の例で、Tom、Joann、およびJerryのうち少なくとも2人が失敗で応答した場合、「votes」プリミティブは失敗となる。その一方で、true、false、およびmaybeだと、maybeの真理値になる。
プリミティブのカウントまたはパーセンテージから直接trueを返す必要があるtrue投票の回数を計算することが可能であることに注意されたい。これから、falseを返す必要のあるfalse投票の数(総数+1−trueの数)およびmaybeを返す非true投票(少なくとも1つがmaybeである場合のfalseまたはmaybe)の数(総数+1−trueの数)を計算するのは簡単なことである。「polls」プリミティブは、「votes」プリミティブの順次形式である。
votesプリミティブを、たとえば、限られた数の品目を販売または配布する場合に使用すると便利である。たとえば、500ユニットの指定品目と5000人の見込み客がいる会社では、以下の通信フローを指定することができる。
{customer1,customer2,...,customer5000}votes 500
要求は、顧客が500ユニット注文したときに完了する(各顧客は1ユニットのみを注文すると仮定する)。各顧客が複数のユニットを注文できる例については、test response statusプリミティブの以下の説明を参照のこと。
pollsプリミティブを、たとえば、至急人員を補充する必要がある場合に使用すると便利である。たとえば、明日の朝までに注文リストから5人の代用教員を見つけようとしている学校は、以下のように通信フローを指定することができる。
{teacher1,teacher2,...,teacherN}polls 5
すでに示されているように、この要求は、5人の代用教員が授業を受け持つことに同意した場合に完了する。
通信フロー式は、リストではないため、式を「votes」および「polls」プリミティブで必要なリストに変換すると都合がよい。特に、受信者環境設定およびロール・データベース500内の名前付き通信フローは、多くの場合、当然であるが、リスト構造を持つ。大かっこで囲まれたリストではなく、通信フロー式が第1オペランドとして現れるときに「votes」および「polls」プリミティブに対しては自動変換がサポートされる。自動変換は、結合のみまたは調整のみを含む通信フロー式に対して実行される。式に「and」および「then」プリミティブのみが含まれる場合、これは、結合のリストに変換される。式に「or」および「else」プリミティブのみが含まれる場合、式は、分離のリストに変換される。上に示した例をもう一度検討すると、
Reviewers votes 2
は、実際には以下のような式である。
(Chris and Jerry and Benji and Jenny)votes 2
結合は、自動的に、リスト{Chris,Jerry,Benji,Jenny}に変換される。式をリストに変換する操作の詳細を指定することは可能であるが、このような変換が、必要であるとか、明らかであるとか、または望ましいということは明確でない。後述のsearchプリミティブは、リストを式に変換する。
「races」および「delegates」プリミティブの生成
受信者のリストに対しracesおよびdelegatesプリミティブを一般化することが可能である。racesの一般化は、gen_racesと呼ばれるものであるが、受信者のリスト、収集する応答の数、および受信した応答からプリミティブの成功または失敗を判別する決定アルゴリズムを受け付ける。たとえば、gen_racesを1回使用すると、N番目の受信した応答の値を受け付ける。これは、100番目の呼び出し側から応答を受け付けるラジオ・トーク・ショー・モデルに対応している。他の例では、gen_racesは、5つの応答のうち3つを収集し、その3つの大半の応答を返す。この結果は、
{A,B,C,D,E}votes 2
と異なり、これは、2つ成功するまで待つ。gen_delegatesは、delegatesプリミティブの一般化である。gen_delegatesは、gen_racesと似ているが、プリミティブの条件が満たされるまで受信者に順次連絡してゆく点が異なる。
順次/並行プリミティブの実装
順次および並行プリミティブは、単純なカウント・アルゴリズムを使用する実施例において実装されている。各プリミティブは、trueを返す必要のあるtrue応答の数とfalseを返す必要のあるfalse応答の数により記述される。さらに、maybeを返す必要があるmaybe応答の最小数とmaybeが返される前に受信していなければならない応答の総数により記述される。図10は、Cがvotes/pollsでリストに載っているすべての受信者のカウント数であり、Xがvotes/pollsパーセンテージまたはカウントにより必要なtrue応答の数である、それぞれのプリミティブのカウントを要約したものである。並行および順次プリミティブは、各クラス内で受信された応答の数を数える。返されるステータスの1つに対する要求条件が満たされると、これらのプリミティブは未処理要求すら取り消して、適切なステータスを返す。
ステータスの解釈および時間的プリミティブ
図4に関して上で説明したように、受信者120に対する要求の成功は、通知成功と応答成功が伴う。通知成功は、受信者と正常に連絡が取れた場合に発生する。デフォルトで、受信者が要求および応答システムAPIの成功の定義を満たす方法で応答した場合に応答成功が発生する。通知および応答システム100のWeb APIについては、応答成功のデフォルトでは、submitボタンの値「false」または「no」を含まないWebフォームへの返信となっている。submitボタンに対する「false」または「no」は、応答失敗のデフォルトの応答である。
一部のアプリケーションでは、応答成功のアプリケーション特有の定義が必要になることがある。たとえば、支出レポートが複数のマネージャによって順番に承認される場合、成功はreport_status=「approved」で要求に応答することと定義することができる。
Test Response Statusプリミティブを使用すると、アプリケーションは、応答成功指定を応答からの属性−値のペアの比較の論理式として供給することができる。この論理式は、応答が検査される受信者の後の疑問符の間に指定する。比較には、統合、不等号、範囲、および正規表現マッチングを含めることができる。成功指定が通信フロー内のすべての受信者について同じであるが、システム・デフォルトとは異なる場合、要求全体にわたるデフォルトを指定することができる。
以下の例では、デフォルトの機能を使用せずに、応答成功ステータスを指定している。
DepartmentHead? report_status=「approved」? then Director? report_status=「approved」? then VP? report_status=「approved」?
Test Response Statusプリミティブが複数の受信者を含む式に適用される場合、これは、さらに複雑な式の中のそれぞれの受信者に適用される。たとえば、前の式は次のように書くことができる。
(DepartmentHead then Director then VP)? report_status=「approved」?
成功指定では、集計およびその他の高度な処理をそこまでのすべての応答にわたって応答の属性に対し実行し、結果を成功または失敗について検査することができる。
上で示したように、votesプリミティブを使用して、限られた数の品目を販売または配布することができるが、それぞれの顧客はちょうど1ユニット購入すると仮定する。以下の成功式では、それぞれの顧客は複数のユニットを注文し、少なくとも100ユニットが販売されていたときには通知を終了する。
(Sue or Fred or...or Sam)? sum(number_sold)≧100?
100個販売した後、他の受信者への未処理要求は取り消される。通知申し出が通知および応答システムから利用できるデータにより個人化された場合、前の応答の結果を利用して、受信者にまだ売られている品目を提供することができる(100−sum(number_sold)。受信者が残りの品目を買おうとした場合、第1のものは成功し、第2のものは、他の要求により完了したためその要求は取り消された(つまり、申し出が撤回された)という通知を受ける。
between/before/after
応答ステータスを検査するプリミティブに加えて、「between」、「before」および「after」プリミティブにより、通知を配送し、受信者から応答を収集する時間的制約条件を指定する。時間制約条件により、「after」プリミティブの場合のように開示時刻を、あるいは「before」プリミティブまたはその両方、「between」プリミティブの場合のように終了時刻を指定することができる。「between x−y」も、「after x before y」で表すことができる。複数の時間制約条件を同じ受信者に適用する場合、時間制約条件は左から右へ評価される。第1の時間制約条件により、実際の開始時刻および終了時刻が設定される。その後の、時間制約条件によりこれらの時刻を微調整することができる。相対的時間制約条件では、時刻を順方向または逆方向に調整することができる。他の制約条件、たとえば、区間の先頭または末尾を見つけることにかかわるものは、開始時刻を先へ進め、終了時刻を逆に戻すことができる。つまり、複数のプリミティブにより食い違う絶対開始時刻または食い違う絶対終了時刻を設定した場合、遅れている開始時刻と早くなった終了時刻を使用して、実際に、制約区間を交差する。temporal constraintプリミティブが複数の受信者を含む式に適用される場合、これは、さらに複雑な式の中のそれぞれの受信者に適用される。
時間制約条件を指定するには、時間式と時間領域式を使用する。時間式は特定の時点を表し、時間領域式は時間領域を表す。まず、時間領域式を定義するが、これらは時間式を書くときに使用される。時間領域は、(開始時刻、終了時刻)で指定された1つまたは複数の時間的区間であり、開始時刻はその区間内に含まれ、終了時刻はその区間内に含まれない。基本的な時間領域は、概念上始まり(Creation)から終了時刻(Armageddon)までの1つの区間であるEternityである。Creationは、任意の開始時刻(Unix(登録商標)の時間表現では、00:00.00 UTC on January 1,1970など)として取られ、Armageddonも同様に取り扱われる。現在、時間は、Creationから経過した秒単位の分解能で指定される。他のすべての時間領域は、一組の非連結時間区間(開始、終了)であり、区間の始まりは閉であり、区間の終わりは開である。
時間領域は、和集合、共通部分、および補集合の演算のもとで閉じている、つまり、これらの演算を領域上で実行すると必ず、他の有効な領域が得られるということである。時間領域式は、プリミティブの時間領域(下で定義)と、和集合、共通部分、補集合の演算から作成される。通信フロー式に名前を付け、他の通信フロー式の中で使用できるのと同様に、時間領域に名前を付け、他の時間領域式の中で使用することができる。
プリミティブ時間領域には以下のものがある。
from 9:00.00,13 May 2002 until 17:00.00,13 May 2002などの指定された開始時刻と終了時刻を持つ区間。
13 May 2002などの指定された日。
Sunday,12 May 2002 through Saturday,18 May 2002などの指定された週。
May 2002などの指定された月。
2002などの指定された年。
Mondayなどのその週の指定された曜日(つまり、CreationからArmageddonまでの間のすべてのMondaysの和集合を意味する)。
Mayなどの指定された月(つまり、CreationからArmageddonまでの間のすべてのMaysの和集合を意味する)。
July 4などのその年の指定された日(つまり、CreationからArmageddonまでの間のすべてのJuly 4の和集合を意味する)。
9:00.00−17:00.00などの指定された時間範囲(つまり、CreationからArmageddonまでの間のすべての日に対するすべてのそのような区間の和集合を意味する)。
たとえば、平日をMonday、Tuesday、Wednesday、Thursday、およびFridayの和集合として定義することもできる。休日を、January 1、July 4、およびDecember 25の和集合として定義することができる。営業時間を、平日と9:00.00〜17:00.00の時間範囲と共通部分として定義することができる。また、営業時間と休日の補集合との共通部分を求めることにより、営業時間を精密化することができる。
時間式では、絶対時間を指定することができるか、または開始時刻(今から4時間など)に関して計算される時刻を指定することができるか、または時間領域と開始時刻(から計算される時刻を指定することができる(次の営業日の始まり、または今から4営業時間、つまり営業時間の時間領域内でのみカウントする今からの4時間を意味する)。
時間式は、以下の形式のうちの1つをとることができる。
17:00.00 13 May 2002などの絶対時刻。
+4:00.00などの相対的時刻であり、これは、現在時刻の後4時間、または−3:00.00を意味し、現在時刻の前の3時間を意味する。
時間領域内の次の区間の開始または終わり、たとえば、業務の次の完了を現在時刻以降の営業時間内の区間の次の終わりとして指定することができる。より一般的には、開始または終了、たとえば、第2の業務完了をカウントすることができる。
指定された時間領域内で経過した時間、たとえば、現在16:00.00 on 13 May 2002だとすると、4営業時間が経過すると、12:00.00 on 14 May 2002を出力する。また、現在の時刻から戻すこともできるが、これは、先へ進めた後に、特に有用である。たとえば、次の休暇について時間領域を定義し、その後、次の休暇の始まる前に4営業時間を参照する。
これらに関して、さらに複雑な時間式を定義することができる。
たとえば、毎日12:00.00〜12:00.00まで続く(空の)時間区間を定義することができる。このような区間の次の開始(または終了)を取ることで、次の日の正午が指定される。平日との共通部分を使用することにより、同様に、次の営業日の正午を計算で求めることができる。これと、区間の終了をカウントする演算子とを結合することで、次の営業日の正午から2日間に業務の完了を計算することができる。
他の例として、スペインでの営業時間を範囲9:00.00〜12:00.00および14:00.00〜19:00.00の和集合として指定することもできる。当日の業務完了を見つけるために、スペインでの営業時間と当日との共通部分を求め、その結果の時間領域内の区間の最後の終わりを見つける。
企業では、通信フロー・マネージャに対してデフォルト時間領域オブジェクトを定義することができ、あるいはそれぞれの受信者が自分の個人時間領域オブジェクトを定義することができる。このようなオブジェクトの使用例として、企業に対し営業時間を定義する例がある。オブジェクトには以下のものが含まれる。
時間領域オブジェクトの共通名(cn):business
その領域を使用する受信者のディレクトリ・フィルタ。これは、この営業時間領域を特定の会社、時間帯、または地理的領域内の人々に関連付けるために使用することができる。
実効時間を計算するために使用する時間帯。
領域内の区間に対する時間領域式。この時間領域式は、他の基本または名前付き時間領域を参照することができる。
この時間領域は、時間式演算子「end of」、「start of」、「n end of」、「n start of」とともに使用され、nはカウントまたはキーワードlast、「+」は領域内の相対時間、「−」は「before」、「after」、および「between」プリミティブの領域内の相対時間であり、たとえば、次のものがある。
AFTER end of business
BEFORE 2 start of business
BETWEEN start of business−end of business
BEFORE business+4:00.00
AFTER end of business
AFTER business−01:00.00
AFTER last end of(SpanishBusinessHours intersect Today)
構文をより自然なものとするためにさまざまな簡略化を行うことができる。たとえば、時間領域の名前がafterの後に来る場合、その時間領域内の区間の次の終わりを指定された時刻とみなすことができる。beforeについても同様に、領域内の区間の次の開始を指定された時刻としてみなすことができる。こうすることで、「AFTER end of business」は「AFTER BUSINESS」に、「BEFORE start of Monday」は「BEFORE Monday」に簡略化される。さらに、「BETWEEN end of 08:00.00−start of 17:00.00」は「BETWEEN 08:00.00−17:00.00」に簡略化される。和集合、共通部分、および補集合の演算を使用する完全な時間領域式はさらに、時間領域の名前が使用されている場所でも使用できる。
通信フロー・マネージャの標準のデフォルト処理は、時間領域オブジェクトの共通名は通信フロー内で指定された名前から始まるが、business$west−coastのようにドル記号「$」の後に他の修飾文字列を挿入することもでき、受信者は時間領域オブジェクト内でフィルタを一致させなければならない。複数の一致するオブジェクトが見つかった場合、それらのオブジェクトの1つを選択するが、可能であれば、論理的に最も固有性の高いフィルタ(他のすべての一致するフィルタを含むフィルタ)を選択し、あるいはそれが可能でなければ、一致するオブジェクトのうちの任意に選択したオブジェクトを選択する。通信フロー・マネージャはまず、inetOrgPersonまたはinetRoleオブジェクトのコンテキスト内で一致するフィルタにより指定された名前の時間領域を探す。何も見つからない場合、通信フロー・マネージャは、そのデフォルト・ディレクトリ内の領域を探索する。
短い名前とディレクトリ探索プリミティブ
本明細書で説明している例は、要求者110は短い名前を使用して受信者120を指定できることを示している。以下の「ディレクトリのデフォルトと発見的手法」の項で説明しているように、これらの短い名前は、受信者環境設定およびロール・データベース500の発見的探索により変換される。要求者110は、さらに、角かっこで囲んだ受信者120の安全識別名、たとえば<uid=joann,ou=people,o=research.avaya.com>を指定することもできる。受信者120の識別名を指定することは、ユーザーにとっては難しい場合があるが、それは、LDAP名前ツリー600(図6)の構造を知っている必要があるからである。また、通信フロー式では、探索演算もサポートしており、ユーザーは受信者環境設定およびロール・データベース500内の1つまたは複数の受信者オブジェクトの属性を記述することができる。ユーザーは、探索演算を使用する場合、ディレクトリ・オブジェクトの識別名を知っている必要はない。「search(filter,pattern,op)」などの形式のsearchプリミティブの例では、受信者環境設定およびロール・データベース500を探索して、指定されたフィルタに一致する人、ロール、または名前付き通信フロー・オブジェクトを探す。高度なsearchプリミティブの例は、「adv_search(directory−server,directory−port,base,scope,filter,pattern,op)」などの形式である。高度な探索プリミティブのフィルタ、パターン、およびopパラメータの演算は、探索プリミティブと同じである。directory−serverパラメータでは、探索する受信者環境設定およびロール・データベース500のホストのドメイン名を指定し、directory−portパラメータでは、ホスト上の受信者環境設定およびロール・データベース500サーバのポート番号を指定する。baseの識別名をルートとするディレクトリ・ツリーは、サーバ上で探索される。探索の範囲は、base(baseのみで識別されたオブジェクトの)、one−level(baseで識別されたオブジェクトの子のみを探索する)、またはsubtree(baseで識別されたオブジェクトの部分ツリー全体を探索する)のいずれかである。Directory−server、directory−port、base、またはscopeは、NULLであってもよく、その場合、デフォルトが適用される。
一般に、通信フロー式のsearchプリミティブは、探索結果を処理するためのマクロ機能を備えている。返されるそれぞれのオブジェクトは、トークン「<dn>」に対する、searchプリミティブのpatternパラメータで与えられる、パターンに代入される。次に、このオブジェクトの結果文字列は、searchプリミティブのopパラメータ、たとえば「and」または「races」で与えられる、ユーザー指定プリミティブを使用して他のオブジェクトの結果文字列に接続される。例として、以下のパターン
(<dn>between 5/01/01−05/08/01)delegates(<dn>between 5/08/01−05/10/01)
は、2001年5月1日以降に1回、応答が来なければ2001年5月8日に以降に再び、要求の各受信者に通知する文字列を作成する。要求の完了前にすべての受信者からの応答が必要な場合、結果文字列を「and」プリミティブで接続して、通信フロー式を作成する。ユーザーはさらに、探索を、1人の受信者だけを返すように制約することもできるが、当業者には明らかなことであろう。探索結果に対する複数の一致を処理する方法を指定することで、個人にしか送信できないのにユーザーは知らずに機密の要求を大きなグループに送信してしまうのを防止できる。
searchプリミティブは、たとえば、エキスパートの援助を求めるときに使用できる。たとえば、要求者がエキスパートからJ2EEなどの指定されたトピックに関する情報を必要とする場合、要求者は以下の通信フローを指定するとよい。
search(「&((objectclass=inetOrgPerson)(expertise=J2EE))」,「<dn>」,OR)
他に、通信フローを次のように指定することもできる。
expert1 or expert2...or expertN
さらに他の例では、ネットワーク・アラームが発生し、これをエキスパートが解決しなければならない。要求者は、以下の通信フローを指定することができる。
search(「&((objectclass=inetOrgPerson)(expertise=netmgr))」,「<dn>」,OR)
これらの要求は、エキスパートが要求に申し分なく応えた場合に完了する。
以下の表は、高から低への演算子の優先順位(演算子の順序)の例をまとめたものである。同じレベルにある演算子は、左から右への順序である。一般に、優先順位の順序を変更するには、かっこを使用する。
Figure 2005515519
要求マネージャ1200と通信フロー・マネージャ1300の相互作用
図11〜13には、要求マネージャ1200と通信フロー・マネージャ1300との間の相互作用が示されている。図11は、要求に関連するさまざまなエンティティの間の情報の流れを示す概略ブロック図である。図12Aおよび図12Bは、図11の要求マネージャの動作を詳しく説明する流れ図である。図13は、図11の通信フロー・マネージャの動作を詳しく説明する流れ図である。実施例では、要求マネージャ・プロセス1200および通信フロー・マネージャ・プロセス1300は、それぞれ、ステップ1205(図12)および1305(図13)で検出されたさまざまな定義済み非同期イベントを処理する。
図12Aに示されているように、要求マネージャ1200は、ステップ1210でアプリケーション・インターフェイス220を通じてアプリケーション110から受信した新しい要求を検出する。次に、要求マネージャ1200は、ステップ1215で要求データベース300(図3)に要求のエントリを作成し、要求識別子とともに、要求の通信フロー式部分をステップ1220で構文解析する通信フロー・マネージャ1300に供給する。
図13に示されているように、通信フロー・マネージャ1300は、ステップ1310で処理する新しい通信フロー式を検出する。通信フロー・マネージャ1300は、必要に応じて、ステップ1315で通信フロー式を処理し、ツリー600内の一組の実行可能ターミナル・ノードに到達し、指定された受信者について採用する媒体連絡オブジェクトを示すまで、受信者環境設定およびロール・データベース500を使用して通信フロー式内の各名前を解決する作業を続ける。受信者120は、通信フロー管理GUI 1110を使用して受信者環境設定およびロール・データベース500への環境設定の入力と更新を行うことができることに注意されたい。
通信フロー・マネージャ1300は、ステップ1325で、連絡するデバイスのリストを生成し、そのリストを要求マネージャ1200に連絡スケジューリング情報の一部として返す。一般に、連絡スケジューリング情報は、要求マネージャ1200によって即座にスケジュール可能な連絡のみを含む。たとえば、指定された受信者の環境設定が、その受信者には午前8時から午後5時までの間に電話でしか連絡できないことを示している場合、通信フロー・マネージャ1300はその時間枠が有効になるまで電話媒体連絡をスケジュールしない。
より具体的には、通信フロー・マネージャ1300は、受信した通信フロー式を解析してツリーにし、そのツリー内のノードの再帰的処理を開始するが、それには、縦型検索アプローチを使用し、ターミナル・ノードに到達するまで、ツリーをたどる。ツリー内でターミナル(リーフ)ノードに遭遇する毎に、そこに格納されている媒体連絡が処理される。指定されたノードに並行プリミティブが含まれる場合、並行プリミティブのオペランドに関連付けられたすべてのノードが処理される。指定されたノードに順次プリミティブが含まれる場合、左側オペランドは完了するまで、右側オペランドは処理されない。
さらに、媒体連絡を要求マネージャ1200に返す前に、通信フロー・マネージャ1300は、媒体連絡(ターミナル・ノード)と関連する時間的制約条件が満たされているかどうかを判別する。たとえば、通信フロー・マネージャ1300は、開始時刻になったかを判別する。すべての時間的制約条件が満たされると、媒体連絡が、要求マネージャ1200に返されるリストに取り込まれる。すべての時間的制約条件が満たされているだけではない場合、媒体連絡は、要求マネージャ1200に返されるリストにはまだ含まれず、通信フロー・マネージャ1300は、適切な時刻に通信フロー・マネージャ1300によってリストに媒体連絡を追加できるようにタイマーを設定する。媒体連絡オブジェクトは、すべての時間的制約が満たされるまで取り出されないことに注意されたい。
通信フロー式のツリー表現は、知られている方法でルート・ノードヘの逆ポインタを含むことができ、そのため関連する時間的制約条件を識別しやすくなっていることに留意されたい。人またはロールに対する名前付きノードがツリー内に見つかった場合、その名前に対してすでに同じ所有者(同じ指定された通信フロー)と連絡が取られているかどうかを判別する。その名前に対してすでに同じ所有者と連絡が取られている場合、第2の連絡が試みられない。むしろ、ステータス情報が前の連絡から伝搬される。
図12Aに示されているように、要求マネージャ1200は、ステップ1225で受信した連絡スケジューリング情報を検出し、以下の「媒体特有のインターフェイス」という表題のセクションで説明しているように、ステップ1230で指示された媒体連絡タイプを使用して連絡スケジューリングに情報に示されているそれぞれの受信者と連絡を取ろうとする。
ステップ1240(図12B)で要求マネージャ1200が1つまたは複数の応答またはメッセージ期限切れイベントを検出した場合、対応する要求識別子を持つ応答または期限切れのレコードが、任意選択により、たとえば、ステップ1245で、アーカイブまたは記録付けを目的として、応答データベース1150内に作成される。各個別応答が要求側アプリケーション110に供給される実施例では、ステップ1248で受信した応答が対応するアプリケーション110に転送される。応答または期限切れステータスは、ステップ1250で、さらに処理するため通信フロー・マネージャ1300に転送される。
通信フロー・マネージャ1300は、ステップ1330で、要求識別子を持つ受信された応答または期限切れステータスを検出し、ステップ1335で、その要求識別子を使用して、適切な通信フロー式を取り出す。ステップ1330で、応答または期限切れステータスが検出された場合、通信フロー・マネージャはさらに、ステップ1335で通信フロー式のツリー表現を更新し、媒体連絡のステータスを反映するようにする。次に、通信フロー・マネージャ1300は、現在判別されている上位オペランドのステータスを判別することにより、ステータスを上に向かってツリーのルートに伝搬し、したがって、媒体連絡のステータスの結果としてオペランドはこれで完成する。オペランドが完了すると、そのオペランドに対する未処理媒体連絡は取り消し対象の連絡のリストに置かれる。このリストは、適宜、ステップ1350または1320の後に要求マネージャ1200に返される。ステータスの伝搬によって通信フローが全体として完了しない場合、これは、ツリー内の最高優先度の演算子を完了ステータスが設定されているときに発生するが、処理はステップ1315に続く。通信フロー全体が完了した場合、処理はステップ1350へ続く。
通信フロー・マネージャ1300は、通信フロー式を使用して、追加通信が必要かどうか、または通信が完了しているかを判別する。ステップ1340で、追加通信が必要だと判断された場合、プログラムの制御はステップ1315に戻り、連絡スケジューリング情報を生成し、さらに連絡スケジューリング情報を要求マネージャ1200に送る。しかし、ステップ1340で、通信フロー式が完了していると判断された場合、通信フロー・マネージャ1300は、ステップ1350で完了ステータス指示を要求マネージャ1200に転送する。
照合された応答が要求側アプリケーション110に供給される一実施例では、要求マネージャ1200は応答を照合し、ステップ1260で要求マネージャ1200が通信フロー・マネージャ1300から完了ステータス指示を受信すると、ステップ1265でそれを要求側アプリケーション110により指示されている最終宛先アドレスに返す。ステップ1270で、完了ステータス・メッセージが対応するアプリケーションに送信される。
媒体特有のインターフェイス
一実施例では、媒体特有のインターフェイスは、それぞれのサブクラスが2つのメソッド、つまり、連絡を開始するメソッドとそれを取り消すメソッドを実装する必要がある単一のMediaContact抽象クラスのすべてのサブクラスである。しかし、2つのメソッドだけが必要であるが、通知および応答システム100とエンド・ポイントとの間の情報の配分の程度に応じて、非常に単純なサブクラスから極めて複雑なサブクラスまである。一般に、それぞれの媒体連絡について、要求は後述の媒体特有のトランスコーダの1つによりトランスコーティングされ、試行対象の特定の連絡に好適な符号化を出力する。プロトコル固有の通信インターフェイスでは、各受信者への符号化された要求の実際の配送を処理する。
このクラスの収集は、デバイス抽象層と考えることができる。このようなデバイス抽象層は、さまざまなデバイスのあらゆる複雑さを他の通知および応答システム100のクラスから隠し、通知のインスタンス化、開始、および取り消しをを行うごく少数の単純なメソッドのみを公開するほかに、すべてのデバイスにわたって一様ないくつかのパラメータ設定および参照メソッドを公開する。以下では、多数のMediaContactサブクラス例について説明する。
WebContact
WebContactクラスでは、受信者はWebポータルにログインして、保留、完了、および取り消し済みの要求のリスト表示させることができる。WebContactクラスでは、単純に、要求者の名前、要求の時刻、件名、および要求URLへのハイパーリンクを含むアイテムを保留リストに挿入するだけである。取り消しでは、アイテムを保留リストから取り消し済みリストへ移動するだけである。「recipient」は、目的の通知をクリックし、表示されているフォームを完成させることにより応答する。
PhoneContact
PhoneContactクラスでは、受信者が電話をかけるか、または連絡をよこすまで待つのではなく、電話呼び出しを開始しなければならない。さらに、PhoneContactクラスでは、VXMLスクリプトのオーディオ表現(または他のテキスト表現)を出力するVoice eXtensible Markup Language(VoiceXML)システムを採用することができる。PhoneContactクラスでは、TCP経由で、要求識別子、媒体連絡識別子、ダイヤルする電話番号、およびターゲット受信者のVXMLスクリプトを返すサーブレットのURLを指定するメッセージを電話オートダイヤラに送信する。取り消しの場合、PhoneContactは、単に、まだ電話がかけられていない場合に電話を取り消すことを指示するメッセージを送信するだけである。
オートダイヤラの制御プログラムにより、電話呼び出しの要求がキューの中に入れられ、リソースが利用可能になるとすぐにFIFOの順序で実行される。
EmailContact
通知および応答システム100の例では、プレーン・テキスト、HTML、および埋め込みダイナミックHTMLの3種類の電子メールに対応できる。第1の場合、多くの受信者がときには、テキストのみの電子メール・クライアントを使用する。これには、テキスト・エディタのemacsやいくつかのWebベース・クライアントが含まれるが、Blackberry(商標)やPalm(商標)から市販されているものなどの無線電子メール・クライアントも含まれる。この場合、ディレクトリ内で、テキストのみの電子メールでなければならないことを指示することにより用意しなければならないが、通知および応答システム100は、通常、要求者の名前、要求の件名、および通知メッセージを指しているURLを含む単純な電子メール・メッセージを作成する。一実施例では、要求側アプリケーションは、テキスト・メッセージ自体を作成し、さらに、オーディオ・アクセスのため呼び出すことができるボイス・ポータルの電話番号を挿入した。
埋め込まれたフレームまたはレイヤを処理することができないHTML対応電子メール・クライアントに代わって、EmailContactが、またも、通知を説明するHTMLページを作成するが、今度は、通知メッセージへのハイパーリンクを含む。埋め込まれたフレームおよびレイヤを処理できる電子メール・クライアントの場合、EmailContactは、クライアントがメッセージを表現するときにコンテンツが組み込まれるように通知を埋め込んだメッセージを作成する。
EmailContactが最後に複雑なのは、配送できない電子メール・メッセージを解釈する必要があるということである。これは、さらに通知および応答システム100に送信されたメッセージを処理するプログラムとして指定されるメイン・メソッドを供給する形で実装される。すると、このメソッドは、返されたメールを解釈して、配送試行が失敗したことを示しているか、あるいは何か他のことを示しているかを判別しようとする。そうであれば、通知および応答システム100は、連絡が失敗したことを通知される。通知および応答システム100は、任意選択により、要求を受け取って、解釈することができる。これにより、返信が送信されなくても通知が成功したと判断する可能性があり、また何らかのアプリケーションに必要な機能である場合もある。
SMSContact
SMSContactでは、Sprint(商標)、Verizon(商標)、およびAT&T(商標)をはじめとするさまざまな携帯電話プロバイダが提供しているShort Messaging Serviceを介して通知を処理する。SMSContactオブジェクトは、Webサイトに対してプロバイダ特有のHTTP POSTまたはGETを実行して、メッセージを送信する。ほぼ同じことを。電子メールをサービス・プロバイダに電子メールを送信することにより行うことが可能であるが、POSTではあと少しだけ制御機能を持つ。POSTは、プロバイダのWebインターフェイスが発達したときのソフトウェアの変化に対する支出を伝送する。通知および応答システム100は、任意選択により、ほとんどのサービス・プロバイダがメッセージの配送の終了後送出する確認電子メールを解釈することができる。SMSメッセージが正常に送信されたことを識別する他に、この電子メールでは、サービス・プロバイダのWebインターフェイスを変更し、SMSContactソフトウェアがアップグレードされるまで電子メールのSMS配送を使用することにシステムが戻れるかどうかを判別することができる。
FaxContact
通知および応答システム100は、たとえば、AvayaのAUDIXシステムのFAX 機能を使用して、FAX機に通知を送信するクラスを提供することができる。このクラスは、HTMLまたはテキスト・ページをTIFFイメージ・ファイルに変換し、FAX経由でイメージを宛先に送信する要求を生成する。このクラスはさらに、保留状態のFAXに関する情報を提供し、保留状態のFAXのある種の制御を行う単純なステータスおよび管理サーブレットを含む。
AudixVoiceContact
AudixVoiceContactオブジェクトは、受信者のボイス・メールボックスにテキスト・バージョンの通知を配送するように設計されている。一実施例の実装では、IBM Corp.のViaVoice(商標)製品を使用して実現されており、メッセージをオーディオ・ファイルに落とし、その後、FaxContactと本質的に同じメカニズムを使用してAUDIXサーバに送信する。
SIPContact
SIPContactクラスは、通知および応答システム100をSIP(Session Initiation Protocol)対応のエンド・ポイントに接続する。Session Initiation Protocol(SIP)は、たとえば、M.Handley et al.「SIP:Session Initiation Protocol」、RFC 2543、1999年3月で説明されている。SIPはInternet Engineering Taskforce(IETF)によって、各種通信セッションのセットアップおよび制御のため、定義されている比較的新しいプロトコルである。
このために、SIPContactクラスは通知および応答システム100からメッセージを受信するSIP Execution Environment(SEE)と呼ばれるコンポーネントに依存している。メッセージには、受信者のSIPアドレス、媒体連絡識別子、要求識別子、およびこの要求に対する利用可能な媒体タイプおよび人間の言語のリストが含まれる。その後、SEEは、SIPアドレスを受け取り、SIPプロトコルに従ってアドレスに対して「invite」を実行して、受信者との連絡を確立する。さらに、SEEは、受信者デバイスから、受信者の好ましい媒体および人間の言語を示すOKメッセージを受信する。SEEは、後述のXFS要求を実行し、利用可能なもののすでに用意されているリストから媒体連絡識別子、要求識別子、およびこの要求に対する好ましい媒体タイプおよび人間の言語を供給する。XFS要求により、受信者のSIPの環境設定に従って、受信者に通知するため適切に書式化されたコンテンツを返す。この手法では、SEEが目的の形式のそれぞれについてXFSを1回呼び出せるようにすることで、複数の形式を受け取ることを優先するデバイスをサポートする(画面とオーディオを備えるデバイスもある)。
一実施例では、SEEでは、Microsoft XP(商標)softphoneにインスタント・メッセージを送信したり電話をかけたりすること、呼制御プロトコルがSIPに変更された(H.323の代わりに)(SIPプロトコル・サポートで強化されたバージョンのMultiVantage(商標)呼処理ソフトウェアを介して)SIP 対応Avaya 4624(商標)IP電話、デジタルおよびアナログ電話をかけること、インスタント・テキスト・メッセージを赤外線機能を持ち、呼制御プロトコルがSIPに変更された(H.323の代わりに)SIP対応Avaya 4624(商標)IP電話をかけること、呼制御プロトコルがSIPで置き換えられた(H.323の代わりに)実験的SIP対応Avaya 4630(商標)IPテレビ電話でWebページをポップすることができる。
SIPは、本発明の通知および応答システム100をさまざまな形で補完する。特に、SIPは、受信者が1つのサーバ上で自分の連絡の環境設定を設定し、それらの環境設定が自分の連絡先に適用されるようにするメカニズムを提供する。SIP対応の受信者はSIPを介して自分の環境設定を表すことができるが、従来の受信者はそれでも、通知および応答システム100内の個々の通信フローを定義することができる。受信者がSIPメカニズムを使用して、通知の受信方法と受信時期を制御し、その一方で、通知および応答システム100内の通信フローにより非SIPエンド・ポイントおよびSIP指定の好ましいエンド・ポイントに通知を送信する方法と時期を決定することが予想される。つまり、ちょうどSIPおよび統合メッセージングでメッセージの受信方法を制御できるようにするのと同じように、通知および応答システム100は企業がメッセージを送出する方法を制御する。メッセージの受信方法に対するSIPの制御は、本明細書の開示により、通信フロー式および通信フロー規則の機能により強化することができることに留意されたい。
SIPContactクラスではさらに、通知および応答システム100のアーキテクチャのいくつかの利点を示している。特に、通知および応答システム100内の通知メッセージのコンテンツは、Webブラウザまたは電話ブラウザにより、またはXFSと呼ばれるフォーム・サーブレットを、以下のように、要求と連絡される受信者およびデバイスを識別する2つの引数を付けて呼び出すことにより、MediaContactで取り出すことができる。
http://xui/XFS?Rid=xui−1234−1&Cid=1
ただし、Ridは要求ID、cidは媒体連絡IDである。この2つを合わせると、受信者を識別するのに十分である。XFSでは、単純に、要求マネージャ1200を使用して、適切な要求を取り出しており、これはさらに、通知メッセージのURLを取得するのにも使用されている。その後、このメッセージは、取り出され、応答をリダイレクトし、メッセージを個人化するように書き換えられ、そして、ブラウザまたは他の宛先に転送される。
複数の言語および媒体タイプをサポートするために、望んでいる言語およびMIMEタイプを指定する2つの追加パラメータを受け付けるようにXFSサーブレットを修正することができる。たとえば、より汎用的なバージョンのXFSでは、次のように、特定の言語および形式タイプを取り出すことができる。
http://xui/XFS?Rid=xui−1234−1&Cid=1&Ctype=text/plain&Language=ENU
これは、英語のプレーン・テキスト・バージョンの要求「xui−1234−1」が必要であることを指定している。
通知および応答システム100の例では、電話を介した音声メッセージおよび画面上のWebページ・ポップとして、2つの方法で同時にSIP対応Avayaテレビ電話に通知を配送する。これは、テレビ電話でSEEに対して、Webポップとオーディオ接続の両方を扱えることを指定させることにより行われた。SEEは、次に、以下のようにXFSを2回呼び出すが、最初にHTMLページを取り出し、2回目はVXMLページを取り出す。
http://xui/XFS?Rid=xui−1234−1&Cid=1&Ctype=text/html&Language=ENU、
http://xui/XFS?Rid=xui−1234−1&Cid=1&Ctype=text/vxml&Language=ENU
すでに述べたように、通知および応答システム100を使用すると、アプリケーション110(要求者)は質問をし、目的の応答のタイプを指定し、電子メール経由で受信者から照合された応答群を受け取ることができる。図14は、アプリケーション110でチーム会合の要求のパラメータを指定することができるWebフォーム1400を示している。図14の例では、Joannは会合をスケジュールする要求を「YangQian」と「Petsche」に送信している。これらの受信者が会合の時間と場所について同意した場合、要求はマネージャ(cmk)に転送され、出席の確認が行われる。生成された要求は、適宜、異なる媒体連絡を介して、指示された受信者に送信される。要求にはyesボタンとnoボタンがあり、その要求に応答する。図15は、要求のコンパイルした結果を示している。図15に示されているように、Petscheは会合に出席することができるが、YangQianは会合に出席することができず、マネージャに連絡が取られなかった。
図16に示されている他の例では、要求者は、4時間のうちに好ましい顧客に割り当てる新会社のIPOのブロック割り当てで株式を提供する。時間的制約条件が、名前付き通信フローPreferredCustomersに適用される。PreferredCustomersは、受信者の並行結合に変換される。要求者は、要求の中の一連のオプションを自分の最良の顧客に与える。電子メールの環境設定を指定している名前付き通信フローPreferredCustomersによって定義された各受信者により受信される電子メール・バージョンの要求が図17に示されている。照合された応答は、すべての受信者が応答するとすぐに、または4時間の申し込み期間が終了するとすぐに返される。受信者が4時間のうちに応答できず、その後、要求を表示または応答しようとすると、適切なメッセージが表示され、返信が求められることも、受け付けられることもない。
「Reverse 911」と呼ばれる、本発明の他の実施例では、通知および応答システム100は緊急911応答を送ることができる。たとえば、学校で緊急の問題が発生した場合に親に通知するため、通信フロー式および規則を定義することができる。このような場合、学校側が学校にいるそれぞれの子供の親または保護者に連絡を取る必要がある緊急事態に備えて必要な資源を整理しておくことは困難である。本発明のReverse 911システムは、親と連絡を取るための自動化手法を実現し、また不適切なあるいは不正な使用を防止し、誤った警報を最小限に抑えるための重要な予防対策を講じることもできる。Reverse 911システムで、親が緊急時にサービス・プロバイダと連絡を取るための自分の環境設定を登録する必要がある。学校では、いったんアクティブ化されると、Webインターフェイスまたは電子メールを使用して、すべての親との連絡を並行して開始することができる。通知は、任意選択により、親がメッセージの受信の受領通知を行うためのボタンを備えることができる。さらに、学校側では、通知を親に送信する前に満たされていなければならない本明細書で説明した手法を使用して承認プロセス要求を指定し、さらに他のセキュリティ機能を利用してこのセキュリティの機能を高めることができる(たとえば、要求者の検証を行う対策が行われているログインおよびアクセス制御)。このようにして、本発明は、「ループ内に人を入れる」セキュリティを実現することができる。
同じReverse 911システムを他のバリエーションでも採用でき、たとえば、赤十字や政府機関が危機の際に献血者を見つけ、スケジュールを立てるのを支援したり、化学物質流出などの特定の災害に関して近隣の居住者に連絡するのを支援することができるが、本明細書の開示に基づき、当業者には明白なことであろう。
「適応型スケジューリング」と呼ぶ本発明のさらに他の実施例では、通知および応答システム100は、スケジュールの変更を指定受信者に通知することができる。たとえば、列車または航空機などの大量輸送手段が遅れている場合、または通勤者が会合への途中で交通渋滞に巻き込まれた場合、スケジュールの変更を関係当事者に通知し、参加者のスケジュールに対する適切な改訂を調整するように通知および応答システム100を構成することができる。たとえば、本明細書で説明しているカレンダー・エージェント手法では、このようなスケジュールの改訂を自動的に行うようにできる。乗客は、たとえば、=「Flight Information*」という表題の電子メール・メッセージを受信した場合に開始される通信フロー規則を指定することができる。通信フロー規則では、リムジン・サービス、同僚、または配偶者など、遅れが発生した場合の連絡先に関する情報を提供することが。通知により、影響を受ける受信者に特有の情報を提供することができる。たとえば、リムジン・サービスへの通知では、代替えピックアップ時間を要求し、同僚への通知では、会合の再スケジュール(たとえば、カレンダー・エージェントを使用する)または遅れた乗客の不在の会合に同僚が出席する(delegates機能を使用する)ことを要求することができる。
当業で知られているように、本明細書で説明した方法および装置は、それ自体コンピュータ読み取り可能コード手段が実現されているコンピュータ読み取り可能媒体を備える製造品として配布することができる。コンピュータ読み取り可能プログラム・コード手段は、コンピュータ・システムとともに動作し、これにより、ステップのすべてまたは一部を実行し、本明細書で説明している方法を実行するか、または本明細書で説明している装置を製作することができる。コンピュータ読み取り可能媒体は記録可能媒体(たとえば、フロッピー(登録商標)・ディスク、ハード・ドライブ、コンパクト・ディスク、またはメモリ・カード)であるか、または伝送媒体(たとえば、光ファイバ、World Wide Web、ケーブル、または時分割多重アクセス、符号分割多重アクセス、またはその他の無線周波チャネルを使用する無線チャネルを含むネットワーク)とすることができる。コンピュータ・システムとともに使用するのに好適な情報を格納できる媒体が知られているかまたは開発されていればそれも使用できる。コンピュータ読み取り可能コード手段は、磁気媒体上の磁気的なバリエーションまたはコンパクト・ディスクの表面上の高さバリエーションなどコンピュータが命令およびデータを読み込むためのメカニズムである。
本明細書で説明しているコンピュータ・システムをおよびサーバは、それぞれ、本明細書で開示されている方法、ステップ、および機能を実装するように関連するプロセッサを構成するメモリを備える。メモリは分散させることも、ローカル・メモリとすることもでき、さらにプロセッサも分散されることも、単一とすることもできる。メモリは、電気的メモリ、磁気メモリ、光メモリ、あるいはこれらまたはその他の種類のストレージ・デバイスの組み合わせとして実装することもできる。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス指定可能空間内のアドレスに対し読み書きできる情報を包含するものとして十分広く解釈することができる。この定義を用いると、関連するプロセッサはネットワークから情報を取り出すことができるため、ネットワークに関する情報はそのままメモリ内にある。
本明細書で示し、説明した実施形態およびバリエーションは、単に、本発明の原理を説明しているに過ぎず、また当業者であれば本発明の精神および範囲から逸脱することなくさまざまな修正を加えることができることは理解されるであろう。
本発明の特徴を組み込んだ通知および応答システムの図である。 図1の通知および応答システムの詳細な図である。 図2の要求マネージャによって使用される要求データベースの例からのサンプル・テーブルである。 本発明の特徴を組み込んだ3値論理エバリュエータを説明する流れ図である。 図2の受信者環境設定およびロール・データベースの例からのサンプル・テーブルである。 多数の受信者の個人的名前付けコンテキストを示す図5の受信者環境設定およびロール・データベースからのLDAPディレクトリ・ツリーの一部の図である。 図5の受信者環境設定およびロール・データベースの他の部分からのサンプル・テーブルである。 本発明による通信フロー式の一組のプリミティブの例を示すサンプル・テーブルである。 図8に示されているさまざまなプリミティブに対する真理値表の図である。 図8に示されているさまざまなプリミティブに対する真理値表の図である。 図8に示されているさまざまなプリミティブに対する真理値表の図である。 図8に示されているさまざまなプリミティブに対する真理値表の図である。 図8に示されているさまざまなプリミティブに対する真理値表の図である。 図8に示されているそれぞれのプリミティブのカウントを集計したサンプル・テーブルである。 図2に示されている要求マネージャと通信フロー・マネージャとの間の相互作用を示す図である。 図11の要求マネージャの動作を詳しく説明する流れ図である。 図11の要求マネージャの動作を詳しく説明する流れ図である。 図11の通信フロー・マネージャの動作を詳しく説明する流れ図である。 アプリケーションでチーム会合の要求のパラメータを指定することができるWebフォーム例の図である。 図14の要求のコンパイルした結果を示す図である。 要求側が、4時間のうちに好ましい顧客に割り当てる新会社の新規株式公開(IPO)のブロック割り当てで株式を提供する場合の例を示す図である。 図16の要求に応じて特定の受信者に送信される電子メール・メッセージの例の図である。

Claims (70)

  1. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための方法であって、
    前記少なくとも1人の受信者から応答を受信するステップと、
    前記応答に基づき前記通信フロー内の少なくとも1つの経路を選択するステップを含む方法。
  2. さらに前記メッセージ内のreply−toアドレスを修正し、前記応答が目的の宛先に必ず届くようにするステップを含む請求項1に記載の方法。
  3. 前記修正されたreply−toアドレスにより、媒介を前記送信者のエージェントとして使用できるようになっている請求項2に記載の方法。
  4. 前記修正されたreply−toアドレスにより、媒介が前記送信者に応答処理サービスを提供できるようになっている請求項2に記載の方法。
  5. 前記選択するステップは、1人または複数の受信者へのその後続く通信を決定するステップを含む請求項1に記載の方法。
  6. 前記選択するステップにおいて、受信した応答を集計し、定義済みメッセージ完了条件が満たされているかどうかを評価する請求項1に記載の方法。
  7. 前記選択するステップは、応答情報を前記送信者に返す完了ステータスを決定するステップを含む請求項1に記載の方法。
  8. 前記応答情報が前記送信者により指定された形式で前記送信者に供給されるようになっている請求項7に記載の方法。
  9. 前記メッセージが前記対応する少なくとも1人の受信者により指定された環境設定情報に従って前記少なくとも1人の受信者に供給される請求項1に記載の方法。
  10. 前記メッセージの内容は、前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して得られる請求項1に記載の方法。
  11. さらに、前記通信フローを評価するステップを含み、前記通信フローは前記少なくとも1人の受信者により定義された少なくとも1つの通信フロー規則を参照し、前記通信フロー規則は前記受信者の少なくとも1つの環境設定を指定するステップを含む請求項1に記載の方法。
  12. 前記通信フローは、前記少なくとも1人の受信者と関連する企業により指定された通りの前記少なくとも1人の受信者の少なくとも1つの環境設定を参照する請求項1に記載の方法。
  13. 前記通信フロー規則は、少なくとも1つの時間条件を含む請求項11に記載の方法。
  14. 前記通信フロー規則は、少なくとも1つの媒体環境設定を含む請求項11に記載の方法。
  15. 前記通信フロー規則は、少なくとも1つの人間の言語タイプの環境設定を含む請求項11に記載の方法。
  16. 前記通信フロー規則は、前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して評価される請求項11に記載の方法。
  17. 前記通信フローは、前記メッセージを受信するため前記少なくとも1人の受信者の少なくとも1つの媒体環境設定を参照し、前記少なくとも1つの媒体環境設定を中央位置に格納する請求項11に記載の方法。
  18. 前記通信フローは、SIPプロキシで呼処理を制御する請求項11に記載の方法。
  19. 前記SIPプロキシは、着信したSIP INVITEメッセージを評価し、前記少なくとも1人の受信者について適切な呼経路選択規則を選択する請求項18に記載の方法。
  20. 通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための方法であって、
    前記送信者から前記メッセージを受信することと、
    前記通信フローを評価し、前記通信フローにより前記メッセージを配送するための前記送信者の少なくとも1つの環境設定を指定することと、
    前記送信者の前記環境設定に基づき前記メッセージを処理することを含む方法。
  21. さらに、前記送信者により指定された形式で応答情報を前記送信者に供給するステップを含む請求項20に記載の方法。
  22. 前記メッセージの内容は、前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して得られる請求項20に記載の方法。
  23. さらに、前記通信フローを評価するステップを含み、前記通信フローは前記少なくとも1人の受信者により定義された少なくとも1つの通信フロー規則を参照し、前記通信フロー規則は前記受信者の少なくとも1つの環境設定を指定するステップを含む請求項20に記載の方法。
  24. 前記通信フローは、前記少なくとも1人の受信者と関連する企業により指定された通りの前記少なくとも1人の受信者の少なくとも1つの環境設定を参照する請求項20に記載の方法。
  25. 前記通信フロー規則は、少なくとも1つの時間条件を含む請求項23に記載の方法。
  26. 前記通信フロー規則は、少なくとも1つの媒体環境設定を含む請求項23に記載の方法。
  27. 前記通信フロー規則は、少なくとも1つの人間の言語タイプの環境設定を含む請求項23に記載の方法。
  28. 前記通信フロー規則は、前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して評価される請求項23に記載の方法。
  29. 前記通信フローは、前記メッセージを受信するため前記少なくとも1人の受信者の少なくとも1つの媒体環境設定を参照し、前記少なくとも1つの媒体環境設定を中央に一括して格納する請求項23に記載の方法。
  30. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための方法であって、
    前記送信者から前記メッセージを受信することと、
    前記通信フローを評価し、前記メッセージを処理する方法を指示する少なくとも1つのプリミティブ・キーワードを含む通信フロー式により前記通信フローを制御することと、
    前記通信フロー式に基づき前記メッセージを処理することを含む方法。
  31. 前記プリミティブ・キーワードは、2つの指定したオペランドAおよびBに対し同時に連絡を取らなければならないこと、および通信フロー式はAおよびBの両方が正常に応答した場合かつその場合に限り成功することを示す請求項30に記載の方法。
  32. 前記プリミティブ・キーワードは、2つの指定したオペランドAおよびBについて、Aが正常に応答した場合にのみBと連絡を取らなければならないこと、および通信フロー式はAおよびBの両方が正常に応答した場合かつその場合に限り成功することを示す請求項30に記載の方法。
  33. 前記プリミティブ・キーワードは、2つの指定したオペランドAおよびBに対し同時に連絡を取らなければならないこと、および通信フロー式はAまたはBのいずれかが正常に応答する限り成功することを示す請求項30に記載の方法。
  34. 前記プリミティブ・キーワードは、2つの指定したオペランドAおよびBについて、Aと連絡を取ろうとして失敗した場合のみBと連絡を取らなければならないこと、および通信フロー式はAまたはBのいずれかが正常に応答した場合に成功することを示す請求項30に記載の方法。
  35. 前記プリミティブ・キーワードは、2つの指定したオペランドAおよびBに対し同時に連絡を取らなければならないこと、および通信フロー式は応答する第1の連絡の値を持つことを示す請求項30に記載の方法。
  36. 前記プリミティブ・キーワードは、2つの指定したオペランドAおよびBについて、Aと連絡を取ろうとして失敗した場合のみBと連絡を取らなければならないこと、および通信フロー式は第1のnon−maybe応答の値を持つことを示す請求項30に記載の方法。
  37. 前記プリミティブ・キーワードは、複数の受信者と同時に連絡を取らなければならないこと、および通信フロー式は成功応答の特定のしきい値を受信した場合に成功することを示す請求項30に記載の方法。
  38. 前記プリミティブ・キーワードは、複数の受信者と順次連絡を取らなければならないこと、および通信フロー式は成功応答の特定のしきい値を受信した場合に成功することを示す請求項30に記載の方法。
  39. 前記プリミティブ・キーワードは、並行して複数の受信者と連絡を取らなければならないことを示す請求項30に記載の方法。
  40. さらに、未処理要求が完了したときに未処理要求を取り消すステップを含む請求項39に記載の方法。
  41. 前記プリミティブ・キーワードは、順次複数の受信者と連絡を取らなければならないことを示す請求項30に記載の方法。
  42. 前記プリミティブ・キーワードは、1つまたは複数の潜在的オペランド値を反転しなければならないことを示す請求項30に記載の方法。
  43. 前記通信フロー式は、3値論理を使用して評価される請求項30に記載の方法。
  44. 前記3つの可能な論理値は、通知失敗(maybe)、応答失敗(false)、および応答成功(true)である請求項43に記載の方法。
  45. 前記通信フロー式は、前記通信フロー式が終了しなければならない時期を指示する成功検査を含む請求項30に記載の方法。
  46. 前記成功検査で、前記少なくとも1人の受信者から受信した応答に含めることができる変数に対する3値論理式を指定する請求項45に記載の方法。
  47. 前記成功検査で、受信したすべての応答について集計を実行し、前記応答を処理する請求項45に記載の方法。
  48. 前記通信フロー式では、内容を段階的に次のレベルに引き上げることができ、前記段階的引き上げの前に現在のレベルと関連する保留メッセージを取り消す請求項30に記載の方法。
  49. 前記通信フロー式では、内容を段階的に次のレベルに引き上げることができ、前記段階的引き上げの前に現在のレベルと関連する保留メッセージを保持する請求項30に記載の方法。
  50. 前記通信フロー式は、前記送信者と前記少なくとも1人の受信者の環境設定を定義する請求項30に記載の方法。
  51. 前記通信フロー式は、前記少なくとも1人の受信者への配送時に評価される請求項30に記載の方法。
  52. 前記通信フロー式は、前記少なくとも1人の受信者により定義された通信フロー規則を参照し、前記通信フロー規則は、前記送信者の特性に合わせて前記通信フローを調整することができる請求項30に記載の方法。
  53. 前記通信フロー式は、前記少なくとも1人の受信者により定義された通信フロー規則を参照し、前記通信フロー規則は、前記メッセージの特性に合わせて前記通信フローを調整することができる請求項30に記載の方法。
  54. 前記通信フロー式は、前記少なくとも1人の受信者が前記メッセージに応答しない場合に実行する1つまたは複数のアクションを指示する請求項30に記載の方法。
  55. 前記通信フロー式により、前記少なくとも1人の受信者が前記メッセージを他の受信者に委託することができる請求項30に記載の方法。
  56. 前記通信フロー式により、前記メッセージを読み込んだ後、前記少なくとも1人の受信者が前記メッセージを他の受信者に委託することができる請求項30に記載の方法。
  57. 前記通信フロー式は、時間的制約条件58を使用して、前記少なくとも1人の受信者の環境設定を指示する請求項30に記載の方法。
  58. 前記通信フロー式は、時間的領域を使用して、前記少なくとも1人の受信者の環境設定を指示する請求項30に記載の方法。
  59. 通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための方法であって、
    前記送信者から前記メッセージを受信することと、
    前記通信フローを評価し、前記通信フローは前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して評価されることと、
    前記送信者の前記環境設定に基づき前記メッセージを処理することを含む方法。
  60. さらに、前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して前記メッセージの内容を取得するステップを含む請求項59に記載の方法。
  61. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための方法であって、
    前記送信者から前記メッセージを受信することと、
    前記通信フローを評価し、前記メッセージを処理する方法を指示する通信フロー式を含む通信フロー式により前記通信フローを制御し、前記通信フロー式は3値論理を使用して評価されることと、
    前記通信フロー式に基づき前記メッセージを処理することを含む方法。
  62. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    コンピュータ読み取り可能コードを格納するメモリと、
    前記メモリに結合され動作可能なプロセッサを備え、前記プロセッサは前記コンピュータ読み取り可能コードを実行するように構成され、前記コンピュータ読み取り可能コードは、
    前記少なくとも1人の受信者から応答を受信し、
    前記応答に基づき前記通信フロー内の少なくとも1つの経路を選択するように構成されていることを含むシステム。
  63. 通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    コンピュータ読み取り可能コードを格納するメモリと、
    前記メモリに結合され動作可能なプロセッサを備え、前記プロセッサは前記コンピュータ読み取り可能コードを実行するように構成され、前記コンピュータ読み取り可能コードは、
    前記送信者から前記メッセージを受信し、
    前記通信フローを評価し、前記通信フローにより前記メッセージを配送するための前記送信者の少なくとも1つの環境設定を指定し、
    前記送信者の前記環境設定に基づき前記メッセージを処理するように構成されているシステム。
  64. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    コンピュータ読み取り可能コードを格納するメモリと、
    前記メモリに結合され動作可能なプロセッサを備え、前記プロセッサは前記コンピュータ読み取り可能コードを実行するように構成され、前記コンピュータ読み取り可能コードは、
    前記送信者から前記メッセージを受信し、
    前記通信フローを評価し、前記メッセージを処理する方法を指示する少なくとも1つのプリミティブ・キーワードを含む通信フロー式により前記通信フローを制御し、
    前記通信フロー式に基づき前記メッセージを処理するように構成されているシステム。
  65. 通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    コンピュータ読み取り可能コードを格納するメモリと、
    前記メモリに結合され動作可能なプロセッサを備え、前記プロセッサは前記コンピュータ読み取り可能コードを実行するように構成され、前記コンピュータ読み取り可能コードは、
    前記送信者から前記メッセージを受信し、
    前記通信フローを評価し、前記通信フローは前記メッセージが前記少なくとも1人の受信者に送られるのとほとんど時期を接して評価され、
    前記送信者の前記環境設定に基づき前記メッセージを処理するように構成されているシステム。
  66. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    コンピュータ読み取り可能コードを格納するメモリと、
    前記メモリに結合され動作可能なプロセッサを備え、前記プロセッサは前記コンピュータ読み取り可能コードを実行するように構成され、前記コンピュータ読み取り可能コードは、
    前記送信者から前記メッセージを受信し、
    前記通信フローを評価し、前記メッセージを処理する方法を指示する通信フロー式により前記通信フローを制御し、前記通信フロー式は3値論理を使用して評価され、
    前記通信フロー式に基づき前記メッセージを処理するように構成されているシステム。
  67. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    前記少なくとも1人の受信者から応答を受信する手段と、
    前記応答に基づき前記通信フロー内の少なくとも1つの経路を選択する手段を備えるシステム。
  68. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るためのシステムであって、
    前記送信者から前記メッセージを受信する手段と、
    前記通信フローを評価し、前記メッセージを処理する方法を指示する少なくとも1つのプリミティブ・キーワードを含む通信フロー式により前記通信フローを制御する手段と、
    前記通信フロー式に基づき前記メッセージを処理する手段を備えるシステム。
  69. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための製造品であって、
    コンピュータ読み取り可能コード手段が実装されているコンピュータ読み取り可能媒体を備え、前記コンピュータ読み取り可能プログラム・コード手段は、
    前記少なくとも1人の受信者から応答を受信するステップと、
    前記応答に基づき前記通信フロー内の少なくとも1つの経路を選択するステップを備える製造品。
  70. 複数の潜在的経路を持つ通信フローにより送信者から少なくとも1人の受信者にメッセージを送るための製造品であって、
    コンピュータ読み取り可能コード手段が実装されているコンピュータ読み取り可能媒体を備え、前記コンピュータ読み取り可能プログラム・コード手段は、
    前記送信者から前記メッセージを受信するステップと、
    前記通信フローを評価するステップであって、前記メッセージを処理する方法を指示する少なくとも1つのプリミティブ・キーワードを含む通信フロー式により前記通信フローが制御されるステップと、
    前記通信フロー式に基づき前記メッセージを処理するステップを含む製造品。
JP2002590633A 2001-05-15 2002-05-14 自動的な通知および応答用の方法および装置 Pending JP2005515519A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29108701P 2001-05-15 2001-05-15
PCT/US2002/015513 WO2002093886A2 (en) 2001-05-15 2002-05-14 Method and apparatus for automatic notification and response

Publications (2)

Publication Number Publication Date
JP2005515519A true JP2005515519A (ja) 2005-05-26
JP2005515519A5 JP2005515519A5 (ja) 2005-12-22

Family

ID=23118768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002590633A Pending JP2005515519A (ja) 2001-05-15 2002-05-14 自動的な通知および応答用の方法および装置

Country Status (7)

Country Link
EP (1) EP1391102A2 (ja)
JP (1) JP2005515519A (ja)
KR (1) KR100979073B1 (ja)
CN (1) CN1520572A (ja)
AU (1) AU2002303765A1 (ja)
CA (1) CA2447436A1 (ja)
WO (1) WO2002093886A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237908A (ja) * 2009-03-31 2010-10-21 Trans Ware Co 電子メール配送システム、電子メール配送方法、電子メール配送サーバ、データベース統合サーバおよび電子メール配送プログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868659B2 (en) 2001-05-15 2014-10-21 Avaya Inc. Method and apparatus for automatic notification and response
US8495163B2 (en) 2004-03-18 2013-07-23 Avaya, Inc. Method and apparatus for a publish-subscribe system with templates for role-based view of subscriptions
US7119716B2 (en) 2003-05-28 2006-10-10 Legalview Assets, Limited Response systems and methods for notification systems for modifying future notifications
KR100595444B1 (ko) * 2004-01-06 2006-07-03 삼성전자주식회사 빌딩설비의 원격관리시스템
US20050209990A1 (en) * 2004-03-18 2005-09-22 Ordille Joann J Method and apparatus for a publish-subscribe system with access controls
DE102004047125B4 (de) * 2004-09-27 2007-12-27 Cycos Ag Verfahren und Kommunikationsserver zum Versenden einer elektronischen Nachricht
KR100690787B1 (ko) * 2005-02-25 2007-03-09 엘지전자 주식회사 무선통신 시스템에서 이벤트 통지방법
US7634722B2 (en) 2005-03-08 2009-12-15 Aspect Software, Inc. Reversible logic for widget and markup language generation
EP1739941A1 (en) * 2005-07-01 2007-01-03 Hewlett-Packard Development Company, L.P. A method and apparatus for routing signalling messages between an IP and an SS7 network
CN1988546A (zh) * 2006-12-15 2007-06-27 华为技术有限公司 获取会话起始协议消息传输路径的方法及系统
KR20090019665A (ko) 2007-08-21 2009-02-25 삼성전자주식회사 구독자의 선호도를 참조하여 sip을 기반으로 하는이벤트 통지를 제어하는 시스템 및 방법
JP4623109B2 (ja) 2008-02-28 2011-02-02 ブラザー工業株式会社 電話装置
KR102055260B1 (ko) * 2013-08-30 2019-12-12 에스케이텔레콤 주식회사 상태 정보를 업데이트하기 위한 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
US10084872B2 (en) 2015-07-16 2018-09-25 International Business Machines Corporation Behavior based notifications
CN108829737B (zh) * 2018-05-21 2021-11-05 浙江大学 基于双向长短期记忆网络的文本交叉组合分类方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH088967A (ja) * 1994-06-22 1996-01-12 Oki Electric Ind Co Ltd 回覧メール管理方法
JPH09185655A (ja) * 1996-01-08 1997-07-15 Hitachi Ltd ワークフロー管理システムおよびワークフロー管理方法
JPH10171729A (ja) * 1996-12-13 1998-06-26 Canon Inc データ処理システムおよびデータ処理システムのデータ伝送処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
WO2000069132A1 (en) * 1999-05-11 2000-11-16 Vista Group Pty Limited Telecommunications system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL111154A0 (en) * 1993-10-21 1994-12-29 Martino Ii John A Systems and methods for electronic messaging
US5509000A (en) * 1994-06-10 1996-04-16 Motorola, Inc. Method and apparatus for routing information in a communication system
US5742905A (en) * 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
WO2000065786A1 (en) * 1999-04-26 2000-11-02 Stanford Global Link Corporation Global unified messaging system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH088967A (ja) * 1994-06-22 1996-01-12 Oki Electric Ind Co Ltd 回覧メール管理方法
JPH09185655A (ja) * 1996-01-08 1997-07-15 Hitachi Ltd ワークフロー管理システムおよびワークフロー管理方法
JPH10171729A (ja) * 1996-12-13 1998-06-26 Canon Inc データ処理システムおよびデータ処理システムのデータ伝送処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
WO2000069132A1 (en) * 1999-05-11 2000-11-16 Vista Group Pty Limited Telecommunications system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
垂水浩幸 他: "ルールベースの電子メールによるワークフローの実現", 情報処理学会論文誌, vol. 第36巻 第6号, JPN6009007625, 15 June 1995 (1995-06-15), JP, pages 1322 - 1331, ISSN: 0001254644 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237908A (ja) * 2009-03-31 2010-10-21 Trans Ware Co 電子メール配送システム、電子メール配送方法、電子メール配送サーバ、データベース統合サーバおよび電子メール配送プログラム

Also Published As

Publication number Publication date
KR100979073B1 (ko) 2010-08-31
CA2447436A1 (en) 2002-11-21
WO2002093886A3 (en) 2003-06-19
CN1520572A (zh) 2004-08-11
KR20040000465A (ko) 2004-01-03
EP1391102A2 (en) 2004-02-25
AU2002303765A1 (en) 2002-11-25
WO2002093886A2 (en) 2002-11-21

Similar Documents

Publication Publication Date Title
US8868659B2 (en) Method and apparatus for automatic notification and response
US7436947B2 (en) Method and apparatus for automatic notification and response based on communication flow expressions
US8180722B2 (en) Method and apparatus for data mining within communication session information using an entity relationship model
CA2436086C (en) Context aware call handling system
US8064585B2 (en) Architecture and implementation for control of context aware call processing with local feature definition
US7096232B2 (en) Calendar-enhanced directory searches including dynamic contact information
US7936863B2 (en) Method and apparatus for providing communication tasks in a workflow
US7543032B2 (en) Method and apparatus for associating messages with data elements
US7792773B2 (en) Method and system for enabling automated and real-time discovery of skills available to agents and systems in a multimedia communications network
US20020103687A1 (en) System and method for ordering contract workers
US20050165785A1 (en) Social network surfing
US20070124296A1 (en) Generating search results based on determined relationships between data objects and user connections to identified destinations
USRE45959E1 (en) Method and system for enabling automated and real-time discovery of skills available to agents and systems in a multimedia communications network
US20040037396A1 (en) Generation of availability indicators from call control policies for presence enabled telephony system
JP2005515519A (ja) 自動的な通知および応答用の方法および装置
US20050015293A1 (en) Collaboration enhanced workflow system
EP1662817B1 (en) System and method for providing information on a manner of communicating
CN101459736A (zh) 用于生成预期能力数据的方法和系统
Choi Context based delivery of voice messages

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090522

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090623

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090928