KR20040000465A - Method and apparatus for automatic notification and response - Google Patents

Method and apparatus for automatic notification and response Download PDF

Info

Publication number
KR20040000465A
KR20040000465A KR10-2003-7014910A KR20037014910A KR20040000465A KR 20040000465 A KR20040000465 A KR 20040000465A KR 20037014910 A KR20037014910 A KR 20037014910A KR 20040000465 A KR20040000465 A KR 20040000465A
Authority
KR
South Korea
Prior art keywords
communication flow
message
recipient
sender
response
Prior art date
Application number
KR10-2003-7014910A
Other languages
Korean (ko)
Other versions
KR100979073B1 (en
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 KR20040000465A publication Critical patent/KR20040000465A/en
Application granted granted Critical
Publication of KR100979073B1 publication Critical patent/KR100979073B1/en

Links

Classifications

    • G06Q50/40
    • 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

Abstract

개시된 통지 및 응답 시스템은 많은 서로 다른 매체를 사용하여 애플리케이션들이 수신자들과 통신할 수 있게 한다. 통지 및 응답 시스템은 (i) 각 개개의 수신자에 의해 명시된 매치를 사용하여 하나 이상의 수신자들에게 요청들을 보내고, (ii) 응답들을 수집하여 처리하고, (iii) 최종 목적지에 의해 명시된 매체에 의해 최종 목적지에 응답들을 보낸다. 애플리케이션들은 적어도 한 지원되는 사람의 언어와 매체 포맷으로 요청들을 프레임하고, 요청은 적합한 수신자(들)의 선호도들에 따라 이들에 보내진다. 통신 흐름 표현들은 소정의 요청에 대한 수신자들을 명시하고, 각 수신자가 요청을 받게 될 방법, 시간 및 장소를 명시한다. 요청들은 동적으로 갱신되며, 통신 흐름 표현의 파라미터들은 요청이 전달될 때까지는 평가되지 않는다. 통신 흐름 규칙들은 수신자의 통신 선호도들을 명시하여, 통신 흐름을 송신자의 특성, 토픽 혹은 스케쥴링 제약에 맞게 맞춘다. 통신 흐름 표현들은 3값의 논리, 즉 통지 실패(maybe), 응답실패(거짓), 및 응답성공(참)을 사용하여 평가된다. 프리미티브는 동시 혹은 순차 연락과, 성공 테스트 결과들의 논리 조합을 정의함으로써 서브-표현의 실행을 언제 종료할 것인가를 명시한다.The disclosed notification and response system uses many different media to enable applications to communicate with recipients. The notification and response system (i) sends requests to one or more recipients using a match specified by each individual recipient, (ii) collects and processes the responses, and (iii) finalizes the media specified by the final destination. Send responses to the destination. The applications frame the requests in at least one supported person's language and media format, and the request is sent to them according to the preferences of the appropriate recipient (s). Communication flow representations specify recipients for a given request, and how, when, and where each recipient will be requested. The requests are updated dynamically, and the parameters of the communication flow representation are not evaluated until the request is delivered. Communication flow rules specify the communication preferences of the receiver, tailoring the communication flow to the sender's characteristics, topics, or scheduling constraints. Communication flow representations are evaluated using three values of logic: notification failure (maybe), response failure (false), and response success (true). The primitive specifies when to terminate execution of the sub-expression by defining a logical combination of concurrent or sequential contact and success test results.

Description

자동 통지 및 응답 방법 및 장치{Method and apparatus for automatic notification and response}Method and apparatus for automatic notification and response

기업 애플리케이션들은 사람들에게 연락할 필요가 있고 연락을 행할 방법 및 어떤 응답-있다면-을 수집할 것인가에 대한 요구를 갖고 있다. 예를 들면, 애플리케이션들은 어떤 관심을 갖고 있는 모든 사람들, 혹은 특정 사람 리스트 혹은 한 사람에게 연락할 필요가 있을 수도 있다. 애플리케이션들은 위기에 처한 사람들에 즉각 연락할 것을 필요로 할 수도 있고 혹은 이들은 어떤 사람에게 적합한 시간에작업에 대해 상기시키기를 원할 수도 있다. 기업 애플리케이션들은, 연락 성공이란 것이 기업에서 정한 어떤 것인 경우, 연락을 성공하지 못하였을 때 무엇을 해야할 지에 대한 요구를 갖고 있다.Enterprise applications need to contact people and have a need for how to contact them and what responses, if any, to collect. For example, applications may need to contact all people with a certain interest, or a specific list of people or a person. Applications may require immediate contact with people at risk, or they may want to remind someone of their work at the right time. Enterprise applications have a need for what to do when a contact is not successful when contact success is something that is defined by the enterprise.

한편, 수신자들은 이들이 어떻게, 언제 연락될 것인가에 관한 그들 자신의 선호도를 갖고 있다. 예를 들면, 수신자들은 실시간 연락을 수립함에 있어 보다 융통성이 부여되도록, 사장이나 가족과 같은 특정한 사람들, 혹은 포춘 500 기업의 간부와 같이 특정한 관심을 나타내는 사람들을 원할 수도 있다. 또한, 수신자들은 주간 상태나 지출갱신과 같은 이미 알고 있는 작업들에 관한 연락을 일상적으로, 편한 시간 혹은 장소까지 미룰 수도 있다. 흔히, 수신자들의 선호들은 기업의 선호도들 혹은 특정의 애플리케이션의 구현과 맞지 않는다. 이러한 경우, 수신자들은 자신들의 선호도를 만족시키기 위해서 애플리케이션 제약들을 쉽게 처리할 방법을 모색해 내거나, 기업들의 처리가 방해되거나 심지어는 성가시다는 것을 알게 된다.Recipients, on the other hand, have their own preference as to how and when they will be contacted. For example, recipients may want specific people, such as a boss or family, or people who have a particular interest, such as executives of Fortune 500 companies, to be more flexible in establishing real-time contacts. Recipients can also postpone contact with the work they already know, such as weekly status or renewal of expenses, routinely, at a convenient time or place. Often, the receiver's preferences do not match the corporate preferences or implementation of the particular application. In this case, the receiver finds an easy way to handle application constraints to satisfy their preferences, or finds that the processing of enterprises is hindered or even cumbersome.

많은 통지 시스템들은 애플리케이션들이 하나 이상의 수신자들과 통신할 수 있게 제안 혹은 개발되었다. 그러나, 현존의 통지 시스템들은 통상 매체 및 기능으로 제한되어 있다. 예를 들면, 통지 시스템은 전자 메일 메시지를 셀룰라 전화 혹은 페이저로 보낼 수 있을 뿐이다. 또한, 현존의 통지 시스템들은 다른 통신 하부구조들의 적응적 사용을 지원하지 못한다. 예를 들면 WAP 포럼, "Wireless Access Protocol 1.2.1," June 2000에 기재된 WAP(Wireless Access Protocol)을 사용하는 것들과 같은 무선 서비스의 성장으로 인해서, 단지 한 장치에 연락하고 그럼으로써 셀룰라 전화에 웹 형태로 응답들을 넣고 받는 많은 통지 및 응답 서비스들을 개발하게 되었다.Many notification systems have been proposed or developed to allow applications to communicate with one or more recipients. However, existing notification systems are usually limited to media and functions. For example, the notification system can only send an e-mail message to a cell phone or pager. In addition, existing notification systems do not support the adaptive use of other communication infrastructures. For example, due to the growth of wireless services such as those using the Wireless Access Protocol (WAP) described in the WAP Forum, "Wireless Access Protocol 1.2.1," June 2000, only one device can be contacted and thus the Web on a cell phone. Many notification and response services have been developed to receive and receive responses in the form.

예를 들면 1999년 3월, M. Handley 등의 "SIP: Session Initiation Protocol, "RFC 2543에 기술된 바와 같은 SIP(Session Initiation Protocol)은 장치에 SIP의 URL(Uniform Resource Locator)를 등재시킴으로써 사용자들이 특정의 장치들에 연관지을 수 있는 레지스트리를 제공한다. 사용자와의 통신이 수립되게 동시에 혹은 순차적으로 소정의 사용자에 대해 레지스트리에 기록된 URL들 리스트에 연락하는 능력을 제공하는 많은 SIP 프록시들이 존재한다. 예를 들면, 2001년 11월 J. Lennox 및 H. Schulzrinne, "CPL: A language for User Control of Internet Telephony Services," Draft RFC draft-ietfiptel-cpl-05.txt에 기술된 바와 같은 CPL(Call Processing Language)는 SIP 프록시들용으로 제안된 언어이다.For example, in March 1999, M. Handley et al., "SIP: Session Initiation Protocol," Session Initiation Protocol (SIP), described in RFC 2543, allow users to register a SIP's Uniform Resource Locator (URL) on their device. It provides a registry that can be associated with specific devices. There are many SIP proxies that provide the ability to contact a list of URLs recorded in the registry for a given user simultaneously or sequentially to establish communication with the user. For example, call processing as described in J. Lennox and H. Schulzrinne, "A language for User Control of Internet Telephony Services," Draft RFC draft-ietfiptel-cpl-05.txt, November 2001. Language) is a proposed language for SIP proxies.

CPL로서, 사용자들은 송신자의 스트링들 및 타겟 주소들 혹은 INVITE 주요 내용의 해석 등, SIP INVITE 메시지(사용자와 연락을 수립하기 위해 SIP 프로토콜에 따라 사용되는)의 특징이 부여되어 있는 특정 URL을 선택하는 방법을 미리 명시할 수 있다. CLP은 또한 사용자들이 타임아웃을 명시할 수 있게 하므로, 특정 장치들에의 순차적인 일련의 INVITE 메시지들이 수신자와의 통신 수립을 시도할 때 시도될 수 있다. 또한, SIP에 의해서 각각의 SIP 장치 혹은 엔드포인트는 이의 사용자의 선호도들을, 가중치를 부여한 매체 유형 및 사람의 언어 리스트로서 명시할 수 있다. 송신자들은 이들이 사용할 수 있는 매체 유형들 및 사람의 언어로부터, 가장 가중치가 높은 매체 유형 및 사람 언어를 제공하도록 요청받는다. SIP 및CPL은 통신 결과를 해석하고 이 결과에 따라 다른 조치를 취하는 지원은 제공하지 못한다. 예를 들면, 일단 전화 호가 성공적으로 응답되었으면, SIP 및 CPL은 사용자가 전화를 끊었는지 아니면 실제로 요청에 응답하였는지 알아채지 못한다.As a CPL, users select a particular URL that is characterized by a SIP INVITE message (used according to the SIP protocol to establish contact with the user), such as the sender's strings and target addresses or interpretation of the INVITE subject matter. You can specify the method in advance. The CLP also allows users to specify a timeout, so a sequential series of INVITE messages to specific devices can be attempted when attempting to establish communication with the recipient. In addition, SIP allows each SIP device or endpoint to specify its user's preferences as a weighted media type and human language list. Senders are asked to provide the most weighted media type and human language from the media types and human language they can use. SIP and CPL cannot provide support for interpreting communication results and taking other actions based on these results. For example, once a telephone call is successfully answered, SIP and CPL do not know whether the user hung up or actually answered the request.

시스템을 통한 데이터 흐름 혹은 프로그램 흐름을 명시하는 충분한 기술들이 존재하지만, 통신 흐름을 명시하는데 사용할 수 있는 기술들은 통상 초보수준이다. 통신흐름은 요청자로부터 수신자들로의 경로이다. 통상, 이들 현존의 통신흐름 기술들은 요청에 대해 수신자를 명시하는 것을, 전자 메일 메시지를 메일박스에 혹은 메시지를 페이저에 보내는 것과 같은 어떤 선정된 연락방법과 같은 것이라 본다. 통신 흐름 경로는 흔히 두 당사자들 간의 단순한 접속으로 생각되지만, 최근의 통신 능력은 다양한 통신 흐름들을 가능하게 하고 있다. 예를 들면, 소정의 통신 흐름은 (i) 수신자들 혹은 수신자가 사용하는 장치들에 동시에 혹은 순차적으로 연락할 수 있거나, (ii) 모든 수신자들 혹은 단지 일부 수신자들이 요청에 응답하는 것을 기다릴 수 있거나, (iii) 통신 오류가 발생했을 때 다른 방도를 취할 수 있다.There are enough techniques to specify data flow or program flow through the system, but the techniques that can be used to specify the communication flow are usually at the beginning level. The communication flow is the path from the requestor to the receiver. Typically, these existing communication flow techniques refer to specifying a recipient for a request, such as some predefined contact method such as sending an e-mail message to a mailbox or sending a message to a pager. Communication flow paths are often thought of as simple connections between two parties, but recent communication capabilities have enabled various communication flows. For example, a given communication flow may (i) contact the recipients or devices used by the receiver simultaneously or sequentially, or (ii) wait for all recipients or just some recipients to respond to the request. and (iii) take other measures when a communication error occurs.

그러므로 이를테면 요청에 대한 수신자들, 각 수신자가 요청을 받게될 방법, 시간 및 장소 및 응답들이 다른 통신을 지휘할 방법 등 통신 흐름의 파라미터들을 편리하고 정확하게 명시하는 일반적인 기술의 필요성이 존재한다. 또한 애플리케이션의 요구와 수신자들의 선호도를 포착해 결합하도록 통신 파라미터들을 명시하는 기술의 필요성이 존재한다.Therefore, there is a need for a general technique that conveniently and accurately specifies the parameters of a communication flow, such as the recipients of a request, how each recipient will be asked for, the time and place, and how the responses will direct other communications. There is also a need for a technique that specifies communication parameters to capture and combine the needs of the application and the preferences of the recipients.

(관련 출원들에 대한 상호 참조)(Cross reference to related applications)

이 출원은 2001년 5월 15일에 출원된 미국 임시 출원번호 60/291,087의 이점을 청구한다.This application claims the benefit of US Provisional Application No. 60 / 291,087, filed May 15, 2001.

본 발명은 일반적으로 하나 이상의 수신자들과 통신하기 위한 방법 및 장치에 관한 것으로, 특히 하나 이상의 서로 다른 매체 유형들을 사용하여 애플리케이션과 하나 이상의 수신자들 간에 자동 통지 및 응답을 위한 방법 및 장치에 관한 것이다.The present invention generally relates to a method and apparatus for communicating with one or more recipients, and more particularly, to a method and apparatus for automatic notification and response between an application and one or more recipients using one or more different media types.

도 1은 본 발명의 특징들이 포함된 통지 및 응답 시스템을 도시한 것이다.1 illustrates a notification and response system incorporating features of the present invention.

도 2는 도 1의 통지 및 응답 시스템을 보다 상세히 도시한 것이다.FIG. 2 illustrates the notification and response system of FIG. 1 in more detail.

도 3은 도 2의 요청 관리자에 의해 채용된 요청 데이터베이스로부터의 샘플 표이다.3 is a sample table from the request database employed by the request manager of FIG. 2.

도 4는 본 발명의 특징을 포함한 3값 논리 평가자를 예시한 흐름도이다.4 is a flow diagram illustrating a three-valued logical evaluator incorporating features of the present invention.

도 5는 도 2의 수신자 선호도 및 역할 데이터베이스로부터의 샘플 표이다.5 is a sample table from the recipient preference and role database of FIG. 2.

도 6은 다수의 수신자들의 개인 명명 콘텍스트를 나타낸 것으로, 도 5의 수신자 선호도 및 역할 데이터베이스로부터의 LDAP 디렉토리 트리의 부분을 도시한 것이다.FIG. 6 illustrates a personal naming context of multiple recipients, illustrating portions of an LDAP directory tree from the recipient preference and role database of FIG. 5.

도 7은 도 5의 수신자 선호도 및 역할 데이터베이스의 또 다른 부분으로부터 샘플 표이다.FIG. 7 is a sample table from another portion of the recipient preference and role database of FIG. 5.

도 8은 본 발명에 따라 한 세트의 통신 흐름 표현 프리미티브들을 나타낸 샘플 표이다.8 is a sample table illustrating a set of communication flow representation primitives in accordance with the present invention.

도 9a 내지 도 9e는 도 8에 나타낸 여러 가지 프리미티브들에 대한 진리표들을 도시한 것이다.9A-9E show truth tables for the various primitives shown in FIG.

도 10은 도 8에 나타낸 각각의 프리미티브들에 대한 카운트 값들을 요약한 샘플 표이다.FIG. 10 is a sample table summarizing count values for each primitive shown in FIG. 8.

도 11은 도 2에 도시한 요청 관리자와 통신 흐름 관리자 간 상호작용을 도시한 것이다.FIG. 11 illustrates the interaction between the request manager and the communication flow manager shown in FIG. 2.

도 12a 및 도 12b는 도 11의 요청 관리자의 동작을 보다 상세히 예시한 흐름도이다.12A and 12B are flowcharts illustrating the operation of the request manager of FIG. 11 in more detail.

도 13은 도 11의 통신 흐름 관리자의 동작을 보다 상세히 예시한 흐름도이다.13 is a flowchart illustrating the operation of the communication flow manager of FIG. 11 in more detail.

도 14는 팀 회합 요청의 파라미터를 애플리케이션이 명시하게 하는 웹 형태를 도시한 것이다.14 illustrates a web form that allows an application to specify parameters of a team meeting request.

도 15는 도 14의 요청의 컴파일된 결과를 도시한 것이다.FIG. 15 shows the compiled result of the request of FIG. 14.

도 16은 요청자가 4시간 동안에 선호하는 고객들에 새로운 회사의 IPO에서 일부의 주식 할당을 제공하는 것을 도시한 것이다.FIG. 16 illustrates that the requestor provides some share allocation in the new company's IPO to preferred customers for four hours.

도 17은 도 16의 요청에 따라 어떤 수신자들에게 보내지는 전자메일 메시지를 도시한 것이다.FIG. 17 illustrates an e-mail message sent to some recipients in response to the request of FIG. 16.

발명의 개시Disclosure of the Invention

일반적으로, 이를테면 전자메일, 전화, 웹 페이지, 페이저 혹은 팩시밀리와 같은 다수의 서로 다른 매체를 사용하여 하나 이상의 애플리케이션들이 하나 이상의 수신자들과 통신할 수 있게 하는 통지 및 응답 시스템을 개시한다. 일반적으로, 통지 및 응답 시스템은 (i) 각각의 개개의 수신자에 의해 명시된 매체를 사용하여, 하나 이상의 수신자들에게 요청을 보내며, (ii) 응답들을 수집 및 처리하고, (iii) 최종 목적지에 의해 명시된 매체에 의해 최종 목적지에 응답을 보낸다.Generally, a notification and response system is disclosed that enables one or more applications to communicate with one or more recipients using a number of different media such as e-mail, telephone, web page, pager or fax. In general, a notification and response system (i) uses a medium specified by each individual recipient to send a request to one or more recipients, (ii) collect and process responses, and (iii) by the final destination. Send a response to the final destination by the specified medium.

애플리케이션들은 다수의 지원되는 사람의 언어 및 매체 포맷들 중 어느 하나로 요청들을 프레임할 수 있고, 요청은 각 수신자의 매체 및 사람 언어 선호도에 따라 적합한 수신자(들)에게 자동으로 보내진다. 따라서, 수신자들은 이들의 명시된 선호도들 및 엔드포인트 능력들에 따라 서로 다른 애플리케이션들 혹은 시스템(혹은 이들 모두)으로부터 메시지들을 수신한다. 응답들은 대응하는 애플리케이션에 편리한 포맷으로 각각의 애플리케이션에 리턴된다. 애플리케이션은 하나 이상의 지정된 수신자들에 혹은 기선정된 수신자 리스트들 혹은 역할들에 따라 메시지들을 보낼 수 있다. 수신자 선호도 및 역할 데이터베이스는 수신자 리스트들, 역할들 및 수신자 선호도들의 중앙 관리를 제어한다. 수신자 선호도 및 역할 데이터베이스는 역할, 사람들 및 장치 정보와, 관계된 통신 흐름 정보를 기록한다.Applications can frame requests in any of a number of supported human language and media formats, and the request is automatically sent to the appropriate recipient (s) according to each recipient's media and human language preferences. Thus, recipients receive messages from different applications or systems (or both) according to their specified preferences and endpoint capabilities. The responses are returned to each application in a format convenient for the corresponding application. The application can send messages to one or more designated recipients or according to pre-selected recipient lists or roles. The recipient preferences and role database controls the central management of recipient lists, roles and recipient preferences. The recipient preference and role database records role, people and device information, and associated communication flow information.

애플리케이션들은 연락할 어떤 조건하에서("Ann"이 예라고 말한 경우에만) 연락할 사람("Bob"), 및 연락 시간(평일, 오전 9시에서 오후 9시 사이)을 명시하기 위해 통신 흐름 표현을 사용한다. 수신자들은 방법, 즉 어느 장치들을 사용할 것인가, 및 이들에 언제 연락할 것인가의 상세로서 통신 흐름 표현을 구체화하는 규칙들을 명시한다. 수신자들은 어떤 요청들을 다른 수신자들에 자동으로 위임할 수도 있다. 본 발명의 한 특징에 따라서, 요청들은 요청이 보내질 때까지 새로운 정보로 동적으로 갱신될 수 있으므로, 수신자들은 가장 현재의 업무정보를 수신한다. 또한, 통신 흐름 표현의 파라미터들(누가, 무엇을, 언제)은 요청이 전달될 때 평가되므로, 요청은 가장 최신의 수신자 선호도에 따라 전달된다.Applications use a communication flow expression to specify who to contact ("Bob") and the time of contact (weekdays, 9am to 9pm) under what conditions to contact (only if "Ann" says yes). use. The recipients specify the rules that specify the communication flow representation as the details of the method, ie which devices to use, and when to contact them. Recipients may automatically delegate certain requests to other recipients. According to one aspect of the invention, the requests can be dynamically updated with new information until the request is sent, so that the recipients receive the most current business information. In addition, the parameters of the communication flow representation (who, what, when) are evaluated when the request is forwarded, so that the request is forwarded according to the most recent recipient preference.

애플리케이션은 하나 이상의 수신자들에게 특정의 통지 메시지를 보낼 것과 이 통지에 대한 응답들을 수집하여 요청자에 리턴하거나 또 다른 애플리케이션에 보낼 것을 청하는 요청을 개시된 통지 및 응답 시스템에 보낸다. 요청은 (i) 통지 메시지, (ii) 요청 파라미터들, (iii) 통신 흐름 표현, 및 (iv) 응답들로 구성된다. 통지 메시지는 많은 지원되는 사람의 언어 및 매체 포맷들 중 어느 하나로 프레임될 수 있고, 요청은 각 수신자의 사람 언어 선호도 및 매체에 따라 적합한 수신자(들)에게 자동으로 보내진다. 요청 파라미터들은 요청의 작용을 제어하거나 요청을 적합하게 포맷화하기 위해서(혹은 이들 모두를), 통지 및 응답 시스템이 사용할 수 있어야 하는 정보를 명시한다.The application sends a request to the disclosed notification and response system to send a specific notification message to one or more recipients and to collect responses to the notification and return it to the requestor or to another application. The request consists of (i) a notification message, (ii) request parameters, (iii) communication flow representation, and (iv) responses. The notification message may be framed in any of a number of supported human language and media formats, and the request is automatically sent to the appropriate recipient (s) according to the human language preference and medium of each recipient. The request parameters specify the information that the notification and response system must use to control the behavior of the request or to properly format the request (or both).

통신 흐름 표현들은 애플리케이션들의 요구 및 수신자들의 선호도들을 포착하여 결합한다. 요청의 통신 흐름 표현 부분은 요청에 연관된 수신자(들)("누가"), 및 이 수신자들이 요청을 받게 될 시간 및 장소를 명시한다. 수신자는 역할(예를 들면, "고객 서비스"), 사람(예를 들면, "Jerry"), 장치(예를 들면, "800-555-1234") 혹은 평가될 다른 통신 흐름 표현일 수 있다. 각각의 수신자는 활성상태인데, 이는 수신자들의 통신 선호도들을 명시하는 통신 흐름 규칙들 및 송신자의 특성이나 요청의 토픽 혹은 이들의 스케쥴의 요구들에 맞게 통신 흐름을 맞추는 것을 제공할 수 있기 때문이다. 일반적으로, 통신 흐름 규칙들은 통신 흐름 내 수신자의 이름을 수신자의 선호도에 따라 수신자와 연락할 시간, 장소 및 방법에 관한 상세로 대치시킨다. 통신 흐름 표현은 또한 특정 수신자가 요청에 성공적으로 응답하지 못하였을 때 어떤 조치를 취할 것인가를 명시한다.Communication flow representations capture and combine the needs of applications and the preferences of recipients. The communication flow representation portion of the request specifies the recipient (s) ("who") associated with the request, and when and where they will be received. The recipient may be a role (eg, "customer service"), a person (eg "Jerry"), a device (eg "800-555-1234") or another communication flow representation to be evaluated. Each recipient is active because it can provide communication flow rules that specify the communication preferences of the recipients and tailor the communication flow to the sender's characteristics or the topic of the request or the needs of their schedule. In general, communication flow rules replace the name of a recipient in a communication flow with details regarding when, where and how to contact the recipient according to the recipient's preferences. The communication flow representation also specifies what action to take when a particular recipient fails to respond successfully to the request.

통지 및 응답 시스템은 특정 연락이 성공하였는지 여부를 판정하기 위해서 응답자에 의해 명시된 값들을 평가하기 위해 통신 흐름에 성공 테스트들을 채용할 수 있다. 응답자는 요청을 수신하고 응답을 리턴한 사람이다. 응답들이 수신되었을 때, 통지 및 응답 시스템은 각 개개의 응답의 속성 값 쌍들, 혹은 요청이 완료된 후엔 대조된 결과들을 초기 요청에 명시된 최종 목적지로 보낼 것이다.The notification and response system may employ success tests in the communication flow to evaluate the values specified by the responder to determine whether a particular contact was successful. The responder is the person who received the request and returned the response. When responses are received, the notification and response system will send attribute value pairs of each individual response, or collated results to the final destination specified in the initial request after the request is completed.

통신 흐름 실패는 두 가지 이유로 발생할 수 있다. 먼저, 단순히, 통지 실패라 하는 것으로서는(그 역은 통지 성공이라 함) 수신자와의 연락에 실패가 있거나 수신자가 통지에 전혀 응답하지 않을 수 있다. 두 번째로, 수신자에 연락이 취해진 후에 응답 성공("참" 혹은 "예"라고 말하는) 혹은 응답 실패("거짓" 혹은 "아니오"라고 하는), 요청을 받아들이거나 거절할 수 있다.Communication flow failures can occur for two reasons. Firstly, simply referred to as a notification failure (and vice versa) is a failure to contact the recipient or the recipient may not respond to the notification at all. Secondly, after the recipient has been contacted, he or she can accept or reject the request, either successful (say "true" or "yes") or failed (say "false" or "no").

본 발명의 또 다른 특징에 따라서, 통신 흐름 표현은 3값 논리를 사용하여 평가된다. 논리의 3개의 가능한 값들은 통지 실패(maybe), 응답 실패(거짓) 및 응답 성공(참)이다. 통지 성공은 응답 성공 혹은 응답 실패 전에 일어나는 확인된 일시적 상태이다. 많은 장치들에 있어서, 수신자로부터 응답이 수신되었을 때 통지가 수신되었음을 아는 것만이 가능하다. 따라서, 요청에 연관된 성공 표현은 수신자로부터 수신된 응답에 포함되어 있을 수 있는 변수들로 3값 논리 표현을 명시할 수 있다. 성공 표현은 응답의 값들의 논리 조합을 테스트하고, 응답 성공이 있으면 연락은 "참"으로 평가하고, 응답 실패가 있으면 "거짓"으로 평가하며, 그렇지 않고, 응답에 더 이상의 시간이 허용되지 않으면, 통지 실패가 있고 연락은 "maybe"로 평가한다.According to another feature of the invention, the communication flow representation is evaluated using trivalue logic. The three possible values of logic are notification failure (maybe), response failure (false) and response success (true). Notification success is a confirmed transient state that occurs before a response succeeds or fails. For many devices, it is only possible to know that a notification has been received when a response is received from the recipient. Thus, the success expression associated with the request may specify a tri-valued logical representation as variables that may be included in the response received from the receiver. The success representation tests the logical combination of the values of the response, the contact evaluates to "true" if there is a successful response, "false" if there is a response failure, otherwise, if no more time is allowed for the response, There is a failure to notify and the contact is evaluated as "maybe".

각 통신 흐름 표현은 수신자들을 동시에 혹은 순차로 연락할 지 여부와, 성공 테스트 결과의 논리 조합을 정의함으로써 서브-표현의 실행을 언제 종료할 것인가를 명시하기 위해 하나 이상의 프리미티브들을 포함한다. 즉, 프리미티브들은 동시 혹은 순차 통신에 대한 지시를 수신자와의 통신 상태가 통신 흐름에 어떻게 영향을 미치는가의 평가와 조합한다. 이외 다른 프리미티브들은 연락이 행해질 시간 혹은 디렉토리를 탐색함으로써 발견된 객체 리스트로부터 통신 흐름을 구성할 방법을 제어한다.Each communication flow representation includes one or more primitives to specify whether to contact the recipients simultaneously or sequentially and when to terminate execution of the sub-expression by defining a logical combination of success test results. That is, primitives combine an indication of simultaneous or sequential communication with an assessment of how the state of communication with the receiver affects the communication flow. The other primitives control how the communication flow is constructed from the list of found objects by searching the directory or time at which contact will be made.

개시된 통지 및 응답 시스템에 의해 채용된 프리미티브는 자연히 다음과 같이 동시/순차 쌍들로 그룹으로 묶을 수 있다. and/then, or/else, races/delegates, 및 votes/polls. 통시 및 순차 프리미티브들은 오퍼랜드들이 어떻게 평가되는가 하는 점에서 다르다. 동시 프리미티브들에서, 각 수신자에 동시에 연락이 취해진다. 현안의 요청들이 프리미티브의 참 값을 판정하는 데에 있어 더 이상 필요하지 않을 땐 이들 요청들은 취소된다. 순차 프리미티브들에서, 요청들은 이들이 나타내는 순서로 각 수신자에 행해진다. 이 수신자가 응답할 때, 요청은-필요하다면-프리미티브의 참 값을 판정하기 위해서 다음 수신자에게 보내진다. 각 프리미티브는 수신자들과의 통신의 성공에 따라 참, 거짓 혹은 maybe로 평가된다.Primitives employed by the disclosed notification and response system can naturally be grouped into concurrent / sequential pairs as follows. and / then, or / else, races / delegates, and votes / polls. Notification and sequential primitives differ in how operands are evaluated. In simultaneous primitives, each recipient is contacted at the same time. When current requests are no longer needed to determine the true value of a primitive, these requests are canceled. In sequential primitives, requests are made to each receiver in the order they appear. When this receiver responds, the request is sent-if necessary-to the next receiver to determine the true value of the primitive. Each primitive is evaluated as true, false or maybe depending on the success of the communication with the receivers.

본 발명의 보다 완전한 이해, 및 본 발명의 다른 특징들 및 잇점은 다음의 상세한 설명 및 도면을 참조하여 얻어질 것이다.A more complete understanding of the present invention, as well as other features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.

본 발명을 수행하는 최상의 방식들Best Modes for Carrying Out the Invention

본 발명은 이하 일괄하여 애플리케이션들(110)이라 칭하는 하나 이상의 애플리케이션들(110-1 내지 110-N)이, 이하 일괄하여 수신자들(120)이라 칭하는 하나 이상의 수신자들(120-1 내지 120-N)과의 통신을 이를테면 전자 메일, 전화, 웹 페이지, 페이저 혹은 팩시밀리와 같은 다수의 서로 상이한 매체로 행할 수 있게 하는, 도 1에 도시한, 통지 및 응답 시스템(100)을 제공한다. 일반적으로, 통지 및 응답 시스템(100)은 (i) 각각의 개개의 수신자(120)가 명시한 매체를 사용해서 하나 이상의 수신자들(120)에 요청들을 보내고, (ii) 응답들을 수집하여 처리하고, (iii) 최종의 목적지에 의해 명시된 매체에 의해 응답들을 이들의 최종의 목적지로 보낸다.In the present invention, one or more applications 110-1 to 110 -N, collectively referred to as applications 110, are described herein, and one or more receivers 120-1 to 120 -N collectively referred to as receivers 120. Provides a notification and response system 100, as shown in FIG. 1, which enables communication with a number of different media such as e-mail, telephone, web page, pager or facsimile. In general, notification and response system 100 (i) sends requests to one or more recipients 120 using the medium specified by each individual recipient 120, (ii) collects and processes the responses, (iii) Send responses to their final destination by the medium specified by the final destination.

도 2는 통지 및 응답 시스템(100)을 보다 상세히 도시한 것이다. 도 2에 도시하고 후술하는 바와 같이, 애플리케이션(110)은, 요청을 제출하거나 취소시키는 서비스, 요청 상태를 체크하는 서비스, 및 결과들을 애플리케이션들(110)로 리턴하는 서비스를 제공하는 애플리케이션 인터페이스(220)에 의해 요청을 요청 관리자(1200)에 제출한다. 애플리케이션들은 예를 들면 HTTP POST를 통해서, 통지 요청들을 제출할 수 있고 미결 통지들을 취소시킬 것을 적합한 애플리케이션 인터페이스(220)에 요청한다.2 illustrates the notification and response system 100 in more detail. As shown in FIG. 2 and described below, application 110 provides an application interface 220 that provides a service for submitting or canceling a request, a service for checking the status of a request, and a service for returning results to applications 110. Submits the request to request manager 1200. Applications can submit notification requests, for example via HTTP POST, and request the appropriate application interface 220 to cancel outstanding notifications.

애플리케이션 인터페이스들(220)은 예를 들면, SOAP(Simple Object Access Protocol) 혹은, IBM 사로부터 구매가능한 MQSeriesTM인터페이스나 선 마이크로시스템즈 사로부터 구매가능한 J2EETM인터페이스와 같은 많은 상용 EAI(EnterpriseApplication Integration) 인터페이스들로서 구현될 수 있다. 각 요청에 대해서, 애플리케이션 인터페이스들(220)은 외부에서의 요청 표현과 통지 및 응답 시스템(100) 내에서의 표현간을 맵핑시킨다. 마찬가지로, 각 응답에 대해서, 애플리케이션 인터페이스들(220)은 통지 및 응답 시스템(100)의 내부에서의 응답 표현과 외부에서의 표현간을 매핑시킨다.The application interfaces 220 are, for example, many commercial Enterprise Application Integration (EAI) interfaces, such as the Simple Object Access Protocol (SOAP) or the MQSeries interface available from IBM or the J2EE interface available from Sun Microsystems. Can be implemented. For each request, application interfaces 220 map between the external representation of the request and the representation within notification and response system 100. Similarly, for each response, application interfaces 220 map between a response representation inside and outside of the notification and response system 100.

도 11에 관련하여 후술하는 요청 관리자(1200)는 제출된 모든 요청들을 추적한다. 도 3에 관련하여 후술하는 바와 같이, 요청 관리자(1200)는 각 요청에 관한 정보를 포함하고 또한 미결, 취소, 혹은 완료 등 각 요청의 상태를 나타내는 요청 데이터베이스를 유지한다. 요청 데이터베이스(300)는 메모리에, 혹은 요청들 및 이들의 현 상태(응답들을 포함하여)가 저장될 수 있는 영속 데이터베이스에 유지될 수 있다. 이외 기능들 중에서, 요청 관리자(1200)는 수신자(120)가 수신할 요청과 응답할 요청을 식별하는데 사용될 수 있는 각 요청에 고유 식별자를 할당한다. 또한, 요청 관리자(1200)는, 필요하다면, 응답들이 다시 통지 및 응답 시스템(100)에 확실히 보내질 수 있게 요청들을 수정한다.The request manager 1200 described below with reference to FIG. 11 tracks all submitted requests. As described below with reference to FIG. 3, the request manager 1200 maintains a request database that includes information about each request and indicates the status of each request, such as open, canceled, or completed. The request database 300 may be maintained in memory or in a persistent database in which requests and their current state (including responses) may be stored. Among other functions, request manager 1200 assigns a unique identifier to each request that can be used to identify the request that recipient 120 will receive and the request to respond. In addition, the request manager 1200 modifies the requests so that the responses can be sent back to the notification and response system 100 if necessary.

전술한 바와 같이, 애플리케이션들(110)은 소정의 요청의 파라미터들을 명시하기 위해서 통신 흐름 표현들을 사용한다. 요청 관리자(1200)는 수신자와의 각각의 매체에 특정한 통신을 수행할 때 통신흐름 방향들을 따른다. 요청 관리자(1200)는 도 13에 관련하여 후술하는, 통신 흐름 관리자(1300)의 통신 흐름 표현 서비스들을 사용한다. 요청 관리자(1200)와 통신 흐름 관리자(1300) 간 상호작용을 도 11을 참조하여 기술한다.As mentioned above, applications 110 use communication flow representations to specify parameters of a given request. The request manager 1200 follows the communication flow directions when performing specific communication with each recipient with the receiver. The request manager 1200 uses communication flow presentation services of the communication flow manager 1300, described below with respect to FIG. Interaction between the request manager 1200 and the communication flow manager 1300 will be described with reference to FIG. 11.

일반적으로, 통신 흐름 관리자(1300)는 요청에 정의된 타겟 통신 흐름을, 보다 효율적인 트리 구조의 내(internal) 표현으로 번역한다. 또한, 통신 흐름 관리자(1300)는 트리 표현을 반복해서 거쳐나가, 처리에서 비-장치 수신자들을 확장하고 장치들을 구체화한다. 각 반복에서, 통신 흐름 관리자(1300)는 얻을 수 있게 된 어떤 성공 테스트 결과들을 입력하고 어떤 미결 연락들을 취소시킬 것인지 아니면 어떤 새로운 연락들을 취할 것인지를 판정한다. 이와 같이, 통신 흐름 관리자(1300)는 요청을 적합한 수신자들(120)에 어떻게 보낼 것인가를 결정하고 각 통신 시도의 성공 혹은 실패에 어떻게 응답할 것인가를 결정하기 위해서 통신 흐름 표현을 해석하여 실행한다.In general, the communication flow manager 1300 translates the target communication flow defined in the request into an internal representation of a more efficient tree structure. In addition, the communication flow manager 1300 iterates through the tree representation, extending non-device receivers and specifying devices in processing. At each iteration, the communication flow manager 1300 enters any success test results obtained and determines which open contacts to cancel or which new contacts to take. As such, the communication flow manager 1300 interprets and executes the communication flow representation to determine how to send the request to the appropriate recipients 120 and how to respond to the success or failure of each communication attempt.

디렉토리 인터페이스(250)는 통지 및 응답 시스템(100)에 의해 사용되는 역할, 사람들 및 장치들의 내 표현과 수신자 선호도 및 역할 데이터베이스(500)에서의 표현간을 매핑한다. 또한, 디렉토리 인터페이스(250)는 탐색 및 이외 다른 요청들을 처리한다. 일반적으로, 통신 흐름 관리자(1300)에게는 역할들을 연락하는 통신 흐름과, 통지 및 응답 시스템(100)이 연락방법을 아는 장치들에 해명할 필요가 있는 수신자의 이름들이 제공된다. 디렉토리 스키마와 통지 및 응답 시스템(100)에서의 내 표현은 다른 유형들의 데이터베이스의 사용을 지원하고 사용 중의 특정한 디렉토리 스키마와는 관계없이 내 표현을 작성하기 위해서 단일 부류 내에서 매핑될 수 있다. 이러한 부류는 한 세트의 특정한 탐색 및 검색 방법들을 제공한다.Directory interface 250 maps between representations in roles, people, and devices used by notification and response system 100 and representations in recipient preferences and role database 500. Directory interface 250 also handles navigation and other requests. In general, the communication flow manager 1300 is provided with a communication flow for contacting roles and names of recipients that the notification and response system 100 needs to explain to devices that know how to contact. My representation in the directory schema and notification and response system 100 may be mapped within a single class to support the use of other types of databases and to create my representation regardless of the particular directory schema in use. This class provides a set of specific search and retrieval methods.

매체에 특정한 연락들(270)은 통보와, 경우에 따라서는 수집된 응답을 실제로 전달하는 것을 취급한다. 명시 가능한 시도 기간 혹은 횟수 후에도 특정 매체를 통해 연락이 될 수 없다면, 통보 실패 메시지가 요청 관리자(1200)에게로 리턴된다. 매체에 특정한 인터페이스들(270)에 대해서는 다음에 "매체에 특정한 인터페이스들" 제하의 단락에서 상술한다. 각각의 통보 메시지에 대해, 매체에 특정한 인터페이스들(270)은 통보 및 응답 시스템(100)의 내 요청 문서 표현과 외 표현간을 매핑한다. 마찬가지로, 각 응답에 대해서, 매체에 특정한 인터페이스들(270)은 외 응답 표현과 통보 및 응답 시스템(100)의 내 표현간을 매핑시킨다.The media-specific contacts 270 deal with delivering the notification and, in some cases, the collected response. If no contact can be made over a particular medium even after a specified number of attempts or times, a notification failure message is returned to the request manager 1200. Interfaces specific to the medium 270 are described in detail in the following paragraph under "Media Specific Interfaces". For each notification message, media-specific interfaces 270 map between the in-request document representation and the out-of-representation of the notification and response system 100. Similarly, for each response, medium-specific interfaces 270 map between the external response representation and the internal representation of notification and response system 100.

웹 포탈(280)은 다양한 매체들을 통해 수신자들(120)에 데이터를 서비스하고 응답들을 수집한다. 웹 포탈(280)은 수신자의 미결 통보, 완료된 통보 및 취소된 통보에 액세스를 제공하는 일단의 서블릿들이다. 이것은 통보를 표시하는 서블릿 및 응답을 수집하는 또 다른 서블릿뿐만 아니라, 수신자가 읽거나 들을 것을 선택할 수 있게 미결 통보 목록을 표시하는 서블릿을 포함한다. 웹 포탈(280)은 모든 통보들이 직접 통보 및 응답 시스템(100)에 의해 보내지게 하고 또한 모든 응답들이 통보 및 응답 시스템(100)에 의해 수집되도록 이러한 식으로 구성된다. 중앙집중으로 구현함으로써 통보 내용이 제어될 수 있고, 통보를 개인화할 수 있으며 통보에 이전 응답을 포함시킬 수 있게 된다. 수신자 선호도 및 역할 데이터베이스(500)로부터의 개인화 데이터는 적합한 서블릿을 가리키기 위해 폼 실행 태그들을 수정하는 동일한 재기입 메커니즘에 의해 취급된다.Web portal 280 serves data to recipients 120 and collects responses via various media. Web portal 280 is a set of servlets that provide access to open notifications, completed notifications, and canceled notifications of recipients. This includes a servlet that displays a notification and another servlet that collects responses, as well as a servlet that displays a list of pending notifications for the recipient to choose to read or listen to. Web portal 280 is configured in this manner such that all notifications are sent by direct notification and response system 100 and also all responses are collected by notification and response system 100. Centralized implementation allows notifications to be controlled, personalizes notifications, and includes previous responses in notifications. Personalization data from the recipient preference and role database 500 is handled by the same rewrite mechanism that modifies the form execution tags to point to the appropriate servlet.

통보 및 응답 시스템(100)은 통신 흐름 표현에 명시된 수신자들(120)에의 모든 요청들을 중재한다. 이것은 통보 및 응답 시스템(100)이 응답들을 기록하게 하고 이들 응답들을 통신 흐름 관리자(1300)에 전달하게 한다. 통신 흐름 관리자(1300)는 이들 응답들에 근거하여 통신 흐름에 의해 서로 상이한 경로들을 취한다. 예를 들면, 웹 애플리케이션 프로그램 인터페이스(API)에 있어서, 모든 요청들은 웹 페이지들로서 표현되고 응답들을 요하는 것들은 응답을 받아들이기 위한 폼들을 포함한다. 요청들은 주어진 URL에 응답들을 보내게 재기입되므로, 통보 및 응답 시스템(100)에 행해진 원 요청에 명시된 최종 목적지로 다른 경로를 통해 보내지기 전에 완료 상태가 기록될 수 있다. 통보 및 응답 시스템(100)의 발송 및 리턴 처리는 이를테면 통합 메시징 시스템 or XML-기반 API에서의 방법들과 같이, 요청들 및 응답들을 명시하는 여러 가지 방법들에 맞게 수정될 수 있다.Notification and response system 100 mediates all requests to recipients 120 specified in the communication flow representation. This allows the notification and response system 100 to record the responses and forward these responses to the communication flow manager 1300. The communication flow manager 1300 takes different paths from each other by the communication flow based on these responses. For example, in a web application program interface (API), all requests are represented as web pages and those requiring responses include forms for accepting the response. Since the requests are rewritten to send responses to a given URL, the completion status can be recorded before being sent via another path to the final destination specified in the original request made to the notification and response system 100. The dispatch and return processing of the notification and response system 100 may be modified to suit various ways of specifying requests and responses, such as those in a unified messaging system or XML-based API.

따라서 본 발명은 개인화된 메시지 배송(수신자들은 메시지들을 원할 때 및 원하는 방법으로 받는다)을 제공한다. 통보 및 응답 시스템(100)은 다수의 지원되는 사람의 언어들 및 이를테면 전자메일, 전화, 웹 페이지, 페이저 혹은 팩시밀리와 같은 매체 포맷들 중 어느 하나로 요청들을 배송하고 응답들을 수집할 수 있다. 또한, 통보 및 응답 시스템(100)은 요청들 및 수신자들에 대한 중앙 요청 관리, 응답 대조, 및 현존의 애플리케이션들로부터( 및 이들에의 응답들) 요청들의 명료한 발송을 제공한다.Thus, the present invention provides personalized message delivery (recipients receive messages when and how they want them). The notification and response system 100 can deliver requests and collect responses in any of a number of supported human languages and media formats such as e-mail, telephone, web page, pager or facsimile. In addition, the notification and response system 100 provides for central request management, response collation, and clear dispatch of requests from (and responses to) existing applications to requests and recipients.

요청들Requests

애플리케이션(100)은 특정의 통보 메시지가 하나 이상의 수신자들에게 보내지게 하고 이 통보에 대한 응답을 수집하여 요청자에게 리턴하거나 다른 애플리케이션에 보낼 것을 청하는 요청을 통보 및 응답 시스템(100)에 보낸다. 여기서 사용되는 요청은 (i) 통보 메시지, (ii) 요청 파라미터들, (iii) 통신 흐름, 및 (iv) 응답들로 구성된다.The application 100 sends a request to the notification and response system 100 to cause a particular notification message to be sent to one or more recipients and to collect a response to the notification and return it to the requestor or to send to another application. The request used here consists of (i) a notification message, (ii) request parameters, (iii) communication flow, and (iv) responses.

통보 메시지Notification message

애플리케이션(110)은 서로 다른 매체들을 통해서 그리고 서로 상이한 사람 언어들로 배송을 지원하기 위해서 한 요청에 대한 하나 이상의 버전들을 생성할 수 있다. 즉, 애플리케이션(110)은 수신자가 수신에 선호하는 문서 유형으로 서블릿에 의해 변환될 데이터 파일들을 준비한 후 서블릿의 URL을 통보 및 응답 시스템(100)에 전달한다. 예를 들면, 회합 통보를 하나 이상의 수신자들에 보내기를 원하는 애플리케이션(110)은 메시지를 포함하는 HTML 문서를, 있을 수 있는 응답-만약 있다면-을 취급하는 폼과 더불어 생성할 수 있다. 이어서 이 HTML 문서는 웹 서버에 저장될 것이며 URL은 통보 및 응답 시스템(100)에 보내진다.Application 110 may generate one or more versions of a request to support delivery over different media and in different human languages. That is, the application 110 prepares the data files to be converted by the servlet into the document type that the receiver prefers to receive, and then delivers the URL of the servlet to the notification and response system 100. For example, an application 110 that wishes to send a meeting notification to one or more recipients may generate an HTML document containing a message, along with a form that handles a possible response, if any. This HTML document will then be stored on the web server and the URL sent to the notification and response system 100.

특정의 매체 포맷으로 메시지를 생성하기 위한 서블릿의 사용은 본 발명의 잇점들 중 하나를 예증한다. 메시지의 매체들은 배송시 수신자의 요구 및 선호도에 맞추어 만들어질 수 있고, 메시지의 내용은 가장 최신의 정보를 항시 포함하게 배송시 생성될 수 있다. 예를 들면, 본 발명에 의해 채용되는 다수의 매체 연락들은 초기에는 수신자에게 통보 메시지를 사용할 수 있다는 표시, 이를테면 통보 메시지 혹은 통보 메시지를 포함하는 웹 페이지에의 하이퍼링크를 포함하는 전자메일 메시지를 가져오기 위해서 수신자에게 지정된 전화번호로 전화를 해야 함을 나타내는 페이지를 제공한다. 그후에 수신자는 통보 메시지에 액세스하고, 수신자에게는액세스시 최신판의 통보 메시지가 제공된다. 따라서, 요청자는 수신자가 실제로 통보 메시지에 액세스할 때까지 통보 메시지를 갱신할 수 있다.The use of a servlet to generate a message in a particular media format illustrates one of the advantages of the present invention. The mediums of the message may be tailored to the needs and preferences of the recipient upon delivery, and the content of the message may be generated upon delivery with the most up-to-date information at all times. For example, many media contacts employed by the present invention initially have an indication that a notification message is available to the recipient, such as an email message including a notification message or a hyperlink to a web page containing the notification message. Provides a page indicating that the recipient must call the specified phone number to come. The recipient then accesses the notification message and the recipient is provided with the latest notification message upon access. Thus, the requestor can update the notification message until the recipient actually accesses the notification message.

요청 파라미터들Request parameters

요청은 한 세트의 연관된 파라미터들을 갖는다. 이들 파라미터들은 요청의 행동을 제어하거나 요청을 적합하게 포맷하기 위해서(혹은 둘 다를 행하기 위해서) 통보 및 응답 시스템(100)이 활용할 수 있어야 하는 정보를 명시한다. 전술한 바와 같이, 요청 관리자(1200)는 제출된 모든 통보 요청들을, 각 요청에 관한 정보를 포함함과 아울러 이를테면 미결, 취소 혹은 완료와 같은 각 요청의 현 상태를 나타내는 요청 데이터베이스(300)를 사용하여, 추적한다.The request has a set of associated parameters. These parameters specify information that the notification and response system 100 must utilize to control the behavior of the request or to properly format the request (or both). As discussed above, request manager 1200 uses request database 300 to include all notification requests submitted, including information about each request, as well as indicating the current status of each request, such as open, canceled, or completed. To track.

도 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)의 요청의 현 상태를 포함한다.3 is a sample table of the request database 300. As shown in FIG. 3, the request database 300 includes a plurality of records 305-315, each associated with a different request. For each request identified in field 330, the parameters recorded in request database 300 include (i) the requestor identifier of field 335 (ie, the name of the person or application that originated the request); (ii) the response destination in field 340 (e.g., a communication flow representation indicating the URL or response to which the responses will be sent, and whether the responses to be matched should be sent at the end of the request or upon receipt of each response). Display); (iii) the gist of field 345 (ie, a brief description of the request that may be used, for example, in an email summary); (iv) the maximum lifetime of field 350 (ie, the length of time that notification and response system 100 continuously attempts to deliver a notification and collects responses, all outstanding requests after this time are canceled and any collected responses Should be sent to their final destination); (v) languages of field 355 (ie, languages available for notification messages); (vi) content types that may be taken in the message, such as field 360, such as HTML, VXML, and plain text; Field 365 contains a communication flow representation); (vii) a public / private flag indicating whether the received responses can be viewed or used by other designated recipients; And (viii) the current state of the request in field 375.

주제 표제를 포함하여, 각 통보 메시지의 내용은 소정의 애플리케이션(110)에 의해서 하나 이상의 지원되는 사람의 언어로 제공되거나 혹은 원하는 지원되는 사람의 언어로 자동 번역될 수 있는 것에 유의한다. 다른 변형 예에서, 필드(355)의 언어 파라미터는 언어 번역을 어떤 방식으로 언제 얻어질 것인가를 명시하는 규칙으로 대치될 수 있고, 콘텐트 유형 파라미터는 콘텐트 유형들을 어떤 방식 및 언제 발생할 것인가를 명시하는 규칙으로 대치될 수 있다.Note that the content of each notification message, including subject headings, may be provided by one application 110 in one or more supported person's languages or automatically translated into the desired supported person's language. In another variation, the language parameter of field 355 may be replaced with a rule specifying how and when the language translation will be obtained, and the content type parameter specifying a rule specifying how and when the content types will occur. Can be replaced by

통신 흐름Communication flow

후술하는 바와 같이, "통신 흐름들" 제하의 단락에서, 통보 및 응답 시스템(100)는 통신 주체, 방법, 시기 및 장소를 명시하기 위해 통신 흐름 표현을 채용한다. 통신 흐름 표현들은 요청에 대한 수신자들을 명시한다. 수신자는 역할(예를 들면, "고객 서비스"), 사람(예를 들면, "제리"), 장치(예를 들면, "800-555- 1234"), 소프트웨어 애플리케이션 혹은 에이전트(예를 들면, 월력 에이전트) 혹은 또 다른 통신 흐름 표현일 수 있다. 또한, 통신 흐름 표현은 수신자들이 요청을 수신할 방법, 시기 및 장소를 명시한다.As discussed below, in the paragraph under "Communications Flows," the notification and response system 100 employs a communication flow representation to specify the communication subject, method, time and location. Communication flow representations specify recipients for the request. The recipient can be a role (eg "customer service"), a person (eg "Jerry"), a device (eg "800-555-1234"), a software application or an agent (eg monthly Agent) or another communication flow representation. In addition, the communication flow representation specifies how, when and where recipients will receive the request.

통신 흐름 표현들은 또한 특정의 수신자가 요청에 대해 성공적으로 응답하지 못하였을 때 어떤 조치를 취할 것인가를 명시한다. 통신 흐름 표현들은 애플리케이션의 요구와 수신자들의 선호도들을 취하여 합친다. 통신 흐름 표현들은 활성 수신자 리스트들이다. 수신자들은 수신자의 선호도들에 따라서 이들과 연락할 시기, 장소 및 방법에 관한 보다 상세한 것들로 통신 흐름 내 수신자들의 이름을 대치시키는 통신 흐름 규칙들을 제공하므로, 각 수신자는 활성이다. 이들 통신 흐름 규칙들에 의해서, 수신자들은 이들의 개인적인 통신 흐름을 요청에 대한 통신 흐름 표현에 합칠 수 있게 된다. 수신자들은 이들의 통신 선호도를 명시하고 이들의 통신 흐름을 송신자의 특성, 요청 토픽 혹은 이들의 스케쥴의 요구에 맞게 맞추기 위해서 규칙들을 사용한다.Communication flow expressions also specify what action to take when a particular recipient fails to respond successfully to the request. The communication flow representations take and combine the needs of the application and the preferences of the receivers. Communication flow representations are active recipient lists. Each recipient is active because the recipients provide communication flow rules that replace the names of the recipients in the communication flow with more details about when, where and how to contact them according to their preferences. These communication flow rules allow recipients to combine their personal communication flows with the communication flow representation for the request. Recipients use rules to specify their communication preferences and to tailor their communication flow to the sender's characteristics, request topics, or the needs of their schedules.

응답들Responses

후술하는 바와 같이, "통신 흐름들" 제하의 단락에서, 통보 및 응답 시스템(100)은 특정한 연락이 성공하였는지 여부를 판정하기 위해서 응답자에 의해 명시된 값들을 평가하기 위해 통신 흐름에서 성공 테스트들을 채용할 수 있다. 응답자는 요청을 받고 응답을 돌려준 사람이다. 응답들이 수신되었을 때, 통보 및 응답 시스템(100)은 각 개개의 응답의 속성 값 쌍들을 보내거나, 요청이 완료된 후에, 초기 요청에 명시된 최종 목적지에 대조된 결과들을 보낼 것이다. 예시된 구현에서, 통보 및 응답 시스템(100)은 어떤 결과들을 돌려보내기 전에 전체 통신 흐름이 실행될 때까지 기다리는데, 그러나 수신시 각 응답을 돌려보내기 위한 수정은 사소한 것이다.As described below, in the paragraph under "Communications Flows," notification and response system 100 may employ success tests in the communication flow to evaluate the values specified by the responder to determine whether a particular contact was successful. Can be. Respondents are those who receive a request and return a response. When the responses have been received, the notification and response system 100 will send attribute value pairs of each individual response, or after the request is completed, will send results against the final destination specified in the initial request. In the illustrated implementation, the notification and response system 100 waits for the entire communication flow to be executed before returning any results, but the modification to return each response upon receipt is minor.

통신 흐름들Communication flows

통신 흐름들은 통신 흐름 표현들, 성공 명세, 통신 흐름 규칙들 및 파라미터들로 특징지워진다. 통신 흐름 표현들은 애플리케이션들의 통신 요건을 사용자들의 통신 선호도와 합친다. 통신 흐름 표현들은 요청에 대해 수신자들을 명시한다(직접 이름에 의해서 혹은 정의된 수신자 리스트 혹은 역할에 의해서). 또한, 통신 흐름 표현은 수신자들이 요청을 수신할 방법, 시기 및 장소를 명시한다. 통신 흐름 표현들은 또한 특정의 수신자가 요청에 대해 성공적으로 응답하지 못하였을 때 어떤 조치를 취할 것인가를 명시한다.Communication flows are characterized by communication flow representations, success specification, communication flow rules and parameters. Communication flow representations combine the communication requirements of applications with the communication preferences of users. Communication flow expressions specify recipients for a request (by direct name or by defined recipient list or role). In addition, the communication flow representation specifies how, when and where recipients will receive the request. Communication flow expressions also specify what action to take when a particular recipient fails to respond successfully to the request.

통신 흐름 성공/실패 명세들Communication flow success / failure specifications

통신 흐름 성공 명세는 통신 흐름의 각 단계에서 응답 성공 및 실패에 대한 상태들을 기술한다. 예시된 구현에서, 통신 흐름 성공 명세는 특정의 통신 흐름에 대해 전 시스템에 걸친 내정된 성공 명세와 요청자가 정한 성공 명세 내정 모두 지원한다. 대안으로, 후술하는 테스트 응답 상태 프리미티브에 의해서, 요청자는 통신 흐름에서 각 수신자에 대해 성공 명세를 명시할 수 있다.The communication flow success specification describes the states for response success and failure at each stage of the communication flow. In the illustrated implementation, the communication flow success specification supports both a success specification defined by the requestor and a success specification defined throughout the system for a particular communication flow. Alternatively, the test response status primitives described below allow the requestor to specify a success specification for each receiver in the communication flow.

통신 흐름 실패는 두 가지 이유로 발생할 수 있다. 먼저, 단순히 수신자와 연락 실패일 수도 있고, 혹은 수신자는 통보 실패라 칭하는(그 반대는 통보 성공이라 함) 것으로서 통보에 대해 결코 응답하지 않을 수도 있다. 두 번째로는, 수신자는 연락될 후에 이어서 요청을 거절하거나, 응답 실패(즉, "아니오") 혹은 응답 성공(즉 "예")라 하는, 응답에 부정적으로 응답할 수도 있다. "아니오" 및 "예"는 통신 흐름을 계속할 목적으로 요청에 대해 수신자가 용인하여 응답하였는지 여부(예를 들면, "예"라고 말함)를 판정할 수 있는 애플리케이션일 뿐이기 때문에, 의미론적 성분을 갖는다. 예를 들면, 응답 성공은 수신자가 문서를 검토하고 이를 수용하는 표시를 하였을 때 일어날 수 있다. 수신자는 "예, 검토를 마쳤다"라고 말하였으면 통신 흐름은 다음 검토자와 계속한다. 한편, 응답 실패는 수신자가 소프트웨어 수정에 대한 요청을 검토하고 이를 거절하였을 때 일어날 수 있다. 수신자는 "아니오, 이 소프트웨어 수정을 하지 않을 것이다"라고 말하였으면 통신 흐름은 종료하거나 에러 처리로 계속하다.Communication flow failures can occur for two reasons. First, it may simply be a failure to contact the recipient, or the recipient may never respond to the notification as what is called a notification failure (or vice versa). Secondly, the recipient may subsequently reject the request after being contacted, or respond negatively to a response, such as a response failure (ie "no") or a response success (ie "yes"). "No" and "Yes" are semantic components because they are only applications that can determine whether the recipient has accepted and responded to the request (eg, saying "yes") for the purpose of continuing the communication flow. Have For example, response success may occur when the recipient has reviewed the document and made an indication to accept it. If the recipient said "Yes, reviewed" then the flow of communication continues with the next reviewer. Response failures, on the other hand, can occur when the recipient has reviewed and rejected a request for software modification. If the receiver says "No, I will not make this software modification", the communication flow ends or continues with error handling.

본 발명의 일 면에 따라서, 통신 흐름 표현들은 도 4에 도시한, 3값 논리 평가자(400)를 사용하여 평가된다. 논리의 3개의 가능한 값들은 단계 420에서 통보 실패(가능할 수도 있음), 단계 450에서 응답 실패(거짓), 및 단계 440에서 응답 성공(참)이다. 도 4에 도시한 바와 같이, 통보 성공은 응답 성공 혹은 응답 실패 전에 일어나는 단계 410에서 확인되는 일시적 상태이므로 직접 나타내어지지 않는다. 대다수의 장치들에 있어서, 수신자로부터의 응답이 수신되었을 때 통보가 수신되었다는 것을 아는 것이 가능할 뿐이다.In accordance with one aspect of the present invention, communication flow representations are evaluated using a trivalue logical evaluator 400, shown in FIG. The three possible values of logic are notification failure (may be possible) at step 420, response failure (false) at step 450, and response success (true) at step 440. As shown in FIG. 4, notification success is a temporary state identified in step 410 that occurs before a response success or a response failure and thus is not directly indicated. For many devices, it is only possible to know that a notification was received when a response from the recipient was received.

성공 표현은 수신자(120)로부터 수신된 응답에 포함될 수 있는 변수들에 대해 3값의 논리 표현을 명시한다. 즉, 일반적으로, 통보는 HTML 폼, VXML 다이얼로그, 혹은 등가의 객체를 포함한다. 예를 들면 폼은 이름을 응답자가 명시된 값들에 연관시킨다. 성공 표현은 응답에서의 값들의 논리 조합들을 테스트하는데, 응답성공이 있다면 연락은 "참"으로 평가하고, 응답 실패가 있다면 연락은 "거짓"으로 평가하고, 아니면, 응답에 더 이상의 시간이 허용되지 않는다면, 통보 실패가 되고 연락은 "가능할 수도 있음"으로 평가된다.The success expression specifies a logical representation of three values for the variables that may be included in the response received from the receiver 120. That is, generally, notifications include HTML forms, VXML dialogs, or equivalent objects. For example, a form associates a name with values specified by the responder. The success expression tests the logical combinations of values in the response, where the contact evaluates to "true" if there is a successful response, the contact evaluates to "false" if there is a response failure, or no longer time is allowed for the response. If not, notification fails and the contact is evaluated as "may be possible".

예를 들면, 클릭되었을 때 버튼의 값을 "참"으로 설정하는, "제출"이라 명명된 단일 버튼을 가진 한 폼을 포함하는 통보를 포함한 HTML 페이지를 고찰한다. 이 페이지에 대한 성공 표현은 "제출=참"이 될 것이다. 주가 변동 통지는 "매입" 혹은 "매각" 값을 취할 수 있는 "액션"이라 명명한 한 쌍의 라디오 버튼들 및 수치값을 취할 수 있는 "물량"이라 명명한 또 다른 필드를 포함할 수도 있을 것이다. 이 페이지에 대한 성공 표현은 "액션=매입 & 물량 > 1000"일 수도 있을 것이다. 성공 테스트는 예를 들면 연락 A를 의미하는, "A ? Submit="true"?,"로서 명시될 수 있고, 응답이 수신되었을 때, 응답이 "참" 값을 파라미터 "제출"에 할당한다면 연락을 "참"인 것으로 정할 수 있다. "제출: 값이 참 이외의 다른 어떤 것이면, "연락은 "거짓"이고 응답 수신에 더 이상의 시간이 허용되지 않으면, 연락은 "maybe"로 평가된다.For example, consider an HTML page containing a notification that contains a form with a single button named "Submit" that, when clicked, sets the value of the button to "True". The success expression for this page will be "Submit = True". The stock price change notification may include a pair of radio buttons named "actions" that may take "buy" or "sell" values and another field named "quantity" that may take numerical values. . The success expression for this page might be "Action = Buy & Quantity> 1000". A success test may be specified as "A? Submit =" true "?," for example, meaning contact A, and if a response is received, if the response assigns a "true" value to the parameter "submit" Can be set to "true". "Submit: If the value is something other than true," contact is "false" and if no more time is allowed to receive a response, the contact is evaluated as "maybe".

2값 논리에 대해 통신 흐름 표현에서 사용되는 3값 논리의 잇점에 대한 예를 예시한다. 어떤 사람이 Joann와 연락하는 것이 성공되면 Tom과 연락하고 아니면 Joan와 contact이 실패되면 Priya와 연락하기를 원하는 것으로 한다. 통상의 2값 논리 프리미티브로서 '-이면' 및 '-아니면'을 사용하면, 이 관계를 다음과 같이 나타낼 수도 있다.An example of the benefits of trivalue logic used in a communication flow representation for bivalue logic is illustrated. Someone wants to contact Tom if he or she is successful in contacting Joann, or to contact Priya if contact with Joan fails. Using the '-side' and '-no' as a common two-valued logic primitive, this relationship may be expressed as follows.

(Joann 이면 Tom) or (Joann 아니면 Priya).(Joann or Tom) or (Joann or Priya).

또한, Joann은 셀 전화를 통해 연락되기를 선호하고, 아니면 이를 실패하면 사무실 전화를 통해서 연락되기를 선호하고, 아니면 이를 실패한 경우 요청을 Jerry에 보내는 것을 선호하는 것을 명시하기 위하여 동일 논리를 사용하는 것으로 하면, 다음과 같다.Joann also uses the same logic to specify that he prefers to be contacted via a cell phone, or prefers to be contacted via an office phone if it fails, or to send a request to Jerry if it fails. As follows.

Cell 아니면 사무소 아니면 Jerry.Cell or office or Jerry.

요청자는 의심의 여지없이 Joann로부터 실제 응답이 온 것에 근거하여 Tom 혹은 Priya와 연락하기를 원하고 Joann는 응답하지 못한 경우에 Jerry에 연락되기를 원할 뿐이기 때문에(즉, Joann가 "아니오"로 응답한 경우), 이러한 공식화엔 본연의 문제들이 있다. 통상의 2값 논리로부터의 모든 이들 결과들을 얻는 것은 불가능하다. 다음 단락에서 다루는 바와 같이, 본 발명의 3값 논리에서, Tom은 Joann가 "예"라고 하면 연락될 뿐이고, Priya는 Joann가 "예"로 응답하지 않은 경우 연락될 뿐이고, Jerry는 Joanna가 전혀 응답하지 못한 경우에만 연락된다.The requester undoubtedly wants to contact Tom or Priya based on the actual response from Joann, and Joann only wants to be contacted Jerry if he / she fails to respond (ie Joann responds with no). In this formulation, there are inherent problems. It is not possible to get all these results from normal bivalue logic. As discussed in the following paragraph, in the tri-value logic of the present invention, Tom is only contacted when Joann says "Yes", Priya is only contacted when Joann does not answer "Yes," and Jerry is not Joanna at all. You will only be contacted if you do not.

통신 흐름 수신자들Communication flow receivers

전술한 바와 같이, 통신 흐름 표현들은 요청에 대해 수신자들을 명시하는 융통성 있는, 일반적인 기술 및 수신자들로부터 수신된 응답들에 응하여 통신을 지휘하는 방법을 제공한다. 예시된 구현에서, 도 5에 도시한, 수신자 선호도 및 역할 데이터베이스(500)는 예를 들면 여기 참고로 포함시키는, M. Wahl etal.,"Lightweight Directory Access Protocol (v3)," RFC 2251 (Dec. 1997)에 기술된 LDAP(Lightweight Directory Access Protocol) 디렉토리로서 구현될 수 있다. 수신자 선호도 및 역할 데이터베이스(500)는 통신 흐름 표현에 나타날 수 있는 수신자들을 기술하는 객체들을 보유한다. 도 5에 도시한 바와 같이, 예시한 수신자 선호도 및 역할 데이터베이스(500)는 각각이 서로 다른 수신자에 연관이 되어 있는 복수의 레코드들(505-520)을 포함한다.As mentioned above, communication flow representations provide a flexible, general technique for specifying recipients for a request and a method of directing communication in response to responses received from the recipients. In the illustrated implementation, the recipient preference and role database 500, shown in FIG. 5, is described, for example, in M. Wahl et al., “Lightweight Directory Access Protocol (v3),” RFC 2251 (Dec. It may be implemented as a Lightweight Directory Access Protocol (LDAP) directory described in 1997). The recipient preference and role database 500 holds objects describing recipients that may appear in the communication flow representation. As shown in FIG. 5, the illustrated recipient preference and role database 500 includes a plurality of records 505-520 each associated with a different recipient.

필드(530)에서 식별되는 각각의 수신자에 대해서, 수신자 선호도 및 역할 데이터베이스(500)는 필드(540)에서 수신자 유형과 필드(550)에서 수신자에 대해 정의된 개인적인 통신 흐름을 식별한다. 필드(540)에 나타날 수 있는 수신자들의 유형들은 사람, 역할, 애플리케이션, 장치, 지정 통신 흐름 혹은 개개의 수신자에 연락하기 위한 방법이다. 사람, 역할 혹은 지정 통신 흐름 객체가 수신자들에 연락하기 위한 통신 흐름 표현을 명시할 수 있는 반면, 개개의 수신자 혹은 애플리케이션(혹은 매체 연락 객체)에 연락하는 방법은 수신자 이름들의 번역에서 단말 객체이다(즉, 객체는 디렉토리 내 더 이상 번역되지 않는다). 객체는 각각에 대한 에이전트로서 작용할 수 있는 개개의 혹은 애플리케이션에 도달하는데 중요한 속성들, 즉 주소, 프로토콜, 타임아웃 및 연락하기 위한 재시도 간격을 포함한다.For each recipient identified in field 530, recipient preference and role database 500 identifies the recipient type in field 540 and the personal communication flow defined for the recipient in field 550. The types of recipients that may appear in field 540 are a person, role, application, device, directed communication flow, or method for contacting an individual recipient. While a person, role, or designated communication flow object may specify a communication flow representation for contacting recipients, the method of contacting an individual recipient or application (or media contact object) is a terminal object in the translation of recipient names ( The object is no longer translated in the directory). The object contains attributes that are important for reaching an individual or application that can act as an agent for each, namely address, protocol, timeout, and retry interval for contacting.

동적 통신 흐름 표현 대치라 칭한, 본 발명의 또 다른 면에 따라서, 수신자 선호도 및 역할 데이터베이스(500) 내 정보에 수신자 이름들을 결합하는 것은 연락 시간까지 지연된다. 따라서, 본 발명의 지체 결합 특징은 시스템(100)이 CEO에 통지하는 것을 시도하기 시작할 때까지 이를테면 회사의 CEO와 같은 역할로서 기술된수신자가 변경될 수 있음을 의미한다. 또한, 이를테면 사무실 전화번호와 같은 수신자의 개인적 통신 흐름은 여행 중엔 다른 전화로 변경될 수 있고 여행 시작 전에 제출된 요청에 의해 여전히 성공적으로 사용될 수 있다.According to another aspect of the invention, referred to as dynamic communication flow representation replacement, combining recipient names with information in recipient preference and role database 500 is delayed until contact time. Thus, the delay coupling feature of the present invention means that the recipient described as a role such as the CEO of the company may be changed until the system 100 begins to attempt to notify the CEO. In addition, the recipient's personal communication flow, such as an office telephone number, can be changed to another phone during the trip and still be successfully used by requests submitted prior to the start of the trip.

수신자가 매체 연락에 의해 연락되었을 때 수신자는 자신의 통신 흐름 표현을 다른 통신 흐름 표현으로 바꿀 것을 요청할 수 있다. 이에 따라 수신자는 보다 많은 적합한 수신자들에게 동적으로 작업들을 넘길 수 있게 된다. 또한 이에 따라 수신자들은 통신 흐름에, 4시간 지난 후에 요청을 처리하라는 리마인더(reminder)를 발생하는 "+04:00 후 Joann에게"라는 지연 문구(clause)를 구비한 통신 흐름으로 대치시킴으로써 작업을 지연시킬 수도 있다.When the receiver is contacted by media contact, the receiver may request to change his communication flow representation to another communication flow representation. This allows the recipient to hand over tasks dynamically to more eligible recipients. Also, the receiver delays the task by replacing the communication flow with a communication flow with a delay phrase "to Joann after +04: 00" that generates a reminder to process the request after 4 hours. You can also

도 5는 서로 상이한 유형들의 수신자들을 예시한 수신자 선호도 및 역할 데이터베이스(500) 내 다수의 객체들을 제공한다. 수신자 선호도 및 역할 데이터베이스(500)에 채용된 프리미티브들에 대해선 이하 "프리미티브" 제하의 단락에서 기술한다. 예를 들면, 레코드(505)에 나타낸 바와 같이, 수신자 "Joann"은 모든 요청들에 대한 개인적인 통신 흐름을 다음과 같은 표현으로 명시한다.5 provides a number of objects in the recipient preference and role database 500 illustrating different types of recipients. Primitives employed in the recipient preference and role database 500 are described below in the section under "Primitives". For example, as shown in record 505, recipient " Joann " specifies the personal flow of communication for all requests in the following representation.

(cell races email) delegates Jerry(cell races email) delegates Jerry

따라서, Joann에 연락할 때, Joann의 셀 전화에 전화를 걸어 이메일이 동시에 Joann에게 보내질 것이다. Joann이 응답하지 않는다면, Joann에 대해 요청을 취하기 위해서 Jerry에 연락되어야 한다(Jerry에 대한 개인적인 통신 흐름에 따라서). Joann이 요청에 응답한다면, Jerry에겐 결코 연락되지 않는다.Therefore, when you contact Joann, you will call Joann's cell phone and an email will be sent to Joann at the same time. If Joann doesn't respond, Jerry must be contacted (according to personal communication flow to Jerry) to make a request for Joann. If Joann responds to the request, Jerry is never contacted.

레코드(510)에 나타낸 예에서, 역할 SysAdmin은 현재의 시프트에 대해서 요청들을 관리자에 발송하기 위한 개인적인 통신 흐름을 명시한다.In the example shown in record 510, the role SysAdmin specifies a personal communication flow for sending requests to the administrator for the current shift.

(Sam between 0:800-16:59 or Sue between 17:00-00:59 or Greg between 01:00-07:59) delegates SysAdmin(Sam between 0: 800-16: 59 or Sue between 17: 00-00: 59 or Greg between 01: 00-07: 59) delegates SysAdmin

레코드(510)에서 역할은 오전 8시에 시작하는 근무일 동안의 특정 시간 동안 일하는 시스템 관리자에게 요청들을 보낸다. 요청 처리의 제1 작업 일 동안에 어떠한 관리자와도 연락될 수 없다면, 괄호 내 문구는 실패되고 재귀적인 SysAdmin 참조를 통해 다음 날 동안에 연락 시도가 반복된다.In record 510 the role sends requests to the system administrator working for a specific time during the workday starting at 8:00 am. If no administrator can be contacted during the first working day of request processing, the phrase in parentheses fails and the attempt to contact the next day is repeated through a recursive SysAdmin reference.

수신자에의 재귀적 참조, 예를 들면 SysAdmin 역할에서의 참조는 다른 종료 조건이 존재하는 통신 흐름에서의 순차적인 프리미티브에 따르는 것만이 허용되는 것에 유의한다. SysAdmin 예에서, 응답이 수신되었을 땐 참 혹은 거짓으로 혹은 요청자가 설정한 타임아웃에 이르렀을 땐 통지 실패(가능할 수도 있음)로 끝나게 된다.Note that a recursive reference to the receiver, eg a reference in the SysAdmin role, is only allowed to follow sequential primitives in the communication flow where other termination conditions exist. In the SysAdmin example, the response ends either true or false when a response is received, or a notification failure (possibly possible) when the requestor sets a timeout.

이러한 사전조치로도, 디렉토리 내 순환하는 이름 참조를 통해 루프가 되는 것이 가능하다. 예를 들면, Joann의 통신 흐름 표현은 "Tom"을 말할 수 있고 Tom의 통신 흐름 표현은 "Joann"을 말할 수 있다. 이 경우에도, 동시 재귀 참조와 순차 재귀 참조가 서로 구별되므로 제어되지 않은 자원 의존적 루프가 되는 것이 회피된다. 다른 종료 조건 없이 모든 동시 순환 참조와 순차적 순환 참조는 이름 번역 이력의 분석을 통해 방지된다. Joann 및 Tom에 관한 이전의 예는 에러가 될 것이지만, 다음의 상황은 수락가능할 것이다. 왜냐하면, Joann의 통신 흐름 표현은 이메일을 통해 연락을 시도하며 실패시 Tom에게 위임하고 Tom의 통신 흐름 표현은단순히 Joann에게 다시 일임한다(Tom은 휴가 중에 있으므로). 빠르게 혹은 장기간 동안 동일 수신자들에게로 루프하는 요청들에 대한 최종의 사전조치로서, 통신 흐름 표현은 수신자에게 명시된 최대 수의 연락 시도를 초과하였을 때 에러가 리턴될 수 있다.Even with these precautions, it is possible to loop through name references in the directory. For example, Joann's communication flow representation can say "Tom" and Tom's communication flow representation can say "Joann". Even in this case, the simultaneous recursive reference and the sequential recursive reference are distinguished from each other, thereby avoiding an uncontrolled resource dependent loop. All concurrent circular and sequential circular references are avoided by analyzing the name translation history without any other termination condition. The previous example for Joann and Tom would be an error, but the following situation would be acceptable. Because Joann's communication flow representation attempts to contact him via email and delegates to Tom in case of failure, Tom's communication flow representation simply leaves the Joann back (because Tom is on vacation). As a final precaution for requests that loop to the same recipients quickly or for a long time, the communication flow representation may return an error when the maximum number of contact attempts specified for the recipient has been exceeded.

도 5에 예들을 계속하면, 레코드(415) 내 지정 통신 흐름 "검토자들"은 검토를 위해 동시에 연락되어야 하는 수신자 리스트를 명시한다.Continuing the examples in FIG. 5, the designated communication flow "reviewers" in the record 415 specify a list of recipients to be contacted at the same time for review.

Chris, Jerry, Benji, JennyChris, Jerry, Benji, Jenny

검토자들에게의 요청은 모든 검토자들이 성공적으로 응답하였을 때 성공한다. "통신 흐름 프리미티브s" 제하의 단락에서 후술하는 바와 같이, 이 리스트에 대한 성공 기준을 변경하기 위해서 "votes" 프리미티브가 사용될 수 있다. 예를 들면,Requests to reviewers are successful when all reviewers respond successfully. As described below in the paragraph under "Communication Flow Primitives", the "votes" primitive may be used to change the success criteria for this list. For example,

reviewers votes 2reviewers votes 2

는 두 검토자들이 성공적으로 응답하였을 때 성공적으로 완료된다.Is successfully completed when both reviewers respond successfully.

수신자 선호도 및 역할 데이터베이스(500) 내 매체 연락 객체들은 에이전트들일 수도 있는 것에 유의한다. 예를 들면, 월력 에이전트는 다음 통신 흐름에 조합된 3개의 매체 연락들을 공급할 수 있을 것이다.Note that the media contact objects in the recipient preference and role database 500 may be agents. For example, the monthly agent may supply three media contacts combined in the next communication flow.

HoldCal ten (Cell then ScheduleCal else CancelCal)HoldCal ten (Cell then ScheduleCal else CancelCal)

HoldCal이 요청된 사용가능한 데이터를 발견한다면, 회합 목적을 찬성하기 위해서 셀 전화를 통해 사용자에게 연락된다. 사용자가 회합 목적에 찬성한다면, 회합 시간을 예정하고, 그렇지 않으면 회합은 취소된다.If HoldCal finds the requested available data, it is contacted via the cell phone to approve the meeting purpose. If the user agrees with the purpose of the meeting, the meeting time is scheduled, otherwise the meeting is canceled.

LDAP 디렉토리 트리LDAP directory tree

도 6은 다수의 수신자들의 개인 명명 콘텍스트를 나타내는 LDAP 디렉토리 트리(600) 부분을 예시한 것이다. LDAP 디렉토리 트리(600)는 수신자 선호도 및 역할 데이터베이스(500)에 기록된 사용자 산호도 정보의 표현이다. 예를 들면, 도 6에 도시한 LDAP 디렉토리 트리(600)는 수신자 Joann에 대한 개인 명명 콘텍스트(610), 및 수신자 Tom에 대한 개인 명명 콘텍스트(620)를 포함한다. 수신자 Joann에 대한 개인 명명 콘텍스트(610)는 규칙들, 통신 흐름 표현s 및 매체 연락들을 정의하고 있다. 수신자 Tom은 내정된 규칙들, 통신 흐름 표현 및 매체 연락들을 사용한다.6 illustrates a portion of an LDAP directory tree 600 that represents a personal naming context of multiple recipients. LDAP directory tree 600 is a representation of user coral degree information recorded in recipient preference and role database 500. For example, the LDAP directory tree 600 shown in FIG. 6 includes a personal naming context 610 for recipient Joann, and a personal naming context 620 for recipient Tom. The personal naming context 610 for the recipient Joann defines rules, communication flow representations, and media contacts. The recipient Tom uses the default rules, communication flow representation and media contacts.

통신 흐름 규칙들 및 파라미터들Communication flow rules and parameters

통신 흐름 규칙들은 수신자 이름을 특정한 개인 통신 흐름 표현으로 언제 번역할 것인가를 명시한다. 수신자들은 특정한 요청에 대해 어느 개인 통신 흐름 표현을 사용할 것인가를 제어하기 위해서, 이를테면 타이틀 및 요청자 파라미터들과 같은 요청의 파라미터들에 관한 조건을 명시할 수 있다. 예를 들면, 수신자들은 어떤 토픽들이 타이틀로 표현되었을 때 이들 토픽을 선택할 수 있고, 혹은 셀 전화를 통해 즉각적인 처리를 위해 요청자들을 선택할 수 있다. 이들은 나중에 처리하기 위해 이메일 혹은 웹을 통해 다른 유형들의 요청들을 선택할 수 있다.Communication flow rules specify when to translate a recipient's name into a specific personal communication flow representation. Recipients can specify conditions regarding parameters of the request, such as title and requestor parameters, to control which personal communication flow representation to use for a particular request. For example, recipients can select these topics when some topics are represented by title, or select requesters for immediate processing via cell phone. They can choose different types of requests via email or the web for later processing.

다른 선호도에 기반을 둔 시스템들과는 달리, 통신 흐름 관리자(1300) 내 선호도 처리는 요청 배송 처리에 필수적인 일반적인 메커니즘이다. 수신자(120)의규칙들 및 개인 통신 흐름 표현들은 이 수신자(120)에 대한 개인 명명 콘텍스트(610)을 수립한다. 수신자의 규칙들 혹은 통신 흐름 표현들에서 수신자의 이름과 이름들은 수신자의 콘텍스트에 대해 번역된다. 다른 콘텍스트 기반의 명명 시스템과는 달리, 이 규칙 기반의 선호도 처리는 이름들의 글로벌 의미를 모호하게 하지 않는다. 글로벌 이름들은 볼 수 있는 상태에 있고 모두가 사용할 수 있다. 이러한 이유로, 수신자들은 이들이 특정 유형들의 요청들을 다른 어떤 사람에게 위임하기 원한다는 것을 명시하기 위해 글로벌 이름들을 쉽게 사용할 수 있다. 개인 명명 콘텍스트(610)는 의미있는 글로벌 이름들을 지원하면서도 수신자의 콘텍스트에 의미있고 적합한 번역을 수행한다.Unlike systems based on other preferences, preference processing in communication flow manager 1300 is a general mechanism essential for request delivery processing. The rules of the recipient 120 and the personal communication flow representations establish a personal naming context 610 for this recipient 120. The receiver's name and names in the receiver's rules or communication flow representations are translated for the receiver's context. Unlike other context-based naming systems, this rule-based affinity handling does not obscure the global meaning of names. Global names are visible and available to everyone. For this reason, recipients can easily use global names to specify that they want to delegate certain types of requests to someone else. Personal naming context 610 supports meaningful global names while performing a meaningful and appropriate translation in the recipient's context.

따라서, 도 6에 도시한 바와 같이, Joann에 대한 개인 명명 콘텍스트(610)는 3개의 통신 흐름 규칙들, 즉, 관리자 규칙(630), 패밀리 규칙(640) 및 사무처리 규칙(650)에 대응하는 노드들을 포함한다. 수신자 Joann에 대한 개인 명명 콘텍스트(610)과 같은 각각의 수신자의 개인 명명 콘텍스트는 LDAP 디렉토리 트리(600) 내 그들의 InetOrgPerson {RFC2798} 혹은 InetOrgRole 객체를 루트로 하는 서브-트리로서 수립된다. InetOrgPerson 객체는 사람들??에 관한 연락 정보를 기술하기 위한 LDAP 표준 객체이며, InetOrgRole 객체는 LDAP 표준 객체 부류 OrgRole {RFC2256}의 서브-부류이다. 예를 들면, 도 6에서, Joann의 개인 명명 콘텍스트(610)은 InetOrgPerson 노드 라벨의 "UID=joann"을 루트로 한다.Thus, as shown in FIG. 6, the personal naming context 610 for Joann corresponds to three communication flow rules, namely, administrator rule 630, family rule 640, and clerical rule 650. Contains nodes. Each recipient's personal naming context, such as personal naming context 610 for recipient Joann, is established as a sub-tree rooted at their InetOrgPerson {RFC2798} or InetOrgRole object in LDAP directory tree 600. The InetOrgPerson object is an LDAP standard object for describing contact information about people, and the InetOrgRole object is a sub-class of the LDAP standard object class OrgRole {RFC2256}. For example, in Figure 6, Joann's personal naming context 610 is rooted at "UID = joann" in the InetOrgPerson node label.

각각의 개인 명명 콘텍스트(610)은 통신 흐름 규칙들, 지정 통신 흐름, 및 매체 연락 객체들로서, 통신 흐름 표현 처리에 관련된 3 유형들의 객체들을 구비할수 있다. 도 6에서, 개인 명명 콘텍스트(610)에서 맨 위의 3개의 엔트리들(630,640,650)은 명칭들이 MgrRule, FamilyRule and PaperwrkR인 3개의 통신 흐름 규칙들을 나타낸다. 노드들(660,670,680)은 각각 웹, 셀 및 이메일의 명칭들을 가진 3개의 매체 연락 객체들에 대응한다. 노드들(690, 695)은 2개의 지정 통신 흐름 표현인 UrgentCF and RelaxedCF에 상응한다.Each personal naming context 610 may have three types of objects related to communication flow representation processing, as communication flow rules, directed communication flow, and media contact objects. In FIG. 6, the top three entries 630, 640, 650 in the personal naming context 610 represent three communication flow rules, the names MgrRule, FamilyRule and PaperwrkR. Nodes 660,670,680 correspond to three media contact objects with names of web, cell and email, respectively. Nodes 690 and 695 correspond to two designated communication flow representations, UrgentCF and RelaxedCF.

Joann에 의해 명시된 이를테면 관리자 규칙(630), 패밀리 규칙(640), 사무처리 규칙(650)과 같은 통신 흐름 규칙들은 수신자 선호도 및 역할 데이터베이스(500)에 정의될 것이다. 관리자 규칙(630), 패밀리 규칙(640), 사무처리 규칙(650)을 정의하는 수신자 선호도 및 역할 데이터베이스(500)로부터 대응하는 객체들을 도 7에 도시하였다. 구체적으로, 수신자 선호도 및 역할 데이터베이스(500)는 관리자 규칙(630)을 정의하는 레코드(710), 패밀리 규칙(640)을 정의하는 레코드(720), 및 사무처리 규칙(650)을 정의하는 레코드(730)를 포함한다.Communication flow rules specified by Joann, such as administrator rules 630, family rules 640, clerical rules 650, will be defined in the recipient preference and role database 500. Corresponding objects from the recipient preference and role database 500 defining administrator rule 630, family rule 640, clerical rule 650 are shown in FIG. Specifically, the recipient preference and role database 500 includes records 710 that define administrator rules 630, records 720 that define family rules 640, and records that define clerical rules 650. 730).

도 7에 도시한 바와 같은 각각의 통신 흐름 규칙은 다음의 4개의 속성으로서, 활성, 순서, 조건, 및 통신 흐름 표현을 포함한다. 활성은 "예" 혹은 "아니오"로 설정된다. 비활성, 즉 "아니오"로 설정된 규칙들은 수신자의 이름을 개인 통신 흐름으로 번역할 때 고려되지 않는다. 순서 속성은 평가를 위해서 수신자의 명명 콘텍스트(610)의 모든 활성 규칙들에 순서를 정하는데 사용된다. 순서대로 각 규칙의 조건이 차례대로 테스트된다. 조건은 이를테면, 등식, 부등식, 범위, 및 정규 표현 매칭과 같이 속성 값 비교들로 구성된 논리적 표현이다. 일단 조건이 만족되면, 수신자의 이름은 요청을 배송할 목적으로 동반된 통신 흐름 표현으로번역된다. MgrRule에 대한 조건은 사용자명 혹은 uid에 의해 특정의 요청자들에 대해 테스트한다. FamilyRule에 대한 조건은 "Family"로 시작하는 타이틀들에 대해 테스트한다. PaperwrkR에 대한 조건은 항시 만족된다. PaperwrkR은 다른 규칙 어느 것도 만족되지 않을 때 적용되는 내정된 규칙이다. 이러한 이유로, 이의 순번은 가장 높은 수이다.Each communication flow rule as shown in FIG. 7 includes the following four attributes: active, order, condition, and communication flow representation. Active is set to "yes" or "no". Rules that are set to inactive, ie no, are not taken into account when translating the recipient's name into the personal communication flow. The order attribute is used to order all active rules of the recipient's naming context 610 for evaluation. In order, the conditions of each rule are tested in turn. A condition is a logical expression consisting of attribute value comparisons, such as equality, inequality, range, and regular expression matching. Once the condition is met, the recipient's name is translated into the accompanying communication flow representation for the purpose of delivering the request. The condition on MgrRule is tested for specific requestors by username or uid. The condition on FamilyRule tests for titles beginning with "Family". The conditions for PaperwrkR are always met. PaperwrkR is a default rule that applies when none of the other rules are satisfied. For this reason, its turn number is the highest number.

도 7에 도시한 바와 같이, 레코드들(710, 720, 730)에서의 예시한 규칙들 각각은 적어도 한 지정 통신 흐름 표현(urgentCF(690) 혹은 relaxedCF(695))을 참조한다. rgentCF 혹은 relaxedCF 통신 흐름 표현은 다음과 같이 수신자 선호도 및 역할 데이터베이스(600)에 지정 통신 흐름 표현으로서 정의될 수 있다.As shown in FIG. 7, each of the illustrated rules in records 710, 720, 730 refers to at least one designated communication flow representation (urgentCF 690 or relaxedCF 695). The rgentCF or relaxedCF communication flow representation may be defined as a designated communication flow representation in the recipient preference and role database 600 as follows.

UrgentCF: cell races officephone races homephoneUrgentCF: cell races officephone races homephone

RelaxedCF: email races web.RelaxedCF: email races web.

그러므로, 지정 통신 흐름 표현에 의해서 수신자 Joann은 규칙에 명시된 조건들에 근거하여 연락되기 위한 각종의 규칙들을 수립할 수 있다.Therefore, the designated communication flow expression allows the recipient Joann to establish various rules for being contacted based on the conditions specified in the rules.

규칙들을 구성할 때, 공통적인 연락방법들을 위한 지정 통신 흐름 표현을 생성하는 것이 유용하다. 그러므로, 수신자는 지정 통신 흐름 표현에서 특정한 선호도를 1회 갱신할 수 있고, 변경된 지정 통신 흐름 표현을 참조하는 모든 통신 흐름 규칙들은 자동으로 갱신된다. 그러면 규칙들은 간혹 다양한 목적을 위해, 명명된 동일 통신 흐름을 사용하여, 명명된 흐름들을 참조할 수 있다. 단순히, PaperwrkR 규칙은 지정 통신 흐름(relaxedCD(695))을 사용한다. MgrRule 규칙은 수신자에 긴급으로 연락을 취할 수 있을 때에 대한 시간적 제약을 두며, 항시 느슨한 연락 통신 흐름을 사용한다. FamilyRule 규칙은 모든 사용가능한 매체 연락들을 사용한다.When constructing rules, it is useful to create a specific communication flow representation for common contact methods. Therefore, the receiver can update a particular preference in the designated communication flow representation once, and all communication flow rules referencing the changed designated communication flow representation are automatically updated. Rules may then refer to named flows, sometimes using the same named communication flow, for various purposes. Simply, PaperwrkR rules use a specified communication flow (relaxedCD 695). The MgrRule rule places a time constraint on when the recipient can be contacted urgently and always uses a loose contact flow. FamilyRule rules use all available media contacts.

통신 흐름 규칙들에 의해서 기업 고용인들은 에스컬레이션 긴급 응답을 제공할 수 있다. 예를 들면, 기업은 고객으로부터의 요청에 즉시 응답해야 하고, 요청은 "긴급 업무"라는 키워드를 포함하는 타이틀로 고객으로부터 수신된 것으로 가정한다. 또한 기업의 적어도 한 고용인은 다음과 같은 통신 흐름 규칙을 명시한 것으로 가정한다.Communication flow rules allow corporate employees to provide escalation emergency responses. For example, suppose a company must immediately respond to a request from a customer, and the request is received from a customer with a title that includes the keyword "emergency work." It is also assumed that at least one employee of the enterprise has specified the following communication flow rules:

Title="*Urgent Business*";Title = "* Urgent Business *";

Communication flow: (cellphone races pager) before +0: 05 delegates managerCommunication flow: (cellphone races pager) before +0: 05 delegates manager

"관리자"는 적격의 관리자를 찾기 위해서 수신자 디렉토리에서 관리자 링크를 사용하는 내정된 지정 통신 흐름이다. 에스컬레이션 규칙은 "긴급 업무"라는 키워드를 포함하는 타이틀로 요청이 수신되었을 때 작용될 것이다. 고용인이 자신의 셀 전화 혹은 페이저로 5분 이내에 응답하지 않는다면, 요청은 "관리자"로 올라간다."Administrator" is a default designated communication flow that uses an administrator link in the recipient directory to find a qualified administrator. The escalation rule will work when a request is received with a title containing the keyword "emergency task." If the employee does not respond within five minutes on his cell phone or pager, the request goes up to the "manager".

통상, 에스컬레이션을 달성하는 통신흐름은 다음 레벨로 올라가기 전에 요청이 취소되는 위임 프리미티브를 채용한다. 다른 변형 예에서, 통신흐름은 체인에서 먼저 사람에게의 미결 요청들을 취소시키지 않고 에스컬레이션을 달성할 수 있다. 예를 들면, 다음 예의 통신 흐름은 체인에서 먼저 사람에게의 미결 요청들을 취소시키지 않고 에스컬레이션을 달성한다.Typically, a communication flow that achieves escalation employs a delegation primitive where the request is canceled before going to the next level. In another variation, the communication flow may achieve escalation without first canceling open requests to the person in the chain. For example, the following example communication flow achieves escalation without first canceling open requests to the person in the chain.

(Tom else Manager) races (Manager after +04: 00).(Tom else Manager) races (Manager after +04: 00).

이 통신흐름은 초기에는 Tom에게만 연락할 것이며, 초기 응답이 실패하면 즉각, 정해진 관리자에 연락할 것이다. 또한, 요청은 4시간 후에 관리자에게 올라가게 될 것이며 Tom 혹은 관리자로부터의 첫 번째 응답만이 받아들여질 것이다. 통지 및 응답 시스템(100)은 소정의 요청이 왜 취소되었는지에 관한 정보를 선택적으로 유지할 수 있고 취소된 요청에 연관된 수신자에게 이러한 정보를 제공할 수 있는 것에 유의한다.This communication flow will initially only contact Tom, and will immediately contact the designated manager if the initial response fails. Also, the request will go up to the manager after 4 hours and only the first response from Tom or the manager will be accepted. Note that the notification and response system 100 can optionally maintain information regarding why a given request was canceled and provide this information to the recipient associated with the canceled request.

이러한 통신 흐름 표현에서, 수신자가 지명한 관리자가 통신 흐름에서 동시에 2회 활성으로 될 수 있다는 사실에도 불구하고 관리자에 1회 연락하도록 최적화가 사용된다. 수신자명의 각 예는 이를 요청에 사용한 엔터티, 즉 요청자에 의해서, 혹은 개인 통신 흐름을 제공한 사람 혹은 역할에 의해 소유된다. 수신자명들이 동일 객체/수신자를 확인하고 수신자명들의 소유자들이 동일하다면, 수신자는 이들 이름들에 대해 1회 연락될 뿐이다. 소유자들이 다르다면, 수신자는 소유자의 위임과는 다른 방식들로 행동하기를 원하는 것으로 가정되므로 수신자는 누가 수신자에게 요청을 위임하였는가에 관한 것을 갖고 1회 이상 연락된다.In this communication flow representation, an optimization is used to contact the manager once, despite the fact that the manager nominated by the recipient can be active twice in the communication flow at the same time. Each example of the recipient name is owned by the entity that used it in the request, either by the requester or by the person or role that provided the personal communication flow. If the recipient names identify the same object / recipient and the owners of the recipient names are the same, the recipient is only contacted once for these names. If the owners are different, it is assumed that the recipient wants to behave in a manner different from the owner's delegation, so that the recipient is contacted one or more times about who delegated the request to the recipient.

수신자 선호도 및 역할 데이터베이스(500) 및 LDAP 디렉토리 트리(600)에 기록되고 도 5-7을 참조로 전술한 사용자 선호도들은 존재 및 가용성 정보에 의해 수정될 수 있다. 예를 들면, 수신자는 자신의 선호도들을 다음과 같이 명시할 수 있다.The user preferences recorded in the recipient preference and role database 500 and the LDAP directory tree 600 and described above with reference to FIGS. 5-7 may be modified by presence and availability information. For example, the recipient can specify his preferences as follows:

(present (cell) then cell) delegates (present (email) then email)(present (cell) then cell) delegates (present (email) then email)

본 기능은 셀 매체 연락에 사용할 수 있는 수신자 및 장치 정보로 현존의 서버에 연락하다. 현존의 서버가 셀 전화가 켜져 있음을 나타내면, 본 기능은 "참"을 리턴한다. 그렇지 않다면, "가능할 수도 있음"을 리턴한다. 유사하게, 수신자가 이메일 매체 연락을 위해 네트워크 상에 있다면, 본 기능은 "참"을 리턴한다. 그렇지 않다면, "가능할 수도 있음"을 리턴한다. 수신자가 셀 전화 상에 있다면, 수신자는 셀 전화로 연락된다. 수신자가 부재중이거나 연락할 수 없다면, 네트워크가 체크되고 이에 수신자가 있다면 이메일이 보내진다. 본 기능은 현존 서버에 의해 제공되는 특징에 따라 다소 복잡할 수 있다. 통신 흐름 규칙들에 의해서 수신자들은 이들에 현존의 서버를 통해 어느 요청자들 혹은 유형들의 요청에 액세스할 수 있는가를 제한시킬 수 있는 것에 유의한다.This function contacts an existing server with recipient and device information that can be used for cell media contact. If the existing server indicates that the cell phone is on, the function returns "true". Otherwise, it returns "may be possible". Similarly, if the recipient is on the network for email media contact, the function returns "true". Otherwise, it returns "may be possible". If the receiver is on the cell phone, the receiver is contacted by the cell phone. If the recipient is absent or unreachable, the network is checked and an email is sent if there is a recipient. This functionality can be somewhat complex depending on the features provided by the existing server. Note that communication flow rules allow recipients to restrict which requesters or types of requests can access them through existing servers.

존재 및 가용성 정보의 또 다른 응용에서, 매체 연락은 존재 정보가 실패할(예를 들면, 셀 전화가 끊어진 경우) 통신시도(예를 들면 전화 호)를 생략함으로써 행동을 최적화할 수 있다. 단순히 매체 연락은 시도된 전화 호가 실패한 것처럼 하여 계속할 수 있다.In another application of presence and availability information, media contact can optimize behavior by omitting a communication attempt (eg, a telephone call) where presence information will fail (eg, when the cell phone is disconnected). Media contact can simply continue as if the telephone call attempted failed.

사용자 선호들은 기업에 의해 결정될 수도 있다. 예를 들면, 기업은 고객의 지분 이력에 근거하여, 고객에게 침해도가 증가한다는 통보를 보낼 수 있다. 예를 들면, "위임" 프리미티브에 대해 후술하는 바와 같이, 지불 이력이 안 좋은 고객들은 자동 전화 호에 의해 1차 연체통보를 받을 수 있고 미수금 처리 대행 회사를 통해 2차 통보를 받을 수 있다. 평균적인 지불 이력을 가진 고객들은 우편 서비스로 1차 연체통보를 받을 수 있고 자동 전화 호로 2차 통보를 받고 미수금 처리 대행회사를 통해 3차통보를 받을 수 있다.User preferences may be determined by the enterprise. For example, a company may send a notification to a customer that an increase in infringement is based on the customer's stake history. For example, as discussed below for the "Delegation" primitive, customers with poor payment history may receive a first overdue notice by automated telephone call and a second notice through a collection agency. Customers with an average payment history can receive a first overdue notice by postal service, a second notice by automatic telephone call, and a third notice through a collection agency.

디렉토리 내정들 및 발견적 방법들Directory Intents and Heuristics

도 13을 참조로 후술하는 통신 흐름 관리자(1300)은 빠른 설치와 용이한 사용을 위해서 LDAP 디렉토리 트리(600)(도 6)에 내정 디렉토리들을 채용한다. 통신 흐름 관리자(1300)는 디렉토리를 탐색할 때 발견적 방법(heuristics)을 채용함으로써 사용의 용이함을 향상시킨다. 통신 흐름 관리자(1300)가 먼저 기업에 설치되었을 때, 통신 흐름 관리자(1300)는 현존의 기업 LDAP 디렉토리(500)에서 동작할 것이다. 기업 LDAP 디렉토리(500)의 구성에 관한 정보 외에도, 통신 흐름 관리자(1300)는 이의 애플리케이션에 특정한 객체들(즉, 통신 흐름들, 통신 흐름 규칙들, 매체 연락, 향상된 역할 및 구성 객체들)을 위한 객체 부류들의 생성을 요한다.Communication flow manager 1300, described below with reference to FIG. 13, employs default directories in LDAP directory tree 600 (FIG. 6) for quick installation and easy use. The communication flow manager 1300 enhances ease of use by employing heuristics when searching the directory. When the communication flow manager 1300 is first installed in an enterprise, the communication flow manager 1300 will operate in an existing corporate LDAP directory 500. In addition to the information regarding the organization of the corporate LDAP directory 500, the communication flow manager 1300 is also available for objects specific to its application (ie, communication flows, communication flow rules, media communications, enhanced roles and configuration objects). Requires creation of object classes.

통신 흐름 관리자(1300)는 이의 구성과 이의 다른 객체들의 내정된 것들을 저장할 수 있는 디렉토리 서브-트리(600)의 생성을 요한다. 내정 디렉토리들은 기업 디렉토리에 이미 존재하는 사람들 및 역할들에 통신 흐름 서비스들을 제공하는데 사용된다. 이들 사람들 및 역할들은 수신자들 및 이들의 기업 재량으로 개인화된 통신 흐름들 및 규칙들에 의해 향상될 수 있다.The communication flow manager 1300 requires the creation of a directory sub-tree 600 that can store its configuration and the internals of its other objects. Internal directories are used to provide communication flow services to people and roles that already exist in the corporate directory. These people and roles may be enhanced by communication flows and rules personalized at the recipient and their corporate discretion.

매체 연락 객체들의 내정 인스탄스들은 사용자 자신의 매체 연락 개첵들을 명시하는 이들 사용자들도 사용할 수 있는 대치기능을 사용한다. 매체 연락 객체에서 주소 필드는 의도된 수신인의 LDAP 디렉토리 엔트리에 속성명을 명시하기 위해서 꺽쇠 괄호를 사용할 수 있다. 이 속성의 값은 - 존재하다면- 객체 검색에서 꺽쇠 괄호로 묶은 속성명을 주소 필드에 대치시킨다. 예를 들면, <mobile>은 매체 연락 객체 주소 필드를, 의도된 수신자 Joann을 기술하는 inetOrgPerson 객체의 mobile 값으로 채운다. 보다 정교한 대치 기술들이 가능하며 이들 기술들은 본 발명의 범위 내에 있다.The default instances of media contact objects use a replacement function that is available to these users that specify their own media contact concepts. The address field in the media contact object may use angle brackets to specify the attribute name in the intended recipient's LDAP directory entry. The value of this attribute-if present-replaces the attribute name enclosed in angle brackets in the object search in the address field. For example, <mobile> populates the Media Contact Object Address field with the mobile value of the inetOrgPerson object that describes the intended recipient Joann. More sophisticated replacement techniques are possible and these techniques are within the scope of the present invention.

매체 연락 객체들의 내정 인스탄스들과 더불어, 통신 흐름 관리자(1300)는 내정된 지정 통신 흐름 표현 및 내정 통신 흐름 규칙을 생성한다. 예시한 통지 및 응답 시스템(100)에서, 내정은 모든 요청을 수신자의 이메일 계좌 및 웹 포탈, 즉 이메일 race 웹에 보내는 것이다. 모든 내정들은 기업 요구에 맞게 기업에 의해 변경될 수 있고, 내정 객체들은 사용자 자신들의 개인 통신 흐름 표현 및 통신 흐름 규칙을 구성하고 있는 이들 사용자들이 사용할 수 있다.In addition to the default instances of the media contact objects, the communication flow manager 1300 generates a default designated communication flow representation and a default communication flow rule. In the illustrated notification and response system 100, the intent is to send all requests to the recipient's email account and web portal, i.e., the email race web. All internals can be changed by the enterprise to suit corporate needs, and internal objects can be used by those users who construct their own personal communication flow representations and communication flow rules.

엔트리들의 구별적 완전한 이름들은 성가시고 비직관적일 수 있다. 이에 따라, 통신 흐름 관리자(1300)는 필요로 하는 객체들을 찾기 위해서 짧은 이름들로 발견적 방법에 의한 탐색을 사용한다. 객체의 구별적 완전한 이름은 통신 흐름 표현에서 꺽쇠 괄호에 이 차별적 이름을 넣음으로써 명시되며, 예를 들면, 다음과 같다. <uid=joann, ou=people, o=research.avaya.com>. 짧은 이름들은 이들 예에서만 사용되었다.Distinguishing full names of entries can be cumbersome and unintuitive. Accordingly, communication flow manager 1300 uses a heuristic search with short names to find the objects it needs. The distinguished full name of the object is specified by putting this distinctive name in angle brackets in the communication flow representation, for example: <uid = joann, ou = people, o = research.avaya.com>. Short names are used only in these examples.

이름에 접하게 되었을 때, 통신 흐름 관리자(1300)는 적합할 때, 사람들, 역할들, 지정 통신 흐름들 혹은 개인 명명 콘텍스트에 관한 정보를 저장하는데 사용되는 디렉토리 서브-트리(들), 예를 들면 610, 620을 탐색한다. 통신 흐름관리자(1300)는 짧은 이름을, 서브-트리 내 엔트리들의 상대적 구별적 이름들과 비교함으로써 탐색한다. 일치되는 것이 없으면, 통신 흐름 관리자(1300)는 에러를 리턴하기 전에 이의 내정 디렉토리를 탐색한다.When encountering a name, the communication flow manager 1300, when appropriate, is a directory sub-tree (s) used to store information about people, roles, designated communication flows or personal naming contexts, for example 610. , Search 620. The communication flow manager 1300 searches for the short name by comparing it with relative distinguished names of entries in the sub-tree. If no match is found, the communication flow manager 1300 searches its default directory before returning an error.

기업 혹은 다른 기업들의 다른 부분들은 외부 기관이 통신 흐름 관리자를 설치하지 않았다 하더라도 기업내 통신 흐름 관리자(1300)를 통해 연락될 수 있다. 외부 기관이 LDAP 디렉토리(500)를 갖추고 있다면, 두 가지 방식으로 통신 흐름 관리자(300)의 이름란에 함께 넣어질 수 있다. 먼저, 응답들을 위해 외 디렉토리들에 결부시키는 "스마트 리퍼럴" 혹은 다른 메커니즘을 사용해 외 디렉토리를 내 디렉토리에 합친다. 이 경우, 외 디렉토리에서 내정 혹은 개인 통신 흐름 정보가 얻어질 수 없을 때는 언제든, 내 디렉토리에 대한 통신 흐름 내정들이 외 디렉토리에 적용된다. 두 번째로, 애드-서치(ad-search) 프리미티브에 의해, 외 디렉토리에 대한 연락 정보든 기술될 수 있고 이들이 요청자에 의해 사용될 수 있다. 내정들을 필요로 하는 모든 경우에, 외 디렉토리에 내정 및 통신 흐름 관리자(1300)에 대한 구성을 저장하는 디렉토리 서브-트리의 이름이 통신 흐름 관리자(1300)에 대해 제안된 약정과 일치하지 않는다면 로컬 내정들이 사용된다. 이러한 이유로, 통신 흐름 관리자(1300)에 대해 권고된 서브-트리 이름을 LDAP 디렉토리들이 지원할 것이 권고된다. 본 통지 및 응답 시스템(100)에서, 이 이름은 다음과 같다.Other parts of the enterprise or other companies may be contacted through the intra-company communication flow manager 1300 even if the external organization does not have a communication flow manager installed. If the external organization has an LDAP directory 500, it can be put together in the name field of the communication flow manager 300 in two ways. First, merge the external directories into my directory using a "smart referral" or other mechanism that associates them with other directories for responses. In this case, whenever internal or personal communication flow information cannot be obtained from an external directory, the communication flow schedules for my directory are applied to the external directory. Secondly, by means of an ad-search primitive, contact information for other directories can be described and they can be used by the requestor. In all cases requiring internals, if the name of the directory sub-tree that stores the configuration for the internals and communication flow manager 1300 in an external directory does not match the proposed agreement for the communication flow manager 1300, the local internals Are used. For this reason, it is recommended that LDAP directories support the sub-tree name recommended for communication flow manager 1300. In this notification and response system 100, this name is as follows.

<ou=Xui Server, o=domain-name-of-server><ou = Xui Server, o = domain-name-of-server>

요청자들은 때때로 디렉토리에 없는 자와 연락하기를 원하는 개인들의 주소록을 갖고 있다. 종종, 요청자들은 이를테면 전화와 같은 특정의 매체 유형에 의해 특정의 개인들에 연락하는 것을 상당히 선호한다. 이들 경우에, 요청자들은 디렉토리 내 요청자의 개인 명명 콘텍스트 내에 이들 개개인들 용의 개인 명명 콘텍스트들을 생성할 수 있다. 또 다른 사람용의 각각의 개인 명명 콘텍스트는 이 사람에 대한 inetOrgPerson, 이어서 이 inetOrgPerson 엔트리를 루트로 하는 서브-트리에 통신 흐름 규칙들, 매체 연락들, 및 지명 통신 흐름들을 포함한다. 그러면 요청자는 자신의 요청들에 대한 통신 흐름에서 이들 수신자들 각각에 대한 구별적 완전한 이름들을 명시한다.Requesters sometimes have an address book of individuals who want to contact people not in the directory. Often, requestors prefer to contact certain individuals by specific media types, such as by telephone. In these cases, requesters can create personal naming contexts for these individuals within the requestor's personal naming context in the directory. Each personal naming context for another person includes communication flow rules, media contacts, and named communication flows in a sub-tree rooted in this inetOrgPerson for this person, followed by this inetOrgPerson entry. The requestor then specifies the distinguished full names for each of these recipients in the communication flow for its requests.

통신 흐름 관리자(1300)는 수신자에 대해 요청자(100)가 명시한 통신 흐름들을 사용할 것이다. 시스템의 향상은 먼저 짧은 이름들을 요청자의 트리 내에서, 이어서 디렉토리의 사람들 및 역할s 서브-트리를 통해서, 마지막으로 디렉토리의 내정 서브-트리에서 찾기 위해 내정들을 탐색하는 알고리즘을 확장할 것이다. 이들 기술들은 선호도에 대한 수신자들의 명세와는 맞지 않으므로 이들은 디렉토리에 열거되어 있지 않는 수신자들 혹은 수신자의 선호도가 무관계하거나 이에 따를 필요가 없는 애플리케이션들에 대해서만 사용될 것이다.The communication flow manager 1300 will use the communication flows specified by the requestor 100 for the recipient. Improvements in the system will extend an algorithm that first searches for short names in the requestor's tree, then through the directory's People and Roles sub-tree, and finally in the directory's default sub-tree. Because these techniques do not match the specification of recipients for preferences, they will only be used for recipients not listed in the directory or for applications where the preferences of the recipients are irrelevant or do not have to follow.

통신 흐름 프리미티브들Communication flow primitives

전술한 바와 같이, 통신 흐름 표현은 요청을 수신할 수신자들, 및 수신자들이 요청을 받게 될 방법, 시기 및 장소를 명시한다. 통신 흐름 표현에 포함되는 프리미티브들은 수신자들에 동시에 혹은 순차적으로 연락할 지 여부, 및 성공 테스트 결과들의 논리적 조합을 정의함으로써 서브-표현의 실행을 언제 종료할 것인지를 명시한다. 도 8은 한 세트의 예를 든 통신 흐름 표현 프리미티브들을 나타내는 샘플 표이다. 도 8a 내지 도 9e는 도 8에 나타낸 각종의 프리미티브들에 대한 진리표들을 예시한 것이다. 도 9a 내지 도 9e에서, "F"는 거짓 응답을 나타내며, "T"는 참 응답을 나타내고, "X"는 maybe 응답을 나타낸다. 도 9a 내지 도 9e 각각에서 좌측열은 응답하는 제1 오퍼랜드를 나타내고 맨 위의 행은 응답하는 제2 오퍼랜드를 나타낸다("프리미티브"가 아닌 단일 오퍼랜드 외의 모든 프리미티브에 대해서). T, X 혹은 F의 "b" 아래첨자는 나타낸 값을 얻기 위해 양 오퍼랜드들이 평가되어야 함을 나타낸다. 프리미티브들은 수신자들에게의 요청들의 흐름을 지휘한다. 즉, 프리미티브들은 동시 혹은 순차 통신에 대한 지시를, 수신자와의 통신 상태가 통신 흐름에 어떻게 영향을 미치는지에 대한 평가에 결합한다. 다른 프리미티브들은 연락 시기 혹은 디렉토리 내 객체들의 리스트들로부터 통신 흐름을 구성하는 방법을 제어한다.As mentioned above, the communication flow representation specifies the recipients who will receive the request, and how, when, and where the recipients will receive the request. Primitives included in the communication flow representation specify whether to contact the receivers simultaneously or sequentially, and when to terminate execution of the sub-expression by defining a logical combination of success test results. 8 is a sample table illustrating a set of example communication flow presentation primitives. 8A-9E illustrate truth tables for the various primitives shown in FIG. 8. 9A-9E, "F" represents a false response, "T" represents a true response, and "X" represents a maybe response. In each of FIGS. 9A-9E, the left column represents the responding first operand and the top row represents the responding second operand (for all primitives other than a single operand that are not “primitives”). The "b" subscript in T, X, or F indicates that both operands must be evaluated to obtain the indicated value. Primitives direct the flow of requests to recipients. That is, primitives combine indications for simultaneous or sequential communication with an assessment of how the state of communication with the receiver affects the communication flow. Other primitives control how to construct the communication flow from the time of contact or the lists of objects in the directory.

프리미티브들은 and/then, or/else, races/delegates, and votes/polls과 같이, 동시/순차 쌍들로 그룹으로 묶을 수 있다. 동시 및 순차 프리미티브들은 오퍼랜드들이 어떻게 평가되는가 하는 점에서 다르다. 동시 프리미티브들에서, 각각의 수신자는 동시에 연락된다. 미결 요청들은 이들이 프리미티브의 참 값을 결정하는데 더 이상 필요하지 않을 땐 취소된다. 순차 프리미티브들에서, 요청들이 나타낸 순서대로 각 수신자에게 요청들이 행해진다. 수신자가 응답할 때, 요청은, 필요하다면, 프리미티브의 참 값을 결정하기 위해서 다음 수신자에게 보내진다. 각각의 프리미티브는 수신자들과의 통신의 성공에 따라 참, 거짓 혹은 maybe로 평가된다.Primitives can be grouped into concurrent / sequential pairs, such as and / then, or / else, races / delegates, and votes / polls. Concurrent and sequential primitives differ in how operands are evaluated. In concurrent primitives, each recipient is contacted at the same time. Pending requests are canceled when they are no longer needed to determine the true value of the primitive. In sequential primitives, requests are made to each recipient in the order in which they appear. When the receiver responds, the request is sent to the next receiver, if necessary, to determine the true value of the primitive. Each primitive is evaluated as true, false or maybe depending on the success of the communication with the receivers.

And/ThenAnd / Then

"and" 프리미티브는 두 수신자들이 동시에 연락되고 양 수신자들이 성공적으로 응답하였을 때 통신 흐름이 성공적임(참으로 평가됨)을 명시한다. 수신자들 중 한 수신자에게의 요청이 실패하면, "and" 프리미티브는 거짓으로 평가되고 다른 수신자에게의 요청은 가능하다면 취소된다. 이외 모든 다른 경우에, "and" 프리미티브는 maybe로 평가된다. "and"에 대한 진리표를 도 9a에 나타내었고, 여기서 응답하는 제1 오퍼랜드에 대한 값들은 각 행에 대해 좌측을 따라 있고 응답하는 제2 오퍼랜드에 대한 값들은 각 열에 대해 상단을 따라 있다.The "and" primitive specifies that the communication flow is successful (true evaluated) when both receivers are contacted at the same time and both receivers successfully respond. If a request to one of the recipients fails, the "and" primitive evaluates to false and the request to the other recipient is canceled if possible. In all other cases, the "and" primitive evaluates to maybe. The truth table for “and” is shown in FIG. 9A, where the values for the responding first operands are along the left for each row and the values for the responding second operands are along the top for each column.

"then" 프리미티브는 "and'에 이어 나타나는 형태이다. 즉, 수신자들은 이들이 나타난 순서대로 한번에 하나씩 연락되고 제2 수신자는 제1 수신자가 성공으로 응답한 경우에만 연락된다. 도 9b에 도시한 "then" 프리미티브에 대한 진리표는 제1 오퍼랜드가 maybe"를 리턴하고 제2 오퍼랜드가 거짓을 리턴할 때 "and" 프리미티브에 대한 진리표와 다르다. 제2 오퍼랜드는 "then" 프리미티브의 경우엔 평가되지 않으며 "then" 프리미티브의 참 값은 maybe로 남아 있는 반면, "and" 프리미티브의 경우, 제2 오퍼랜드가 평가되고 프리미티브는 거짓을 리턴한다. "then" 프리미티브가 보다 자연적인 의미론적 설명을 제공하기 위해서 이러한 선택이 행해졌다.The "then" primitive is the form that follows "and", that is, the recipients are contacted one at a time in the order in which they appear and the second recipient is contacted only if the first recipient responds with success. The truth table for the "primitive" differs from the truth table for the "and" primitive when the first operand returns maybe "and the second operand returns false. The second operand is not evaluated in the case of the "then" primitive and the true value of the "then" primitive remains maybe, while for the "and" primitive, the second operand is evaluated and the primitive returns false. This choice was made in order for the "then" primitive to provide a more natural semantic explanation.

Or/ElseOr / Else

"or" 프리미티브는 두 수신자들이 동시에 연락되고 적어도 한 수신자가 성공으로 응답한 경우 통신 흐름이 성공임(참으로 평가됨)을 명시한다. 양 수신자들이부정 응답한 경우, 프리미티브는 거짓으로 평가된다. 모든 다른 경우에, 프리미티브는 maybe로 평가된다. "or" 프리미티브에 대한 진리표를 도 9c에 나타내었다.The "or" primitive specifies that the communication flow is successful (it evaluates to true) if two recipients are contacted at the same time and at least one recipient responds with success. If both recipients respond negatively, the primitive is evaluated as false. In all other cases, primitives evaluate to maybe. The truth table for the "or" primitive is shown in Figure 9c.

"else" 프리미티브는 "or" 프리미티브에 연이어 나타나는 형태이므로, 제2 수신자는 제1 응답이 성공적이지 않은 경우에만 연락된다. "else" 프리미티브에 대한 진리표는 도 9c에 도시한 "or" 프리미티브에 대한 것과 동일하다. "else" 프리미티브의 경우에, 제2 오퍼랜드는 제1 오퍼랜드가 maybe 혹은 거짓으로 평가된 경우에 평가될 뿐이다. "else" 연산자는 제1 수신자가 "아니오"라고 하거나 응답하지 못한 경우에만(maybe) 제2 수신자에 연락되는 시나리오를 해결하기 위해 제공된다.Since the "else" primitive is a form that appears after the "or" primitive, the second recipient is only contacted if the first response is unsuccessful. The truth table for the "else" primitive is the same as for the "or" primitive shown in Figure 9C. In the case of an "else" primitive, the second operand is only evaluated if the first operand evaluates to maybe or false. The "else" operator is provided to solve a scenario in which the second receiver is contacted only if the first receiver says "no" or may not respond.

Races/DelegatesRaces / delegates

"and/then", "or/else" 프리미티브들은 통신 흐름 표현의 성공 혹은 실패를 판정하기 위해 충분한 수신자들에 연락하는 것에 모두 초점이 맞추어진다. 간혹, 많은 가능한 응답들 중 첫 번째 것을 받아들이는 것이 유용하다. 기존의 프리미티브들은 성공이 달성되거나 불가능하게 되기까지 vote들을 카운트하기 때문에, 상기한 바는 기존의 프리미티브들로는 가능하지 않다. 동시 프리미티브 "race"는 반응하는 오퍼랜드들 중 첫 번째 것의 상태에 따라 성공 혹은 실패한다. 제1 응답자가 성공한다면, "race" 프리미티브는 성공이다. 제1 응답자가 실패한다면, "race" 프리미티브는 실패이다. 제2 응답자에의 요청은 가능하다면 취소된다. 예를 들면,The "and / then" and "or / else" primitives are all focused on contacting enough recipients to determine the success or failure of the communication flow representation. Sometimes it is useful to accept the first of many possible responses. Since existing primitives count votes until success is achieved or impossible, the above is not possible with existing primitives. Concurrent primitive "race" succeeds or fails depending on the state of the first of the responding operands. If the first responder succeeds, the "race" primitive is success. If the first responder fails, the "race" primitive is a failure. The request to the second responder is canceled if possible. For example,

Cell races Office races Email races WebCell races Office races Email races Web

은 셀 전화, 사무실 전화, 이메일 혹은 웹 포탈의 매체 연락들 중 어느 하나를 통해 수신자로부터 수신된 제1 응답에 따라 성공 혹은 실패한다.Succeeds or fails in response to the first response received from the recipient via any of the media contacts of the cell phone, office phone, email or web portal.

여기서 다루어지는 다른 프리미티브들과는 달리, "races" 프리미티브는 한 오퍼랜드로부터 성공 혹은 실패 응답에 동일한 가중치를 제공한다. "and/then" 프리미티브들은 오퍼랜드의 실패에 즉각 응답하지만 성공을 리턴하기 전에 양 오퍼랜드들로부터의 결과들을 기다린다. "or/else" 프리미티브들은 오퍼랜드의 성공에 즉각 응답하나, 실패를 리턴하기 전에 양 오퍼랜드들을 기다린다. "races" 프리미티브는 오퍼랜드로부터 제1 응답에 즉각 응답하며 이 오퍼랜드의 결과를 리턴한다. 위의 예에 보인 바와 같이 복수의 장치들을 통해 개개인과 연락하고 개개인으로 하여금 이들 장치들 중 단지 하나를 통해 성공 혹은 실패로 요청에 응답하게 하는 것이 특히 유용하다. "races" 프리미티브는 다른 프리미티브들에 의해 명시될 수 없다. "RACES"에 대한 진리표를 도 9d에 나타내었다.Unlike the other primitives discussed here, the "races" primitive gives the same weight to the success or failure response from an operand. The "and / then" primitives respond immediately to the failure of the operand but wait for the results from both operands before returning success. "or / else" primitives respond immediately to the success of the operand, but wait for both operands before returning a failure. The "races" primitive immediately responds to the first response from the operand and returns the result of this operand. As shown in the above example, it is particularly useful to contact an individual through a plurality of devices and have the individual respond to the request with success or failure through only one of these devices. A "races" primitive cannot be specified by other primitives. The truth table for "RACES" is shown in Figure 9d.

"delegates" 프리미티브는 "races" 프리미티브에 이어 나타내는 형태이다. "delegates" 프리미티브에 대한 진리표는 "races" 프리미티브에 대한 것과 동일하다. "delegates" 프리미티브는 좌측의 오퍼랜드가 실패 통지(maybe)를 리턴한다면 우측 오퍼랜드를 평가할 뿐이다. "races" 프리미티브처럼, "delegates" 프리미티브는 다른 프리미티브들에 의해 명시될 수 없다.The "delegates" primitive is the form that follows the "races" primitive. The truth table for the "delegates" primitive is the same as for the "races" primitive. The "delegates" primitive only evaluates the right operand if the operand on the left returns a maybe. Like the "races" primitive, the "delegates" primitive cannot be specified by other primitives.

전술한 예로 돌아가서, Joann은 자신의 선호도들을 다음과 같이 명시할 수 있다.Returning to the above example, Joann may specify his preferences as follows.

cell delegates office delegates Jerrycell delegates office delegates Jerry

while the generator of the request specifies:while the generator of the request specifies:

(Joann then Tom) or (Joann else Priya)(Joann then Tom) or (Joann else Priya)

Jerry는 Joann이 응답하지 못하면 응답할 뿐이다. Joann가 부재중에 Joann 혹은 Jerry가 "예"라고 말하면 Tom에 연락될 뿐이다. Joann이나 Jerry 어느 누구도 응답하지 않거나, 이들 모두가 "아니오"라고 한다면, Priya에 연락된다.Jerry only responds if Joann doesn't. If Joann or Jerry says "Yes" when he is absent, he will only contact Tom. If neither Joann or Jerry responds, or if they both say "no", then Priya is contacted.

"races" 프리미티브는 복수의 동시적 장치들을 통해 한 사람에게 연락할 필요성에 의해 촉발되었다. 예를 들면, 수신자는 자신의 셀 전화와 사무실 전화 모두에게로 통지가 보내질 것을 명시할 수도 있을 것이다. 수신자 자신의 사무소 전화를 통해 이 수신자가 응답하였다면 이 응답이 성공이든 실패인지를 명시할 수 있기 위해서 셀 전화에 현안의 연락을 취해야 할 것이다. "and" 및 "or" 프리미티브들은 이러한 요건을 만족시키지 않았다. "delegate" 프리미티브는, 예를 들면, 제1 수신자가 응답하지 않거나 수신자에 연락이 될 때까지 일련의 장치들이 순차적으로 탐색될 경우에만 제2 수신자에 연락하는 시나리오를 해결한다.The "races" primitive was triggered by the need to contact a person through multiple simultaneous devices. For example, the recipient may specify that notification be sent to both his cell phone and his office phone. If the recipient answered through the recipient's own office phone, he or she would need to contact the cell phone with an issue to indicate whether the response was successful or failed. "and" and "or" primitives did not satisfy this requirement. The " delegate &quot; primitive solves the scenario of contacting the second recipient only if, for example, a series of devices are discovered sequentially until the first recipient does not respond or is contacted.

전술한 바와 같이, "delegates" 프리미티브에 의해서 기업은 에스컬레이션으로 개인화된 요청 배송을 제공할 수 있게 된다. 예를 들면, 추심후 지급(bill collection)에 연루된 기업은 다음과 같이, 고객과의 관계 이력에 근거하여 각 고객에 대한 개인적 통신 흐름들을 제공할 수 있다.As mentioned above, the "delegates" primitive allows an enterprise to provide personalized request delivery on an escalation. For example, a company involved in a bill collection may provide personal communication flows for each customer based on their relationship history with the customer as follows.

good credit customers: web delegates email delegates sms delegates homephonegood credit customers: web delegates email delegates sms delegates homephone

poor credit customers: homephone delegates officephone delegates cellpoor credit customers: homephone delegates officephone delegates cell

따라서, 고객이 각 요청에 응답하지 못할 때, 요청은 다음 연락 방법으로 에스컬레이트된다.Thus, when the customer fails to respond to each request, the request is escalated to the next contact method.

Votes/PollsVotes / Polls

수신자들의 리스트들에 대한 순차적이고 동시적 통신 흐름 프리미티브들을 일반화하는 것이 가능하다. "and/or" 프리미티브들의 동시 및 순차적 형태들은 한 리스트의 수신자들에 의한 vote가 동시에 혹은 순차적으로 될 수 있게 하는 2 이상의 일반적인 프리미티브들의 특별한 경우들이다. 예를 들면, 성공적인 "and" 프리미티브들은 100%가 예로 vote한 두 수신자들에 의한 vote들이며, 성공적인 "or" 프리미티브들은 적어도 50%가 예로 vote하는 두 수신자들에 의한 vote들이다.It is possible to generalize sequential and concurrent communication flow primitives for lists of recipients. Simultaneous and sequential forms of "and / or" primitives are special cases of two or more common primitives that allow votes by a list of recipients to be simultaneously or sequentially. For example, successful "and" primitives are votes by two recipients 100% voted yes, and successful "or" primitives are votes by two recipients at least 50% voted yes.

"vote" 프리미티브는 한 리스트의 수신자들의 수 c를 동시에 연락하고 성공 응답들의 카운트 값 m 혹은 백분율 n%에 도달한 경우 성공(참)을 리턴한다. 이에 따라, c-m+1 거짓 응답들이 있다면 실패가 발생한다. 각 수신자는 통신 흐름 표현이 될 수 있고, 카운트값 혹은 백분율은 성공한 "votes" 프리미티브에 대해 수신되어야 하는 성공 수를 나타낸다. 예를 들면,The "vote" primitive simultaneously contacts the number c of recipients in a list and returns success (true) if the count value m or percentage n% of success responses is reached. Accordingly, a failure occurs if there are c-m + 1 false responses. Each receiver can be a communication flow representation, where the count value or percentage indicates the number of successes that should be received for a successful "votes" primitive. For example,

{TOM, Joann, Jerry} votes 50%{TOM, Joann, Jerry} votes 50%

는 Tom, Joann 및 Jerry에 동시에 연락을 취한다. 적어도 둘이 성공 응답한 경우, "votes" 프리미티브는 성공으로 된다. "votes" 프리미티브는 명시된 카운트값 혹은 백분율에 이르는 못하게 충분한 수의 수신자들이 거짓 응답들을 리턴하였을 땐 실패이다(거짓을 리턴한다). 다른 경우에, 성공에 도달될 수 없는 경우,"votes" 프리미티브는 maybe로 된다. 위의 예에서, Tom, Joann 및 Jerry 중 적어도 둘이 실패로 응답하면, "votes" 프리미티브는 실패로 된다. 한편, 참, 거짓 및 maybe는 maybe의 참 값으로 된다.Contact Tom, Joann and Jerry at the same time. If at least two responded successfully, the "votes" primitive is a success. The "votes" primitive is a failure (returns false) when a sufficient number of recipients return false responses, not reaching the specified count or percentage. In other cases, if success cannot be reached, the "votes" primitive is maybe. In the above example, if at least two of Tom, Joann, and Jerry respond with a failure, the "votes" primitive fails. On the other hand, true, false, and maybe are true values of maybe.

프리미티브에서 카운트값 혹은 백분율로부터 직접 참을 리턴시키는데 필요한 참 vote의 수를 산출하는 것이 가능한 것에 유의한다. 이로부터, 거짓을 리턴하는데 필요한 거짓 vote들의 수(총 카운트값 +1- 참 수), 및 maybe를 리턴하기 위한 비-참 vote들(적어도 하나가 maybe인 거짓 혹은 maybe)의 수(총 카운트 수 + 1-참 수)을 산출하는 것은 간단한 일이다. "polls" 프리미티브는 "votes" 프리미티브에 이어지는 형태이다.Note that it is possible to calculate the number of true votes needed to return true directly from a count value or a percentage in a primitive. From this, the number of false votes needed to return false (total count value + 1-true), and the number of non-true votes (false or maybe at least one maybe) to return maybe (total count) It is simple to calculate The "polls" primitive is the form that follows the "votes" primitive.

votes 프리미티브는 예를 들면 한정된 수의 아이템들을 판매하거나 분배시키는데 효과적으로 사용될 수 있다. 예를 들면, 500 단위의 소정의 아이템과 5000명의 잠재 고객들을 갖고 있는 회사는 다음과 같은 통신 흐름을 명시할 수 있다.The votes primitive can be effectively used to sell or distribute a limited number of items, for example. For example, a company with 500 predetermined items and 5000 potential customers may specify the following communication flow.

{customer1, customer2,..., customer5000} votes 500{customer1, customer2, ..., customer5000} votes 500

이 요청은 고객들이 500 단위들(각 고객이 단지 한 유닛만을 주문한다고 할 때)을 주문하였을 때 완료될 것이다. 각 고객이 한 단위 이상을 주문할 수 있는 예을 다룸에 있어, 테스트 응답 상태 프리미티브들에 대해 이하를 참조한다.This request will be completed when the customer orders 500 units (when each customer orders only one unit). For an example where each customer may order more than one unit, see below for test response status primitives.

poll 프리미티브는 긴급 인원 수급을 채우는데 효과적으로 사용될 수 있다. 예를 들면, 내일 아침까지 지시된 리스트로부터 5명의 보결 선생을 찾는 학교는 다음과 같이 통신 흐름을 명시할 수 있다.The poll primitive can be used effectively to fill emergency personnel supply. For example, a school looking for five profession teachers from the list ordered by tomorrow morning may specify the flow of communication as follows.

{teacher1, teacher2,..., teacherN} polls 5{teacher1, teacher2, ..., teacherN} polls 5

전술한 바와 같이, 이 요청은 5명의 보결 선생이 가르치는 것에 동의하였을 때 완료될 것이다.As mentioned above, this request will be completed when the five subordinate teachers have agreed to teach.

통신 흐름 표현은 리스트들이 아니기 때문에, 표현을 "votes" 및 "polls" 프리미티브들이 요하는 리스트들로 변환하는 것이 유용하다. 특히, 수신자 선호도 및 역할 데이터베이스(500) 내 지명 통신 흐름들은 흔히 자연적으로 리스트 구조를 갖는다. 괄호 내 리스트들이 아닌 통신 흐름 표현이 "votes" 및 "polls" 프리미티브들의 제1 오퍼랜드들로서 나타날 때 이들 프리미티브들에 대한 자동 변환이 지원된다. 판독가능이나 분리만을 포함하는 통신 흐름 표현의 경우 자동변환이 행해진다. 표현이 "and" 및 "then" 프리미티브들만을 포함한다면, 판독가능들의 리스트로 변환된다. 표현이 "or" 및 "else" 프리미티브들만을 포함한다면, 표현은 분리들의 리스트로 변환된다. 위에 주어진 예로 다시 가서,Since communication flow representations are not lists, it is useful to convert the representation into lists that require "votes" and "polls" primitives. In particular, named communication flows in the recipient preference and role database 500 often have a natural list structure. Automatic conversion for these primitives is supported when communication flow representations other than lists in parentheses appear as first operands of "votes" and "polls" primitives. In the case of a communication flow representation that includes only readable or segregated automatic conversion is performed. If the expression contains only "and" and "then" primitives, it is converted to a list of readable. If the expression contains only "or" and "else" primitives, the expression is converted to a list of separations. Go back to the example given above,

Reviewers votes 2Reviewers votes 2

은 실제적으로는Is actually

(Chris and Jerry and Benji and Jenny) votes 2(Chris and Jerry and Benji and Jenny) votes 2

인 표현이다.Expression.

판독가능은 자동으로 리스트 {Chris, Jerry, Benji, Jenny}로 변환된다. 어떤 표현을 리스트로 변환하는 상세를 명시하는 것이 가능한 반면, 이러한 변환들이 필요하거나, 명료하거나 바람직하다라는 것은 명료하지 않다. 후술하는 탐색 프리미티브는 리스트들을 표현으로 변환한다.Readables are automatically converted into lists {Chris, Jerry, Benji, Jenny}. While it is possible to specify the details of converting an expression to a list, it is not clear that such conversions are necessary, clear or desirable. The search primitive described below converts the lists into representations.

"races" 및 "delegates" 프리미티브들의 일반화Generalization of "races" and "delegates" primitives

수신자 리스트들에 대한 "race" 및 "delegate" 프리미티브들을 일반화하는 것이 가능하다. 일반화 "race"라 하는, "race"의 일반화는 한 리스트의 수신자들, 수집할 응답들의 수 및 수신된 응답들로부터 프리미티브의 성공 혹은 실패를 판정하는 결정 알고리즘을 받아들인다. 예를 들면, 일반화 "race"의 한 사용은 수신된 N번째의 값을 받아들이는 것이다. 이것은 100번째 통화자로부터의 응답을 받아들이는 라디오 토크 쇼 모델에 상응한다. 또 다른 예에서, 일반화 race는 5 응답들 중 셋을 모으고 3의 다수 응답을 리턴한다. 이 결과는 2 성공을 기다리는,It is possible to generalize "race" and "delegate" primitives for receiver lists. Generalization The generalization of "race", called "race", accepts a decision algorithm that determines the success or failure of a primitive from a list of recipients, the number of responses to collect, and the received responses. For example, one use of the generalization "race" is to accept the received Nth value. This corresponds to a radio talk show model that accepts a response from the 100th caller. In another example, the generalization race collects three of the five responses and returns a majority of three responses. 2 results waiting for success,

{A, B, C, D, E} votes 2{A, B, C, D, E} votes 2

과는 다른 것에 유의한다. 일반화 delegate는 delegate 프리미티브의 일반화이다. 일반화 delegate는 프리미티브가 만족될 때까지 순차적으로 수신자들에 연락하는 것을 제외하곤 일반화 race와 유사하다.Note that it is different from. Generalization A delegate is a generalization of a delegate primitive. A generalization delegate is similar to a generalization race except that it contacts the receivers sequentially until the primitive is satisfied.

순차/동시 프라미티브들의 구현Implementation of sequential / simultaneous primitives

순차 및 동시 프라미티브들은 단순한 카운팅 알고리즘에 의해 본 실시예에서 구현된다. 각각의 프리미티브는 참을 리턴하는데 필요한 참 응답들의 수와 거짓을 리턴하는데 필요한 거짓 응답들의 수에 의해 기술된다. 또한 maybe를 리턴하는데 필요한 최소 수의 maybe 응답들 및 maybe가 리턴되기 전에 수신되어야 하는 총 응답 수에 의해 또한 기술된다. 도 10은 각 프리미티브에 대한 카운트값들을 요약한 것으로 C는 votes/polls에 리스트된 모든 수신자들의 카운트값이고 X는 votes/poll백분율 혹은 카운트값에 의해 요구되는 참 응답들의 수이다. 동시 및 순차 프리미티브들은 각 부류에서 수신된 응답들의 수를 카운트한다. 상태 리턴들 중 하나에 대한 요건에 이르렀을 땐 항시, 프리미티브들은 현안의 요청들을 취소시키고 적합한 상태를 리턴한다.Sequential and concurrent primitives are implemented in this embodiment by a simple counting algorithm. Each primitive is described by the number of true responses needed to return true and the number of false responses required to return false. It is also described by the minimum number of maybe responses needed to return maybe and the total number of responses that must be received before maybe can be returned. Figure 10 summarizes the count values for each primitive, where C is the count of all the recipients listed in votes / polls and X is the number of true responses required by the votes / poll percentage or count value. Concurrent and sequential primitives count the number of responses received in each class. Whenever the requirement for one of the status returns is reached, the primitives cancel the current request and return the appropriate status.

상태 해석 및 시간 프리미티브들State interpretation and time primitives

도 4에 관련하여 전술한 바와 같이, 수신자(120)에게의 요청에 대한 성공은 통지 성공 및 응답 성공을 포함한다. 통지 성공은 수신자에 성공적으로 연락되었을 때 일어난다. 내정에 의해서 응답 성공은 요청 및 응답 시스템 API에서의 성공의 정의를 만족시키도록 수신자가 응답하였을 때 일어난다. 통지 및 응답 시스템(100)의 웹 API에 있어서, 응답 성공에 대한 내정은 제출 버튼에 "거짓" 혹은 "아니오" 값을 포함시키지 않은 웹 폼에 응답하는 것이다. 제출 버튼의 "거짓" 혹은 "아니오"는 응답 실패에 대해 내정된 응답이다.As discussed above with respect to FIG. 4, success for the request to the recipient 120 includes notification success and response success. Notification success occurs when the recipient has been successfully contacted. By default, response success occurs when the receiver responds to satisfy the definition of success in the request and response system APIs. In the web API of the notification and response system 100, the proposal for response success is to respond to a web form that does not include a "false" or "no" value in the submit button. The "false" or "no" of the submit button is a default response to the response failure.

일부 애플리케이션들은 응답 성공에 대해 애플리케이션에 특정한 정의를 요할 수도 있다. 예를 들면, 지출 레포트가 차례로 몇 개의 관리자들에 의해 승인된다면, 성공은 report_status="approved"으로 요청에 응답하는 것으로서 정의될 수 있다.Some applications may require application-specific definitions for response success. For example, if an expense report is approved by several managers in turn, success may be defined as responding to the request with report_status = "approved".

테스트 응답 상태 프리미티브에 의해서 애플리케이션들은 응답 성공 명세를, 응답으로부터의 속성값 쌍들을 비교한 것을 논리적으로 표현한 것으로서 제공할 수 있다. 논리적 표현은 응답이 테스트될 수신자 다음의 물음표들 사이에 명시된다.비교들은 등식, 부등식, 범위 및 정규 표현 매칭을 포함할 수 있다. 성공 명세가 통신 흐름에서 모든 수신자들에 대해 동일하나 시스템에 내정된 것과는 다른 경우, 전 요청에 걸쳐 내정된 것이 공급될 수 있다.Test response status primitives allow applications to provide a response success specification as a logical representation of a comparison of attribute-value pairs from a response. The logical expression is specified between the question marks following the receiver whose response is to be tested. The comparisons may include equality, inequality, range, and regular expression matching. If the success specification is the same for all receivers in the communication flow but different from that specified in the system, then the provisioned over the entire request may be supplied.

다음의 예는 내정된 기능을 사용함이 없이 응답 성공 상태를 명시한다.The following example specifies the response success status without using the default functionality.

DepartmentHead? report_status="approved" ? then Director? report_status="approved" ? then VP? report status ="approved" ?DepartmentHead? report_status = "approved"? then Director? report_status = "approved"? then VP? report status = "approved"?

테스트 응답 상태 프리미티브가 복수의 수신자들을 포함하는 표현에 적용될 때, 보다 복잡한 표현으로 각 수신자에 적용된다. 예를 들면, 앞의 표현은When a test response status primitive is applied to a representation containing a plurality of receivers, it is applied to each receiver in a more complex representation. For example, the previous expression

(DepartmentHead then Director then VP)? report status ="approved" ?(DepartmentHead then Director then VP)? report status = "approved"?

로서도 기재될 수 있다. 성공 명세는 지금까지의 모든 응답들에 대해 응답의 속성들에 관한 집성 및 이외 다른 진보된 처리를 수행한 후 성공 혹은 실패에 대해서 결과들을 테스트할 수 있다.It may also be described as. The success specification can test the results for success or failure after performing aggregation and other advanced processing on the attributes of the response for all responses so far.

전술한 바와 같이, vote 프리미티브는 한정된 수의 아이템들을 판매하거나 분배하는데 사용될 수 있으나, 각 고객은 정확히 한 단위를 구입하는 것으로 가정한다. 다음과 같은 성공 표현에 의해서 각 고객은 하나 이상의 단위를 주문하고 적어도 100 단위들이 판매되었을 때 통지들을 종료시킬 수 있다.As mentioned above, the vote primitive may be used to sell or distribute a limited number of items, but each customer is assumed to purchase exactly one unit. The following success expression allows each customer to order one or more units and close notifications when at least 100 units have been sold.

(Sue or Fred or... or Sam)? sum [(number_sold) ≥ 100?(Sue or Fred or ... or Sam)? sum [(number_sold) ≥ 100?

100 단위가 판매된 후에, 다른 수신자들에게의 미결 요청들은 취소된다. 통지 신청이 통지 및 응답 시스템이 사용할 수 있는 데이터에 의해 개인화되었을 때, 이전 응답들의 결과들은 여전히 판매가능한 이들 아이템들(100-sum (number_sold))을 수신자들에게 내놓는데 사용될 수 있다. 두 수신자들이 남아 있는 아이템들을 구입하려 한다면, 제1 수신자는 성공할 것이고 제2 수신자는 다른 자에 의해 완료되었기 때문에 요청이 취소되었음(즉, 신청 철회)을 듣게 될 것이다.After 100 units are sold, open requests to other recipients are canceled. When the notification subscription is personalized by the data available to the notification and response system, the results of previous responses can be used to present those items 100-sum (number_sold) that are still salable. If two recipients try to purchase the remaining items, the first recipient will succeed and the second recipient will hear that the request has been canceled (ie, withdraw the application) because it was completed by the other.

Between/Before/AfterBetween / Before / After

응답 상태를 테스트하는 프리미티브 외에도, "between", "before", 및"after" 프리미티브들은 통지를 보내고 수신자로부터 응답을 수집하는 시간 제약을 명시한다. 시간 제약은 "after" 프리미티브에서처럼 시작 시간을, "before" 프리미티브에서처럼 종료시간을, 혹은 "between" 프리미티브"에서처럼 양자 모두를 명시할 수 있다. "Between x-y"는 "after x before y"로서 나타낼 수 있다. 동일 수신자에게 복수의 시간제약이 적용될 때, 시간제약은 좌측에서 우측으로 평가된다. 제1 시간제약은 유효 시작 및 종료시간을 확정한다. 연이은 시간제약들은 이들 시간들을 구체화할 수도 있다. 상대적인 시간제약은 순방향 혹은 역방향으로 시간들을 조정할 수 있다. 이외의 제약들, 예를 들면 간격의 시작 혹은 끝을 찾는 것을 포함하는 것들은 시작시간을 앞으로 종료시간을 뒤로 이동시킬 수 있다. 즉, 복수의 프리미티브들이 상충되는 절대 시작시간들 혹은 상충되는 절대 종료 시간들을 수립한다면, 시작시간을 늦추고 종료시간을 앞당기는 것을 사용하여 효과적으로 제약 간격들을 교차시킨다. 시간적 제약 프리미티브가 복수의 수신자들을 포함하는 표현에 적용될 때, 보다 복잡한 표현으로 각 수신자에 적용된다.In addition to primitives that test response status, the "between", "before", and "after" primitives specify a time constraint for sending a notification and collecting a response from the recipient. A time constraint can specify a start time as in the "after" primitive, an end time as in the "before" primitive, or both as in the "between" primitive. "" Between xy "can be represented as" after x before y ". When multiple time constraints apply to the same recipient, the time constraint is evaluated from left to right The first time constraint establishes valid start and end times Subsequent time constraints may specify these times. Time constraints can adjust the time in the forward or reverse direction Other constraints, including finding the start or end of an interval, can shift the start time forward or end time backward, ie multiple primitives If you establish conflicting absolute start times or conflicting absolute end times, slow down the start time and set the end time. Use forwarding to effectively cross constraint intervals: When a temporal constraint primitive is applied to a representation containing multiple receivers, it is applied to each receiver in a more complex representation.

시간 제약들은 시간 표현 및 시간 영역 표현을 사용하여 명시된다. 시간 표현은 시간의 특정 시각을 나타내며, 시간 영역 표현은 시간 영역을 나타낸다. 시간 영역 표현들은 시간 표현을 기재할 때 사용되므로 먼저 시간 영역 표현을 정의한다. 시간영역은 (시작시간, 종료시간)으로서 명시된 하나 이상의 시간적인 간격들이고, 여기서 시작시간은 간격 내에 있으며 종료 시간은 그렇지 않다. 기본 시간 영역은 개념상 시작(생성)부터 시간의 종료(아마게돈)까지의 한 구간이다. 생성은 임의의 시작시간(이를테면 1970년 1월 1일에 00:00.00 UTC, 유닉스에서 에포크와 같은)으로서 취해지고, 아마게돈도 유사하게 취급된다. 현재, 시간은 생성 이후 초의 분해능으로 명시된다. 모든 다른 시간 영역은 구간의 시작은 닫히고 구간의 종료는 열린 한 세트의 해체 시간 구간들(시작, 종료)이다.Time constraints are specified using time representations and time domain representations. Time representations represent specific times of time, and time domain representations represent time domains. Since time domain representations are used to describe time representations, first define a time domain representation. The time domain is one or more temporal intervals specified as (start time, end time), where the start time is within the interval and the end time is not. The basic time domain is conceptually a section from the beginning (creation) to the end of time (amagedon). Generation is taken as an arbitrary start time (such as 00: 00.00 UTC on January 1, 1970, such as Epoch on Unix), and armageddon is treated similarly. Currently, time is specified as the resolution in seconds since generation. All other time domains are a set of teardown time intervals (start, end) where the beginning of the interval is closed and the end of the interval is open.

시간 영역들은 합집합, 교집합, 및 여집합 하에선 닫힌 영역이고, 이것은 영역들에 대한 이들 연산들이 또 다른 유효한 영역을 생성함을 의미한다. 시간 영역 표현은 프리미티브 시간 영역(이하에 정의됨), 및 합집합, 교집합, 여집합의 연산들로부터 형성된다. 통신 흐름 표현이 지명되어 다른 통신 흐름 표현에서 사용될 수 있는 것처럼, 시간 영역 표현도 지명되어 다른 시간 영역 표현에서 사용될 수 있다.The time domains are closed regions under the union, intersection, and subset, which means that these operations on the regions produce another valid region. The time domain representation is formed from the primitive time domain (defined below), and the operations of union, intersection, and subset. Just as communication flow representations can be named and used in other communication flow representations, time domain representations can also be named and used in other time domain representations.

프리미티브 시간 영역들은 다음을 포함한다.Primitive time domains include:

이를테면 2002년 5월 13일, 9:00.00부터 2002년 5월 13일, 17:00.00까지와 같이, 명시된 시작 및 종료 시간을 가진 구간.Segments with specified start and end times, such as May 13, 2002, 9: 00.00 to May 13, 2002, 17: 00.00.

2002년 5월 13일과 같이, 어떤 소정의 날Any given day, such as May 13, 2002

이를테면 2002년 5월 12일 일요일부터 2002년 5월 18일 토요일과 같이 어떤소정의 일 주일.Some Sunday, for example, from Sunday, May 12, 2002 to Saturday, May 18, 2002.

이를테면 2002년 5월과 같이, 어떤 소정의 월.Some predetermined month, such as May 2002.

2002년과 같이, 어떤 소정의 해.As in 2002, any given year.

이를테면 월요일과 같이(주중의 어떤 소정의 날)(생성과 아마게돈 사이의 모든 월요일들의 합집합을 의미)For example, as Monday (some given day of the week) (meaning the union of all Mondays between creation and armageddon)

5월과 같이, 어떤 소정의 월(생성부터 아마게돈까지의 모든 5월들의 합집합의 의미)Like a month, any given month (meaning the union of all Mays from creation to armageddon)

7월 4일과 같이, 한 해의 어떤 소정의 날(생성부터 아마게돈까지 모든 7월 4일의 합집합을 의미).As on July 4, any given day of the year (meaning the union of all July 4, from creation to armageddon).

이를테면 9:00-17:00.00과 같이, 어떤 소정의 시간 범위(생성부터 아마게돈까지의 모든 날들 상의 모든 이러한 구간들의 합집합을 의미).Some predetermined time range, such as 9: 00-17: 00.00, meaning the union of all these intervals on all days from creation to armageddon.

예를 들면, 소정의 날들로서 월요일, 화요일, 수요일, 목요일, 및 금요일의 합집합으로서 평일을 정의할 수도 있을 것이다. 1월 1일, 7월 4일 및 12월 25일의 합집합으로서 휴일들을 정의할 수도 있을 것이다. 업무시간들을 평일과 시간 범위 9:00.00-17:00.00의 교집합인 것으로 정의할 수도 있을 것이다. 또한 이를 휴일들의 여집합과의 교집합을 취함으로써 업무시간들을 정할 수도 있을 것이다.For example, one may define weekdays as the union of Monday, Tuesday, Wednesday, Thursday, and Friday as certain days. Holidays may be defined as the union of January 1, July 4, and December 25. Working hours may be defined as the intersection of weekdays and the time range 9: 00.00-17: 00.00. It may also set working hours by taking the intersection with the female set of holidays.

시간 표현들은 절대시간을 명시할 수도 있고, 혹은 시작시간(이를테면 지금부터 4시간)에 관하여 계산되는 시간을 명시할 수도 있고, 혹은 시간영역 및 시작시간(이를테면, 다음 업무일의 시작; 혹은 지금부터 업무 4시간으로, 업무시간의 시간영역 내에서만 카운트하여 지금부터 4시간을 의미)으로부터 계산되는 시간을명시할 수도 있다.The time expressions may specify an absolute time, or may specify a time calculated relative to the start time (such as 4 hours from now), or the time zone and start time (such as the start of the next business day; or from now on). It is also possible to specify the time calculated from 4 hours of work, counting only within the time zone of the work time and meaning 4 hours from now.

시간 표현은 다음 형태들 중 하나를 취할 수도 있다.The time representation may take one of the following forms.

이를테면 2002년 5월 13일 17:00.00과 같은, 어떤 절대 시간.Some absolute time, such as May 13, 2002, 17: 00.00.

현 시간 후 4시간을 의미하는, 이를테면 +4:00.00과 같은 상대적 시간, 혹은 현 시간 전 3시간을 의미하는, -3:00.00.A relative time, such as +4: 00.00, meaning 4 hours after the current time, or -3: 00.00, meaning 3 hours before the current time.

시간영역 내 다음 구간의 시작 혹은 종료, 예를 들면, 다음 업무 마감은 현재 시간 이후 업무시간들 내 한 구간의 다음 종료로서 명시될 수 있다. 보다 일반적으로, 시작들 혹은 종료들, 예를 들면 업무의 두 번째 마감을 카운트할 수 있다.The start or end of the next section in the time domain, for example the next business deadline, may be specified as the next end of one section in business hours after the current time. More generally, one can count beginnings or terminations, for example the second deadline of a task.

소정의 시간영역 내에서 경과된 시간, 예를 들면 지금이 2002년 5월 13일 16:00.00일 경우 업무 4시간 경과는 2002년 5월 14일 12:00.00가 된다. 현재 시간부터 뒤로 이동시킬 수도 있는데, 이것은 앞으로 이동시킨 후에 특히 유용하다. 예를 들면 다음 휴가를 위해 시간영역을 정할 수 있고, 그러면 다음 휴가 시작 전 업무 4시간을 참조할 수 있다.If the time elapsed within a predetermined time zone, for example, now is May 13, 2002 16: 00.00, then the four-hour period of work is 12: 00.00 May 14, 2002. You can also move backward from the current time, which is especially useful after moving forward. For example, you can set a time zone for your next vacation and then refer to 4 hours of work before the start of your next vacation.

이들에 관하여 보다 복잡한 시간표현들을 정할 수 있다.More complicated time representations can be defined about them.

예를 들면, 매일 12:00.00부터 12:00.00까지 지속되는 (공) 시간구간을 정할 수 있다. 이러한 구간의 다음 시작(혹은 종료)을 취할 경우 다음 날 정오로 된다. 평일의 교집합을 사용하여 유사하게 다음 업무일의 정오를 계산할 수도 있을 것이다. 이것을 구간들의 종료들을 카운트하는 연산자와 결합함으로써 다음 업무일의 정오 이후 업무 2일의 마감을 계산할 수 있다.For example, you can set a (public) time period that lasts from 12: 00.00 to 12: 00.00 every day. The next start (or end) of such a segment will be at noon the following day. You can similarly calculate the noon of the next business day using the intersection of weekdays. By combining this with an operator that counts the ends of the intervals, we can calculate the deadline for two business days after noon of the next business day.

또 다른 예로서, 스페인에서의 업무시간들을, 9:00.00-12:00.00과 14:00.00-19:00.00과의 합집합으로서 명시할 수도 있을 것이다. 당일의 업무 마감을 알기 위해서, 스페인의 업무시간들과 당일과의 교집합을 취한 후 결과로 나온 시간영역 내에서 구간의 마지막 종료를 찾는다.As another example, working hours in Spain may be specified as the union of 9: 00.00-12: 00.00 and 14: 00.00-19: 00.00. To find out the day's closing, take an intersection of Spanish working hours and the day and find the end of the segment in the resulting time zone.

기업은 통신 흐름 관리자용으로 내정한 시간영역 객체들을 정의할 수 있고 혹은 각 수신자는 그들 자신의 개인적인 시간영역 객체들을 정의할 수 있다. 이러한 객체들의 한 사용 예는 기업에 대해 업무시간들을 정의하는 것이다. 객체는,An enterprise can define time domain objects specified for the communication flow manager, or each recipient can define their own personal time domain objects. One example use of these objects is to define business hours for an enterprise. The object is

Common name (cn) of the time domain object: businessCommon name (cn) of the time domain object: business

(시간영역의 공통명(cn)): 업무)(Common name in cn): task

을 포함한다.It includes.

디렉토리는 어느 수신자들이 영역을 사용할 것인가를 필터링한다. 이것은 이 업무 시간 영역을 특정 회사나, 시간대, 혹은 지리적 영역 내 사람들에 연관시키는데 사용될 수 있다.The directory filters which recipients use the realm. This can be used to relate this business area to people in a particular company, time zone, or geographic area.

유효 시간들을 산출하는데 사용하는 시간대.The time zone used to calculate valid times.

영역 내 구간들에 대한 시간영역 표현. 이 시간영역 표현은 다른 기본적인 혹은 지정된 시간영역들을 참조할 수 있다.Time domain representation of the intervals within the domain. This time domain representation can refer to other basic or specified time domains.

시간영역에 시간적 표현 연산자들로서 "-의 종료", "-의 시작", "-의 n 종료", "-의 n 시작, 여기서 n은 카운트값 혹은 마지막 키워드이고, 영역 내 상대적 시간 "+", "-전", "-후", 및 "사이" 프리미티브들에서 영역 내 상대적 시간인 "-"가 사용되고, 예는 다음과 같다.As temporal expression operators in the time domain, "end of-", "start of-", "end of n of-", "start of n of-, where n is the count value or the last keyword, and the relative time" + ", In the "before", "before", and "between" primitives, "-" which is a relative time in the region is used, an example is as follows.

AFTER end of businessAFTER end of business

BEFORE 2 start of businessBEFORE 2 start of business

BETWEEN start of business-end of businessBETWEEN start of business-end of business

BEFORE business + 4: 00.00BEFORE business + 4: 00.00

AFTER end of business AFTER business-01: 00.00AFTER end of business AFTER business-01: 00.00

AFTER last end of (SpanishBusinessHours intersect Today)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"가 되게 단순화시킨다. 현존의 시간영역들에 관해 합집합, 교집합 및 여집합을 사용하는 전 시간영역 표현은 시간영역 명이 사용되는 곳에서도 사용될 수 있다.Various simplifications can be made to make the syntax more natural. For example, if the time domain name comes after after, then the next end of the interval in this time domain may be taken to the specified time. Similarly, for before, the next start of the interval in the time domain can be taken as the specified time. This simplifies "AFTER end of business" to "AFTER BUSINESS" and "BEFORE start of Monday" to "BEFORE Monday". It also simplifies "BETWEEN end of 08: 00.00-start of 17: 00.00" to be "BETWEEN 08: 00.00- 17: 00.00". The entire time domain representation using union, intersection and filter over the existing time domains can also be used where time domain names are used.

통신흐름 관리자의 표준 내정된 처리는, 시간영역 객체의 공통적인 명칭은 통신흐름에 명시된 명칭으로 시작하는데 business$west-coast와 같이 달러문자 "$" 다음에 다른 조건을 포함할 수도 있다는 것과, 수신자는 시간영역 객체 내 필터와 매칭시켜야 한다는, 2가지를 조건부로 하여 시간영역 명을 결정하는데 적용된다. 몇 개의 일치하는 객체들이 발견된다면, 객체들 중 하나가 선택되는데, 가능하다면 논리적으로 가장 특정한 필터(모든 다른 매칭 필터들을 포함하는 필터)를 가진 객체이고, 가능하지 않다면, 일치하는 객체들 중 임의의 선택된 하나이다. 먼저 통신 흐름 관리자는 inetOrgPerson 혹은 inetRole 객체의 콘텍스트에서 매칭 필터로 소정의 명칭의 시간영역을 찾는다. 어느 것도 발견되지 않는다면, 통신 흐름 관리자는 이의 내정된 디렉토리에서 영역을 찾는다.The standardized processing of the communication flow manager is that the common name of the time-domain object begins with the name specified in the communication flow, which may include other conditions after the dollar character "$", such as business $ west-coast, Is applied to determine the time-domain name conditionally that two must match a filter in the time-domain object. If several matching objects are found, one of the objects is selected, if possible an object with the logically most specific filter (filter including all other matching filters), if not possible, any of the matching objects Is the chosen one. First, the communication flow manager finds a time domain of a predetermined name with a matching filter in the context of an inetOrgPerson or inetRole object. If none is found, the communication flow manager looks for an area in its default directory.

Short Names and Directory Search PrimitivesShort Names and Directory Search Primitives

여기서 다루어지는 예들은 요청자들(110)이 짧은 명칭들을 사용하여 수신자들(120)을 명시할 수 있음을 보이고 있다. "디렉토리 내정 및 발견적 방법" 제하의 단락에서 후술하는 바와 같이, 이들 짧은 명칭들은 수신자 선호도 및 역할 데이터베이스(500)의 발견적 방법에 의한 탐색에 의해 번역된다. 요청자들(110)은 꺽쇠 괄호에 수신자(120)의 구별적인 전체 이름, 예를 들면 <uid=Joann, ou=people, o=research.avaya.com>을 명시할 수도 있다. 수신자들(120)에 대해 구별적인 명칭들을 명시하는 것은 사용자들이 LDAP 명칭 트리(도 6)의 구조를 알 것을 요하기 때문에 사용자들에겐 어려울 수 있다. 통신 흐름 표현은 탐색 동작들을 또한 지원하므로, 사용자들은 수신자 선호도 및 역할 데이터베이스(500) 내 하나 이상의 수신자 객체들의 속성들을 기술할 수 있다. 사용자들이 탐색 동작들을 채용할 때, 이들은 디렉토리 객체들의 구별되는 명칭들을 알 필요가 없다. 이를테면 "search (filter, pattern, op),"와 같은 포맷을 갖는 탐색 프리미티브는 명시된 필터와 일치하는 사람, 역할 혹은 지정 통신 흐름 객체들에 대해 수신자 선호도 및 역할 데이터베이스(500)를 탐색한다. 진보된 탐색 프리미티브는 "adv_search (directory-server, directory-port, base, scope, filter, pattern, op)"와 같은 포맷을 갖는다. 진보된 탐색 프리미티브의 필터, 패턴 및 op 파라미터들의 동작은 탐색 프리미티브와 동일하다. 디렉토리-서버 파라미터는 탐색하기 위해 수신자 선호도 및 역할 데이터베이스(500)의 호스트의 도메인명을 명시하고, 디레고리-포트 파라미터는 이 호스트 상의 수신자 선호도 및 역할 데이터베이스(500) 서버의 포트 번호를 명시한다. 베이스에 구별적 명칭을 루트로 하는 디렉토리 트리가 서버에서 탐색된다. 탐색 범위는 베이스이거나(단지 베이스만에 의해 식별되는 객체의 경우), 1-레벨이거나(베이스에 의해 식별되는 객체의 자식만을 탐색할 경우), 서브-트리(베이스에 의해 식별되는 객체의 전체 서브트리를 탐색할 경우)이다. 디렉토리-서버, 디렉토리-포트, 베이스 혹은 범위는 눌(NULL) 일 수 있고, 이 경우 내정값들이 적용된다.The examples addressed here show that requestors 110 can specify recipients 120 using short names. As described below in the paragraphs under "Directory Internal and Heuristic Methods", these short names are translated by a heuristic search of the recipient preference and role database 500. The requestors 110 may specify, in angle brackets, the distinguished full name of the receiver 120, for example <uid = Joann, ou = people, o = research.avaya.com>. Specifying distinguished names for the recipients 120 can be difficult for users because they require the users to know the structure of the LDAP name tree (FIG. 6). As the communication flow representation also supports search operations, users can describe the attributes of one or more receiver objects in the recipient preference and role database 500. When users employ search operations, they do not need to know distinct names of directory objects. For example, a search primitive having a format such as "search (filter, pattern, op)," searches the recipient preference and role database 500 for people, roles or designated communication flow objects that match the specified filter. Advanced search primitives have the format "adv_search (directory-server, directory-port, base, scope, filter, pattern, op)". The operation of the filter, pattern and op parameters of the advanced search primitive is the same as the search primitive. The directory-server parameter specifies the domain name of the host of the recipient preference and role database 500 for searching, and the diary-port parameter specifies the port number of the recipient preference and role database 500 server on this host. . A directory tree rooted at the base distinguished name is searched on the server. The search scope is base (for objects identified only by base), 1-level (for searching only children of objects identified by base), or sub-trees (all sub-objects of objects identified by base) When searching the tree). Directory-server, directory-port, base, or range may be null, in which case defaults apply.

일반적으로, 통신 흐름 표현을 위한 탐색 프리미티브들은 탐색 결과들을 처리하기 위한 매크로 기능을 포함한다. 리턴된 각각의 객체는, 토큰 "<dn>"의 경우, 탐색 프리미티브들의 패턴 파라미터에 주어진, 패턴으로 대치된다. 이어서 이 객체에 대한 결과 스트림은, 예를 들면 "and" 혹은 "race"인 탐색 프리미티브들의 op 파라미터에 주어진, 사용자가 명시한 프리미티브를 가진 다른 객체들에 대한 결과 스트림에 판독가능된다. 예를 들면, 패턴은,In general, search primitives for communication flow representation include a macro function for processing search results. Each object returned is replaced with a pattern, given the pattern parameter of the search primitives, in the case of the token "<dn>". The result stream for this object is then readable in the result stream for other objects with user-specified primitives, given in the op parameters of search primitives, for example "and" or "race". For example, the pattern is

(<dn> between 5/01/01-05/08/01) delegates (<dn> between 5/08/01- 05/10/01)(<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" 프리미티브로 연결될 것이다. 사용자는 또한 이 기술에 숙련된 자에게 명백한 바와 같이, 단지 한 수신자에 리턴하는 것으로 탐색을 제약시킬 수 있다. 탐색에 복수의 일치들을 취급하는 방법을 명시함으로써 사용자들은 이들이 신중을 요하는 요청을 한 개인에 보내고자 할뿐일 때 큰 무리들에 이 요청을 부주의하게 보내는 것이 방지된다.Generates a string to notify each recipient once a request after May 1, 2001, and again after May 8, 2001 if no response is received. If a response from all receivers is needed before the request is completed, the resulting strings will be concatenated with "and" primitives to generate a communication flow representation. The user can also constrain the search by returning to only one recipient, as will be apparent to those skilled in the art. By specifying how to handle multiple matches in a search, users are prevented from inadvertently sending this request to large groups when they only want to send a request that requires careful attention to an individual.

탐색 프리미티브들은 예를 들면 전문가 도움을 얻기 위해 사용될 수 있다. 예를 들면, 요청자가 이를테면 J2EE와 같은 소정의 토픽에 관해 전문가로서 정보를 필요로 한다면, 요청자는 다음과 같은 통신 흐름을 명시할 수 있다.Search primitives can be used, for example, for expert assistance. For example, if the requester needs information as an expert on a topic, such as J2EE, the requester may specify the following flow of communication.

search ("& ((objectclass=inetOrgPerson) (expertise=J2EE))", "<dn>", OR)search ("& ((objectclass = inetOrgPerson) (expertise = J2EE))", "<dn>", OR)

대안으로, 통신흐름은 다음과 같이 명시될 수 있다.Alternatively, the communication flow can be specified as follows.

expertl or expert2... or expertNexpertl or expert2 ... or expertN

다른 예에서, 네트워크 알람이 발생되고 이는 전문가에 의해 해결되어야 한다. 요청자는 다음과 가은 통신흐름을 명시할 수 있다.In another example, a network alarm is generated which must be resolved by a specialist. The requestor may specify the following flows of communication:

search ("& ((objectclass=inetOrgPerson)(expertise=netmgr))", "<dn>", OR)search ("& ((objectclass = inetOrgPerson) (expertise = netmgr))", "<dn>", OR)

이들 요청들은 한 전문가가 요청을 충분히 만족시킬 때 완료될 것이다.These requests will be completed when an expert satisfies the request.

다음 표는 연산자들의 우선도(연산 순서)를 높은 순에서 낮은 순으로 열거한 것이다. 동일 레벨의 연산자들은 좌측에서 우측으로 연합된다. 일반적으로 괄호들은 우선 순서를 변경시키는데 사용될 수 있다.The following table lists the precedence (operation order) of operators from highest to lowest. Operators of the same level are combined from left to right. In general, parentheses can be used to change the order first.

연산자Operator AND, THENAND, THEN OR, ELSEOR, ELSE RACES, DELEGATESRACES, DELEGATES NOTNOT VOTES, POLLSVOTES, POLLS AFTER, BEFORE, BETWEENAFTER, BEFORE, BETWEEN ?? SEARCH 및 이외 다른 기능들SEARCH and other features

요청 관리자(1200) 및 통신 흐름 관리자(1300) 상호작용Request Manager 1200 and Communication Flow Manager 1300 Interaction

도 11 내지 도 13은 요청 관리자(1200)와 통신 흐름 관리자(1300) 간 상호작용을 예시한 것이다. 도 11은 요청에 연관된 각종의 엔터티들 간에 정보의 흐름을 예시한 개략적인 블록도이다. 도 12a와 도 12b는 도 11의 요청 관리자의 동작을 보다 상세히 예시한 흐름도이다. 도 13은 도 11의 통신 흐름 관리자의 동작을 보다 상세히 예시한 흐름도이다. 본 실시예에서, 요청 관리자 처리(1200) 및 통신 흐름 관리자 처리(1300)는 단계 1205(도 12) 및 단계 1305(도 13), 각각에서 검출되는 여러 기선정된 비동기 이벤트들을 처리한다.11 through 13 illustrate an interaction between the request manager 1200 and the communication flow manager 1300. 11 is a schematic block diagram illustrating the flow of information between various entities associated with a request. 12A and 12B are flowcharts illustrating the operation of the request manager of FIG. 11 in more detail. 13 is a flowchart illustrating the operation of the communication flow manager of FIG. 11 in more detail. In this embodiment, request manager processing 1200 and communication flow manager processing 1300 process the various pre-selected asynchronous events detected in steps 1205 (FIG. 12) and 1305 (FIG. 13), respectively.

도 12a에 도시한 바와 같이, 요청 관리자(1200)는 단계 1210에서 애플리케이션 인터페이스(220)를 통해 애플리케이션(110)으로부터 수신된 새로운 요청을 검출한다. 요청 관리자(1200)는 단계 1215에서 요청 데이터베이스(300)(도 3)에 요청에 대한 엔트리를 생성하고, 요청 식별자와 더불어, 요청에 대한 통신 흐름 표현 부분을, 단계 1220에서 파싱(parsing)하는 통신 흐름 관리자(1300)에 제공한다.As shown in FIG. 12A, the request manager 1200 detects a new request received from the application 110 via the application interface 220 in step 1210. The request manager 1200 creates an entry for the request in the request database 300 (FIG. 3) in step 1215 and communicates with the request identifier a parsing portion of the communication flow representation for the request in step 1220. Provided to flow manager 1300.

도 13에 도시한 바와 같이, 통신 흐름 관리자(1300)는 단계 1310에서 처리할새로운 통신 흐름 표현을 검출한다. 통신 흐름 관리자(1300)는, 필요하다면, 단계 1315에서 통신 흐름 표현을 처리하고, 소정의 수신자용으로 채용할 매체 연락 객체들을 나타내는, 트리(600) 내 한 세트의 실행가능한 단말 노드들에 도달할 때까지, 수신자 선호도 및 역할 데이터베이스(500)를 사용하여 통신 흐름 표현 내 각 명칭을 계속 분석한다. 수신자들(120)은 통신 흐름 관리 GUI(1110)을 사용하여 수신자 선호도 및 역할 데이터베이스(500)에 이들의 선호도들을 입력하고 갱신할 수 있는 것에 유의한다.As shown in FIG. 13, the communication flow manager 1300 detects a new communication flow representation to process in step 1310. The communication flow manager 1300 may, if necessary, process a communication flow representation in step 1315 and reach a set of executable terminal nodes in the tree 600 that represent the media contact objects to employ for a given recipient. Until then, each name in the communication flow representation is analyzed using the recipient preference and role database 500. Note that the receivers 120 can enter and update their preferences in the recipient preferences and role database 500 using the communication flow management GUI 1110.

통신 흐름 관리자(1300)는 연락할 장치 리스트를 생성하고 단계 1324에서, 이 리스트를 연락 스케쥴링 정보의 일부로서 요청 관리자(1200)에 보낸다. 일반적으로, 연락 스케쥴링 정보는 요청 관리자(1200)에 의해 즉각 스케쥴할 수 있는 연락들만을 포함한다. 예를 들면, 소정의 수신자의 선호도에, 오전 8시에서 오후 5시 사이에 전화에 의해 연락될 수 있을 뿐임이 나타나 있다면, 통신 흐름 관리자(1300)는 이 시간 범위가 유효하게 될 때까지 전화 매체 연락을 스케쥴하지 않을 것이다.The communication flow manager 1300 generates a list of devices to contact and sends this list to the request manager 1200 as part of the contact scheduling information at step 1324. In general, the contact scheduling information includes only contacts that can be immediately scheduled by the request manager 1200. For example, if the preferences of a given recipient indicate that they can only be contacted by telephone between 8:00 am and 5:00 pm, the communication flow manager 1300 may not be able to access the telephone medium until this time range becomes valid. Will not schedule contact.

구체적으로, 통신 흐름 관리자(1300)는 수신한 통신 흐름 표현을 트리로 파싱을 행하고, 단말 노드에 도달할 때까지, 예를 들면, DFS(depth-first search) 방식을 사용하여 트리를 거침으로써, 트리 내 노드들을 반복하여 처리를 시작한다. 트리에서 단말(리프(leaf)) 노드에 접하게 될 때마다, 이에 저장된 매체 연락이 처리된다. 소정의 노드가 동시 프리미티브를 포함한다면, 동시 프리미티브의 오퍼랜드들에 연관된 모든 노드들이 처리된다. 소정의 노드가 순차 프리미티브를 포함한다면, 좌측 오퍼랜드가 완료될 때까지 우측 오퍼랜드는 처리되지 않는다.Specifically, the communication flow manager 1300 parses the received communication flow representation into a tree and goes through the tree using, for example, a depth-first search (DFS) method until the terminal node is reached. Iterate through the nodes in the tree to start processing. Whenever a terminal (leaf) node is encountered in the tree, the media contact stored therein is processed. If a given node contains concurrent primitives, all nodes associated with the operands of the concurrent primitive are processed. If a given node contains sequential primitives, the right operand is not processed until the left operand is completed.

또한, 매체 연락을 요청 관리자(1200)에 리턴시키기 전에, 통신 흐름 관리자(1300)는 매체 연락(단말 노드)에 연관된 시간제약에 만족하는지 판정한다. 예를 들면, 통신 흐름 관리자(1300)는 시작 시간에 도달하였는지 판정한다. 모든 시간제약이 만족되면, 매체 연락은 요청 관리자(1200)에게로 리턴된 리스트에 포함된다. 모든 시간 제약이 만족되지 않으면, 매체 연락은 요청 관리자(1200)에 리턴된 리스트에 아직 포함되지 않으며 통신 흐름 관리자(1300)는 타이머를 설정하므로 매체 연락은 적합한 시간에 통신 흐름 관리자(1300)에 의해 리스트에 부가될 수 있다. 매체 연락 객체는 모든 시간제약이 만족될 때까지는 검색되지 않는 것에 유의한다.In addition, before returning the media contact to the request manager 1200, the communication flow manager 1300 determines whether it satisfies the time constraint associated with the media contact (terminal node). For example, the communication flow manager 1300 determines whether the start time has been reached. If all time constraints are met, the media contact is included in the list returned to request manager 1200. If all time constraints are not met, the media contact is not yet included in the list returned to the request manager 1200 and the communication flow manager 1300 sets a timer so that the media contact is made by the communication flow manager 1300 at the appropriate time. Can be added to the list. Note that the media contact object is not retrieved until all time constraints have been met.

통신 흐름 표현의 트리 표현은 관련 시간제약 확인을 용이하게 하기 위해서 기지의 방법으로 루트 노드에의 역 포인터들을 포함할 수 있는 것에 유의한다. 트리에서 사람 혹은 역할에 대해 지명된 노드에 접하였다면, 이 명칭이 동일 소유자(동일 명시된 통신 흐름)와 이전에 연락되었던 것인지 여부를 판정한다. 이 명칭이 동일 소유자와 이전에 연락된 바가 있었다면, 두 번째 연락 시도는 행해지지 않는다. 그보다는, 상태정보가 이전 연락으로부터 전파된다.Note that the tree representation of the communication flow representation may include inverse pointers to the root node in a known manner to facilitate the associated time constraint confirmation. If a node has been contacted for a person or role in the tree, it is determined whether the name has been previously contacted with the same owner (same specified communication flow). If this name had been previously contacted with the same owner, no second contact attempt is made. Rather, status information is propagated from previous contacts.

도 12a에 도시한 바와 같이, 요청 관리자(1200)는 단계 1225에서 수신된 연락 스케쥴링 정보를 검출하고, "매체에 특정한 인터페이스들" 제하의 단락에서 후술하는 바와 같이, 단계 1230에서 지시된 매체 연락 유형(들)을 사용하여 연락 스케쥴링 정보에 지시된 각 수신자에 연락을 시도한다.As shown in FIG. 12A, the request manager 1200 detects contact scheduling information received in step 1225, and the media contact type indicated in step 1230, as described below in the paragraph under “Media-Specific Interfaces”. Attempt to contact each recipient indicated in the contact scheduling information using (s).

요청 관리자(1200)가 단계 1240(도 12b)에서 하나 이상의 응답들 혹은 메시지 만료 이벤트들을 검출하였다면, 대응하는 요청 식별자로 응답들 혹은 만료의 레코드가, 예를 들면, 보관 혹은 기록 유지 목적으로 단계 1245에서, 응답 데이터베이스(1150)에서 선택적으로 생성된다. 각 개개의 응답이 요청 애플리케이션(110)에 제공되는 실시예에서, 수신된 응답은 단계 1248에서 대응하는 애플리케이션(110)에 보내진다. 응답들 혹은 만료 상태는 단계 1250에서 다른 처리를 위해 통신 흐름 관리자(1300)에 보내진다.If the request manager 1200 detects one or more responses or message expiration events in step 1240 (FIG. 12B), then a record of responses or expiration with a corresponding request identifier, e.g. Is optionally generated in the response database 1150. In an embodiment where each individual response is provided to the requesting application 110, the received response is sent to the corresponding application 110 in step 1248. Responses or expiration status are sent to communication flow manager 1300 for further processing in step 1250.

통신 흐름 관리자(1300)는 단계 1330에서 요청 식별자로, 수신된 응답 혹은 만료 상태를 검출하고, 단계 1335에서 적합한 통신 흐름 표현을 불러들이기 위해서 요청 식별자를 사용한다. 단계 1330에서 응답 혹은 만료 상태가 검출되었을 때, 통신 흐름 관리자는 매체 연락의 상태를 반영하기 위해서 단계 1335에서 통신 흐름 표현의 트리 표현을 갱신한다. 이어서 통신 흐름 관리자(1300)는 현재 결정된 어떤 상급의 오퍼랜드의 상태를 결정함으로써 트리의 루트로 올라가므로 오퍼랜드는 매체 연락의 상태의 결과로서 이제 완료된다. 오펀랜드가 완료되었을 때, 이 오퍼랜드에 대한 현안의 매체 연락들은 취소시킬 연락 리스트에 넣어진다. 이 리스트는 적합할 때 단계 1350 혹은 단계 1320 후에 요청 관리자(1200)으로 리턴된다. 상태의 전파로 통신 흐름 전체가 완료되지 않았으면, 이것은 트리 내 최상의 연산자의 완료 상태가 설정되었을 때 일어나는 것으로, 처리는 단계 1315으로 계속된다. 통신 흐름 전체가 완료되었으면 처리는 단계 1350으로 계속된다.The communication flow manager 1300 detects the received response or expiration status as the request identifier in step 1330 and uses the request identifier in step 1335 to retrieve the appropriate communication flow representation. When a response or expiration status is detected in step 1330, the communication flow manager updates the tree representation of the communication flow representation in step 1335 to reflect the status of the media contact. The communication flow manager 1300 then ascends to the root of the tree by determining the status of any higher order operands that are currently determined so that the operands are now complete as a result of the status of the media contact. When Orland is completed, current media contacts for this operand are put on the contact list to cancel. This list is returned to request manager 1200 after step 1350 or step 1320 as appropriate. If the entire flow of communication has not been completed due to the propagation of the state, this occurs when the completion state of the best operator in the tree is set, and processing continues to step 1315. If the entire communication flow is complete, processing continues to step 1350.

통신 흐름 표현을 사용하여, 통신 흐름 관리자(1300)는 어떤 추가 통신들이필요한지 아니면 통신이 완료되었는지 판정한다. 단계 1340에서 추가 통신들이 필요한 것으로 판정되면, 프로그램 제어는 단계 1314로 가서 연락 스케쥴링 정보를 생성하고 이 연락 스케쥴링 정보를 요청 관리자(200)에 제공한다. 그러나, 단계 1340에서 통신 흐름 표현이 완료된 것으로 판정되면, 통신 흐름 관리자(1300)는 단계 1350에서 요청 관리자(1200)에 완료 상태 표시를 보낸다.Using the communication flow representation, the communication flow manager 1300 determines what additional communications are needed or whether the communication is complete. If it is determined in step 1340 that further communications are needed, the program control goes to step 1314 to generate contact scheduling information and provide this contact scheduling information to the request manager 200. However, if it is determined in step 1340 that the communication flow representation is complete, the communication flow manager 1300 sends a completion status indication to the request manager 1200 in step 1350.

대조된 응답들이 요청 애플리케이션(110)에 제공되는 실시예에서, 단계 1260에서 요청 관리자(1200)가 통신 흐름 관리자(1300)로부터 완료 상태 표시를 일단 받았으면, 요청 관리자(1200)는 응답들을 대조하고 단계1265에서 요청 애플리케이션(110)에 의해 지시된 최종 목적지 주소로 보낸다. 완료 상태 메시지는 단계 1270에서 대응하는 애플리케이션에 보내진다.In an embodiment where collated responses are provided to the requesting application 110, once the request manager 1200 has received a completion status indication from the communication flow manager 1300 at step 1260, the request manager 1200 collates the responses and steps At 1265 it is sent to the final destination address indicated by the requesting application 110. The completion status message is sent to the corresponding application in step 1270.

매체에 특정한 인터페이스들Media Specific Interfaces

본 실시예에서, 매체에 특정한 인터페이스들은, 이들 모두는, 연락을 개시하는 한 방법과 이를 취소시키는 또 다른 방법인 두 방법을 각 서브-부류가 구현할 것을 요하는 단일 앱스트랙트 MediaContact 분류의 서브-부류이다. 그러나, 단지 두 방법들만이 필요로 한다고 해도, 어느정도는 서브-부류들은 통지 및 응답 시스템(100)과 엔드포인트들 간에 인텔리전스 분배에 따라, 매우 단순한 것부터 매우 복잡한 것까지의 범위에 걸쳐 있다. 일반적으로, 각각의 매체 연락에 대해서, 요청은 후술하는 매체에 특정한 트랜스코더들 중 하나에 의해 트랜스코딩됨으로써, 시도될 특정 연락에 적합한 엔코딩을 만들어낸다. 프로토콜에 특정한 통신 인터페이스는 엔코딩된 요청들을 각각의 수신자에 실제로 보내는 것을 처리한다.In this embodiment, the media-specific interfaces are sub-classes of a single Appclass MediaContact classification that require each sub-class to implement two methods, all of which are one way of initiating contact and another way of canceling it. to be. However, even if only two methods are needed, to some extent sub-classes range from very simple to very complex, depending on the intelligence distribution between the notification and response system 100 and the endpoints. In general, for each media contact, the request is transcoded by one of the transcoders specific to the media described below, creating an encoding that is appropriate for the particular contact to be attempted. The communication interface specific to the protocol handles the actual sending of encoded requests to each recipient.

이러한 일군의 부류들은 DAL(device abstraction layer)로서 간주될 수 있다. 이러한 DAL은 다른 통지 및 응답 시스템(100) 부류들에게 각종의 장치들의 모든 복잡성을 은폐시키고, 모든 장치들에 걸쳐 균일한 어떤 파라미터 설정 및 획득 방법들만이 아니라 통지를 구체화하고, 초기화하고 취소시키기 위해 단지 소수의 간단한 방법들만을 드러낸다. 다음에, 다수의 MediaContact 서브-부류들에 대해 기술한다.This group of classes can be regarded as a device abstraction layer (DAL). This DAL hides all the complexity of the various devices to other notification and response system 100 classes, and to specify, initialize, and cancel the notification, as well as any parameter setting and acquisition methods that are uniform across all devices. Only a few simple methods are revealed. Next, a number of MediaContact sub-classes are described.

WebContactWebContact

WebContact 부류는 미결 요청, 완료된 요청 및 취소된 요청들의 리스트들을 보기 위해서 수신자가 웹 포탈에 접속할 수 있게 한다. WebContact 부류는 미결 리스트에, 요청자 이름, 요청한 시간, 요지와 요청 URL에의 하이퍼링크를 포함하는 아이템을 삽입시킨다. 취소는 단지 아이템을 미결에서 취소 리스트로 옮긴다. "수신자"는 원하는 통지에 클릭한 후 표시되는 형태를 완성시킴으로써 응답한다.The WebContact class allows the recipient to access the web portal to view a list of open requests, completed requests, and canceled requests. The WebContact class inserts an item in the open list that contains the requester's name, the requested time, the summary, and a hyperlink to the request URL. Cancel just moves the item from the open to the cancel list. The "recipient" responds by clicking on the desired notification and completing the form displayed.

PhoneContactPhoneContact

PhoneContact 부류는 수신자들이 전화를 걸거나 연락할 때까지 기다리는 것이 아니라 전화 호를 개시해야 한다. 또한, PhoneContact 부류는 VXML 스트립트(혹은 또 다른 텍스트로 된 표현)를 오디오로 바꾸어주는 VoiceXML(Voice eXtensible Markup Language) 시스템을 채용할 수 있다. PhoneContact 부류는 TCP를 통해 자동전화 다이얼러에, 요청 식별자, 매체 연락 식별자, 전화를 걸 전화번호, 및 타겟 수신자에 VXML 스트립트를 보낼 서블릿의 URL을 명시하는 메시지를 보낸다. 취소의 경우, 단순히 PhoneContact은 아직 전화하지 않았다면 전화 호를 취소시킬 것을 지시하는 메시지를 보낸다.The PhoneContact class should initiate phone calls rather than waiting for recipients to make or contact them. The PhoneContact class can also employ VoiceXML (Voice eXtensible Markup Language) systems that convert VXML scripts (or other textual representations) into audio. The PhoneContact class sends a message via TCP specifying the request identifier, the media contact identifier, the telephone number to call, and the URL of the servlet to send the VXML script to the target recipient. In the case of a cancellation, PhoneContact simply sends a message telling it to cancel the telephone call if it has not already called.

자동 전화 다이얼러의 제어 프로그램은 전화 호들에 대한 요청들을 큐하고, 자원들을 사용할 수 있게 되는 즉시로 FIFO 순으로 이들을 실행한다.The control program of the automatic telephone dialer queues requests for telephone calls and executes them in FIFO order as soon as the resources become available.

EmailContactEmailContact

본 통지 및 응답 시스템(100)은 3개의 서로 다른 유형들의 이메일로서 평문, HTML 및 내장 동적 HTML을 가능하게 한다. 첫 번째의 경우, 간혹 많은 수신자들은 텍스트로만으로 된 이메일 클라이언트들을 사용한다. 이것은 텍스트 에디터인 이맥스 및 어떤 웹 기반의 클라이언트들을 포함할 뿐만 아니라, Blacberry(등록상표) 및 Palm으로부터 구입할 수 있는 것들과 같은 무선 이메일 클라이언트들을 포함한다. 디렉토리에 이메일은 텍스트이어야만 한다는 것을 나타냄으로써 제공되어야 하는 이 경우, 통지 및 응답 시스템(100)은 대개는 요청자의 이름, 요청 요지 및 통지 메시지를 가리키는 URL을 포함하는 단순한 이메일 메시지를 구성한다. 본 구현에서, 요청 애플리케이션은 텍스트 메시지 자체를 생성하였으며 또한 오디오 액세스가 요청될 수 있을 음성 포탈의 전화번호를 삽입시켰다.The notification and response system 100 enables plain text, HTML, and embedded dynamic HTML as three different types of email. In the first case, sometimes many recipients use text only email clients. This includes not only text editor Emacs and some web based clients, but also wireless email clients such as those available from Blacberry® and Palm. In this case, which should be provided by indicating that the email must be text in the directory, the notification and response system 100 usually constructs a simple email message that includes the requester's name, request summary and a URL pointing to the notification message. In this implementation, the requesting application created the text message itself and also inserted the telephone number of the voice portal to which audio access may be requested.

삽입된 프레임들 혹은 층들은 처리할 수 없으나 HMTL이 가능한 이메일 클라이언트의 경우, EmailContact는 다시 통지를 기술하지만 이 번엔 통지 메시지에의하이퍼링크를 포함하는 HTML 페이지를 구성한다. 삽입된 프레임들 및 층들을 취급할 수 있는 이메일 클라이언트의 경우, EmailContact는 클라이언트가 메시지를 렌더링할 때 콘텐트들이 포함되게 통지를 삽입하는 메시지를 구성한다.For email clients that cannot process embedded frames or layers but are HMTL-enabled, EmailContact again describes the notification, but this time constructs an HTML page containing a hyperlink to the notification message. For an email client that can handle embedded frames and layers, EmailContact constructs a message that inserts a notification so that the content is included when the client renders the message.

EmailContact에 있어 한 궁극적인 복잡화는 배송될 수 없는 이메일 메시지들을 해석할 필요성이었다. 이것은 이번에는 통지 및 응답 시스템(100)에 보내지는 어떠한 메시지들이든 취급하는 프로그램으로서 명시되는 주 방법을 제공함으로써 구현된다. 이 방법은 배송 시도가 실패하였다는 것 혹은 다른 어떤 것을 나타내고 있는지 여부를 알기 위해서, 리턴된 메일의 해석을 시도한다. 그러하다면, 통지 및 응답 시스템(100)에, 연락이 실패되었다는 것을 알린다. 통지 및 응답 시스템(100)은 선택적으로 수신 요청들을 읽고 이들을 해석할 수 있다. 이것은 아무 응답도 보내지지 않았어도 통지가 성공되었음을 판정하는 것을 가능하게 할 것이며 어떤 애플리케이션에 있어선 필요한 기능이 될 수도 있다.An ultimate complication for EmailContact was the need to interpret email messages that could not be delivered. This is implemented by providing a main method that is specified as a program this time handling any messages sent to the notification and response system 100. This method attempts to interpret the returned mail to see if the delivery attempt failed or indicates something else. If so, notify notification and response system 100 that the contact has failed. Notification and response system 100 may optionally read and interpret receive requests. This will enable you to determine that the notification was successful even if no response was sent, and might be a necessary feature for some applications.

SMSContactSMSContact

SMSContact은 Sprint(등록상표), Verizon(등록상표) 및 AT&T(등록상표)를 포함하는 많은 셀 전화 제공업자들로부터 구입될 수 있는 단문 메시지 발송 서비스를 통해 통지들을 취급한다. SMSContact 객체는 메시지를 보내기 위해서 웹 사이트에의 제공업자 특정의 HTTP POST 혹은 GET을 행한다. 이메일을 서비스 제공업자에게 보냄으로써 이와 같은 것을 개략적으로 행하는 것이 가능할지라도, POST는 조금 더 제어를 제공한다. POST는 제공업자의 웹 인터페이스가 진화될 때 소프트웨어 변경비용을 수반한다. 통지 및 응답 시스템(100)은 일단 메시지가 배송되었으면 대부분의 서비스 제공업자들이 내보내는 확인 이메일을 선택적으로 해석할 수 있다. SMS 메시지가 언제 성공적으로 보내졌는가를 확인하는 것 외에도, 이 이메일은 서비스 제공업자의 웹 인터페이스가 변경되었는지 여부를 알 수 있게 하므로 시스템은 SMSContact 소프트웨어가 갱신될 때까지 이메일 SMS 배송을 사용하는 것에 의존할 수 있다.SMSContact handles notifications through a short message sending service that can be purchased from many cell phone providers, including Sprint®, Verizon®, and AT & T®. The SMSContact object performs a provider-specific HTTP POST or GET to the website to send the message. Although it is possible to do this roughly by sending an email to a service provider, POST provides a bit more control. POST entails the cost of software change as the provider's web interface evolves. The notification and response system 100 can optionally interpret the confirmation email sent by most service providers once the message has been delivered. In addition to checking when the SMS message was sent successfully, the email also lets you know if the service provider's web interface has changed, so the system will rely on using email SMS delivery until the SMSContact software is updated. Can be.

FaxContactFaxContact

통지 및 응답 시스템(100)은 예를 들면 Avaya의 AUDIX 시스템의 패스기능을 사용하여, 팩스기에 통지를 보내는 부류를 제공할 수 있다. 이 부류는 HTML 혹은 텍스트 페이지를 TIFF 이미지 파일로 변환한 후 팩스를 통해 목적지에 이미지를 보내기 위해 요청을 발생한다. 이 부류는 또한 미결 팩스들에 관한 정보 및 이들의 어떤 제어를 제공하는 단순 상태 및 관리 서블릿을 포함한다.The notification and response system 100 may provide a class for sending notifications to a fax machine, for example using the pass function of Avaya's AUDIX system. This class converts an HTML or text page into a TIFF image file and then makes a request to send the image to the destination via fax. This class also includes simple state and management servlets that provide information about pending faxes and some control thereof.

AudixVoiceContactAudixVoiceContact

AudixVoiceContact 객체는 통지의 텍스트판을 수신자의 음성 메일박스에 보내도록 설계되어 있다. 본 구현은 메시지를 오디오 파일로 바꾼 후 FaxContact과 동일한 메카니즘을 사용하여 AUDIX 서버에 보내지도록 IBM 사로부터의 ViaVoice(등록상표) 제품을 사용하여 구현된다.The AudixVoiceContact object is designed to send a text version of the notification to the recipient's voice mailbox. This implementation is implemented using the ViaVoice® product from IBM, which converts the message into an audio file and then sends it to the AUDIX server using the same mechanism as FaxContact.

SIPContactSIPContact

SIPContact 부류는 통지 및 응답 시스템(100)을, SIP(Session Initiation Protocol)이 가능한 엔드포인트들에 접속한다. SIP는 예를 들면, 1999년 3월, M. Handley 등의, "SIP: Session Initiation Protocol,"RFC 2543에 기재되어 있다. SIP는 다양한 통신 세션들을 셋업하고 제어하는 IETF(Internet Engineering Taskforce)에 의해 정의된 비교적 새로운 프로토콜이다.The SIPContact class connects the notification and response system 100 to endpoints capable of Session Initiation Protocol (SIP). SIP is described, for example, in March 1999, in M. Handley et al., "SIP: Session Initiation Protocol," RFC 2543. SIP is a relatively new protocol defined by the Internet Engineering Taskforce (IETF) that sets up and controls various communication sessions.

이를 행하기 위해서, SIPContact 부류는 통지 및 응답 시스템(100)으로부터 메시지를 수신하는 SEE(SIP Execution Environment)이라 하는 성분에 의존한다. 메시지는 수신자에 대한 SIP 주소; 매체 연락 식별자; 요청 식별자; 및 이 요청에 사용할 사용가능 매체 유형들 및 사람의 언어들의 리스트를 포함한다. SEE는 SIP 주소를 취하고, 수신자와의 연락이 수립되게 SIP 프로토콜에 따라 주소로 "초대"를 수행한다. 이어서 SEE는 수신자가 선호하는 매체 및 사람 언어를 나타내는 OK 메시지를 수신자 장치로부터 수신한다. SEE는 후술하는 XFS 요청을 실행하여, 사용가능한 것들로부터 이전에 공급된 리스트로부터, 매체 연락 식별자; 요청 식별자; 및 이 요청에 사용할 선호하는 매체 유형 및 사람 언어를 공급한다. XFS 요청은 수신자의 SIP 선호도에 따라 수신자에 통지하기 위해 적합하게 포맷된 콘텐트를 리턴한다. 이 기술은 원하는 포맷들 각각에 대해서 XFS를 1회에 SEE로 하여금 사용할 수 있게 함으로써 다수의 포맷들을 수신하기를 선호하는 장치들(일부 장치들은 화면들과 오디오를 구비하고 있다)을 지원한다.To do this, the SIPContact class relies on a component called the SIP Execution Environment (SEE) that receives messages from the notification and response system 100. The message includes a SIP address for the recipient; Media contact identifier; Request identifier; And a list of available media types and human languages to use in this request. The SEE takes the SIP address and “invites” the address according to the SIP protocol to establish contact with the recipient. The SEE then receives an OK message from the recipient device indicating the recipient's preferred medium and human language. The SEE executes the XFS request described below, from the list previously supplied from the available ones, the media contact identifier; Request identifier; And the preferred media type and human language to use for this request. The XFS request returns appropriately formatted content for notifying the receiver according to the receiver's SIP preferences. This technology supports devices that prefer to receive multiple formats (some devices have screens and audio) by enabling SEE to use XFS once for each of the desired formats.

본 구현에서, SEE는 Microsoft XP(등록상표)의 소프트폰에 인스탄트 메시지혹은 호를 보낼 수 있으며; 호 제어 프로토콜을 SIP로 변경시킨(H. 323 대신에) SIP 가능 Avaya 4624(등록상표) IP phones, 디지털 및 아날로그 전화들로 (SIP 프로토콜 지원으로 향상된 MultiVantage(등록상표) 호 처리 소프트웨어 버전을 통해) 전화를 걸 수 있고; 적외선 기능을 갖추고 있고 호 제어 프로토콜을 SIP로 변경시킨(H. 323 대신에) SIP 가능 Avaya 4624(등록상표) IP 전화들에 인스탄트 텍스트 메시지들을 보낼 수 있고; 호 제어 프로토콜을 SIP로 대치시킨(H.323 대신으로) 실험용 SIP 가능 Avaya 4630(등록상표) IP 스크린 전화에 웹 페이지가 나타나게 할 수 있다.In this implementation, the SEE may send an instant message or call to a Microsoft XP® softphone; SIP-enabled Avaya 4624® IP phones, digital and analog phones that have changed the call control protocol to SIP (instead of H.323) (via the enhanced version of MultiVantage® call processing software with SIP protocol support) Can make a phone call; Instant text messages can be sent to SIP-capable Avaya 4624® IP phones that have infrared capabilities and have changed the call control protocol to SIP (instead of H. 323); A web page can be displayed on an experimental SIP-enabled Avaya 4630® IP screen phone that replaced the call control protocol with SIP (instead of H.323).

SIP는 많은 방법으로 본 발명의 통지 및 응답 시스템(100)을 보완한다. 특히, SIP는 수신자의 선호도들이 이 수신자에 연락을 취하는 자에 적용하도록 한 서버에 연락 선호도들을 수신자가 셋업할 수 있게 하는 메카니즘을 제공한다. SIP가 가능한 수신자들이 SIP를 통해 이들의 선호도들을 표현할 수 있는 반면, 통상의 수신자들은 여전히 통지 및 응답 시스템(100) 내에서 개개의 통신 흐름들을 정의할 수 있다. SIP 메카니즘은 통지들을 어떻게 언제 수신할 것인가를 제어하기 위해 수신자들에 의해 사용될 것인 반면 통지 및 응답 시스템(100) 내 통신 흐름들은 비-SIP 엔드포인트들 및 SIP에 명시된 선호 엔드포인트들에 통지들을 어떻게 언제 보낼 것인가를 결정할 것으로 예상된다. 즉, SIP 및 통합 메시징이 메시지들을 수신하는 방법에 관해 제어할 수 있게 하는 바와 같이, 통지 및 응답 시스템(100)은 기업이 어떻게 이들 메시지들을 내보내는가에 대해 제어할 수 있게 할 것이다. 메시지들을 수신하는 방법에 대한 SIP 제어는 여기 개시된 바에 따라, 통신 흐름 표현 및 통신 흐름 규칙 기능성에 의해 향상될 수 있는 것에 유의한다.SIP complements the notification and response system 100 of the present invention in many ways. In particular, SIP provides a mechanism that allows a recipient to set contact preferences on a server such that the recipient's preferences apply to the person making the contact. While SIP-enabled recipients can express their preferences over SIP, typical recipients can still define individual communication flows within notification and response system 100. The SIP mechanism will be used by the recipients to control how and when to receive notifications while communication flows within the notification and response system 100 send notifications to non-SIP endpoints and preferred endpoints specified in SIP. It is expected to determine how and when to send. That is, as SIP and Unified Messaging allow control over how messages are received, notification and response system 100 will allow the enterprise to control how these messages are sent. Note that SIP control over how to receive messages may be enhanced by communication flow representation and communication flow rule functionality, as disclosed herein.

SIPContact 부류는 통지 및 응답 시스템(100)의 구조의 잇점들 중 일부를 시사한다. 특히, 통지 및 응답 시스템(100)에서 통지 메시지의 콘텐트는, 요청과 연락된 수신지 및 장치를 확인한 두 인자들에 의해 XFS라 하는 폼(form) 서블릿을 불러냄으로써 웹 혹은 전화 브라우저 혹은 MediaContact에 의해 불러들여질 수 있다.The SIPContact class suggests some of the benefits of the structure of the notification and response system 100. In particular, the content of the notification message in the notification and response system 100 is invoked by a web or telephone browser or MediaContact by invoking a form servlet called XFS by two factors identifying the destination and the device contacted with the request. Can be invoked.

http://xui/XFS ? Rid=xui-1234-1&Cid=1http: // xui / XFS? Rid = xui-1234-1 & Cid = 1

여기서 Rid는 요청 id이고 Cid는 매체 연락 id이다. 이 둘은 함께하여 수신자를 식별하는데 충분하다. XFS는 단순히 요청 관리자(1200)를 사용해 적합한 요청을 검색하고, 이어서 통지 메시지의 URL를 얻는데 사용되었다. 이어서 이 메시지를 불러들여, 이에 응답 수신자를 변경하고 메시지를 개인화하도록 재기입된 후 브라우저 혹은 다른 목적지로 보내졌다.Where Rid is the request id and Cid is the media contact id. Both are sufficient to identify the recipient together. XFS was simply used to retrieve the appropriate request using request manager 1200 and then to obtain the URL of the notification message. This message was then recalled, rewritten to change the recipient of the response and to personalize the message, and then sent to a browser or other destination.

복수의 언어 및 매체 유형들을 지원하기 위해서, XFS 서블릿은 원하는 언어 및 MIME 유형을 명시하기 위해 두 개의 추가 파라미터들을 받아들이도록 수정될 수 있다. 예를 들면, 보다 일반적인 XFS 버전은 다음과 같이 특정 언어 및 포맷 유형들의 검색을 가능케 한다.To support multiple languages and media types, the XFS servlet can be modified to accept two additional parameters to specify the desired language and MIME type. For example, the more general version of XFS allows searching for specific language and format types as follows:

http://xui/XFS?Rid=Xui-1234-I&Cid=1&Ctype=text/plain&Language=ENUhttp: // xui / XFS? Rid = Xui-1234-I & Cid = 1 & Ctype = text / plain & Language = ENU

이것은 "xui-1234-1"의 영어, 평문판이 필요로 하는 것을 명시한다.This specifies what the English, plain text version of "xui-1234-1" needs.

본 통지 및 응답 시스템(100)은 전화를 통한 음성 및 화면상에 웹 페이지 팝으로서 두 가지 방법으로 동시에 SIP 가능 Avaya 스크린 전화에 통지를 전한다. 이것은 스크린 전화를, 웹 팝 및 오디오 접속 모두를 취급할 수 있음을 SEE에 명시하게 함으로써 행해졌다. 그러면 SEE는 XFS에 두 번의 호, 첫 번째는 HTML 페이지를 불러들이고 두 번째는 VXML 페이지를 불러들이도록 전화를 건다.The notification and answering system 100 delivers a notification to a SIP-enabled Avaya screen phone at the same time in two ways, as a voice over the phone and as a web page pop on the screen. This was done by letting the SEE specify that screen phones can handle both web pop and audio connections. The SEE then calls XFS to load two calls, the first to load the HTML page and the second to load the VXML page.

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 / html & Language = ENU;

http://xui/XFS?Rid=xui-1234-1&Cid=1&Ctype=text/vxml&Language=ENU.http: // xui / XFS? Rid = xui-1234-1 & Cid = 1 & Ctype = text / vxml & Language = ENU.

실시예들Examples

전술한 바와 같이, 통지 및 응답 시스템(100)은 애플리케이션(110)(요청자)가 질의할 수 있게 하고, 원하는 응답 유형들을 명시할 수 있게 하며, 이메일을 통해 수신자들로부터 대조된 한 세트의 응답들을 수신할 수 있게 한다. 도 14는 팀 회합에 대한 요청의 파라미터들을 애플리케이션(110)이 명시하게 하는 웹 폼(1400)을 예시한 것이다. 도 14의 예에서, Joann은 회합을 스케쥴하는 요청을 "YangQian" 및 "Petsche"에 보내고 있다. 이들 수신자들이 회합 시간 및 장소에 동의하면, 참석할 수 있는지 알기 위해서 이들의 관리자(cmk)에 요청이 보내진다. 생성된 요청은 적합할 때, 다른 매체 연락들을 통해 지시된 수신자들에 보내진다. 요청은 요청을 답하기 위한 예 버튼과 아니오 버튼을 포함한다. 도 15는 요청의 컴파일된 결과를 도시한 것이다. 도 15에 나타낸 바와 같이, Petsche는 회합에 참석할 수도 있을 것이나 YangQian은 회합을 참석하지 못할 수도 있으므로 이들의 관리자에 연락되지 않았다.As noted above, notification and response system 100 allows application 110 (requester) to query, specify desired response types, and receive a set of responses that are collated from recipients via email. Enable to receive 14 illustrates a web form 1400 that allows the application 110 to specify parameters of a request for a team meeting. In the example of FIG. 14, Joann is sending requests to "YangQian" and "Petsche" to schedule a meeting. If these recipients agree with the meeting time and location, a request is sent to their manager (cmk) to see if they can attend. The generated request is sent to the indicated recipients via other media contacts as appropriate. The request includes a Yes button and a No button to answer the request. Figure 15 shows the compiled result of the request. As shown in FIG. 15, Petsche may attend the meeting but YangQian may not attend the meeting and has not been contacted by their manager.

도 16에 도시한 또 다른 예에서, 요청자는 4시간 동안에 선호하는 고객들에 새로운 회사의 IPO에서 일부의 주식 할당을 제공한다. 시간적 제약이 지정 통신흐름인 PreferredCustomers에 적용된다. PreferredCustomers는 수신자들의 병렬 결합으로 번역하다. 요청자는 이의 최상의 고객들에의 요청에서 일련의 옵션을 제공한다. 이메일 선호도를 명시한 지정 통신 흐름인 PreferredCustomers에 의해 정의된 각 수신자에 의해 수신되는, 요청의 이메일 버전을 도 17에 도시하였다. 대조된 응답들은 모든 수신자들의 응답 혹은 제공의 4시간이 만기되는 즉시로 리턴된다. 수신자가 4시간 안에 응답하지 못하고 후에 관망하려 하거나 요청에 응답하려 한다면, 적합한 메시지가 표시되고 대답은 간청되지도 받아들여지지도 않는다.In another example, shown in FIG. 16, the requestor provides some stock allocation in the new company's IPO to preferred customers for four hours. Time constraints apply to PreferredCustomers, the specified communication flow. PreferredCustomers translate into parallel combinations of receivers. The requestor offers a series of options in its request to its best customers. 17 illustrates an email version of the request, received by each recipient defined by PreferredCustomers, which is a designated communication flow that specifies email preferences. Matched responses are returned as soon as all recipients' responses or four hours of delivery expire. If the receiver fails to respond within four hours and tries to wait or respond to the request later, the appropriate message is displayed and the reply is not solicited or accepted.

"리버스 911"이라고 칭한, 본 발명의 또 다른 실시예는 통지 및 응답 시스템(100)이 긴급 911 응답을 제공할 수 있게 하여준다. 예를 들면, 통신 흐름 표현 및 규칙들은 학교에서 긴급한 문제가 있을 때 부모에 통지하도록 정의될 수 있다. 이러한 경우에, 학교에서는 교내 각 학생의 부모나 보호자에 연락해야 할 비상시 필요한 자원들을 비치하는 것은 어렵다. 본 발명의 리버스 911 시스템은 부모에 연락하기 위한 자동화된 기술을 제공하며, 부적절한 혹은 부정 사용을 방지하고 허위 알람을 최소화하기 위해 상당한 안전장치를 제공한다. 리버스 911 시스템은 비상시 연락 받을 선호도를 서비스 제공자에 부모가 등록할 것을 요한다. 일단 활성화되었으면, 학교들은 모든 부모들과 동시에 연락이 개시되게 웹 인터페이스 혹은 전자 메일을 사용할 수 있다. 통지는 선택적으로 메시지 수신 확인을 위해 부모용의 버튼을 포함할 수 있다. 또한, 학교는 통지가 부모에게 보내지기 전에 만족되어야 하는 여기 기술된 기술들을 사용한 승인 처리 요청자를 명시할 수 있고, 이러한 안전을 다른 안전 특징으로 강화시킬 수 있다(예를 들면, 요청자를인증하기 위한 보인 로그인 및 액세스 제어). 따라서, 본 발명은 "루프 내 사람" 안전을 제공할 수 있다.Another embodiment of the invention, referred to as "reverse 911," allows the notification and response system 100 to provide an emergency 911 response. For example, communication flow representations and rules may be defined to notify parents when there is an urgent problem at school. In such cases, it is difficult for the school to provide the emergency resources needed to contact the parents or guardians of each student on campus. The reverse 911 system of the present invention provides an automated technique for contacting parents and provides significant safeguards to prevent inappropriate or fraudulent use and to minimize false alarms. The reverse 911 system requires parents to register with the service provider the preference to be contacted in an emergency. Once activated, schools can use the web interface or e-mail to initiate contact with all parents at the same time. The notification may optionally include a button for parents to acknowledge the receipt of the message. In addition, the school may specify an approval process requestor using the techniques described herein that must be satisfied before the notification is sent to the parent, and may enhance this safety with other safety features (eg, to authenticate the requestor). Login and access control). Thus, the present invention can provide "person in loop" safety.

동일한 리버스 911 시스템은, 여기 개시된 바에 근거하여, 이 기술에 숙련된 자에게 명백하게 되는 바와 같이, 예를 들면 위급시 헌혈자를 찾아 스케쥴하기 위해서 적십자나 정부기관을 돕거나, 화학물 유출과 같은 특히 위험한 상황에 관하여 이웃의 주민들에 연락하는 다른 변형 예들에 채용될 수 있다.The same reverse 911 system, based on what is disclosed herein, will be particularly dangerous, such as assisting the Red Cross or government agencies to find and schedule blood donors in case of emergency, or as a chemical spill, as will be apparent to those skilled in the art. It may be employed in other variations of contacting the neighbors in the context of the situation.

"적응형 스케쥴링"이라 칭한, 본 발명의 또 다른 실시예에서, 통지 및 응답 시스템(100)은 스케쥴 변경의 지정된 수신자들에 통지할 수 있다. 예를 들면, 회의하는 가는 중에 기차나 항공기 비행과 같은 대량 수송 모드가 지체되거나 컴퓨터가 트래픽에 접하게 되면, 통지 및 응답 시스템(100)은 당사자들에게 스케쥴 변경을 통지하고 참가자들의 스케쥴들에 대한 적합한 수정을 조정하도록 구성될 수 있다. 예를 들면, 여기 기술된 월력 에이전트는 이러한 스케쥴 수정이 자동으로 수행되게 한다. 탑승객은 예를 들면 타이틀="비행 정보*"의 전자메일 메시지를 수신한 경우 개시되는 통신 흐름 규칙을 명시할 수 있다. 통신 흐름 규칙은 지체된 경우, 이를테면 리무진 서비스, 동료 혹은 배우자 등, 누구에게 연락할 것인가에 관한 정보를 제공할 수 있다. 통지는 영향을 받은 수신자에 특정한 정보를 제공할 수 있다. 예를 들면, 리무진 서비스에의 통지는 택일적 픽업 시간을 요청할 수 있고, 동료에의 통지는 회의 스케쥴을 다시 짤 것과(예를 들면 월력 에이전트를 사용하여) 혹은 지체된 승객이 없을 때 동료가 회의에 참석할 것을 요청할 수 있다(delegate 특징을 사용하여).In another embodiment of the invention, referred to as "adaptive scheduling", the notification and response system 100 may notify the designated recipients of the schedule change. For example, if a mass transit mode, such as a train or aircraft flight, is delayed during a meeting or if the computer encounters traffic, the notification and response system 100 notifies the parties of the schedule change and applies to the schedules of the participants. It can be configured to adjust the modification. For example, the monthly agent described herein allows this schedule modification to be performed automatically. The passenger may specify, for example, a communication flow rule that is initiated when an e-mail message with title = "flight information *" is received. Communication flow rules can provide information about who to contact, such as limousine services, colleagues or spouses, if delayed. The notification may provide information specific to the affected recipient. For example, a notification to a limousine service may request an alternative pick-up time, and a notification to a colleague may reschedule a meeting (for example, using a monthly agent) or have a colleague meet when there are no delayed passengers. You can request to attend (using the delegate feature).

이 기술에 공지된 바와 같이, 여기서 다룬 방법들 및 장치는 컴퓨터가 읽을 수 있는 코드 수단이 구현된 컴퓨터 독출가능 매체를 자체에 포함하는 제조자 물품으로서 배포될 수 있다. 컴퓨터가 읽을 수 있는 프로그램 코드 수단은 컴퓨터 시스템과 함께, 방법들을 수행하는 단계들 전부 혹은 일부를 수행하거나 여기 다루어진 장치들을 생성하도록 동작할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기록 가능한 매체(예를 들면, 플로피 디스크, 하드 드라이브들, 컴팩트 디스크들, 혹은 메모리 카드들)일 수도 있고 혹은 전송매체(예를 들면, 광섬유를 포함하는 네트워크, WWW(world-wide web), 케이블들, 혹은 시분할 다중 접속, 부호분할 다중접속, 혹은 이외 라디오 주파수 채널을 사용하는 무선 채널)일 수도 있다. 컴퓨터 시스템에 사용에 적합한 정보를 저장할 수 있는 어떤 공지된 혹은 개발된 매체가 사용될 수 있다. 컴퓨터가 읽을 수 있는 코드 수단은 이를테면 자기매체 상의 자기변화 혹은 컴팩트 디스크 표면에서의 높이 변화 등, 컴퓨터가 명령들 및 데이터를 읽을 수 있게 하는 어떤 메카니즘이다.As is known in the art, the methods and apparatus described herein may be distributed as a manufacturer's article comprising therein a computer readable medium embodying computer readable code means. The computer readable program code means may operate with the computer system to perform all or part of the steps of performing the methods or to create the devices described herein. The computer readable medium may be a recordable medium (e.g., floppy disk, hard drives, compact disks, or memory cards) or a transmission medium (e.g., a network including optical fiber, WWW ( world-wide web), cables, or time division multiple access, code division multiple access, or wireless channel using other radio frequency channels). Any known or developed medium capable of storing information suitable for use in a computer system may be used. Computer-readable code means is any mechanism that enables a computer to read instructions and data, such as magnetic changes on a magnetic medium or height changes on the surface of a compact disc.

여기 기술된 컴퓨터 시스템들 및 서버들 각각은 연관된 프로세서들을 여기 개시된 방법들, 단계들, 및 기능들을 구현하도록 구성할 메모리를 포함한다. 메모리들은 분산 혹은 로컬일 수도 있고 프로세서들은 분산 혹은 단일체일 수도 있을 것이다. 메모리들은 전기, 자기 혹은 광학 메모리, 혹은 이들의 어떤 조합 혹은 다른 유형들의 기억장치들로서 구현될 수도 있을 것이다. 또한, "메모리"라는 용어는 연관된 프로세서에 의해 액세스되는 주소지정 가능한 공간 내 주소로부터 읽거나 이에 기입할 수 있는 어떠한 정보든 이를 충분히 포괄하도록 넓게 해석되어야할 것이다. 이러한 정의에 의해서, 네트워크 상의 정보는 연관된 프로세서가 네트워크로부터의 정보를 불러들일 수 있기 때문에 여전히 메모리 내에 있다.Each of the computer systems and servers described herein includes a memory that will configure associated processors to implement the methods, steps, and functions disclosed herein. The memories may be distributed or local, and the processors may be distributed or monolithic. The memories may be implemented as electrical, magnetic or optical memory, or any combination or other types of memories. In addition, the term “memory” should be construed broadly to fully encompass any information that can be read from or written to an address in an addressable space accessed by an associated processor. By this definition, the information on the network is still in memory because the associated processor can retrieve information from the network.

여기 도시 및 기술된 실시예들 및 변형 예들은 이 발명의 원리를 단지 예시한 것이고 여러 가지 수정들이 발명의 범위 및 정신으로부터 일탈함이 없이 이 기술에 숙련된 자들에 의해 구현될 수 있음을 알 것이다.It is to be understood that the embodiments and variations shown and described herein merely illustrate the principles of this invention and that various modifications may be made by those skilled in the art without departing from the scope and spirit of the invention. .

Claims (70)

복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 방법에 있어서, 상기 방법은,A method of providing a message from a sender to at least one receiver in accordance with a communication flow having a plurality of potential paths, the method comprising: 상기 적어도 하나의 수신자로부터 응답을 수신하는 단계; 및Receiving a response from the at least one recipient; And 상기 응답에 기초하여 상기 통신 흐름내의 적어도 하나의 경로를 선택하는 단계를 포함하는, 방법.Selecting at least one path in the communication flow based on the response. 제 1 항에 있어서, 상기 응답이 원하는 목적지에 수신되는 것을 보증하도록 상기 메시지내의 응답 주소(reply-to address)를 변경하는 단계를 추가로 포함하는, 방법.2. The method of claim 1, further comprising changing a reply-to address in the message to ensure that the response is received at a desired destination. 제 2 항에 있어서, 상기 변경된 응답 주소는 매개자가 상기 송신자의 대리인으로서 기능하는 것을 허용하는, 방법.3. The method of claim 2, wherein the modified reply address allows a mediator to act as an agent of the sender. 제 2 항에 있어서, 상기 변형된 응답 주소는 매개자가 상기 송신자에게 응답 처리 서비스들을 제공할 수 있게 하는 방법.3. The method of claim 2, wherein the modified response address allows a mediator to provide response processing services to the sender. 제 1 항에 있어서, 상기 선택 단계는 하나 이상의 부가 수신자들에 대한 후속 통신을 결정하는, 방법.The method of claim 1, wherein the selecting step determines subsequent communications for one or more additional recipients. 제 1 항에 있어서, 상기 선택 단계는 수신된 응답들을 집계하고, 사전규정된 메시지 완료 기준들이 충족되는지 여부를 평가하는 방법.2. The method of claim 1, wherein said selecting step aggregates received responses and evaluates whether predefined message completion criteria are met. 제 1 항에 있어서, 상기 선택 단계는 상기 송신자에게 응답 정보를 반송할 완료 상태를 판정하는, 방법.2. The method of claim 1, wherein the selecting step determines a completion state to return response information to the sender. 제 7 항에 있어서, 상기 응답 정보가 상기 송신자에 의해 지정된 포맷으로 상기 송신자에게 제공되는, 방법.8. The method of claim 7, wherein the response information is provided to the sender in a format designated by the sender. 제 1 항에 있어서, 상기 메시지는 상기 대응하는 적어도 하나의 수신자에 의해 지정된 선호도 정보(preference information)에 따라 상기 적어도 하나의 수신자에게 제공되는, 방법.The method of claim 1, wherein the message is provided to the at least one recipient according to preference information specified by the corresponding at least one recipient. 제 1 항에 있어서, 상기 메시지 내용은 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 시간상 실질적으로 가깝게 얻어지는, 방법.The method of claim 1, wherein the message content is obtained substantially close in time when the message is provided to the at least one recipient. 제 1 항에 있어서, 상기 통신 흐름을 평가하는 단계를 더 포함하고, 상기 통신 흐름이 상기 적어도 하나의 수신자에 의해 규정되는 적어도 하나의 통신 흐름 규칙을 참조하며, 상기 통신 흐름 규칙은 상기 수신자의 적어도 하나의 선호도를지정하는, 방법.2. The method of claim 1, further comprising evaluating the communication flow, wherein the communication flow refers to at least one communication flow rule defined by the at least one recipient, the communication flow rule being at least of the recipient. A method of specifying one preference. 제 1 항에 있어서, 상기 통신 흐름은 상기 적어도 하나의 수신자와 관련된 기업에 의해 지정된 바와 같은 적어도 하나의 수신자의 적어도 하나의 선호도를 참조하는, 방법.The method of claim 1, wherein the communication flow refers to at least one preference of at least one recipient as specified by an enterprise associated with the at least one recipient. 제 11 항에 있어서, 상기 통신 흐름 규칙은 적어도 하나의 시간 조건을 포함하는 방법.12. The method of claim 11 wherein the communication flow rule comprises at least one time condition. 제 11 항에 있어서, 상기 통신 흐름 규칙은 적어도 하나의 매체 선호도를 포함하는 방법.12. The method of claim 11, wherein the communication flow rule comprises at least one media preference. 제 11 항에 있어서, 상기 통신 흐름 규칙은 적어도 하나의 인간 언어 유형 선호도를 포함하는 방법.12. The method of claim 11, wherein the communication flow rule comprises at least one human language type preference. 제 11 항에 있어서, 상기 통신 흐름 규칙은 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 맞춰 실질적으로 근접하게 평가되는 방법.12. The method of claim 11, wherein said communication flow rule is evaluated substantially in close proximity when said message is provided to said at least one recipient. 제 11 항에 있어서, 상기 통신 흐름은 상기 메시지를 수신하기 위해 상기 적어도 하나의 수신자의 적어도 하나의 매체 선호도를 참조하고,12. The method of claim 11, wherein the communication flow refers to at least one media preference of the at least one recipient to receive the message, 상기 적어도 하나의 매체 선호도는 중앙 위치에 저장되는 방법.Wherein said at least one media preference is stored in a central location. 제 11 항에 있어서, 상기 통신 흐름은 SIP 프록시의 호 처리(call processing)를 제어하는 방법.12. The method of claim 11, wherein the communication flow controls call processing of a SIP proxy. 제 18 항에 있어서, 상기 SIP 프록시는 유입 SIP INVITE 메시지를 평가하고, 상기 적어도 하나의 수신자를 위한 전용 호 라우팅 규칙을 선택하는 방법.19. The method of claim 18, wherein the SIP proxy evaluates an incoming SIP INVITE message and selects a dedicated call routing rule for the at least one recipient. 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 방법에 있어서, 상기 방법은,A method of providing a message from a sender to at least one receiver in accordance with a communication flow, the method comprising: 상기 송신자로부터 상기 메시지를 수신하는 단계;Receiving the message from the sender; 상기 통신 흐름을 평가하는 단계로서, 상기 통신 흐름이 상기 메시지를 전달하는 상기 송신자의 적어도 하나의 선호도를 지정하는, 상기 통신 흐름을 평가하는 단계; 및Evaluating the communication flow, wherein the communication flow specifies at least one preference of the sender to convey the message; And 상기 송신자의 상기 선호도들에 기초하여 상기 메시지를 처리하는 단계를 포함하는, 방법.Processing the message based on the preferences of the sender. 제 20 항에 있어서, 상기 송신자에 의해 지정된 포맷으로 상기 송신자에게 응답 정보를 제공하는 단계를 추가로 포함하는 방법.21. The method of claim 20, further comprising providing response information to the sender in a format designated by the sender. 제 20 항에 있어서, 상기 메시지를 위한 내용은 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 맞춰 실질적으로 근접하게 얻어지는 방법.21. The method of claim 20, wherein content for the message is obtained substantially in time for the message to be provided to the at least one recipient. 제 20 항에 있어서, 상기 통신 흐름을 평가하는 단계를 추가로 포함하고,21. The method of claim 20, further comprising evaluating the communication flow, 상기 통신 흐름은 상기 적어도 하나의 수신자에 의해 규정된 적어도 하나의 통신 흐름 규칙을 참조하며,The communication flow refers to at least one communication flow rule defined by the at least one receiver, 상기 통신 흐름 규칙은 상기 수신자의 적어도 하나의 선호도를 지정하는 방법.The communication flow rule specifies at least one preference of the recipient. 제 20 항에 있어서, 상기 통신 흐름은 상기 적어도 하나의 수신자와 연계된 기업에 의해 지정된 바와 같은, 적어도 하나의, 상기 적어도 하나의 수신자의 선호도를 참조하는 방법.21. The method of claim 20, wherein the communication flow refers to at least one preference of the at least one recipient, as specified by an enterprise associated with the at least one recipient. 제 23 항에 있어서, 상기 통신 흐름 규칙은 적어도 하나의 시간 조건을 포함하는 방법.24. The method of claim 23 wherein the communication flow rule comprises at least one time condition. 제 23 항에 있어서, 상기 통신 흐름 규칙은 적어도 하나의 매체 선호도를 포함하는 방법.The method of claim 23, wherein the communication flow rule comprises at least one media preference. 제 23 항에 있어서, 상기 통신 흐름 규칙은 적어도 하나의 인간 언어 유형선호도를 포함하는 방법.The method of claim 23, wherein the communication flow rule comprises at least one human language type preference. 제 23 항에 있어서, 상기 통신 흐름 규칙은 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 맞춰 실질적으로 근접하게 평가되는 방법.24. The method of claim 23, wherein said communication flow rule is evaluated substantially in close proximity when said message is provided to said at least one recipient. 제 23 항에 있어서, 상기 통신 흐름은 상기 메시지를 수신하기 위해 상기 적어도 하나의 수신자의 적어도 하나의 매체 선호도를 참조하고,24. The method of claim 23, wherein the communication flow refers to at least one media preference of the at least one recipient to receive the message, 상기 적어도 하나의 매체 선호도는 중앙 위치에 저장되는 방법.Wherein said at least one media preference is stored in a central location. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 방법에 있어서, 상기 방법은,A method of providing a message from a sender to at least one receiver in accordance with a communication flow having a plurality of potential paths, the method comprising: 상기 송신자로부터 상기 메시지를 수신하는 단계;Receiving the message from the sender; 상기 통신 흐름을 평가하는 단계로서, 상기 통신 흐름이 상기 메시지가 처리되어야 하는 방식을 나타내는 적어도 하나의 프리미티브 키워드(primitive keyword)를 포함하는 통신 흐름 표현(communication flow expression)에 의해 제어되는, 상기 통신 흐름을 평가하는 단계; 및Evaluating the communication flow, wherein the communication flow is controlled by a communication flow expression that includes at least one primitive keyword that indicates how the message should be processed. Evaluating; And 상기 통신 흐름 표현에 기초하여 상기 메시지를 처리하는 단계를 포함하는, 방법.Processing the message based on the communication flow representation. 제 30 항에 있어서, 상기 프리미티브 키워드는 두 개의 지정된 오퍼랜드들,A 및 B가 동시에 연락되어야만 한다는 것과, 상기 통신 흐름 표현이 A 및 B 양자 모두가 성공적으로 응답한 경우 및 그 경우에만 성공(succeed)된다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword is that two specified operands, A and B, must be contacted at the same time, and that the communication flow representation is successful only if and when both A and B respond successfully. How to tell. 제 30 항에 있어서, 상기 프리미티브 키워드는 두 개의 지정된 오퍼랜드들, A 및 B에 대하여, B는 A가 성공적으로 응답하는 경우에만 연락되어야한다는 것과, 상기 통신 흐름 표현은 A 및 B 양자 모두가 성공적으로 응답한 경우 및 그 경우에만 성공된다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that for two specified operands, A and B, B should be contacted only if A responds successfully, and the communication flow representation indicates that both A and B successfully How to indicate if and only if successful. 제 30 항에 있어서, 상기 프리미티브 키워드는 두 개의 오퍼랜드들, A 및 B가 동시에 연락되어야만 한다는 것과, 상기 통신 흐름 표현은 A 또는 B 중 어느 하나가 성공적으로 응답하는 한 성공된다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that two operands, A and B, must be contacted at the same time and that the communication flow representation is successful as long as either A or B responds successfully. 제 30 항에 있어서, 상기 프리미티브 키워드는 두 개의 지정된 오퍼랜드들, A 및 B에 대하여, B는 A에 대한 연락 시도가 실패한 경우에만 연락되어야 한다는 것과, 상기 통신 흐름 표현은 A 또는 B 중 어느 한쪽이 성공적으로 응답한 경우에 성공된다는 것을 지시하는 방법.31. The communication flow representation of claim 30, wherein the primitive keyword is that for two specified operands, A and B, B should be contacted only if an attempt to contact A fails; How to dictate if you have successfully answered. 제 30 항에 있어서, 상기 프리미티브 키워드는 두 개의 지정된 오퍼랜드들, A 및 B가 동시에 연락되어야만 한다는 것과, 상기 통신 흐름 표현은 응답을 위한최초 연락의 값을 가진다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that two specified operands, A and B, must be contacted at the same time, and that the communication flow representation has a value of initial contact for a response. 제 30 항에 있어서, 상기 프리미티브 키워드는 두 개의 지정된 오퍼랜드들, A 및 B에 대하여, B는 A에 대한 연락 시도가 실패한 경우에만 연락된다는 것과, 상기 통신 흐름 표현은 최초의 maybe가 아닌(non-maybe) 응답의 값을 가진다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword is for two specified operands, A and B, that B is only contacted if an attempt to contact A fails, and the communication flow representation is non-first maybe. maybe) A way to indicate that it has a value in the response. 제 30 항에 있어서, 상기 프리미티브 키워드는 수신자들이 동시에 연락되어야만 한다는 것과, 성공적 응답의 소정 임계값이 수신된 경우에 상기 통신 흐름 표현이 성공된다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that recipients must be contacted at the same time and that the communication flow representation is successful if a predetermined threshold of successful response is received. 제 30 항에 있어서, 상기 프리미티브 키워드는 수신자들이 순차적으로 연락되어야만 한다는 것과, 성공적 응답의 소정 임계값이 수신된 경우에 상기 통신 흐름 표현이 성공된다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that recipients must be contacted sequentially and that the communication flow representation is successful if a predetermined threshold of successful response is received. 제 30 항에 있어서, 상기 프리미티브 키워드는 수신자들이 병렬로 연락되어야만 한다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that recipients should be contacted in parallel. 제 39 항에 있어서, 대기 요청(outstanding request)들이 완료된 이후에, 상기 대기 요청들을 취소하는 단계를 추가로 포함하는 방법.40. The method of claim 39, further comprising canceling the waiting requests after completing the waiting requests. 제 30 항에 있어서, 상기 프리미티브 키워드는 수신자들이 순차적으로 연락되어야만 한다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that recipients should be contacted sequentially. 제 30 항에 있어서, 상기 프리미티브 키워는 하나 또는 그 이상의 잠재적 오퍼랜드 값들이 반전되어야만 한다는 것을 지시하는 방법.31. The method of claim 30, wherein the primitive keyword indicates that one or more potential operand values should be reversed. 제 30 항에 있어서, 상기 통신 흐름 표현은 3-값 논리(3-valued logic)를 사용하여 평가되는 방법.31. The method of claim 30, wherein the communication flow representation is evaluated using 3-valued logic. 제 43 항에 있어서, 상기 3개의 가능한 논리값들은 통지 실패(maybe), 응답 실패(거짓) 및 응답 성공(참)인 방법.44. The method of claim 43, wherein the three possible logic values are notification failure (maybe), response failure (false) and response success (true). 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 통신 흐름 표현이 종결되어야만 할 때를 지시하는 성공 테스트를 포함하는 방법.31. The method of claim 30, wherein the communication flow representation comprises a success test indicating when the communication flow representation should terminate. 제 45 항에 있어서, 상기 성공 테스트는 상기 적어도 하나의 수신자로부터 수신된 응답에 포함될 수 있는 변수들에 대한 3-값 논리식(logical expression)을 지정하는 방법.46. The method of claim 45, wherein the success test specifies a three-valued logical expression for variables that may be included in a response received from the at least one receiver. 제 45 항에 있어서, 상기 성공 테스트는 수신된 모든 응답들에 걸쳐 집계를 수행하고, 상기 응답들을 처리할 수 있는 방법.46. The method of claim 45, wherein the success test is capable of performing aggregation over all received responses and processing the responses. 제 30 항에 있어서, 상기 통신 흐름 표현은 질료(matter)가 다음 레벨로 승단(escalate)되게 하고, 상기 승단 이전에 현 레벨과 연계된 미결 메시지(pending message)들을 취소(cancel)하는 방법.31. The method of claim 30, wherein the communication flow representation causes the material to be escalated to the next level and to cancel pending messages associated with the current level prior to the promotion. 제 30 항에 있어서, 상기 통신 흐름 표현은 질료가 다음 레벨로 승단되게 하고, 상기 승단 이전에 현 레벨과 연계된 미결 메시지들을 유지하는 방법.31. The method of claim 30, wherein the communication flow representation causes material to be promoted to the next level and maintains pending messages associated with the current level prior to the promotion. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 송신자와 상기 적어도 하나의 수신자의 선호도들을 규정하는 방법.31. The method of claim 30, wherein the communication flow representation defines preferences of the sender and the at least one receiver. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 적어도 하나의 수신자에게로의 전달 시간에 평가되는 방법.31. The method of claim 30, wherein the communication flow representation is evaluated at a time of delivery to the at least one recipient. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 적어도 하나의 수신자에 의해 규정된 통신 흐름 규칙을 참조하고,The communication flow representation of claim 30, wherein the communication flow representation refers to a communication flow rule defined by the at least one recipient, 상기 통신 흐름 규칙은 상기 송신자의 특징들에 대해 상기 통신 흐름을 조절할 수 있는 방법.The communication flow rule may adjust the communication flow with respect to characteristics of the sender. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 적어도 하나의 수신자에 의해 규정된 통신 흐름 규칙을 참조하고,The communication flow representation of claim 30, wherein the communication flow representation refers to a communication flow rule defined by the at least one recipient, 상기 통신 흐름 규칙은 상기 메시지의 특징들에 대해 상기 통신 흐름을 조절할 수 있는 방법.The communication flow rule may adjust the communication flow with respect to features of the message. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 적어도 하나의 수신자가 상기 메시지에 응답하지 않는 경우에 하나 또는 그 이상의 작용들이 수행되도록 지시하는 방법.31. The method of claim 30, wherein the communication flow representation directs one or more actions to be performed if the at least one recipient does not respond to the message. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 적어도 하나의 수신자가 상기 메시지를 다른 수신자에게 위임(delegate)할 수 있게 하는 방법.31. The method of claim 30, wherein the communication flow representation enables the at least one recipient to delegate the message to another recipient. 제 30 항에 있어서, 상기 통신 흐름 표현은 상기 적어도 하나의 수신자가 상기 메시지를 판독한 이후에, 상기 메시지를 다른 수신자에게 전이할 수 있게 하는 방법.31. The method of claim 30, wherein the communication flow representation enables the at least one recipient to transition the message to another recipient after reading the message. 제 30 항에 있어서, 상기 통신 흐름 표현은 시간적 제약(temporal constraint)들을 사용하여 상기 적어도 하나의 수신자의 선호도들을 지시하는 방법.31. The method of claim 30, wherein the communication flow representation indicates preferences of the at least one receiver using temporal constraints. 제 30 항에 있어서, 상기 통신 흐름 표현은 시간영역(temporal domain)들을 사용하여 상기 적어도 하나의 수신자의 선호도들을 지시하는 방법.31. The method of claim 30, wherein the communication flow representation indicates preferences of the at least one receiver using temporal domains. 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 방법에 있어서, 상기 방법은,A method of providing a message from a sender to at least one receiver in accordance with a communication flow, the method comprising: 상기 송신자로부터 상기 메시지를 수신하는 단계;Receiving the message from the sender; 상기 통신 흐름을 평가하는 단계로서, 상기 통신 흐름은 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 시간상 실질적으로 가깝게 평가되는, 상기 통신 흐름을 평가하는 단계; 및Evaluating the communication flow, wherein the communication flow is evaluated substantially close in time when the message is provided to the at least one recipient; And 상기 송신자의 상기 선호도들에 기초하여 상기 메시지를 처리하는 단계를 포함하는, 방법.Processing the message based on the preferences of the sender. 제 59 항에 있어서, 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 시간상 실질적으로 가깝게 상기 메시지에 대한 내용을 획득하는 단계를 더 포함하는, 방법.60. The method of claim 59, further comprising obtaining content for the message substantially close in time when the message is provided to the at least one recipient. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 방법에 있어서, 상기 방법은,A method of providing a message from a sender to at least one receiver in accordance with a communication flow having a plurality of potential paths, the method comprising: 상기 송신자로부터 상기 메시지를 수신하는 단계;Receiving the message from the sender; 상기 통신 흐름을 평가하는 단계로서, 상기 통신 흐름은 상기 메시지가 처리되는 방식을 나타내는 통신 흐름 표현에 의해 제어되고, 상기 통신 흐름 표현이 3-값 논리(three-valued logic)를 사용하여 평가되는, 상기 통신 흐름을 평가하는 단계; 및Evaluating the communication flow, wherein the communication flow is controlled by a communication flow representation that indicates how the message is processed, wherein the communication flow representation is evaluated using three-valued logic, Evaluating the communication flow; And 상기 통신 흐름 표현에 기초하여 상기 메시지를 처리하는 단계를 포함하는, 방법.Processing the message based on the communication flow representation. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one recipient in accordance with a communication flow having a plurality of potential paths, the system comprising: 컴퓨터-판독가능 코드(computer-readable code)를 저장하는 메모리; 및A memory that stores computer-readable code; And 상기 메모리에 동작적으로 결합되는 프로세서를 포함하고, 상기 프로세서는 상기 컴퓨터-판독가능 코드를 구현하도록 구성되며,A processor operatively coupled to the memory, the processor configured to implement the computer-readable code, 상기 컴퓨터-판독가능 코드는,The computer-readable code is 상기 적어도 하나의 수신자로부터 응답을 수신하고,Receive a response from the at least one recipient, 상기 응답에 기초하여 상기 통신 흐름내의 적어도 하나의 경로를 선택하도록 구성되는, 시스템.And select at least one path in the communication flow based on the response. 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one receiver in accordance with a communication flow, the system comprising: 컴퓨터-판독가능 코드를 저장하는 메모리; 및Memory for storing computer-readable code; And 상기 메모리에 동작적으로 결합되는 프로세서를 포함하고, 상기 프로세서는 상기 컴퓨터-판독가능 코드를 구현하도록 구성되며,A processor operatively coupled to the memory, the processor configured to implement the computer-readable code, 상기 컴퓨터-판독가능 코드는,The computer-readable code is 상기 적어도 하나의 수신자로부터 메시지를 수신하고,Receive a message from the at least one recipient, 상기 통신 흐름이 상기 메시지의 전달에 대한 상기 송신자의 적어도 하나의 선호도를 지정하는 방식으로, 상기 통신 흐름을 평가하며,Evaluate the communication flow in a manner that the communication flow specifies at least one preference of the sender for delivery of the message, 상기 송신자의 상기 선호도들에 기초하여 상기 메시지를 처리하도록 구성되는, 시스템.And process the message based on the preferences of the sender. 복수의 잠재적 경로들을 가지는 통신 흐름을 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one recipient along a communication flow having a plurality of potential paths, the system comprising: 컴퓨터-판독가능 코드를 저장하는 메모리; 및Memory for storing computer-readable code; And 상기 메모리에 동작적으로 결합되는 프로세서를 포함하고, 상기 프로세서는 상기 컴퓨터-판독가능 코드를 구현하도록 구성되며,A processor operatively coupled to the memory, the processor configured to implement the computer-readable code, 상기 컴퓨터-판독가능 코드는,The computer-readable code is 상기 송신자로부터 상기 메시지를 수신하고,Receive the message from the sender, 상기 통신 흐름이 상기 메시지가 처리되어야하는 방식을 나타내는 적어도 하나의 프리미티브 키워드를 포함하는 통신 흐름 표현에 의해 제어되는 방식으로, 상기 통신 흐름을 평가하고,Evaluate the communication flow in a manner such that the communication flow is controlled by a communication flow representation including at least one primitive keyword indicating how the message should be processed; 상기 통신 흐름 표현에 기초하여 상기 메시지를 처리하도록 구성되는, 시스템.And process the message based on the communication flow representation. 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one receiver in accordance with a communication flow, the system comprising: 컴퓨터-판독가능 코드를 저장하는 메모리; 및Memory for storing computer-readable code; And 상기 메모리에 동작적으로 결합되는 프로세서를 포함하고,A processor operatively coupled to the memory, 상기 프로세서는 상기 컴퓨터-판독가능 코드를 구현하도록 구성되며,The processor is configured to implement the computer-readable code, 상기 컴퓨터-판독가능 코드는,The computer-readable code is 상기 송신자로부터 상기 메시지를 수신하고,Receive the message from the sender, 상기 통신 흐름이 상기 메시지가 상기 적어도 하나의 수신자에게 제공되는 때에 시간상 실질적으로 가깝게 평가되는 방식으로, 상기 통신 흐름을 평가하고,Evaluate the communication flow in a manner that the communication flow is evaluated substantially close in time when the message is provided to the at least one recipient, 상기 송신자의 상기 선호도에 기초하여 상기 메시지를 처리하도록 구성되는, 시스템.And process the message based on the preference of the sender. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one recipient in accordance with a communication flow having a plurality of potential paths, the system comprising: 컴퓨터-판독가능 코드를 저장하는 메모리; 및Memory for storing computer-readable code; And 상기 메모리에 동작적으로 결합되는 프로세서를 포함하고,A processor operatively coupled to the memory, 상기 프로세서는 상기 컴퓨터-판독가능 코드를 구현도록 구성되며,The processor is configured to implement the computer-readable code, 상기 컴퓨터-판독가능 코드는,The computer-readable code is 상기 송신자로부터 상기 메시지를 수신하고,Receive the message from the sender, 상기 통신 흐름이 상기 메시지가 처리되는 방식을 나타내는 통신 흐름 표현에 의해 제어되고, 상기 통신 흐름 표현이 3-값 논리를 사용하여 평가되게 되는 방식으로, 상기 통신 흐름을 평가하고,Evaluate the communication flow in a manner such that the communication flow is controlled by a communication flow representation that indicates the manner in which the message is processed and the communication flow representation is evaluated using 3-value logic; 상기 통신 흐름 표현에 기초하여 상기 메시지를 처리하도록 구성되는, 시스템.And process the message based on the communication flow representation. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하는 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one recipient in accordance with a communication flow having a plurality of potential paths, the system comprising: 상기 적어도 하나의 수신자으로부터의 응답을 수신하기 위한 수단; 및Means for receiving a response from the at least one recipient; And 상기 응답에 기초하여 상기 통신 흐름내의 적어도 하나의 경로를 선택하기 위한 수단을 포함하는, 시스템.Means for selecting at least one path in the communication flow based on the response. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하기 위한 시스템에 있어서, 상기 시스템은,A system for providing a message from a sender to at least one recipient in accordance with a communication flow having a plurality of potential paths, the system comprising: 상기 송신자로부터 상기 메시지를 수신하기 위한 수단;Means for receiving the message from the sender; 상기 통신 흐름을 평가하기 위한 수단으로서, 상기 메시지가 처리되어야 하는 방식을 나타내는 적어도 하나의 프리미티브 키워드를 포함하는 통신 흐름 표현에 의해 제어되는, 상기 통신 흐름을 평가하기 위한 수단; 및Means for evaluating the communication flow, the means for evaluating the communication flow controlled by a communication flow representation that includes at least one primitive keyword indicating how the message should be processed; And 상기 통신 흐름 표현에 기초하여 상기 메시지를 처리하기 위한 수단을 포함하는, 시스템.Means for processing the message based on the communication flow representation. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하기 위한 제조품에 있어서,An article of manufacture for providing a message from a sender to at least one recipient in accordance with a communication flow having a plurality of potential paths, 컴퓨터 판독가능 코드 수단이 그 위에 수록되어 있는 컴퓨터 판독가능 매체를 포함하고,A computer readable medium having computer readable code means thereon; 상기 컴퓨터 판독가능 프로그램 코드 수단은 상기 적어도 하나의 수신자로부터 응답을 수신하기 위한 단계; 및 상기 응답에 기초하여 상기 통신 흐름내의 적어도 하나의 경로를 선택하기 위한 단계를 포함하는 제조품.The computer readable program code means for receiving a response from the at least one recipient; And selecting at least one path in the communication flow based on the response. 복수의 잠재적 경로들을 가지는 통신 흐름에 따라 송신자로부터의 메시지를 적어도 하나의 수신자에게 제공하기 위한 제조품에 있어서,An article of manufacture for providing a message from a sender to at least one recipient in accordance with a communication flow having a plurality of potential paths, 컴퓨터 판독가능 코드 수단이 그 위에 수록되어 있는 컴퓨터 판독가능 매체를 포함하고,A computer readable medium having computer readable code means thereon; 상기 컴퓨터 판독가능 프로그램 코드 수단은 상기 송신자로부터 상기 메시지를 수신하는 단계; 상기 통신 흐름을 평가하는 단계로서, 상기 통신 흐름이 상기 메시지가 처리되어야만 하는 방식을 지시하는 적어도 하나의 프리미티브 키워드를 포함하는 통신 흐름식에 의해 제어되는 상기 통신 흐름을 평가하는 단계; 및 상기 통신 흐름 표현에 기초하여 상기 메시지를 처리하는 단계를 포함하는 제조품.The computer readable program code means for receiving the message from the sender; Evaluating the communication flow, comprising: evaluating the communication flow controlled by the communication flow formula including at least one primitive keyword indicating how the communication flow should be processed; And processing the message based on the communication flow representation.
KR1020037014910A 2001-05-15 2002-05-14 Method and apparatus for automatic notification and response KR100979073B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29108701P 2001-05-15 2001-05-15
US60/291,087 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
KR20040000465A true KR20040000465A (en) 2004-01-03
KR100979073B1 KR100979073B1 (en) 2010-08-31

Family

ID=23118768

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037014910A KR100979073B1 (en) 2001-05-15 2002-05-14 Method and apparatus for automatic notification and response

Country Status (7)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100595444B1 (en) * 2004-01-06 2006-07-03 삼성전자주식회사 remote management system for building equipment
KR100690787B1 (en) * 2005-02-25 2007-03-09 엘지전자 주식회사 Method for notifying event in the wireless communication system
WO2009025509A3 (en) * 2007-08-21 2009-04-23 Samsung Electronics Co Ltd System and method for controlling sip-specific event notification according to preference of subscriber

Families Citing this family (13)

* 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
US7119716B2 (en) * 2003-05-28 2006-10-10 Legalview Assets, Limited Response systems and methods for notification systems for modifying future notifications
US20050209990A1 (en) * 2004-03-18 2005-09-22 Ordille Joann J Method and apparatus for a publish-subscribe system with access controls
US7734731B2 (en) * 2004-03-18 2010-06-08 Avaya Inc. Method and apparatus for a publish-subscribe system with third party subscription delivery
DE102004047125B4 (en) * 2004-09-27 2007-12-27 Cycos Ag Method and communication server for sending an electronic message
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 (en) * 2006-12-15 2007-06-27 华为技术有限公司 Method and system for obtaining conversation start protocol news transmission path
JP4623109B2 (en) 2008-02-28 2011-02-02 ブラザー工業株式会社 Telephone equipment
JP5410811B2 (en) * 2009-03-31 2014-02-05 株式会社トランスウエア E-mail delivery system, e-mail delivery method, and e-mail delivery program
KR102055260B1 (en) * 2013-08-30 2019-12-12 에스케이텔레콤 주식회사 Apparatus for update profile, method thereof and computer recordable medium storing the method
US10084872B2 (en) 2015-07-16 2018-09-25 International Business Machines Corporation Behavior based notifications
CN108829737B (en) * 2018-05-21 2021-11-05 浙江大学 Text cross combination classification method based on bidirectional long-short term memory network

Family Cites Families (8)

* 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
JPH088967A (en) * 1994-06-22 1996-01-12 Oki Electric Ind Co Ltd Circulation main management method
US5742905A (en) 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
JPH09185655A (en) * 1996-01-08 1997-07-15 Hitachi Ltd System and method for managing work flow
JP3359249B2 (en) * 1996-12-13 2002-12-24 キヤノン株式会社 Data processing system, message transmission device, data transmission processing method of data processing system, and message transmission processing method of message transmission device
WO2000065786A1 (en) * 1999-04-26 2000-11-02 Stanford Global Link Corporation Global unified messaging system and method
AUPQ028599A0 (en) * 1999-05-11 1999-06-03 Vista Group Pty Limited Telecommunications system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100595444B1 (en) * 2004-01-06 2006-07-03 삼성전자주식회사 remote management system for building equipment
KR100690787B1 (en) * 2005-02-25 2007-03-09 엘지전자 주식회사 Method for notifying event in the wireless communication system
WO2009025509A3 (en) * 2007-08-21 2009-04-23 Samsung Electronics Co Ltd System and method for controlling sip-specific event notification according to preference of subscriber
US9553940B2 (en) 2007-08-21 2017-01-24 Samsung Electronics Co., Ltd System and method for controlling SIP-specific event notification according to preference of subscriber

Also Published As

Publication number Publication date
AU2002303765A1 (en) 2002-11-25
KR100979073B1 (en) 2010-08-31
WO2002093886A2 (en) 2002-11-21
CA2447436A1 (en) 2002-11-21
WO2002093886A3 (en) 2003-06-19
JP2005515519A (en) 2005-05-26
CN1520572A (en) 2004-08-11
EP1391102A2 (en) 2004-02-25

Similar Documents

Publication Publication Date Title
US7436947B2 (en) Method and apparatus for automatic notification and response based on communication flow expressions
US8868659B2 (en) Method and apparatus for automatic notification and response
US7484213B2 (en) Agent architecture employed within an integrated message, document and communication system
KR100979073B1 (en) Method and apparatus for automatic notification and response
US8122097B2 (en) System, method and computer program for recipient controlled communications
US7543032B2 (en) Method and apparatus for associating messages with data elements
US7027463B2 (en) System and method for multi-tiered rule filtering
US7536001B2 (en) Generation of availability indicators from call control policies for presence enabled telephony system
US20060031340A1 (en) Apparatus and method for advanced attachment filtering within an integrated messaging platform
US20060085417A1 (en) Method and apparatus for data mining within communication session information using an entity relationship model
US20040078476A1 (en) System and method for maintaining special purpose web pages
EP1662817A1 (en) System and method for providing information on a manner of communicating
EP1755312A1 (en) Communication system and method for providing presence-enhanced name tags
WO2002065239A2 (en) System and method for maintaining special purpose web pages

Legal Events

Date Code Title Description
AMND Amendment
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150729

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160811

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170817

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 9